* support/regression/ports/hc08/spec.mk: fixed bug 1478892
[fw/sdcc] / ChangeLog
1 2006-04-26 Maarten Brock <sourceforge.brock AT dse.nl>
2
3         * support/regression/ports/hc08/spec.mk: fixed bug 1478892
4
5 2006-04-28 Raphael Neider <rneider AT web.de>
6
7         * src/pic16/pcode.c (pic16_newpCodeOpLit12),
8         * src/pic16/gen.c (pic16_popGetLit12): NEW, create 12 bit literal,
9           (pic16_loadFSR0): handle 12 bit literals correctly, fixes #1440527
10         * src/pic16/pcode.h: added prototype for pic16_newpCodeOpLit12()
11
12 2006-04-28 Bernhard Held <bernhard AT bernhardheld.de>
13
14         * device/lib/pic/libdev/Makefile.in,
15         * device/lib/hc08/Makefile.in,
16         * device/lib/gbz80/Makefile.in,
17         * device/lib/z80/Makefile.in,
18         * device/lib/ds390/Makefile.in,
19         * device/lib/ds400/Makefile.in: added srcdir to include search path,
20         thanks to Borut for the bug report
21         * configure.in,
22         * configure: always create doc/Makefile independent from --enable-doc
23         * Makefile.in: always install from directory doc independent from
24         --enable-doc
25         * device/lib/pic/Makefile.in: added libdev again, it was erroneously
26         removed
27         * device/lib/pic/libdev/Makefile.in: fixed VPATH build
28         * doc/Makefile.in: install *.txt if present
29         * device/include/Makefile.in (install): added installation of pic/*.inc
30         and pic/*.txt files again, they were erroneously removed
31
32 2006-04-28 Raphael Neider <rneider AT web.de>
33
34         * src/pic/{gen.c,main.h,pcode.c},
35         * src/pic16/{gen.c,pcode.c}: quietened compiler warnings
36             concerning signedness with casts
37
38 2006-04-28 Raphael Neider <rneider AT web.de>
39
40         * src/pic/gen.c (genFunction): set global pic14_hasInterrupt on
41             definition of an interrupt handler,
42         * src/pic/glue.c (pic14_emitInterruptHandler): moved output of
43             interrupt handler stuff from picglue() to separate routine,
44           (picglue): enabled definition of intr handlers in files w/o main()
45
46 2006-04-26 Maarten Brock <sourceforge.brock AT dse.nl>
47
48         * support/librarian/sdcclib.c: moved include <limits.h> up to enable
49           compilation with MSVC 2005 Express Edition (VC8)
50
51 2006-04-26 Bernhard Held <bernhard AT bernhardheld.de>
52
53         * device/lib/Makefile: fixed build of gbz80 lib
54
55 2006-04-26 Maarten Brock <sourceforge.brock AT dse.nl>
56
57         * support/regression/tests/bug-460010.c,
58         * support/regression/tests/bug-524691.c,
59         * support/regression/tests/bug-716242.c: removed conditional defines
60           that are already in testfwk.h
61
62 2006-04-25 Maarten Brock <sourceforge.brock AT dse.nl>
63
64         * src/ds390/gen.c (AccAXRrl1, AccAXLrl1): changed to real rotate by 1,
65           (AccAXRsh1): added, shift right by 1,
66           (AccAXLsh, AccAXRsh, AccAXRshS): updated for AccAXRrl1, AccAXRsh1 and
67            AccAXLrl1
68         * support/regression/tests/rotate.c: use <stdint.h> and enabled ds390
69
70 2006-04-25 Bernhard Held <bernhard AT bernhardheld.de>
71
72         * src/SDCCast.c (decorateType): partial fix for RFE 1475769,
73         remove cast to same type
74         * src/SDCCast.c (decorateType): fix for RFE 1475742,
75         optimize 'ifx (op == 0)' resp. 'ifx (op != 0)'
76         * as/z80/Makefile,
77         * link/z80/Makefile: removed, they have moved to
78         Makefile.in files
79         * configure,
80         * configure.in: replaced duplicate message about ucsim by missing sdcpp
81         * install-sh: fix bug #1204398 by setting umask 0022
82         * device/lib/Makefile: separate build of z80 and gbz80 lib
83
84 2006-04-24 Bernhard Held <bernhard AT bernhardheld.de>
85
86         Enabled VPATH feature: changed nearly all Makefiles (149 files).
87         See sdccman.lyx '2.4.10 VPATH feature' about how to use it.
88
89         One basic decision: e.g. src/clean.mk includes further files. In order
90         to make this work there are two solutions:
91         - rename another dozen clean.mk to clean_in.mk, add srcdir to them and
92           run configure on them. This way they can use
93           'include $(srcdir)/port-clean.mk'
94         - always include clean.mk by the Makefile at the same level. To avoid
95           that `make clean` tries to include and build Makefile.dep the
96           MAKECMDGOALS are examined (see e.g. src/Makefile.in). This has been
97           implemented, because now even `make uninstall` doesn't create
98           Makefile.in. clean.mk could be eliminated by pasting it in
99           Makefile.in.
100
101         * debugger/mcs51/Makefile.in: build own objects from library sources
102         (SLIB, SDCC) in current directory
103
104         * configure, configure.in: renamed --disable-device-lib-build in
105         --disable-device-lib; added --enable-doc, the required tools are
106         searched by configure; added result message; the toolchain for the
107         belonging ports are now only built, if the port is enabled.
108
109         * support/regression/*: all output is written in directory gen, because
110         the fwk and ports directories don't livet in the build tree using vpath
111
112         * doc/sdccman.lyx: renamed --disable-device-lib-build to
113         --disable-device-lib, added --enable-doc, added section VPATH
114
115         * sim/ucsim/configure.in,
116         * sim/ucsim/configure.in: hc08 couldn't be disabled, now hc08 and
117         z80 are enabled by default
118
119 2006-04-24 Raphael Neider <rneider AT web.de>
120
121         * src/pic/device.c (pic14_assignConfigWordValue): remember assignments
122             to config word, "pic14_"-prefixed some extern functions
123           (pic14_emitConfigWord): emit __config directive(s) if assignment to
124             config word has been found
125         * src/pic/device.h: added prototypes
126         * src/pic/pcode.c: added "pic14_"-prefix where needed
127         * src/pic/ralloc.c (IS_CONFIG_ADDRESS,pic14_assignRegisters): cosmetic
128             fixup
129         * src/pic/glue.c (pic14_constructAbsMap): handle assignments to config
130             words,
131           (pic14emitRegularMap): ignore config words,
132           (pic14createInterruptVect): moved generating __config directives away
133           (picglue): have __config directives emitted
134
135 2006-04-24 Borut Razem <borut.razem AT siol.net>
136
137         * doc/Makefile: sync with nightly build makefile
138
139 2006-04-24 Raphael Neider <rneider AT web.de>
140
141         * src/pic/pcoderegs.c (OptimizeRegUsage): do not optimize
142             registers that have not been assigned proper liveranges,
143             fixes #1469504 and #1474602,
144           (pCodeRegOptimizeRegUsage): fixed typo in comment
145
146 2006-04-24 Borut Razem <borut.razem AT siol.net>
147
148         * device/examples/main8051.c: deleted - it was removed from CVS
149           24.mar.2000 and after that modified 18.feb.2001, so it reappered
150           after the transition to Subversion
151         * src/SDCCalloc.h: deleted - it was removed  from CVS
152           3.feb.2001 and after that modified 18.feb.2001, so it reappered
153           after the transition to Subversion
154         * sim/ucsim/cpu.gif, sim/ucsim/interrupt.gif, sim/ucsim/new.gif,
155           sim/ucsim/serial1.gif, sim/ucsim/serial2.gif,
156           sim/ucsim/term_cpuopt.gif, sim/ucsim/timers.gif, sim/ucsim/wins.gif,
157           sim/ucsim/post.jpg, sim/ucsim/UCsim.jpg: corrected
158
159 2006-04-22 Maarten Brock <sourceforge.brock AT dse.nl>
160
161         * as/asx8051.dsp: added mcs51/strcmpi.h
162         * as/hc08/as_hc08.dsp: added asm.h, m6808.h, strcmpi.h
163         * as/hc08/aslink.h: updated lnksect prototype
164         * as/hc08/asm.h,
165         * as/mcs51/asm.h: added a_addr to struct area and s_org to struct sym
166         * as/hc08/asmain.c,
167         * as/mcs51/asmain.c (asmbl): init dot.s_org for S_ORG,
168           (newdot): handle A_ABS
169         * as/hc08/asout.c,
170         * as/mcs51/asout.c (outarea): output address
171         * as/hc08/lkaomf51.c,
172         * as/mcs51/lkaomf51.c: disabled unused array UsageType
173         * as/hc08/m08pst.c,
174         * as/mcs51/i51pst.c,
175         * as/z80/z80pst.c: "ABS" is not A_OVR
176         * as/hc08/lkarea.c (newarea): read a_addr,
177           (lnkarea): added codemap array, sort absolute areas to the front,
178            combine all GSINITx/GSFINAL,
179           (find_empty_space, allocate_space): new functions,
180           (lnksect): return next address, handle absolute sections
181         * as/mcs51/lkarea.c (newarea): read a_addr,
182           lnksect2 prototype changed,
183           (lnkarea2): define codemap unsigned, combine all GSINITx/GSFINAL,
184           (find_empty_space, allocate_space): new, factored out of lnksect2,
185           (lnksect2): return next address, handle absolute sections
186         * as/hc08/lkhead.c,
187         * as/mcs51/lkhead.c (newhead): head is absolute but not overlay
188         * as/hc08/lklibr.c (addfile, fndsym),
189         * as/mcs51/lklibr.c (addfile, buildlibraryindex, fndsym): prevent
190           index out of range and detect both '\' and '/'
191         * device/include/mcs51/c8051f200.h: added _XPAGE, removed bad comment
192         * device/include/stdbool.h: removed SDCC_ds390 from check to pass
193           regression tests (ds390 cannot return bool yet)
194         * doc/sdccman.lyx: changed version number, document changed --no-peep,
195           document critical interrupts on z80, document changed SDCC define
196         * src/asm.c (_asxxxx_mapping): fixed .org directive,
197           (_a390_mapping): added .org directive
198         * src/hc08/gen.c (transferAopAop): made bytemask log to fix warning,
199           (genMultOneByte): fixed warnings
200         * src/hc08/hc08.dsp: lowered warning level to 2 to suppress pedantic
201           ones
202         * src/pic16/device.c: removed newReg prototype, removed BYTE_IN_LONG
203         * src/pic16/gen.c (pic16_popGetLabel): made parameter key signed,
204           (pic16_genLeftShiftLiteral, genRightShiftLiteral): fixed warnings
205         * src/pic16/gen.h: changed prototype for pic16_popGetLabel
206         * src/pic16/main.c: removed newReg prototype
207         * src/pic16/pcode.c,
208         * src/pic16/pcode.h (pic16_emitDB): changed parameter c to int to fix
209           warnings
210         * src/pic16/pic16.dsp: lowered warning level to 2 to suppress pedantic
211           ones
212         * src/pic16/ralloc.c
213         * src/pic16/ralloc.h (newReg): changed type to int and size to unsigned
214           to fix warnings
215         * src/pic/pcode.c (allocInternalRegister): changed parameter optype
216           from short to PIC_OPTYPE
217         * src/pic/pic.dsp: lowered warning level to 2 to suppress pedantic ones
218         * src/pic/ralloc.c (newReg, allocInternalRegister): changed parameter
219           optype from short to PIC_OPTYPE
220         * src/port.h: made int_size unsigned to fix warnings
221         * src/SDCC.y: fixed warning on MSVC
222         * src/SDCCicode.c (getArraySizePtr): return unsigned int
223         * src/SDCCopt.c (convertToFcall): fixed warnings
224         * src/SDCCsymt.h: removed double prototype for genSymName
225         * src/xa51/ralloc.c (allocReg): made size unsigned int, type int and
226           offset int to fix warnings
227
228 2006-04-22 Borut Razem <borut.razem AT siol.net>
229
230         * doc/sdccman.lyx, */Makefile, */Makefile.in:
231           references to CVS replaced with Subversion
232
233 2006-04-21 Borut Razem <borut.razem AT siol.net>
234
235         * doc/sdccman.lyx, */Makefile, */Makefile.in:
236           references to CVS replaced with Subversion
237
238 2006-04-19 Borut Razem <borut.razem AT siol.net>
239
240         * src/version.awk: adapted for svn
241         * /asxxxx/asxhtml/*.gif: set property svn:mime-type to image/gif
242           sim/ucsim/doc/*.gif: set property svn:mime-type to image/gif
243           sim/ucsim/doc/*.jpg: set property svn:mime-type to image/jpeg
244           /binutils-avr/etc/*.vi, *.jin: removed all properties
245           support/scripts/sdcc.ico: set property svn:mime-type to image/x-icon
246
247 2006-04-19 Borut Razem <borut.razem AT siol.net>
248
249         * CVS to Subversion migration completed
250
251 2006-04-18 Borut Razem <borut.razem AT siol.net>
252
253         * support/scripts/sdcc.nsi: removed unexisting ${DEV_ROOT}\lib\pic\*.o,
254           ${DEV_ROOT}\lib\src\pic\libdev\*.S, ${DEV_ROOT}\lib\src\pic\libdev\*.inc
255
256 2006-04-17 Borut Razem <borut.razem AT siol.net>
257
258         * device/include/Makefile.in: added pic/*.inc to the installation
259
260 2006-04-15 Bernhard Held <bernhard AT bernhardheld.de>
261
262         * support/regression/collate-results.py: fixed output in case of
263         a valdiag error
264         * support/regression/generate-cases.py: fixed splitting of pathnames
265         with dots
266         * as/hc08/lklibr.c (addfile),
267         * as/mcs51/lklibr.c (addfile): fixed off-by-one bug
268
269 2006-04-11 Raphael Neider <rneider AT web.de>
270
271         * src/pic16/gen.c (getFreePtr, pic16_popRegFromString),
272         * src/pic16/ralloc.c (pic16_allocregWithName): removed debug output
273         * src/pic16/pcode.c (assignValnums): fixed #1460578
274
275 2006-04-11 Raphael Neider <rneider AT web.de>
276
277         * device/lib/pic/libdev/*.c,
278         * device/include/pic/*.h: replaced sfr and data with __sfr and __data,
279           fixes #1468739, enables compilation in --std-c99 mode
280         * support/scripts/inc2h.pl: emit __sfr/__data instead of sfr/data
281
282 2006-04-11 Raphael Neider <rneider AT web.de>
283
284         * src/pic/device.c (find_device): removed debug output
285           (list_valid_pics): enabled verbose listing of supported devices
286         * device/include/stdbool.h: define bool as char for pic14/16 as well
287
288 2006-04-07 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
289
290         * src/SDCC.y: allow using brackets here: "__interrupt (1) __using (1)"
291
292 2006-04-07 Maarten Brock <sourceforge.brock AT dse.nl>
293
294         * .version: bumped version to 2.5.6
295         * src/pic/ralloc.c (newReg): MSVC doesn't support __builtin_return_address
296
297 2006-04-06 Raphael Neider <rneider AT web.de>
298
299         * .version: bumped version to 2.5.6 (pic14 ABI changed)
300         * src/SDCCmain.c: add -DSDCC_PROCESSOR=<id> for pic14 port
301         * src/pic/glue.c (emitSymbolToFile,pic14_constructAbsMap,
302           pic14emitRegularMap,pic14emitMaps): moved output for absolute symbols to
303             pic14_constructAbsMap
304           (pic14printPublics): declare absolute global symbols as global
305           (pic14createInterruptVect),
306         * src/pic/ralloc.c (IS_CONFIG_ADDRESS): support second config word,
307           (newReg): assume new registers unused, use correct name in
308             hashtable (reg->name instead of name), more debugLog output
309         * src/pic/device.h (PIC_device): added fields for verbose output
310         * src/pic/device.c: moved device definition to pic14devices.txt,
311             added routines for runtime parsing of pic14devices.txt,
312             added support for second config word
313         * src/pic/main.c (_process_pragma): removed #pragma maxram,
314           (_pic14_keywords): no longer accept "bit" and "sbit" keywords
315           (_pic14_initPaths): add search paths with "pic" suffix (not "pic14")
316           (_pic14_parseOptions): moved pCodeInitRegisters here
317           (_pic14_do_link): add "pic$(ARCH).lib" to linker arguments
318         * src/pic/pcode.c (AnalyzeBanking): bail out on unset processor,
319           (pCodeInitRegisters): rewrapped comments, perpared new approach to
320             handling the pseudo stack
321         * device/lib/Makefile.in: ignore failures in objects-pic16,
322         * device/lib/pic/{configure,configure.in,Makefile}: added libdev/
323         * device/lib/pic/NEWS: document new dependency on picXXX.lib
324         * device/lib/pic/Makefile.subdir,
325         * device/lib/pic16/Makefile.subdir: improved clean rules
326         * device/lib/pic/libdev/: NEW, pic14 device libraries
327         * device/lib/pic/libsdcc/_gptr{get,put}{1,2,3,4}.S: use _X not X
328         * device/lib/pic/libsdcc/macros.inc: use _X not X, declare default SFRs
329         * device/include/Makefile.in: create subdir and install pic14 headers
330         * device/include/pic/p16f_common.inc: removed unused declarations
331         * device/include/pic/pic16*.h: added header files for 100+ 14 bit
332             PICs from inc2h.pl v1.6,
333             replaced BIT_AT macros with struct declarations
334         * device/include/pic/pic14devices.txt: definition of supported devices,
335             all above improvements contributed by Zik Saleeba, thanks
336         * support/scripts/inc2h.pl: removed BIT_AT, replaced with structs
337         * support/scripts/sdcc.nsi: also install pic14 device libraries and
338             headers
339
340 2006-04-06 Maarten Brock <sourceforge.brock AT dse.nl>
341
342         * device/include/mcs51/c8051f410.h: added interrupt numbers,
343         * device/include/mcs51/c8051f200.h: old SiLabs mcu completes the list,
344           thanks to Charles Olds
345
346 2006-04-06 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
347
348         * debugger/mcs51/cmd.c (infoRegisters): show return address on stack
349
350 2006-04-06 Maarten Brock <sourceforge.brock AT dse.nl>
351
352         * src/SDCCpeeph.c (labelIsReturnOnly): fixed bug 1464657
353         * src/mcs51/gen.c (genJumpTab): fixed bug in medium model
354         * support/regression/bug1464657.c: added, new test
355
356 2006-04-05 Maarten Brock <sourceforge.brock AT dse.nl>
357
358         * src/SDCCmain.c (preProcess): implemented RFE 1449908, define SDCC as the
359           version number
360
361 2006-04-05 Maarten Brock <sourceforge.brock AT dse.nl>
362
363         * src/SDCCpeeph.c (initPeepHole): implemented RFE 1460196, when both
364           --no-peep and --peep-file <file> are used don't use default rules but
365           do use the <file>
366
367 2006-04-05 Maarten Brock <sourceforge.brock AT dse.nl>
368
369         * src/mcs51/gen.c (genCall): fixed bug 1457608
370
371 2006-03-30 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
372
373         * doc/sdccman.lyx: reverted to version 1.129 of december as my latest
374         changes seem to cause (trigger?) problems with the build system.
375
376 2006-03-29 Maarten Brock <sourceforge.brock AT dse.nl>
377
378         * src/SDCCpeeph.c (operandsLiteral): new, added,
379           (callFuncByName): inserted operandsLiteral
380         * src/mcs51/peeph.def: reenabled 132.e, added extra check to 132.x
381
382 2006-03-28 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
383
384         * doc/sdccman.lyx: added paragraph "Use of SDCC in Education"
385         * src/mcs51/peeph.def: disabled rule 132.e fixing bug #1453093
386
387 2006-03-24 Maarten Brock <sourceforge.brock AT dse.nl>
388
389         * src/z80/gen.c (genFunction, genEndFunction): fixed bug 1160666,
390           implemented patch 1120823 Thanks to Willy De la Court (normal
391           interrupts need an interrupt number now if they are made critical),
392           and enabled nesting of critical functions though not for gbz80
393           (genCritical, genEndCritical): added functions
394           (genZ80Code): added cases for CRITICAL and ENDCRITICAL
395         * src/z80/mappings.i: added "ei" to all mappings
396
397 2006-03-20 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
398
399         * sim/ucsim/cmd.src/newcmdcl.h: applied patch fixing GCC 4.1 build
400         submitted by the Debian SDCC maintainer Aurelien Jarno:
401         "Credits goes to Martin Michlmayr, who rebuilt the whole Debian
402         archive with gcc 4.1 on mips and wrote the patch"
403
404 2006-03-16 Raphael Neider <rneider AT web.de>
405
406         * src/pic16/genarith.c (genAddLit): simplified and fixed case where
407           the left operand is shorter than the result (c* = lit-c* + int),
408           fixes bug #1450796
409         * src/pic16/gen.c (genRightShift): check IS_SYMOP before accessing
410           OP_SYMBOL
411
412 2006-03-14 Vangelis Rokas <vrokas AT users.sourceforge.net>
413
414         * src/.version: increased version number to 2.5.5
415         * src/SDCCmain.c (linkEdit): do not test for PIC16 target since, PIC16
416         linking is done manually in pic16 port's _linkEdit,
417         * src/SDCCsymt.c (compStructSize): for target PIC16 and shell variable
418         PIC16_PACKED_BITFIELDS, compact bitfield structures as much as possible,
419         * src/pic16/gen.c (aopForSym): when direct register name is WREG then
420         allocate asmop as AOP_ACC,
421         (aopForRemat): added parameter 'bool result' in function declaration,
422         (pic16_aopGet): return AOP_ACC when accessing WREG,
423         (pic16_popGetTempReg): minor modification,
424         (pic16_popRegFromIdx): first try with 'pic16_regWithIdx' then with
425         'pic16_allocWithIdx',
426         (genPcall): removed ftype, usage of OP_SYM_TYPE asserted error when
427         calling function in absolute addresses,
428         (genAssign): take into account AOP_ACC asmop,
429         * src/pic16/pcode.c (pic16_newpCodeOpReg): minor modifications,
430         * src/pic16/pcoderegs.c: some debug functions and lines added,
431         * src/pic16/ralloc.c (decodeRegType): added but commented out,
432         * (pic16_typeRegWithIdx): search 'pic16_dynInternalRegs' for given
433         register too,
434         * (pic16_findFreeReg, pic16_findFreeRegNext): allocate new register via
435         call to allocReg, not by manually allocating a new one,
436         (pic16_assignRegisters): now before going through the register
437         allocating functions mark all registers as free. This eliminates some
438         side effects resulting from peephole parser done earlier in the backbone
439
440 2006-03-13 Maarten Brock <sourceforge.brock AT dse.nl>
441
442         * src/SDCCicode.c (geniCodeLogic),
443         * src/SDCCast.c (decorateType): applied patch by Bernhard for rfe 1422617
444
445 2006-03-10 Maarten Brock <sourceforge.brock AT dse.nl>
446
447         * src/mcs51/gen.c (sameReg): new, checks if two aop regs are the same,
448           (genSend): bugfix, do not allocate and free twice,
449           (shiftRLong): handle partially overlapping aops
450         * support/regression/tests/bitopcse.c: fixed warning redefined idata
451
452 2006-03-08 Borut Razem <borut.razem AT siol.net>
453
454         * support/regression/fwk/include/testfwk.h: added defines for xdata, idata
455           for pic16
456
457 2006-03-08 Maarten Brock <sourceforge.brock AT dse.nl>
458
459         * support/regression/tests/bug1409955.c: new, added
460         * src/mcs51/gen.h: changed asmop.freed:1 to asmop.allocated for tracking
461         * src/mcs51/gen.c (newAsmop): set asmop.allocated to 1,
462           (aopForSym, aopOp): increment asmop.allocated if reused,
463           (freeAsmop): decrement asmop.allocated and check for zero instead of
464           using asmop.freed,
465           (freeForBranchAsmop): use asmop.allocated instead of asmop.freed,
466           (genNot, genCpl, genUminus, genMinus, genMult, genDiv, genMod, genCmpGt,
467            genCmpLt, genAndOp, genOrOp, genAnd, genOr, genXor, genRRC, genRLC,
468            genGetHbit, genGetAbit, genGetByte, genGetWord, genSwap,
469            genLeftShiftLiteral, genLeftShift, genRightShiftLiteral,
470            genSignedRightShift, genRightShift, genDataPointerGet,
471            genPagedPointerGet, genFarPointerGet, genCodePointerGet,
472            genGenPointerGet, genDataPointerSet, genAssign, genCast): free asmop's
473             in reverse order from allocation,
474           (genPlus, genCmpEq): free asmop's in reverse order from allocation and
475             added swappedLR to keep track
476         * support/regression/fwk/include/testfwk.h: added defines for xdata, idata,
477           pdata & code for GCC, z80, gbz80 & hc08
478         * support/regression/tests/zeropad.c: moved defines to testfwk.h
479
480 2006-03-08 Raphael Neider <rneider AT web.de>
481
482         * src/pic16/main.c (_hasNativeMulFor): fixed bug #1444425
483
484 2006-03-07 Maarten Brock <sourceforge.brock AT dse.nl>
485
486         * device/include/mcs51/c8051f410.h: new SiLabs mcu
487         * src/ds390/peeph.def: disabled 186.d and 227.a as fix for #1434401
488         * support/regression/tests/array.c: added parenthesis, made arrays unsigned
489
490 2006-03-06 Borut Razem <borut.razem AT siol.net>
491
492         * support/regression/ports/pic16/spec.mk: link with libm18f.lib,
493           made the linker quiet
494
495 2006-03-06 Vangelis Rokas <vrokas AT users.sourceforge.net>
496
497         * src/pic16/gen.c (genPcall): fixed bug #1443644
498         * src/pic16/device.h (struct pic16_options_t): added 'int CATregs' flag
499         which dumps before the function entry point a data byte which represents
500         the number of the local variables used by the specified function, added
501         'xinst' for initial support for Extended Instruction Support,
502         * src/pic16/gen.c (aopForSym, pic16_aopGet): beautifications,
503         (pic16_testStackOverflow): do not prefix GSTACK_TEST_NAME with
504         port->fun_prefix anymore (may change later),
505         (genFunction, genEndFunction): do not store/restore local registers for
506         _main (this should take care the --main-return command line option in
507         the future),
508         (genOr): removed some legacy pic-port instructions,
509         * src/pic16/genarith.c (genAddLit): re-enabled old code because
510         performing operations with SFR's causes data to be written more than
511         once to each SFR. Perhaps SFRs should be handled in special cases...
512         * src/pic16/glue.c: macros BIG_ENDIAN and BYTE_IN_LONG are moved to
513         pcode.h
514         * src/pic16/main.c (_process_pragma): stack bound checking did not take
515         into account for stack starting position,
516         (struct OPTIONS pic16_optionsTable): added command line argument
517         --extended or -y for Extended Instruction Support,
518         * src/pic16/ralloc.c (pic16_decodeOp): added case for FUNCTION,
519         (deassignLRs): *** perhaps the most important change, old 'for' code
520         (commented out for reference), didn't account for some registers which
521         were left marked 'not free' after a pointer operation. The change
522         reduces register usage a lot in some cases
523
524 2006-03-04 Borut Razem <borut.razem AT siol.net>
525
526         * support/regression/ports/hc08/spec.mk: remove *.asm in traget
527           _clean
528         * support/regression/tests/bug-524697.c: decreased array size for
529           mcs51 to fit into the internal RAM
530         * support/regression/Makefile.in: a little bit more verbose
531
532 2006-03-03 Borut Razem <borut.razem AT siol.net>
533
534         * support/regression/fwk/lib/testfwk.c,
535           support/regression/fwk/include/testfwk.h: introduced function
536           _prints(), nonrecursive _printn(), call _initEmu() from main()
537         * support/regression/ports/gbz80/support.asm,
538           support/regression/ports/ucz80/support.asm,
539           support/regression/ports/z80/support.asm,
540           support/regression/ports/ds390/support.c,
541           support/regression/ports/hc08/support.c,
542           support/regression/ports/host/support.c,
543           support/regression/ports/mcs51/support.c,
544           support/regression/ports/xa51/support.c: added empty _initEmu()
545           function
546         * support/regression/ports/pic16/gpsim.cmd,
547           support/regression/ports/pic16/spec.mk,
548           support/regression/ports/pic16/support.c,
549           support/regression/Makefile.in: added pic16 regression test
550
551 2006-03-01 Raphael Neider <rneider AT web.de>
552
553         * src/pic16/gen.c (genPcall,pic16_derefPtr,genGenPointerGet,
554           genConstPointerGet): use safe way of generating MOVFF to cover
555             literals as well as registers, fixes bug #1440527
556         * src/pic16/glue.c (pic16_printIvalBitFields): prevent NULL pointer
557             dereference
558           (pic16_printIvalUnion,pic16_isUnion): NEW, handle initialized unions
559             more correctly, fixes bug #1232186
560           (pic16_printIval): use pic16_printIvalUnion() for initialized unions
561         * src/pic16/main.c (_pic16_linkEdit): reorder linker arguments to make
562             gplink guess the correct processor in more cases, applied patch
563             from Till Riedel attached to and fixing bug #1436552
564
565 2006-02-20 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
566
567         * support/regression/tests/array.c: added, contains check for #1434401
568         * src/mcs51/peeph.def: disabled 186.d as temporary fix for #1434401
569
570 2006-02-16 Maarten Brock <sourceforge.brock AT dse.nl>
571
572         * device/include/mcs51/at89s8253.h: new, thanks to Krzysztof Polomka
573         * device/include/mcs51/at89S8252.h: fixed, thanks to Krzysztof Polomka
574         * device/include/mcs51/c8051f326.h,
575         * device/include/mcs51/c8051f340.h: new SiLabs mcu's
576         * device/include/mcs51/c8051f000.h,
577         * device/include/mcs51/c8051f018.h,
578         * device/include/mcs51/c8051f020.h: used () with __at, renamed IDLE,STOP to
579           PCON_IDLE,PCON_STOP and added sfr16 definitions
580
581 2006-02-14 Maarten Brock <sourceforge.brock AT dse.nl>
582
583         * src/mcs51/gen.c (genPlus, genMinus, genMult, genGetAbit, genGetByte,
584           genGetWord): fixed bug 1409955
585
586 2006-02-14 Maarten Brock <sourceforge.brock AT dse.nl>
587
588         * device/include/hc08/mc68hc908gp32.h,
589         * device/include/hc08/mc68hc908jb8.h: removed AWUL, added PTA6 & PTA7
590
591 2006-02-13 Maarten Brock <sourceforge.brock AT dse.nl>
592
593         * src/SDCCast.c (constExprValue): return NULL if not a value
594         * src/SDCCglue.c (printIvalArray): fixed bug 1225568
595         * src/hc08/gen.c(genUnpackBits, genUnpackBitsImmed): fixed bug 1019480
596         * support/regression/tests/bitfields.c: enabled signed bitfield for all
597
598 2006-02-13 Borut Razem <borut.razem AT siol.net>
599
600         * src/regression/ptrarg.c: added, fails due to bug #1430967
601         * src/regression/Makefile: ptrarg.c added, ...
602
603 2006-02-12 Maarten Brock <sourceforge.brock AT dse.nl>
604
605         * src/z80/gen.c (genUnpackBits): fixed bug 1019480
606         * support/regression/tests/bitfields.c: enabled signed bitfield for z80
607
608 2006-02-11 Borut Razem <borut.razem AT siol.net>
609
610         * src/SDCCmain.c: Added "sdcc: Calling linker..." if --verbose,
611           print "Processor: xxx" message to stdout only if --verbose
612
613 2006-02-11 Maarten Brock <sourceforge.brock AT dse.nl>
614
615         * src/SDCCglue.c (printIvalStruct): fixed bug 1426356 union initializer
616         * support/regression/tests/bug1426356.c: added
617         * support/regression/tests/bitfields.c: removed 2 tests
618
619 2006-02-10 Maarten Brock <sourceforge.brock AT dse.nl>
620
621         * device/include/mcs51/at89c51snd1c.h: updated comments, see patch 1428901
622         * device/include/mcs51/c8051f330.h,
623         * device/include/mcs51/c8051f350.h: used () with __at, renamed IDLE,STOP to
624           PCON_IDLE,PCON_STOP and added sfr16 definitions
625         * device/lib/_divsint.c,
626         * device/lib/_divuint.c,
627         * device/lib/_divulong.c,
628         * device/lib/_divulong.c: renamed a,b to x,y to avoid confusion, fixed
629           register bank bug for small stackauto
630
631 2006-02-09 Maarten Brock <sourceforge.brock AT dse.nl>
632
633         * support/regression/fwk/lib/timeout.c: include <stdlib.h> for exit()
634
635 2006-02-08 Maarten Brock <sourceforge.brock AT dse.nl>
636
637         * support/regression/ports/mcs51-xstack-auto/spec.mk: forgot -I(...)/mcs51
638         * all.dsp: corrected several bin paths
639         * device/include/mcs51/c8051f120.h,
640         * device/include/mcs51/c8051f300.h,
641         * device/include/mcs51/c8051f310.h: used () with __at and renamed IDLE,STOP
642           to PCON_IDLE,PCON_STOP
643         * device/include/mcs51/c8051f320.h: see above, also added sfr16 definitions
644         * device/lib/printf_large.c (output_float): fixed bug 1388703
645         * support/regression/tests/bug1057979.c: added test for bug 1388703
646
647 2006-02-08 Raphael Neider <rneider AT web.de>
648
649         * src/pic/pcode.c (pciTRIS): fixed typo,
650           (BuildFlow,LinkFlow_pCode): added (disabled) debug output,
651           (LinkFlow): fixed handling of flows that end in a call,
652           (ReuseReg): perform safety check earlier
653         * src/pic/pcoderegs.c (pCodeRegMapLiveRangesInFlow): fixed
654             to work with flows at the beginning of a pBlock,
655             fixes #1426557 (Symbol not previously defined),
656           (pic14_ReMapLiveRanges): NEW, destroy and rebuild register
657             usage information
658           (RemoveUnusedRegisters): update register usage info
659         * src/pic/ralloc.c (newReg): prevent duplicate registers from being
660             created, reuse existing ones instead
661         * src/pic/gen.c (genPcall): fixed #1424719
662
663 2006-02-07 Bernhard Held <bernhard AT bernhardheld.de>
664
665         * link/z80/lkmain.c,
666         * link/z80/lklex.c,
667         * link/z80/lkdata.c,
668         * link/z80/aslink.h: fixed build on current cygwin:
669         replaced getline() by lk_getline()
670
671 2006-02-01 Borut Razem <borut.razem AT siol.net>
672
673         * src/regression/add.c, src/regression/add2.c, src/regression/add3.c,
674           src/regression/add4.c, src/regression/and1.c, src/regression/and2.c,
675           src/regression/arrays.c, src/regression/b.c, src/regression/bank1.c,
676           src/regression/bool1.c, src/regression/bool2.c,
677           src/regression/bool3.c, src/regression/call1.c,
678           src/regression/compare.c, src/regression/compare10.c,
679           src/regression/compare2.c, src/regression/compare3.c,
680           src/regression/compare4.c, src/regression/compare5.c,
681           src/regression/compare6.c, src/regression/compare7.c,
682           src/regression/compare8.c, src/regression/compare9.c,
683           src/regression/configword.c, src/regression/for.c,
684           src/regression/inline.c, src/regression/mult1.c,
685           src/regression/nestfor.c, src/regression/or1.c,
686           src/regression/pointer1.c, src/regression/ptrfunc.c,
687           src/regression/rotate1.c, src/regression/rotate2.c,
688           src/regression/rotate3.c, src/regression/rotate4.c,
689           src/regression/rotate5.c, src/regression/rotate6.c,
690           src/regression/rotate7.c, src/regression/string1.c,
691           src/regression/struct1.c, src/regression/sub.c,
692           src/regression/sub2.c, src/regression/switch1.c,
693           src/regression/while.c, src/regression/xor.c,
694           src/regression/create_stc, src/regression/simulate,
695           src/regression/rt.sh, src/regression/Makefile: reenabled Scott's PIC14
696           regression tests
697         * src/regression/gpsim_assert.h: added
698
699 2006-01-28 Bernhard Held <bernhard AT bernhardheld.de>
700
701         * src/ds390/gen.c (unsaveRegisters): fixed literal function pointer
702         ((void (code *) (void)) 0) ();
703         * as/hc08/aslex.c,
704         * as/hc08/aslink.h,
705         * as/hc08/asm.h,
706         * as/hc08/asmain.c,
707         * as/hc08/lkdata.c,
708         * as/hc08/lklex.c,
709         * as/hc08/lkmain.c,
710         * as/mcs51/aslex.c,
711         * as/mcs51/aslink.h,
712         * as/mcs51/asm.h,
713         * as/mcs51/asmain.c,
714         * as/mcs51/lkdata.c,
715         * as/mcs51/lklex.c,
716         * as/mcs51/lkmain.c,
717         * as/z80/aslex.c,
718         * as/z80/asm.h,
719         * as/z80/asmain.c: fixed build on current cygwin:
720         replaced getline() by as_getline()
721
722 2006-01-27 Bernhard Held <bernhard AT bernhardheld.de>
723
724         * src/SDCC.y: fixed bug #716242, exchanged pointer and function
725         declarator in the symbol chain
726         * src/SDCCsymt.h,
727         * src/SDCCsymt.c (processFuncPtrArgs): added, removes "(void)"
728         parameter list for function pointers
729         * src/SDCCast.c (decorateType): added call of processFuncPtrArgs()
730         * support/regression/tests/bug-716242.c: added
731
732 2006-01-20 Bernhard Held <bernhard AT bernhardheld.de>
733
734         * src/SDCCicode.c (geniCodeAdd, geniCodeArray): use char for array
735         offset if possible
736         * src/SDCCast.c (getLeftResultType): 255 fits in char, not 256
737
738 2006-01-18 Bernhard Held <bernhard AT bernhardheld.de>
739
740         * src/SDCCast.c (backPatchLabels): fixed bug #1408066: made it
741         inifinitely recurseable, added static
742         * support/regression/tests/bug-1408066.c: added
743
744 2006-01-17 Bernhard Held <bernhard AT bernhardheld.de>
745
746         * src/SDCCicode.h,
747         * src/SDCCicode.c (newiTempPreheaderLabel, newiTempLoopHeaderLabel):
748         renamed, added possibility to create "postLoopLbl"-labels
749         * src/SDCCBBlock.c (iCodeBreakDown): renamed newiTempPreheaderLabel to
750         newiTempLoopHeaderLabel
751         * src/SDCCloop.c (newInduction, newRegion, backEdges, insertIntoLoop,
752         isNotInBlocks, addToExitsMarkDepth, createLoop, dominatedBy,
753         addDefInExprs, assignmentsToSym, isOperandInvariant, pointerAssigned,
754         hasNonPtrUse, loopInvariants, addressTaken, findInduction,
755         findDefInRegion, mergeRegions, ifMerged, mergeInnerLoops): made static,
756         (pinduction, pregion, hasIncomingDefs, findLoopEndSeq): disabled,
757         (basicInduction): fixed bug #136564, made static,
758         (loopInduction): changed parameter of basicInduction, made static,
759         (addPostLoopBlock): added
760         * src/SDCCloop.h: removed backEdges, pregion, pinduction,
761         loopOptimizations, addressTaken, findDefInRegion, hasIncomingDefs,
762         findLoopEndSeq
763         * support/regression/tests/bug-136564.c: added
764         * support/regression/ports/mcs51-xstack-auto/spec.mk: added
765         --std-sdcc99 to LIBSDCCFLAGS
766
767 2006-01-16 Bernhard Held <bernhard AT bernhardheld.de>
768
769         * src/SDCCicode.c (geniCodeIfx): fix bug 1406131: always false
770         while loop
771         * support/regression/tests/bug-1406131.c: added
772
773 2005-12-31 Bernhard Held <bernhard AT bernhardheld.de>
774
775         * src/SDCCast.c (decorateType): fix promotion of unary minus
776         * src/SDCCsymt.c (computeType): beautified
777         * src/SDCCval.c (cheapestVal): beautified, old non-Ansi version removed,
778         (valUnaryPM, valComplement): fix sign and promotion,
779         (valNot): ANSI: result type is int (SDCC: unsigned char)
780         * support/regression/tests/uminus.c: speedup by removing superflous
781         test case 'int'
782         * support/regression/tests/onebyte.c: added promotion and signedness
783         tests for unary minus
784         * support/regressions/tests/bug-477927.c: disable warning about
785         uninitialized variables
786         * support/regression/tests/not.c: added
787
788 2005-12-28 Bernhard Held <bernhard AT bernhardheld.de>
789
790         * device/lib/Makefile.in: added --std-sdcc99 to CFLAGS
791         * src/mcs51/gen.c (gen51Code): show final register usage after
792         fillGaps in asm with --i-code-in-asm
793         * src/SDCClrange.c (sequenceiCode, setLiveFrom, setLiveTo,
794         markLiveRanges, markAlive, findNextUseSym, findNextUse, unvisitBlocks,
795         incUsed, rliveClear, adjustIChain): made static,
796         (setFromRange): excluded because it's unused,
797         (findPrevUseSym, markWholeLoop): added,
798         (findPrevUse): rewritten; fixes bug 895992; now a complete search
799         through all branches of predecessors enables sdcc to emit the warning
800         W_LOCAL_NOINIT, marking of outermost loop was incomplete,
801         (rlivePoint): made static, added parameter emitWarnings which is only
802         true during the first run out of two,
803         (findRecursiveSucc, findRecursivePred): removed,
804         (computeLiveRanges): made static, added parameter emitWarnings,
805         (dumpIcRlive): added for debugging only
806         * src/SDCClrange.h: added boolean parameter to computeLiveRanges(),
807         removed prototype of setFromRange()
808         * src/SDCCopt.c (eBBlockFromiCode): added new parameter emitWarnings
809         in call of computeLiveRanges()
810         * support/regression/tests/bug-895992.c: added
811         * support/regression/tests/bug-971834.c: added
812         * support/valdiag/tests/bug-895992.c: added
813         * support/valdiag/tests/bug-971834.c: added
814
815 2005-12-18 Raphael Neider <rneider AT web.de>
816
817         * src/pic16/gen.c: added IS_DIRECT macro for "direct" operands,
818           (genUnpackBits): improved code for direct operands,
819           (genPackBits): improved code for literal assignment to bitfields
820             and for direct destination operands (no FSR indirection),
821             prevented redundant AND, fixes #1362800,
822           (AccLsh): added parameter to disable masking of the result
823         * src/pic16/pcode.c (pic16_safepCodeUnlink): fixed to work with
824           skip instructions with side-effects (like incfsz),
825           (pic16_pCodeIsAlive): suppress verbose output unless pcode_verbose,
826         * src/pic16/pcoderegs.c (RemoveRegsFromSet): removed annoying warning
827         * device/lib/pic16/Makefile.common.in: added --asm=@GPASM@ to CC,
828           fixes #1375263
829
830 2005-12-11 Bernhard Held <bernhard AT bernhardheld.de>
831
832         * src/SDCCicode.c (geniCodeAssign): fixed bug 11369874, don't use
833         volatile variables as spill location
834
835 2005-12-10 Bernhard Held <bernhard AT bernhardheld.de>
836
837         * src/SDCCcse.c (findCheaperOp): fixed bug 1376320, copy signedness to
838         replacing literals
839         * support/regression/tests/bug-1376320.c: added
840
841 2005-12-08 Raphael Neider <rneider AT web.de>
842
843         * src/pic/device.c: renamed is_shared to pic14_is_shared
844         * src/pic/gen.c (genIfx): re-enabled handling of sbits
845         * src/pic/glue.c (emitSymbolToFile): added workaround for sbits,
846           (is_valid_identifier): added for above workaround
847
848 2005-12-07 Maarten Brock <sourceforge.brock AT dse.nl>
849
850         * device/lib/Makefile.in: fixed to enable port-specific-objects
851         * device/lib/ds390/i2c390.c (BitOutI2C): optimized by making bout unsigned
852           char, thanks Hubert Sack
853         * doc/sdccman.lyx: documented --xstack-loc,
854           elaborated a bit more on interrupts and pitfalls,
855           removed "setjmp/longjmp unsupported",
856           documented some unsupported C99 features
857         * src/SDCCmain.c (linkEdit): adapted default lib path for --stack-auto
858         * src/SDCCpeeph.c (readRules): inserted patch 1367130 for finding missing
859           if, thanks Hubert Sack
860         * src/mcs51/gen.c (genEndFunction): enabled "pop psw" for regbank 0 isr
861         * support/regression/Makefile.in: test-mcs51-stack-auto no longer needs to
862           make make_library
863         * support/regression/get_ticks.py: new, get cpu cycles and code size, so
864           regression tests can report resource usage (rfe 700441)
865         * support/regression/collate-results.py: report resource usage
866         * support/regression/ports/ds390/spec.mk,
867         * support/regression/ports/hc08/spec.mk,
868         * support/regression/ports/mcs51/spec.mk,
869         * support/regression/ports/ucz80/spec.mk: run sim output through get_ticks
870         * support/regression/ports/ds390/uCsim.cmd,
871         * support/regression/ports/hc08/uCsim.cmd,
872         * support/regression/ports/mcs51/uCsim.cmd,
873         * support/regression/ports/ucz80/uCsim.cmd: inserted "state" to report time
874         * support/regression/ports/mcs51-stack-auto/spec.mk: no need to build the
875           library, use the default one
876         * support/regression/ports/mcs51-xstack-auto/spec.mk: inserted rules for
877           building the library
878
879 2005-12-06 Maarten Brock <sourceforge.brock AT dse.nl>
880
881         * config.dsp: added dependency on .version and configure_vc.awk
882         * device/include/setjmp.h: updated for --stack-auto and --xstack
883         * device/include/mcs51/at89c51snd1c.h: corrected line endings
884         * device/include/mcs51/XC866.h: added, thanks Llewellyn van Zyl
885         * device/lib/_setjmp.c: updated for --stack-auto and --xstack
886         * device/lib/libsdcc.lib: added _setjmp
887         * src/SDCCast.c (createIvalCharPtr): fixed warnings,
888           (decorateType): fixed bug 1372851,
889           (optimizeGetHbit): fixed warning
890         * src/SDCCglue.c (printIvalChar, printIvalArray): adapted for flexible
891           array initialisation
892         * support/regression/tests/bug1057979.c: added test for bug 1358192
893         * support/regression/tests/setjmp.c: added, test for setjmp/longjmp
894
895 2005-12-03 Borut Razem <borut.razem AT siol.net>
896
897         * support/scripts/sdcc.nsi: added /SOLID option to "SetCompressor lzma"
898           command since the NSIS was upgraded to version 2.11 on CF x86-linux2
899
900 2005-11-29 Bernhard Held <bernhard AT bernhardheld.de>
901
902         * src/SDCCast.c (createIvalStruct, createIvalArray, createIvalPtr,
903         createIval): implement symbol independant "flexible array member",
904         (createIvalCharPtr): implemented flexible array initialisation with a
905         string
906         * src/SDCCsymt.c (copyStruct): removed,
907         (getSize): fixed misleading comment,
908         (getAllocSize): removed, the additional allocation size is now in
909         sym->flexArrayLength,
910         (checkStructFlexArray): new, syntax checks for flexible array members,
911         (compStructSize): added syntax checks for "flexible array members"
912         (copyStruct): removed,
913         (copyLinkChain): removed inefficient fix for bug 770487
914         * src/SDCCglue.c (emitRegularMap): getAllocSize has been removed
915         * src/SDCCsymt.h: added structdef.b_flexArrayMember and
916         symbol->flexArrayLength
917         * src/SDCCerr.c,
918         * src/SDCCerr.h: added W_INVALID_FLEXARRAY, W_C89_NO_FLEXARRAY,
919         E_FLEXARRAY_NOTATEND and E_FLEXARRAY_INEMPTYSTRCT
920         * support/regression/tests/structflexarray.c: added
921         * support/valdiag/tests/structflexiblearray.c: added
922
923 2005-11-29 Bernhard Held <bernhard AT bernhardheld.de>
924
925         * src/SDCCast.c (decorateType): fixed bug 1368489
926         * support/Util/SDCCerr.c,
927         * support/Util/SDCCerr.h: added warning W_CMP_SU_CHAR
928
929 2005-11-28 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
930
931         * device/include/mcs51/at89c51snd1c.h: added file submitted by
932           Weston T. Schmidt <schmidtw AT users.sourceforge.net>, patch #1368001
933
934 2005-11-27 Borut Razem <borut.razem AT siol.net>
935
936         * support/cpp2/cppinit.c, support/cpp2/cpplib.h, support/cpp2/mkdeps.c,
937           support/cpp2/mkdeps.h: added command line option
938           -obj-ext=<extension> to SDCPP to define object file externion, used
939           for generation of make dependencies (-M)
940         * src/SDCCmain.c: pass -obj-ext=<extension> to SDCPP
941
942 2005-11-26 Borut Razem <borut.razem AT siol.net>
943
944         * support/scripts/sdcc.nsi: added small-stack-auto libraries,
945           added missing device/lib/mcs51/crt*.asm, pic and pic16 sources,
946           added pic and pic16 libraries
947
948 2005-11-26 Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
949
950         * device/include/float.h: Corrected typo in prototype of __fsgt
951
952 2005-11-25 Borut Razem <borut.razem AT siol.net>
953
954         * sdcc/device/lib/Makefile.in, sdcc/device/lib/incl.mk:
955           added creation of model-mcs51-stack-auto libraries
956
957 2005-11-24 Bernhard Held <bernhard AT bernhardheld.de>
958
959         * src/SDCCsymt.c (copyLinkChain): fixed bug 770487, copy structdef
960         and fields-list too
961         * src/SDCCast.c (createIvalArray): removed obsolete comment
962
963 2005-11-24 Borut Razem <borut.razem AT siol.net>
964
965         * sdcc/device/lib/Makefile.in: remove all unnecessary files, 2nd try...,
966           added missing device/lib/mcs51/crt*.asm sources
967
968 2005-11-23 Bernhard Held <bernhard AT bernhardheld.de>
969
970         * src/SDCCast.c (createIvalCharPtr): fixed bug 1348271
971
972 2005-11-22 Maarten Brock <sourceforge.brock AT dse.nl>
973
974         * device/lib/_fs2schar.c,
975         * device/lib/_fs2sint.c,
976         * device/lib/_fs2slong.c: optimized inline asm
977
978 2005-11-21 Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
979
980         * device/lib/_fs2slong.c, device/lib/_fs2sint.c, device/lib/_fs2char.c:
981           Better handling of floats between -1.0 and 0.0.
982
983 2005-11-20 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
984
985         * src/mcs51/peeph.def: added missing "if"s as noted by Hubert Sack.
986           (the missing "if"s prohibited removal of redundant labels)
987
988 2005-11-19 Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
989
990         * device/lib/_fs2slong.c, device/lib/_fs2sint.c, device/lib/_fs2char.c:
991           Properly convert floats between -1.0 and 0.0 to long, int, and char
992           types (max integer value of negative floats tends to zero).
993         * device/lib/modff.c, device/lib/ceilf.c, device/lib/floorf.c:
994           Removed changes made so to work properly with floats between
995           -1.0 and 0.0, as the problem is fixed in _fs2slong.c, _fs2sint.c,
996           and _fs2char.c
997
998 2005-11-18 Bernhard Held <bernhard AT bernhardheld.de>
999
1000         * src/SDCCcse.c (ReplaceOpWithCheaperOp): minor fix for debugging only
1001         * src/mcs51/gen.c (genUnpackBits): better code and a fix,
1002         (genCast) cosmetic change
1003         * src/ds390/gen.c (genUnpackBits, ): ported from mcs51
1004         * src/ds390/ralloc.c (packRegsForAssign): ported fix for bitfields
1005         from mcs51
1006         * support/regression/tests/bitfields (testSignedBitfields): added
1007
1008 2005-11-18 Borut Razem <borut.razem AT siol.net>
1009
1010         * sdcc/device/lib/Makefile.in: remove all unnecessary files
1011         * device/lib/pic/Makefile.rules, device/lib/pic16/Makefile.subdir:
1012           introduced SILENT option to make building of pic16 libraries less
1013
1014 2005-11-18 Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
1015
1016         * device/lib/modff.c, device/lib/ceilf.c, device/lib/floorf.c:
1017           Now they work properly with floats between -1.0 and 0.0
1018         * device/lib/printf_large.c: Removed temporary patch for bug 1358192
1019
1020 2005-11-18 Maarten Brock <sourceforge.brock AT dse.nl>
1021
1022         * src/SDCCicode.c (printOperand): added missing else
1023
1024 2005-11-18 Bernhard Held <bernhard AT bernhardheld.de>
1025
1026         * src/SDCCsymt.c (computeType): fixed bug 1358192: added missing else,
1027         reformatted for better readability
1028         * src/mcs51/gen.c (genUnpackBits): initial, incomplete support for
1029         signed bitfields
1030
1031 2005-11-17 Borut Razem <borut.razem AT siol.net>
1032
1033         * device/lib/pic16/Makefile.rules, device/lib/pic16/Makefile.subdir:
1034           introduced SILENT option to make building of pic16 libraries less
1035           verbose - used for nightly snapshot build
1036         * doc/sdccman.lyx: documented that SDCDB and ucSim are currently not
1037           available on Win32 platforms.
1038         * sdcc/device/lib/Makefile.in: added library sources for mcs51, small,
1039           medium, large, pic and pic16
1040
1041 2005-11-16 Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
1042
1043         * device/lib/printf_large.c: Temporary patch for bug 1358192:
1044           printf("%f"...) sets fraction to zero.
1045
1046 2005-11-16 Raphael Neider <rneider AT web.de>
1047
1048         * src/pic/pcode.c (LinkFlow): handle empty flows correctly,
1049           fixes #1357221
1050         * src/pic/gen.c (genIfx): implemented for CARRY bit
1051         * src/pic16/gen.c (genAssign,genCast): fixed assigning/casting
1052           to generic pointers, fixes #1357332,
1053           (pic16_movLit2f): NEW,
1054           (pic16_storeForReturn,genDataPointerSet): use pic16_movLit2f
1055
1056 2005-11-14 Maarten Brock <sourceforge.brock AT dse.nl>
1057
1058         * src/SDCCmain.c (parseCmdLine): fixed bug 1356800, thanks rsudjian
1059
1060 2005-11-11 Raphael Neider <rneider AT web.de>
1061
1062         * src/pic/gen.c: handle FPOINTERS like POINTERS everywhere
1063         * src/pic16/gen.c (pic16_derefPtr): now works for non-pointers as well,
1064           compute pointer's type from operand,
1065           (genUnpackBits,genPackBits): handle FPOINTERS correctly, re-indented,
1066           improved single bit reads, fixes bug #1353379
1067
1068 2005-11-09 Borut Razem <borut.razem AT siol.net>
1069
1070         * support/scripts/sdcc.nsi: added lib/pic to the package
1071
1072 2005-11-08 Maarten Brock <sourceforge.brock AT dse.nl>
1073
1074         * src/SDCCval.c (valUnaryPM): fixed bug 1350699
1075
1076 2005-11-06 Maarten Brock <sourceforge.brock AT dse.nl>
1077
1078         * support/regression/tests/bug1348008.c: added
1079         * src/mcs51/gen.c (saveRBank, unsaveRBank): fixed bug 1348008
1080         * support/regression/tests/bug1337835.c: updated comment
1081
1082 2005-11-06 Borut Razem <borut.razem AT siol.net>
1083
1084         * sim/ucsim/error.cc, sim/ucsim/errorcl.h,
1085           sim/ucsim/sim.src/stack.cc, sim/ucsim/sim.src/stackcl.h,
1086           sim/ucsim/sim.src/uc.cc, sim/ucsim/sim.src/uccl.h,
1087           sim/ucsim/sim.src/mem.cc, sim/ucsim/sim.src/memcl.h,
1088           sim/ucsim/cmd.src/set.cc, sim/ucsim/cmd.src/show.cc:
1089           dynamic construction of cl_error_class and derivates - 2.nd try
1090
1091 2005-11-05 Borut Razem <borut.razem AT siol.net>
1092
1093         * sim/ucsim/sim.src/error.cc: fixed uninitialized class member variable
1094           bug, which caused Bus Errors on sparc solaris
1095
1096 2005-11-04 Borut Razem <borut.razem AT siol.net>
1097
1098         * sim/ucsim/error.cc, sim/ucsim/errorcl.h,
1099           sim/ucsim/sim.src/stack.cc, sim/ucsim/sim.src/stackcl.h,
1100           sim/ucsim/sim.src/uc.cc, sim/ucsim/sim.src/uccl.h,
1101           sim/ucsim/sim.src/mem.cc, sim/ucsim/sim.src/memcl.h,
1102           sim/ucsim/cmd.src/cmdconf.cc: dynamic construction of cl_error_class
1103           and derivates to resolve the initialization problem on OSX
1104
1105 2005-11-02 Borut Razem <borut.razem AT siol.net>
1106
1107         * sim/ucsim/cmd.src/cmdutil.cc, sim/ucsim/cmd.src/newcmd.cc:
1108           corrected typo - #include <winsock2.h>
1109
1110 2005-11-02 Maarten Brock <sourceforge.brock AT dse.nl>
1111
1112         * src/asm.c (printILine): always close tmpFile, thanks Beau E. Cox,
1113           (_asxxxx_mapping): added org directive for future enhancements
1114
1115 2005-11-01 Borut Razem <borut.razem AT siol.net>
1116
1117         * sim/ucsim/app.cc, sim/ucsim/cmd.src/cmdutil.cc, sim/ucsim/cmd.src/newcmd.cc:
1118           enabled sockets on WIN32
1119         * sim/ucsim/cmd.src/newcmd.cc: fixed bug with uninitialized variables
1120
1121 2005-10-31 Borut Razem <borut.razem AT siol.net>
1122
1123         * support/regression/generate-cases.py: escape backslashes in {testcase}:
1124           WIN32 backslash path delimiters should be escaped when used in C strings
1125         * support/regression/tests/bitfields.c: exclude failing assertions for
1126           __CYGWIN32__ and __MINGW32__ hosts
1127
1128 2005-10-30 Borut Razem <borut.razem AT siol.net>
1129
1130         * src/SDCCutil.c: corrected double comparison typo
1131
1132 2005-10-30 Maarten Brock <sourceforge.brock AT dse.nl>
1133
1134         * device/lib/medium/Makefile: added for new memory model medium
1135         * device/include/asm/mcs51/features.h: updated for medium/pdata
1136         * device/include/mcs51/c8051f120.h: added sfr16/sfr32 definitions,
1137           added Multiply & Accumulate sbit's and MAC0_PAGE define
1138         * device/include/mcs51/c8051f300.h: added sfr16 definitions
1139         * device/include/mcs51/c8051f310.h: added sfr16 definitions
1140         * device/lib/_mullong.c: update for medium model
1141         * device/lib/incl.mk: added medium model
1142         * doc/sdccman.lyx: documented medium model
1143         * src/SDCCast.c (isBitAndPow2): simplified using updated powof2
1144         * src/SDCCicode.c (geniCodeMultiply, geniCodeDivision): use updated powof2
1145         * src/SDCCmain.c (optionsTable, linkEdit): enabled medium model
1146         * src/SDCCmem.c (allocIntoSeg): set iaccess for pdata symbols,
1147           (allocParms): set SCLS and OCLS to pdata for medium model
1148         * src/SDCCsymt.c (processFuncArgs): use default_local_map and set iaccess
1149           for pdata,
1150           (powof2): return <0 if not power of 2
1151         * src/avr/gen.c (genBitWise): use updated powof2
1152         * src/mcs51/gen.c (genMinusDec): use acc if necessary,
1153           (shiftR2Left2Result): small optimization in setup, save acc when storing,
1154           (shiftLLeftOrResult): use B if necessary
1155         * src/mcs51/main.c (_mcs51_finaliseOptions, mcs51_port): added medium model
1156         * src/mcs51/peeph.def: renamed 226 to 226.b, added 226.a
1157         * src/pic/main.c (_pic14_do_link): made void parameter list explicit
1158         * support/regression/Makefile.in: added test-mcs51-medium
1159         * support/regression/ports/mcs51-medium/spec.mk: added to test medium model
1160
1161 2005-10-28 Bernhard Held <bernhard AT bernhardheld.de>
1162
1163         * src/SDCCsymt.c (compStructSize): make bitfields without (un)signed
1164         specifier unsigned
1165         * device/lib/time.c (mktime): fixed bug 1334315
1166
1167 2005-10-28 Raphael Neider <rneider AT web.de>
1168
1169         * device/include/pic/p16f_common.inc: added common declarations
1170         * src/pic/ralloc.c (initStack): moved regs *r to block start for Alpha
1171
1172 2005-10-27 Maarten Brock <sourceforge.brock AT dse.nl>
1173
1174         * src/mcs51/gen.c (getTempRegs): return 0 if not enough registers found,
1175           (aopPutUsesAcc): added to predict accumulator use,
1176           (assignResultValue): save acc if necessary,
1177           (genMinusDec): store result if indirectly addressed,
1178           (genDivOneByte):  save acc if necessary,
1179           (movLeft2Result): bugfix if left already in acc,
1180           (genAnd, genOr, genXor, shiftL2Left2Result, shiftR2Left2Result): pay more
1181             attention to accumulator use (esp. pdata),
1182           (genReceive): receive pdata correctly
1183         * src/SDCCicode.c (isOperandInPagedSpace): added to detect pdata operands
1184         * src/SDCCicode.h: added isOperandInPagedSpace prototype
1185
1186 2005-10-27 Raphael Neider <rneider AT web.de>
1187
1188         * doc/sdccman.lyx: corrected version (should be 2.5.4 not 2.5.5)
1189
1190 2005-10-27 Raphael Neider <rneider AT web.de>
1191
1192         * .version: changed version to 2.5.4
1193         * doc/sdccman.lyx: changed version to 2.5.4, added some remarks to PIC14
1194         * device/lib/pic/libsdcc/{_mulint.c,_mullong.c}: use unsigned literals,
1195           (_divschar.c,divuchar.c,_mulchar.c,_modschar.c,_moduchar): NEW,
1196             arithmetics support routines
1197         * device/lib/pic/Makefile.rules: have assembler sources preprocessed
1198         * device/lib/Makefile.in: also create installdir for pic
1199
1200         * src/SDCCopt.c (cnvToFcall): mark support routines `extern' for
1201           pic14 port as well
1202         * src/pic/device.c (dump_sfr): rewritten to delegate register
1203           placement to the linker (use `extern sym' rather than sym EQU addr),
1204           (validAddress): fixed to check last specified address
1205         * src/pic/gen.c (aopForSym): added code to deal with array (useless?),
1206           (popGetLit): truncate literal value to 8 bit,
1207           (popGet): moved assert to more appropriate place
1208           (popGetExternal): create pCode operand from and mark the according
1209             symbol as being `extern'
1210           (popGetAddr): added sanity check on immediate's offset, provide
1211             GPOINTER tag on demand
1212           (aopPut): fixed for immediates,
1213           (mov2w_op): move operand's address or contents to WREG (depending on
1214             operand type), safer variant of mov2w,
1215           (movwf,call_libraryfunc): NEW, handy abbreviations,
1216           (get_argument_pcop,get_return_val_pcop,pass_argument,
1217           get_returnvalue): interface for accessing function parameters and
1218             return values,
1219           (assignResultValuei,genRet): use new parameter/return value interface
1220           (pic14_getDataSize): back to old version handling generic pointers,
1221           (pic14_toBoolean,genNot,genCpl,genCmpEq,genOrOp): heavily rewritten,
1222             provided implementation and/or fixed old one,
1223           (genMultOneByte,genDivOneByte,genModOneByte): implemented as library
1224             calls, removed legacy 8051 reference code
1225           (AccLsh,AccRsh): rewritten and fixed to deal with signed operands
1226           (loadSignToC): NEW, move the operands sign bit to CARRY,
1227           (genGenericShift): NEW, replaces genLeftShift, genRightShift and
1228             genRightShiftSigned, accepts negative shift counts,
1229           (setup_fsr): load FSR and adjust IRP (indirect memory access),
1230           (emitPtrByteGet,emitPtrByteSet): rewritten, now works with
1231             generic pointers, __data pointers and __code pointers,
1232           (genUnpackBits,genPackBits): rewritten to work with generic pointers
1233             and signed bitfields, limit bitfields to 8 bit,
1234           (genDataPointerGet): fixed number of bytes read,
1235           (genGenPointerGet,genConstPointerGet): fixed bitfield access,
1236           (genPointerGet,genPointerSet): fixed handling of __code pointers,
1237             pointers to constant data are no longer assumed to point to __code
1238             space, removed invalid pointer types,
1239           (bitpatternFromVal): retrieve the PICs representation of an integer
1240             or float literal,
1241           (genDataPointerSet): fixed assigning to po_immediate operands,
1242           (genGenPointerSet): implemented as library call,
1243           (genIfx): fixed incorrect condition,
1244           (genAddrOf): limit generic pointers' addresses to 2 bytes,
1245             provide GPOINTER tag according to destination's storage class,
1246           (genCast): added code to handle casting to generic pointers, added
1247             sign-/zero extension of the result
1248           (aop_isLitLike,op_isLitLike): fixed handling of immediates
1249         * src/pic/gen.h: added macros to access IRP bit in STATUS register
1250         * src/pic/genarith.c (genAddLit): use min(result's,left's) size, sign
1251           extend the result
1252         * src/pic/glue.c (is_shared_address,is_shared): check whether a given
1253           address/register resides in the shared banks
1254           (emitSymbolToFile): improved to handle global and `pinned' symbols,
1255             put all variables into separate sections (have the linker arrange
1256             them)
1257           (picglue): put init code and interrupt handlers in separate sections
1258         * src/pic/main.c: added port specific options table, modified to PORT
1259           structure to make GPOINTERs 3 byte, added pic14_options
1260           (_pic14_do_link): private linking routine (update paths to libraries,
1261             add libsdcc.lib by default)
1262         * src/pic/main.h: declare pic14_options
1263         * src/pic/pcode.c: fixed instructions i/o relations,
1264           (RegCond): reverted to correct version,
1265           (newpCodeOpLit): truncate literals to 8 bit,
1266           (genericPrint): added debug output,
1267           (getRegFromInstruction): fixed for various operand types, simplified
1268           (BuildFlow): fixed broken handling of isntructions with labels
1269           (LinkFlow): start at last instruction in flow (skip trailing comments),
1270             pass the flow on to the next instruction after CALL
1271           (pCodeReplace): NEW, replace a pCode and move meta data to the new one
1272           (insertPCodeInstruction): fixed inserting after a skip instruction,
1273           (DoBankSelect): fixed for labeled instructions
1274           (OptimizepBlock): honor --nopeep switch
1275           (AnalyzeFlow,ReuseReg): prevent crash on source files with no function
1276         * src/pic/pcodepeep.c (pCodePeepMatchRule): prevent NULL pointer accesses
1277         * src/pic/pcoderegs.c (regIsLocal): NEW, check visibility of a register
1278           (pCodeOptime2pCodes): allow disabling this optimization via
1279             --no-pcode-opt due seldomly occuring bugs, fixed some conditions
1280             but is still buggy), started implementation of a dataflow based
1281             pCode optimization (CSE + dead code elimination)
1282           (pCodeRegMapLiveRangesInFlow): removed bogus inCond
1283         * src/pic/ralloc.c (initStack): renamed stack registers to STK%d, the new
1284           names are independant of the stack location and therefore portable across
1285           devices
1286
1287 2005-10-27 Maarten Brock <sourceforge.brock AT dse.nl>
1288
1289         * src/mcs51/ralloc.c (bitType): added to detect bit variables,
1290           (selectSpil): fixed bug 1337835 by not spilling bit variables
1291         * support/regression/tests/bug1337835.c: added test for this bug
1292         * src/mcs51/peeph.def: restart after rule 3.c,
1293           addded rules 263.x to optimize loading constants
1294
1295 2005-10-26 Raphael Neider <rneider AT web.de>
1296
1297         * src/SDCCsymt.c (compStructSize): allow signed bitfields for PIC ports
1298         * src/pic16/gen.c (genUnpackBits): support signed bitfields,
1299           (genAssign): emit warning when casting literals to generic pointer
1300             type, also applies when taking the address of a fixed variable,
1301           (genCast): improved casting to generic pointers
1302         * src/pic16/glue.c (pic16emitStaticSeg): fixed(?) handling of fixed
1303           extern variables, added verbose error message
1304         * device/include/pic16/{string.h,errno.h}: added #pragma library c
1305
1306 2005-10-26 Bernhard Held <bernhard AT bernhardheld.de>
1307
1308         * src/mcs51/gen.c (genMinus): fixed bug 1270906: reverse subtraction,
1309         carry must be complemented too
1310         * src/mcs51/peeph.def: addded rule 262 to remove double cpl c, which
1311         could be emitted by genMinus
1312         * src/SDCCval.c (constVal): fixed bug 1305065
1313
1314 2005-10-25 Bernhard Held <bernhard AT bernhardheld.de>
1315
1316         * src/SDCCast.c (addCast): added promotion for bit variables
1317         (decorateType): emit W_COMPLEMENT before the problem vanishes behind
1318         promotion casts + optimisation
1319         (optimizeGetWord): fix warning 'i' might be used uninitialized
1320         * src/mcs51/gen.c (genCpl): removed W_COMPLEMENT
1321         * src/ds390/gen.c (genCpl): removed W_COMPLEMENT
1322
1323 2005-10-24 Bernhard Held <bernhard AT bernhardheld.de>
1324
1325         * src/SDCCicode.c (ast2iCode): reverted to 1.224 because of regression:
1326         all chars are promoted to int; promotion should be handled in SDCCast.c
1327
1328 2005-10-15 Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
1329
1330         * device/lib/_strcmp.c: Fixed bug 1326457
1331
1332 2005-10-11 Raphael Neider <rneider AT web.de>
1333
1334         * device/lib/pic16/libio/i2c.ignore: added 1320, fixes broken builds
1335         * device/lib/pic16/libdev/pic18f1320.c: added 1320's device library
1336
1337 2005-10-05 Maarten Brock <sourceforge.brock AT dse.nl>
1338
1339         * src/SDCC.y (AT): fixed bug with sfr32 addresses when built with GCC
1340         * support/regression/tests/sfr16.c: added test for the sfr32 bug
1341
1342 2005-10-04 Raphael Neider <rneider AT web.de>
1343
1344         * device/include/pic16/pic18fregs.h, src/pic16/devices.inc,
1345           device/lib/pic16/pics.all: added pic18f1320
1346         * src/pic16/pcode.c (mnem2key): fixed prototype's argument mismatch
1347
1348 2005-09-30 Raphael Neider <rneider AT web.de>
1349
1350         * src/pic16/device.c (Pics16[]): moved device descriptions to devices.inc
1351         * src/pic16/devices.inc: NEW, provides device descriptions
1352         * src/pic16/gen.c (genInline): fixed handling of ';'-comments
1353
1354 2005-09-26 Maarten Brock <sourceforge.brock AT dse.nl>
1355
1356         * src/SDCCicode.c (operandOperation): added GETABIT, GETBYTE, GETWORD and
1357           GETHBIT
1358
1359 2005-09-25 Maarten Brock <sourceforge.brock AT dse.nl>
1360
1361         * doc/sdccman.lyx: updated Highest Order Bit documentation,
1362           documented Any Order Bit, Higher Order Byte and Higher Order Word
1363         * src/SDCC.y: added tokens GETABIT, GETBYTE, GETWORD
1364         * src/SDCCast.c (optimizeGetHbit): updated to also accept bool=expr&(1<<n),
1365           (optimizeGetAbit): new, to get any bit, not only the high bit,
1366           (optimizeGetByte): new, to get a byte from a (long) int: expr>>(8*n),
1367           (optimizeGetWord): new, to get a word from a long int: expr>>(8*n),
1368           (isConformingBody): also check GETABIT, GETBYTE, GETWORD,
1369           (decorateType): '&': also try GETABIT, GETBYTE, GETWORD optimization,
1370             RIGHT_OP: also try GETBYTE, GETWORD optimization,
1371             GETABIT, GETBYTE, GETWORD: decorate them,
1372           (isShiftRightLitVal, isBitAndPowOf2): new helper functions,
1373           (ast_print): added GETABIT, GETBYTE, GETWORD
1374         * src/SDCCcse.c (isSignedOp): added GETABIT, GETBYTE, GETWORD
1375         * src/SDCCicode.c (codeTable): added GETABIT, GETBYTE, GETWORD,
1376           (geniCodeBinary): new generic binary icode,
1377           (ast2iCode): added GETABIT, GETBYTE, GETWORD
1378         * src/port.h: updated comment for PORT.hasExtBitOp
1379         * src/mcs51/gen.c (genGetAbit): new, to get any single bit,
1380           (genGetByte): new, to get a single byte,
1381           (genGetWord): new, to get a word from a long,
1382           (gen51Code): added GETABIT, GETBYTE, GETWORD
1383         * src/mcs51/main.c (hasExtBitOp): added GETABIT, GETBYTE, GETWORD
1384
1385 2005-09-23 Raphael Neider <rneider AT web.de>
1386
1387         * configure.in, configure: have device/lib/pic configured
1388         * device/lib/Makefile.in: added model-pic14
1389         * device/lib/clean.mk: added pic/ to clean rule
1390         * device/lib/pic: added rudimentary pic14 library providing support
1391           functions for multiplication/division/generic pointer access
1392         * src/SDCCopt.c (convilong): mark support functions as extern
1393           for pic14 port as well
1394         * src/pic/gen.c (genMult): added assertions,
1395           (genpic14Code): emit warning on unhandled iCodes
1396         * src/pic/main.c (_hasNativeMulFor): return true only for 8x8 bit
1397         * src/pic/pcode.c (pCodeOpCopy),
1398         * src/pic16/pcodepeep.c (pic16_pCodeOpCopy): fixed handling of various
1399           pCodeOpReg-subtypes (PO_{STATUS,INTCON,PCL,PCLATH,PCLATU,BSR,
1400           SFR_REGISTER}), made safe for future extensions
1401         * src/pic16/pcode.c (pic16_safepCodeUnlink): allow for removal of
1402           instructions even if preceeded by SKIP instructions (also remove
1403           them); removed unused code
1404         * src/pic16/pcode.h: added arg2 to pCodeOpLit to match pCodeOpLit2,
1405           prevents leaving parts of the structure uninitialized after copying
1406
1407 2005-09-22 Maarten Brock <sourceforge.brock AT dse.nl>
1408
1409         * src/mcs51/gen.c (genMinus): fix for undetected bug introduced 3 months
1410           ago by me
1411         * support/regression/tests/addsub.c: added test for the bug
1412
1413 2005-09-21 Raphael Neider <rneider AT web.de>
1414
1415         * device/include/pic16/pic18f1220.h,
1416           device/lib/pic16/libdev/pic18f1220.c: added ECCPAS sfr and bitfield
1417         * device/lib/pic16/Makefile.rules: added missing opening paren
1418         * src/pic16/gen.c (pic16_genNot,pic16_genCpl): removed as these
1419           are provided in genutils.c,
1420           (genUminusFloat,genUminus,genCmpEq): added asserts on different
1421           operand/result sizes,
1422           (genCmp): assert on NULL pointers first, then check deref'ed values
1423         * src/pic16/genutils.c (pic16_genCpl): fixed for different operand/
1424           result size
1425
1426 2005-09-18 Raphael Neider <rneider AT web.de>
1427
1428         * src/pic16/gen.c (genFarPointerGet,genFarPointerSet): removed
1429           as these are now unused,
1430           (genPointerGet,genPointerSet): handle FPOINTERs like POINTERs
1431         * src/pic16/pcode.c (pic16_symIsSpecial): assume REG_TMPs to be
1432           local, avoids uninitialized pointer dereference on r->name
1433         * src/pic16/ralloc.c (newReg): fixed indentation
1434
1435 2005-09-13 Maarten Brock <sourceforge.brock AT dse.nl>
1436
1437         * src/SDCCval.c (constVal): fixed bug 730366
1438         * support/Util/SDCCerr.c,
1439         * support/Util/SDCCerr.h: added warning W_INVALID_INT_CONST
1440
1441 2005-09-10 Maarten Brock <sourceforge.brock AT dse.nl>
1442
1443         * as/mcs51/lkmem.c (summary2): fixed report for absolute areas (bug 1210220)
1444
1445 2005-09-09 Maarten Brock <sourceforge.brock AT dse.nl>
1446
1447         * src/mcs51/peeph.def (241.x): fixed bug when comparing generic pointers
1448
1449 2005-09-08 Maarten Brock <sourceforge.brock AT dse.nl>
1450
1451         * as/hc08/lkaomf51.c (OutputName): made name unsigned char,
1452           (hex2dec): made hex_digit unsigned char, removed ascii dependance
1453         * as/mcs51/lkaomf51.c (OutputName): made name unsigned char,
1454           (hex2dec): made hex_digit unsigned char, removed ascii dependance
1455         * as/mcs51/lkarea.c (lnkarea2): sort absolute areas to the front
1456         * packihx/packihx.c (hexDigit): made c unsigned char
1457         * as/mcs51/lklibr.c (fndsym),
1458         * link/z80/lkgb.c (gb),
1459         * link/z80/lklibr.c (fndsym),
1460         * link/z80/lkrloc.c (relr),
1461         * sim/ucsim/libltdl/ltdl.c (load_deplibs, try_dlopen),
1462         * src/SDCC.lex (checkCurrFile, process_pragma),
1463         * src/SDCCglue.c (spacesToUnderscores),
1464         * src/SDCCmain.c (setParseWithComma, processFile),
1465         * src/asm.c (tvsprintf, printCLine),
1466         * src/avr/gen.c (emitcode, aopPut),
1467         * src/ds390/gen.c (emitcode),
1468         * src/hc08/gen.c (emitcode, emitinline),
1469         * src/mcs51/gen.c (emitcode, genInline),
1470         * src/pic/pcodepeep.c (cvt_extract_destination, cvt_extract_status,
1471           tokenizeLineNode),
1472         * src/pic/ralloc.c (debugLog),
1473         * src/pic16/pcodepeep.c (cvt_extract_destination, cvt_extract_status,
1474           tokenizeLineNode),
1475         * src/pic16/ralloc.c (debugLog),
1476         * src/z80/main.c (_process_pragma):
1477            made all ctype.h function calls safe
1478         * src/SDCCopt.c: include math.h for fabs
1479         * src/SDCCpeeph.c: added macros ISCHARDIGIT, ISCHARSPACE and ISCHARALNUM
1480           and used them throughout the code to make ctype.h function calls safe
1481         * src/ds390/main.c (asmLineNodeFromLineNode),
1482         * src/mcs51/main.c (asmLineNodeFromLineNode): made p unsigned char*
1483         * src/pic/gen.c (DEBUGpic14_emitcode, pic14_emitcode): made lbp
1484            unsigned char*
1485         * src/pic/pcode.c (mnem2key): made mnem unsigned char*,
1486           (newpCodeAsmDir): made ctype.h function calls safe
1487         * src/pic16/gen.c (pic16_emitpcomment, DEBUGpic16_emitcode,
1488           pic16_emitcode):  made lbp unsigned char*
1489         * src/pic16/pcode.c (mnem2key): made mnem unsigned char*,
1490           (pic16_newpCodeAsmDir): made ctype.h function calls safe
1491         * src/xa51/gen.c (emitcode),
1492         * src/z80/gen.c (_emit2): made lbp unsigned char*
1493         * support/Util/MySystem.c (split_command): made cmd_line and p unsigned
1494            char*
1495
1496 2005-09-05 Raphael Neider <rneider AT web.de>
1497
1498         * src/pic16/ralloc.c (pic16_allocDirReg): use device specific
1499           access bank splitpoint
1500
1501 2005-09-05 Raphael Neider <rneider AT web.de>
1502
1503         * device/lib/pic16/libc/Makefile: added (missing) string to SUBDIRS
1504
1505 2005-09-03 Maarten Brock <sourceforge.brock AT dse.nl>
1506
1507         * .version: changed to version 2.5.3
1508         * doc/sdccman.lyx: changed version to 2.5.3,
1509           documented --codeseg and --constseg and pragma codeseg and constseg,
1510           documented bit parameters (reentrant) and bit returning
1511         * src/SDCCicode.c (geniCodeReceive): fixed (possible) bug generating
1512            currFunc->recvSize, but is this ok for all ports?
1513           (ast2iCode): result of ~ on unsigned char must be cast to int for
1514            bool to work
1515         * src/SDCCmem.c (allocGlobal, allocLocal): don't put bit returning
1516           function pointers in bit space
1517         * src/SDCCsymt.c (checkSClass): allow bit returning function pointers,
1518           (processFuncArgs): call port.reg_parm() with reentrancy info
1519         * src/port.h,
1520         * src/avr/main.c,
1521         * src/ds390/main.c,
1522         * src/hc08/main.c,
1523         * src/pic/main.c,
1524         * src/pic16/main.c,
1525         * src/xa51/main.c,
1526         * src/z80/main.c: port.reg_parm prototype extended with
1527           "bool reentrant" parameter
1528         * src/mcs51/main.c (_mcs51_regparm): use parameter reentrant instead of
1529           options.stackAuto for allocating bit register parameters
1530         * src/mcs51/gen.c (genNot): optimized complementing direct bit,
1531           (genSend): set BitBankUsed if it is,
1532           (selectRegBank): factored out of genCall for use in genPcall,
1533           (genCall): removed redundant dtype assignmen, use selectRegBank,
1534           (genPcall): handle returning in Carry properly, save in F0 if needed,
1535           (genReceive): handle bit register parameters
1536         * src/mcs51/ralloc.c (updateRegUsage): update BitBankUsed along the way,
1537           (mcs51_assignRegisters): enable bit registers for all reentrant
1538            functions and don't set BitBankUsed unconditionally
1539         * src/mcs51/peeph.def (177.d): fixed bug if %2==%3
1540         * support/regression/tests/bitvars.c: enable tests for SDCC_STACK_AUTO
1541         * support/regression/tests/funptrs.c: added tests for BOOL and for return
1542
1543 2005-08-27 Borut Razem <borut.razem AT siol.net>
1544
1545         * device/lib/Makefile.in: cp on sparc-solaris (SunOS) and on
1546         ppc-osx (Darwin) does not support -u option. It seems that it is
1547         supported only on Linux - GNU cp
1548
1549 2005-08-25 Borut Razem <borut.razem AT siol.net>
1550
1551         * sim/ucsim/gui.src/serio.src/Makefile.in,
1552           sim/ucsim/s51.src/Makefile.in, sim/ucsim/avr.src/Makefile.in,
1553           sim/ucsim/z80.src/Makefile.in, sim/ucsim/hc08.src/Makefile.in,
1554           sim/ucsim/xa.src/Makefile.in: install -s changed to 2 steps:
1555           install and strip, since the strip at /usr/ccs/bin should be used
1556           on solaris
1557
1558 2005-08-24 Borut Razem <borut.razem AT siol.net>
1559
1560         * clean.mk, device/lib/clean.mk: find on sparc-solaris does not support -maxdepth option
1561
1562 2005-08-23 Bernhard Held <bernhard AT bernhardheld.de>
1563
1564         * src/SDCCopt.c (convertToFcall): fixed modulus with divisors 1 and
1565         ffffffffu
1566
1567 2005-08-23 Maarten Brock <sourceforge.brock AT dse.nl>
1568
1569         * as/mcs51/aslink.h: completed lkrloc.c prototypes
1570         * as/mcs51/lkmain.c (link_main): fixed warning
1571         * device/include/stdbool.h: ds390 has no advanced bit support yet
1572         * src/SDCC.y: use SPEC_SHORT and renamed _signed to b_signed
1573         * src/SDCCsymt.c: use SPEC_SHORT and renamed _signed to b_signed
1574         * src/SDCCsymt.h (struct specifier): renamed _xxx bitfields to b_xxx
1575           and updated their macros
1576         * src/SDCCval.c (constVal): updated comment for renamed b_long
1577
1578 2005-08-22 Maarten Brock <sourceforge.brock AT dse.nl>
1579
1580         * as/mcs51/asdata.c: changed ctype['['] to BINOP
1581         * as/mcs51/asexpr.c (expr): added case '[' for bit access in bdata,
1582           (term): abused bit 15 of s_addr to indicate bit-addressable bytes,
1583           (oprio): set priority for '['
1584         * as/mcs51/aslink.h: added define R_BIT, and prototypes for adb_bit
1585            and adb_24_bit
1586         * as/mcs51/asm.h: added defines R_BIT and S_BIT
1587         * as/mcs51/lkarea.c (lnksect2): use T for seg BIT_BANK and overlay it
1588         * as/mcs51/lkdata.c: changed ctype['['] to BINOP
1589         * as/mcs51/lkmain.c (Areas51): rel2 contains 12 (=C) areas now,
1590           added overlayable BIT_BANK area
1591         * as/mcs51/lkmem.c (summary): add BIT_BANK to BSEG_BYTES in the report,
1592           (summary2): explain 'T' in legenda
1593         * as/mcs51/lkrloc.c: replaced old K&R style,
1594           (relr): added R_BIT processing,
1595           (errmsg): added "Bit-addressable relocation error",
1596           (adb_bit): added for converting from byte- to bit-addressable space,
1597           (adb_24_bit): added for converting from byte- to bit-addressable space
1598         * device/include/stdbool.h: changed BOOL to __bit for mcs51 as it can be
1599            used in reentrant functions now even as return value
1600         * device/lib/_gptrput.c (_gptrput): removed obsolete code
1601         * src/SDCCast.c (resultTypePropagate): also propagate AND_OP and OR_OP,
1602           (decorateType): case '!', GETHBIT, AND_OP, OR_OP: result in bool or char
1603         * src/SDCCglobl.h: added indicator BitBankUsed
1604         * src/SDCCglue.c (glue): emit area BIT_BANK with byte 'bits' and equ's for
1605            the bit registers b0-b7
1606         * src/SDCCicode.c (operandFromSymbol): removed IS_BITVAR check,
1607           (geniCodeCast): fixed bug 1263853,
1608           (geniCodeLogicAndOr): put result in bool or char,
1609           (geniCodeReceive): added parameter func for accessing the return type,
1610           (geniCodeFunctionBody): pass func to geniCodeReceive
1611         * src/SDCCmain.c: added indicator BitBankUsed
1612         * src/SDCCmem.c (allocLocal): explicitly set sclass for V_BIT
1613         * src/SDCCsymt.c (newBoolLink): added for creating a bool/bit,
1614           (checkSClass): don't put automatic bool/bit on stack,
1615           (checkFunction): removed check on function cannot return bit
1616         * src/SDCCsymt.h: added newBoolLink prototype
1617         * src/mcs51/gen.c (rb1regs): added bit registers,
1618           (movc): created for assigning to carry,
1619           (pushReg, popReg): created for pushing registers,
1620           (sameRegs): check both AOP_REG and AOP_CRY types,
1621           (aopOp): handle bit registers,
1622           (aopPut): optimization no self-assign,
1623           (saveRegisters): push reg->base (bits) only once for bit registers,
1624            and use pushReg,
1625           (unsaveRegisters): pop reg->base only once and use popReg,
1626           (assignResultValue): added parameter func and return in carry for bits,
1627           (genIpush): optimization no reload in A if not changed,
1628           (genSend): bit parameters in reentrant functions are passed in bit
1629            registers by first assigning to bits in B, then save registers and
1630            copy B to bits,
1631           (genCall): handle returning in Carry properly, save it in F0 if needed,
1632           (genPcall): updated assignResultValue call, this is not safe yet for bit
1633            returning function !!!
1634           (genFunction): don't generate equ's for bit registers and use pushReg,
1635           (genEndFunction): take care of bit returning functions and use popReg,
1636           (genRet): return bit in Carry,
1637           (genIfx): optimize bit registers and other directly addressable bits,
1638           (genReceive): updated assignResultValue call
1639         * src/mcs51/main.c (_mcs51_reset_regparm): added regBitParmFlg,
1640           (_mcs51_regparm): allow passing of upto 8 bit parameters in bit
1641            registers when using stack-auto
1642         * src/mcs51/ralloc.c (_G): added allBitregs,
1643           (regs8051): added the bit registers,
1644           (createStackSpil): use macro IS_BIT,
1645           (getRegBit): added to allocate a bit register, else spill,
1646           (getRegBitNoSpil): added to allocate a bit register, else a gpr,
1647           (updateRegUsage): factored out to ease stepping while debugging,
1648           (serialRegAssign): use updateRegUsage, only spill bits if necessary,
1649            also allocate bit registers,
1650           (fillGaps): handle bit registers,
1651           (findAllBitregs): added to create bit vector with all bit registers,
1652           (mcs51_allBitregs): returns this bit vector,
1653           (mcs51_assignRegisters): when using stack-auto use bit registers for
1654            passing parameters and creating local variables
1655         * src/mcs51/ralloc.h: added B0_IDX..B7_IDX and prototype mcs51_allBitregs
1656
1657 2005-08-22 Borut Razem <borut.razem AT siol.net>
1658
1659         * device/lib/Makefile.in: replaced find option -or with -o
1660           to make it run on solaris
1661
1662 2005-08-22 Raphael Neider <rneider AT web.de>
1663
1664         * src/pic16/gen.c (pic16_loadFromReturn): added check for AOP_PCODE,
1665           fixes #1265442 (crash on Solaris)
1666
1667 2005-08-20 Borut Razem <borut.razem AT siol.net>
1668
1669         * configure, configure.in: added tests for libsocket and libnsl libraries,
1670           requred by sdcdb on sparc-solaris; generate support/regression/Makefile
1671           from support/regression/Makefile.in
1672         * support/regression/Makefile.in: added
1673         * device/lib/pic16/Makefile.common.in: force make to use bash shell
1674         * sim/ucsim/libtool: regenerated on sparc-solaris
1675         * sim/ucsim/avr.src/Makefile.in, sim/ucsim/hc08.src/Makefile.in,
1676           sim/ucsim/s51.src/Makefile.in, sim/ucsim/xa.src/Makefile.in,
1677           sim/ucsim/z80.src/Makefile.in: removed GNU ld specific linker options
1678           -Wl,--start-group and -Wl,--end-group to enable ucsim compilation on
1679           sparc-solaris, which doesn't use GNU ld linker
1680         * device/lib/Makefile.in: cp on sparc-solaris (SunOS) does not support -u option
1681         * as/Makefile: find on sparc-solaris does not support -maxdepth option
1682
1683 2005-08-19 Maarten Brock <sourceforge.brock AT dse.nl>
1684
1685         * src/mcs51/peeph.def: updated comments
1686
1687 2005-08-16 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
1688
1689         * device/lib/_gptrget.c,
1690         * device/lib/_gptrput.c: slightly shorter
1691         * doc/sdccman.lyx: incremented version
1692         * src/mcs51/peeph.def: moved peephole comments to the line of first
1693           change to better keep line correlation, reanimated 186.e
1694         * src/mcs51/peeph.def: renamed similar peepholes by using suffixes
1695
1696 2005-08-16 Slade Rich <slade_rich AT users.sourceforge.net>
1697
1698         * src/pic/pcode.c : Pasted ".line" assembly directives patch from
1699           David Saxton with quotes around file name.
1700
1701 2005-08-15 Borut Razem <borut.razem AT siol.net>
1702
1703         * support/regression/tests/bitfields.c, support/regression/tests/bitvars.c,
1704           support/regression/tests/bitwise.c, support/regression/tests/literalop.c,
1705           support/regression/tests/rotate.c, support/regression/tests/zeropad.c:
1706           make tests run on x86_64 platform
1707
1708 2005-08-13 Raphael Neider <rneider AT web.de>
1709
1710         * device/lib/pic16/Makefile.subdir: weakened clean-intermediate rule
1711           as it might be executed DURING a build (parallel make is wonderful)
1712
1713 2005-08-13 Raphael Neider <rneider AT web.de>
1714
1715         * device/lib/Makefile.in (port-specific-objects-pic16):
1716           revert to cp $(PORT)/bin/*.* $(PORTDIR)
1717         * device/lib/pic16/Makefile: added .PHONY targets, removed builddir
1718           dependency
1719         * device/lib/pic16/Makefile.rules: build subdirs before creating
1720           the library, removed builddir rule, create $(builddir) early in
1721           recurse rule, use empty recurse rule for leaf directories
1722         * device/lib/pic16/Makefile.subdir: added phony targets, ignore
1723           mkdir errors (race condition), removed duplicate suffix "hex"
1724           from clean rules
1725         * device/lib/pic16/libdev/Makefile: recursive make via + and $(MAKE)
1726         * device/lib/pic16/libio/Makefile: create sub-make's builddir early,
1727           prevents mkdir -p from aborting on Alpha
1728
1729 2005-08-12 Raphael Neider <rneider AT web.de>
1730
1731         * src/pic16/glue.c (pic16_print(G)PointerType): do not flush
1732           db-statements in order to allow for arrays of pointers in code
1733           sections to be placed without interspersed 0-padding, fixes
1734           bug #1256215
1735         * (emitStatistics): fixed division by zero for pic18f1220
1736         * src/pic16/pcode.c: buffer (up to) 12 DB directives to allow for
1737           unpadded writing of 8-bit, 16-bit, 24-bit and 32-bit values
1738         * (pic16_emitDS): respect DB_ITEMS_PER_LINE
1739         * (pic16_pCodeConstString): keep track of already emitted string
1740           literals to prevent "duplicate definitions of symbol _str_NR"
1741         * src/pic16/ralloc.c (pic16_allocRegByName): removed not so helpful
1742           debug message
1743         * device/lib/Makefile.in: ignore failing PIC16 library builds
1744         * device/lib/pic16/Makefile: do not build if gputils are missing
1745         * device/lib/pic16/Makefile.common.in: do not enforce MAKEFLAGS=-s
1746
1747 2005-08-10 Raphael Neider <rneider AT web.de>
1748
1749         * device/lib/Makefile.in: fixed copying pic16 libraries (broken by
1750           my last commit)
1751
1752 2005-08-10 Raphael Neider <rneider AT web.de>
1753
1754         * src/*.c, src/pic16/{gen.c,glue.c,main.c}: applied Vangelis
1755           Rokas' patch to add the new fixed point type "__fixed16x16"
1756         * device/lib/pic16/libsdcc/fixed16x16: added Vangelis' support
1757           functions for __fixed16x16 arithmetics
1758         * device/lib/pic16: reimplemented the build system to support
1759           a separate build directory, better handling of libio (create
1760           the library in a separate subdir for each architecture) and
1761           easier configuration (centralized in Makefile.common)
1762
1763 2005-08-07 Raphael Neider <rneider AT web.de>
1764
1765         * src/pic16/gen.c (genrshTwo): fixed sign extension
1766         * src/pic16/device.c: added pic18f2320, 4220 and 4320
1767         * device/include/pic16/pic18f2220.h: changed some bit definitions,
1768           added T0CONbits
1769         * device/include/pic16/pic18f4220.h: NEW, header for
1770           pic18f4220 and pic18f4320
1771         * device/include/pic16/pic18fregs.h: added new devices,
1772           embraced Nop(), ClrWdt(), Sleep() and Reset() with do {} while(0)
1773         * device/include/pic16/signal.h: resolved name clashes
1774           on bit definitions, added DEF_HANDLER2(sig1,sig2,handler)
1775           to also allow testing for interrupt enable bits, added
1776           comments on how to use the macros
1777         * device/lib/pic16/libdev/pic18f2220.c: added T0CONbits
1778         * device/lib/pic16/libdev/pic18f{2320,4220,4320}.c: NEW,
1779           register definitions for the devices
1780         * device/lib/pic16/pics.all: added new devices
1781         * device/lib/pic16/libc/stdlib/calloc.c: fixed zeroing
1782           allocated memory
1783         * device/lib/pic16/libc/stdlib/memfree: do not count
1784           the block header as free memory
1785         * device/lib/pic16/libc/stdlib/memmisc.c (_initHeap):
1786           simplified and added missing end-of-blocklist-marker
1787           (reported by Peter Onion, fixes #1252814)
1788         * (_mergeHeapBlock): fixed loop condition
1789         * device/lib/pic16/libc/stdlib/realloc.c: return NULL for
1790           len==0, restructured code
1791         * device/lib/pic16/libc/stdlib/{malloc,memfreemax}.c: cleaned
1792           up a bit, reduced bitfield accesses, prevent endless loops
1793           in case of heap corruption
1794         * device/lib/pic16/libc/stdlib/x_ftoa.c: disabled
1795           "unreferenced arguments/must return a value" warnings
1796         * device/lib/pic16/libio/usart/ubaud.c (usart_baud):
1797           replaced BAUDREG with SPBRG
1798         * device/lib/pic16/libsdcc/lregs/{lrrest.c,lrst.c},
1799           device/lib/pic16/debug/gstack/gstack.c: replaced
1800           _naked, _asm, _endasm with __naked, __asm, __endasm
1801
1802 2005-08-05 Raphael Neider <rneider AT web.de>
1803
1804         * src/pic16/gen.c (pic16_aopGet): fixed handling of offsets in
1805           AOP_PCODE operands, fixes multibyte union-bitfield-accesses
1806
1807 2005-08-05 Borut Razem <borut.razem AT siol.net>
1808
1809         * device/lib/Makefile.in: added missing ';'
1810         * configure: removed ^M characters
1811
1812 2005-08-04 Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
1813
1814         * device/include/mcs51/at89c51ed2.h, device/include/mcs51/p89v51rd2.h,
1815           device/include/mcs51/at89s53.h: changed to GNU Lesser General Public
1816           License
1817
1818 2005-08-04 Borut Razem <borut.razem AT siol.net>
1819
1820         * configure.in: pic16 libraries build 2nd try - enable running
1821           configure in device/lib/pic16
1822         * configure: regenerated from configure.in
1823         * device/lib/Makefile.in: create $(PORT)/bin directory
1824
1825 2005-08-03 Raphael Neider <rneider AT web.de>
1826
1827         * src/pic16/gen.c (pic16_derefPtr): NEW, single place
1828           to get/set values via pointers
1829         * (genUnpackBits,genPackBits): changed detection of
1830           ptr->bitfield vs. sym.bitfield, fixed access via generic
1831           pointers, removed dead (wrong) code for multibyte bitfields
1832         * (genNearPointerGet, genGenPointerGet): removed useless code,
1833           fixed bitfield detection, fixes #1250594
1834         * (genNearPointerSet): removed useless code
1835         * src/pic16/gen.h: renamed pic16_emitpcode to pic16_emitpcode_real
1836           and introduced macro pic16_emitpcode that conditionally emits
1837           the origin of the following pCode (useful for debugging SDCC)
1838         * src/pic16/pcode.c: changed (and disabled) some debug outputs
1839         * (createDefmap): fixed handling of LFSR for --optimize-df
1840
1841 2005-08-02 Borut Razem <borut.razem AT siol.net>
1842
1843         * device/lib/Makefile.in: pic16 libraries build enabled since
1844           gputils-0.13.2 are now localy installed at sourceforge's compile farm
1845
1846 2005-08-02 Raphael Neider <rneider AT web.de>
1847
1848         * src/pic16/gen.c (genPackBits): removed deprecated warning
1849         * (genGenPointerSet): fixed bitfield detection
1850
1851 2005-08-02 Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
1852
1853         * device/include/mcs51/msm8xc154s.h: Removed PT2 definition, now in 8052.h.
1854
1855 2005-07-31 Raphael Neider <rneider AT web.de>
1856
1857         * device/lib/pic16/libdev/pic18f458.c,
1858           device/include/pic16/pic18f458.h: added missing T0CONbits
1859
1860 2005-07-29 Maarten Brock <sourceforge.brock AT dse.nl>
1861
1862         * device/include/mcs51/msm8xc154s.h: added, thanks to Matthias Arndt
1863
1864 2005-07-28 Maarten Brock <sourceforge.brock AT dse.nl>
1865
1866         * src/mcs51/gen.c (operandsEqu): fixed bug 1246687
1867
1868 2005-07-23 Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
1869
1870         * device/include/mcs51/at89c51ed2.h: added.
1871
1872 2005-07-23 Raphael Neider <rneider AT web.de>
1873
1874         * src/pic/gen.h: added emitpcode macro for debugging
1875         * src/pic/gen.c (emitpcode): renamed to emitpcode_real
1876           and replace by macro adding debug information on demand
1877         * (genNot): fixed to C semantics (!0 = 1; !x = 0 iff x != 0)
1878         * (gencjne): tried to fix; replaced with correct (slower) code
1879         * (gen{Unp,P}ackBits): fixed single bit access
1880         * src/pic/pcode.c (AnalyzepCode): fixed DFPRINTF argument
1881         * src/pic/pcodepeep.c (pCodeSearchCondition): fixed finding
1882           previous instruction
1883         * src/pic/pcoderegs.c (regIsSpecial): NEW, check whether a
1884           register has to be handled with care (forbidding movement
1885           of assignments/uses, removing assignments completely, ...)
1886         * (pCodeOptime2pCodes): make use of regIsSpecial
1887         * added lots of debugging output (commented out)
1888         * src/pic/rallloc.c (deassignLRs): prevent operand registers
1889           from being reused as result UNLESS it is known to work
1890
1891 2005-07-23 Maarten Brock <sourceforge.brock AT dse.nl>
1892
1893         * support/Util/dbuf.h: include <stddef.h> for size_t
1894         * .version: changed to version 2.5.2
1895
1896 2005-07-23 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
1897
1898         * src/SDCCloop.c (loopInvariants): fixed bug #1234048
1899
1900 2005-07-22 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
1901
1902         * src/hc08/gen.c (genMinus): fixed bug #1241835,
1903           (genModOneByte): removed needless psha/pula
1904
1905 2005-07-22 Raphael Neider <rneider AT web.de>
1906
1907         * src/SDCCmain.c (linkEdit): initialized linkerScriptFileName,
1908           have PIC14 handled like PIC16, fixes broken pic14 linker calls
1909         * src/pic/gen.c (resolveIfx): do not "invent" labels
1910         * (genSkipc): changed to positive logic
1911         * (genSkipCond): removed as no longer needed
1912         * (pic14_mov2w_regOrLit,genCmp): NEW, replacement for buggy version,
1913           backport from PIC16
1914         * (genLeftShift): check operands are in different registers
1915         * src/pic/genarith.c (genPlus): replaced INCF with ADDLW as
1916           INCF does not update CARRY...
1917         * src/pic/main.c: fixed _linkCmd
1918         * src/pic/pcode.c (unlinkpCode): added inactive code
1919         * src/pic/ralloc.c (deassignLRs): keep arguments to shift operations
1920           alive (do not assign result and operand overlapping registers)
1921
1922 2005-07-22 Raphael Neider <rneider AT web.de>
1923
1924         * src/pic/device.c (dump_sfr): replaced register declaration with
1925           call to emitSymbolToFile() to avoid duplicate symbols
1926         * (assignRelocatableRegisters): do not declare external symbols
1927         * src/pic/ralloc.c (allocNewDirReg): fixed to get size of arrays
1928           right (take size of type, not etype)
1929         * (allocDirReg): fixed call to allocNewDirReg() to pass OP_SYM_TYPE
1930         * (writeUsedRegs): also dump dynDirectRegs (e.g. local variables)
1931         * (packRegsForAccUse): disabled assignment of WREG as
1932           the result reg to prevent occurence of just fixed #1235003,
1933           fixes #1242954
1934         * src/pic/glue.c (emitSymbolToFile): NEW, central place to declare
1935           symbols (avoids duplicate symbols in .asm file)
1936         * (pic14emitRegularMap): use emitSymbolToFile()
1937         * src/pic/gen.c (aopOp): fixed spillLocation handling
1938         * (gen{Unp,P}ackBits): fixed acquiring bit-operands
1939         * (genDataPointerSet): removed unneccessary variables/output
1940
1941 2005-07-22 Maarten Brock <sourceforge.brock AT dse.nl>
1942
1943         * as/mcs51/lkarea.c: enlarged codemap for banked memory
1944         * device/lib/mcs51/crtbank.asm: added # to 0x0F
1945
1946 2005-07-21 Raphael Neider <rneider AT web.de>
1947
1948         * src/pic/gen.c (aopOp): do not generate AOP_ACC operands as pic14
1949           architecture cannot handle them efficiently, fixes bug #1235003
1950         * src/pic16/device.c (pic16_dump_{u,i}section,pic16_dump_int_registers):
1951           check for empty sets before using them (fixes bug #1232190)
1952
1953 2005-07-19 Maarten Brock <sourceforge.brock AT dse.nl>
1954
1955         * as/mcs51/lkarea.c (lnkarea, lnkarea2): improved BSEG size calculation,
1956           (lnksect2): generate warnings for memory overlap
1957         * src/SDCC.lex (doPragma, process_pragma): added pragma's codeseg and
1958           constseg to set the name of these segments so you can instruct the linker
1959           to place them in banks
1960         * src/SDCCast.c (decorateType): use new macro IS_FUNCPTR()
1961         * src/SDCCglobl.h: added MODEL_HUGE to enum,
1962           added code_seg and const_seg to options
1963         * src/SDCCglue.c (emitMaps): use options.const_seg,
1964           (createInterruptVect): put interrupt vectors in segment HOME,
1965           (glue): put HOME before static segment and put the main glue in HOME,
1966           (glue): use options.code_seg
1967         * src/SDCCicode.c (geniCodeCall): use new macro IS_FUNCPTR()
1968         * src/SDCCmain.c: added option --codeseg and --constseg to set the name of
1969           these segments so you can instruct the linker to place them in banks
1970           (linkEdit): use code_loc for HOME segment which should be the first
1971           segment in code memory now
1972         * src/SDCCmem.c: fixed more stuff like bug 1238386
1973         * src/SDCCsymt.c (getSize): use generic pointer size for banked functions,
1974           (changePointer): don't change function pointers to code pointers for
1975           banked functions,
1976           (compareType): added exceptional check for banked function pointers
1977         * src/SDCCsymt.h: changed IFFUNC_ISBANKEDCALL, added IS_FUNCPTR
1978         * src/hc08/main.c (_hc08_genAssemblerPreamble): put HOME first, put CSEG
1979           after static in code memory
1980         * src/mcs51/gen.c: added aopLiteralLong prototype,
1981           (aopForSym): use getSize for functions,
1982           (genCall): generate banked calls over one trampoline __sdcc_banked_call
1983           in HOME with lsb of address in r0, msb in r1 and bank in r2, use
1984           -Wl-bBANKSEG=0xbbaaaa option to set the address (aaaa) and bank (bb) of
1985           the segment,
1986           (genPcall): use call for literal function pointers and generate banked
1987           calls over the one trampoline so there's only one place for the user to
1988           modify according to his/hers hardware,
1989           (genEndFunction): jump to __sdcc_banked_ret in HOME for banked functions,
1990           (genPlusIncr): moved check icount>4 beyond inc dptr optimization
1991         * src/mcs51/main.c: added keyword banked,
1992           (_mcs51_genExtraAreas): put HOME first followed by GSINIT, STATIC and CSEG
1993         * support/Util/SDCCerr.c,
1994         * support/Util/SDCCerr.h: added E_BANKED_WITH_CALLEESAVES, registers are
1995           needed for passing the bank and address to the trampoline
1996         * device/lib/mcs51/crtbank.asm: added for bankswitching
1997         * device/lib/mcs51/Makefile: added crtbank
1998
1999 2005-07-16 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
2000
2001         * src/SDCCcse.c (algebraicOpts): fixed loss of volatility
2002           for fields at offset 0 of a struct or union as reported
2003           on 2005-07-07 in the developer mailing list.
2004
2005 2005-07-15 Maarten Brock <sourceforge.brock AT dse.nl>
2006
2007         * src/SDCCmem.c: fixed bug 1238386
2008
2009 2005-07-12 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
2010
2011         * src/mcs51/peeph.def: added labelrefcounting for peepholes
2012           (patch #1144962), added peephole 300, enabled 259.x
2013         * doc/sdccman.lyx: removed screenshot and provided link instead
2014
2015 2005-07-05 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
2016
2017         * doc/sdccman.lyx: added section about debugging with ddd
2018         * doc/figures/ddd_example.eps: screenshot of debugging session
2019
2020 2005-07-04 Raphael Neider <rneider AT web.de>
2021
2022         * src/pic/gen.c (genPointerGet): handle pointers to CONST values
2023           like CODE pointers, fixes #1115683
2024         * src/pic/pcode.c (DoBankSelect): forget LastRegIdx during function
2025           call, fixes bugs #1232211, #1228110,
2026           fixed wrong casts to pCodeFlow from pCodeInstructions
2027
2028 2005-07-04 Raphael Neider <rneider AT web.de>
2029
2030         * src/pic/gen.c (popGet): changed assert to allow for
2031           bit operands
2032         * (popGetAddr): changed signature to provide
2033           an additional index, patched all call sites
2034         * (genCmpEq): handle literal-like operands correctly
2035         * (genAddrOf): added sanity checks on __code/__data pointers
2036         * (genAssign): added handling of symbols from __code section
2037         * (gencjne): do not generate code for comparisons whose result
2038           is neither stored nor used, fixes bug #1171114
2039         * (AccLsh, AccRsh): operate on operand instead of WREG
2040         * (shift{Left,Right}_Left2ResultLit): NEW, size independant
2041           replacement for Shift{LR}{12}Left2Result; shift (byte/int/long)
2042           by known count
2043         * rewrote complete shift-by-literal logic, commented unused
2044           functions out
2045         * (genConstPointerGet): get multiple bytes (if result size > 1),
2046           fixed handling of non-immediate addresses
2047         * (genPointerGet): handle CODE pointers like CONST pointers
2048         * (genpic14Code): insert C-SRC lines as Cource-pCodes
2049         * ({aop,op}_isLitLike): NEW, single place to decide whether an
2050           operand is to be treated as a literal or not
2051         * (mov2w,genPcall,genCmpEq),
2052           src/pic/genarith.c: use aop_isLitLike() to decide between
2053           literal/register contents
2054         * (addSign): added missing offset
2055         * src/pic/gen.h: remove newline after FENTRY/FEXIT comments,
2056           only emit comment in debug-mode,
2057           use {aop,op}_isLitLike throughout the file
2058         * src/pic/glue.c: fix initializers for pointers (work in progress)
2059         * src/pic/pcode.c (get_op): honor index on _const symbols
2060         * ({reset,dump}pCodeStatistics): NEW, estimate code size
2061         * (dumppBlock): added pCode size estimation
2062         * src/pic/ralloc.c (deassignLRs,serialRegAssign,packRegisters):
2063           check for IS_SYMOP before OP_SYMBOL'ing
2064         * fixed indentation, compacted switch-statements
2065         * (allocReg): find free register and allocate it instead of
2066           allocating new registers all the time
2067         * (deassignLRs): prevent POINTER_GET's from being assigned the same
2068           registers as its operands (necessary only for multibyte GETs)
2069
2070 2005-07-01 Raphael Neider <rneider AT web.de>
2071
2072         * src/pic/gen.h: added prototypes emitpComment, popGetAddr and
2073           debugging .asm-output macros FENTRY + FEXIT
2074         * src/pic/gen.c (Safe_vsnprintf): NEW, is there a more generic
2075           way... I wonder...
2076         * (emitpComment): NEW, printf to pCode
2077         * (popGet): added assert on too large offsets, fixed PO_IMMEDIATE's
2078           offset handling
2079         * (popGetAddr): NEW, variant of popGet to access an immediates
2080           high(er) bytes instead of the n'th byte of memory they reference,
2081           replaced popGet with popGetAddr where neccessary
2082         * (genDataPointerGet): reactivated and fixed implementation
2083         * (genNearPointerGet): enabled call to genDataPointerGet, fixes array-
2084           accesses
2085         * (genDataPointerSet): fixed multibyte assignments
2086         * (genpic14Code): fixed --i-code-in-asm handling
2087         * src/pic/genarith.c: fixed PO_IMMEDIATE issue using popGetAddr,
2088         * (genPlus): fixed index-out-of-bounds error
2089         * src/pic/pcode.c (get_op): fixed PO_IMMEDIATE's index/offset handling
2090         * src/pic/ralloc.c: added debugging output macro FENTRY2
2091         * (spillThis): fixed indentation, enbraced for-body for clarity
2092         * (rematStr): commented out as now unused
2093         * (regTypeNum): commented out special spill case (overwrites
2094           arbitrary values)
2095         * fixes bugs #1229346, #1216476 (both arrays) and #1115667 (SIGSEGV)
2096
2097 2005-06-30 Maarten Brock <sourceforge.brock AT dse.nl>
2098
2099         * doc/sdccman.lyx: documented sfr16/sfr32,
2100           added example for using storage class with function pointers
2101         * src/mcs51/gen.c (genPlusIncr): optimized small offsets from dptr
2102
2103 2005-06-28 Maarten Brock <sourceforge.brock AT dse.nl>
2104
2105         * device/lib/_gptrget.c: also push/pop _PSBANK, added # to 0x03
2106         * device/lib/_itoa.c,
2107         * device/lib/_ltoa.c: optimized codesize
2108         * src/SDCCsymt.c (checkSClass): added sanity check for sfr at addresses,
2109           but don't know how to suppress the double warning.
2110         * src/mcs51/gen.c (genPlusIncr): fixed bug when incrementing volatile int's
2111         * support/Util/SDCCerr.c,
2112         * support/Util/SDCCerr.h: added warning W_SFR_ABSRANGE for sanity check
2113
2114 2005-06-27 Maarten Brock <sourceforge.brock AT dse.nl>
2115
2116         * as/mcs51/asexpr.c (expr): disabled warning "not in .flat24 mode",
2117           fixed old K&R prototypes
2118         * as/mcs51/asout.c (outrb): always output as if generating 24bit addresses
2119         * device/lib/_gptrget.c,
2120         * device/lib/_gptrgetc.c,
2121         * device/lib/_gptrput.c: changed versions for new memory indicator values,
2122           also new versions for small generic pointers and banked generic pointers
2123         * src/port.h: added const_name
2124         * src/SDCC.lex: added keywords sfr16, __sfr16, sfr32, __sfr32
2125         * src/SDCC.y: added tokens SFR16, SFR32 and their sfr_attributes
2126         * src/SDCCcse.c (findPrevIc): check all associative operators
2127         * src/SDCCglue.c (emitMaps): use CONST_NAME if defined
2128         * src/SDCCicode.h: added macro IS_ASSOCIATIVE
2129         * src/SDCCmem.c: updated comments,
2130           set far-space to 0 for pdata, results in optimized code
2131         * src/SDCCmem.h: added macro CONST_NAME
2132         * src/SDCCsymt.h: renumerated generic pointer types GPTYPE_... thereby
2133           moving the info into the highest bits, see also gptrget/gptrput
2134         * src/src.dsp: added sdcc.ico to project files
2135         * src/avr/gen.c (genCast): fixed bug 0x%d
2136         * src/avr/main.c (avr_port): added "CONST (CODE)" for const_name
2137         * src/ds390/gen.c (aopForRemat, adjustArithmeticResult): disconnected direct
2138           relation between ptr_type and DCL_TYPE,
2139           (genCast): fixed bug 0x%d
2140         * src/ds390/main.c (ds390_port, tininative_port, ds400_port): added "CONST
2141           (CODE)" for const_name
2142         * src/hc08/gen.c (genCast): fixed bug 0x%d
2143         * src/hc08/main.c (_hc08_genAssemblerPreamble): added .area ...const_name,
2144           (hc08_port): added "CONST (CODE)" for const_name
2145         * src/mcs51/gen.c (aopForSym): optimized pushing ACC,
2146           (aopForRemat, adjustArithmeticResult): disconnected direct relation
2147           between ptr_type and DCL_TYPE,
2148           (aopGetUsesAcc, aopGet, aopPut): changed first parameter from asmop* to
2149           operand* and took AOP() inside function so sfr-ness can be checked,
2150           (all over): repaired calls to aopGetUsesAcc, aopGet, aopPut to comply with
2151           new prototype,
2152           (genFunction, genEndFunction): optimized stack setup,
2153           (genMinus): optimized for literals with ending zeroes (in bytes),
2154           (genCast): fixed bug 0x%d
2155         * src/mcs51/main.c (_mcs51_keywords): added sfr16 and sfr32,
2156           (mcs51_port): added "CONST (CODE)" for const_name
2157         * src/mcs51/peeph.def: made rule 226 more generic
2158         * src/pic/main.c (pic_port): added "CONST (CODE)" for const_name
2159         * src/pic16/main.c (pic16_port): added "CONST (CODE)" for const_name
2160         * src/xa51/main.c (xa51_port): added "CONST (CODE)" for const_name
2161         * src/z80/main.c (z80_port): added NULL for const_name,
2162           (gbz80_port): added NULL for const_name
2163         * support/regression/tests/bug663539.c,
2164         * support/regression/tests/sfr16.c: new tests
2165
2166 2005-06-25 Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
2167
2168         * device/include/mcs51/p89v51rd2.h, device/include/mcs51/at89s53.h: added.
2169
2170 2005-06-24 Raphael Neider <rneider AT web.de>
2171
2172         * device/lib/pic16/libdev/pic18f[68][567]20.c:
2173           corrected typos...
2174         * device/include/pic16/signal.h: added USBIF
2175           and SIG_USB
2176
2177 2005-06-24 Raphael Neider <rneider AT web.de>
2178
2179         * device/lib/pic16/libdev/pic18f2455.c,
2180           device/include/pic16/pic18f2455.h: NEW
2181         * device/include/pic16/pic18fregs.h,
2182           device/lib/pic16/pics.all,
2183           src/pic16/device.c: added 18f2455
2184         * device/lib/pic16/libdev/pic18f[68][567]20.c,
2185           device/include/pic16/{pic18f[68][567].h,usart.h}:
2186           replaced MULTIPLE_USARTS define with more relaible
2187           compatibility sfrs (for USART access)
2188
2189 2005-06-20 Slade Rich <slade_rich AT users.sourceforge.net>
2190
2191         * src/pic/pcode.c : Fixed problem when a string constant contains a "\r\n"
2192           and the output asm file line is printed on two lines.
2193
2194 2005-06-19 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
2195
2196         * sim/ucsim/hc08.src/inst.cc (inst_condbranch): fixed simulation of
2197           BGT, BLE, BHI, and BLS instructions
2198         * src/hc08/gen.c (outAcc, outBitC, outBitNV, genCmpLt, genCmpGt,
2199           genCmpEq): removed
2200         * src/hc08/gen.c (genCmpEQorNE, genCmp, branchopCmp, nameCmp,
2201           negatedCmp, exchangedCmp, genhc08Code): rewrite of comparison handling,
2202           fixes bug #1216342
2203         * src/hc08/peeph.def: added rules 2g - 2l for new conditional branches
2204
2205 2005-06-15 Raphael Neider <rneider AT web.de>
2206
2207         * src/pic16/NOTES: moved Vangelis from active developers to people to contact
2208         * device/include/pic16/{6520.h,8520.h}: fixed configuration bits
2209         * src/pic16/gen.c (): prevent iTemps from being considered to be in CODESPACE,
2210           fixes bug #1221120; for symbols in CODESPACE get number of bytes to read from
2211           OP_SYM_TYPE() instead of OP_SYM_ETYPE()
2212
2213 2005-06-06 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
2214
2215         * device/include/mcs51/reg764.h: Changed PB0 to PBO as requested by
2216           Marcel Telka in bug #1215704
2217
2218 2005-06-02 Slade Rich <slade_rich AT users.sourceforge.net>
2219
2220         * src/pic/pcode.c : Changed pseudo stack size to 15 to allow WSAVE to be
2221           located in shared memory bank.
2222
2223 2005-05-31 Raphael Neider <rneider AT web.de>
2224
2225         * src/pic16/{gen.c,genarith.c}: replaced sign-extension
2226           "CLRF, BTFSC <signbit>, DECF/COMF" with side-effect-free
2227           "CLRF, BTFSC <signbit>, SETF"; fixes "long>>9"
2228
2229 2005-05-27 Maarten Brock <sourceforge.brock AT dse.nl>
2230
2231         * device/lib/_strncpy.c: fixed the fix
2232
2233 2005-05-26 Raphael Neider <rneider AT web.de>
2234
2235         * src/pic16/glue.c (pic16_printIvalChar): fixed _constant_ string
2236           initializers with \0, bug #1208187
2237         * src/pic/glue.c (printIvalChar): fixed (non- and constant) string
2238           intializers with \0, bug #1208187
2239
2240 2005-05-26 Raphael Neider <rneider AT web.de>
2241
2242         * src/pic16/glue.c (pic16_printIvalChar): fixed string
2243           initializers with \0, bug #1208187
2244         * src/pic16/main.c (_process_pragma): added sanity checks
2245           for stack position and size, emit warnings when appropriate
2246
2247 2005-05-26 Maarten Brock <sourceforge.brock AT dse.nl>
2248
2249         * device/lib/_strncpy.c: fixed not filling with \0
2250
2251 2005-05-26 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
2252
2253         * src/SDCCast.c (funcOfType, funcOfTypeVarg, stringToSymbol,
2254           createFunction),
2255         * src/SDCC.y (external_definition, enumerator, parameter_declaration,
2256           compound_statement),
2257         * src/SDCCsymt.h,
2258         * src/SDCCsymt.c (addSymChain, processFuncArgs): fixed bug #1159134
2259
2260 2005-05-24 Raphael Neider <rneider AT web.de>
2261
2262         * src/pic16/glue.c (pic16_printGPointerType): fixed #1207796
2263
2264 2005-05-24 Raphael Neider <rneider AT web.de>
2265
2266         * device/include/pic16/pic18f{442,452,458}.h: fixed wrong
2267           TRISE definitions, closes bug #1162453
2268
2269 2005-05-22 Raphael Neider <rneider AT web.de>
2270
2271         * src/pic16/main.c (_process_pragma): check for missing
2272           arguments to pragmas code and udata
2273         * device/include/pic16/pic18f{2550,4331,4455,4520}.h:
2274           consistency fixes to match other headers (thanks to Jim Paris)
2275         * device/lib/pic16/libio/i2c.ignore: 18f4331 provides no I2C
2276
2277 2005-05-21 Maarten Brock <sourceforge.brock AT dse.nl>
2278
2279         * src/SDCCicode.c (isOperandEqual): fixed missing ;
2280
2281 2005-05-19 Maarten Brock <sourceforge.brock AT dse.nl>
2282
2283         * support/regression/tests/bug1198642.c: new test
2284         * src/SDCCicode.c (isOperandEqual): fixed bug 1198642
2285         * src/SDCCcse.c (findPrevIc): added comment, please have a look
2286         * support/scripts/resource.h,
2287         * support/scripts/resource.rc,
2288         * src/src.dsp: added sdcc.ico to project as icon for sdcc.exe
2289         * support/scripts/sdcc.ico: added 32x32 icon
2290
2291 2005-05-18 Raphael Neider <rneider AT web.de>
2292
2293         * device/lib/pic16/libdev/pic18f*.c,
2294         * device/include/pic16/pic18f*.h: updated "sfr" and "at X"
2295           keywords to "__sfr" and "__at (X)"
2296         * device/include/pic16/pic18fregs.h: added pic18f4520
2297         * src/pic16/pcode.c (pic16_pCode2str): fixed (?) bug
2298           #1203088 (MPLAB compatibility)
2299
2300 2005-05-17 Raphael Neider <rneider AT web.de>
2301
2302         * device/include/pic16/pic18f{2550,4331,4455,4520}.h: NEW
2303         * device/lib/pic16/libdev/pic18f{2550,4331,4455,4520}.c: NEW
2304         * device/lib/pic16/pics.all: added new devices
2305         * src/pic16/device.c: added support for pic18f4520
2306
2307 2005-05-16 Raphael Neider <rneider AT web.de>
2308         * src/pic16/gen.{c,h}: s/mov2f/pic16_mov2f made public
2309         * src/pic16/genarith.c (genAddLit): fixed bug 1202480
2310         * src/pic16/pcode.{c,h} (pic16_newpCodeOpBit_simple): NEW
2311           convenience function for bit access
2312
2313 2005-05-15 Maarten Brock <sourceforge.brock AT dse.nl>
2314
2315         * device/lib/printf_large.c: fixed bug 1193299
2316         * support/regression/tests/bug1057979.c: added test %3.3s
2317
2318 2005-05-15 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
2319
2320         * device/include/mcs51/8051.h,
2321         * device/include/mcs51/8052.h: made parseable with lint
2322         * device/include/mcs51/lint.h: added include file for (sp)lint
2323         * doc/sdccman.lyx: added doc about use of splint (syntax checking tool)
2324         * doc/cdbfileformat.lyx,
2325         * doc/test_suite_spec.lyx: hardcoded date to the date of last text change
2326
2327 2005-05-14 Raphael Neider <rneider AT web.de>
2328
2329         * device/lib/pic16/Makefile.common.in: add --optimize-df to OPT_FLAGS
2330         * device/lib/pic16/libc/stdlib/itoa.c (new)
2331         * device/lib/pic16/libc/stdlib/Makefile: have itoa.c built
2332         * device/lib/pic16/libio/Makefile: exclude subdir according to
2333           ${subdir}.ignore for certain PICs (lacking e.g. i2c)
2334         * device/lib/pic16/libio/i2c.ignore (new): pic18f1220 has no I2C support
2335         * src/pic16/gen.c (genFunction): prevent annoying warning
2336         * src/pic16/pcode.c: renamed stack_t to dynstack_t to prevent
2337           nameclashes on BeOS
2338         * support/cpp2/cppmain.c (cpp_output_string): new
2339         * support/cpp2/cpplib.c (_cpp_do__Pragma): fixed _Pragma(""),
2340           fixes bug 1116802
2341
2342 2005-05-13 Borut Razem <borut.razem AT siol.net>
2343
2344         * src/SDCCmain.c (linkEdit): fixed bug 1195202
2345
2346 2005-05-12 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
2347
2348         * .version: changed to version 2.5.1; back to bleeding edge development
2349
2350 2005-05-11 Borut Razem <borut.razem AT siol.net>
2351
2352         * doc/sdccman.lyx doc/cdbfileformat.lyx doc/test_suite_spec.lyx:
2353           generate PDF version 1.3 documents
2354
2355 2005-05-07 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
2356
2357         * .version: changed to version 2.5.0
2358
2359 2005-04-27 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
2360
2361         * doc/sdccman.lyx: updated weblinks, index and smaller updates
2362
2363 2005-04-26 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
2364
2365         * doc/sdccman.lyx: changed version 2.5.0, documented --std-c89,
2366         --std-sdcc89, --std-c99, --std-sdcc99, and the corresponding #pragmas, as
2367         well as many smaller updates.
2368         * .version: changed to version 2.5.0-pre1
2369
2370 2005-04-26 Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
2371
2372         * src/SDCCmain.c (setIncludePath): added port->target to SDCC_INCLUDE_NAME
2373
2374 2005-04-26 Maarten Brock <sourceforge.brock AT dse.nl>
2375
2376         * support/regression/tests/bug1185672.c: added
2377         * src/mcs51/gen.c (aopGetUsesAcc, genCpl, genAnd, genOr, genXor): fixed
2378           bug 1185672
2379         * src/mcs51/gen.c (genCall): added comments, made it look safer
2380         * src/mcs51/gen.c (genEndFunction): simplified
2381
2382 2005-04-25 Maarten Brock <sourceforge.brock AT dse.nl>
2383
2384         * src/mcs51/ralloc.c (serialRegAssign): fixed bug 1189609
2385
2386 2005-04-14 Borut Razem <borut.razem AT siol.net>
2387
2388         * fixed bug 1045046 - SIGSEGV with really simple code?:
2389           src/pic/pcode.c (pCodeInitRegisters)- pseudo stack size increased to 16
2390           src/pic/ralloc.c (typeRegWithIdx) - error message on pseudo stack overflow
2391
2392 2005-04-14 Borut Razem <borut.razem AT siol.net>
2393
2394         * src/pic16/gen.c (genInline), src/pic16/main.c (_process_pragma),
2395           src/pic16/device.h: temporarily disabled experimental #inline pragma
2396           for 2.5.0 release
2397
2398 2005-04-14 Maarten Brock <sourceforge.brock AT dse.nl>
2399
2400         * device/include/z80/stdio.h,
2401         * device/include/z80/string.h: removed these highly incomplete files so
2402           SDCC can use the default ones in device/include/
2403
2404 2005-04-14 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
2405
2406         * src/mcs51/gen.c (genEndFunction): removed unused variable to fix
2407         gcc warning.
2408         * device/lib/Makefile.in: default PORTINCDIR to the mcs51 subdir to
2409         fix sdcpp warnings.
2410
2411 2005-04-12 Maarten Brock <sourceforge.brock AT dse.nl>
2412
2413         * device/include/malloc.h: removed redundant __reentrant prototypes
2414         * device/lib/_mullong.c: added working xstack variant in asm (C version
2415           doesn't pass regression tests)
2416         * device/lib/bpx.c: used __data and made bpx char for mcs51
2417         * src/SDCCast.c (decorateType): removed unused GPTYPE_IDATA,
2418           (createFunction): fixed bug with xstackPtr
2419         * src/SDCCcse.c: corrected comments
2420         * src/SDCCopt.c (convertToFcall): fixed warning in MSVC,
2421           (killDeadCode, eBBlockFromiCode): removed unused code
2422         * src/SDCCsymt.h: removed unused GPTYPE_GPTR and GPTYPE_IDATA,
2423           corrected comments
2424         * src/mcs51/gen.c (aopForSym, aopPut, toBoolean, unsaveRegisters,
2425           assignResultValue, genCall, genFunction, genEndFunction, genAnd,
2426           genOr, genXor, genAddrOf): fixed several bugs concerning xstack
2427           (genModOneByte): fixed warning in MSVC
2428         * src/mcs51/main.c (): added comments
2429         * src/mcs51/peeph.def: changed 129 to 129.a, added 129.b, 129.c & 129.d
2430
2431 2005-04-12 Maarten Brock <sourceforge.brock AT dse.nl>
2432
2433         * src/SDCCmain.c (linkEdit): oops, changed one line too many
2434
2435 2005-04-11 Maarten Brock <sourceforge.brock AT dse.nl>
2436
2437         * src/SDCCmain.c (linkEdit): fixed bug with finding crt0.o for z80
2438
2439 2005-04-10 Vangelis Rokas <vrokas AT users.sourceforge.net>
2440
2441         * src/pic16/glue.c (printIvalChar): fixed bug when emitting
2442         characters arrays of larger size than the declared one.
2443
2444 2005-04-10 Borut Razem <borut.razem AT siol.net>
2445
2446         * src/pic/gen.c (genInline),
2447           src/pic/pcode.c (newpCodeAsmDir), (pCode2str),
2448           (genericPrint), (unlinkpCodeFromBranch), (compareLabel),
2449           (findNextInstruction), (findPrevInstruction),
2450           (findInstructionUsingLabel),
2451           src/pic/pcode.h: fixed bug #1164907 - Labels not being recognized
2452         * src/pic/pcode.c (findLabel): added missing '\n'
2453         * src/src.dsp: added SDCCdwarf2.c to the project
2454
2455 2005-04-09 Borut Razem <borut.razem AT siol.net>
2456
2457         * support/scripts/sdcc.nsi: added include/hc08/* h to NSIS setup
2458
2459 2005-04-08 Raphael Neider <rneider AT web.de>
2460
2461         * src/pic16/pcode.c: added helpers defmapInsertAfter (insert a new item
2462           into the chain after a given one) and mergeDefmapSymbols (combine
2463           defmap entries for each symbol per pcode)
2464         * (createDefmap): have defmap entries merged in the end
2465         * (defmapReplaceSymRef): split defmap entries covering two accesses to
2466           a symbol before replacing one access type's symbol, merge symbols in
2467           the end (replacement symbol might already have an entry)
2468         * (assignValnums): keep reference to written WREG intact
2469
2470 2005-04-08 Raphael Neider <rneider AT web.de>
2471
2472         * src/pic16/pcode.c (struct defmap_s): named anonymous union (for
2473           Alpha)
2474
2475 2005-04-08 Vangelis Rokas <vrokas AT users.sourceforge.net>
2476
2477         * src/pic16/pcode.c (pic16_get_op2): enlarged size of array b to 128
2478         bytes
2479
2480 2005-04-07 Raphael Neider <rneider AT web.de>
2481
2482         * device/include/pic16/usart.h: added compatibility defines for
2483           devices with more than one USART
2484         * device/include/pic16/pic18f[68][567]20.h: activated above defines
2485
2486 2005-04-07 Maarten Brock <sourceforge.brock AT dse.nl>
2487
2488         * device/lib/Makefile.in: updated for port specific include
2489
2490 2005-04-07 Maarten Brock <sourceforge.brock AT dse.nl>
2491
2492         * support/regression/ports/mcs51/spec.mk: added mcs51 include
2493
2494 2005-04-07 Maarten Brock <sourceforge.brock AT dse.nl>
2495
2496         * device/include/8051.h,
2497         * device/include/8052.h,
2498         * device/include/at89S8252.h,
2499         * device/include/at89c55.h,
2500         * device/include/at89x051.h,
2501         * device/include/at89x51.h,
2502         * device/include/at89x52.h,
2503         * device/include/mcs51reg.h,
2504         * device/include/reg51.h,
2505         * device/include/reg764.h,
2506         * device/include/regc515c.h,
2507         * device/include/sab80515.h: (re)moved these 12 files
2508         * device/include/mcs51/8051.h,
2509         * device/include/mcs51/8052.h,
2510         * device/include/mcs51/at89S8252.h,
2511         * device/include/mcs51/at89c55.h,
2512         * device/include/mcs51/at89x051.h,
2513         * device/include/mcs51/at89x51.h,
2514         * device/include/mcs51/at89x52.h,
2515         * device/include/mcs51/mcs51reg.h,
2516         * device/include/mcs51/reg51.h,
2517         * device/include/mcs51/reg764.h,
2518         * device/include/mcs51/regc515c.h,
2519         * device/include/mcs51/sab80515.h: and added them here
2520
2521 2005-04-06 Maarten Brock <sourceforge.brock AT dse.nl>
2522
2523         * device/include/stdarg.h: changed SDCC specific keywords to double
2524           underlined form.
2525         * device/include/stdint.h: changed intptr_t and uintptr_t for others than
2526           mcs51 and ds390.
2527         * device/include/hc08/mc68hc908gp32.h,
2528         * device/include/hc08/mc68hc908jb8.h,
2529         * device/include/hc08/mc68hc908jkjl.h,
2530         * device/include/hc08/mc68hc908qy.h: fixed comments
2531         * device/include/mcs51/README: updated
2532         * device/include/mcs51/c8051f120.h: added PINRSF
2533         * device/lib/pic16/libc/stdlib/crc16.c: fixed comments
2534         * src/pic16/pcode.c: MSVC6 doesn't accept declaring new variables
2535           amidst code. Also inline is not supported.
2536
2537 2005-04-06 Raphael Neider <rneider AT web.de>
2538
2539         * src/pic16/pcode.c (pic16_pCodeReplace): also update pcflow->end
2540         * (createDefmap): fixed CALLs to depend on FSR1 and RETLW to restore
2541           callers stack/frame pointers
2542
2543 2005-04-06 Vangelis Rokas <vrokas AT users.sourceforge.net>
2544
2545         * device/include/pic16/usart.h: added, missing in previous commit,
2546         * device/include/pic16/adc.h: fixed typo,
2547         * device/lib/pic16/libc/utils/cvtdec.S: added missing in previous
2548         commit,
2549         * device/lib/pic16/libc/stdlib/g_ftoa.S: modified to include
2550         <p18fxxx.inc>
2551         * device/lib/pic16/libc/stdio/streams.c: leave stdin, stdout
2552         uninitialized because a bug appears with gplink
2553         * device/lib/pic16/{some makefiles}: moved $(CSTD) from CFLAGS to
2554         COMPILE_FLAGS and added CPPFLAGS with -nostdinc because sdcpp
2555         complains for unrecognised option
2556
2557 2005-04-05 Raphael Neider <rneider AT web.de>
2558
2559         * src/pic16/gen.c (pic16_popCopyReg): made copying work for extended
2560           structs as well (using memcpy)
2561         * (genFunction): fixed comparison, used pCodeOpLabel to reduce warning
2562           on ISRs (GOTO has no label)
2563         * src/pic16/device.h: added OF_OPTIMIZE_DF
2564         * src/pic16/main.c: added compiler switch --optimize-df to enable the
2565           new data flow analysis/optimization
2566         * src/pic16/pcode.c: added (prototypes for and implementation of)
2567           dataflow analysis functions, fixed pCodeInstructions' inCond and
2568           outCond values, made RCALL a branch instruction
2569         * (pic16_unlinkpCode): keep C line if possible
2570         * (pic16_pCodeUnlink): removed cast on left side of assignment, have
2571           C line moved if possible
2572         * (pic16_getRegFrompCodeOp): NEW, improved version of...
2573         * (pic16_getRegFromInstruction,pic16_getRegFromInstruction2): changed
2574           to use new pic16_getRegFrompCodeOp (works for more SFRs)
2575         * (pic16_BuildFlow): fixed skip instructions with label (did not start
2576           new flow)
2577         * (pic16_getJumptabpCode): NEW, needed in...
2578         * (LinkFlow): fixed handling of jumptables, calls and conditional
2579           branches
2580         * (pic16_InsertCommentAfter): NEW
2581         * (pic16_pCodeReplace): made verbose and flow preserving
2582         * (AnalyzeFlow): added call to data flow analysis
2583         * src/pic16/pcode.h: added defmaps to pCodeFlow struct
2584         * src/pic16/pcodeflow.h: added PCC_STATUS to mean all STATUS bits
2585         * src/pic16/ralloc.c (packRegsForAssign): added return 1 in the end
2586
2587 2005-04-03 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
2588
2589         * src/SDCCast.c (decorateType): fixed bug #1105626
2590
2591 2005-04-02 Vangelis Rokas <vrokas AT users.sourceforge.net>
2592
2593         * device/include/asm/pic16/features.h,
2594         * pic18f*.h headers,
2595         * device/include/pic16/adc.h,
2596         * device/include/pic16/delay.h,
2597         * device/include/pic16/i2c.h,
2598         * device/include/pic16/malloc.h,
2599         * device/include/pic16/stdio.h,
2600         * device/include/pic16/stdlib.h,
2601         * device/include/pic16/string.h,
2602         * device/lib/pic16/libc/stdio/printf_tiny.c,
2603         * device/lib/pic16/libc/stdio/printf_small.c,
2604         * device/lib/pic16/libc/stdio/strmgpsim.c,
2605         * device/lib/pic16/libc/stdio/strmmssp.c,
2606         * device/lib/pic16/libc/stdio/strmusart.c,
2607         * device/lib/pic16/libc/stdio/vfprintf.c,
2608         * device/lib/pic16/libc/stdlib/ltoa.c,
2609         * device/lib/pic16/libc/stdlib/putchar.c,
2610         * device/lib/pic16/libc/stdlib/x_ftoa.c,
2611         * device/lib/pic16/libc/stdlib/memchrpgm.c,
2612         * device/lib/pic16/libc/stdlib/memchrram.c,
2613         * device/lib/pic16/libc/stdlib/memcpypgm2ram.c,
2614         * device/lib/pic16/libc/stdlib/memcpyram2ram.c,
2615         * device/lib/pic16/libio/adc/adcbusy.c,
2616         * device/lib/pic16/libio/adc/adcread.c,
2617         * device/lib/pic16/libio/adc/adcsetch.c,
2618         * device/lib/pic16/libio/usart/ubaud.c,
2619         * device/lib/pic16/libio/usart/ubusy.c,
2620         * device/lib/pic16/libio/usart/udrdy.c,
2621         * device/lib/pic16/libio/usart/uopen.c,
2622         * device/lib/pic16/libio/usart/uputc.c,
2623         * device/lib/pic16/libsdcc/gptr/gptrget1.c,
2624         * device/lib/pic16/libsdcc/gptr/gptrget2.c,
2625         * device/lib/pic16/libsdcc/gptr/gptrget3.c,
2626         * device/lib/pic16/libsdcc/gptr/gptrget4.c,
2627         * device/lib/pic16/libsdcc/gptr/gptrput1.c,
2628         * device/lib/pic16/libsdcc/gptr/gptrput2.c,
2629         * device/lib/pic16/libsdcc/gptr/gptrput3.c,
2630         * device/lib/pic16/libsdcc/gptr/gptrput4.c: modified all SDCC
2631         specific keywords to double underlined form,
2632         * device/lib/pic16/libc/Makefile.rules,
2633         * device/lib/pic16/libsdcc/Makefile.rules,
2634         * device/lib/pic16/libm/Makefile,
2635         * device/lib/pic16/libio/Makefile.rules: added CSTD macro in CFLAGS
2636         to compile with C standard set in Makefile.common
2637         * device/lib/pic16/libc/stdlib/Makefile: added new C sources
2638         rand.c and crc.c in compilation process,
2639         * device/lib/pic16/libsdcc/int/divuint.c,
2640         * device/lib/pic16/libsdcc/long/divulong.c: changed declaration of
2641         `c' from signed to unsigned,
2642         * device/lib/pic16/startup/crt0.c,
2643         * device/lib/pic16/startup/crt0i.c,
2644         * device/lib/pic16/startup/crt0iz.c: adopted to all SDCC specific
2645         keywords to double underlined form, bug fixes in _do_cinit function
2646         which prevented the correct initialization of the .idata segment,
2647         * src/pic16/pcoderegs.c (insideLRBlock): fixed a bug that caused the
2648         core to enter a infinite loop
2649         * device/lib/pic16/libc/stdlib/rand.c, crc.c: new files
2650
2651 2005-04-02 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
2652
2653         * src/SDCCicode.c (getArraySizePtr): fixed bug #1122171
2654
2655 2005-04-01 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
2656
2657         * device/include/Makefile.in: add support for hc08 subdirectory
2658         * device/include/hc08/: new subdirectory
2659         * device/include/hc08/mc68hc908jkjl.h: new header contributed by
2660         Lucas Loizaga, thanks!
2661         * device/include/hc08/mc68hc908qy.h,
2662         * device/include/hc08/mc68hc908gp32.h,
2663         * device/include/hc08/mc68hc908jb8.h: moved hc08 register defs to
2664         their own directory. Changed internal macro names to use the compiler
2665         reserved namespace. Changed SDCC specific keywords to double
2666         underlined form.
2667         * device/include/math.h,
2668         * device/include/malloc.h,
2669         * device/include/stdarg.h,
2670         * device/include/stdbool.h
2671         * device/include/string.h,
2672         * device/include/tinibios.h,
2673         * device/include/ds400rom.h,
2674         * device/include/8051.h,
2675         * device/include/8052.h,
2676         * device/include/80c51xa.h,
2677         * device/include/at89c55.h,
2678         * device/include/at89S8252.h,
2679         * device/include/at89x51.h,
2680         * device/include/at89x52.h,
2681         * device/include/ds80c390.h,
2682         * device/include/reg764.h,
2683         * device/include/regc515c.h,
2684         * device/include/sab80515.h,
2685         * device/include/mcs51/c8051f000.h,
2686         * device/include/mcs51/c8051f018.h,
2687         * device/include/mcs51/c8051f020.h,
2688         * device/include/mcs51/c8051f040.h,
2689         * device/include/mcs51/c8051f060.h,
2690         * device/include/mcs51/c8051f120.h,
2691         * device/include/mcs51/c8051f300.h,
2692         * device/include/mcs51/c8051f310.h,
2693         * device/include/mcs51/c8051f320.h,
2694         * device/include/mcs51/c8051f330.h,
2695         * device/include/mcs51/c8051f350.h,
2696         * device/include/z180.h: Changed SDCC specific keywords to double
2697         underlined form.
2698
2699 2005-03-31 Vangelis Rokas <vrokas AT users.sourceforge.net>
2700
2701         * src/pic16/device.c (Pics16[]): added devices 18F2550, 18F4331,
2702         18F4455,
2703         * (pic16_assignConfigWordValue): disable testing of configuration
2704         register value with config mask,
2705         * src/pic16/gen.c (pic16_testStackOverflow): prefix stack test
2706         function with port->fun_prefix,
2707         * (genFunction): when generating a naked interrupt function never
2708         create an absolute segment placed in interrupt vector address, place
2709         the actual interrupt function at IVA instead, when an interrupt
2710         function is generated with unspecified interrupt then do not create
2711         the absolute section,
2712         * (genGenPointerGet, genGenPointerSet, genPackBits): replace all
2713         code for generating a call to generic pointer get/put function with
2714         a call to function pic16_callGenericPointer(),
2715         * src/pic16/genutils.c (pic16_callGenericPointerRW): NEW, generates
2716         the call to the generic pointer get/put functions with prefixing the
2717         function name with port->fun_prefix,
2718         * src/pic16/glue.c (pic16glue): ifdef-out test of OF_LR_SUPPORT,
2719         * src/pic16/main.c (_process_pragma): prefix function with
2720         port->fun_prefix,
2721         * (_pic16_finaliseOptions): define macro __18Fxxxx macro when
2722         calling assembler, old 18Fxxxx macro is deprecated,
2723         * src/pic16/pcode.c (unlinkpCodeFromBranch): added PC_INLINE and
2724         PC_ASMDIR in while condition,
2725         * (findInstruction): add PC_ASMDIR in while condition,
2726         * (buildCallTree): prefix main with port->fun_prefix,
2727         * (pic16_pCode2str): fixed bug that didn't emit the memory access
2728         identifier for variable with banked access in instructions BTFSS,
2729         BTFSC, BCF, BSF, BTG
2730         * (AnalyzeFlow): moved call to OptimizepCode to pic16_AnalyzeBanking,
2731         * src/pic16/pcodepeep.c (pCodeOpCompare): increase size of b to 1024,
2732         * src/pic16/pcoderegs.c (pic16_pCodeRegoptimizeRegUsage): don't
2733         perform optimization when enviroment variable NO_REG_OPT is set,
2734         * (insideLRBlock): NEW, return 1 if register is inside an
2735         INF_LOCALREGS block,
2736         * (RemoveRegFromLRBlock): remove a register that is completely
2737         eliminated by register optimization, but it is still left in local
2738         register store/restore in/from stack block,
2739         * (Remove2pcodes): after removing register, check to see if it
2740         should be removed from local register store/restore in/from stack
2741         block,
2742         * src/pic16/ralloc.c (pic16_decodeOp): added decode for
2743         DUMMY_READ_VOLATILE,
2744
2745         * device/include/pic16/adc.h: minor prototype modifications and
2746         update,
2747         * device/include/pic16/malloc.h: added GPL notice various
2748         modifications,
2749         * device/include/pic16/stdint.h: NEW, standard header for ints
2750         * device/include/pic16/delay.h: NEW, header for delay functions,
2751         delay10tcy, delay100tcy, delay1ktcy, delay10ktcy, delay100ktcy,
2752         delay1mtcy,
2753         * device/include/pic16/signal.h: NEW, header providing helper macros
2754         for implementing signal handlers,
2755         * device/include/pic16/stdio.h: added prototypes for functions,
2756         printf, vprintf, sprintf, vsprintf, fprintf, vfprintf. Added
2757         prototypes for stdin and stdout, added macro PUTCHAR to
2758         automatically implement putchar function prototype,
2759         * device/include/pic16/usart.h: modified and updated USART library,
2760         * device/lib/pic16/libio/adc/,
2761         * device/lib/pic16/libio/i2c: some modifications to improve library
2762         performance,
2763         * device/lib/pic16/libc/stdio/: modifications for the new printf*
2764         family of functions,
2765         * device/lib/pic16/libc/stdlib/: various modifications in the malloc
2766         family of functions and other sources,
2767         * device/lib/pic16/libio/usart/: NEW, c sources for the usart module
2768         of the PIC18Fxx[28] devices,
2769         * device/lib/pic16/libc/delay/: NEW, c sources for the delay functions,
2770         * device/lib/pic16/libc/utils/: minor modifications in the .S sources,
2771         * device/lib/pic16/startup/{crt0i.c, crt0iz.c}: redesign of the
2772         _do_cinit function, because the previous failed when local variables
2773         where not placed in the same memory bank,
2774         * device/lib/pic16/libsdcc/char/: various modifications to improve
2775         library performance,
2776         * doc/sdccman.lyx: some reorganization of the PIC16 part, added many
2777         information on the new functions of the c library and more...
2778
2779 2005-03-28 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
2780
2781         * src/SDCCBBlock.c (iCodeBreakDown): fixed bug #1170212
2782
2783 2005-03-26 Raphael Neider <rneider AT web.de>
2784
2785         * src/pic16/gen.c (genSkipc): fixed semantics (execute branch
2786           if condition == CARRY)
2787         * (genCmp): adapted to new genSkipc semantics
2788         * src/pic16/genutils.c (pic6_genCmp_special): removed side effect
2789           on rIfx (genCmp was broken)
2790
2791 2005-03-26 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
2792
2793         * src/SDCCmain.c (setDefaultOptions, optionsTable[], parseCmdLine),
2794         * src/z80/main.c (_keywords[]),
2795         * src/SDCCglobal.h (struct options),
2796         * src/SDCC.y,
2797         * src/SDCC.lex (isTargetKeyword, doPragma, pragma_tbl[]): new pragmas
2798         to enable/disable SDCC and C99 extensions/keywords (std_c89, std_sdcc89,
2799         std_c99, std_sdcc99). Also, equivalent command line options (--std-c89,
2800         --std-sdcc89, --std-c99, --std-sdcc99). SDCC specific keywords are
2801         always available in leading double underscore form. The C99 support is
2802         mostly missing, but it's a start.
2803         * support/regression/tests/bug-227710.c: fixed nonconforming use of
2804         reserved identifier "__data".
2805
2806 2005-03-24 Maarten Brock <sourceforge.brock AT dse.nl>
2807
2808         * src/mcs51/peeph.def: fixed bug 1170013
2809
2810 2005-03-22 Maarten Brock <sourceforge.brock AT dse.nl>
2811
2812         * device/include/mcs51reg.h: fixed bug 842007
2813
2814 2005-03-21 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
2815
2816         * src/SDCCcflow.c (dfNumCompare): committed the wrong version of this
2817         last time.
2818
2819 2005-03-20 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
2820
2821         * src/port.h (struct PORT),
2822         * src/avr/ralloc.c (avr_assignRegisters),
2823         * src/avr/main.c,
2824         * src/ds390/ralloc.c (ds390_assignRegisters),
2825         * src/ds390/main.c,
2826         * src/hc08/ralloc.c (hc08_assignRegisters),
2827         * src/hc08/main.c,
2828         * src/mcs51/ralloc.c (mcs51_assignRegisters),
2829         * src/mcs51/main.c,
2830         * src/pic/ralloc.c (pic14_assignRegisters),
2831         * src/pic/main.c,
2832         * src/pic16/ralloc.c (pic16_assignRegisters),
2833         * src/pic16/main.c,
2834         * src/xa51/ralloc.c (xa51_assignRegisters),
2835         * src/xa51/main.c,
2836         * src/z80/ralloc.c (z80_assignRegisters),
2837         * src/z80/ralloc.h,
2838         * src/SDCCopt.c (eBBlockFromiCode, replaceRegEqv, killDeadCode),
2839         * src/SDCCcse.c (ifxOptimize, cseBBlock, cseAllBlocks),
2840         * src/SDCCcse.h,
2841         * src/SDCCdflow.c (computeDataFlow),
2842         * src/SDCCdflow.h,
2843         * src/SDCCloop.c (addDefInExprs, loopInvariants, loopOptimizations),
2844         * src/SDCCloop.h,
2845         * src/SDCCcflow.c (*),
2846         * src/SDCCcflow.h,
2847         * src/SDCCBBlock.c (iCodeBreakDown, dumpEbbsToFileExt, eBBWithEntryLabel),
2848         * src/SDCCBBlock.h (struct ebbIndex): new struct that keeps two copies
2849         of the eBBlock list, sorted by both bbnum and dfnum. (fixes bug with
2850         immedDom() returning wrong block; probably fixes bug #1160833)
2851
2852 2005-03-20 Borut Razem <borut.razem AT siol.net>
2853
2854         * support/scripts/inc2h.pl: WIN32 port
2855
2856 2005-03-19 Maarten Brock <sourceforge.brock AT dse.nl>
2857
2858         * device/lib/makefile.in: added abs.c and labs.c
2859
2860 2005-03-17 Maarten Brock <sourceforge.brock AT dse.nl>
2861
2862         * device/include/stdint.h: added
2863         * device/lib/abs.c: added
2864         * device/lib/labs.c: added
2865         * device/include/stdlib.h: added abs() and labs() prototypes
2866         * device/lib/libsdcc.lib: added abs and labs
2867         * device/include/float.h,
2868         * device/lib/_fsmul.c,
2869         * device/lib/printf_fast.c,
2870         * device/lib/printf_tiny.c: updated comments
2871
2872 2005-03-16 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
2873
2874         * src/SDCCicode.c (geniCodeSwitch, geniCodeJumpTable): fixed
2875         bug #1164313
2876
2877 2005-03-16 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
2878
2879         * src/SDCCcse.c (cseBBlock): retain assignment to self when volatile
2880         * src/SDCCast.c (isLoopCountable): fixed bug #1161985
2881
2882 2005-03-15 Maarten Brock <sourceforge.brock AT dse.nl>
2883
2884         * device/lib/printf_large.c: removed inline assembly for portability and
2885           readability. Use printf_fast if speed or size are more important.
2886         * src/pic16/gen.c: removed conditions around use of DEBUGpc
2887         * src/pic16/genutils.h: added define for DEBUGpc for MSVC
2888
2889 2005-03-15 Vangelis Rokas <vrokas AT users.sourceforge.net>
2890
2891         * src/pic16/genutils.c (pic16_genCmp_special): initialized offs to
2892         prevent compiler warning
2893
2894 2005-03-14 Vangelis Rokas <vrokas AT users.sourceforge.net>
2895
2896         * device/lib/pic16/startup/crt0i.c (_cinit): local variables where
2897         moved to level 0 and declared as static. Also they are explicit
2898         placed in access bank. This was necessery because some times they
2899         might cross memory bank boundaries. crt0iz.c is *NOT* updated!!!
2900         * src/pic16/device.h: added flag OPTIMIZE_CMP to enable some compare
2901         optimizations. Currently only compare to unsigned char is implemented,
2902         * src/pic16/gen.c: added fReturnIdx array,
2903         * (struct resolvedIfx) is moved to gen.h and made public,
2904         * (struct _G): added sregsAlloc and sregsAllocSet fields,
2905         * (aopForSym): added an optimization to directly store in stack of
2906         the operand of a SEND iCode,
2907         * (pic16_aopOp): don't return return registers as strings (AOP_STR)
2908         but as registers instead (AOP_REG) using the fReturnIdx array,
2909         * (pic16_freeAsmop): remove the freed register from the
2910         _G.sregsAlloc field,
2911         * (pic16_aopGet): in case AOP_STR, the compare to 'a' is changed to
2912         a compare of 'WREG',
2913         * (pic16_popGetTempRegCond): changed function prototype, now
2914         function takes also a bitVector argument v which holds the current
2915         set of registers that are allocated for stack access by aopForSym,
2916         registers allocated in aopForSym for accessing stack symbols are not
2917         any more part of the functions usedRegs field,
2918         * (genCall): some times aopOp is called for a stack variable to be
2919         send, aopForSym might perform the push, if this is true make sure
2920         that genCall doesn't push the variable twice by testing _G.resDirect,
2921         * (genFunction): changed testing for unspecified interrupt number
2922         from 256 to INTNO_UNSPEC,
2923         * modified selection scheme of frame pointer generation. Previously
2924         if function did use local registers a frame pointer was generated,
2925         now a frame pointer is generated only if function has arguments
2926         (that need PLUSW2 register access), or has stack arguments, or the
2927         compiler is not instructed to omit the frame pointer,
2928         * (genEndFunction): before restoring local registers that were saved
2929         in the function preamble, also restore the registers that *might*
2930         have been allocated for stack access,
2931         * (genRet): removed some old comments,
2932         * (genCmp, the active (RN's) version): added a call to the
2933         pic16_genCmp_special function to perform the compare with a more
2934         robust and optimized way,
2935         * (genInline): a feature has been added in inline code generation,
2936         which allows a wildcard variable substitution when writing inline
2937         assembly. Code is incomplete and experimental therefore undocumented,
2938         * (genCast): changed order of aopOp for result and right to allow
2939         aopForSym to directly load the result if possible,
2940         * src/pic16/genutils.c (selectCompareOp, pic16_genCmp_special): NEW,
2941         perform an optimized compare on some selected special occasions,
2942         * src/pic16/genutils.h: declaration of resolvedIfx structure from gen.c,
2943         * src/pic16/glue.c (pic16createInterrupVect): make sure we never
2944         generate an IVT any more,
2945         * src/pic16/main.c (pic16_optionsTable): added command line option
2946         --optimize-cmp,
2947         * (_pic16_initPaths): when calling C preprocessor define pic18fXXXX
2948         macro too, when calling assembler define pic18fXXXX *and* __18Fxxxx
2949         macros,
2950         * src/pic16/NOTES: Raphael Neider added in list of active developers
2951         * src/pic16/pcode.c (OPT_TYPE_STR): added strings jumptable_begin and
2952         jumptable_end to prevent bug #,
2953         * (pic16_pciADDWFC, ADDFWC, COMF, CLRF): added some missing flags in
2954         inCond and outCond fields,
2955         * src/pic16/pcoderegs.c (pCodeOptime2pCodes): add a fix for bug #,
2956         * src/pic16/ralloc.c (serialRegAssign): explicit set willCS to 0 to
2957         turn off register spilling,
2958         * (packRegsForOneUse): synced with other ports' versions although it
2959         is not used currently,
2960         * (pic16_packRegisters): added an optimization while reading
2961         structure bitfields, some registers may be saved (malloc code is
2962         decreased by 80 bytes)
2963
2964 2005-03-12 Vangelis Rokas <vrokas AT users.sourceforge.net>
2965
2966         * src/SDCCcse.c (cseBBlock): inside 'do operand lookup' loop test if
2967         left is a bitfield, if yes, then don't optimize assignment. Perhaps
2968         this can be optimized more?
2969
2970 2005-03-10 Raphael Neider <rneider AT web.de>
2971
2972         * src/pic16/gen.c (pic16_loadFSR0, genPackBits, genUnpackBits,
2973           genNearPointerGet): (hopefully) fixed access to bitfields via
2974           pointers (p->bitN = x; and x = p->bitN; failed)
2975
2976 2005-03-09 Paul Stoffregen <paul AT pjrc.com>
2977
2978         * device/lib/printf_fast.c: fix leading zero format, eg "%02d"
2979
2980 2005-03-09 Raphael Neider <rneider AT web.de>
2981
2982         * src/SDCCopt.c (killDeadCode): fixed bug #1156016
2983
2984 2005-03-06 Maarten Brock <sourceforge.brock AT dse.nl>
2985
2986         * src/SDCCicode.h: moved CRITICAL and ENDCRITICAL from SKIP_IC2 to SKIP_IC
2987         * src/mcs51/ralloc.c (willCauseSpill): added check for REG_BIT type,
2988           (regTypeNum): set REG_BIT type if necessary
2989         * src/mcs51/ralloc.h: added define REG_BIT, used to fix bug 1144613
2990         * support/regression/tests/critical.c: check bug 1144613
2991
2992 2005-03-02 Raphael Neider <rneider AT web.de>
2993
2994         * src/pic16/gen.c (genRightShiftLiteral): fixed bug #1154256
2995
2996 2005-02-26 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
2997
2998         * src/avr/ralloc.c (serialRegAssign),
2999         * src/ds390/ralloc.c (serialRegAssign),
3000         * src/hc08/ralloc.c (serialRegAssign),
3001         * src/mcs51/ralloc.c (serialRegAssign),
3002         * src/pic/ralloc.c (serialRegAssign),
3003         * src/pic16/ralloc.c (serialRegAssign),
3004         * src/xa51/ralloc.c (serialRegAssign),
3005         * src/z80/ralloc.c (serialRegAssign): fixed bug #1105154
3006
3007 2005-02-22 Maarten Brock <sourceforge.brock AT dse.nl>
3008
3009         * src/SDCCast.c (decorateType): fixed bug 1124787
3010
3011 2005-02-20 Hubert Sack <sack AT digiplan.de>
3012         committed by Frieder Ferlemann <Frieder.Ferlemann AT web.de>
3013
3014         * src/mcs51/peeph.def: added peepholes 3.h-k and 132.a-f from
3015         patch #1121755
3016
3017 2005-02-20 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
3018
3019         * src/SDCCpeeph.def: new keyword "labelRefCountChange" which allows peepholes
3020         to keep the correct label reference count when adding/removing references
3021         to labels. A peephole file using this is appended to patch #1144962.
3022
3023 2005-02-14 Raphael Neider <rneider AT web.de>
3024
3025         * device/lib/pic16/libc/string/memccpy.c: changed 3rd argument to char
3026         * src/SDCC.lex (process_pragma): fixed to make disable_warning work for PIC16
3027         * src/pic16/gen.c (aopForSym, calls to pic16_aopOp): prevent unneccessary
3028           retrievals of result operand's value on assignment
3029
3030 2005-02-13 Vangelis Rokas <vrokas AT otenet.gr>
3031
3032         * device/include/pic16/string.h: modified prototype for memccpy()
3033         to memccpy(void *, void *, char, size_t)
3034         * src/pic16/gen.c (genFunction, genEndFunction): reenable if-case to
3035         check whether to omit frame pointer or not,
3036         * (genInline): convert all occurences of "\n" to LF in inline
3037         assembler blocks, this helps formatting the inline text,
3038         * (pic16_loadFSR0): modified prototype,
3039         * (genNearPointerGet, genNearPointerSet): reorganization of code,
3040         removed some 8051 legacy code,
3041         * (genPackBits): enabled handling bitfields exceeding one byte in size,
3042         * src/pic16/ralloc.c (pic16_assignRegisters): clear dynrIdx variable
3043         before allocating temporary registers in functions,
3044
3045 2005-02-11 Maarten Brock <sourceforge.brock AT dse.nl>
3046
3047         * support/regression/tests/bitvars.c: corrected the "fix"
3048
3049 2005-02-10 Maarten Brock <sourceforge.brock AT dse.nl>
3050
3051         * support/regression/tests/bitvars.c,
3052         * support/regression/tests/bitwise.c,
3053         * support/regression/tests/rotate.c: "fixed" problems on Alpha
3054
3055 2005-02-10 Raphael Neider <rneider AT web.de>
3056
3057         * src/pic16/pcode.c (assignToSameBank) : fixed cast to pointer of
3058           different size for Alpha
3059         * src/pic16/gen.c (genCmpEq) : improved compare with 0
3060
3061 2005-02-09 Raphael Neider <rneider AT web.de>
3062
3063         * src/SDCC.lex(doPragma) : save and restore warning options as well
3064           (also added new stack plus clone- and copyAndFreeSDCCERRG())
3065         * have #pragma less_pedantic set the errorlevel to WARNING
3066           (fixes #1117001)
3067         * (cloneOptimize) : fixed wrong malloc's size
3068         * support/Util/SDCCerr.[ch] : made SDCCERRG globally accessible to
3069           facilitate correct handling of #pragma (save|restore)
3070
3071 2005-02-09 Maarten Brock <sourceforge.brock AT dse.nl>
3072
3073         * src/mcs51/gen.c: removed non-standard C nameless struct/union
3074
3075 2005-02-04 Slade Rich <slade_rich AT users.sourceforge.net>
3076
3077         * src/pic/gen.c : Fix for bugs #1080519 & #1115662.
3078
3079 2005-02-03 Maarten Brock <sourceforge.brock AT dse.nl>
3080
3081         * device/include/mcs51/c8051f120.h: added declarations for sbit port 2,3&4
3082
3083 2005-02-02 Raphael Neider <rneider AT web.de>
3084
3085         * src/SDCCast.c (processParms): disabled W_NONRENT_ARGS for pic16 port
3086         * src/pic16/gen.c (aopForSym): reenabled special case for function pointers
3087         * (pic16_storeForReturn): fixed to allow returning function pointers
3088         * (genPackBits): improved accessing full bytes, implemented for GPOINTERs
3089         * device/include/pic16/{stddef.h,stdbool.h}: added
3090
3091 2005-02-02 Maarten Brock <sourceforge.brock AT dse.nl>
3092
3093         * device/include/mcs51/c8051f040.h: added define CPT2_PAGE
3094
3095 2005-02-01 Slade Rich <slade_rich AT users.sourceforge.net>
3096
3097         * src/pic16/pic16.dsp : Added file graph.c to make it compile under windows
3098         * src/pic16/Makefile.bcc : Do not use this file but added file graph.c as it
3099          appeared to be required
3100
3101 2005-01-31 Borut Razem <borut.razem AT siol.net>
3102
3103         * support/scripts/sdcc.nsi: added include/asm/ds390, include/asm/mcs51,
3104           include/mcs51 and include/z80 directories to the package
3105
3106 2005-01-26 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
3107
3108         * src/hc08/gen.c (genFunction): fixed bug #1112752
3109
3110 2005-01-30 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
3111
3112         * src/mcs51/peeph.def: adapted peephole 258.x to changed gen.c (genAnd)
3113
3114 2005-01-29 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
3115
3116         * src/mcs51/gen.c (genAnd): accessing LSB/MSB by rotating acc
3117
3118 2005-01-29 Maarten Brock <sourceforge.brock AT dse.nl>
3119
3120         * device/include/Makefile.in: create/copy mcs51 and z80 include subdirs
3121
3122 2005-01-27 Maarten Brock <sourceforge.brock AT dse.nl>
3123
3124         * device/include/c8051fxxx.h: removed these 6 files
3125         * device/include/mcs51/c8051fxxx.h: added these 11 new files
3126
3127 2005-01-26 Raphael Neider <rneider AT web.de>
3128
3129         * src/pic16/gen.c (genAssign): fixed assignment from longs
3130           in codespace (were cut to three bytes)
3131         * (genDummyRead): implemented (except for CODESPACE...),
3132           fixed bug #1108575
3133         * src/pic16/glue.c (emitStatistics): beautified
3134         * device/lib/pic16/libm/Makefile: added include path
3135
3136 2005-01-26 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
3137
3138         * src/z80/gen.c (aopPut): fixed bug #1103902
3139
3140 2005-01-25 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
3141
3142         * device/lib/expf.c: fixed bug #1095792
3143
3144 2005-01-24 Vangelis Rokas <vrokas AT otenet.gr>
3145
3146         * device/lib/pic16/libm: added Math library sources
3147
3148 2005-01-24 Raphael Neider <rneider AT web.de>
3149
3150         * src/pic16/pcode.h: added second memory operand to pCodeOpReg
3151           to enable upcast to pCodeOpReg2 (there is no type tag to
3152           differenciate the two and pic16_popGet2p cast into PCOR2)
3153         * src/pic16/main.c (_process_pragma): fixed another malloc bug
3154           (sizeof(sectNames) changed to sizeof(sectName))
3155           Both patches fix segfaults under MinGW.
3156
3157 2005-01-23 Raphael Neider <rneider AT web.de>
3158
3159         * src/pic16/{device.c,pcode.c}: s/free/Safe_free/g for
3160           Safe_[mc]?alloc()'ed variables
3161         * src/pic16/gen.c (pic16_aopOp,pic16_popGet): added handling
3162           of (byte sized) temporaries (assign them to WREG for now)
3163         * src/pic16/main.c (_process_pragma): fixed nasty malloc bug
3164           (used sizeof(set *sectSyms) instead of sizeof(struct sectSym)),
3165           this might fix SIGSEGVs on MinGW...
3166         * src/SDCCopt.c (killDeadCode): restored original behaviour
3167           (volatile operands might get thrown away though)
3168
3169 2005-01-23 Vangelis Rokas <vrokas AT otenet.gr>
3170
3171         * src/pic16/gen.c: fixed bug #1106975,
3172         * src/pic16/gen.c: fixed possible bug #1102572, now during TOS
3173         pointer update, INTCON is saved, global interrupts are disabled and
3174         restored after updateing TOS.
3175         * src/SDCC.y, src/SDCC.lex, src/SDCCsymt.c, src/SDCCsymt.h:
3176         * added function attribute 'shadowregs' to take advantage of shadow
3177         registers,
3178         * added function attribute 'wparam' as an alternative to the wparam
3179         pragma,
3180         * support/Utils/SDCCerr.[ch]: added error E_SHADOWREGS_NO_ISR when
3181         user declares a non-ISR function as 'shadowregs',
3182         * doc/sdccman.lyx: updated to reflect recent changes of pic16 port
3183
3184 2005-01-22 Vangelis Rokas <vrokas AT otenet.gr>
3185
3186         * .version: bumped version number to 2.4.8
3187         * device/lib/pic16/pics.all: list of PIC18F devices supported by
3188         pic16 port,
3189         * device/lib/pic16/libio/i2c/: I2C module support library,
3190         * device/include/pic16/i2c.h: I2C support library header,
3191         * device/lib/pic16/libc/stdio/: standard IO support sources,
3192         * (printf_small.c): printf_small() source, supports float print,
3193         * (printf_tiny.c): printf_tiny() source, does not support floats,
3194         * device/lib/pic16/Makefile.common.in: added OPT_FLAGS macro to
3195         enable global optimizations for entire library source, other
3196         Makefiles in the source tree are also modified to reflect this,
3197         * device/lib/pic16/libc/stdlib/putchar.c (putchar): dummy putchar()
3198         function,
3199         * doc/sdccman.lyx: updated to reflect new changes,
3200         * src/pic16/gen.c (aopForSym): don't handle sym->iaccess in
3201         sym->onStack if-case,
3202         * src/pic16/main.c (_pic16_keywords): commented out keywords bit,
3203         sbit, idata, _idata, xdata, _xdata,
3204         * added pragma library, to link an external library, (see doc),
3205         * removed command line options, --pomit-config-words, --pomit-ivt,
3206         --pleave-reset-vector,
3207         * (pic16_finaliseOptions): when define macro SDCC_MODEL_{SMALL/LARGE}
3208         when calling assembler to reflect memory model used, also define
3209         macro STACK_MODEL_{SMALL/LARGE} when compiling and assembling to
3210         reflect stack model used,
3211         * src/pic16/ralloc.c (pic16_allocDirReg): when operand is allocated
3212         on stack return NULL,
3213
3214 2005-01-22 Daniel Winkler <post AT danielwinkler.de>
3215
3216         * src/SDCCopt.c (killDeadCode): do not throw iCodes away if one
3217           of the operands is volatile. Fixes #1020220
3218
3219 2005-01-22 Daniel Winkler <post AT danielwinkler.de>
3220
3221         * src/pic16/pcoderegs.c (pCodeOptime2pCodes): reenabled optimization
3222         * (OptimizeRegUsage): make sure that there is really no other flow where
3223           the first pCode is used
3224
3225 2005-01-22 Raphael Neider <rneider AT web.de>
3226
3227         * src/pic16/pcoderegs.c (pCodeOptime2pCodes): disabled optimization
3228           to fix #1106967 (pCode->seq are not set up correctly)
3229
3230 2005-01-22 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
3231
3232         * src/SDCCglue.c (glue): make sure code area is declared before the
3233         static initialization area.
3234
3235 2005-01-21 Raphael Neider <rneider AT web.de>
3236
3237         * device/lib/Makefile.in: fixed test for pic16 install dir
3238         * device/lib/pic16/*/Makefile*: modified compile flags to enable
3239           optimizations
3240         * doc/sdccman.lyx: updated banksel optimization, removed --flr-support and
3241           added --optimize-goto compiler switch and pragma wparam documentation
3242         * src/pic16/pcode.c (pic16_OptimizeBanksel): removed statistics dump
3243         * src/pic16/pcodepeep.c (pic16_pCodeOpCopy): fixed copying of WREG, PRODL
3244           and PRODH closing bug #1071770 (peephole optimizer)
3245
3246 2005-01-19 Raphael Neider <rneider AT web.de>
3247
3248         * src/SDCCglobl.h: ensure that PATH_MAX >= 2048 to guarantee
3249           cmdLine buffers (used when calling sdcpp...) are large enough
3250           (MAX_PATH=256 truncates arguments leading to system halts when
3251           used in MinGW...)
3252         * src/pic16/gen.c (pic16_sameRegs): relaxed size criterion
3253         * (genUminus): rewritten to for efficiency
3254         * (genNearPointer[GS]et): enforce reloading of FSR0 (was still
3255           used uninitialized in some cases)
3256         * (genCast): upcasting a 16bit int to a 24bit GPOINTER may not
3257           copy the third byte from the int -- now assumes 0x80 (data memory)
3258         * src/pic16/genarith.c (pic16_genPlus): fixed bug when swapping
3259           operands (genAddLit expects the iCode's operands to swapped as
3260           well), fixed leftover bytes (crashed for short left operands)
3261         * (pic16_genMinusDec): performance improvements, removed false
3262           PIC14 emitSKPNCs
3263         * (pic16_genMinus): fixed to cope with differently sized operands
3264         * src/pic16/glue.c (pic16_glue): added new banksel optimization
3265           for --obanksel > 1
3266         * src/pic16/pcode.c: implemented (first phase of) banksel optimization
3267         * src/pic16/graph.[ch]: implementation of directed graphs, used by
3268           new banksel optimization
3269         * src/pic16/pcoderegs.c (pCodeRegMapLiveRangesInFlow): prevented
3270           analysis for temporary registers (segfaults...)
3271         * src/pic16/peeph.def: added rule
3272
3273 2005-01-18 Vangelis Rokas <vrokas AT otenet.gr>
3274
3275         * device/lib/pic16/libc/stdlib/x_ftoa.c: it defines x_ftoa function
3276         which converts a float number to its ASCII representation
3277         * device/lib/pic16/libc/utils/cnvfrac.S,cnvint.S: support
3278         functions to convert the fractional and integer part of a float to ASCII,
3279         * device/lib/pic16/libc/stdlib/(calloc.c,free.c, malloc.c,
3280         realloc.c): added _MALLOC_SPEC to explicit place variables in data
3281         ram
3282         * device/include/asm/pic16/features.h: added _CODE, _DATA, _AUTOMEM,
3283         _STATMEM macros,
3284         * device/include/pic16/adc.h: added GPL info,
3285         * src/pic16/gen.c (genIfxpCOpJump): perform an genIfxJump but using
3286         a pCodeOp as tested operand,
3287         * (genNearPointerGet): optimized bit testing, does not use
3288         intermediate register for bit value, test directly instead with
3289         BTFSS, BTFSC, works only for single bits,
3290         * (genpic16Code): dump the name of the iCode in the asm,
3291         * src/pic16/ralloc.c (decodeOp): removed static declaration and
3292         renamed to pic16_decodeOp,
3293         * (serialRegAssign): do not allocate a temporary register for iCode
3294         sequences that test a single bit for 1/0
3295
3296 2005-01-12 Vangelis Rokas <vrokas AT otenet.gr>
3297
3298         * src/pic16/pcode.[ch]: introduced pic16_stackpnt_*,
3299         pic16_framepnt_*, pic16_stack_*, pic1_frame_* pointer variables to
3300         access stack and frame pointers. They are initially assigned to
3301         point at pic16_pc_fsr1[lh] and pic16_pc_fsr2[lh] variables and other
3302         accessing SFRs. Updated all occurences of modification of stack or
3303         frame pointer in gen.c and pcode.c,
3304         * src/pic16/ralloc.c (serialRegAssign): fixed two bugs with
3305         assigning of a literal value to pointers,
3306         * src/pic16/main.c (pic16_finiliseOptions): set pre-processor define
3307         flag STACK_MODEL_SMALL or STACK_MODEL_LARGE according to the model
3308         selected
3309
3310 2005-01-11 Vangelis Rokas <vrokas AT otenet.gr>
3311
3312         * doc/sdccman.lyx: update documentation about stack pragma, added
3313         some info for stack memory models
3314
3315 2005-01-08 Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
3316
3317         * src/pic16/gen.c (DEBUGpc): MSVC 6 does not support macro variable arguments
3318
3319 2005-01-08 Raphael Neider <rneider AT web.de>
3320
3321         * src/pic16/device.c (pic16_dump_usection): changed naming scheme for
3322           udata sections to fix bug #1097823
3323
3324 2005-01-05 Raphael Neider <rneider AT web.de>
3325
3326         * src/pic16/gen.c (genGenericShift): added handling of differently
3327           sized left operand and result
3328
3329 2005-01-04 Raphael Neider <rneider AT web.de>
3330
3331         * src/pic16/gen.c (genIfxJump): fixed inverted skips on CARRY
3332         * (genIfx): fixed (?) read from uninitialized SPIL_LOC (now assumes CARRY
3333           to hold the condition bit)
3334         * added new version of genCmp (old code available via #define)
3335         * added new version of genShiftLeft/genShiftRight in a generic
3336           way, now supports shifting by negative values
3337         * (genLeftShiftLiteral, genRightShiftLiteral): use absolute value of
3338           shiftCount (expected by genGenericShift)
3339         * src/pic16/genarith.c (genPlus): added code for adding CARRY+literal
3340         * src/pic16/pcode.c (pic16_OptimizeJumps): removed annoying statistics
3341           dump
3342         * (pic16_newpCodeOpLit): changed to cast to unsigned char (as e.g. -32766
3343           is an invalid literal too...)
3344
3345 2005-01-04 Vangelis Rokas <vrokas AT otenet.gr>
3346
3347         * src/pic16/gen.c (aopForSym, genEndFunction): applied some fixes
3348         from Raphael Neider,
3349         * src/pic16/pcode.c (pic16_newpCodeOpLit): removed casting to char
3350         for 8-bit literals. This fixes some literal operands which are sign
3351         extended to 16-bits ints when instruction needs only 8-bits.
3352
3353 2004-12-31 Paul Stoffregen <paul AT pjrc.com>
3354
3355         * device/lib/logf.c: added mcs51 assembly version
3356         * device/lib/expf.c: added mcs51 assembly version
3357         * device/lib/_logexpf.c: new shared asm code for expf and logf
3358         * device/include/math.h: add defines for assembly math library
3359         * device/lib/Makefile.in: build new _logexpf.c
3360         * device/lib/libfloat.lib: use new _logexpf.c
3361
3362 2004-12-29 Slade Rich <slade_rich AT users.sourceforge.net>
3363
3364         * src/pic/device.c
3365         * src/pic/pcode.c : adjusted internal stack and pre-allocated registers for
3366           device types which have less than 0x7f registers.
3367
3368 2004-12-29 Slade Rich <slade_rich AT users.sourceforge.net>
3369
3370         * src/pic/genarith.c : Fixed problem with subtraction where the result would not be updated when borrowing.
3371
3372 2004-12-28 Paul Stoffregen <paul AT pjrc.com>
3373
3374         * device/lib/printf_fast.c: only build on supported arch.
3375         * device/lib/printf_tiny.c: only build on supported arch.
3376         * device/lib/printf_fast_f.c: only build if asm float lib
3377         * device/lib/_fsget1arg.c: only build if asm float lib
3378         * device/lib/_fsget2args.c: only build if asm float lib
3379         * device/lib/_fsnormalize.c: only build if asm float lib
3380         * device/lib/_fsreturnval.c: only build if asm float lib
3381         * device/lib/_fsrshift.c: only build if asm float lib
3382         * device/lib/_fsswapargs.c: only build if asm float lib
3383         * device/include/stdio.h: don't provide print_fast,
3384           print_fast_f, print_tiny prototypes if --xstack used
3385
3386 2004-12-28 Maarten Brock <sourceforge.brock AT dse.nl>
3387
3388         * device/lib/sincosf.c (sincosf): don't invert bit/bool by ~
3389         * support/regression/ports/mcs51-stack-auto/spec.mk: added new _fs.. files
3390           to the SOURCES
3391
3392 2004-12-28 Paul Stoffregen <paul AT pjrc.com>
3393
3394         * device/lib/printf_fast_f.c: same as printf_fast, but
3395           with floating point enabled
3396         * device/lib/printf_fast.c: minor tweaks
3397         * device/include/stdio.h: add printf_fast_f
3398
3399 2004-12-27 Paul Stoffregen <paul AT pjrc.com>
3400
3401         * src/SDCCmain.c: make --float-reent default for mcs51
3402         * device/lib/_fsadd.c: added mcs51 assembly version
3403         * device/lib/_fssub.c: added mcs51 assembly version
3404         * device/lib/_fsmul.c: added mcs51 assembly version
3405         * device/lib/_fsdiv.c: added mcs51 assembly version
3406         * device/lib/_fseq.c: added mcs51 assembly version
3407         * device/lib/_fsneq.c: added mcs51 assembly version
3408         * device/lib/_fsgt.c: added mcs51 assembly version
3409         * device/lib/_fslt.c: added mcs51 assembly version
3410         * device/lib/_fscmp.c: shared code for fseq,fsgt,fslt,fsneq
3411         * device/lib/Makefile.in: add _fscmp to build
3412         * device/lib/libfloat.lib: add _fscmp to build
3413
3414 2004-12-27 Paul Stoffregen <paul AT pjrc.com>
3415
3416         * device/lib/_fs2slong.c: added mcs51 assembly version
3417         * device/lib/_fs2sint.c: added mcs51 assembly version
3418         * device/lib/_fs2schar.c: added mcs51 assembly version
3419         * device/lib/_fs2ulong.c: added mcs51 assembly version
3420         * device/lib/_fs2uint.c: added mcs51 assembly version
3421         * device/lib/_fs2uchar.c: added mcs51 assembly version
3422         * device/lib/_slong2fs.c: added mcs51 assembly version
3423         * device/lib/_sint2fs.c: added mcs51 assembly version
3424         * device/lib/_schar2fs.c: added mcs51 assembly version
3425         * device/lib/_ulong2fs.c: added mcs51 assembly version
3426         * device/lib/_uint2fs.c: added mcs51 assembly version
3427         * device/lib/_uchar2fs.c: added mcs51 assembly version
3428         * device/include/float.h: added #define to select asm vs c
3429
3430 2004-12-26 Paul Stoffregen <paul AT pjrc.com>
3431
3432         * device/lib/printf_fast.c: improvements to float output
3433         * device/include/float.h: add defines for assembly float library
3434         * device/lib/_fsget1arg.c: receive 1 float arg
3435         * device/lib/_fsget2args.c: receive 2 float args (reentrant)
3436         * device/lib/_fsnormalize.c: normalize a float
3437         * device/lib/_fsreturnval.c: return float, various helper routines
3438         * device/lib/_fsrshift.c: right shift a float's mantissa
3439         * device/lib/_fsswapargs.c: swap 2 floats
3440         * device/lib/Makefile.in: build these 6 new files for mcs51
3441         * device/lib/libfloat.lib: add these 6 files to the library
3442
3443 2004-12-26 Borut Razem <borut.razem AT siol.net>
3444
3445         * sim/ucsim/avr.src/arith_inst.cc: fixed bug #1088372- savr is not
3446           built by gcc 3.4.2
3447
3448 2004-12-25 Paul Stoffregen <paul AT pjrc.com>
3449
3450         * device/lib/printf_tiny.c: printf for mcs51 in only 267 bytes,
3451           and fully reentrant and register bank neutral.
3452         * device/lib/printf_fast.c: added float (not enabled by default),
3453           added compact/slower integer (also not enabled by default),
3454           improved size/speed of fast integer code, other minor changes
3455         * device/include/stdio.h, device/lib/Makefile.in,
3456           device/lib/libsdcc.lib: integrate printf_tiny into mcs51 build
3457
3458 2004-12-24 Maarten Brock <sourceforge.brock AT dse.nl>
3459
3460         * src/pic16/pcode.c: declaring variables other than at the start of a
3461           block is not supported in C by VC6.
3462
3463 2004-12-22 Vangelis Rokas <vrokas AT otenet.gr>
3464
3465         * applied a previous patch from Raphael Neider that wasn't included
3466         in the previous commits, which fixes infinite loops within jumptable
3467         improvements,
3468         * made some fixes that previous patches introduced
3469
3470 2004-12-21 Vangelis Rokas <vrokas AT otenet.gr>
3471
3472         * src/pic16/gen.c (pic16_aopGet): applied fix from Raphael Neider
3473         that fixes an issue with AOP_PCODE asmop's offset,
3474         * (pic16_popCopyReg): update instance field too,
3475         * (mov2w): modified to pic16_mov2w because it conflicts with mov2w
3476         function of pic port,
3477         * (genCmp, genAnd, genAssign),
3478         * src/pic16/genarith.c (genAddLit): some fixes from Raphael Neider,
3479
3480 2004-12-20 Vangelis Rokas <vrokas AT otenet.gr>
3481
3482         * src/SDCCast.c (gatherAutoInit): allow pic16 to emit static
3483         variables initial values to idata section,
3484         * src/SDCCicode.c (geniCodeCall): patch from ### to fix unreferenced
3485         variables in some functions. This utilizes parmBytes field of iCode
3486         structure to hold the offset of the variable in stack. (might be
3487         able to use the stack field too?)
3488         * applied patch from Raphael Neider # ### , # ###
3489         * src/pic16/glue.c (pic16emitRegularMap): fix to print static
3490         variable initial values in idata section,
3491         * src/pic16/ralloc.c (pic16_allocDirReg): don't allocate register
3492         for static variables with initial value
3493         * src/device/lib/pic16/libsdcc/float/ulong2fs.c (__ulong2fs):
3494         applied fix in while loop from Raphael Neider.
3495
3496 2004-12-19 Maarten Brock <sourceforge.brock AT dse.nl>
3497
3498         * src/ds390/gen.c (genCpl): fixed bit=~(char/bit) bugs, added warning
3499         * src/ds390/main.c (_ds390_regparm): don't pass bit params in registers
3500         * src/ds390/ralloc.c (serialRegAssign): spill bits
3501         * src/mcs51/gen.c (genCpl): fixed bit=~(char) bugs, added warning
3502         * support/Util/SDCCerr.c,
3503         * support/Util/SDCCerr.h: added warning W_COMPLEMENT for using bit=~(bit)
3504         * support/regression/tests/bitvars.c: added tests for bitwise complement(~)
3505         * support/regression/tests/bitwise.c: added test for bitwise complement(~)
3506
3507 2004-12-09 Maarten Brock <sourceforge.brock AT dse.nl>
3508
3509         * device/include/sdcc-lib.h: inserted LGPL, added includes
3510           asm/ds390/features.h and asm/mcs51/features.h
3511         * device/include/asm/default/features.h,
3512         * device/include/asm/gbz80/features.h,
3513         * device/include/asm/z80/features.h: added empty _AUTOMEM
3514           and _STATMEM
3515         * device/include/asm/ds390/features.h,
3516         * device/include/asm/mcs51/features.h: added files with defines for
3517           _AUTOMEM and _STATMEM indicating automatic and static storage class
3518         * device/lib/printf_large.c (_print_format): optimized & used _AUTOMEM
3519         * doc/sdccman.lyx: version 2.4.7, updated xstack documentation
3520         * src/SDCCicode.c (geniCodeCast),
3521         * src/SDCCsymt.c (compareType): allow cast of data-ptr to idata-ptr
3522         * src/SDCCloop.c (loopInduction): removed unused variable lr
3523         * src/SDCCopt.c (convilong, convertToFcall): moved "easy special case"
3524           to convertToFcall to include char modulo (RFE 1065037), added check
3525           if left operand is unsigned and use abs of literal value
3526         * src/SDCCpeeph.c (setFromConditionArgs): removed double quotes option
3527           as it doesn't work after conversion from peephole.def to peephole.rul
3528         * src/mcs51/gen.c (toBoolean): added check for size,
3529           (genModOneByte): optimized code for signed char modulo a literal
3530           power of 2 (thanks to Hubert Sack),
3531           (genRRC): removed unnecessary "clr c",
3532           (genRLC): replaced "add a,acc" with cheaper "rlc a"
3533         * src/mcs51/peeph.def: renamed 115 to 115.a, added rule 115.b: another
3534           jump optimization,
3535           swapped rules 256.c and 256.d,
3536           extended 256.d by using new multiple checks (thanks Erik),
3537           added rules 256.e and 256.f,
3538           updated rule 261.a and 261.b to new generated code
3539         * support/regression/tests/muldiv.c: added test div/mod by a power of 2
3540
3541 2004-12-07 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
3542
3543         * src/SDCCloop.c (basicInduction, loopInduction): fixed several
3544           induction related bugs, including first part of bug #1074377
3545
3546 2004-12-05 Vangelis Rokas <vrokas AT otenet.gr>
3547
3548         * applied patch from bug-report #1076292,
3549         * applied patches for genAnd and Goto-optimizations for Raphael
3550         Neider,
3551         * src/SDCCicode.c (printOperand): fixed !REGA source to compile and
3552         dump a less iCode information,
3553         * src/pic16/device.h (pic16_options_t): added field debgen,
3554         * src/pic16/gen.h: added macros DUMP_FUNCTION_ENTRY,
3555         DUMP_FUNCTION_EXIT, FENTRY, FENTRY2,
3556         * src/pic16/gen.c (my_powof2): renamed to pic16_my_powof2 and made
3557         puclic,
3558         * (various functions): added macros FENTRY and FENTRY2 to functions,
3559         to emit function prologue,
3560         * (various functions): fixed indentation,
3561         * (genNearPointerGet): fixed loading of FSR0,
3562         * (genPackBits): applied patch from Raphael Neider to fix updating
3563         of FSR0 and touching only the modified bits,
3564         * src/pic16/genarith.c (various functions): added macros FENTRY to
3565         emit function prologue in comments,
3566         * src/pic16/pcode.h: added functions debugf2, debugf3,
3567         * src/pic16/ralloc.c: partial fix for packForPush caused
3568         segmentation fault,
3569
3570 2004-12-04 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
3571
3572         * src/mcs51/peeph.def: added 261.a,b (16 bit rotate) by Stas Sergeev
3573           <stsp AT users.sourceforge.net> with reversed byte order
3574         * support/regression/tests/rotate.c: added (ds390 skips some tests)
3575
3576 2004-12-03 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
3577
3578         * src/z80/gen.c (genLeftShift, genRightShift): fixed second part of
3579           bug #1074377
3580         * src/hc08/gen.c (genrshFour, shiftRLong, shiftLLong),
3581         * src/mcs51/gen.c (shiftLLong): Fixed some shifting bugs Frieder found
3582
3583 2004-12-02 Slade Rich <slade_rich AT users.sourceforge.net>
3584
3585         * src/pic/pcode.c : fixed a problem where banksel was not being inserted.
3586
3587 2004-12-02 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
3588
3589         * src/SDCCpeeph.c (callFuncByName): support combined peephole rule
3590           conditions,
3591           (setFromConditionArgs): friendly operand parser for peephole rules,
3592           (operandBaseName, operandsNotRelated): new peephole condition
3593           "operandsNotRelated" -- similar to "operandsNotSame", but takes
3594           architecture specific register naming into account, handles n-way
3595           comparisons, and supports quoted literals
3596         * src/mcs51/peeph.def: restored rule 177.d with an extra condition
3597
3598 2004-12-02 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
3599
3600         * src/mcs51/peeph.def: fixed bug #1076940
3601
3602 2004-12-02 Slade Rich <slade_rich AT users.sourceforge.net>
3603
3604         * device/include/pic/pic16f877.h : added an include file for the PIC16F877 device.
3605
3606 2004-11-28 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
3607
3608         Adding support for replacing ljmps with sjmps in jumptables
3609         generated for switch statements. For now you need to set the
3610         environment variable SDCC_SJMP_JUMPTABLE to enable this.
3611         Now 4 algorithms for mcs51 jumptable generation are used:
3612         ljmp or sjmp jumptables for up to 16 cases, stack-pushing target
3613         addresses loaded pc-relative for up to 112 cases and stack-pushing
3614         target addresses loaded with offset from dptr for up to 256 cases.
3615
3616         * src/SDCCpeeph.c: added peephole conditional labelJTInRange
3617         * src/mcs51/main.c: adapted constants for switch table generation
3618         * src/mcs51/peeph.def: added 260.x for replacing ljmp with sjmp
3619
3620 2004-11-26 Maarten Brock <sourceforge.brock AT dse.nl>
3621
3622         * device/lib/printf_large.c (_print_format): fixed bug 1073386
3623         * support/regression/tests/bug1057979.c: added test for bug 1073386
3624
3625 2004-11-25 Vangelis Rokas <vrokas AT otenet.gr>
3626
3627         * src/pic16/pcode.c: fixed bug which may produce error in non-GNU
3628         compilers
3629
3630 2004-11-25 Vangelis Rokas <vrokas AT otenet.gr>
3631
3632         * src/pic16/device.h,
3633         * src/pic16/genarith.c,
3634         * src/pic16/glue.c,
3635         * src/pic16/main.c,
3636         * src/pic16/pcode.c: applied patches #1068154 and #1070213
3637
3638 2004-11-24 Vangelis Rokas <vrokas AT otenet.gr>
3639
3640         Large cummulative patch for pic16 port.
3641         * device/lib/pic16/gstack.h: NEW, user can specify its own handler
3642         to call when a stack overflow occurs,
3643         * (malloc.h): added CVS Id tag,
3644         * (pic18f{242,252,442,452}.h): added T0CONbits structure and
3645         variable,
3646         * added libc directory. The current version of LibC contains string
3647         functions, ctype functions and macros and some functions of the
3648         stdlib set (like malloc/free/atof/atoi etc...). All functions are to
3649         be extensively tested in the future. Standard disclaimer here.
3650         Library is not automatically build yet. But one can build it by
3651         invoking 'make' inside the libc directory.
3652         * added ADC library under libio. Preliminary version yet.
3653
3654         * src/pic16/gen.h: added emitTOGC macro, to toggle Carry flag,
3655         * src/pic16/gen.c (aopForRemat): asmop size is filled by
3656         aopForRemat() now and not by pic16_aopOp(),
3657         * (pic16_popGetTempReg): removed warning messgae when allocating
3658         temporary registers, its a buggy feature and will be removed,
3659         * (pic16_popGet): set register instance field in AOP_CRY,
3660         * (pic16_outBitC): fixed for results in size greater than 1,
3661         * (genUminusFloat): fixed for pic16, ported code from mcs51,
3662         * (pic16_storeForReturn): optimized return of 0,
3663         * (genCmp): experimental code for new genCmp which uses PIC18's
3664         special compare&skip instructions. Initial tests fail some times
3665         with variables grater than 1 byte in size, so new code is disabled,
3666         * (genUnpackBits, genPackBits): more optimizations in reading/writing,
3667         a single bit,
3668         * (genCast): began a fix to optimize the casting of a bit to another
3669         bit, now assigning a bitfield to another bitfield will fail, sorry,
3670         * src/pic16/main.c: disabled the use of lr-support feature,
3671         * src/pic16/pcode.h: renamed PCASMDIR to PCAD,
3672         * added some function prototypes, added function _debugf prototype,
3673         * src/pic16/pcode.c: (pic16_get_op): fixed emitting operands of register
3674         bits with offset (case PO_GPR_BIT),
3675         * (genericPrint): don't emit INFO pcode when --pcode-verbose not in
3676         command line,
3677         * (isBankInstruction): modified to return 0 for no banking instruction,
3678         and 1 for banking instruction,
3679         * (pic16_isPCinFlow): check for PCAD (assembler directives) too,
3680         caused stop processing pCodes after a inline assembly block,
3681         * (pic16_popCopyGPR2Bit): updated to match bitfields with offset,
3682         * src/pic16/pcoderegs.c: fixed a bug with eliminating some temporary
3683         registers when it shouldn't,
3684         * src/pic16/ralloc.c (allocReg): add preliminary support for
3685         supporting a limited set of temporary registers,
3686
3687 2004-11-23 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
3688
3689         * src/hc08/gen.c (genAssign, genPointerGetSetOfs, genDataPointerGet,
3690           genDataPointerSet): ensure assignments always copy in MSB to LSB
3691           order,
3692           (loadRegFromAop): recognize CLRH optimization,
3693           (genFunction): optimize RECEIVE iCodes in reentrant functions
3694
3695 2004-11-20 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
3696
3697         * src/SDCCmain.c (parseCmdLine, optionsTable[]): fixed bug with
3698           --out-fmt-s19 turning into --out-fmt-elf if s19 was already
3699           selected.
3700         * src/SDCCmain.c (linkEdit): don't define SSEG for HC08
3701         * src/hc08/main.c (_hc08_setDefaultOptions): default xdata to be
3702           contiguous with data
3703
3704 2004-11-19 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
3705
3706         * device/lib/_gptrget.c (_gptrget),
3707         * device/lib/_gptrgetc.c (_gptrgetc),
3708         * device/lib/_gptrput.c (_gptrput): _naked allows to use ret
3709           instead of sjmp to ret
3710         * src/mcs51/peeph.def: added peepholes 3.d-g and 177.g,h provided
3711           by Hubert Sack <hsack2002 AT arcor.de> in RFE #1067986, thanks
3712
3713 2004-11-18 Maarten Brock <sourceforge.brock AT dse.nl>
3714
3715         * .version: bumped version to 2.4.7
3716         * device/lib/_gptrget.c (_gptrget): is now _naked
3717         * device/lib/_gptrgetc.c (_gptrgetc): is now _naked
3718         * device/lib/_gptrput.c (_gptrput): is now _naked
3719         * src/SDCCast.c (createBlock): removed ridiculous self-assignment,
3720           (createFunction): fixed xstack
3721         * src/SDCCglue.c (emitMaps): set allocation required for bit area
3722         * src/SDCCicode.c (geniCodeCast): don't change SPEC_OCLS for literal
3723           or bit either,
3724           (geniCodeCritical): store original interrupt state in an iTemp bit
3725           var unless stack-auto
3726         * src/SDCCicode.h: added CRITICAL and ENDCRITICAL to SKIP_IC2
3727         * src/SDCCmain.c (setIncludePath): added include/target to search path
3728         * src/SDCCmem.c (allocParms): store bit vars in bit space, not overlay
3729         * src/SDCCsymt.c (checkFunction): don't check regbank for isr's against
3730           prototype,
3731           (processFuncArgs): put bit vars in bit area
3732         * src/mcs51/gen.c (saveRegisters, unsaveRegisters, genXpush, saveRBank,
3733           unsaveRBank): fixed xstack,
3734           (genFunction): bugfix: replaced (global!) reentrant with fReentrant,
3735           (genFunction, genEndFunction): fixed xstack,
3736           (genAssign): optimization don't walk backwards through mem
3737         * src/mcs51/main.c (_mcs51_regparm): don't pass bit params in registers
3738         * src/mcs51/ralloc.c (createStackSpil): spill bits to bit area
3739         * support/regression/Makefile: also make library (for stack-auto) when
3740           making "all" and added "test-mcs51-xstack-auto"
3741         * support/regression/fwk/lib/testfwk.c: added T2_isr prototype for mcs51
3742         * support/regression/ports/mcs51/T2_isr.c: added this file as a stub
3743         * support/regression/ports/mcs51/fwk.lib: added to link T2_isr stub
3744         * support/regression/ports/mcs51/spec.mk: added rules for fwk.lib
3745         * support/regression/ports/mcs51-stack-auto/spec.mk: replaced
3746           make-library by MAKE_LIBRARY
3747         * support/regression/ports/mcs51-xstack-auto/spec.mk: file added to run
3748           regression tests for xstack
3749         * support/regression/tests/bitvars.c: test for bit vars (bug 938782)
3750         * support/regression/tests/critical.c: test for critical on mcs51
3751
3752 2004-11-18 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
3753
3754         * support/regression/ports/ucz80/spec.mk: use include and lib files from
3755           built version of sdcc instead of installed version
3756
3757 2004-11-14 Maarten Brock <sourceforge.brock AT dse.nl>
3758
3759         * src/mcs51/gen.c (toBoolean): fixed bug 1065458
3760         * device/lib/Makefile.in: z80 uses printf_large.c, sprintf.c and
3761           vprintf.c now
3762         * device/lib/printf_large.c (calculate_digit): fixed bug 1057979
3763         * device/lib/z80/Makefile: don't use printf.c as it fails bug 1057979
3764           WARNING: remove device/lib/build/z80/printf.o by hand when
3765           updating from previous build!
3766         * device/lib/z80/printf.c: updated comment
3767         * support/regression/tests/bug1057979.c: test all ports now
3768         * support/regression/tests/bug1065458.c: file added
3769
3770 2004-11-12 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
3771
3772         * src/z80/gen.c (genFunction, genEndFunction): avoided generating
3773           *_start and *_end symbols for static functions
3774
3775 2004-11-11 Maarten Brock <sourceforge.brock AT dse.nl>
3776
3777         * src/SDCCmain.c (linkEdit): don't suppress crt0 if --nostdlib is used
3778           and search crt0.o in all library paths,
3779           (setIncludePath): proper handling of --nostdinc,
3780           (setLibPath): proper handling of --nostdlib
3781         * support/regression/Makefile,
3782         * support/regression/ports/ds390/spec.mk,
3783         * support/regression/ports/gbz80/spec.mk,
3784         * support/regression/ports/hc08/spec.mk,
3785         * support/regression/ports/mcs51/spec.mk,
3786         * support/regression/ports/mcs51-large/spec.mk,
3787         * support/regression/ports/mcs51-stack-auto/spec.mk,
3788         * support/regression/ports/z80/spec.mk: use include and lib files from
3789           built version of sdcc instead of installed version
3790         * doc/sdccman.lyx: fixed typo in --nostdinc
3791
3792 2004-11-10 Slade Rich <slade_rich AT users.sourceforge.net>
3793
3794         * src/pic/pcode.c,
3795         * src/pic/device.c,
3796         * src/pic/ralloc.c,
3797         * src/pic/gen.c : added support to generate code for struct bit fields.
3798
3799 2004-11-06 Maarten Brock <sourceforge.brock AT dse.nl>
3800
3801         * as/xa51/xa_version.h,
3802         * device/include/errno.h,
3803         * device/include/regc515c.h,
3804         * device/lib/_itoa.c,
3805         * device/lib/_ltoa.c,
3806         * device/lib/ser_ir_cts_rts.c,
3807         * sim/ucsim/xa.src/glob.cc,
3808         * sim/ucsim/xa.src/inst_gen.cc,
3809         * sim/ucsim/xa.src/xa_bit.cc,
3810         * sim/ucsim/xa.src/xa_sfr.cc,
3811         * sim/ucsim/z80.src/inst_dd.cc,
3812         * sim/ucsim/z80.src/inst_fdcb.cc,
3813         * support/scripts/keil2sdcc.pl,
3814         * src/pic16/pic16.dsp,
3815         * src/pic16/pic16a.dsp: corrected cvs line endings
3816         * device/lib/printf_large.c: fixed bug 1057979
3817         * src/pic16/gen.c: fixed non-C standard code
3818         * src/SDCCmain.c: made --pack-iram default, added --no-pack-iram
3819         * src/SDCCglobl.h: changed pack_iram to no_pack_iram
3820         * support/regression/ports/mcs51/support.c: reload T1 asap
3821         * doc/sdccman.lyx: updated for options --pack-iram and --no-pack-iram,
3822           pdata use and clear idata startup behaviour
3823         * support/regression/tests/bug1057979.c: added
3824
3825 2004-11-04 Maarten Brock <sourceforge.brock AT dse.nl>
3826
3827         * device/examples/ds390/ow390/ad26.h,
3828         * device/examples/ds390/ow390/cnt1d.h,
3829         * device/examples/ds390/ow390/crcutil.c,
3830         * device/examples/ds390/ow390/ownet.h,
3831         * device/examples/ds390/ow390/owsesu.c,
3832         * device/examples/ds390/ow390/swt12.h,
3833         * device/examples/ds390/ow390/swtoper.c,
3834         * device/examples/ds390/ow390/temp10.h,
3835         * device/examples/ds390/ow390/thermodl.c,
3836         * device/examples/ds390/tinitalk/tinitalk.dsp,
3837         * device/examples/ds390/tinitalk/tinitalk.dsw,
3838         * device/examples/mcs51/clock/hw.h,
3839         * device/examples/mcs51/simple2/go.bat,
3840         * device/examples/serialcomm/windows/serial.h,
3841         * device/examples/xa51/dummy.c,
3842         * device/examples/xa51/hello.c,
3843         * device/include/80c51xa.h,
3844         * device/include/at89x051.h: corrected cvs line endings
3845
3846 2004-11-04 Vangelis Rokas <vrokas AT otenet.gr>
3847
3848         * src/pic16/main.c (options): added command line --gstack, to trace
3849         stack over/under flows,
3850         * added pragma 'wparam' to allow passing first byte of function
3851         parameters via WREG, syntax is #pragma wparam my_function[, func2...]
3852         * src/pic16/gen.c (pic16_testStackOverflow): function which emits a
3853         call to __gstack_test function and sets up the symbol as extern,
3854         * (pic16_pushpCodeOp, pic16_poppCodeOp, pushw, pushaop, popaopidx,
3855         * popaop): added call to pic16_testStackOverflow,
3856         * (wParamCmp, inWparamList): NEW, test existence of a symbol in
3857         wparamList list,
3858         * (genCall, genPcall): now all parameters are passed via stack
3859         except in functions that are pass to wparam pragma in which WREG is
3860         used too,
3861         * (genPcall): REENTRANT flag is checked to see if variable prototype
3862         contains reentrant keyword, don't call a non-reentrant function, via
3863         a reentrant function pointer or vice versa, functions are never
3864         passed via WREG,
3865         * (genJumpTab): applied patch from bug #1057478 by R.Neider and
3866         D.Winkler,
3867         * src/pic16/glue.c (pic16emitRegularMap): fixed bug which caused a
3868         SIGSEGV when accessing a NULL register stucture,
3869         * (pic16_printGPointerType): modified to handle UPPER modifier for
3870         function initializers, changed prototype of function to simpler one,
3871         * (pic16_printIvalFuncPtr): check to see if function is already
3872         added in externs list,
3873         * src/pic16/pcoderegs.c (pCodeOptime2pCodes): fixed bug which
3874         optimized a move from W to SFR with a move to the same register
3875         later after a CALL,
3876         * device/lib/pic16/debug: NEW directory, contains debug features
3877         which are enabled when linking with libdebug.lib, currently command
3878         line option --gstack enables stack pointer tracing for over/under
3879         flow, corresponding sources are in debug/gstack
3880
3881 2004-10-30 Vangelis Rokas <vrokas AT otenet.gr>
3882
3883         * doc/sdccman.lyx: updated SDCC version,
3884         * (PIC16 port): update list of command line options,
3885         * src/pic16/device.h (structure pic16_options_t): added field gstack
3886         to enable stack overflow tracing on push/pops,
3887         * src/pic16/device.c (statistics structure): added statistics
3888         structure,
3889         * (pic16_dump_access, pic16_dump_usection, pic16_dump_gsection,
3890         pic16_dump_int_registers): increase statistics counters for each
3891         * variable which is encountered
3892         * (pic16_dump_usection): emit each .udata variable to its own udata
3893         section,
3894         * src/pic16/gen.c (assignResultValue, genCall, genPcall, genFunction):
3895         when macro USE_WREG_IN_FUNC_PARAMS is set to 0 pass all function
3896         parameters via stack, otherwise use old scheme,
3897         * src/pic16/glue.c (pic16_emitStatistics): dump statistics in
3898         assembler output file,
3899         * src/pic16/main.c: added command line options --gstack to enable
3900         push/pop tracing for stack overflow,
3901         * src/pic16/pcode.c (all pCodeInstruction records for PIC18F
3902         instructions): added size of each instruction,
3903         * (pic16_countInstruction): estimate size of instructions in
3904         the_pFile list, inline assembly blocks are not counted,
3905         * (pic16_FixRegisterBanking): trace previous register usage, when
3906         banksel optimizations is greater than 0, don't emit a redudant
3907         banksel directive,
3908
3909 2004-10-26 Slade Rich <slade_rich AT users.sourceforge.net>
3910
3911         * src/pic/ralloc.c : fixed inefficient code produced when compiling a complimented bit operation.
3912         * src/pic16/ralloc.c : applied same fix for pic16.
3913         * src/pic/gen.c : tidied it up a little.
3914
3915 2004-10-25 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
3916
3917         * src/mcs51/peeph.def: disabled 259.a,b for removing redundant ret,
3918         thanks to Martin Helmling for reporting (mail on sdcc-devel 2004-10-25)
3919
3920 2004-10-22 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
3921
3922         * src/SDCCast.c (reverseParms): fixed bug #1040577 (part 2)
3923
3924 2004-10-22 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
3925
3926         * device/lib/ser_ir_cts_rts.c: integer promotion caused a call to the
3927         non-reentrant function __modsint in the interrupt function (thus
3928         corrupting math operations during serial I/O)
3929         * device/lib/ser_ir.c: as above, changed buffersize
3930         * src/mcs51/peeph.def: added 259.a,b for removing redundant ret,
3931         256.c,d for zeroing
3932         * doc/Makefile: added option -t for rsync
3933
3934 2004-10-22 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
3935
3936         * src/SDCCast.h (struct ast),
3937         * src/SDCCast.c (reverseParms, copyAst): fixed bug #1040577 (part 1)
3938
3939 2004-10-20 Borut Razem <borut.razem AT siol.net>
3940
3941         * support/scripts/sdcc.nsi: added include/pic16/*.h to the setup
3942         package
3943
3944 2004-10-20 Vangelis Rokas <vrokas AT otenet.gr>
3945
3946         * device/lib/pic16/libsdcc/Makefile: added lregs directory in
3947         makefile targets,
3948         * device/lib/pic16/libsdcc/lregs/{Makefile,lrst.c,lrrest.c}: NEW
3949         support functions to replace long sequences of MOVFF's from access
3950         bank registers to stack and vice versa,
3951         * src/pic16/device.h: added new field opt_flags, where optimization
3952         flags can be set to enable certain features,
3953         * src/pic16/gen.c (pic16_emitpinfo): NEW to add PC_INFO pCode in
3954         * pBlock, (genFunction, genEndFunction): surroung loop for
3955         saving/loading used registers in stack with PC_INFO pCodes,
3956         INF_LREGS. Code in between can then be optimized by pCode optimizer
3957         to support function calls,
3958         * (genDataPointerSet): fixed bug which loaded float fields in
3959         structures with corrupt data,
3960         * src/pic16/genutils.c (debugf, _debugf): macro/function which emits
3961         in a standard way debug info on stderr. Feature used for developing
3962         and debugging only,
3963         * src/pic16/glue.c (pic16glue): reformatted, deleted some old and
3964         obsolete chunks of code,
3965         * if optimization flag OF_LR_SUPPORT was set, call pic16_OptimizeLocalRegs,
3966         * src/pic16/main.c (_pic16_parseOptions): added handler for --flr-support,
3967         * pic16/src/pcode.c (pic16_newpCodeInfo,
3968         * (pic16_newpCodeOpLocalRegs),
3969         * (pic16_convertLocalRegs2Support): NEW, to support new optimization
3970         feature,
3971         * (pic16_pCodeConstString): printing of the initial value of a
3972         symbol as a comment is inhibited since parsing was already done by
3973         copyStr and output is corrupt,
3974         * (pic16_pCode2str, genericPrint): handle PC_INFO pCode,
3975
3976 2004-10-20 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
3977
3978         * src/mcs51/ralloc.c (packRegisters): fixed bug #1044601
3979
3980 2004-10-19 Maarten Brock <sourceforge.brock AT dse.nl>
3981
3982         * as/mcs51/lkarea.c: removed old K&R style,
3983           (lnksect): changed check on boundary error,
3984           (lnksect2): changed check on boundary error,
3985           (lnksect2): extend XSTK to end of page if size = 1
3986         * as/mcs51/lkmain.c: removed old K&R style,
3987           (Areas51): create l_IRAM symbol
3988         * as/mcs51/lkmem.c (summary2): added report on PSEG and XSTK
3989         * device/lib/Makefile.in: renamed model-mcs51-reentrant to
3990           model-mcs51-stack-auto, added model-mcs51-xstack-auto
3991         * device/lib/_mullong.c: added version to be compiled with xstack
3992         * device/lib/mcs51/crtclear.asm: clear only upto --iram-size
3993         * device/lib/mcs51/crtxclear.asm: clear pdata as well
3994         * device/lib/mcs51/crtxstack.asm: fixed comment
3995         * src/SDCCglue.c: maxInterrupts defaults to 0,
3996           (emitMaps): added pdata,
3997           (createInterruptVect): (re)moved default,
3998           (glue): added pdata,
3999           (glue): moved __start__xstack to XSTK with default size 1
4000         * src/SDCCmain.c (parseCmdLine): automatically set options.intlong_rent
4001           and options.float_rent when options.stackAuto is set,
4002           (linkEdit): only write XDATA_NAME if provided on command line
4003         * src/SDCCmem.h,
4004         * src/SDCCmem.c: added pdata
4005         * src/port.h: added pdata_name to PORT
4006         * src/mcs51/gen.c (toBoolean): fixed for Acc use of aopGet,
4007           (saveRegisters, unsaveRegisters): removed usage of B,
4008           (genMinus): fixed accumulator clash,
4009           (genJumpTab): added comment, this needs another look
4010         * src/mcs51/gen.c: added check for "B in use" paranoia,
4011           added pushB() and popB()
4012         * src/mcs51/peeph.def: restart after 177.c so 177.a can get a second
4013           chance
4014         * src/avr/main.c,
4015         * src/ds390/main.c,
4016         * src/hc08/main.c,
4017         * src/mcs51/main.c,
4018         * src/pic/main.c,
4019         * src/pic16/main.c,
4020         * src/xa51/main.c,
4021         * src/z80/main.c: (reset_regparms) made void parameter explicit and
4022           added PSEG (PAG,XDATA) or NULL to port specifier
4023         * src/ds390/main.c (_ds390_genIVT): moved implemented default in here
4024         * src/mcs51/main.c (_mcs51_genIVT): moved implemented default in here,
4025           (_mcs51_genInitStartup): removed __start__xstack equ,
4026           (mcs51_port): moved xstack from XSEG (XDATA) to XSTK (PAG,XDATA)
4027         * src/pic16/device.c (pic16_dump_usection, pic16_dump_isection),
4028         * src/z80/gen.c (_rleAppend): fixed warnings
4029         * support/regression/tests/zeropad.c: added pdata test
4030         * .version: bumped to 2.4.6
4031
4032 2004-10-17 Borut Razem <borut.razem AT siol.net>
4033
4034         * support/scripts/sdcc.nsi: cross compiling of WIN32 setup.exe on Linux
4035         as a part of nightly build
4036
4037 2004-10-16 Vangelis Rokas <vrokas AT otenet.gr>
4038
4039         * src/pic16/gen.c (struct _G): added field useWreg, is set to 1 when
4040         WREG holds the first byte function parameters,
4041         * (aopForSym): take special case for symbols which are in FARSPACE
4042         but in CODESPACE too,
4043         * (assignResultValue): modified to take into account _G.useWreg,
4044         * (genCall): don't use wreg for parameter passing when function is
4045         declared as reentrant, too, added optimization INCF to stack
4046         pointer when stack parameter count is 1,
4047         * (genFunction, genEndFunction): refurnished and fixed to not using
4048         wreg for passing parameters when function has varargs or is
4049         reentrant, fixed bug with symbol name compare for generating
4050         functions in absolute address,
4051         * (pic16_storeForReturn): refurnished,
4052         * (genCmp): began writing a new version of the function, not ready
4053         yet, therefore it is disabled,
4054         * (genAssign): do not read code memory when assigning a function to
4055         a pointer function,
4056         * src/pic16/glue.c (pic16emitStaticSeg): abSym->name is defined an
4057         array of characters, not pointer,
4058         * (pic16initialComments): in debug mode emit an .ident directive for
4059         the assembler,
4060         * (_process_pragma): emit a new warning type (internal to pic16)
4061         when setting stack to default length, emit a similar warning when
4062         placing a function at absolute address and address is not word aligned
4063         * (_pic16_parseOptions): added 'return TRUE' statement,
4064         * (_pic16_linkEdit): if compiling a source, then add the source's
4065         file object, first in the list of objects to link,
4066
4067 2004-10-13 Slade Rich <slade_rich AT users.sourceforge.net>
4068
4069         * src/pic/pcoderegs.c : increased count on regUsedinRange to prevent unnecessary warning.
4070         * src/pic/main.c : removed VC warning.
4071         * src/pic/gen.c : changed comment.
4072
4073 2004-10-12 Vangelis Rokas <vrokas AT otenet.gr>
4074
4075         * device/lib/pic16/libsdcc/gptr/gptrput[234].c: an external
4076         reference to a deprecated symbol _GPTRREG was causing failure to
4077         link. Thanks G. M. Gallant for the info.
4078
4079 2004-10-12 Slade Rich <slade_rich AT users.sourceforge.net>
4080
4081         * src/pic/pcode.c : Applied a code patch supplied by Paul Ashmore in
4082         comments for Bugs item #954788.
4083
4084 2004-10-10 Vangelis Rokas <vrokas AT otenet.gr>
4085
4086         * src/pic16/device.c (pic16_dump_gsection,
4087         * pic16_groupRegistersInSection): handle symbols declared to be in
4088         access bank differently,
4089         * src/pic16/gen.c (struct _G): added field resDirect,
4090         * (aopForSym): if symbol on stack and iCode is '=' and result exists,
4091         send values read from stack directly to result and don't allocate
4092         temporary values,
4093         * (pic16_sameRegs): fixed bug that allowed MOVFF to move between
4094         same registers,
4095         * (pic16_sameRegsOfs): NEW,
4096         * (freeAsmop): if _G.resDirect is set then do not mark registers as
4097         free because they were not allocated from temporary pool,
4098         * pic16_popRegFromString): workaround to fix a problem with
4099         allocating variables twice or never,
4100         * (genGenPointerGet): using PRODL instead of FSR0H,
4101         * (genGenPointerSet): using POSTDEC1 (that is a stack location)
4102         instead of FSR0H,
4103         * (genAssign): take advantage of the _G.resDirect flag,
4104         * (genCast): around line 11844, use mov2f instead of directly
4105         MOVFF'ing between operands to account for literal values,
4106         * src/pic16/genutils.c: some new debug functions for gpsim have been
4107         added,
4108         * src/pic16/glue.c (pic16_printIvalType): fixed bug that initialized
4109         float with integer part only,
4110         * src/pic16/main.c (_process_pragma): handle pragma udata access to
4111         place variables in access bank
4112         * device/lib/pic16/libsdcc/gptr/gptr*.c: using BRA instead of GOTO,
4113         updated sources to reflect recent changes in gen.c
4114
4115 2004-10-06 Vangelis Rokas <vrokas AT otenet.gr>
4116
4117         * device/lib/pic16/libsdcc/Makefile.rules: fixed bug concerning
4118         sources that searched for headers in installation path, now the
4119         device/include/pic16 is used,
4120         * src/pic16/glue.c (pic16glue),
4121         * src/pic16/pcode.c (pCode2str, genericPrint): don't print .file or
4122         .line directives if not in debug mode, this suppresses assembler's
4123         warnings for ignored directives
4124
4125 2004-10-05 Maarten Brock <sourceforge.brock AT dse.nl>
4126
4127         * src/port.h: made reset_regparms prototype void parameter explicit.
4128         * src/SDCCsymt.c (processFuncArgs): removed argument "func".
4129         * src/mcs51/ralloc.c (packRegisters): new fix for bugs 898889 & 979599.
4130         * doc/sdccman.lyx: documented warning disabling and how to use
4131           printf_large to make it print floats.
4132         * device/include/stdbool.h: NEW
4133         * device/lib/_atof.c,
4134         * device/lib/_divuint.c,
4135         * device/lib/_divulong.c,
4136         * device/lib/expf.c,
4137         * device/lib/printf_large.c,
4138         * device/lib/sincosf.c,
4139         * device/lib/sincoshf.c: used stdbool.h, all compile with stack-auto now
4140         * device/lib/Makefile.in: added target for model-mcs51-reentrant to build
4141           a completely reentrant lib.
4142
4143 2004-10-05 Vangelis Rokas <vrokas AT otenet.gr>
4144
4145         * device/lib/pic16/libsdcc/gptr/gptr*.c: added return statements
4146         * device/include/pic16/stdio.h: fixed bug with colon
4147
4148 2004-10-03 Vangelis Rokas <vrokas AT otenet.gr>
4149
4150         * device/include/pic16/stdio.h,
4151         * device/include/pic16/stdlib.h,
4152         * device/include/pic16/math.h: NEW
4153         * device/lib/pic16/libsdcc/gptr/*.c (gptrget*, gptrput*): functions
4154         declared as _naked to reduce overhead
4155         * device/lib/Makefile.in (target port-specific-objects-pic16):
4156         changed * to *.* so to ignore the CVS directory,
4157         * src/pic16/gen.c (pic16_freeAsmop): added code to store result of
4158         stacked variables back in stack,
4159         * (genEndFunction): fixed bug reported by G.M. Gallant with stack
4160         corruption
4161
4162 2004-10-01 Vangelis Rokas <vrokas AT otenet.gr>
4163
4164         * .version: bumped version number to 2.4.5
4165         * support/Util/SDCCerr.h: added warning W_POSSBUG2.
4166         * support/Util/SDCCerr.c (messages structure): added entry for
4167         W_POSSBUG2
4168
4169         Large cumulative patch for pic16 port and libraries.
4170         * device/include/pic16/sdcc-lib.h,
4171         * device/include/pic16/stdarg.h,
4172         * device/include/asm/pic16/features.h,
4173         * device/include/lib/pic16/libsdcc/gptr/{*.c, Makefile}: NEW,
4174         * device/include/pic16/float.h: changes reentrant keyword with
4175         _FS_REENTRANT, added prototype for __fsneq, included sdcc-lib.h
4176         * device/lib/pic16/libsdcc/Makefile: added target directory gptr,
4177         updated target build-libraries to include objects from gptr,
4178         * device/lib/pic16/libsdcc/{char,int,long}/*.c: added macro
4179         _IL_REENTRANT to all function headings, included sdcc-lib.h header,
4180         * device/lib/pic16/libsdcc/float/*.c: added macro _FS_REENTRANT to
4181         all function headings,
4182         * src/SDCCmain.c: added global parameter userIncDirsSet,
4183         * (parseCmdLine): when option -I is encountered add directory to
4184         userIncDirsSet too,
4185         * src/version.awk: added space between control and long,
4186         * src/pic16/NOTES: added some notes for the port,
4187         * src/pic16/gen.c: added prototype for mov2fp function,
4188         * (fReturnpic16[]): properly named return value registers,
4189         * (_G structure): added fields stackRegSet, fregsUsed, stack_lat,
4190         * (aopForSym): added code to handle symbols with onStack flag set,
4191         symbols onStack are allocated PTRSIZE bytes,
4192         * (aopFreeAsmop): handles special case where asmops are stack objects,
4193         * (aopGet, pic16_popGet): adde cod to handle new asmop AOP_STA,
4194         * (pic16_popGetTempReg, pic16_popGetTempRegCond, pic16_popReleaseTempReg):
4195         added argument lock to trace flaws in allocating temporary registers
4196         when developing port,
4197         * (pic16_popGetLit, pic16_popGetLit2): changed lit from unsigned to signed
4198         * (pic16_popRegFromString): reenabled allocating a direct register
4199         from string,
4200         * (assignResultValue): various beautifications,
4201         * fixed bug #1037717 (patch from R. Neider & D. Wrinkler) with mistaken
4202         referenced function argument,
4203         * (genIpush): reenabled to allow stacked arguments, handles only
4204         ic->parmPush iCodes,
4205         * (genCall, genPcall): major changes to allow for variable argument
4206         functions, fixed a bug with falsely restoring stack pointer after
4207         returning from call,
4208         * (genFunction): pending code for critical function,
4209         * (shiftR1Left2ResultSigned, shiftR1Left2Result, shiftL2Left2Result,
4210         * (shiftR2Left2Result, shiftLLong) applied patch #1032155 from R.Neider,
4211         * (genNearPointerGet): fixed bug with indirect reading, was always
4212         reading from INDF0
4213         * (genGenPointerGet, genGenPointerSet): rewrote to support generic
4214         pointers,
4215         * (genAddrOf): rewrote code to take address of a stacked function parameter
4216         * (genCast): fixed casting to generic pointer type,
4217         * src/pic16/gen.h: added AOP_STA,
4218         * (struct asmop): added field stk,
4219         * src/pic16/genarith.c (pic16_AopType): handle AOP_STA,
4220         * (pic16_genPlusIncr): changed emitSKPNZ to emitSKPNZ,
4221         * (pic16_genAddLit, pic16_genPlus): applied patch #1034042 by tecodev,
4222         * (pic16_genMinus): fixed bug #1035119 with patch submitted by tecodev,
4223         * src/pic16/genutils.c (pic16_genNot): removed symbol *tlbl,
4224         * src/pic16/glue.c (pic16_printGPPointerType): fixed to support new
4225         generic pointers,
4226         * src/pic16/main.c (_pic16_initPaths): ignores default SDCC include
4227         and library paths,
4228         * (pic16_port structure): generic pointer size is set to 3,
4229         * src/pic16/pcode.c (pic16_newpCodeOpLit): correctly print literal integer,
4230         * (insertBankSwitch): cast to (char *) to prevent 64bit CPUs'
4231         compiler warning,
4232         * src/pic16/ralloc.c (allocReg): prevent allocating register when
4233         operand is an iTemp,
4234
4235 2004-09-24 Martin Helmling <mh AT octo-soft.de>
4236
4237         * debugger/mcs51/cmd.c: set PC if a symbol at pc reg is set
4238         * debugger/mcs51/simi.c: addapt new syntax of s51
4239
4240 2004-09-23 Vangelis Rokas <vrokas AT otenet.gr>
4241
4242         * src/pic16/genutils.c (pic16_genNot): fixed bug #1032265,
4243         * src/pic16/pcode.c: commented out some calls to free() in order to
4244         fix bug #989576,
4245
4246 2004-09-23 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
4247
4248         * src/SDCCicode.h,
4249         * src/SDCCicode.c (isiCodeInFunctionCall),
4250         * src/avr/ralloc.c (selectSpil),
4251         * src/pic/ralloc.c (selectSpil),
4252         * src/pic16/ralloc.c (selectSpil),
4253         * src/ds390/ralloc.c (selectSpil),
4254         * src/hc08/ralloc.c (selectSpil),
4255         * src/xa51/ralloc.c (selectSpil),
4256         * src/mcs51/ralloc.c (selectSpil): Don't use remainSpil to spill to the
4257         stack in the middle of a function call sequence (fixes bug #1020268)
4258         * src/SDCCicode.c (geniCodeJumpTable): fixed error in computing the
4259         costs associated with the minimum switch case.
4260
4261 2004-09-19 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
4262
4263         * src/SDCC.lex: fixed bug #1030549
4264
4265 2004-09-19 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
4266
4267         * src/SDCCcse.h (struct cseDef),
4268         * src/SDCCcse.c (cseBBlock, newCseDef, ifFromAddrTaken): purge CSEs
4269         over a function call if the CSE is derived from a symbol whose
4270         address has been taken (fixes bug #1029883)
4271         * support/regression/tests/bug-1029883: a new regression test for
4272         this bug
4273
4274 2004-09-18 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
4275
4276         * src/hc08/gen.c (emitinline): fixed bug #1029778
4277         * src/SDCC.y (assignment_expr): fixed the grammer so that assignment
4278         to a cast object is no longer a syntax error ("fixes" bug #1030006,
4279         and starts toward RFE #905167)
4280
4281 2004-09-17 Vangelis Rokas <vrokas AT otenet.gr>
4282
4283         * src/pic16/gen.c (mov2f): New function to move an operand to
4284         another without considering if it is a literal or a register,
4285         * (pic16_sameRegs): don't check if they are both AOP_REG,
4286         * (AccRsh): removed andmask=0 lines,
4287         * (genLeftShift): duplicated to be improved in future versions,
4288         * src/pic16/main.c (_process_pragma): emit stack default size in hex,
4289         * src/pic16/pcode.c: added POC_INFSNZW, updated inverted_op fields
4290         in POC_INCFSZ, POC_INCFSZW, POC_INFSNZ,
4291         * (pic16initMnemonics): added initialization for POC_INFSNZW,
4292         * (insertBankSwitch): fixed inserting banksel directives algorithm
4293         for instructions that follow a skip instruction, this fixes a report
4294         for broken subtraction code generation,
4295         * src/pic16/ralloc.c (deassignLRs): do not free register if current
4296         iCode is a left op, just in case result and right share the same
4297         registers
4298
4299 2004-09-16 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
4300
4301         * src/hc08/main.c,
4302         * src/hc08/gen.c (genJumpTable): more efficient jump table, supports
4303         preservation of HX
4304         * src/hc08/gen.c (pullRegs): fixed order of HX & XA pairs
4305         * src/mcs51/ralloc.c (packRegisters): removed the patch applied
4306         on 2004-09-12; it was buggy
4307
4308 2004-09-15 Bernhard Held <bernhard AT bernhardheld.de>
4309
4310         * src/SDCCsymt.h: removed RESULT_CHECK
4311         * src/SDCCast.c,
4312         * src/SDCCglue.c,
4313         * src/SDCCval.c,
4314         * src/pic/glue.c,
4315         * src/pic16/glue.c: replaced RESULT_CHECK with RESULT_TYPE_NONE
4316
4317 2004-09-15 Vangelis Rokas <vrokas AT otenet.gr>
4318
4319         * src/SDCCicode.c (piCode): applied patch from Raphael Neider,
4320         * src/pic16/device.c (pic16_assignConfigWordValues): wrong
4321         configuration values no more rejected by compiler, they are assigned
4322         to configuration registers with a warning message instead,
4323         * src/pic16/glue.c (pic16_emitConfigRegs): added +1 at top-limit of
4324         the for-loop so last conf register is emitted too,
4325         * (_pic16_initPaths): link library libsdcc.lib by default,
4326         * (_hasNativeMulFor): modified test for multiplication according to
4327         Raphael Neider's remarks. Integer multiplication is also done with
4328         support functions,
4329         * device/include/pic16/pic18fregs.h: corrected type error in while
4330         testing and including 18f6720 header file
4331
4332 2004-09-14 Vangelis Rokas <vrokas AT otenet.gr>
4333
4334         * src/pic16/device.h (pic16_options): removed field use_crt,
4335         * src/pic16/gen.c (genUnpackBits): added call to pic16_loadFSR0
4336         until an optimization to handle single bits is added,
4337         * (pic16_loadFSR0): moved before genUnpackBits,
4338         * (genAnd): some white lines removed,
4339         * src/pic16/main.c (_pic16_finaliseOptions): set omit_ivt and clear
4340         leave_reset flags in pic16_options when using crt modules,
4341
4342 2004-09-12 Maarten Brock <sourceforge.brock AT dse.nl>
4343
4344         * src/mcs51/ralloc.c (packRegisters): applied fix by Bernhard Held
4345           for bugs 898889 & 979599. Also used some safer print instructions.
4346
4347 2004-09-12 Vangelis Rokas <vrokas AT otenet.gr>
4348
4349         * src/pic16/device.h (pic16_options_t): added field use_crt,
4350         crt_name, no_crt,
4351         * src/pic16/genarith.c (pic16_genPlus): added an assert(0) line to
4352         catch a probable future bug,
4353         * src/pic16/gen.c: aopIdx function commented out,
4354         * (genAssign): commented out old code which used aopIdx,
4355         * src/pic16/glue.c (pic16glue): removed some legacy fragments of
4356         code, added if conditionals to take into account the --use-crt
4357         command line options,
4358         * src/pic16/main.c (pic16_optionsTable): added new command line
4359         options, --use-crt= and --no-crt,
4360         * (_pic16_linkEdit): now the proper crt object is added in the
4361         linker command line except than when --no-crt is specified,
4362         * src/pic16/pcode.c,
4363         * src/pic16/pcode.h: added some structures and functions for a new
4364         optimization scheme to compansate for instruction overhead between
4365         same iCodes, this scheme is currently under development and is not
4366         working in any way,
4367         * src/pic16/gen.c (genAnd): added patch provided by Aaron Collwell
4368         to && operator,
4369         * device/lib/pic16/startup/crt0i.c,
4370         * device/lib/pic16/startup/crt0iz.c: added global char variable
4371         __uflags to force the generation of an idata section
4372
4373 2004-09-12 Bernhard Held <bernhard AT bernhardheld.de>
4374
4375         * doc/Makefile,
4376         * doc/clean.mk: added support for easy creation of sdcc-doc.tar.bz2
4377         * doc/sdccman.lyx: updated sdcc version to 2.4.4
4378
4379 2004-09-10 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
4380
4381         * doc/sdccman.lyx: fixed a problem with my new index entries (thanks
4382         Frieder) and clarified the default code optimization mode
4383
4384 2004-09-10 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
4385
4386         * src/SDCC.lex (doPragma, process_pragma),
4387         * src/SDCCglobl.h (struct optimize): added pragmas "opt_code_speed",
4388         "opt_code_size", and "opt_code_balanced"
4389         * src/SDCCmain.c (optionsTable[], printOptions, scanOptionsTable):
4390         regrouped options by category, added support for category headers
4391         * src/SDCCmain.c (parseCmdLine): added options "--opt-code-speed"
4392         and "--opt-code-size"
4393         * doc/sdccman.lyx: documented these new options and pragmas
4394         * src/hc08/gen.c (AccLsh, AccRsh): take speed/size optimization
4395         preference into account
4396
4397 2004-09-08 Maarten Brock <sourceforge.brock AT dse.nl>
4398
4399         * src/SDCCicode.c (geniCodePostInc, geniCodePreInc, geniCodePostDec,
4400           geniCodePreDec): Fixed bug 904237 by generating a warning
4401         * src/SDCCerr.h,
4402         * src/SDCCerr.c: added warning W_SIZEOF_VOID
4403
4404 2004-09-09 Slade Rich <slade_rich AT users.sourceforge.net>
4405
4406         * src/pic/device.c : When no max ram set validate full memory range.
4407         * src/pic/pcode.c,
4408         * src/pic/pcodepeep.c : Copy C code comments to optimised replacement code.
4409
4410 2004-09-08 Maarten Brock <sourceforge.brock AT dse.nl>
4411
4412         * device/lib/_gptrget.c,
4413         * device/lib/_gptrput.c: updated comment
4414         * device/lib/calloc.c,
4415         * device/lib/free.c,
4416         * device/lib/malloc.c,
4417         * device/lib/realloc.c: added LGPL, made them reentrant-safe
4418         * src/SDCCcse.c (cseBBlock),
4419         * src/SDCCicode.c (printOperand, geniCodeArray),
4420         * src/SDCCicode.h (struct operand): fixed bug 868103
4421         * support/regression/tests/bug-868103.c: added
4422         * src/SDCCast.c (searchLitOp),
4423         * src/SDCCcse.h (struct cseDef),
4424         * src/SDCCglue.c (printIvalArray, spacesToUnderscores),
4425         * src/SDCCicode.h (struct operand),
4426         * src/SDCCsymt.h (struct sym_link),
4427         * src/avr/gen.c (hasInc),
4428         * src/ds390/gen.c (hasInc),
4429         * src/hc08/gen.c (genPlusIncr, hasInc),
4430         * src/mcs51/gen.c (hasInc),
4431         * src/pic16/glue.c (pic16_printIvalChar),
4432         * src/pic16/ralloc.c (regWithIdx),
4433         * src/xa51/gen.c (hasInc) : removed warnings
4434         * src/SDCCast.c (createBlock): added comment ???
4435         * src/hc08/ralloc.c: updated comments
4436
4437 2004-09-07 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
4438
4439         * doc/sdccman.lyx: updated section on switch statements, added
4440         section about semaphore locking
4441         * doc/Makefile: added option -info for latex2html
4442         * device/lib/_gptrget.c,
4443         * device/lib/_gptrput.c: __XPAGE instead of P2 in outcommented code
4444
4445 2004-09-06 Slade Rich <slade_rich AT users.sourceforge.net>
4446
4447         * src/pic/device.h,
4448         * src/pic/device.c,
4449         * src/pic/port.c : Changed PIC14 code to not set bit RP1 when
4450          maxram is less than 0x100.
4451
4452 2004-09-06 Slade Rich <slade_rich AT users.sourceforge.net>
4453
4454         * Bug fixes for PIC14 - signed RSHIFT problem. Patch supplied by Allen(agschrum).
4455
4456 2004-09-06 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
4457
4458         * src/port.h,
4459         * src/mcs51/main.c,
4460         * src/ds390/main.c,
4461         * src/z80/main.c,
4462         * src/hc08/main.c,
4463         * src/pic/main.c,
4464         * src/pic16/main.c,
4465         * src/avr/main.c,
4466         * src/xa51/main.c
4467         * src/SDCCicode.c (geniCodeJumpTable): Better logic to determine if a
4468         a jump table is the best form for a switch statement, including
4469         automatic insertion of missing cases to make the case range
4470         continuous. Developed in collaboration with Frieder Ferlemann.
4471
4472 2004-09-02 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
4473
4474         * src/hc08/ralloc.c (canDefAccResult): multi-byte shift is unsafe for
4475         accumulator result if it needs sign extension
4476
4477 2004-09-02 Maarten Brock <sourceforge.brock AT dse.nl>
4478
4479         * src/hc08/ralloc.c (canUseAccOperand): fixed comparison bug
4480
4481 2004-09-02 Maarten Brock <sourceforge.brock AT dse.nl>
4482
4483         * device/lib/gbz80/printf.c,
4484         * device/lib/z80/printf.c: removed define for NULL
4485
4486 2004-09-02 Maarten Brock <sourceforge.brock AT dse.nl>
4487
4488         * as/xa51/xa_link.c,
4489         * device/examples/ds390/ow390/ad26.c,
4490         * device/examples/ds390/ow390/cnt1d.c,
4491         * device/examples/ds390/ow390/counter.c,
4492         * device/examples/ds390/ow390/ds2480.h,
4493         * device/examples/ds390/ow390/ds2480ut.c,
4494         * device/examples/ds390/ow390/findtype.c,
4495         * device/examples/ds390/ow390/gethumd.c,
4496         * device/examples/ds390/ow390/owllu.c,
4497         * device/examples/ds390/ow390/ownetu.c,
4498         * device/examples/ds390/ow390/swt12.c,
4499         * device/examples/ds390/ow390/swtloop.c,
4500         * device/examples/ds390/ow390/temp.c,
4501         * device/examples/ds390/ow390/temp10.c,
4502         * device/examples/ds390/ow390/thermo21.c,
4503         * device/examples/ds390/ow390/tinilnk.c,
4504         * device/examples/ds390/ow390/tstfind.c,
4505         * device/examples/serialcomm/windows/serial.cpp,
4506         * device/examples/serialcomm/windows/test_serialcomm.cpp,
4507         * device/include/reg51.h: fixed line endings for cvs
4508
4509 2004-09-02 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
4510
4511         * src/hc08/ralloc.c (canDefAccResult, canUseAccOperand,
4512         packRegsForAccUse, packRegisters): new accumulator register
4513         packing algorithm
4514         * support/regression/ports/hc08/support.c (_putchar): suppress
4515         warning of unused variable
4516         * src/SDCCicode.c: added SWAP entry to codeTable
4517
4518 2004-09-01 Maarten Brock <sourceforge.brock AT dse.nl>
4519
4520         * device/lib/sprintf.c: forgot to add this file before previous commit
4521
4522 2004-09-01 Vangelis Rokas <vrokas AT otenet.gr>
4523
4524         * src/pic16/gen.c (genPackBits): added operand right in function
4525         parameters, load result directly if p_type is POINTER (that is
4526         called by genNearPointerSet)
4527         * (genUnPackBits): added operand left in function parameters,
4528         * (genNearPointerGet, genNearPointerSet): prevent the loading of
4529         FSR0 if accessing bitfields,
4530
4531 2004-08-31 Maarten Brock <sourceforge.brock AT dse.nl>
4532
4533         * device/include/stdio.h: added NULL, size_t, typedef pfn_outputchar,
4534           _print_format; updated printf, sprintf, vsprintf
4535         * device/include/asm/default/features.h: corrected comment/define
4536         * device/lib/Makefile.in: added sprintf.c
4537         * device/lib/libsdcc.lib: added sprintf module
4538         * device/lib/printf_large.c,
4539         * device/lib/vprintf.c,
4540         * device/lib/sprintf.c: totally refactored printf_large and vprintf
4541           into these 3 files
4542         * support/regression/Makefile: changed ALL_PORTS into a usefull default
4543         * support/regression/ports/mcs51-stack-auto/spec.mk: added sprintf
4544         * support/regression/tests/bug-927659.c: removed dummy putchar, enabled
4545           hc08 test
4546         * support/regression/tests/zeropad.c: define idata as data for hc08
4547
4548 2004-08-31 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
4549
4550         * src/SDCCpeeph.c (labelIsReturnOnly): support hc08 rts opcode also
4551         * src/SDCCpeeph.c (buildLabelRefCountHash): assume function entry point
4552         labels are referenced at least once (even if a reference is not found)
4553         * src/hc08/gen.c (emitcode): set isComment flag for comments
4554         * src/hc08/peeph.def: added rules 5a..5f (optimize redundant immediate
4555         loads), rules 6a..6b (optimize jumps to return)
4556
4557 2004-08-30 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
4558
4559         * device/lib/acosf.c (acosf),
4560         * device/lib/asinf.c (asinf),
4561         * device/lib/atanf.c (atanf),
4562         * device/lib/ceilf.c (ceilf),
4563         * device/lib/cosf.c (cosf),
4564         * device/lib/coshf.c (coshf),
4565         * device/lib/cotf.c (cotf),
4566         * device/lib/fabsf.c (fabsf),
4567         * device/lib/floorf.c (floorf),
4568         * device/lib/log10f.c (log10f),
4569         * device/lib/logf.c (logf),
4570         * device/lib/sinf.c (sinf),
4571         * device/lib/sinhf.c (sinhf),
4572         * device/lib/sqrtf.c (sqrtf),
4573         * device/lib/tanf.c (tanf),
4574         * device/lib/tanhf.c (tanhf),
4575         * device/include/math.h: defined _FLOAT_FUNC_REENTRANT macro and
4576         replaced all instances of "reentrant" in the library functions
4577         defined in math.h with this macro.
4578         * support/regression/tests/float_trans.c: reenabled test for hc08
4579
4580 2004-08-30 Bernhard Held <bernhard AT bernhardheld.de>
4581
4582         * device/lib/pic16/Makefile.common.in: added MODELFLAGS again, it was
4583         erroneously deleted
4584
4585 2004-08-30 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
4586
4587         * src/hc08/gen.c (loadRegFromAop): better use of clra & clrx
4588         * src/hc08/gen.c (genAnd, genOr): fixed bug with conditional when
4589         multi-byte volatile operands are used
4590         * src/hc08/gen.c (shiftRLong): fixed bug with wrong rotate direction
4591         * src/hc08/main.c (_hc08_genAssemblerPreamble): moved the built-in
4592         initialization to area GSINIT0 so that it would always precede
4593         any static initializers in GSINIT
4594         * support/regression/tests/zeropad.c: fixed idata define for hc08
4595         * support/regression/tests/bug-927659.c,
4596         * support/regression/tests/float_trans.c: disabled tests for hc08
4597         pending missing library routines
4598         * .version: increased version number to 2.4.4 - hc08 port now passes
4599         regression tests
4600
4601
4602 2004-08-29 Bernhard Held <bernhard AT bernhardheld.de>
4603
4604         * device/lib/pic16/Makefile.common.in: added $(MM) to fix `make clean`
4605         * Makefile.common.in,
4606         * as/Makefile,
4607         * as/hc08/Makefile.in,
4608         * as/mcs51/Makefile.in,
4609         * as/z80/Makefile.in,
4610         * debugger/mcs51/Makefile.in,
4611         * device/include/Makefile.in,
4612         * device/lib/Makefile.in,
4613         * doc/Makefile,
4614         * link/Makefile,
4615         * link/z80/Makefile.in,
4616         * packihx/Makefile.in,
4617         * sim/ucsim/main_in.mk,
4618         * sim/ucsim/avr.src/Makefile.in,
4619         * sim/ucsim/doc/Makefile.in,
4620         * sim/ucsim/gui.src/serio.src/Makefile.in,
4621         * sim/ucsim/hc08.src/Makefile.in,
4622         * sim/ucsim/s51.src/Makefile.in,
4623         * sim/ucsim/xa.src/Makefile.in,
4624         * sim/ucsim/z80.src/Makefile.in,
4625         * src/Makefile.in,
4626         * support/cpp2/Makefile.in,
4627         * support/librarian/Makefile,
4628         * support/makebin/Makefile: added DESTDIR to the install path proposed
4629         by "Maciej 'Agaran' Pijanka" <agaran AT pld-linux.org>
4630         * doc/sdccman.lyx: added DESTDIR documentation
4631
4632 2004-08-29 Vangelis Rokas (vrokas AT otenet.gr>
4633
4634         * src/pic16/gen.c (genFunction, genEndFunction): fixed return
4635         instruction for interrupt handlers, use fast returns when returning
4636         from high priority interrupts
4637
4638 2004-08-29 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
4639
4640         * src/hc08/gen.c (genAnd, genOr, transferAopAop, rmwWithAop): optimized
4641         code generation
4642         * src/hc08/gen.c (genrshFour, genCpl): fixed bugs
4643         * src/hc08/gen.c (genMultOneByte, genDivOneByte, genModOneByte): fixed
4644         bugs, ported much of Bernhard's code from mcs51
4645         * src/mcs51/gen.c (genSend),
4646         * src/hc08/gen.c (genSend): fixed bug with lost SEND iCodes if more
4647         than one when calling a reentrant function
4648         * device/lib/_mullong.c: defined an alternate struct layout for big
4649         endian ports (hc08)
4650
4651 2004-08-28 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
4652
4653         * src/hc08/gen.c (shiftL2Left2Result): fix for bug-500536 regression
4654         test
4655
4656 2004-08-28 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
4657
4658         * src/SDCCsymt.c (processFuncArgs): make sure parameter types
4659         are sane and complete before asking the port its prefered parameter
4660         passing method (fixes bug #1017633)
4661         * device/lib/hc08/_ret.c: added "data" storage class to _ret2
4662         and _ret3
4663
4664 2004-08-27 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
4665
4666         * src/hc08/gen.c (genPackBitsImmed, genUnpackBitsImmed): fix offset
4667         problem in bitfields >= 8 bits.
4668
4669 2004-08-27 Maarten Brock <sourceforge.brock AT dse.nl>
4670
4671         * src/SDCCsymt.c: undid changes that were not meant to be committed
4672
4673 2004-08-27 Maarten Brock <sourceforge.brock AT dse.nl>
4674
4675         * support/regression/ports/hc08spec.mk: REENTRANT must be reentrant
4676
4677 2004-08-27 Maarten Brock <sourceforge.brock AT dse.nl>
4678
4679         * src/hc08/gen.c (genUminusFloat): fixed bug where only 3 bytes were
4680           copied and wrong bit got inverted
4681
4682 2004-08-27 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
4683
4684         * src/hc08/gen.c (genPointerSet, genFarPointerSet): moved code from
4685         genFarPointerSet into genPointerSet; eliminated genFarPointerSet
4686         * src/hc08/gen.c (genPointerGet, genFarPointerGet): moved code from
4687         genFarPointerGet into genPointerGet; eliminated genFarPointerGet
4688         * src/hc08/gen.c (genPackBitsImmed): generate optimized code for
4689         assignments to bitfields at known addresses
4690         * src/hc08/gen.c (genUnpackBitsImmed): generate optimized code for
4691         reads from bitfields at known addresses
4692         * src/hc08/ralloc.c (packRegisters),
4693         * src/hc08/gen.c (genPointerGet, genUnpackBits, genUnpackBitsImmed,
4694         genhc08Code): optimize pointer get values used as conditionals
4695         * src/hc08/peeph.def: added rules 2e & 2f to optimize bit test
4696         and branch
4697
4698 2004-08-24 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
4699
4700         * src/mcs51/gen.c (genPointerGet, genNearPointerGet, genPagedPointerGet,
4701         genFarPointerGet, genCodePointerGet, genGenPointerGet, genUnpackBits),
4702         * src/mcs51/ralloc.c (packRegisters): optimize pointer get values used
4703         as conditionals
4704
4705 2004-08-22 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
4706
4707         * src/mcs51/peeph.def: peepholes 248.i-m for xdata bitfields
4708
4709 2004-08-21 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
4710
4711         * src/mcs51/ralloc.c (packRegsForOneuse): fixed bug #1012650 and some
4712         related problems
4713
4714 2004-08-21 Bernhard Held <bernhard AT bernhardheld.de>
4715
4716         * sim/ucsim/cmd.src/Makefile.in: run lex only if $(PRJDIR)/devel exists
4717
4718 2004-08-18 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
4719
4720         * src/z80/ralloc.c (packRegsForAssign): ported some bug fixes from the
4721         mcs51 port
4722
4723 2004-08-16 Slade Rich <slade_rich AT users.sourceforge.net>
4724
4725         * src/pic/gen.c: Restored fn genRet as previous fix was incorrect.
4726
4727 2004-08-14 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
4728
4729         * src/mcs51/gen.c (genJumpTab): jumptables for more than 16 switch
4730         cases use more compact code.
4731
4732 2004-08-13 Slade Rich <slade_rich AT users.sourceforge.net>
4733
4734         * src/pic/gen.c: Fixed problem with fn returning a variable bigger than a char.
4735
4736 2004-08-12 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
4737
4738         * src/SDCClrange.c (findPrevUse): fixed bug #1007371
4739
4740 2004-08-12 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
4741
4742         * src/SDCCsymt.h,
4743         * src/SDCCsymt.c (changePointer, checkDecl, addSymChain): changed
4744         parameter of changePointer() from symbol* to sym_link*
4745         * src/SDCCast.c (decorateType): call changePointer() for CAST op
4746         * src/SDCCsymt.c (compareType): void* type is castable to other
4747         pointers, but not necesarily an exact match.
4748         * src/SDCCicode.c (geniCodeCast): allow void* casting here since it
4749         is no longer blindly treated as an exact match.
4750         * src/SDCCval.c (valCastLiteral): treat missing type as cast to void
4751
4752 2004-08-12 Slade Rich <slade_rich AT users.sourceforge.net>
4753
4754         * src/pic/glue.c: Added struct initialisation fn printIvalStruct.
4755
4756 2004-08-11 Slade Rich <slade_rich AT users.sourceforge.net>
4757
4758         * src/pic/gen.c,
4759         * src/pic/pcode.c,
4760         * src/pic/ralloc.h,
4761         * src/pic/ralloc.c: Printing rIdx on internal verbose debug.
4762
4763 2004-08-10 Slade Rich <slade_rich AT users.sourceforge.net>
4764
4765         * src/pic/device.c,
4766         * src/pic/device.h,
4767         * src/pic/device.c: Will no longer exit if #pragma maxram has not been defined.
4768
4769 2004-08-06 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
4770
4771         * src/mcs51/gen.c (emitcode): fixed bug #992819
4772
4773 2004-08-05 Maarten Brock <sourceforge.brock AT dse.nl>
4774
4775         * src/pic/ralloc.c (deassignLR): allthough pic port is buggy already,
4776           there's no need to make it worse
4777
4778 2004-08-05 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
4779
4780         * src/mcs51/ralloc.c (deassignLR),
4781         * src/ds390/ralloc.c (deassignLR),
4782         * src/hc08/ralloc.c (deassignLR),
4783         * src/z80/ralloc.c (deassignLR),
4784         * src/pic/ralloc.c (deassignLR),
4785         * src/pic16/ralloc.c (deassignLR),
4786         * src/avr/ralloc.c (deassignLR),
4787         * src/SDCClrange.c (findRecursiveSucc, findRecursivePred, findPrevUse,
4788         rlivePoint): fixed another part of bug #971834
4789
4790 2004-08-04 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
4791
4792         * src/z80/main.c: enabled "critical" keyword
4793         * src/z80/mappings.i,
4794         * src/z80/gen.c (genFunction, genEndFunction): support for interrupt
4795         functions (fixes bug #979646)
4796         * doc/sdccman.lyx: added a subsection explaining z80 interrupt support
4797
4798 2004-08-04 Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
4799
4800         * src/mcs51/gen.c (genInline): Add \n for labels, not DOS/WIN dirs
4801           such as c:\mydir.
4802
4803 2004-08-03 Maarten Brock <sourceforge.brock AT dse.nl>
4804
4805         * src/SDCCloop.c (loopInvariants): fixed bug 983545, hope this
4806           doesn't disable too much optimizations
4807
4808 2004-08-02 Slade Rich <slade_rich AT users.sourceforge.net>
4809
4810         * src/pic/glue.c Disabled "WARNING: function 'main' undefined" when -S option is used.
4811
4812 2004-08-02 Maarten Brock <sourceforge.brock AT dse.nl>
4813
4814         * src/SDCClrange.c (rlivePoint): fixed bug 988568, thanks to anonymous
4815
4816 2004-08-02 Slade Rich <slade_rich AT users.sourceforge.net>
4817
4818         * src/pic/gen.c tidied up tabs
4819         * src/pic/genarith.c tidied up tabs and fixed bug with literal multiple where same register was used for hi and low byte
4820         * src/pic/main.c tidied up tabs
4821         * src/pic/pcode.c tidied up tabs and disabled verbose code generation
4822         * src/pic/pcoderegs.c tidied up tabs
4823         * src/pic/ralloc.c tidied up tabs
4824
4825 2004-07-30 Vangelis Rokas <vrokas AT otenet.gr>
4826
4827         * src/SDCCmem.c (allocGlobal): don't turn S_REGISTER storage class
4828         to S_FIXED for pic16 port and when symbol is not in level 0,
4829         allocate for S_REGISTER storage class and pic16 port, too,
4830         * src/pic16/device.h: prototype for checkSym,
4831         * src/pic16/device.c (pic16_dump_access, checkSym): NEW,
4832         * (pic16_assignConfigWordValue): test the value and the mask to
4833         validate that the value is suitable for the configuration word,
4834         * src/pic16/glue.c (pic16_printIvalFuncPtr): use 'externs' to
4835         collect extern declared symbols, don't emit symbol twice, check
4836         first if symbol is in publics set first,
4837         * src/pic16/main.c (_pic16_keywords[]): added keyword 'register',
4838         * added command line '--fstack' which enables an experimental
4839         feature for stack access, too buggy to be used yet...
4840         * src/pic16/ralloc.c (pic16_accessregWithName): NEW,
4841         * (pic16_allocDirReg): when register has storage class S_REGISTER
4842         allocate in pic16_dynAccessRegs,
4843         * device/include/pic16/pic18f????.h: modified configuration word
4844         naming convention, words started as CONFIG0H but should be CONFIG1H
4845
4846 2004-07-29 Maarten Brock <sourceforge.brock AT dse.nl>
4847
4848         * device/include/mcs51reg.h: fixed bug 970993
4849
4850 2004-07-27 Maarten Brock <sourceforge.brock AT dse.nl>
4851
4852         * added lib/calloc.c, lib/free.c, lib/realloc.c, include/stddef.h
4853         * updated lib/malloc.c, lib/libsdcc.lib, lib/Makefile.in, include/malloc.h
4854         * src/SDCC.lex (doPragma): added pragma disable_warning <nnn>
4855         * src/SDCCmain.c (parseCmdLine): added option --disable-warning <nnn>
4856         * src/ds390/gen.c (genPlusIncr): fixed bug when incrementing generic pointers
4857         * support/Util/SDCCerr.c (vwerror): suppress disabled warnings and output
4858           error/warning numbers,
4859           added function setWarningDisabled()
4860         * support/Util/SDCCerr.h: added setWarningDisabled() and MAX_ERROR_WARNING
4861         * support/regression/ports/mcs51-stack-auto/spec.mk: added dependencies
4862           _memcmp.c _memmove.c calloc.c realloc.c free.c
4863         * support/regression/tests/malloc.c: added tests for new functionality
4864         * support/regression/tests/zeropad.c: added tests for truncated initializers
4865           and initialized char arrays starting with '\x0'
4866         * src/mcs51/peeph.def: fixed regression, added peephole 177.f
4867
4868 2004-07-26 Bernhard Held <bernhard AT bernhardheld.de>
4869
4870         * support/valdiag/tests/overflow.c: fixed warning on (1 >> 40)
4871
4872 2004-07-26 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
4873
4874         * doc/sdccman.lyx: updated example in section "Absolute Addressing"
4875         * src/mcs51/peeph.def: added contributed fix for "bug" #995347 as
4876         peephole 177.e. Thanks to anonymous
4877
4878 2004-07-25 Vangelis Rokas <vrokas AT otenet.gr>
4879
4880         * src/pic16/glue.c (pic16_printIvalFuncPtr): when an extern
4881         function isn't used in the source but referenced as a
4882         variable initializer then declare it as extern in .asm file
4883
4884 2004-07-24 Vangelis Rokas <vrokas AT otenet.gr>
4885
4886         * .version: increased version number to 2.4.3
4887
4888         Adding version extension according to ChangeLog CVS revision
4889         * src/Makefile.in (target all): added dependency 'version.h'
4890         * (rule version.h): added rule to create version.h from ChangeLog,
4891         * (rule dep): added dependency version.h,
4892         * src/version.awk: AWK script to create version.h
4893         * src/SDCCdwarf2.c (dwWriteModule),
4894         * src/SDCCglue.c (initialComments),
4895         * src/SDCCmain.c (printVersionInfo): modified to write after
4896         version string the version extension number,
4897         * src/SDCCutil.c: included "version.h"
4898         * (getBuildNumber): NEW, returns SDCC's ChangeLog minor revision
4899         number,
4900         * src/SDCCutil.h: added prototype for getBuildNumber
4901
4902         * src/SDCCmain.c (parseCmdLine): when sOpt is 'I' add rest in
4903         includeDirsSet, too,
4904         * src/SDCCsymt.c (checkSClass): don't emit error when a variable,
4905         const char [] is found in function prototype...
4906
4907         * src/pic16/genarith.c (pic16_genUMult8XLit_8): optimization to omit
4908         moving to WREG with source is already in WREG,
4909         * src/pic16/gen.h: added AOP_FSR0 and AOP_FSR2 in enum,
4910         * src/pic16/gen.c (getFreePtr): updated to look for FSR0 and FSR2,
4911         * (aopForSym): stack'ed symbols are partially supported, added
4912         if-clause to support symbols in FARSPACE,
4913         * (sameRegs): added test for AOP_ACC to see if registers are same,
4914         * (pic16_freeAsmop): added case for AOP_FSR0 and AOP_FSR2,
4915         * (pic16_aopGet): added case for AOP_FSR0 and AOP_FSR2,
4916         * (pic16_popRegFromString): will not allocate a new register if it
4917         doesn't find one by name, bug may have introduced...
4918         * (pic16_popGet): added case for AOP_FSR0 and AOP_FSR2,
4919         * (genIpush): revived to use pic16 port's stack,
4920         * (genAddrOf): added incomplete case for stack'ed operand,
4921         * (genCast): optimized a pair of MOVFW,MOVWF to MOVFF
4922         * src/pic16/genutils.c (pic16_genNot): almot new vesrion for NOT,
4923         can handle multibyte operands,
4924         * src/pic16/glue.c (pic16_printIval*): some debug info added,
4925         * (pic16initialComments): added message for MPLAB compatibility
4926         mode enabled,
4927         * src/pic16/main.h: prototype for pic16_mplab_comp,
4928         * src/pic16/main.c (pic16_optionsTable): new option --mplab-comp,
4929         which enabled MPLAB compatibility mode (i.e. no #LINE/#FILE, BANKED)
4930         * (_pic16_linkEdit): NEW, handles link stage, transferred here
4931         because of increased complexity of procedure,
4932         * (_process_pragma): stack pragma changed to format 'stack pos len',
4933         emit symbol '_stack_end' to conform with gplink,
4934         * src/pic16/pcode.c (pic16_newpCodeOpBit): using pic16_regWithName
4935         to search for register,
4936         * (pic16_get_op, pic16_get_op2): added case for PO_W, PO_WREG and
4937         PO_GPR_REGISTER,
4938         * (pic16_pCode2str): when in MPLAB compatibility mode, comment out
4939         #LINE directives and replace 'B' with 'BANKED' in instruction opcodes
4940         * (pic16_getRegFromInstruction, pic16_getRegFromInstruction2): added
4941         case for PO_GPR_REGISTER,
4942         * (pic16_AnalyzeBanking): removed the old message for inc2h.pl, past
4943         dies, the new era is ahead !...
4944         * src/pic16/ralloc.c: added hash reposits pic16_dynAllocRegNames and
4945         pic16_dynInternalRegs,
4946         * (pic16_allocregWithName, pic16_procregWithName, pic16_regWithname): NEW,
4947         * (pic16_allocDirReg): minor optimizations and bug fixes,
4948         * (pic16_allocWithIdx): when searching pic16_dynProcessorRegs use fixed,
4949
4950         * device/lib/pic16/startup/crt0*.c: extern definition of stack_end,
4951         load stack and frame pointer with address of 'stack_end' symbol
4952
4953 2004-07-23 Vangelis Rokas <vrokas AT otenet.gr>
4954
4955         * src/pic16/glue.c (pic16emitStaticSeg): fixed bug with files
4956         without source code but only variable initializers
4957
4958 2004-07-20 Vangelis Rokas <vrokas AT otenet.gr>
4959
4960         * src/pic16/glue.c (pic16emitRegularMap): unused functions marked as
4961         external are not declared as extern to reduce overhead while linking
4962
4963 2004-07-20 Maarten Brock <sourceforge.brock AT dse.nl>
4964
4965         * src/SDCCast.c (decorateType): removed buggy fix for bug #979599
4966
4967 2004-07-11 Maarten Brock <sourceforge.brock AT dse.nl>
4968
4969         * src/SDCCglue.c (printIvalArray): fixed bug #984229, thanks to Phuah
4970           Yee Keat for the patch
4971         * src/SDCCast.c (decorateType): fixed bug #979599
4972         * src/ds390/gen.h: removed local fReturnSizeDS390
4973         * src/ds390/gen.c: made fReturnSizeDS390 signed short to remove a warning
4974         * src/ds390/gen.c (genAnd, genOr, genXor),
4975         * src/mcs51/gen.c (genAnd, genOr, genXor): generate better optimized code
4976
4977 2004-07-04 Vangelis Rokas <vrokas AT otenet.gr>
4978
4979         * src/SDCCmain.c (linkEdit): modifications only for pic16 port,
4980         add relFilesSet to $3, manipulate $2 to handle linking of object
4981         files without source files in command line,
4982         * device/include/pic16 (all headers): added ID location macros,
4983         * src/pic16/device.c (struct PIC16_device Pics16[]): added field
4984         entries for ID location bytes,
4985         * (pic16_assignIdByteValue): NEW,
4986         * src/pic16/device.h: new structures idRegInfo_t and idBytesInfo_t,
4987         added field dumpcalltree to pic16_options_t,
4988         * src/pic16/gen.c (genCmp): fixed bug case so a temporary register
4989         is used instead of pic16_Gstack_base_addr, check if (ifx) before
4990         emitting rFalseIfx label after check_carry label,
4991         * src/pic16/glue.c (PIC16_IS_IDLOC_ADDRESS, PIC16_IS_HWREG_ADDRESS,
4992         pic16_emitDIRegs), NEW
4993         * (pic16glue): dump .calltree file when option --calltree found,
4994         * src/pic16/main.c (OPTION _pic16_optionsTable): new option --calltree
4995         * (_pic16_genAssemblerPreamble): emit ID locations after
4996         configuration registers,
4997         * (pic16_linkCmd): modifications of the link command,
4998         * src/pic16/pcode.c (pic16_pciMOVFF): PCC_REGISTER replaces PCC_REGISTER2
4999         * (pic16_pCodeInitRegisters): don't init stack registers,
5000         * (pic16_findPrevInstruction): fixed bug,
5001         * (pic16_getRegFromInstruction, pic16_getRegFromInstruction2): fixed
5002         bug with immediate registers,
5003         * (buildCallTree): traces stack push and pop,
5004         * (pct2): dump also stack usage for each function,
5005         * src/pic16/ralloc.c (dynrIdx): registers names start from 0x00
5006         * (pic16_allocDirReg): various modifications,
5007         * (pic16_typeRegWithIdx): when searching pic16_dynProcessorRegs set
5008         fixed to 1,
5009
5010 2004-07-02 Vangelis Rokas <vrokas AT otenet.gr>
5011
5012         * src/pic16/pcode.c: removed buggy double colon
5013
5014 2004-07-01 Borut Razem <borut.razem AT siol.net>
5015
5016         * support/scripts/sdcc.nsi: added include/pic16 to setup
5017
5018 2004-06-30 Vangelis Rokas <vrokas AT otenet.gr>
5019
5020         * device/lib/Makefile.in: fixed bug in target objects-pic16,
5021         * device/lib/pic16/Makefile: prefixed with dash (-) command under
5022         target 'clean',
5023         * doc/sdccman.lyx: changed version to 2.4.2 and added some port
5024         specific command line arguments. Also added sample lkr script
5025         for placing a variable at a specific memory bank.
5026         * src/pic16/device.c (pic16_dump_gsection): NEW, to dump variables
5027         at a specific memory bank,
5028         * (pic16_dump_isection): fixed bug which caused string literals to
5029         be omitted when dumping idata section,
5030         * (pic16_groupRegistersInSection): added code to handle registers
5031         in specific memory banks,
5032         * src/pic16/gen.c: labelOffset is prefixed with pic16_ and made
5033         public, all references are renamed too,
5034         * (pic16_aopGet): removed switch cases for AOP_R0,AOP_R1,AOP_DPTR,
5035         AOP_DPTR2,
5036         * (pic16_storeForReturn): added case to handle when dest is WREG,
5037         * src/pic16/genarith.c (pic16_pCodeOpSubType): NEW,
5038         * src/pic16/glue.c (pic16emitRegularMap): when adding a register in
5039         pic16_rel_udata, check to see if that register is marked as being
5040         a member of a specific memory bank,
5041         * (pic16_printIvalCharPtr): added code to add string literals either
5042         to code or the idata sections,
5043         * src/pic16/main.c (_process_pragma): added \n to WHITE constant,
5044         also accept the 'udata' pragma,
5045         * src/pic16/main.h: new structure types sectName and sectSym
5046         * src/pic16/pcode.c: added new pCodeInstruction entry for BANKSEL
5047         * (newpCodeOpBit): added PIC_OPTYPE subt in function prototype,
5048         * (pic16_findPrevInstruction): fixed, it returned nothing,
5049         * (insertBankSwitch): fixed to emit banksel/skip and skip/banksel
5050         instruction combinations,
5051         * (pic16_FixRegisterBanking): heavily reorganised,
5052         * (pic16_AnalyzeBanking): if generating banksel directives is
5053         disabled, then don't call FixRegisterBanking at all,
5054         * src/pic16/ralloc.c (bitEQUs, aliasEQUs, allDefsOutOfRange):
5055         completely removed,
5056         * (pic16_writeUsedRegisters): added call to pic16_dump_gsection
5057
5058 2004-06-29 Bernhard Held <bernhard AT bernhardheld.de>
5059
5060         * src/SDCCglue.c (printChar): fixed bug #973350, patch provided by
5061         Phuah Yee Keat <yk.phuah AT nestac.com>
5062
5063 2004-06-28 Vangelis Rokas <vrokas AT otenet.gr>
5064
5065         * src/pic16/glue.c (pic16createInterruptVect): function now emits
5066         correctly the IVT even if it is relocated to some other location
5067
5068 2004-06-28 Vangelis Rokas <vrokas AT otenet.gr>
5069
5070         * device/include/pic16/pic18fregs.h: added case for pic18f2220.h
5071         * device/include/pic16/pic18f2220.h: NEW,
5072         * device/lib/pic16/libdev/pic18f2220.c: NEW,
5073         * device/lib/pic16/libdev/Makefile: added 18f2220 in DEVS,
5074         * src/pic16/device.c (struct Pics16): added info for 18f2220,
5075         * src/pic16/device.h (struct pic16_options): added ivt_loc and
5076         nodefaultlibs, ivt_loc is the location of the interrupt vector
5077         table, and nodefaultlibs signs that default libraries should not be
5078         linked in link stage,
5079         * src/pic16/gen.c (genFunction): relocate interrupt vector functions
5080         according to --ivt-loc argument,
5081         * src/pic16/main.c (_process_pragma): emit '_stack' as public symbol
5082         when pragma stack is found,
5083
5084 2004-06-25 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
5085
5086         * src/mcs51/peeph.def: added peepholes 182.d (return 0.0),
5087         256 (range check), 257 (do while), 258.a-f (bit banging
5088         f.e. on 3-wire SPI bus)
5089
5090 2004-06-21 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
5091
5092         * src/SDCClrange.c (findNextUseSym): fixed a live range bug with
5093         variables used exclusively within a loop
5094
5095 2004-06-21 Bernhard Held <bernhard AT bernhardheld.de>
5096
5097         * src/mcs51/gen.c (genCpl): quick fix for bug #974835
5098
5099 2004-06-21 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
5100
5101         * src/SDCClrange.c (computeClash): fixed bug #971834
5102
5103 2004-06-20 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
5104
5105         * src/mcs51/gen.c (genCmp): fixed bug #975903
5106         * src/hc08/gen.c (operandsEqu),
5107         * src/ds390/gen.c (operandsEqu),
5108         * src/z80/gen.c (operandsEqu),
5109         * src/pic/gen.c (operandsEqu),
5110         * src/pic16/gen.c (operandsEqu),
5111         * src/mcs51/gen.c (operandsEqu): fixed bug #976283
5112         * src/SDCCmain.c (parseCmdLine): report --unknown-option only once
5113
5114 2004-06-15 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
5115
5116         * src/SDCCcse.c (cseBBlock): fixed bug #966963
5117
5118 2004-06-12 Vangelis Rokas <vrokas AT otenet.gr>
5119
5120         * src/pic16/gen.c (genPointerGet): added E_INTERNAL_ERROR for
5121         default case in switch statement,
5122         * glue.c (pic16_initPointer): expr is initialised via decoarteType
5123         to eliminate problem with initialisation of pointers, but problem
5124         still exists,
5125         * (pic16_pointerTypeToGPByte): removed, no needed for pic16,
5126         * (emitStaticSegment): removed various lines emitting debug info,
5127         * src/pic16/pcode.c, src/pic16/pcode.h, src/pic16/ralloc.h:
5128         added processor registers for utilizing EEPROM,
5129         * src/pic16/pcode.c (pic16_emitDB): number of DBs emitted is not
5130         configurable and set 8
5131
5132 2004-06-08 Vangelis Rokas <vrokas AT otenet.gr>
5133
5134         * .version: increased version number to 2.4.2,
5135
5136         Cumulative patch for pic16 port
5137         * src/pic16/device.c: changed scheme to dump initial values for
5138         variables in idata segment, all print_idata* functions were removed,
5139         now the pic16_printIval* will be called,
5140         * src/pic16/glue.c: (pic16_initPointer, pic16_pointerTypeToGPByte,
5141         * _pic16_printPointerType, pic16_printPointerType,
5142         * pic16_printGPointerType, pic16_printIvalArray, pic16_printIvalStruct,
5143         * pic16_printIvalBitFields, pic16_printIvalFuncPtr, pic16_printIvalPtr:
5144         NEW, similar to the respective functions in SDCCglue.c,
5145         * src/pic16/pcode.c (pic16_emitDB, pic16_flushDB): reverted to old
5146         way, emitting hex bytes,
5147         * (pic16_emitDS): NEW, emits a string for pointer initialisation,
5148
5149 2004-06-08 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
5150
5151         * src/avr/ralloc.c (serialRegAssign),
5152         * src/xa51/ralloc.c (serialRegAssign),
5153         * src/pic/ralloc.c (serialRegAssign),
5154         * src/pic16/ralloc.c (serialRegAssign),
5155         * src/hc08/ralloc.c (serialRegAssign),
5156         * src/z80/ralloc.c (serialRegAssign),
5157         * src/ds390/ralloc.c (serialRegAssign),
5158         * src/mcs51/ralloc.c (serialRegAssign): fixed bug #964479
5159
5160 2004-06-08 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
5161
5162         * src/SDCCicode.c (geniCodeJumpTable): fixed bug #967601
5163         * src/SDCCpeeph.c (labelIsReturnOnly): fixed bug #966505
5164
5165 2004-06-07 Vangelis Rokas <vrokas AT otenet.gr>
5166
5167         Cumulative patch for pic16 port:
5168         * src/pic16/device.h (typedef PIC16_device) modified fields for
5169         defining microcontrollers,
5170         * src/pic16/device.c: added new info for all devices in Pics16 array,
5171         * src/pic16/gen.c (genPcall): fixed bug that caused the return label
5172         to be optimised out by the pCode optimiser,
5173         * src/pic16/glue.c (pic16emitRegularMap): treat implicit aggragates
5174         specially, bug reported by G.M. Gallant,
5175         * src/pic16/pcode.c (pic16_newpCodeLabelFORCE): NEW, marks a label
5176         as force'd so that cannot be optimised out by pCode optimiser,
5177         * src/pic16/pcode.c,
5178         * src/pic16/pcodepeeph.c,
5179         * src/pic16/pcoderegs.c: many modifications to re-enable peepholes,
5180         they are disabled by default, but can be enabled explicit with
5181         command argument --denable-peeps, for testing,
5182         * device/lib/pic16/startup/Makefile: added --no-peep,--pomit-config-words,
5183         --pomit-ivt in COMPILE_FLAGS
5184
5185 2004-06-06 Maarten Brock <sourceforge.brock AT dse.nl>
5186
5187         * src/pic16/pcode.c (pic16_emitDB): removed double semicolon which fails
5188           compilation on MSVC
5189
5190 2004-06-06 Maarten Brock <sourceforge.brock AT dse.nl>
5191
5192         * device/include/sab80515.h: added sfr P6, changed GPL to LGPL
5193
5194 2004-06-06 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
5195
5196         device/include/sab80515.h: fixed bug #967492, DAPR is defined at adress
5197         0xd8, but the correct adress is 0xda. Thanks to anonymous for reporting
5198
5199 2004-06-06 Vangelis Rokas <vrokas AT otenet.gr>
5200
5201         * src/pic16/device.c (pic16_assignConfigWord): fixed bug that
5202         would only assign 0x300001 register.
5203
5204 2004-06-05 Vangelis Rokas <vrokas AT otenet.gr>
5205
5206         * device/lib/pic16/startup/Makefile: added $(MODELFLAGS)
5207         in COMPILE_FLAGS. Thanks to G. Gallant for report.
5208
5209 2004-06-05 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
5210
5211         * doc/sdccman.lyx: minor changes, mentioned beta vendor support
5212         for ds80c400
5213         * src/mcs51/peeph.def: ran unexpand -a over peeph.def
5214         * src/mcs51/peeph.def: removed obsolete peephole 100.a,
5215         added peephole 254 (left shift), 255 (jump table)
5216
5217 2004-06-04 Vangelis Rokas <vrokas AT otenet.gr>
5218
5219         * device/lib/Makefile.in: removed comment line with model-pic16,
5220         * (target port-specific-objects-pic16): the libraries and objects
5221         are copied to the build directory form the device/lib/pic16/bin
5222         directory
5223
5224         Cumulative patch concerning pic16 port:
5225         * library directory has been re-organized,
5226         * added support for PIC18F1220,
5227         * added headers and library sources for chips 18f1220,18f6520,
5228         18f6620,18f6680,18f6720,18f8520,18f8620,18f8680,18f8720
5229
5230         * configuration registers setting has changed, now each supported
5231         device has a complete description of the registers it uses,
5232         * all initialisations are moved to idata sections, these section
5233         can be absolute or relocatable,
5234         * fixed initialisation of codespace variables,
5235         * fixed warning about PCLATU and gpsim,
5236         * src/pic16/gen.c (genCmp): now can handle partially iCodes with no ifx,
5237         * (genAssign): use table reads when assigning from variables in codespace,
5238         * src/pic16/glue.c (pic16emitStaticSeg): fixed to correctly initialise
5239         char/int variables placed in codespace,
5240         * (pic16_emitConfigRegs): NEW, emits a list with configuration
5241         registers set in .asm file, no need for --pomit-config-words anymore,
5242         * (pic16glue): some 8051 legacy segments are commented out
5243         (to be removed completely),
5244         * added support for alternative assembler and linker with --asm=
5245         and --link= command line arguments,
5246         * peepholes are disabled automatically in the port, no need to
5247         specify on command line,
5248         * port supports natively char/int/long multiplication, but converts
5249         all divisions to support functions,
5250         * main.c: pic16_linkCmd and pic16_asmCmd changed to force output
5251         to the file set in variable $2,
5252         * pcode.c (pic16_emitDB, pic16_flushDB): modified to print printable
5253         strings in ASCII format and not in hex,
5254         * ralloc.c (serialRegAssign): added a triplet of conditional calls
5255         to pic16_allocDirReg for IC_RESULT, IC_LEFT and IC_RIGHT so to
5256         allocate proper register if iCodes aren't temporary,
5257
5258 2004-06-02 Maarten Brock <sourceforge.brock AT dse.nl>
5259
5260         * support/regression/tests/zeropad.c: added TEST_G macro for alpha
5261
5262 2004-06-02 Vangelis Rokas <vrokas AT otenet.gr>
5263
5264         * src/pic16/gen.c (genPcall): warning about gpsim and PCLATU
5265         is commented out
5266
5267 2004-06-01 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
5268
5269         * src/hc08/gen.c (genPointerGetSetOfs): disabled optimization if
5270         computed address is reused
5271         * src/hc08/gen.c (genPackBits): fixed offsets in assignments to
5272         multi-byte bitfields
5273
5274 2004-06-01 Maarten Brock <sourceforge.brock AT dse.nl>
5275
5276         * src/z80/gen.c: (genArrayInit): must check for pointers too
5277
5278 2004-06-01 Maarten Brock <sourceforge.brock AT dse.nl>
5279
5280         * support/regression/tests/zeropad.c: never meant to commit the
5281           nestedstruct test: removed, added check for GCC version
5282
5283 2004-05-31 Maarten Brock <sourceforge.brock AT dse.nl>
5284
5285         * src/SDCCast.c (createIvalArray): fixed bug 770487 SIGSEGV
5286         * src/SDCCglue.c (emitRegularMap): fixed bug 770484 allocation problem
5287         * src/SDCCglue.c (initPointer, printIvalType, printIvalStruct,
5288           printIvalArray, printIvalFuncPtr, printIvalPtr, printIval): fixed
5289           bugs 928906 and 954082 half-empty initializers
5290         * src/SDCCsymt.h,
5291         * src/SDCCsymt.c (getAllocSize): added for above fix
5292         * src/z80/gen.c (genArrayInit): fixed bug 741044
5293         * support/regression/tests/zeropad.c: added tests
5294
5295 2004-05-30 Vangelis Rokas <vrokas AT otenet.gr>
5296
5297         * src/pic16/device.c (pic16_dump_section): corrected bug which
5298         caused some symbols of the libraries to be misplaced
5299
5300 2004-05-28 Vangelis Rokas <vrokas AT otenet.gr>
5301
5302         * src/pic16/glue.c,
5303         * src/pic16/ralloc.h,
5304         * src/pic16/ralloc.cc: prefixed IS_CONFIG_ADDRESS with PIC16_
5305         to fix conflict with pic port
5306
5307 2004-05-28 Vangelis Rokas <vrokas AT otenet.gr>
5308
5309         * src/pic16/glue.c (pic16emitStaticSeg): do not print as publics or
5310         externs configuration variables,
5311         * src/pic16/ralloc.h,
5312         * src/pic16/ralloc.cc: IS_CONFIG_ADDRESS is made public and added
5313         prototype in header, commented out some debug messages
5314
5315 2004-05-26 Vangelis Rokas <vrokas AT otenet.gr>
5316
5317         * src/pic16/glue.c,
5318         * src/pic16/main.c,
5319         * src/pic16/pcode.c: added gpasm directives #FILE/#LINE
5320         for gpasm COFF object generation. Thanks to D. Hawkins for
5321         his patch info
5322
5323 2004-05-25 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
5324
5325         * src/ds390/main.c,
5326         * src/mcs51/main.c: fixed sort order of mnemonics (thanks to Maarten
5327         Brock for spotting this)
5328         * src/ds390/gen.c (genEndFunction),
5329         * src/mcs51/gen.c (genEndFunction): always save psw if function is an
5330         interrupt handler and critical. Disable push/pop optimizations when
5331         peephole optimizations disabled.
5332
5333 2004-05-25 Vangelis Rokas <vrokas AT otenet.gr>
5334
5335         Updated pic16 library sources and headers.
5336         * device/lib/pic16/pic18f*/ ,
5337         * device/include/pic16/*.h: modified to handle structured SFR
5338         definitions
5339
5340 2004-05-25 Vangelis Rokas <vrokas AT otenet.gr>
5341
5342         * src/port.h (PORT structure): added hook initPaths, now each
5343         port can declare its own default search paths,
5344         which can been seen with the --print-search-dirs option,
5345         see pic16 port for example,
5346         * src/SDCCmain.c (setBinPaths, setIncludePaths, setLibPath,
5347         setDataPaths): test to options.printSearchDirs is ifdef'ed out,
5348         * (doPrintSearchDirs): NEW, replaces in a central manner the
5349         printing of search dirs which was split in set*Paths functions,
5350         * (main): added call to port->initPaths and doPrintSearchDirs,
5351         * src/avr/main.c,
5352         * src/ds390/main.c,
5353         * src/hc08/main.c,
5354         * src/izt/i186.c,
5355         * src/izt/tlcs900h.c,
5356         * src/mcs51/main.c,
5357         * src/pic/main.c,
5358         * src/pic16/main.c: modified port structures to reflect addition of
5359         initPaths hook,
5360
5361         * src/pic16/device.c (regCompare): registers are finally sorted by name,
5362         * (pic16_dump_section): for registers in same address reserve memory once,
5363         * src/pic16/device.h (struct PIC16_device): changed variable gen_banksel
5364         to no_banksel,
5365         * src/pic16/genarith.c (pic16_genPlus): added code to handle cases where
5366         result is greater in size than right or left,
5367         * (pic16_genUMult8X8_8): there are some cases where the result can
5368         be 16 bits size, so handle these,
5369         * src/pic16/gen.c: changed some pic16_emitpcomment to DEBUGpic16_emitcode,
5370         * (pic16_outBitC): modified to emit pcodes,
5371         * (pic16_storeForReturn): using is_LitOp to see if operand is literal
5372         or not,
5373         * (genDivOneByte): implemented algorithm to divide 8-bits,
5374         * (genCmp): uncommented goto, but issues still exist,
5375         * (genAnd): fixed a bug with variables >8bits,
5376         * (genPackBits): optimization added that uses BCF/BSF to change a
5377         single bit,
5378         * (genAssign): fixed bug when assigning floating point literals,
5379         * src/pic16/glue.c (pic16glue): added assembler directive 'code' before
5380         __sdcc_gsinit_startup label,
5381         * src/pic16/main.c (_pic16_init): removed search directory
5382         initialisations,
5383         * (_pic16_initPaths): NEW, used to initialise search directories,
5384         * (_hasNativeMulFor): support functions for all except char/int
5385         multiplication, and char division,
5386         * (PIC16_port struct): modified entry for native mul support,
5387         * src/pic16/pcode.c (insertBankSwitch): modified to support the renamed
5388         no_banksel option,
5389         * (buildCallTree): call to register_usage is ifdef'ed out,
5390
5391 2004-05-22 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
5392
5393         * device/include/string.h: applied Stas Sergeev's patch to make this
5394         header file compatible with the preprocessor -Wundef option
5395         * src/SDCCmain.c (main): abort compilation if preprocessor reports
5396         failure (fixes bug #941458)
5397
5398 2004-05-21 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
5399
5400         * src/SDCCopt.c (killDeadCode): fixed bug #907733
5401         * support/Util/SDCCerr.c: reworded E_AUTO_ASSUMED diagnostic to clarify
5402         that the variable, not the function, should be static
5403         * src/SDCCval.c (valCastLiteral): fixed bit initialization from literal
5404         to be consistent with non-literal case
5405
5406 2004-05-19 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
5407
5408         * src/SDCCast.c (isConformingBody): fixed bug #949967
5409         * src/SDCCopt.c (cnvToFcall, cnvToFloatCast, cnvFromFloatCast,
5410         convilong): fixed bug #952086
5411
5412 2004-05-18 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
5413
5414         * src/SDCCmem.c (allocVariables): fixed bug #955321
5415
5416 2004-05-18 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
5417
5418         * src/hc08/main.c (_hc08_genAssemblerEnd),
5419         * src/SDCCdwarf2.c (dwOpenFile, dwCloseFile, dwWriteFunction,
5420         dwWriteModule, dwWriteCLine, dwWriteALine, dwarf2FinalizeFile):
5421         completely eliminated the use of a temporary file
5422         * src/SDCCdwarf2.c (dwWriteAttr): fixed bug with location list offset
5423         when more than one file linked
5424         * src/SDCCloop.c (pointerAssigned): fixed bug #954163
5425
5426 2004-05-17 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
5427
5428         * src/SDCCval.c (valForArray): applied Maarten Brock's patch #947682
5429         which fixes bug #543481
5430         * support/regression/tests/bug-751703.c: fixed comments left from a
5431         cut and paste error
5432         * src/SDCCdwarf2.c (dwCloseFile): don't explicitly close a temp file
5433         * src/SDCCdwarf2.c (dwTagFromType): added bitfield support
5434         * src/SDCCdwarf2.c (dwWriteSymbolInternal): handle extern within local
5435         scopes
5436         * src/SDCCdwarf2.c (dwWriteLineNumber): line number deltas are signed
5437         * src/SDCCmain.c (processFile, parseCmdLine): non-alphanumeric chars
5438         are now changed to underscores in moduleName
5439
5440 2004-05-15 Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
5441
5442         * as/mcs51/lkmem.c: better fix for bug #954173
5443
5444 2004-05-15 Maarten Brock <sourceforge.brock AT dse.nl>
5445         committed by Frieder Ferlemann <Frieder.Ferlemann AT web.de>
5446
5447         * device/include/c8051f020.h: newly added SiLabs (Cygnal) header file
5448         * device/include/c8051f000.h,
5449         * device/include/c8051f120.h,
5450         * device/include/c8051f300.h,
5451         * device/include/c8051f310.h,
5452         * device/include/c8051f320.h: updated (added _XPAGE, CAPN, CAPP,
5453         PWM16) and detab'ed
5454
5455 2004-05-15 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
5456
5457         * doc/sdccman.lyx: mentioned sourceforge's delay between web frontend
5458         and mailing lists, doc'ed --no-peep-comments, removed reference
5459         to knoppix (newest version has no LyX/LaTeX), other minor changes
5460         * src/SDCCglue.c (glue): save 2 bytes stack space with
5461         option --main-return. The ljmp could probably be avoided too
5462
5463 2004-05-14 Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
5464
5465         * as/mcs51/lkmem.c, as/mcs51/lkaomf51: fixed bug 954173
5466
5467 2004-05-14 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
5468
5469         * src/SDCCsymt.h: added IS_AUTO(symbol) test macro
5470         * src/SDCCopt.c (isLocalWithoutDef),
5471         * src/SDCCicode.c (operandFromSymbol): use the IS_AUTO test macro
5472         which adds a !IS_EXTERN codition. Fixes bugs #877426 and #751703.
5473         (credit to Maarten Brock for patch #949363, on which this is based)
5474         * support/regression/tests/bug-751703.c: some test cases of extern used
5475         within inner scopes.
5476
5477 2004-05-14 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
5478
5479         * src/SDCCdwarf2.c (dwMatchTypes): structs must have matching
5480         SPEC_STRUCT
5481         * src/SDCCdwarf2.c (dwTagFromType): fix to handle recursive
5482         struct definitions
5483         * src/SDCCdwarf2.c (dwWriteModule, dwNewDebugSymbol, dwWriteEndFunction,
5484         dwWriteLabel): fix to create valid debugger symbols even when
5485         the module name has non-alphanumeric symbols in it
5486         * src/SDCCdwarf2.c (dwWriteSymbolInternal): better detection for
5487         when a variable's allocation has been optimized away
5488
5489
5490 2004-05-13 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
5491
5492         * src/hc08/gen.c (hc08_emitDebuggerSymbol),
5493         * src/hc08/main.c,
5494         * src/mcs51/gen.c (mcs51_emitDebuggerSymbol),
5495         * src/mcs51/main.c,
5496         * src/ds390/gen.c (ds390_emitDebuggerSymbol),
5497         * src/ds390/main.c,
5498         * src/z80/gen.c (z80_emitDebuggerSymbol),
5499         * src/z80/main.c,
5500         * src/pic/gen.c (pic14_emitDebuggerSymbol),
5501         * src/pic/main.c,
5502         * src/pic16/gen.c (pic14_emitDebuggerSymbol),
5503         * src/pic16/main.c,
5504         * src/avr/gen.c (avr_emitDebuggerSymbol),
5505         * src/avr/main.c,
5506         * src/xa51/gen.c (xa51_emitDebuggerSymbol),
5507         * src/xa51/main.c,
5508         * src/SDCCdebug.c (emitDebuggerSymbol),
5509         * src/SDCCdebug.h,
5510         * src/port.h: added a debugger struct to the port struct. Added a
5511         callback for defining debugger symbols
5512
5513         * src/SDCCast.c (createLabel),
5514         * src/SDCC.y (labeled_statement): mark all compiler generated labels
5515         with isitmp = 1
5516         * src/SDCCicode.h,
5517         * src/SDCCicode.c (geniCodeFunctionBody): added a link from the FUNCTION
5518         iCode back to the ast for the function
5519
5520         * src/hc08/ralloc.c (hc08_assignRegisters),
5521         * src/hc08/ralloc.h: define a regs struct for the stack pointer. Removed
5522         unneeded fields from the regs struct.
5523         * src/hc08/gen.c (transferRegReg, genFunction, genEndFunction): use the
5524         pushReg() & pullReg() functions instead of emitcode()
5525
5526         * src/hc08/gen.c (genLabel, genhc08Code),
5527         * src/SDCCdebug.h: Added additional debugger hooks needed for DWARF
5528
5529         * src/cdbFile.c (cdbWriteLabel, cdbWriteScope): Added stubs for unneeded
5530         debugger hooks
5531
5532         * src/hc08/gen.c (genEndFunction, genhc08Code),
5533         * src/hc08/gen.h,
5534         * src/mcs51/gen.c (genEndFunction, gen51Code),
5535         * src/mcs51/gen.h,
5536         * src/ds390/gen.c (genEndFunction, gen390Code),
5537         * src/ds390/gen.h,
5538         * src/z80/gen.c (genEndFunction, genZ80Code),
5539         * src/z80/gen.h,
5540         * src/z80/z80.h,
5541         * src/pic/gen.c (genEndFunction, genpic14Code),
5542         * src/pic/gen.h,
5543         * src/pic16/gen.c (genEndFunction, genpic16Code),
5544         * src/pic16/gen.h,
5545         * src/avr/gen.c (genEndFunction, genAVRCode),
5546         * src/avr/gen.h,
5547         * src/xa51/gen.c (genEndFunction, genXA51Code),
5548         * src/xa51/gen.h,
5549         * src/cdbFile.c (cdbWriteFunction, cdbWriteEndFunction): moved cdb
5550         specific code to cdbFile.c and out of the backend code generators
5551
5552         * as/hc08/lkmain.c (main): removed OMF51 support from link-hc08
5553         * as/hc08/lkarea.c (lnkarea): areas with NOLOAD attribute default
5554         starting address is now 0
5555
5556         * as/hc08/asm.h,
5557         * as/hc08/m08pst.c,
5558         * as/hc08/asmain.c (asmbl): implemented the .sleb128 and .uleb128
5559         assembler directive for DWARF support
5560         * as/hc08/lkelf.c (elf): only increment address when rtflg[] set
5561
5562         * src/src.dsp,
5563         * src/Makefile.in,
5564         * src/SDCCdwarf2.c: preliminary DWARF (ver 2) debugger data generator
5565
5566 2004-05-04 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
5567
5568         * src/hc08/gen.c (genJumpTab, emitcode, genhc08code): fixed stack error
5569         and inappropriate peephole optimization in jump tables
5570
5571 2004-04-30 Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
5572
5573         * as/hc08/m08pst.c,
5574         * src/SDCCglue.c: sdccopt works for the hc08 port now
5575
5576 2004-04-27 Bernhard Held <bernhard AT bernhardheld.de>
5577
5578         * src/SDCCicode.c (geniCodePreInc, geniCodePreDec): fixed bug #942130
5579
5580 2004-04-27 Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
5581
5582         * as/hc08/lkelf.c: sdccconf.h is not available in WIN32
5583
5584 2004-04-24 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
5585
5586         * src/SDCCpeeph.c (replaceRule): support empty replacement peephole
5587         rules
5588         * src/SDCCmain.c,
5589         * src/SDCCglobl.h,
5590         * src/SDCCpeeph.c (getPeepLine): new option --no-peep-comments omits
5591         comments from the peephole optimizer replacement rules
5592         * src/SDCCmem.c (printAllocInfoSeg): give actual location of spilled
5593         symbols
5594         * src/SDCCcse.c (updateSpillLocation),
5595         * src/SDCCopt.c (killDeadCode, findReqv): better tracking of register
5596         equivalents
5597         * src/hc08/ralloc.c (regTypeNum): pseudo symbols must be in DATA only
5598         * src/hc08/main.c (_hc08_finaliseOptions): made pointers to stack
5599         objects far pointers
5600
5601 2004-04-23 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
5602
5603         * src/SDCCsymt.h: a missing part of my last change
5604         * src/pic/ralloc.c (regTypeNum),
5605         * src/pic16/ralloc.c (regTypeNum): fixed statement/declaration order
5606
5607 2004-04-23 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
5608
5609         * src/SDCCicode.h,
5610         * src/SDCCicode.c (aggrToPtrDclType),
5611         * src/SDCCptropt.h,
5612         * src/SDCCptropt.c (ptrBaseRematSym, ptrPseudoSymSafe,
5613         ptrPseudoSymConvert),
5614         * src/pic/ralloc.c (regTypeNum),
5615         * src/pic16/ralloc.c (regTypeNum),
5616         * src/hc08/ralloc.c (regTypeNum),
5617         * src/ds390/ralloc.c (regTypeNum),
5618         * src/mcs51/ralloc.c (regTypeNum): check for dependancy hazards before
5619         creating pseudo symbols (fixed bugs #777768, #930484, and #933966)
5620
5621 2004-04-22 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
5622
5623         * link/z80/lkmain.c (afile),
5624         * as/hc08/lkmain.c (afile),
5625         * as/mcs51/lkmain.c (afile): fix suggested by Maarten Brock to
5626         prevent a pointer problem when a filename has no directory and
5627         no extension specified.
5628
5629 2004-04-21 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
5630
5631         * link/z80/lkmain.c (afile): allow periods in directory names
5632         * link/z80/lkmain.c (afile),
5633         * as/mcs51/lkmain.c (afile),
5634         * as/hc08/lkmain.c (afile): allow linker script file to have an
5635         extension other than ".lnk"
5636         * link/z80/lklex.c (getfid),
5637         * link/z80/lkmain.c (parse),
5638         * as/mcs51/lklex.c (getfid),
5639         * as/mcs51/lkmain.c (parse),
5640         * as/hc08/lklex.c (getfid),
5641         * as/hc08/lkmain.c (parse): Support comments in the linker script
5642         file on lines by themselves and after filenames
5643
5644 2004-04-20 Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
5645
5646         * as/link_hc08.dsp: Added as/hc08/lkelf.c to project.
5647
5648 2004-04-20 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
5649
5650         * src/z80/peeph-z80.def: removed some peephole rules that don't
5651         work with multibyte arithmetic (fixed bug #937126)
5652         * src/mcs51/peeph.def: fixed peephole rules 150-158 to apply only
5653         to registers and not global variables
5654         * src/SDCCicode.c (geniCodeAssign, ast2iCode, geniCodePostInc,
5655         geniCodePreInc, geniCodePostDec, geniCodePreDec,
5656         geniCodeLogicAndOr, geniCodeConditional): enforce strict lvalue
5657         checking for assignments not internally generated (fixed bug #931895)
5658         * src/SDCC.y (postfix_expr): ignore typedefs when looking for a
5659         structure member (fixed bug #930072)
5660
5661 2004-04-19 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
5662
5663         * src/SDCCmain.c (linkEdit),
5664         * src/hc08/main.c (_hc08_parseOptions),
5665         * as/hc08/Makefile.in,
5666         * as/hc08/aslink.h,
5667         * as/hc08/asm.h,
5668         * as/hc08/m08pst.c,
5669         * as/hc08/lkrloc.c (relr, rele),
5670         * as/hc08/lkarea.c (lnkarea)
5671         * as/hc08/lkmain.c (afile, parse),
5672         * as/hc08/lkelf.c: support for ELF output
5673         * as/hc08/lks19.c (s19),
5674         * as/hc08/lkihx.c (ihx): ignore areas with the NOLOAD attribute
5675
5676 2004-04-17 Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
5677
5678         * as/mcs51/lkihx.c: Fixed bug #899105.
5679
5680 2004-04-16 Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
5681
5682         * doc/sdccman.lyx: Added instructons on how to convert MSVC .dsw and
5683         .dsp files from Unix to DOS.
5684
5685 2004-04-16 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
5686
5687         * doc/sdccman.lyx: removed the ANSI-C noncompliance note regarding
5688         function pointers; we have been compliant for several months now.
5689         * src/mcs51/ralloc.c (serialRegAssign): enabled part of my 2004-04-13
5690         change that was accidently commented out
5691         * src/mcs51/gen.c (freeAsmop, getFreePtr, freeForBranchAsmop, genIfxJump,
5692         genCmpEq, jmpTrueOrFalse, genCmp, genAnd, genOr, genXor, genIfx): fixed
5693         bug #922319
5694
5695 2004-04-15 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
5696
5697         * src/hc08/gen.c: output of all of the internal debugging information
5698         is now controlled by the D() macro; it is disabled by default
5699
5700 2004-04-13 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
5701
5702         * src/mcs51/ralloc.c (serialRegAssign, fillGaps, allocThisReg): try
5703         harder to keep the same registers during a CAST iCode
5704         * src/SDCCopt.c (optimizeCastCast, eBBlockFromiCode): casts of char to
5705         long via int can be done in a single cast, if the signedness is
5706         correct.
5707         * support/regression/tests/bug-927659.c: fixed to avoid conflict with
5708         putchar() in tinibios.c in ds390's library
5709
5710 2004-04-12 Bernhard Held <bernhard AT bernhardheld.de>
5711
5712         * src/SDCCast.c (decorateType): fixed bug #898889,
5713         cast result of a literal complement too
5714         * src/mcs51/ralloc.c (packRegsForAssign): fixed bug #930931,
5715         fixed check for bitfields
5716
5717 2004-04-11 Bernhard Held <bernhard AT bernhardheld.de>
5718
5719         * src/SDCCicode.c (geniCodeLogic): made it static,
5720         (geniCodeLogicAndOr): added in order to fix bug #905492,
5721         (ast2iCode): fixed bug #905492
5722         * support/regression/tests/bug-905492.c: added
5723         * src/SDCCast.c (decorateType): don't decorate/process parms twice,
5724         (processParms): fixed bug #927659: don't copy parms, this will clear
5725         decorated flag
5726         * support/regression/tests/bug-927659.c: added
5727
5728 2004-03-29 Bernhard Held <bernhard AT bernhardheld.de>
5729
5730         * src/SDCCast.c (addCast): don't cast float to char
5731         * device/lib/libsdcc.lib: added _memmove
5732
5733 2004-03-28 Bernhard Held <bernhard AT bernhardheld.de>
5734
5735         * device/lib/large/Makefile: fixed parallel execution by
5736         replacing `make` by `$(MAKE)`
5737
5738 2004-03-28 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
5739
5740         * src/hc08/gen.c (genPointerGetSetOfs): correctly handle 1 byte array
5741         offsets (fixes bug #923936)
5742
5743 2004-03-26 Bernhard Held <bernhard AT bernhardheld.de>
5744
5745         * device/lib/small/Makefile: fixed parallel execution by
5746         replacing `make` by `$(MAKE)`
5747
5748 2004-03-23 Bernhard Held <bernhard AT bernhardheld.de>
5749
5750         * device/lib/vprintf.c (vsprintf): minor optimization, see bug #801101
5751
5752 2004-03-23  Scott Dattalo  <scott AT dattalo.com>
5753
5754         * src/pic/gen.c (genCpl): multi-byte complements were not working.
5755         * src/regression/Makefile: Regression test was not running.
5756
5757 2004-03-23 Bernhard Held <bernhard AT bernhardheld.de>
5758
5759         * src/SDCCast.c (resultTypePropagate, decorateType): avoid promotion to int for
5760         complement if possible
5761         * src/SDCCval.c (valComplement),
5762         * src/SDCCicode.c (operandOperation): fixed complement of literal
5763         * support/regression/tests/onebyte.c (testComplement): added
5764
5765 2004-03-22 Bernhard Held <bernhard AT bernhardheld.de>
5766
5767         * src/SDCCast.c (processParms): fixed bug #920866; decorateType() can
5768         return an optimized tree; actually replace actParm with the new tree
5769         * src/SDCCast.h: added some parantheses to remove side effects
5770         * support/regression/tests/bug-920866.c
5771
5772 2004-03-21  Scott Dattalo  <scott AT dattalo.com>
5773         * src/pic/gen.c, src/pic/gen.h, src/pic/genarith.c, src/pic/pcode.c:
5774         Bit operands were not being handled properly in the pic14 port.
5775         (now src/regression/add.c passes again).
5776
5777 2004-03-20 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
5778
5779         * src/SDCC.y (labeled_statement): case and default no longer require
5780         a following statement (RFE #893037)
5781
5782 2004-03-19 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
5783
5784         * src/mcs51/gen.c (pushSide, genSignedRightShift, genDjnz, geniPush):
5785         use MOVA macro to avoid "mov a,acc" when peephole optimizer is
5786         disabled (fixes bug #916294)
5787         * sim/ucsim/s51.src/mov.cc (inst_mov_a_addr): Throw an error on
5788         "mov a,acc"; patch provided by Lenny Story
5789         * device/include/mc68hc908gp32.h: header contibuted by Juan Gonzalez
5790
5791 2004-03-19 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
5792
5793         * src/mcs51/gen.c (genFunction): optimize RECEIVE in reentrant
5794         functions
5795         * src/ds390/gen.c (genFunction, genEndFunction),
5796         * src/ds390/ralloc.c (ds390_assignRegisters),
5797         * src/mcs51/gen.c (genFunction, genEndFunction, mcs51_assignRegisters):
5798         * src/mcs51/ralloc.c (mcs51_assignRegisters): Skip optimizing registers
5799         pushed if there are parameters passed on the stack. Also, a cleaner
5800         way to decide if r0/r1 should be pushed/popped. (Together they fix
5801         bug #918693)
5802
5803 2004-03-18 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
5804
5805         * doc/sdccman.lyx,
5806         * device/lib/mcs51/crtpagesfr.asm,
5807         * device/lib/mcs51/crtxinit.asm,
5808         * device/lib/mcs51/crtxstack.asm: Changed name of _PAGESFR to _XPAGE
5809         to avoid confusion with Si Lab's SFRPAGE register.
5810
5811 2004-03-17 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
5812
5813         * src/SDCCglue.c (emitMaps): allow public sfr variables
5814         * src/SDCCglue.c (initialComments): include compiler build date
5815         with compiler version and put the timestamp of the generated
5816         assembly file on a serperate line to be less confusing.
5817         * src/port.h: added genInitStartup hook
5818         * src/avr/main.c,
5819         * src/ds390/main.c,
5820         * src/hc08/main.c,
5821         * src/pic/main.c,
5822         * src/pic16/main.c,
5823         * src/xa51/main.c,
5824         * src/z80/main.c: genInitStartup initialize as NULL (default to
5825         historical behaviour)
5826         * src/SDCCglue.c (glue): _sdcc_gsinit_startup is now port specific.
5827         * src/mcs51/main.c: (_mcs51_genInitStartup, _mcs51_genExtraAreas,
5828         _mcs51_genXINIT, _mcs51_genRAMCLEAR): link initialization code from the
5829         library instead of hard coding it into the compiler.
5830         * support/regression/ports/mcs51-stack-auto/spec.mk,
5831         * src/SDCCmain.c (linkEdit): added mcs51.lib to the link libraries
5832         * device/lib/mcs51/Makefile,
5833         * device/lib/small/Makefile,
5834         * device/lib/large/Makefile,
5835         * device/lib/mcs51/crtpagesfr.asm,
5836         * device/lib/mcs51/crtstart.asm,
5837         * device/lib/mcs51/crtxclear.asm,
5838         * device/lib/mcs51/crtxinit.asm,
5839         * device/lib/mcs51/crtclear.asm,
5840         * device/lib/mcs51/crtxstack.asm: move most of the mcs51 C runtime
5841         startup/initialization out of src/SDCCglue.c and src/mcs51/main.c
5842         and into user configurable files.
5843         * device/lib/clean.mk: clean mcs51 directory too
5844         * support/regression/tests/longlit.c: added static to T1 declaration
5845         * doc/sdccman.lyx: documented _PAGESFR sfr for customizing pdata
5846         accesses in the initialization code
5847
5848 2004-03-14 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
5849
5850         * device/include/mc68hc908qy.h: corrected declarations of FLBPR and
5851         OSCTRIMVAL as noted in bug #916008
5852
5853 2004-03-14 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
5854
5855         * src/SDCCloop.c (basicInduction): fixed bug with loop induction
5856         in loops with multiple exits (reported as incorrect registers
5857         used by Martin Helmling in Sdcc-user list)
5858
5859 2004-03-12 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
5860
5861         * src/ds390/main.c (_ds390_genAssemblerPreamble): cosmetic change,
5862         made ds390 register extensions look less like error messages
5863
5864 2004-03-12 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
5865
5866         * src/SDCCglue.c (printIvalPtr): fixed bug with pointer initializer
5867         reported by Adam Wozniak in Sdcc-user list
5868
5869 2004-03-10 Bernhard Held <bernhard AT bernhardheld.de>
5870
5871         * src/SDCCast.c (decorateType): fixed with bug and promotion in
5872         arithmetic optimizations, added debug output
5873
5874 2004-03-09 Bernhard Held <bernhard AT bernhardheld.de>
5875
5876         * device/lib/time.c (mktime): fixed bug reported by Bert Thomas
5877         * sdcc.spec: updated and split sdcc into 3 rpms
5878         * src/SDCCast.c (decorateType): &|^ don't need addCast(); addCast() is
5879         needed for literals of LEFT_OP and '+'
5880         * src/SDCCicode.c (geniCodeLogic): I must have been braindead when I
5881         introduced RESULT_TYPE_NOPROM
5882         (geniCodeMultiply): fixed logic for decision if mul is optimized to
5883         left shift
5884         * src/SDCCsymt.c (computeType): op is int; added RESULT_TYPE_OTHER;
5885         limited promotion to int only for '*'
5886         * src/SDCCsymt.h (computeType): op is int, removed RESULT_TYPE_NOPROM
5887
5888 2004-03-09 Hans Dorn <hjdorn AT users.sourceforge.net>
5889
5890         * src/pic16/gen.c (genSkip),
5891         (genc16bit2lit), (gencjneshort): commented out
5892         (is_LitOp): new helper function, checks operand type
5893         (genCmpEq): rewritten
5894
5895 2004-03-08 Bernhard Held <bernhard AT bernhardheld.de>
5896
5897         * support/regression/tests/bug-908454.c: added
5898
5899 2004-03-07 Bernhard Held <bernhard AT bernhardheld.de>
5900
5901         * src/SDCCast.c (addCast): fixed bug #908454 by promoting bits to char
5902         * src/SDCCicode.c (usualBinaryConversions): op needs int type
5903         (geniCodeCast): cosmetic, don't preserve bit storage class
5904         (geniCodeLeftShift): added promotion
5905         (geniCodeLogic): fixed regression
5906         * src/SDCCsymt.c (computeTypeOr): accept bits too
5907         (compareType): 2nd part of fix for bug #908454, needed for bitfields
5908
5909 2004-03-07  Borut Razem <borut.razem AT siol.net>
5910
5911         * support/Util/findme.c: alloca() replaced with malloc()/free() pair
5912
5913 2004-03-06 Vangelis Rokas <vrokas AT otenet.gr>
5914
5915         * src/pic16/ralloc.c (pic16_genPackRegisters): reverted to old
5916         version of pic16_genPackRegisters which does not check if ic is a
5917         CAST operator,
5918         * src/pic16/gen.c (ifxForOp): disabled new and untested code in
5919         function cause string1.c regression test fails
5920
5921 2004-03-06 Bernhard Held <bernhard AT bernhardheld.de>
5922
5923         * sim/ucsim/configure.in,
5924         * sim/ucsim/configure,
5925         * sim/ucsim/doc/Makefile.in: use docdir
5926         * src/SDCC.y: fixed sbit atrributes
5927         * src/SDCCast.c (getResultTypeFromType): added support for bitfields
5928         * src/SDCCast.c (decorateType): |^& need special promotion handling
5929         * src/SDCCast.h,
5930         * src/SDCCsymt.h: moved definition of RESULT_TYPE
5931         * src/SDCCsymt.h (computeType),
5932         * src/SDCCicode.c: computeType() needs op
5933         * src/SDCCsymt.c (checkTypeSanity),
5934         * doc/sddman.lyx: "plain" bitfields are unsigned
5935         * src/SDCCsymt.c (computeTypeOr): added
5936         * src/SDCCsymt.c (computeType): added support for bitfields, fixed
5937         |^& ops
5938         * src/SDCCval.c (val*): computeType() needs op
5939         * src/SDCCval.c (valCastLiteral): fixed casting of bitfields
5940         * support/regression/tests/onebyte.c: added tests for |^&
5941
5942 2004-03-06 Hans Dorn <hjdorn AT users.sourceforge.net>
5943
5944         * src/pic16/gen.c: (genpic16Code) use copy of printILine's output
5945         for writing icode into asm output.
5946
5947 2004-03-05 Vangelis Rokas <vrokas AT otenet.gr>
5948
5949         * src/pic16/device.c: added some debug lines enabled
5950         with macro DEBUG_CHECK,
5951         * src/pic16/genarith.c: more debug in genPlus,
5952         * (pic16_genUMult8XLit_16, pic16_genUMult8X8_16): removed,
5953         * (pic16_genUMult16X16_16, pic16_genUMult16XLit_16): NEW,
5954         * src/pic16/gen.c: added prototypes for pic16_genMult16X16_16,
5955         * (aopForSym): onStack symbols are re-placed in data memspace,
5956         and onStack flag is cleared,
5957         * (pic16_popGetTempReg, pic16_popReleaseTempReg): modified to
5958         copy temporary pcodeop,
5959         * (genPcall): added warning for not updating PCLATU,
5960         * (genFunction): removed test with IFFUNC_CALLEESAVES, its
5961         always true for pic16 port,
5962         * (genMultOneWord): NEW, supports integer multiplication,
5963         * (genMult): modified to call genMultOneWord,
5964         * (ifxForOp): added warning when return NULL,
5965         * src/pic16/glue.c (pic16emitRegularMap): symbol implicit
5966         flag is set before call to operandFromSymbol for implicit
5967         added structures,
5968         * src/pic16/main.c (_pic16_finaliseOptions): options.float_rent,
5969         options.intlong_rent are set by default,
5970         * (_hasNativeMulFor): modified to allow port generation of integer
5971         multiplication,
5972         * src/pic16/ralloc.c (pic16_allocDirReg): commented out line which
5973         set regtype to REG_SFR for all registers, restricting seting the
5974         accessBank flag for registers 0<= r < 0x80 and 0xf80<=r<=0xfff,
5975
5976 2004-03-05 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
5977
5978         * src/mcs51/peephole.def: added 251.b and 253.x. 253.x are applied
5979         more than 500 times in the regression tests
5980
5981 2004-03-05 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
5982
5983         * support/Util/SDCCerr.h,
5984         * support/Util/SDCCerr.c,
5985         * src/SDCC.y (struct_or_union_specifier, enum_specifier,
5986         enumerator_list),
5987         * src/SDCCsymt.c (addSymChain): show location of oriignal definition
5988         for symbol conflicts.
5989         * support/valdiags/tests/enum.c,
5990         * support/valdiags/tests/tentdecl.c,
5991         * support/valdiags/tests/struct.c: expect possible error messages
5992         referring to original symbol definitions.
5993         * src/SDCC.y (struct_or_union_specifier, struct_declarator),
5994         * src/SDCCsymt.h,
5995         * src/SDCCsymt.c (promoteAnonStructs): support anonymous struct/union
5996
5997 2004-03-03 Hans Dorn <hjdorn AT users.sourceforge.net>
5998
5999         * src/pic16/gen.c (gencjne): fixed for right=REG / left=LIT
6000
6001 2004-02-03 Vangelis Rokas <vrokas AT otenet.gr>
6002
6003         * src/pic16/ralloc.c (newReg): fixed bug #908929
6004
6005 2004-03-02 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
6006
6007         * src/ds390/gen.c: added missing #include "main.h"
6008
6009 2004-03-02 Vangelis Rokas <vrokas AT otenet.gr>
6010
6011         * src/pic16/device.c (checkAddSym): NEW, adds a symbol to set while
6012         checking if symbol is already in set,
6013         * src/pic16/device.h: prototype for checkAddSym,
6014         * src/pic16/gen.c: (_G): added entry interruptvector,
6015         * (assignResultValue): removed some commented out lines,
6016         * (genFunction): check for ISR via sym->type, absolute section for
6017         interrupt code is created via a new pBlock, the goto instruction is
6018         placed now correctly at the interrupt vector position, changed all
6019         references from ivec to _G.interruptvector,
6020         * WREG,STATUS,BSR are not saved in stack upon an entry to interrupt
6021         is the interrupt is a high priority one, same for return from ISR,
6022         * src/pic16/glue.c: changed all calls of addSetHead for publics and
6023         externs to calls of checkAddSym,
6024         * src/pic16/pcode.c (pic16_pBlockConvert2*): emit warning when
6025         pic16_pcode_verbose flag is set,
6026         * src/pic16/pcode.h: extern to pic16_pcode_verbose,
6027         * src/pic16/pcoderegs.c: message about how many registers are saved
6028         will only be emitted if pic16_pcode_verbose flag is set,
6029
6030 2004-03-02 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
6031
6032         * src/ds390/ralloc.h,
6033         * src/ds390/ralloc.c (ds390_regWithIdx),
6034         * src/ds390/gen.c (emitcode),
6035         * src/ds390/main.h,
6036         * src/ds390/main.c (instructionSize, ds390newAsmLineNode, updateOpRW,
6037         ds390opcodeCompare, asmLineNodeFromLineNode, getInstructionSize,
6038         ds390operandCompare, getRegsRead, getRegsWritten,
6039         initializeAsmLineNode): customized instruction size calculation for
6040         ds390, started basis for some register optimizations
6041         * src/ds390/gen.c (gen390Code, emitcode): associate iCodes with
6042         corresponding assembly output
6043         * src/ds390/gen.c (genFunction, genEndFunction): added case to handle
6044         missing push/pop of r0/r1. Optimized push/pops
6045
6046 2004-03-01 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
6047
6048         * src/mcs51/main.c (instructionSize): fixed ACALL size
6049         * src/mcs51/main.c (updateOpRW): fixed bug with @dptr, @a+dptr operands
6050
6051 2004-03-01 Vangelis Rokas <vrokas AT otenet.gr>
6052
6053         * src/pic16/device.c (pic16_dump_section): fixed a bug that allowed
6054         the sorting of rlist with NULL elements
6055         * (print_idataType, print_idata): NEW to create idata sections
6056         * src/pic16/device.h: idataSymSet new variable
6057         * src/pic16/gen.c (genFunction): fixed some bugs in string
6058         comparing, improved the absolute section creation for ISRs,
6059         added FSR0L/FSR0H in registers that are saved in an ISR,
6060         * (genInline): fixed the processing of inline snippets,
6061         now they undergo no process by the peephole optimizer
6062         * src/pic16/glue.c (pic16emitRegularMap): symbols with initialiser
6063         are placed in idataSymSet,
6064         * (pic16emitStaticSeg): extern symbols are added in externs,
6065         * src/pic16/ralloc.c (pic16_allocDirReg): work around to reduce bank
6066         switching when aboslute variables are placed in access bank memory
6067         * (pic16_writeUsedRegs): added call to pic16_dump_idata,
6068         * (packRegsForSupport,packRegsForAccUse,packRegsForOneuse):
6069         commented out with #if,
6070         * (pic16_packRegisters): reintroduce the check for CAST because some
6071         symbols are not correctly handled,
6072         * src/pic16/pcode.h: changed the definition of pCodeAsmDir to hold a
6073         pCodeInstruction instead of pCode,
6074         * src/pic16/pcode.c (pic16_newpCodeAsmDir): modified for the new
6075         pCodeAsmDir definition,
6076         * (pic16_pCode2str, genericPrint): when an AsmDir pcode has a NULL
6077         directive, then the argument directive is emitted without the leading
6078         tab, hack for inline labels which must be in the first column,
6079         * (compareLabel,pic16_findNextInstruction),
6080         * (pic16_findPrevInstruction): added case for PO_ASMDIR,
6081         * (insertBankSwitch): modified for the new pCodeAsmDir,
6082
6083 2004-03-01 Hans-Juergen Dorn <hans.dorn AT apl-landau.de>
6084         patch applied by Vangelis Rokas <vrokas AT otenet.gr>
6085
6086         * src/pic16/gen.c (pic16_popGet): case PO_DIR, adds the offset to
6087         instance,
6088         * (pushSide): commented out with #if,
6089         * (assignResultValue): fixed some typos in saving
6090         registers,
6091         * (genPcall): FIXED and sync'ed with genCall,
6092         * (genDataPointerGet,genDataPointerSet): using offset not leoffset
6093         * (genNearPointerGet): fixed to handle some more cases,
6094         implementation scheme via table reads,
6095         * (genConstPointerGet): modified to access code memory correct,
6096         * (genCodePointerGet,genNearPointerSet,genGenPointerSet): modified
6097         and improved to handle some cases
6098         * glue.c (printIvalType,printIvalChar,emitStaticSeg): use "DB"
6099         instead of "RETLW" for init data
6100         * src/pic16/ralloc.c (pic16_allocDirReg): warning when a symbol is
6101         not IN_DIRSPACE, work around to reduce bank switching when aboslute
6102         variables are placed in access bank memory (<0x80 and >=0xf80),
6103         * src/pic16/pcode.c: added SFRs TBLPTR, TABLAT, added opcodes TBLRD,
6104         TBLRD_POSTINC,TBLRD_POSTDEC,TBLRD_PREINC,TBLWT,TBLWT_POSTINC,
6105         TBLWT_POSTDEC,TBLWT_PREINC
6106         * Fixed initialisation of BSR, set "alias" for SSAVE to "0"
6107         * (pic16_emitDB,pic16_flushDB): New functions to generate "DB"
6108         directives
6109         * (pic16_pCodeConstString): use "DB" instead of "RETLW"
6110         * src/pic16/pcode.h: added TBLRD*,TBLWT*, added pic16_emitDB,
6111         pic16_flushDB, made pic16_newpCodeAsmDir public, added TBLPTR, TABLAT
6112         * src/pic16/ralloc.h: added IDX_BSR,IDX_TBLPTR*,IDX_TABLAT
6113
6114 2004-02-29  Borut Razem <borut.razem AT siol.net>
6115
6116         * src/Makefile.in, src/SDCCutil.c, support/Util/findme.c,
6117         support/Util/findme.h, support/Util/system.h: enhance binary relative
6118         search for lib and include by using findProgramPath()
6119
6120 2004-02-28 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
6121
6122         * src/SDCCpeeph.h,
6123         * src/SDCCpeeph.c (pcDistance),
6124         * src/port.h,
6125         * src/mcs51/ralloc.h,
6126         * src/mcs51/ralloc.c (mcs51_regWithIdx),
6127         * src/mcs51/main.h,
6128         * src/mcs51/main.c (instructionSize, asmLineNode, updateOpRW,
6129         mcs51opcodeCompare, asmLineNodeFromLineNode, getInstructionSize,
6130         mcs51operandCompare, getRegsRead, getRegsWritten): made instruction
6131         size calculation port specific, started basis for some register
6132         optimizations
6133         * src/mcs51/gen.c (genFunction, genEndFunction): added case to handle
6134         missing push/pop of r0/r1. Optimized push/pops
6135         * src/mcs51/ralloc.c (packregisters): fixed bug #727095
6136         * device/lib/_modsint.c (_modsint),
6137         * device/lib/_modslong.c (_modslong): fixed sign of result in non-asm
6138         and stack version so regression tests pass
6139
6140 2004-02-26 Bernhard Held <bernhard AT bernhardheld.de>
6141
6142         * src/Makefile.in (dep): include SLIBOBJS in dependency check
6143         * src/SDCCast.c (decorateType): catch another small optimization
6144         with '?' operator
6145         * src/SDCCsymt.c (computeType): added comments and cosmetic changes
6146         * src/SDCCval.c (valMult, valDiv, valMod, valPlus, valMinus, valShift):
6147         modified to finally use computeType() all over SDCC,
6148         see Feature Request #877103
6149         * src/SDCCval.h: cosmetic
6150         * src/SDCCicode.c (operandOperation): fixed EQ_OP bug, now same as in
6151         valCompare(); regression tested in muldiv.c
6152         * support/regression/tests/muldiv.c (testMod): mod sign follows
6153         dividend only
6154
6155 2004-02-23 Bernhard Held <bernhard AT bernhardheld.de>
6156
6157         * src/SDCCast.c (decorateType): fixed bug #902362
6158         * doc/INSTALL.txt: fixed install instructions for win32
6159
6160 2004-02-21 Bernhard Held <bernhard AT bernhardheld.de>
6161
6162         * device/include/Makefile.in (install): fixed by replacing spaces
6163         by tabs
6164         * doc/README.txt,
6165         * doc/INSTALL.txt: updated for release
6166         * doc/sdccman.lyx: added warning for --xstack being buggy
6167
6168 2004-02-20 Bernhard Held <bernhard AT bernhardheld.de>
6169
6170         * src/pic16/ralloc.c (packRegsForAccUse):  disabled functions with #if
6171         to eliminate build warnings.
6172         * src/pic16/gen.c (pic16_popGet): fixed for gcc 2.95.4
6173
6174 2004-02-20 Vangelis Rokas <vrokas AT otenet.gr>
6175            Hans-Juergen Dorn <hans.dorn AT apl-landau.de>
6176
6177         * doc/sdccman.lyx: removed PIC16 from PIC16 Port Specific Options,
6178         removed -penable-stack, added comment for stack pragma, added
6179         warning for not initializing the stack/frame registers, removed
6180         comment at interrupts section
6181
6182         Stack is made permanent, there is no ability to disable stack usage.
6183         * src/pic16/device.h,
6184         * src/pic16/device.c: removed all references to USE_STACK macro,
6185         * src/pic16/device.c (pic16_dump_section): when no elements in
6186         rlist, free rlist before return,
6187         * (pic16_dump_int_registers): NEW, internal registers are a new set
6188         of general purpose registers reused by each function,
6189         * (checkAddReg): returns 1 if registers is added to set,
6190         * (pic16_groupRegistersInSection): when a registers is of type
6191         PO_GPR_TEMP add it in pic16_int_regs and not in pic16_rel_udata,
6192         * src/pic16/device.h: memRange and Assigned Memory are deleted,
6193         SRCASECMP macro is moved here from device.c
6194         * src/pic16/genarith.c (pic16_pCodeOpType): added cases for
6195         PO_PCLATU, PO_PRODL, PO_PRODH,
6196         * (pic16_pCodeOpType, genMinus,
6197         changed compares to "a" register, with AOP_ACC,
6198         * (pic16_genPlus): fixed some bugs and indented properly,
6199         * (pic16_addSign): changed size to size+offset in the MOVWF
6200         instruction,
6201         * (pic16_genUMult8XLit_8): NEW, uses processor MULLW instruction to
6202         multiply 8-bit operand by literal, result is 8-bit,
6203         * (pic16_genUMult8X8_8): NEW, uses processor MULWF instruction to
6204         multiply 2 8-bit operand, result is 8-bit,
6205         * (pic16_genMult8X8_8): modified to call genUMult8X*_8 functions and not
6206         genUMult8X*_16,
6207         * src/pic16/gen.c: changed accUse to contain WREG only,
6208         * (pic16_emitcomment): renamed to pic16_emitpcomment,
6209         * (aopForSym): allocated dir register when IN_DIRSPACE(space) is,
6210         true, do not use immediate addressing any more unless sym is a
6211         pointer in codespace,
6212         * (aopForRemat): do not use immediate addressing when symbol not in
6213         codespace and when symbol's address is requested,
6214         * (aopOp): for-loop in if(sym->accUse) is modified for the new
6215         accUse size (= 1),
6216         * (aopGet): added case for AOP_ACC and don't return "accumulator
6217         bug" but WREG instead,
6218         * (popGetTempReg): pushes contents of temporary register in stack,
6219         * (popReleaseTempReg): pops contents of temporary register from
6220         stack. Use popGetTempReg/popReleaseTempReg in aligned pairs,
6221         * (pic16_popGet): separated case AOP_ACC to return register WREG
6222         from processor registers, AOP_PCODE not checks if pcop is PO_DIR
6223         or PO_IMMEDIATE and initializes their instance/offset appropriately,
6224         * The whole issue with aopForSym,aopForRemat,popGet) is to minimize
6225         the use of immediate pointers to certain cases only.
6226
6227         * (pic16_pushpCodeOpReg, pic16_poppCodeOpReg): use pic16_popGet2p,
6228         * (pic16_loadFromReturn, pic16_storeForReturn: NEW,
6229         * (assignResultValue, genCall, genRet): modified to use the new
6230         function return value scheme with WREG,PRODL,PRODH,FSR0L and FSR0,
6231         genPcall is still broken,
6232         * (genFunction): added code to create 'A' type pBlocks when
6233         interrupt functions are generated, code not extensively tested yet,
6234         ISRs push WREG,STATUS,BSR,PRODL,PRODH,FSR0L,FSR0H registers on stack,
6235         * (genEndFunction): modified so ISRs pop stored registers from stack,
6236         * (genMultOneByte): cleanup,
6237         * (AccRsh): added flag andmask, to and result with appropriate mask,
6238         * (genUnpackBits,genPackBits): fixed and can handle bit fields,
6239         * (genDataPointerGet): fixed and reenabled its use,
6240         * (genNearDataPointerGet): bugs fixed,
6241         * (genDataPointerSet): bugs fixed,
6242         * src/pic16/genutils.c: added functions pic16_DumpValue,pic16_DumpAop,
6243         pic16_DumpSymbol, pic16_DumpOp,
6244         * src/pic16/genutils.h: function prototypes for the above functions,
6245         * src/pic16/glue.c: new flags initsfpnt, to initialize stack/frame
6246         pointers,
6247         * (pic16emitRegularMap): many many many improvements, but needs a
6248         major cleanup,
6249         * src/pic16/main.c: enable_stack in pic16_options is removed,
6250         * (_pic16_parseOptions): removed command line options -penable-stack,
6251         * (_process_pragma): emit stack symbol only when stack pragma is
6252         processed,
6253         * src/pic16/pcode.c: pic16_pc_fsr0 is removed, all operations are
6254         redirected to FSR0L/FSR0H pair,
6255         * (pic16_get_op, pic16_get_op2): modifications and improvements,
6256         * (pic16_getRegFromInstruction, pic16_getRegFromInstruction2): added
6257         cases PO_PRODL,PO_PRODH, pic16_getRegFromInstruction2 returns sane
6258         for immediates,
6259         * (insertBankSwitch): modified to handle cases like: (alfa + 1)
6260         * (dumpPicOptype): NEW,
6261         * src/pic16/pcode.h: added PO_PCLATU,PO_PRODL,PO_PRODH in enum,
6262         * src/pic16/pcoderegs.c (pCodeRegMapLiveRangesInFlow): fixed bug
6263         with movff instruction,
6264         * src/pic16/ralloc.c: renamed typeRegWithIdx to pic16_typeRegWithIdx,
6265         added pic16_int_regs, some packRegsFor* functions are commented out,
6266         because produce errors,
6267         * src/pic16/NOTES: minor modifications
6268
6269 2004-02-18  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
6270
6271         * as/mcs51/aslink.h, as/mcs51/lkarea.c, as/mcs51/lkdata.c, as/mcs51/lkmain.c,
6272         as/mcs51/lkmem.c, src/SDCCglob.h, src/SDCCmain.c: added options --stack-size and
6273         --pack-iram.
6274         * doc/sdccman.lyx: described options --stack-size and --pack-iram.
6275         * as/mcs51/lkaomf51.c: fixed bug #895763
6276
6277 2004-02-17 Bernhard Held <bernhard AT bernhardheld.de>
6278
6279         * device/include/c8051f320.h: added. Contributed by Maarten Brock.
6280
6281 2004-02-17 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
6282
6283         * doc/sdccman.lyx: added details about the HC08 storage classes and
6284         interrupts, fixed the register usage info for z80 & gbz80
6285
6286 2004-02-17 Vangelis Rokas <vrokas AT otenet.gr>
6287
6288         * doc/sdccman.lyx: added more pic16 port documentation
6289         * device/include/pic16/: added header pic18fregs.h
6290
6291 2004-02-16 Bernhard Held <bernhard AT bernhardheld.de>
6292
6293         * doc/sdccman.lyx: added Vangelis' contribution
6294
6295 2004-02-16 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
6296
6297         * src/SDCClrange.c (rlivePoint): live range of SEND operand should
6298         extend to the next CALL or PCALL, not just to the next CALL.
6299
6300 2004-02-16 Vangelis Rokas <vrokas AT otenet.gr>
6301
6302         * src/pic16/gen.c (genInline): fixed bug #896482 with inline assembly
6303
6304 2004-02-15 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
6305
6306         * src/mcs51/ralloc.c (packRegsForAssign, reassignAliasedSym): fixed
6307         bug #895752 and a better fix for bug #716790
6308
6309 2004-02-15 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
6310
6311         * src/SDCCsymt.c (processFuncArgs): fixed bug #896796
6312
6313 2004-02-14 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
6314
6315         * doc/sdccman.lyx: minor changes, minor changed
6316
6317 2004-02-13 Bernhard Held <bernhard AT bernhardheld.de>
6318
6319         * src/SDCCicode.c (usualBinaryConversions): removed pic16 from ports
6320         which can't handle SDCC_NEWONEBYTEOPS,
6321         (geniCodeMultiply): removed conversion from mult to shift for pic14
6322         and pic16
6323
6324 2004-02-12 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
6325
6326         * src/hc08/gen.h,
6327         * src/hc08/gen.c (storeRegToAop, aopOp, aopAdrStr, accopWithAop,
6328         rmwWithAop): Ported my 2003-10-02 fix for bug #663539 to the hc08,
6329         thus fixing bug #895406
6330
6331 2004-02-11 Bernhard Held <bernhard AT bernhardheld.de>
6332
6333         * device/lib/_modsint.c,
6334         * device/lib/_modslong.c: sign follows divisor only
6335         * src/hc08/gen.c (genMultOneByte): if result size is 1,
6336         signs or signedness can be ignored
6337         * src/SDCCast.c (addCast): cosmetic - added lineno to CAST
6338         * src/SDCCast.c (resultTypePropagate): added even more ops: +, - and *,
6339         added optimization for IFX,
6340         (decorateType): Mult/Div/ModOneByte ops can handle all kind of signed
6341         arguments;
6342         reenabled optimization for IFX, which was removed on 2004-01-11
6343         * src/SDCCast.h: added return type IFX
6344         * src/SDCCicode.c: Mult/Div/ModOneByte ops can handle all kind of signed
6345         arguments with 8 or 16 bit results; pic14 and pic16 ports use old
6346         promotion behaviour; env. var. SDCC_NEWONEBYTEOPS selects the new,
6347         SDCC_OLDONEBYTEOPS selects the old behaviour
6348         * src/SDCCsymt.c (computeType): type2 can be NULL (for LEFT_OP);
6349         changed again and commented promotion rule
6350         * src/SDCCval.c (valDiv): promotion no longer necessary
6351         * src/ds390/gen.c (genMultOneByte) (genDivOneByte) (genModOneByte),
6352         * src/mcs51/gen.c (genMultOneByte) (genDivOneByte) (genModOneByte):
6353         rewritten
6354         * support/regression/tests/onebyte.c: added
6355
6356 2004-02-11 Vangelis Rokas <vrokas AT otenet.gr>
6357
6358         * gen.c (genInline): reverted to old code for assemnling inline
6359         code because of bug reported James Chadd
6360
6361 2004-02-10 Vangelis Rokas <vrokas AT otenet.gr>
6362
6363         * ralloc.h: missing declarations from previous patch,
6364         seems that patch for ralloc.h was never applied, fixed
6365
6366 2004-02-10 Hans-Juergen Dorn <hans.dorn AT apl-landau.de>
6367            patch committed by Vangelis Rokas <vrokas AT otenet.gr>
6368
6369         * pcode.c,
6370         * pcode.h,
6371         * ralloc.h: added FSR0L, FSR0H and other missing PIC16 SFR's for
6372         indirect addressing. Marked FSR0 as deprecated
6373         * gen.c (pointerCode): commented out, not needed now
6374         (pic16_popGet2p): new MOVFF helper function
6375         (genGenPointerGet),
6376         (genGenPointerSet): reimplemented with MOVFF and POSTINC0
6377         (shiftRLong): removed duplicate debugging info
6378
6379 2004-02-10 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
6380
6381         * src/ds390/gen.c (genNearPointerGet),
6382         * src/mcs51/gen.c (genNearPointerGet): allow the genDataPointerGet()
6383         optimization with bits, but not bitfields.
6384         * src/ds390/ralloc.c (packRegisters),
6385         * src/mcs51/ralloc.c (packRegisters): fixed bug #884453 & #880832
6386
6387 2004-02-09 Bernhard Held <bernhard AT bernhardheld.de>
6388
6389         * src/SDCCcse.c (algebraicOpts): copy operands before modification
6390
6391 2004-02-09 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
6392
6393         * src/SDCCsymt.h,
6394         * src/SDCCicode.c (operandFromSymbol),
6395         * src/mcs51/ralloc.c (verifyRegsAssigned, serialRegAssign),
6396         * src/ds390/ralloc.c (verifyRegsAssigned, serialRegAssign),
6397         * src/z80/ralloc.c (verifyRegsAssigned, serialRegAssign),
6398         * src/hc08/ralloc.c (verifyRegsAssigned, serialRegAssign),
6399         * src/pic/ralloc.c (verifyRegsAssigned, serialRegAssign),
6400         * src/pic16/ralloc.c (verifyRegsAssigned, serialRegAssign): fixed
6401         bug #892038
6402         * src/SDCCast.c (createIvalStruct, createIvalArray, gatherAutoInit),
6403         * src/SDCCglue.c (emitRegularMap, printIvalStruct, printIvalArray,
6404         printIvalCharPtr, printIvalPtr, printIval, emitStaticSeg, emitOverlay)
6405         * src/SDCCsymt.c (newSymbol),
6406         * src/SDCC.y (struct_or_union_specifier, enum_specifier,
6407         enumerator_list),
6408         * src/SDCCval.h,
6409         * src/SDCCval.c (newiList): fixed bug #885705
6410
6411 2004-02-08  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
6412
6413         * doc/sdccman.lyx: added section 3.1.4: sdcclib.
6414         * as/mcs51/lkmem.c: report the size of the stack in .mem file.
6415
6416 2004-02-08 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
6417
6418         * device/include/c8051f120.h,
6419         * device/include/c8051f300.h,
6420         * device/include/c8051f310.h: added/updated header files for Silicon
6421         Laboratories (formerly Cygnal) CPUs. Contributed by Maarten Brock.
6422         * doc/sdccman.lyx: minor changes, recommended diff -Naur and diff -u
6423         in new section Submitting patches
6424
6425 2004-02-08 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
6426
6427         * src/mcs51/gen.c (genNearPointerGet, genPagedPointerGet,
6428         genFarPointerGet, genCodePointerGet, genGenPointerGet,
6429         genNearPointerSet, genPagedPointerSet, genFarPointerSet,
6430         genGenPointerSet),
6431         * src/ds390/gen.c (genNearPointerGet, genPagedPointerGet,
6432         genFarPointerGet, genCodePointerGet, genGenPointerGet,
6433         genNearPointerSet, genPagedPointerSet, genFarPointerSet,
6434         genGenPointerSet),
6435         * src/pic16/gen.c (genNearPointerGet, genPagedPointerGet,
6436         genFarPointerGet, genCodePointerGet, genGenPointerGet,
6437         genNearPointerSet, genPagedPointerSet, genFarPointerSet,
6438         genGenPointerSet),
6439         * src/pic/gen.c (genNearPointerGet, genPagedPointerGet,
6440         genFarPointerGet, genCodePointerGet, genGenPointerGet,
6441         genNearPointerSet, genPagedPointerSet, genFarPointerSet,
6442         genGenPointerSet): fixed bug #892400
6443         * src/pic16/gen.c (genSkipz, AccRol): disabled functions with #if 0
6444         to eliminate build warnings.
6445         * src/SDCCast.c (processParms),
6446         * src/SDCC.y (function_declarator2, declarator2_function_attributes):
6447         fixed bug 751859
6448         * support/valdiag/valdiag.py: added GCC to the list of defines active
6449         when compiling with gcc
6450
6451 2004-02-07 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
6452
6453         * support/Util/SDCCerr.h,
6454         * support/Util/SDCCerr.c,
6455         * src/SDCCast.c (decorateType, sizeofOp): complain when sizeof is used
6456         with an incomplete type (fixed bug #883734)
6457         * src/SDCCicode.c (geniCodeCast): fixed bug #890510
6458
6459 2004-02-07 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
6460
6461         * src/pic16/gen.c (genCmpEq, shiftRLong): fixed declarations
6462
6463 2004-02-06 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
6464
6465         * src/SDCCast.c (decorateType),
6466         * src/SDCCicode.c (geniCodeParms, geniCodeCall): fixed bugs in my ANSI
6467         function pointer implementation
6468         * support/regression/tests/funptrs.c: added tests to verify both forms
6469         of function pointers work correctly. Added tests to verify parameters
6470         are passed in the correct order.
6471
6472 2004-02-06  Vangelis Rokas <vrokas AT otenet.gr>
6473
6474         * device.c (regCompare): registers are sorted by ascending
6475         address and increasing size,
6476         * main.c (_pic16_finaliseOptions): removed the declaration
6477         of compiler macro MCU. Now a macro of the format pic18fxxxx
6478         will be defined from the command line
6479
6480 2004-02-06  Hans-Juergen Dorn <hans.dorn AT apl-landau.de>
6481             patch committed by Vangelis Rokas <vrokas AT otenet.gr>
6482
6483         * pcode.c (pic16initMnemonics): fixed typo in assignment to PCOP_RLNCF
6484         PCOP_RLCF was overwritten!
6485         * gen.c (genSkip): commented out calls to pic16_emitcode,
6486         * (genCmpEQ): fixed "long" compares, only high word did get compared,
6487         * (genlshTwo),
6488         * (genRRC): added debugging info,
6489         * (shiftL2Left2Result): Fixed bug, if offr > offl. Result got
6490         overwritten while shifting,
6491         * (shiftR2Left2Result): Fixed bug, if offr < offl. Result got
6492         overwritten while shifting,
6493         * (AccLsh),
6494         * (AccRsh),
6495         * (shiftLLeftOrResult),
6496         * (shiftRLeftOrResult),
6497         * (shiftRLong),
6498         * (shiftLLong): Implemented with pic16_emitpcode
6499         * (genlshFour): Replaced pic16_aopPut with pic16_emitpcode,
6500         * (genLeftShift): Fixed bug, operand for shift by variable always
6501         was "and"ed with 0x0f,
6502         * (genLeftShiftLiteral),
6503         * (genrshTwo),
6504         * (genRightShiftLiteral): added debugging info,
6505         * (genrshFour): added comment,
6506         * (genRightShift): determined signedness from operand "left"
6507         instead of "result"
6508
6509 2004-02-04 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
6510
6511         * src/SDCCicode.c (geniCodeParms),
6512         * src/SDCCast.c (decorateType, processParms): support for ANSI-style
6513         function pointers, fixed function pointer bugs #861242 and #861896
6514
6515 2004-01-31 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
6516
6517         * device/include/c8051f000.h,
6518         * device/include/c8051f120.h,
6519         * device/include/c8051f300.h: added header files for Silicon
6520         Laboratories (formerly Cygnal) CPUs. Contributed by Maarten Brock.
6521
6522 2004-01-31 Bernhard Held <bernhard AT bernhardheld.de>
6523
6524         * src/SDCCast.c (processParams): added new type flow and restructured
6525         (gatherAutoInit): added new type flow
6526         (addCast): cosmetic changes
6527         (getLeftResultType): added new type flow for array indices, patch
6528         provided by Stas, see FR #877103
6529         (decorateType): SDCC_NEWTYPEFLOW removed, new type flow is now standard;
6530         array index patch by Stas
6531         * src/SDCCast.h: added prototype getResultTypeFromType()
6532         * src/SDCCval.h,
6533         * src/SDCCval.c (resolveIvalSym) (resolveIvalSym),
6534         * src/pic/glue.c (pic14emitStaticSeg),
6535         * src/pic16/glue.c (pic16emitStaticSeg),
6536         * src/SDCCglue.c (emitRegularMap) (emitStaticSeg): added new type flow
6537         for initialization of symbols
6538         * src/SDCCicode.c (geniCodeArray): removed warning W_ARRAY_BOUND
6539         * support/Util/SDCCerr.h:
6540         * support/Util/SDCCerr.c: replaced W_ARRAY_BOUND by W_IDX_OUT_OF_BOUNDS
6541         * .version: bumped version number to 2.3.8
6542         * device/include/Makefile.in (install),
6543         * doc/Makefile (install): changed to 'rm `find ...`' construct to
6544         avoid warnings
6545
6546 2004-01-30 Bernhard Held <bernhard AT bernhardheld.de>
6547
6548         * support/regression/tests/libmullong.c: fixed for 64 bit hosts
6549         Slade Rich fixed an optimization bug
6550         * src/pic/pcodepeep.c,
6551         * src/pic/pcoderegs.c
6552         * doc/Makefile (install): added test for directory
6553
6554 2004-01-30 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
6555
6556         * src/mcs51/ralloc.c (getRegPtr, getRegGpr),
6557         * src/ds390/ralloc.c (getRegPtr, getRegGpr),
6558         * src/pic/ralloc.c (getRegPtr, getRegGpr),
6559         * src/pic16/ralloc.c (getRegPtr, getRegGpr),
6560         * src/z80/ralloc.c (getRegGpr): fixed bug #883361
6561         * as/mcs51/asexpr.c (term),
6562         * as/hc08/asexpr.c (term): fixed bug #887146
6563
6564 2004-01-29 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
6565
6566         * src/z80/gen.c (genMult): handle single byte result product
6567         * src/SDCCopt.c (killDeadCode): never convert ADDRESS_OF iCode to
6568         DUMMY_READ_VOLATILE (fixed bug #886367)
6569
6570 2004-01-27 Bernhard Held <bernhard AT bernhardheld.de>
6571
6572         * support/regression/tests/libmullong.c: fixed logic, on little endian
6573         hosts we ended without a mullong_wrapper()
6574
6575 2004-01-27 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
6576
6577         * ChangeLog: changed "@" to " AT " in hopes of reducing spam and
6578         virus/worm forged address usage.
6579
6580 2004-01-27 Bernhard Held <bernhard AT bernhardheld.de>
6581
6582         Fixed promotion, it should be done on AST level:
6583         * src/SDCCast.c (addCast): added promotion to int
6584         (decorateType): updated call to upCast()
6585         * src/SDCCicode.c (geniCodeLeftShift): removed call to
6586         usualUnaryConversions()
6587
6588 2004-01-26  Michael Hope  <michaelh AT juju.net.nz>
6589
6590         * support/regression/tests/literalop.c (mulWrapper): Added a
6591         wrapper to remove integer overflow warnings.
6592
6593         * support/regression/tests/float_trans.c: Made work on host.
6594
6595         * support/regression/ports/ucz80/spec.mk (UCZ80): Made detect the
6596         location of sz80.
6597
6598         * support/regression/generate-cases.py (main): Changed from inline
6599         to a main method.
6600
6601         * doc/Makefile (install): Changed to depth first to get rid of
6602         missing directory install warning.
6603
6604         * as/Makefile (install-doc): Made work on Mac.
6605
6606 2004-01-25 Bernhard Held <bernhard AT bernhardheld.de>
6607
6608         * src/SDCCast.c: added an additional type flow in decorateType() of
6609         opposite direction, see feature request #860006; it's enabled at runtime
6610         by setting the environment variable SDCC_NEWTYPEFLOW
6611         * src/SDCCast.h: changed prototype of decorateType()
6612         * src/SDCCglue.c (emitRegularMap): updated call of decorateType()
6613         * src/SDCCicode.c (geniCodeDivision) (geniCodeModulus): promotion from
6614         'char' to 'int' can be omitted, if both operands are 'unsigned char';
6615         see feature request #877103
6616         * src/SDCCval.c: updated call of decorateType()
6617         (valBitwise): fixed bug #882876
6618         (valMinus): added promotion
6619         (valLogicAndOr): result is unsigned
6620         (cheapestVal) (constVal): literals from 0...255 are 'unsigned char' now
6621         * src/SDCCsymt.c (computeType),
6622         * src/mcs51/gen.c (genCmpGt) (genCmpLt): literal 'unsigned char'
6623         must not cause an unsigned operation
6624         * src/pic/glue (pic14emitRegularMap),
6625         * src/pic16/glue.c (pic16emitRegularMap): updated call of decorateType()
6626
6627 2004-01-23 Bernhard Held <bernhard AT bernhardheld.de>
6628
6629         * src/pic/pcode.c (PCodeID): commented out left over debug code
6630
6631 2004-01-20 Bernhard Held <bernhard AT bernhardheld.de>
6632
6633         * support/valdiag/tests/overflow.c: added shift tests
6634         * src/pic/device.c,
6635         * src/pic/gen.c,
6636         * src/pic/gen.h,
6637         * src/pic/glue.c,
6638         * src/pic/main.c,
6639         * src/pic/pcode.c,
6640         * src/pic/pcode.h,
6641         * src/pic/pcodepeep.c,
6642         * src/pic/pcoderegs.c,
6643         * src/pic/ralloc.c,
6644         * src/pic/ralloc.h: applied patch from Slade Rich;
6645         added support for multiple code pages and multiple RAM banks on the
6646         PIC 14 port. The ASM files now no longer simply assume all the
6647         code / RAM are in the same page / bank. This means the linker can
6648         safely allocate code/RAM of separate ASM files to different pages/banks.
6649         * doc/sdccman.lyx: added Slade's tips
6650         * src/mcs51/peeph.def: fixed bug #880768
6651
6652 2004-01-20 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
6653
6654         * src/hc08/ralloc.c (rematStr): fixed bug #879282
6655         * src/SDCCast.c (decorateType): fixed bug #880197
6656
6657 2004-01-20  Michael Hope  <michaelh AT juju.net.nz>
6658
6659         * sim/ucsim/gui.src/serio.src/main.cc: Fixed unconditional use of
6660         getopt.h.
6661
6662         * debugger/mcs51/cmd.c (getValBasic): Changed strtof to strtod as
6663         strtof is not part of C89 and isn't included with Mac OS X.
6664
6665 2004-01-20 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
6666
6667         * src/hc08/gen.c (genPlusIncr, genUminus, genMinusDec, genCmp,
6668         shiftL2Left2Result): fixed bug #879326
6669         (genAnd, genOr, genXor): fixed bug when result was of type AOP_CRY
6670         (genMultOneByte): fixed bug in signed vs unsigned multiplication
6671         * sim/ucsim/hc08.src/inst.cc (inst_clr): added missing effective
6672         address fetch for clr instruction
6673         * device/lib/hc08/_mulint.c: created optimized assembly version
6674         * src/SDCCdflow.c (computeDataFlow): fixed bug #878209
6675
6676 2004-01-19 Bernhard Held <bernhard AT bernhardheld.de>
6677
6678         * src/SDCCicode.c (geniCodeArray): applied patch from Stas Sergeev
6679         proposed in FR #877103
6680
6681 2004-01-18 Bernhard Held <bernhard AT bernhardheld.de>
6682
6683         * src/SDCCval.c (cheapestVal): added missing checks
6684         * src/SDCCicode.c (usualBinaryConversions): fixed condition
6685         * src/SDCCicode.c (geniCodeAdd): fixed part of bug #877103
6686
6687 2004-01-16 Klaus Flittner <klaus_flittner AT gmx.de>
6688
6689         * src/ds390/gen.c (aopOp3): fixed the assignment of different dptrs to
6690         equal operands
6691
6692 2004-01-16 Vangelis Rokas <vrokas AT otenet.gr>
6693
6694         * src/SDCCmain.c (linkEdit): variable $3 of the linker command is
6695         loaded with the linker search paths (-L arguments) and the libraries
6696         to be linked with the current source (-l arguments). Changes
6697         currently will affect only the pic16 port.
6698         * src/pic16/main.c (_pic16_finaliseOptions): add to the linker
6699         include path the port specific paths and port specific libraries,
6700         * gplink command now contains the $3 argument,
6701         * src/pic16/device.h,
6702         * src/pic16/device.c,: structure PIC_device is made public and
6703         renamed to PIC16_device, the same for variable Pics which is renamed
6704         to Pics16. Updated all references to them.
6705         * src/pic16/glue.c (pic16glue): corrected bug with code
6706         initialization which bypassed the variable initializations block.
6707
6708         * device/lib/pic16/Makefile.rules: removed --penable-stack from
6709         COMPILE_FLAGS and added the --nostdinc option
6710
6711 2004-01-15 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
6712
6713         * device/include/mc68hc908jb8.h: Register defs for another member
6714         of the hc08 family. Contributed by Bjorn Bringert - thanks!
6715
6716 2004-01-14 Vangelis Rokas <vrokas AT otenet.gr>
6717
6718         Documenting changes from previous commits.
6719         * configure.in (version 1.56),
6720         * configure: initially I've added AC_CONFIG_SUBDIRS(device/lib/pic16)
6721         when generating output files to configure the pic16 library,
6722         but now I've commented it out, since gputils aren't installed in the
6723         SF compile farm, so library won't compile
6724
6725         * device/lib/Makefile.in (version 1.56): initially I've added in
6726         target 'all' the prerequestive 'model-pic16' so it compiled the
6727         pic16 library, but now I've commented it out for the same reasons
6728         above,
6729         * added targets 'model-pic16' and 'objects-pic16' to compile the
6730         library
6731         * added target 'port-specific-objects-pic16' to handle the
6732         generated libraries and copy them into the build/ directory
6733         * added target 'clean-intermediate-pic16' to clean intermediate
6734         files into pic16 directory
6735         * in target 'installdirs' added line to create directory pic16 in
6736         the installation path
6737
6738         * device/include/Makefile.in (version 1.11): in target 'install'
6739         added lines to copy all header files to installation path,
6740         * in target 'installdirs' added line create directory for pic16
6741         headers in the installation path
6742
6743 2004-01-13 Klaus Flittner <klaus_flittner AT gmx.de>
6744
6745         * src/ds390/gen.c (genCall): fixed a double use of acc and b after
6746          a function call
6747
6748 2004-01-13 Bernhard Held <bernhard AT bernhardheld.de>
6749
6750         * configure,
6751         * device/lib/configure.in,
6752         * device/lib/configure: fixed for autoconf 2.57
6753
6754 2004-01-13 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
6755
6756         * src/z80/main.c (_parseOptions): fixed the portmode= command line
6757         option so that it actually works. Made it specific to the z80, since
6758         the gbz80 doesn't have these kinds of I/O ports.
6759
6760 2004-01-13 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
6761
6762         * device/include/z180.h,
6763         * device/lib/_memcpy.c,
6764         * device/lib/_memmove.c,
6765         * device/lib/_mulint.c,
6766         * device/lib/ser_ir.c,
6767         * device/lib/ser_ir_cts_rts.c,
6768         * device/lib/_strcmp.c,
6769         * device/lib/_strtok.c: fixed pragmas to non-deprecated form
6770         * src/z80/main.c (_process_pragma): add support for pragmas bank and
6771         portmode; added deprecation warning for bank= and protmode= forms.
6772         Also, guard against buffer overflow.
6773         * src/z80/gen.c (aopGet): generate better code for sfr banked read
6774
6775 2004-01-13 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
6776
6777         * src/hc08/main.c (_hc08_genAssemblerPreamble): fixed bug #875487. Also
6778         changed interrupt vector table generation to only emit declared vectors.
6779         * device/include/Makefile.in: added missing backslash
6780         * device/lib/pic16/Makefile.rules: add $(MODELFLAGS) to $(CFLAGS)
6781
6782 2004-01-13 Vangelis Rokas <vrokas AT otenet.gr>
6783
6784         Mainly changes to support compilation of the device libraries
6785         * src/pic16/device.c: stack is allocated via symbol and not
6786         via literal number. The symbol is placed in the corresponding
6787         position of the data ram
6788         * (pic16_dump_section): relocatable and absolute uninitialized
6789         data are now emitted in sorted order to reduce section naming,
6790         * src/pic16/ralloc.c (newReg): fixed bug with SFR's that
6791         weren't marked as being in the access bank,
6792
6793 2004-01-13 Vangelis Rokas <vrokas AT otenet.gr>
6794
6795         Added portion of GNU PIC Library under the directory
6796         device/include/pic16 and device/lib/pic16. These files
6797         contain the declarations of SFRs for the PIC18Fxx2 devices.
6798         The directory is initialized via configure from toplevel.
6799
6800 2004-01-12 Klaus Flittner <klaus_flittner AT gmx.de>
6801
6802         * src/ds390/gen.c (operandsEqu): fixed a little typo, that prevented
6803         the spilllocations to be compared correctly
6804
6805 2004-01-12 Bernhard Held <bernhard AT bernhardheld.de>
6806
6807         * src/SDCCast.c (decorateType): fixed bug introduced today
6808
6809 2004-01-12  Borut Razem <borut.razem AT siol.net>
6810
6811         * src/SDCC.lex, support/Util/SDCCerr.h, support/Util/SDCCerr.c,
6812         doc/sdccman.lyx: upper case pragmas are deprecated
6813
6814 2004-01-12 Bernhard Held <bernhard AT bernhardheld.de>
6815
6816         * src/SDCCast.c (decorateType): replacing 'ul > 0' by  '!ul' results
6817         in simpler and even better code
6818
6819 2004-01-11 Bernhard Held <bernhard AT bernhardheld.de>
6820
6821         * src/SDCCicode.c (operandOperation): fixed bug #874819
6822         * src/SDCCast.c (decorateType): fixed
6823         char foo (unsigned long ul) { return ul > 0; }
6824
6825 2004-01-11 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
6826
6827         * doc/sdccman.lyx: Moved and added some sections, small changes
6828         all over. Telling LaTeX to be less strict with word spacing
6829         to better keep the right margin. Changed some notes about
6830         maintainance of the ports in section 3.2.1 - is it OK like this?
6831
6832 2004-01-11 Vangelis Rokas <vrokas AT otenet.gr>
6833
6834         SDCC source changes:
6835         * src/SDCCopt.c (cntToFcall, cnvToFloatCast, cnvFromFloatCast,
6836         convilong): modified to inform the pic16 port that builtin functions
6837         are external
6838
6839         PIC16 PORT specific changes:
6840         * src/pic16/device.c pic16_dump_equates() added,
6841         processor registers declared internally by the port are emitted in
6842         the translation as equates,
6843         * src/pic16/gen.c: inline code is passed unprocessed to the
6844         translation,
6845         * (pic16_popGetLit2): fnuction modified to take second operand as
6846         pCodeOp pointer and not as literal,
6847         * (popRegFromIdx): prefixed with pic16_,
6848         * (pic16_popCombine2): modified to receive already allocated pCode
6849         operands,
6850         * (pic16_pushpCodeOpReg, pic16_poppCodeOpReg): added
6851         * (genFunction): initializes local stack frame and pushes on stack
6852         all the registers used by this function,
6853         * (genEndFunction): restores all registers from stack and restores
6854         stack frame,
6855         * src/pic16/glue.c (pic16emitRegularMap): various changes and
6856         improvements,
6857         * (pic16glue): changed the program startup sequence,
6858         * added new dbName code 'A' for functions placed in absolute section
6859         * src/pic16/main.c: added function attribute _naked,
6860         * added pragma 'code' to place a fnuction at an absolute address,
6861         * added command line arguments --debug-ralloc and --pcode-verbose,
6862         * (_pic16_finiliseOptions): options.all_callee_saves is set by default
6863         * src/pic16/pcode.c (pic16_pBlockConvert2Absolute) added,
6864         * (pic16_newpCodeOpLit2): modified to take the second operand as
6865         pCodeOp pointer,
6866         * (pic16_printpBlock): modified to emit each function in a separate
6867         section,
6868         * (pic16_get_op): modified to use the gpasm modifiers LOW,HIGH and
6869         UPPER for immediate operands,
6870         * src/pic16/pcodepeeph.c: added peephole support for the LFSR
6871         instruction,
6872         * src/pic16/peeph.def: all peepholes with movff are commented out,
6873         because there is a problem in the pcode peep optimizer,
6874         * src/pic16/ralloc.c: the register allocator can now reuse local
6875         function symbols for another function. This saves register usage.
6876         * src/pic16/ralloc.h: added flag isLocal in structure regs,
6877
6878         Added file src/pic16/NOTES with information about program writing on
6879         the current port version.
6880
6881 2004-01-11 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
6882
6883         * src/mcs51/peephole.def: added peepholes 177.c,d (redundant moves)
6884         and peephole 252 (array access)
6885
6886 2004-01-09  Borut Razem <borut.razem AT siol.net>
6887
6888         * src/SDCCmain.c : fixed #872250: -l command line defined library
6889           files are scanned before standard library files
6890
6891 2004-01-10 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
6892
6893         * src/SDCCast.c (decorateType): fixed bug #874046
6894
6895 2004-01-09  Borut Razem <borut.razem AT siol.net>
6896
6897         * support/scripts/sdcc.nsi: remove previous installation
6898
6899 2004-01-09 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
6900
6901         * src/SDCCglue.c (createInterruptVect): don't append 7(5) padding
6902         bytes for last interrupt vector (mcs51)
6903         * sdcc.spec: fixed typo
6904
6905 2004-01-09 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
6906
6907         * src/mcs51/gen.c (genFunction, genEndFunction, genReceive, getTempRegs,
6908         gen51Code): more efficient parameter receive for --model-large
6909         ("bug" #845294)
6910
6911 2004-01-09 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
6912
6913         * src/ds390/main.c,
6914         * src/z80/main.c: added missed needLinkerScript flags (more than
6915         one port structure defined in these file)
6916         * src/ds390/gen.c (aopForSym, aopOp, operandsEqu, aopOp3): fixed
6917         bug #795325
6918
6919 2004-01-08 Vangelis Rokas <vrokas AT otenet.gr>
6920
6921         * src/SDCCmain.c: removed various references to DEFAULT_PORT
6922         * src/port.h: added flag needLinkerScript in port->linker
6923         structure to inform whether to create a .lnk file or not,
6924         * src/avr/main.c,
6925         * src/ds390/main.c,
6926         * src/hc08/main.c,
6927         * src/mcs51/main.c,
6928         * src/pic/main.c,
6929         * src/pic16/main.c,
6930         * src/xa51/main.c,
6931         * src/z80/main.c: changed appropriately to configure
6932         needLinkerScript flag
6933         * src/pic/gen.c,
6934         * src/pic16/gen.c (genAddrOf): fixed bug #863624
6935         * src/pic/glue.c: added variable udata_section_name to
6936         override default uninitialized data segment definition for
6937         devices only with SHAREBANK memory (reported from Erik Epetrich)
6938         * (pic14emitOverlay): modified to emit a commented overlay segment
6939         directive when no overlay data exist
6940         * (picglue): modified to emit uninitialized data segment
6941         according to udata_section_name
6942         * src/pic/main.c (_pic14_parseOptions): added command line
6943         options --udata-section-name=[name] to override default
6944         udata definition name
6945         * modified _linkCmd and _asmCmd to include compiler passed
6946         arguments via -W option
6947         * src/pic16/main.c: added $l in _asmCmd, changed extension for
6948         object file from '.rel' to '.o' in port->linker structure,
6949         changed size of fptr from 2 to 3 in port structure
6950
6951 2004-01-07  Borut Razem <borut.razem AT siol.net>
6952
6953         * support/scripts/sdcc.nsi: update PATH
6954         * support/scripts/sdcc.ico: craeted
6955
6956 2004-01-07 Bernhard Held <bernhard AT bernhardheld.de>
6957
6958         * device/include/Makefile.in: fix install
6959         * doc/Makefile: fix install
6960
6961 2004-01-07 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
6962
6963         * src/SDCCsymt.c (processFuncArgs): fixed superflous allocation noted
6964         in bug #860505
6965         * src/SDCCmem.c (printAllocInfoSeg, printAllocInfo): minor changes to
6966         how the function variable allocation summary is displayed; also
6967         include information about variables allocated to the overlay
6968         segment
6969
6970 2004-01-06  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
6971
6972         * as/mcs51/lkmain.c: Help about -Y option
6973         * as/mcs51/lkarea.c: Fixed gcc warnings
6974
6975 2004-01-06 Bernhard Held <bernhard AT bernhardheld.de>
6976
6977         * src/SDCCval.c (valShift): changed from 16 to 32 bit shift count,
6978         fixed warning
6979         * support/valdiag/tests/overflow.c: added
6980         * src/SDCCast.c (decorateType),
6981         * src/SDCCicode.c (geniCodeLeftShift): added promotion to int for
6982         LEFT_OP (left shift)
6983
6984 2004-01-06  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
6985
6986         * as/mcs51/lkmain.c: stack must be after data when option -Y is not used
6987         (default behaviour).
6988
6989 2004-01-06 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
6990
6991         A python script to validate compiler diagnostic messages. It can be
6992         used to verify that sdcc complains about bad c source code and
6993         gives a good location of the error.
6994         * support/valdiag/Makefile,
6995         * support/valdiag/valdiag.py,
6996         * support/valdiag/tests/*
6997
6998 2004-01-06 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
6999
7000         * src/SDCC.y (enum_specifier, enumerator_list, opt_assign_expr),
7001         * src/SDCCsymt.c (newEnumType),
7002         * src/SDCCsymt.h
7003         * support/Util/SDCCerr.c,
7004         * support/Util/SDCCerr.h: fixed bug #871258 and some other unreported
7005         enum related bugs.
7006         * support/regression/tests/enum.c: added test for enum values that
7007         require at least 2 bytes of storage.
7008
7009 2004-01-06 Vangelis Rokas <vrokas AT otenet.gr>
7010
7011         * src/common.h: added ifndef/define/endif macros
7012         around the header file.
7013         Bug reported from Jesus Calvino-Fraga
7014
7015 2004-01-06 Bernhard Held <bernhard AT bernhardheld.de>
7016
7017         * sdcc.spec: updated
7018         * device/include/Makefile.in: don't install CVS directories
7019         * device/lib/Makefile.in: added removal of CVS directories after install
7020         * doc/Makefile: fixed install, added local_icons
7021         * sim/ucsim/gui.src/Makefile.in: fixed an old typo
7022         * src/mcs51/gen.c (genRightShift): fixed bug #870788
7023         * src/ds390/gen.c (genRightShift): fixed bug #870788
7024         * src/SDCCast.c (decorateType): fixed bug #870781
7025
7026 2004-01-06 Vangelis Rokas <vrokas AT otenet.gr>
7027
7028         PIC16 port related changes:
7029         * device.c: removed pic16_finalMapping and pic16_finalMappingSize,
7030         added variable stackPos,
7031
7032         * gen.c: genCall, assignResultValue: added support for
7033         pushing/retrieving function parameters to/from stack,
7034         genFunction,genEndFunction: setup stack frame for the
7035         generated function,
7036         genAddrOf: will be changed according to bug 863624
7037
7038         * added files genutils.c and genutils.h which contain gen*
7039         debugged and optimised functions extracted from gen.c
7040
7041         * glue.c: added variable 'externs' which holds extern symbols,
7042         pic16emitRegularMap: is modified to properly handle relocatable
7043          symbols under the new scheme,
7044         pic16createInterruptVect: is modified
7045         pic16printPublics: is modified to emit 'global' assembler directives,
7046         added pic16_printExterns to print extern symbols,
7047         pic16glue: initializes stack/frame pointer in the beginning of
7048         the assembly output. Temporary hack, will be corrected later,
7049         because gplink yet does not support stack and SDCC does not
7050         yet support a type of crt0.o object to create the final binary.
7051
7052         * Removed many lines that contain 8051 legacy code.
7053         * The code is finally placed under a 'code' directive.
7054         * Added port specific options.
7055
7056         * _process_pragma: simplified since now we do not need *special*
7057         include file to define SFR registers. But a separate header
7058         will be needed. This will be developed later.
7059         * _pic16_parseOptions: added, parses port specific options:
7060         --pgen-banksel, --obanksel=, --pomit-config-words, --pomit-ivt,
7061         --pleave-reset-vector, --penable-stack, --pstack-model, --debug-xtra
7062         --preplace-udata-with=
7063
7064         * _pic16_setDefaultOptions: modified to initialize section names,
7065         but hack is temporarly out of order since it needs improvement.
7066         * _pic16_genAssemblerPreamble: configuration words are emitted by
7067         their address instead of their name. This part is incomplete and
7068         supports only the 18Fxx2 devices. Other devices will emit an error
7069         during assembly since they do not contain the same set of config
7070         registers
7071         * _pic16_genIVT: is modified,
7072
7073         * pcode.c: added definitions for some hardware registers that are needed
7074         for stack support
7075         * added flag is2LitOp and variable pci_magic in pCodeInstruction.
7076         All PCI entries are updated. Now LFSR is supported.
7077         * Removed pic16_pciTRIS is mentioned by mdubuc in source
7078         * added pic16_newpCodeOpLit2 to support instructions with
7079         two literal arguments
7080         * pic16_pCode2str: corrected code that emits assembler instructions
7081         with two literal operands and those that have an access bit modifier
7082         * genericPrint: now PC_ASMDIR pCodes, can emit a label if it exists,
7083         this fixes a bug which caused some labels to be lost, when an
7084         assembler directive was added, i.e. banksel,
7085         * pic16_FixRegisterBanking: improved logic that causes the insertion
7086         of bank switching,
7087         * InlineFunction: functions that are called once, are not any more
7088         inlined. This can be a port option in the future,
7089
7090         * pcode.h: added pCodeOpLit2 and added variable label in pCodeAsmDir
7091
7092         * ralloc.c: added pic16_rel_udata and pic16_fix_udata variables which
7093         hold the corresponding uninitialized symbols,
7094         * pic16_allocProcessorRegister: registers have explicit marked the
7095         accessBank field,
7096         * pic16_allocInternalRegister: registers are explicit marked as
7097         not used,
7098         * pic16_writeUsedRegs: pic16_dynDirectBitRegs was missing from the
7099         processing list, so bit registers were lost,
7100         *
7101
7102         * ralloc.h: added field 'accessBank' and original symbol operand
7103         in register definition,
7104         * removed the field isMapped from register definition,
7105
7106         ** Several functions have been removed from various sources:
7107         BanksUsedFlow2,BanksUsedFlow,FixBankFlow,InstructionRegBank,
7108         pic16_addMemRange,pic16_isREGinBank,pic16_dump_map,pic16_dump_cblock
7109         isSFR,validAddress,mapRegister,assignRegister,pic16_assignFixedRegisters
7110         pic16_assignRelocatableRegisters
7111
7112         ** others have been introduced:
7113         pic16_areRegsSame,pic16_dump_section,checkAddReg,pic16_groupRegistersInSection
7114         pic16_popGetLit2,pic16_popCombine2,pushw,pushaop
7115
7116 2004-01-05 Vangelis Rokas <vrokas AT otenet.gr>
7117
7118         * support/scripts/inc2h.pl: changed definition of BIT_AT
7119         to emit 'sbit at' instead of 'bit at'. This was a request.
7120
7121         PIC16 port related preliminary changes:
7122         * gen.c: prefixed function popRegFromString with
7123         pic16_ and all references to it corrected
7124         * pcode.c: all pic16_pc_* hardware registers prefixed
7125         with underscore (_),
7126         pic16_popCopyGPR2Bit(): function sets register wasUsed=1
7127         * ralloc.c: newReg(): when register is REG_SFR then
7128         set address to rIdx,
7129         pic16_allocProcessorRegister(): marks register wasUsed=0
7130         pic16_writeUsedRegs(): added a call to assign processor
7131         registers via pic16_assignFixedRegisters
7132
7133 2004-01-04  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
7134
7135         * as/mcs51/aslink.h, as/mcs51/lkarea.c, as/mcs51/lkdata.c,
7136         as/mcs51/lkmain.c, as/mcs51/lkmem.c: 8051 linker can now pack
7137         variables in unused register banks.  Also the SSEG is placed
7138         wherever there is enough space for it, and IDATA can be anywhere
7139         in internal RAM.  For now compile using -Wl-Y[stack_size].
7140         The mem file is different for this option as well, since it
7141         makes no sense of talking about DSEG lenght.
7142
7143 2004-01-02 Vangelis Rokas <vrokas AT otenet.gr>
7144
7145         * src/SDCClrange.c: fixed bug 869095 that caused segfault
7146         in certain cases, e.g. when ROM assignment, patch provided
7147         from Albert den Haan.
7148
7149 2004-01-01 Bernhard Held <bernhard AT bernhardheld.de>
7150
7151         Many signedness and type propagation fixes:
7152         * src/SDCCicode.c: made geniCodeCast() static
7153         replaced SPEC_ by IS_ (cosmetic)
7154         (operandOperation): fixed div and mod operation
7155         (usualBinaryConversions): added support for promotion of char
7156         (geniCodeMultiply): replaced (unsigned long) by (TYPE_UDWORD)
7157         (geniCodeDivision): replaced (unsigned long) by (TYPE_UDWORD)
7158         (geniCodeAdd): an array index will stay unsigned, even if promoted
7159         from char to int
7160         (geniCodeArray): ditto
7161         * src/SDCCicode.h: made geniCodeCast() static: removed prototype
7162         * src/SDCCsymt.c (computeType): added more support for char;
7163         promotion of char is selectable by promoteCharToInt, fixed signedness
7164         for all cases
7165         (powof2): replaced (unsigned long) by (TYPE_UDWORD)
7166         * src/SDCCsymt.h (powof2): replaced (unsigned long) by (TYPE_UDWORD)
7167         * src/SDCCval (val*): replaced signedness calculation by
7168         computeType()
7169         rearranged if-branches (cosmetic)
7170         (valShift): added warning W_SHIFT_CHANGED
7171         (valCompare): fixed problem with different types
7172         * src/hc08/rallo.c (leastUsedLR): fixed gcc 3.3 warning
7173         * support/regression/tests/literalop.c: added many cases
7174         * support/regression/tests/ast_constant_folding.c: changed finally to
7175         'unsigned int'
7176         * .version: new year, new version: 2.3.7
7177         * src/SDCCmain.c (main): applied patch #866468
7178         * debugger/mcs51/sdcdb.c (parseCmdLine): added -k for ucsim, patch
7179         provided by Scott Bronson
7180         * doc/sdccman.lyx: updated documentation for sdcdb
7181         updated and added chapter tips
7182
7183 2004-01-01 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
7184
7185         * src/SDCCsymt.h: missing from yesterday's commits
7186
7187 2003-12-31 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
7188
7189         * src/SDCC.y (struct_or_union_specifier),
7190         * support/Util/SDCCerr.c,
7191         * support/Util/SDCCerr.h: verify that struct & union tags are used
7192         as declared.
7193
7194 2003-12-29 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
7195
7196         * src/SDCCglobl.h: missing from yesterday's commits
7197
7198 2003-12-28 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
7199
7200         * src/SDCC.y (external_definition, type_specifier2, sfr_reg_bit,
7201         sft_attributes, struct_declaration, parameter_declaration,
7202         type_name, start_block, declaration_list),
7203         * src/SDCC.lex (check_type): support redefinition of typedef names
7204
7205 2003-12-22 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
7206
7207         * src/mcs51/gen.c (genPlus): added special handling for 256 byte
7208         aligned xdata arrays. Erik helped me with the if clause.
7209
7210 2003-12-20 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
7211
7212         * device/lib/ds390/tinibios.c (CpuSpeed): suppress unreachable code
7213         warning
7214
7215 2003-12-20 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
7216
7217         * src/SDCCast.h,
7218         * src/SDCCast.c (newAst_),
7219         * src/SDCCicode.h,
7220         * src/SDCCicode.c (ast2iCode, newiCode),
7221         * src/SDCCglobl.h,
7222         * src/SDCC.y (logical_and_expr, logical_or_expr, conditional_expr,
7223         expr, statement, expression_statement, selection_statement,
7224         iteration_statement, expr_opt, jump_statement): foundation for tracking
7225         sequence points
7226         * src/SDCCopt.c (killDeadCode): fixed bug #861580 (needs the sequence
7227         point code too)
7228
7229 2003-12-19 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
7230
7231         * support/Util/SDCCerr.c,
7232         * src/SDCCast.h,
7233         * src/SDCCast.c (createCase, createDefault, decorateType),
7234         * src/SDCClabel.c (labelUnreach),
7235         * src/SDCC.y (labeled_statement, jump_statement): More improvements
7236         to error messages.
7237         * support/Util/SDCCerr.c (werrorfl): fixed a non-standard declaration
7238         (with thanks to Stas Sergeev)
7239         * device/include/time.h,
7240         * device/lib/time.c (CheckTime): suppress unreachable code warning
7241
7242 2003-12-18 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
7243
7244         * src/SDCCast.c (createIvalCharPtr),
7245         * src/SDCCglue.c (printChar): fixed bug #862241 (an error in my fix for
7246         bug #753752)
7247         * support/regression/tests/nullstring.c: tests for these two bugs
7248
7249 2003-12-18 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
7250
7251         * support/Util/SDCCerr.h,
7252         * support/Util/SDCCerr.c (E_NOT_ALLOWED),
7253         * src/SDCC.y (struct_declaration, struct_or_union_specifier): complain
7254         about storage class and 'at' used inside struct or union
7255         * src/SDCCBBlock.c (iCodeFromeBBlock),
7256         * src/SDCCcse.c (ifxOptimize),
7257         * src/SDCCglue.c (emitRegularMap, initPointer, printIvalStruct,
7258         printIvalArray, printiValFuncPtr, printIvalCharPtr, printIvalPtr,
7259         printIval, emitStaticSeg, emitOverlay),
7260         * src/SDCClabel.c (deleteIfx),
7261         * src/SDCCopt.c (replaceRegEqv, eBBlockFromiCode),
7262         * src/SDCCast.c (resolveSymbols, createIvalStruct, createIvalArray,
7263         gatherAutoInit, processParms),
7264         * support/Util/SDCCerr.h,
7265         * support/Util/SDCCerr.c (werrorfl): Support for better error location
7266         reporting for post-parse errors.
7267
7268 2003-12-16 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
7269
7270         * src/SDCCval.c (valPlus, valMinus, valShift): fixed some problems with
7271         implicit casts via union; they don't work on big endian systems
7272         (possible fix for bug #861138)
7273
7274 2003-12-16 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
7275
7276         (committed by Erik Petrich <epetrich AT ivorytower.norman.ok.us> on Frieder's behalf)
7277         * src/mcs51/main.c: fixed the fix for bug #737001
7278
7279 2003-12-15  Borut Razem <borut.razem AT siol.net>
7280
7281         * support/scripts/sdcc.nsi: updated for NSIS 2.0 beta 4
7282
7283 2003-12-14 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
7284
7285         * support/makebin/makebin.c: put output in binary mode
7286
7287 2003-12-13 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
7288
7289         * src/mcs51/main.c: fixed bug #737001 for the mcs51. SDCC clears
7290         xdata and data memory on startup. Set the environment variable
7291         SDCC_NOGENRAMCLEAR to disable this.
7292         * src/mcs51/peephole.def,
7293         * src/ds390/peephole.def: using the atomic test and clear instruction jbc
7294         (allows non-interrupt and interrupt code to safely compete for a resource
7295         without the non-interrupt code having to disable interrupts)
7296
7297 2003-12-13 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
7298
7299         * src/SDCCicode.c (geniCodeAdd),
7300         * src/SDCCast.c (decorateType): fixed bug #857753 (need to be careful
7301         with valFromType if type might be a pointer and host is big endian).
7302         * src/SDCCast.c (decorateType): unary plus compatible with all arithmetic
7303         types, not just integer types.
7304         * src/SDCCsymt.c (addSymChain): clarified error message when symbol is
7305         multiply defined with mismatching "at" address.
7306
7307 2003-12-12 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
7308
7309         * src/ds390/main.c (PORT tininative_port): fixed bug #858416
7310         * src/SDCCglue.c (printChar, printIvalChar, emitStaticSeg),
7311         * src/SDCCast.c (createIvalCharPtr, stringToSymbol): handle strings
7312         with embedded nulls (fixed bug #753752)
7313
7314 2003-12-12 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
7315
7316         * src/mcs51/main.c(_mcs51_genRAMCLEAR): using r0 instead of r1/r2.
7317         Apparently this did not see much testing (endless loop)
7318
7319 2003-12-11 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
7320
7321         * src/z80/ralloc.c: set DISABLE_PACK_HL = 1 as a temporary fix to bug #855165
7322
7323 2003-12-10 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
7324
7325         * src/SDCCdebug.c (outputDebugSymbols, outputDebugStackSymbols, dumpSymInfo):
7326         gracefully handle NULL memmap pointers
7327
7328 2003-12-08 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
7329
7330         * src/SDCCopt.c (killDeadCode): change iCode type to DUMMY_READ_VOLATILE
7331         instead of deleting the iCode when an operand is volatile
7332         * src/z80/gen.c (genDummyRead),
7333         * src/mcs51/gen.c (genDummyRead),
7334         * src/ds390/gen.c (genDummyRead),
7335         * src/hc08/gen.c (genDummyRead): handle operands in IC_LEFT and/or IC_RIGHT,
7336         not just IC_RIGHT
7337         * src/SDCCicode.c (geniCodeCall): fixed bug #851607
7338         * src/SDCC.y: fixed bug #850420
7339
7340 2003-12-05 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
7341
7342         Applied z80 i/o port patch from Peter Townson and fixed some operators
7343         to better handle operands in A register.
7344         * device/include/z180.h
7345         * src/SDCC.y
7346         * src/SDCCglue.c
7347         * src/z80/gen.c
7348         * src/z80/gen.h
7349         * src/z80/main.c
7350         * src/z80/peeph-z80.def
7351         * src/z80/peeph.def
7352         * src/z80/z80.h
7353
7354 2003-12-03 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
7355
7356         * src/SDCCsymt.c (addSymChain, compareTypeExact): fixed bug #838241 again
7357
7358 2003-12-01 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
7359
7360         * device/lib/hc08/_mullong.c: Removed extra #endif
7361
7362 2003-12-01 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
7363
7364         * sim/ucsim/hc08.src/inst.cc,
7365         * sim/ucsim/hc08.src/hc08mac.h: fixed some problems with CC flag bits and
7366         carries from x to h
7367         * src/hc08/gen.c (aopAdrStr): fixed problem with 16 bit immediate
7368         * src/hc08/gen.c (XAccRsh): fixed problem with right shift
7369         * device/include/stdarg.h: fixed varargs for hc08
7370         * device/lib/Makefile.in,
7371         * device/lib/hc08/Makefile,
7372         * device/lib/hc08/_mulint.c,
7373         * device/lib/hc08/_mullong.c: fixed some endian problems
7374
7375 2003-11-28 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
7376
7377         * sdcc/src/mcs51/gen.c (genMultOneByte): help peephole 105
7378         * sdcc/src/mcs51/peeph.def: added peephole 186.e array access in code space
7379         * device/lib/_gptrget.c,
7380         * device/lib/_gptrput.c: P2 not used any more (related to #850747, #785979)
7381
7382 2003-11-27 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
7383
7384         * src/SDCClrange.c (findNextUseSym, rlivePoint): fixed bug #849795
7385         * src/SDCCast.c (astErrors): fixed bug #846007
7386         * src/SDCCsymt.c (checkFunction): fixed follow-up bug on bug #846007
7387
7388 2003-11-26 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
7389
7390         * src/SDCCast.c (decorateType): disabled a transformation I added in
7391         revision 1.188 (access to fields of a structure at an absolute address);
7392         it breaks with bitfields, extern declarations, and gcse analysis.
7393         * src/SDCCopt.c (isLocalWithoutDef): if ADDRESS_OF applied to a symbol, it
7394         could be assigned through a pointer, so don't complain.
7395         * src/SDCCast.c (astErrors),
7396         * src/SDCCast.h,
7397         * src/SDCCglue.c (emitRegularMap): fixed bug #847813
7398
7399 2003-11-26 Vangelis Rokas <vrokas AT otenet.gr>
7400
7401         * src/pic16/main.c (_pic16_genIVT): fixed interrupt vector table
7402         * src/pic16/main.c (_pic16_genAssemblerPreamble): re-enabled the
7403         output of __config directives, since gpasm now supports them
7404         * src/pic16/main.c (_pic16_finaliseOptions): define MCU
7405         pre-processor macro, i.e. -DMCU=p18f452
7406         * src/pic16/ralloc.c: renamed packRegisters to pic16_packRegisters,
7407         and modified to handle 'cast' icode similarly to '=' icode
7408         * src/pic16/device.h (typedef struct PIC_device): added field
7409         'extMIface' to indicate that chip has external memory interface
7410         * src/pic16/device.c: added chips 18F248, 18F258, 18F448, 18F458,
7411         18F6520, 18F6620, 18F6680, 18F6720, 18F8520, 18F8620, 18F8680,
7412         18F8720
7413
7414 2003-11-26 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
7415
7416         * src/SDCC.y (pointer): fixed bug #846006
7417         * support/Util/SDCCerr.c: made W_PTR_TYPE_INVALID message clearer
7418         * src/SDCCast.c (decorateType): fixed bug #846009
7419         * src/ds390/peeph.def,
7420         * src/ds390/gen.c (genAnd, genOr),
7421         * src/mcs51/peeph.def,
7422         * src/mcs51/gen.c (genAnd, genOr): fixed bug #846777
7423
7424 2003-11-25 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
7425
7426         Fixed several common-sub-expression bugs (#772861, #768380, & #755323)
7427         * src/SDCCdflow.c
7428         * src/SDCCcse.c
7429         * src/SDCCcse.h
7430         * src/SDCCBBlock.h
7431         * src/SDCCBBlock.c
7432
7433 2003-11-23 Klaus Flittner <klaus_flittner AT gmx.de>
7434
7435         fixed bug #845089
7436         * src/SDCCbitv.h,
7437         * src/SDCCbitv.c: added function to free a bitvector
7438         * src/SDCClrange.h,
7439         * src/SDCClrange.c: added function to recompute the liveranges
7440         * src/avr/ralloc.c,
7441         * src/ds390/ralloc.c,
7442         * src/hc08/ralloc.c,
7443         * src/mcs51/ralloc.c,
7444         * src/pic/ralloc.c,
7445         * src/pic16/ralloc.c,
7446         * src/xa51/ralloc.c,
7447         * src/z80/ralloc.c: recompute the liveranges after register packing
7448
7449 2003-11-21 Klaus Flittner <klaus_flittner AT gmx.de>
7450
7451         * src/SDCCloop.c (newInduction): fixed bug #845630
7452
7453 2003-11-21 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
7454
7455         * src/SDCCsymt.c (compareTypesExact): disabled debugging output
7456         inadvertantly left behind from my 2003-11-12 change
7457
7458 2003-11-20 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
7459
7460         Updated headers I neglected to commit yesterday.
7461         * src/SDCClrange.h,
7462         * src/SDCCicode.h
7463
7464 2003-11-19 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
7465
7466         * src/SDCCcse.c (algebraicOpts): fixed bug #773153
7467         * src/SDCClrange.c (rlivePoint): need to mark IC_RESULT used if POINTER_SET op
7468         * src/SDCCopt.c (eBBlockFromiCode),
7469         * src/SDCClrange.c (hashiCodeKeys, sequenceiCode, computeLiveRanges): seperated
7470         the creation of the key hash table from the sequencing so it can be used
7471         earlier (for some GCSE bug fixes still pending)
7472
7473 2003-11-15 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
7474
7475         * src/mcs51/gen.c (genPlus): generate shortcut for adding 0xab00
7476         * support/regression/tests/addsub.c: testing genPlus shortcut
7477
7478 2003-11-15  Borut Razem <borut.razem AT siol.net>
7479
7480         * src/SDCCmain.c: fixed bug #841645: -MM command line option passed to sdcpp
7481
7482 2003-11-15 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
7483
7484         * src/SDCCcse.c (cseBBlock): fixed bug #527779
7485         * src/SDCCcse.c (deleteGetPointers): rewrote so that the set
7486         ordering is immaterial.
7487         * src/SDCCdflow.c (mergeInExprs): fixed bug #587536
7488
7489 2003-11-14 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
7490
7491         * src/SDCCicode.c (geniCodeAddressOf): fixed part of bug #840381
7492         * src/SDCCopt.c (replaceRegEqv, isLocalWithoutDef): fixed other part
7493         (SIGSEV) of bug #840381
7494         * src/SDCCmain.c (linkEdit, assemble): fixed bug #841606 (don't
7495         unlink new file before rename if new and old filenames are the same)
7496
7497 2003-11-13 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
7498
7499         * src/mcs51/main.c: started fixing bug #737001 (SDCC not clearing
7500         uninitialized variables) for the mcs51. Set environment variable
7501         SDCC_GENRAMCLEAR to test.
7502         xdata initialization slightly shorter
7503
7504 2003-11-12 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
7505
7506         * src/SDCCsymt.h,
7507         * src/SDCCsymt.c (addSymTypeChain, compareTypesExact): fixed bugs
7508         #838241 & 780691 (basicly the same bug)
7509         * src/SDCCBBlock.c (iCode2eBBlock): fixed bug #840148
7510         * src/SDCCBBlock.c (iCodeFromeBBlock): fixed bug #840162
7511
7512 2003-11-11 Bernhard Held <bernhard AT bernhardheld.de>
7513
7514         * src/SDCCmain.c (linkEdit): "fix" #834252
7515
7516 2003-11-11 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
7517
7518         * src/SDCCast.c (removePostIncDecOps, removePreIncDecOps),
7519         * src/SDCCast.h,
7520         * src/SDCC.y: fixed bug #819403
7521
7522 2003-11-08 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
7523
7524         * support/regression/fwk/lib/testfwk.c: printn is recursive and thus needs
7525         the reentrant attribute.
7526         * src/hc08/gen.c (genPackBits): added missing stack readjustment
7527         * sim/ucsim/hc08.src/inst.cc (inst_mov): fixed bugs with mov instruction
7528         simulation
7529         * src/SDCCast.c (decorateType): fixed bug with storage class not being
7530         updated during pointer dereference; f.e. ~(((char *)1)*) was being
7531         erroneously reduced to a literal.
7532         * src/hc08/ralloc.c (packRegisters, rematStr),
7533         * src/hc08/gen.c (aopForRemat): allow literals to be rematerialized in
7534         some cases
7535
7536 2003-11-08 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
7537
7538         * src/mcs51/main.c: fixed bug #838385. Thanks to Josef Pavlik for finding and fixing
7539         * doc/sdccman.lyx: changed from 'article' to 'book'
7540         * doc/Makefile: readded test_suite_spec and cdbfileformat
7541
7542 2003-11-08 Bernhard Held <bernhard AT bernhardheld.de>
7543
7544         * device/include/stdlib.h: include malloc.h to comply with ANSI
7545         * support/regression/tests/malloc.c: include stdlib.h instead of malloc.h
7546
7547 2003-11-07 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
7548
7549         * doc/Makefile: sdccman.pdf should build with correct references (more info in commit msg)
7550         * doc/clean.mk: also remove *.out files
7551         * doc/sdccman.lyx: some additions, larger top/bottom margins
7552
7553 2003-11-07 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
7554
7555         * src/SDCC.y: fixed bug #837365
7556         * support/regression/tests/bitopcse.c
7557         * src/hc08/gen.c (genPointerGet): Don't assume pointer operand is
7558         a symbol (might be valop instead)
7559         * device/lib/Makefile.in: added errno.c to HC08SOURCES
7560         * device/lib/clean.mk: added hc08 to the cleaning list
7561
7562 2003-11-04  Borut Razem <borut.razem AT siol.net>
7563
7564         * configure, configure.in, sdcc_vc_in.h, sdcconf_in.h: reverted changes,
7565           made 2003-11-04
7566         * support/Util/NewAlloc.c, as/hc08/lklibr.c, as/mcs51/lklibr.c,
7567           as/z80/aslist.c, as/z80/assym.c: removed inclusion of nonstandard malloc.h;
7568           malloc is declared in standard stdlib.h
7569
7570 2003-11-06 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
7571
7572         * device/lib/hc08/Makefile: need to clean .rel not .o files
7573         * src/hc08/gen.c (genDjnz): can't use djnz with extended addressing mode
7574
7575 2003-11-06 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
7576
7577         * src/port.h,
7578         * src/hc08/main.c,
7579         * src/mcs51/main.c,
7580         * src/ds390/main.c,
7581         * src/z80/main.c,
7582         * src/avr/main.c,
7583         * src/pic/main.c,
7584         * src/pic16/main.c,
7585         * src/xa51/main.c: added hasExtBitOp & oclsExpense functions to ports
7586         * src/SDCCicode.c: changed several IS_FARSPACE tests to isOclsExpensive
7587         tests (which uses the port's oclsExpense function)
7588         * src/SDCC.y,
7589         * src/SDCCast.c,
7590         * src/SDCCicode.c,
7591         * src/hc08/gen.c,
7592         * src/ds390/gen.c,
7593         * src/mcs51/gen.c: added support for the SWAP iCode (RFE #834167)
7594
7595 2003-11-04 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
7596
7597         * src/SDCCcse.c (ifxOptimize),
7598         * src/SDCClabel.c (labelIfx, deleteIfx): When the condition to
7599         an IFX iCode is volatile, convert to DUMMY_READ_VOLATILE instead
7600         deleting the IFX iCode.
7601         * src/hc08/ralloc.c: reduced unneeded slocs
7602         * src/hc08/gen.c: fixed bug in asmopToBoolean
7603
7604 2003-11-04  Borut Razem <borut.razem AT siol.net>
7605
7606         * configure, configure.in, sdcc_vc_in.h, sdcconf_in.h,
7607           support/Util/NewAlloc.c, as/hc08/lklibr.c, as/mcs51/lklibr.c,
7608           as/z80/aslist.c, as/z80/assym.c: decision to include malloc.h
7609           transferred to configure
7610
7611 2003-11-03 Bernhard Held <bernhard AT bernhardheld.de>
7612
7613         Use headers defined in the C[++] standards:
7614         * sim/ucsim/gui.src/serio.src/fileio.cc
7615         * sim/ucsim/gui.src/serio.src/frontend.cc
7616         * sim/ucsim/gui.src/serio.src/main.cc
7617         * sim/ucsim/gui.src/serio.src/posix_signal.cc
7618         * support/Util/NewAlloc.c
7619         * as/hc08/lklibr.c
7620         * as/mcs51/lklibr.c
7621         * as/z80/aslist.c
7622         * as/z80/assym.c
7623
7624 2003-11-03  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
7625
7626         * Added MSVC projects for hc08 assembler and linker:
7627         all.dsp, config.dsp, sdcc.dsw, /as/hc08/as_hc08.dsp,
7628         /as/hc08/link_hc08.dsp
7629
7630 2003-11-03 Martin Helmling <Martin.Helmling AT octo-soft.de>
7631
7632         * debugger/mcs51/cmd.c: allows filename starting with digit(+ some debug)
7633
7634 2003-11-02 Bernhard Held <bernhard AT bernhardheld.de>
7635
7636         * src/SDCCmain.c (linkEdit): "fixed" again bug #833605
7637
7638 2003-11-01 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
7639
7640         * src/mcs51/main.c: xdata initialization is 13 bytes shorter now
7641
7642 2003-10-31  Borut Razem <borut.razem AT siol.net>
7643
7644         * support/cpp2/cpplib.h,
7645           support/cpp2/cpplib.c,
7646           support/cpp2/cpplex.c,
7647           support/cpp2/cppinit.c: introduced #pragma preproc_asm [ + | - ]
7648           to switch _asm block preprocessing on / off. Default is
7649           #pragma preproc_asm +
7650
7651 2003-10-31  Borut Razem <borut.razem AT siol.net>
7652
7653         * support/cpp2/cpplex.c: Fixed _WIN32 problem with CR-CR-LF sequences
7654           when outputting comment blocks (when executed with -C option) and
7655           _asm (SDCPP specific) blocks
7656
7657 2003-10-31 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
7658
7659         * as/hc08/lkrloc.c (relr): Fixed ihx output, fixed lastAreaIndex warning
7660
7661 2003-10-31 Klaus Flittner <klaus_flittner AT gmx.de>
7662
7663         * src/SDCCcse.c (updateSpillLocation): fixed bug #808027
7664
7665 2003-10-31 Bernhard Held <bernhard AT bernhardheld.de>
7666
7667         * src/SDCCmain.c (linkEdit): "fixed" bug #833605
7668         * src/SDCCast.c (decorateType): fixed bug #832664
7669
7670 2003-10-31  Borut Razem <borut.razem AT siol.net>
7671
7672         * support\cpp2\cpplex.c: fixed for SDCPP:
7673           comments(when executed with -C option) and _asm blocks
7674           were included even if they where in skipped #if block.
7675           Applied solution from GCC cpp 3.3.2
7676
7677 2003-10-31  Borut Razem <borut.razem AT siol.net>
7678
7679         * src/SDCC.lex: sdcc now understands both formats:
7680           '# <line_number> <file_name>' and
7681           '#line <line_number> <file_name>'
7682         * support/cpp2/cppmain.c: sdcpp now generates the standard
7683           '# <line_number> <file_name>' instead of former
7684           '#line <line_number> <file_name>'
7685
7686 2003-10-30  Borut Razem <borut.razem AT siol.net>
7687
7688         * support/cpp2/cpphash.h,
7689         * support/cpp2/cpplib.h
7690         * support/cpp2/cpplex.c,
7691         * support/cpp2/cppmain.c,
7692         * support/cpp2/cppinit.c: fixed bug #828015 - Syntax variation for _asm character constants
7693
7694 2003-10-30 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
7695
7696         Fixed a number of problems revealed by bug #827883.
7697         * src/SDCCloop.c (loopInvariants): Spill location of the
7698         result operand should be recomputed if extracted from
7699         a loop. Also, don't extract assignments of an iTemp
7700         from a literal.
7701         * src/SDCCast.c (isConformingBody): loop reversal should
7702         not occur if the control variable is involved with a
7703         relational operator.
7704
7705 2003-10-28 Bernhard Held <bernhard AT bernhardheld.de>
7706
7707         * .version: bumped to 2.3.6 to reflect the big improvements
7708         made by Erik and Klaus. Thanks!
7709
7710 2003-10-28 Klaus Flittner <klaus_flittner AT gmx.de>
7711
7712         Replaced the livrange code.
7713         * src/SDCClrange.c: added new LR code
7714         * src/SDCCloop.c,
7715         * src/SDCCBBlock.h: removed remainig parts from old LR code
7716         * src/ds390/ralloc.c,
7717         * src/ds390/gen.c: minor fixes to make it work with new code
7718
7719 2003-10-28 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
7720
7721         * as/hc08/asm.h,
7722         * as/hc08/lkrloc.c,
7723         * src/hc08/gen.c,
7724         * src/hc08/ralloc.c: Fix various warnings related to the hc08
7725         * src/SDCCicode.c (geniCodePreInc, geniCodePreDec): Fixed bug #829717
7726         (tweaked fix for bug #818696)
7727
7728 2003-10-23 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
7729
7730         * src/z80/ralloc.c (joinPushes): Fixed bug #828742
7731
7732 2003-10-23 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
7733
7734         * src/SDCCmain.c,
7735         * sdccconf_in.h: Fixed bug #828387 (--disable-hc08-port didn't work)
7736         * src/mcs51/gen.c (gencjneshort),
7737         * src/ds390/gen.c (gencjneshort): Made comparison with AOP_IMMD operand
7738         more efficient (per Scott Bronson's suggestion)
7739
7740 2003-10-22 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
7741
7742         Extended the semantics of the critical keyword to include
7743         individual statements. See RFE #827755 and #799831
7744         * src/SDCC.y
7745         * src/SDCCicode.c
7746         * src/SDCCopt.c
7747         * src/SDCCast.c
7748         * support/Util/SDCCerr.c
7749         * support/Util/SDCCerr.h
7750         * src/mcs51/gen.c
7751         * src/ds390/gen.c
7752         * src/hc08/gen.c
7753
7754 2003-10-19  Borut Razem <borut.razem AT siol.net>
7755
7756         * src/SDCC.lex: fixed bug #825944 - defined yytext_ptr to make it compile with flex 2.5.31
7757
7758 2003-10-19 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
7759
7760         * src/SDCCicode.c (geniCodePreInc, geniCodePreDec, ast2iCode):
7761         Fixed bug #818696
7762         * src/SDCCast.c (ast_print): Fixed --dumptree so that preincrement
7763         and predecrement operand is displayed
7764
7765 2003-10-13 Bernhard Held <bernhard AT bernhardheld.de>
7766
7767         * src/SDCCval.c (valMinus): fixed bug #826041
7768
7769 2003-10-15 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
7770
7771         Some hc08 related updates that I missed earlier
7772         * sim/ucsim/stypes.h
7773         * support/regression/ports/hc08/spec.mk
7774
7775 2003-10-15 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
7776
7777         New target "hc08" for the Motorola 68hc08 family of micros
7778
7779         * configure
7780         * configure.in
7781         * Makefile
7782         * src/hc08/*
7783         * src/SDCCmain.c
7784         * src/port.h
7785         * sim/ucsim/hc08.src/*
7786         * sim/ucsim/configure.in
7787         * src/ucsim/configure
7788         * sim/ucsim/packages_in.mk
7789         * as/hc08/*
7790         * as/Makefile
7791         * device/include/mc68hc908qy.h
7792         * device/lib/hc08/*
7793         * device/lib/Makefile.in
7794         * support/regression/ports/hc08/*
7795         * support/regression/Makefile
7796
7797 2003-10-14 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
7798
7799         * src/z80/gen.c: fixed bug revealed by ast_constant_folding.c
7800         regression test
7801         * src/ds390/gen.c (genCast): fixed bug #821957
7802
7803 2003-10-13 Bernhard Held <bernhard AT bernhardheld.de>
7804
7805         * device/lib/logf.c: "fixed" overlay bug
7806         * support/regression/ports/host/spec.mk: added m library
7807         * support/regression/ports/mcs51-stack-auto/spec.mk: added float funcs
7808         * support/regression/tests/float_trans: added (for Eric)
7809
7810 2003-10-12 Bernhard Held <bernhard AT bernhardheld.de>
7811
7812         * src/mcs51/gen.c (genCpl): fixed bug
7813         http://sf.net/mailarchive/message.php?msg_id=6263915
7814
7815 2003-10-10 Bernhard Held <bernhard AT bernhardheld.de>
7816
7817         * src/SDCCast.c (decorateType): added extended constant folding
7818         * src/SDCCsymt.c (computeType): cleanup
7819         * src/SDCCval.c (valShift): minor optimization
7820         * support/regression/tests/ast_constant_folding.c: added
7821
7822 2003-10-09  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
7823
7824         * src/SDCCmain.c: removed some unintended changes
7825
7826 2003-10-09  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
7827
7828         * src/SDCCmain.c (setParseWithComma): fixed bug #816685
7829         * src/z80/gen.c: fixed part of bug #817589
7830         * src/SDCCsymt.c (checkFunction): fixed bug #817895
7831
7832 2003-10-08 Bernhard Held <bernhard AT bernhardheld.de>
7833
7834         Replaced cast (void **) with (void *) to avoid gcc 3 warning:
7835         * src/SDCCcflow.c
7836         * src/SDCCcse.c
7837         * src/SDCCdflow.c
7838         * src/SDCClabel.c
7839         * src/SDCClrange.c
7840         * src/SDCCmem.c
7841         * src/SDCCopt.c
7842         * src/SDCCpeeph.c
7843         * src/SDCCset.c
7844         * src/avr/ralloc.c
7845         * src/ds390/ralloc.c
7846         * src/izt/ralloc.c
7847         * src/mcs51/ralloc.c
7848         * src/pic/ralloc.c
7849         * src/pic16/ralloc.c
7850         * src/xa51/ralloc.c
7851         * src/z80/ralloc.c
7852         * src/z80/gen.c: removed unused label "release:"
7853
7854 2003-10-06  Borut Razem <borut.razem AT siol.net>
7855
7856         * src/SDCC.lex: removed definition of unused variables
7857           save_optimize and save_options
7858
7859 2003-10-06 Bernhard Held <bernhard AT bernhardheld.de>
7860
7861         * clean.mk: removed '=' in "-maxdepth=1"
7862         * src/SDCCloop.c: replace LRKLAUS with SDCC_LRKLAUS
7863         * src/SDCClrange.c: replace LRKLAUS with SDCC_LRKLAUS
7864
7865 2003-10-06  Borut Razem <borut.razem AT siol.net>
7866
7867         * src/SDCC.lex, src/SDCC.lex: use dbuf for "_asm" definitions;
7868           my_unput() replaced by unput()
7869
7870 2003-10-05 Bernhard Held <bernhard AT bernhardheld.de>
7871
7872         * src/SDCCloop.c (assignmentsToSym, loopInduction): cast argument of
7873         setToNull() to (void *) to avoid gcc3.x's warning: "dereferencing
7874         type-punned pointer will break strict-aliasing rules"
7875         Old LR behaviour is again default; Klaus' LR can be choosen by
7876         defining the environment variable LRKLAUS
7877         * src/SDCCBBlock.h
7878         * src/SDCCloop.c
7879         * src/SDCClrange.c
7880         * src/ds390/ralloc.c (spillThis): applied Klaus' patch
7881         * clean.mk: fixed removal of files in bin/CVS/
7882         * device/lib/clean.mk: fixed removal of directories small and large
7883         * support/Util/SDCCerr.c: changed W_INT_OVL to ERROR_LEVEL_PEDANTIC
7884         * src/SDCCicode.c,
7885         * src/SDCCval.c: removed superflous test for pedantic
7886
7887 2003-10-05  Borut Razem <borut.razem AT siol.net>
7888
7889         * src/SDCC.lex, support/Util/SDCCerr.c, sdcc/support/Util/SDCCerr.h:
7890           Fixed bug #816692: introduced new ERROR_LEVEL_PEDANTIC warning
7891           message "unmatched #pragma SAVE and #pragma RESTORE"
7892
7893 2003-10-04  Frieder Ferlemann <Frieder.Ferlemann AT web.de>
7894
7895         * doc/sdccman.lyx: various additions and updates (interrupts, inline
7896           assembly, critical functions, atomic, nojtbound)
7897
7898 2003-10-04 Bernhard Held <bernhard AT bernhardheld.de>
7899
7900         Applied liferange patch from Klaus Flittner <klaus_flittner AT gmx.de>
7901         * src/SDCCBBlock.h
7902         * src/SDCCloop.c
7903         * src/SDCCloop.h
7904         * src/SDCClrange.c
7905
7906 2003-10-03  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
7907
7908         * src/z80/gen.h,
7909         * src/z80/gen.c (aopOp, aopGet, aopPut, genDummyRead),
7910         * src/mcs51/gen.h
7911         * src/mcs51/gen.c (aopOp, aopGet, aopPut, genDummyRead),
7912         * src/ds390/gen.h
7913         * src/ds390/gen.c (aopOp, aopGet, aopPut, genDummyRead),
7914         * src/SDCCicode.c (ast2iCode, geniCodeDummyRead): Fixed bug #663539
7915         * src/SDCCopt.c (killDeadCode): Fixed bugs #663539 & #816705
7916
7917 2003-10-02  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
7918
7919         * src/z80/gen.c (genRet): fixed bug #524753
7920         * src/z80/gen.c (genCast): fixed internal error on cast from
7921         pointer to long
7922         * src/z80/gen.c (_saveRegsForCall, emitCall): adapted Johan's
7923         fix for bug #477835 to the z80
7924         * src/z80/gen.c (genZ80code, _vemit2, _emit2): added support
7925         for tracking iCodes in the peephole optimizer for z80
7926
7927 2003-10-01  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
7928
7929         * src/SDCCicode.c (geniCodeJumpTable, geniCodeSwitch): fixed
7930         the other part of bug #814548
7931         * src/SDCCpeeph.c (labelInRange): fixed bug #814558
7932
7933 2003-09-30  Bernhard Held <bernhard AT bernhardheld.de>
7934
7935         * src/SDCCcse.c: fixed part of bug #814548
7936
7937 2003-09-28  Borut Razem <borut.razem AT siol.net>
7938
7939         * src/asm.c: rewrite of printILine() to use temporary file instead
7940           a pipe
7941         * src/xa51/main.c: commented out declaration of int rewinds
7942
7943 2003-09-27  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
7944
7945         * src/SDCCicode.c (geniCodeJumpTable): Fixed bug #813206
7946
7947 2003-09-26  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
7948
7949         * src/SDCCdflow.c (computeDataFlow): Fixed bug #810746
7950         * src/asm.c (printILine): Fixed bug #811015
7951
7952 2003-09-22  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
7953
7954         *link/z80/lklibr.c, as/mcs51/lklibr.c: Improved memory allocation and
7955         freeing.
7956
7957 2003-09-21  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
7958
7959         * src/z80/gen.c (setupToPreserveCarry): Fixed bug #796955
7960         * src/z80/gen.c (setupPair, genMovePairPair): Fixed setupPair
7961         to correctly handle general case of AOP_PAIRPTR
7962         * src/z80/gen.c (aopGet, aopPut): Generalized AOP_PAIRPTR handling
7963
7964 2003-09-21  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
7965
7966         * src/mcs51/ralloc.c (fillGaps),
7967         * src/ds390/ralloc.c (fillGaps): fixed bug #810093 (yet another
7968         register positioning bug)
7969
7970 2003-09-21  Bernhard Held <bernhard AT bernhardheld.de>
7971
7972         * device/lib/_fsdiv.c: replaced (1<<31) by (1ul<<31)
7973
7974 2003-09-19  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
7975
7976         * src/mcs51/gen.c (loadDptrFromOperand, genFarPointerGet,
7977         genCodePointerGet, genGenPointerGet, genFarPointerSet,
7978         genGenPointerSet): handle AOP_DPTR correctly when loading dptr
7979         (ralloc doesn't intentionally do this now, but perhaps later)
7980         * src/mcs51/ralloc.c (serialRegAssign, fillGaps),
7981         * src/ds390/ralloc.c (serialRegAssign, fillGaps): fixed some
7982         register positioning bugs (Fixed bug #762602 and #795325)
7983         * src/SDCCicode.c (geniCodeDerefPtr): Track output class correctly
7984         (Fixed bug #808779)
7985         * src/z80/gen.c: increased _vemit2's buffer[] to handle long
7986         lines that --i-code-in-asm generates
7987
7988 2003-09-18  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
7989
7990         *link/z80/lklibr.c, as/mcs51/lklibr.c: Fixed Linux segfaults when
7991         trying to fclose a FILE* that was already closed.
7992
7993 2003-09-18  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
7994
7995         * src/SDCCsymt.c (structElemType): fixed bug #808291 (members
7996         of const struct should be treated as if const themselves)
7997
7998 2003-09-18  Bernhard Held <bernhard AT bernhardheld.de>
7999
8000         * src/SDCCval.c (valPlus, valMinus): fixed bug #808337
8001
8002 2003-07-06  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
8003
8004         * support/librarian/sdcclib.c: Generate correct offsets for libraries with
8005         Unix (/n) and DOS (/r/n) line terminations.
8006
8007 2003-09-17  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
8008
8009         * src/SDCCopt.c (cnvFromFloatCast, cnvToFloatCast): fixed
8010         bug #613775
8011
8012 2003-09-16  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
8013
8014         * src/mcs51/gen.c (genFunction, genEndFunction),
8015         * src/ds390/gen.c (genFunction, genEndFunction): Moved save
8016         and restore of EA so that stack offsets to parameters are
8017         correct when using both critical and reentrant/stack-auto.
8018         * src/z80/gen.c (aopOp): removed erroneous assertion about sloc
8019         size (can be triggered in error if sloc is shared between
8020         different sized objects)
8021         * device/include/float.h: fixed macros to explicitly use
8022         unsigned long where needed
8023
8024 2003-09-15  Bernhard Held <bernhard AT bernhardheld.de>
8025
8026         Feature req. 799831: added code to allow nesting of critical functions
8027         * src/mcs51/gen.c (genFunction, genEndFunction)
8028         * src/ds390/gen.c (genFunction, genEndFunction)
8029
8030 2003-09-14  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
8031
8032         * src/SDCCsymt.c (sclsFromPtr),
8033         * src/SDCCsymt.h,
8034         * src/SDCCast.c (decorateType): fixed bug #462971. Also, better
8035         support for standard C idiom of memory mapped variables; for
8036         example, *((xdata int*)0x1234) = 1 is now internally equivalent
8037         to xdata int at 0x1234 tempvar = 1.
8038         * sim/ucsim/z80.src/inst_xd.cc: fixed bug #805483 with patch
8039         provided by Akiya ISHIDA
8040
8041 2003-09-13  Bernhard Held <bernhard AT bernhardheld.de>
8042
8043         * src/SDCCval.c (cheapestVal): reenabled to reduce int to char
8044         * src/SDCCval.c (constVal): added reduction from int to char
8045         * src/SDCCval.c (valMult, valDiv): fixed sign handling
8046         * src/SDCCval.c (valShift): fixed after change of cheapestVal()
8047         * src/SDCCval.c (valCompare): fixed EQ_OP and NE_OP; they have
8048         to ignore the sign
8049         * support/regression/tests/shifts.c: fixed
8050
8051 2003-09-13  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
8052
8053         * src/z80/gen.c (genXor): Fixed bug #805445
8054
8055 2003-09-12  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
8056
8057         Fixed bug #621531 (const & volatile confusion in the type chain).
8058         DCL_PTR_CONST, DCL_PTR_VOLATILE, & IS_PTR_CONST now exclusively
8059         refer to the const or volatile state of the pointer itself.
8060
8061         * src/SDCCast.c
8062         * src/SDCCglue.c
8063         * src/SDCCicode.c
8064         * src/SDCCsymt.c
8065         * src/SDCCval.c
8066         * src/SDCC.y
8067         * src/SDCCsymt.h
8068         * src/pic/gen.c
8069         * src/pic/ralloc.c
8070         * src/pic16/gen.c
8071         * src/pic16/ralloc.c
8072         * support/regression/tests/const.c
8073
8074 2003-09-10  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
8075
8076         When checking for duplicated modules, use absolute paths
8077         instead of relative paths.  Files changed:
8078
8079         * as/mcs51/lklib.c
8080         * link/z80/lklib.c
8081
8082 2003-09-09  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
8083
8084         * src/SDCCicode.c (geniCodeLogic): fixed bug #797572
8085
8086 2003-09-07  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
8087
8088         * device/include/string.h: added size_t typedef, changed
8089         prototypes to use size_t, eliminated separate reentrant and
8090         non-reentrant declarations, added _memmove declaration
8091         * device/lib/_memcpy.c: changed to use size_t instead of int,
8092         changed /4 to >>2 to avoid division library call
8093         * device/lib/_memcmp.c,
8094         * device/lib/_memset.c,
8095         * device/lib/_strncat.c,
8096         * device/lib/_strncpy.c,
8097         * device/lib/_strncmp.c: changed to use size_t instead of int
8098         * device/lib/_memmove.c: new file (fixed bug #772294)
8099         * device/lib/Makefile.in: added _memmove.c
8100         * device/lib/z80/asm_strings.s: fixed bug #772290
8101         * support/regression/tests/bitfields.c: attempt to fix host assertion
8102         failure on amd64-unknown-linux2.2
8103
8104 2003-09-06  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
8105
8106         * src/z80/gen.c (aopPut, spillPairReg): fixed bug #800998
8107         * src/z80/gen.c (genFunction, genEndFunction): fixed "bug" #774700
8108         * as/z80/asmain.c (main): fixed bug #801766
8109
8110 2003-09-06  Bernhard Held <bernhard AT bernhardheld.de>
8111
8112         * src/SDCCicode.c (ast2iCode): fixed differences in iCode with different
8113         compilers
8114
8115 2003-09-05  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
8116
8117         * src/SDCCast.c (isConformingBody): fixed loop reversal bug
8118         reported in bug #800609
8119
8120 2003-09-04  Vangelis Rokas <vrokas AT otenet.gr>
8121
8122         * Top header beautifications in src/pic16 directory:
8123           device.c, device.h, gen.c, gen.h, genarith.c, glue.c, pcode.c,
8124           pcodeflow.c, pcodeflow.h, pcode.h, pcodepeep.c, pcoderegs.c,
8125           pcoderegs.h, ralloc.c, ralloc.h
8126         * main.c: added top header and GPL license notice
8127         * pcode.c: fixed the if-conditional warning
8128
8129 2003-09-04  Bernhard Held <bernhard AT bernhardheld.de>
8130
8131         * device/lib/_mullong.c: replaced int by short for gcc
8132
8133 2003-08-31  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
8134
8135         * src/SDCCpeeph.c (notVolatile, notVolatileVariable): handle IFX
8136         and JUMPTABLE iCodes properly now (worked by accident before)
8137         * src/mcs51/gen.c (leftRightUseAcc),
8138         * src/ds390/gen.c (leftRightUseAcc): handle IFX and JUMPTABLE
8139         iCode properly now. Use getSize instead of nRegs since a & b
8140         aren't part of the nRegs tally.
8141
8142 2003-08-31  Vangelis Rokas <vrokas AT otenet.gr>
8143
8144         * src/pic16/main.c: corrected offsets of interrupt vectors in _pic16_genIVT()
8145         * src/pic16/pcode.c: fix to disable inserting BANKSEL directive
8146           before instructions that use the _STATUS register
8147
8148 2003-08-31  Bernhard Held <bernhard AT bernhardheld.de>
8149
8150         * src/mcs51/gen.c (freeAsmop): fixed off by one in stack offset (AOP_STK)
8151         * src/mcs51/gen.c (genNearPointerSet): added missing opcode for
8152         fetching of the pointer
8153         * src/mcs51/gen.c (genNearPointerGet): added reuse of PREG,
8154         copied from genNearPointerSet()
8155         * src/mcs51/gen.c (genNearPointerGet): don't pop r0/r1, if RESULTONSTACK
8156         * src/mcs51/gen.c: changed order of freeAsmop(left/right/result)-calls.
8157         If they pop r0/r1 they must be called in the opposite order than aopOp().
8158         * device/lib/_mullong.c: fixed for "--model-large --int-long-reent"
8159         (resp. --stack-auto), prepared for --xstack
8160
8161 2003-08-28  Frieder Ferlemann <Frieder.Ferlemann AT web.de>
8162
8163         * doc/sdccman.lyx: reverted tables to those in cvs 1.64
8164
8165 2003-08-28  Bernhard Held <bernhard AT bernhardheld.de>
8166
8167         * device/lib/_startup.c: quick & dirty fix for ds390/ds400;
8168         these ports have their own __sdcc_external_start()
8169
8170 2003-08-26  Bernhard Held <bernhard AT bernhardheld.de>
8171
8172         pic patch provided by Slade Rich <slade_rich AT yahoo.com>
8173         * src/pic/glue.c (pic14printPublics): fixed bug introduced when symbol
8174         type for bits was changed. It resulted in bit variables becoming
8175         global, which is not permitted in PIC 14 assembly output.
8176
8177 2003-08-23  Frieder Ferlemann <Frieder.Ferlemann AT web.de>
8178
8179         * doc/sdccman.lyx: various additions and updates. Rearranged sections
8180
8181 2003-08-22  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
8182
8183         Z80 and MCS51 linkers complaint if a public symbol is defined
8184         in more than one library module:
8185
8186         * as/mcs51/lklib.c
8187         * link/z80/lklib.c
8188         * as/mcs51/Makefile.in
8189
8190 2003-08-22  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
8191
8192         A few small changes that speed up the peephole optimizer.
8193
8194         * src/SDCCpeeph.c
8195
8196 2003-08-22  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
8197
8198         Try to make the peephole optimizer smarter by maintaining
8199         an association between the assembly source code and the
8200         iCodes that originated them. Put this information to use
8201         with a new peephole rule condition "notVolatile" so that
8202         the rules can be aggressive yet still safe.
8203
8204         * src/SDCCpeeph.c
8205         * src/SDCCpeeph.h
8206         * src/mcs51/gen.c
8207         * src/mcs51/peeph.def
8208
8209 2003-08-20  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
8210
8211         Fixed bug #741761
8212
8213         * src/mcs51/gen.c (aopForSym, leftRightUseAcc),
8214         * src/ds390/gen.c (aopForSym, leftRightUseAcc): preserve A and B
8215         if the left or right operand symbols have the accuse flag set.
8216
8217 2003-08-20  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
8218
8219         Changed the type of the result of the ! (NOT) operator to char;
8220         previously it returned the same type as the source. This allows
8221         us to eliminate all the genFloatNot functions (all of its target
8222         implementations were very buggy) since !float can use the same
8223         code as !long now.
8224
8225         * src/SDCCicode.c (ast2iCode): ! returns char
8226         * src/mcs51/gen.c (genNot, genNotFloat),
8227         * src/ds390/gen.c (genNot, genNotFloat),
8228         * src/z80/gen.c (genNot, genNotFloat),
8229         * src/pic/gen.c (genNot, genNotFloat),
8230         * src/pic16/gen.c (genNot, genNotFloat): eliminated genNotFloat
8231
8232 2003-08-19  Bernhard Held <bernhard AT bernhardheld.de>
8233
8234         pic patch provided by Slade Rich <slade_rich AT yahoo.com>
8235         1. Interrupt would not compile properly. Ensure PCLATH register is saved
8236            during interrupts. Ensure WSAVE is located at a shared bank address.
8237         2. Fixed page selection in some places
8238         3. Fixed BTFSS/C to where necessary use registers directly and not simply
8239            the registers name strings.
8240         4. Fixed "signed / unsigned compare" compiler warnings.
8241         5. The PIC port manages its own allocation of the general purpose
8242            registers, but makes no attempt to reuse them. As a result when
8243            compiling it soon runs out of general purpose registers. Some
8244            additional code was added to the files pcode.c and device.c to walk
8245            through the function call tree and rename the registers so that they
8246            get reused.
8247
8248         * src/pic/device.c
8249         * src/pic/gen.c
8250         * src/pic/glue.c
8251         * src/pic/pcode.c
8252         * src/pic/pcode.h
8253         * src/pic/ralloc.c
8254         * src/pic/ralloc.h
8255         * src/pic/genarith.c: Fixed problems with PIC 14 port in functions
8256         genPlus() & genMinus() when the result is the same as left or right
8257
8258 2003-08-18  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
8259
8260         * src/z80/gen.c (isUnsplitable, fetchPairLong): fixed bug #770454
8261
8262 2003-08-18  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
8263
8264         Made bitfield a distinct type from bit so that bitfields
8265         convert as per ANSI C and bits retain their traditional
8266         boolean style behaviour. Implemented bitfield support in
8267         the z80 port.
8268
8269         * src/SDCCsymt.h,
8270         * src/SDCCsymt.c,
8271         * src/SDCCast.c,
8272         * src/cdbFile.c,
8273         * src/mcs51/gen.c,
8274         * src/ds390/gen.c: bit v bitfield split
8275         * src/z80/gen.c: New support for bitfields
8276         * support/regression/tests/bitfields.c: reenabled z80,
8277         added more tests
8278
8279 2003-08-17  Frieder Ferlemann <Frieder.Ferlemann AT web.de>
8280
8281         Rules 246.x, 247.x relate to bitfields, the others speed up
8282         access to xdata mapped I/O devices.
8283
8284         * src/mcs51/peeph.def: added 26 peepholes 246.x - 248.x, 180.x
8285
8286 2003-08-16  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
8287
8288         Cleaned up genPackBits and genUnpackBits and added two helper
8289         functions, emitPtrByteGet & emitPtrByteSet. Added optimizations
8290         for literal assignments in genPackBits (thanks to Frieder for
8291         reminding me).
8292
8293         * src/mcs51/gen.c
8294         * src/ds390/gen.c
8295
8296 2003-08-16  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
8297
8298         Fixed bug #748310 (pointer to function type mishandled when the
8299         function name is omitted). Also fixed a SIGSEGV when a function
8300         attribute (reentrant, etc) is used on a non-function or on a
8301         function but misplaced before the parameter list.
8302
8303         * src/SDCC.y (abstract_declarator, abstract_declaractor2): fixed
8304         bug #748310
8305         * src/SDCC.y (declarator2_function_attributes): avoided SIGSEGV
8306         * support/Util/SDCCerr.h,
8307         * support/Util/SDCCerr.c: Added func attr misuse error msg
8308
8309 2003-08-13  Bernhard Held <bernhard AT bernhardheld.de>
8310
8311         Fixed bug #787649 by anonymous
8312         * src/SDCCglue.c (emitRegularMap): added emission of sloc for func ptr
8313         * src/ds390/gen.c (aopForSym): fixed func ptr in sloc
8314
8315 2003-08-14  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
8316
8317         Fixed numerous bitfield problems.
8318
8319         * src/SDCC.y: More bitfield related error checking
8320         * src/SDCCsymt.h,
8321         * src/SDCCsymt.c (compStructSize): fixed bitfield offset calc
8322         * support/Util/SDCCerr.h,
8323         * support/Util/SDCCerr.c: Added & edited some bitfield err msgs
8324         * src/mcs51/gen.c (genPackBits, genUnpackBits): fixed mask bugs
8325         * src/ds390/gen.c (genPackBits, genUnpackBits): fixed mask bugs
8326         * support/regression/tests/bitfields.c: tests added
8327
8328 2003-08-13  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
8329
8330         Made the constant following the "interrupt" keyword optional. If
8331         omitted, the function will not automatically be given an entry
8332         in the interrupt vector table (similar to #pragma NOIV, but
8333         less syntacticly kludgy). The interrupt number is also now
8334         range checked. Also fixed a bug in the high order bit example
8335         in the manual.
8336
8337         * src/SDCC.y
8338         * src/SDCCmem.c
8339         * src/SDCCglue.c
8340         * src/SDCCsymt.h
8341         * support/Util/SDCCerr.c
8342         * support/Util/SDCCerr.h
8343         * doc/sdccman.lyx
8344
8345 2003-08-13  Bernhard Held <bernhard AT bernhardheld.de>
8346
8347         * src/SDCCcse.c (algebraicOpts): fix bug converting op from value to type
8348         * src/SDCCicode.c (operandOperation): rewritten some ops
8349         (*, ==, unary_minus) to fix possible overflows and to accord with ANSI
8350         * src/SDCCsymt.c (computeType): literals are handled the same way as any
8351         other type
8352         * src/SDCCval.c (cheapestVal): removed, it doesn't accord with ANSI (can
8353         be re-activated by defining REDUCE_LITERALS)
8354         * src/SDCCval.c (constVal): fixed; hex and octal constants can be
8355         unsigned, but are signed by default
8356         * src/SDCCval.c (constVal): rearranged
8357         * src/SDCCval.c (valMod): preliminary fix
8358         * src/SDCCval.c (valCastLiteral): use TYPE_* types
8359         * support/regression/literalop.c: added, work in progress
8360
8361 2003-08-12  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
8362
8363         Generate warnings for useless declarations like "char data;"
8364         that don't do what new users expect.
8365
8366         * src/SDCC.y
8367         * support/Util/SDCCerr.h
8368         * support/Util/SDCCerr.c
8369
8370 2003-08-09  Bernhard Held <bernhard AT bernhardheld.de>
8371
8372         * src/SDCCval.c (valMult): fix overflow detection of negative int
8373
8374 2003-08-07  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
8375
8376         * src/z80/ralloc.c (joinPushes): made compatible with new signedness
8377
8378         Changes to support big endian targets:
8379
8380         * src/ports.h
8381         * src/SDCCglue.c
8382         * src/avr/main.c
8383         * src/ds390/main.c
8384         * src/izt/i186.c
8385         * src/mcs51/main.c
8386         * src/pic/main.c
8387         * src/pic16/main.c
8388         * src/xa51/main.c
8389         * src/z80/main.c
8390
8391 2003-08-06  Bernhard Held <bernhard AT bernhardheld.de>
8392
8393         * src/SDCCval.c (cheapestVal): changed behaviour to the same as constVal()
8394         * device/lib/time.c: fixed warning "integer overflow in expression"
8395
8396 2003-08-05  Bernhard Held <bernhard AT bernhardheld.de>
8397
8398         * src/SDCCval.c (cheapestVal, valueFromLit): use TYPE_* types
8399         * src/SDCCval.c (constVal): changed default to signed; hex and octal
8400         constants are unsigned; added recognition of "u" flag for unsigned
8401         * src/SDCCval.c (valMult): fixed signdness, added warning for overflow
8402         * src/SDCCval.c (valDiv, valMod): fixed signdness
8403         * src/SDCCicode.c (operandOperation): fixed critical typo; fixed
8404         signedness of modulo, left and right shift
8405         * support/Util/SDCCerr.c: added warning "integer overflow in expression"
8406         * support/Util/SDCCerr.h: added warning W_INT_OVL
8407         * src/SDCCast.c (decorateType): fixed gcc3.3 warning
8408         * src/SDCCast.c (ast_print): improved output of constants
8409
8410 2003-08-04  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
8411
8412         Fixed some warnings when building with MSVC:
8413
8414         * as\mcs51\asdata.c
8415         * as\z80\asdata.c
8416         * as\mcs51\asm.h
8417         * as\z80\asm.h
8418         * link\z80\aslink.h
8419         * link\z80\lkdata.c
8420         * link\z80\lkeval.c
8421         * link\z80\lkgb.c
8422         * link\z80\lkihx.c
8423         * link\z80\lks19.c
8424         * link\z80\lksym.c
8425         * support\cpp2\cpplib.c
8426         * src\ds390\gen.c
8427         * src\mcs51\gen.c
8428
8429 2003-08-03  Bernhard Held <bernhard AT bernhardheld.de>
8430
8431         * src/SDCCast.c (constExprTree): fix bug #781827 by Carl Worth <cworth AT isi.edu>
8432
8433 2003-08-01  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
8434
8435         * support\librarian\clean.mk: Do not remove Makefile.
8436         * support\librarian\Makefile: added.
8437
8438 2003-08-01  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
8439
8440         Added librarian to MSVC build:
8441         * all.dsp
8442         * sdcc.dsw
8443         * support\librarian\librarian.dsp
8444
8445         'configure' not needed for librarian, removed:
8446         * support\librarian\configure
8447         * support\librarian\configure.in
8448         * support\librarian\config_in.h
8449         * support\librarian\Makefile.in
8450
8451         Hopefully these ones built the librarian and the rest of sdcc properly:
8452         * Makefile
8453         * Makefile.common.in
8454
8455         Messed up 'configure', so revert to previous version:
8456         * configure
8457         * configure.in
8458
8459 2003-07-31  Bernhard Held <bernhard AT bernhardheld.de>
8460
8461         * src/SDCCicode.c (operandOperation): 3. fix, this time for Alpha; ULONG has 64 bits
8462         there, while the mantissa of a double is "only" 53 bits wide.
8463
8464 2003-07-31  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
8465
8466         Adding sdcclib to the build.  MSVC project coming soon.
8467         Files added/changed:
8468
8469         * support\librarian\clean.mk
8470         * support\librarian\configure
8471         * support\librarian\configure.in
8472         * support\librarian\config_in.h
8473         * support\librarian\Makefile.bcc
8474         * support\librarian\Makefile.in
8475         * support\librarian\sdcclib.c
8476         * Makefile.bcc
8477         * Makefile
8478         * Makefile.common.in
8479         * configure
8480         * configure.in
8481
8482 2003-07-29  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
8483
8484         Linker now complaints if linked modules have conflicting options, for
8485         example, one compiled using --model-large and another one compiled with
8486         --model-small.  The following files were modified:
8487
8488         * as\mcs51\asdata.c
8489         * as\mcs51\aslink.h
8490         * as\mcs51\asm.h
8491         * as\mcs51\asmain.c
8492         * as\mcs51\asout.c
8493         * as\mcs51\i51pst.c
8494         * as\mcs51\lkdata.c
8495         * as\mcs51\lklibr.c
8496         * as\mcs51\lkmain.c
8497         * as\z80\asdata.c
8498         * as\z80\asm.h
8499         * as\z80\asmain.c
8500         * as\z80\asout.c
8501         * as\z80\z80pst.c
8502         * link\z80\aslink.h
8503         * link\z80\lkdata.c
8504         * link\z80\lklibr.c
8505         * link\z80\lkmain.c
8506         * src\SDCCglue.c
8507
8508 2003-07-28  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
8509
8510         *link/z80/aslink.h, link/z80/lklibr.c, as/mcs51/aslink.h,
8511         as/mcs51/lklibr.c: Generate a warning when a library is not found.
8512
8513 2003-07-28  Bernhard Held <bernhard AT bernhardheld.de>
8514
8515         * src/z80/mappings.i: fix _mul[us][int,long] entries
8516
8517 2003-07-26  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
8518
8519         *src/SDCCmain.c: do not search for crt0.o when using --nostdlib
8520
8521 2003-07-24  Bernhard Held <bernhard AT bernhardheld.de>
8522
8523         * src/SDCCicode.c (operandOperation): really fixed problem with bitops
8524         * support/regression/tests/bitopcse.c: added
8525         fixed warning:
8526         * src/avr/gen.c:
8527         * src/pic/gen.c:
8528         * src/pic16/gen.c:
8529         * src/z80/gen.c:
8530         * src/xa51/gen.c:
8531
8532 2003-07-24  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
8533
8534         added support for new library format to z80, gbz80 linkers:
8535         *link/z80/aslink.h
8536         *link/z80/lklex.c
8537         *link/z80/lklib.c
8538         *link/z80/lklist.c
8539
8540 2003-07-24  Bernhard Held <bernhard AT bernhardheld.de>
8541
8542         * src/SDCCicode.c (operandOperation): fixed problem with bitops and 0xffffffff;
8543         after {double d = 0xffffffff; long l = d;} l will be 0x80000000 (LONG_MIN)
8544
8545 2003-07-23  Bernhard Held <bernhard AT bernhardheld.de>
8546
8547         added DUMMY_READ_VOLATILE:
8548         * src/SDCC.y:
8549         * src/avr/gen.c:
8550         * src/xa51/gen.c:
8551         * src/z80/gen.c:
8552         * src/pic/gen.c:
8553         * src/pic16/gen.c:
8554         * src/mcs51/gen.c:
8555         * src/ds390/gen.c:
8556         * src/SDCCcse.c (algebraicOpts): many improvements
8557         * src/SDCCcse.h: removed algebraicOpts()
8558         * src/SDCCicode.c (picDummyRead): added
8559
8560 2003-07-23  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
8561
8562         * as/mcs51/lkmem.c: Changed message "Insufficient DRAM memory" to
8563         "Insufficient space in data memory".
8564
8565 2003-07-20  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
8566
8567         * src/mcs51/gen.c: fixed bug #771358
8568         * src/z80/gen.c: fixed bug #759087
8569
8570 2003-07-20  Bernhard Held <bernhard AT bernhardheld.de>
8571
8572         * src/pic16/glue.c: minor cleanup by Vangelis
8573
8574 2003-07-19  Frieder Ferlemann <Frieder.Ferlemann AT web.de>
8575
8576         * device/include/regc515c.h: fixed #758477
8577         * device/lib/_gptrget.c: saving some cycles in generic pointer get
8578         * device/lib/_gptrput.c: saved a few bytes
8579         * my tab spacing is 8, yours too?)
8580         * device/lib/_ser.c: process RX bytes earlier than TX bytes
8581         * device/lib/serial.c: process RX bytes earlier than TX bytes
8582         * src/mcs51/gen.c(genGenPointerGet/Set): removed writing of type after postincrement
8583
8584 2003-07-18  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
8585
8586         * src/z80/gen.c: fixed some right shift bugs (#772726 among them)
8587
8588 2003-07-17  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
8589
8590     * link/z80/lklibr.c: fixed bug when there is a '.' in a library path.
8591
8592 2003-07-17  Bernhard Held <bernhard AT bernhardheld.de>
8593
8594         * device/lib/Makefile.in: bad fix, reverted to 1.43
8595
8596 2003-07-16  Bernhard Held <bernhard AT bernhardheld.de>
8597
8598         * device/lib/Makefile.in: added missing z80 object files
8599
8600 2003-07-14  Bernhard Held <bernhard AT bernhardheld.de>
8601
8602         * src/SDCCcse.c (algebraicOpts): CSE fun with &|^ and 0x00/0xff literals
8603         pic16 progress by Vangelis:
8604         * src/SDCCglobl.h:
8605         * src/SDCCmain.c:
8606         * src/pic/Makefile:
8607         * src/pic:
8608         * pic/Makefile:
8609         * pic16/device.c:
8610         * pic16/device.h:
8611         * pic16/gen.c:
8612         * pic16/gen.h:
8613         * pic16/genarith.c:
8614         * pic16/glue.c:
8615         * pic16/main.c:
8616         * pic16/pcode.c:
8617         * pic16/pcode.h:
8618         * pic16/pcodepeep.c:
8619         * pic16/peeph.def:
8620
8621 2003-07-13  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
8622
8623     * src/SDCCmain.c, src/SDCCglobl.h: added option --no-std-crt0
8624
8625 2003-07-12  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
8626
8627     * sdcc.dsw, all.dsp, link/z80/linkgbz80.dsp, as/z80/as-gbz80.dsp:
8628     added gbz80 build to MSVC project.
8629     * src/SDCCmain.c, src/SDCCglue.c, src/z80/main.c, src/z80/z80.dsp,
8630     link/z80/aslink.h, linkz80.dsp: cleaned up z80 and gbz80 asm files
8631     from 8051 stuff and setup so it links using a .lnk file.
8632
8633 2003-07-06  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
8634
8635     * support/librarian/sdcclib.c: sdcc librarian.
8636     * as/mcs51/aslink.h, as/mcs51/lklib.c: Support for libraries created
8637     with sdcclib.
8638
8639 2003-07-03  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
8640
8641     * as/mcs51/lkmain.c: properly handle extensions in function afile.
8642
8643 2003-07-02  Borut Razem <borut.razem AT siol.net>
8644
8645         * src/port.h, src/SDCCmain.c, src/pic/glue.h, src/pic/main.c,
8646         src/pic16/glue.h, sdcc/src/pic16/main.c, src/izt/i186.c,
8647         src/izt/tlcs900h.c, src/avr/main.c, src/ds390/main.c, src/mcs51/main.c,
8648         src/xa51/main.c, src/z80/main.c:
8649         virtualization of glue() function: each port has it's own glue function,
8650         which is accessed by do_glue function pointer in PORT.general structure
8651
8652 2003-07-01 Kevin Vigor <kevin AT vigor.nu>
8653
8654         * DS800C400 fun, improved ROM interface and tinibios.
8655
8656 2003-06-27 Kevin Vigor <kevin AT vigor.nu>
8657
8658         * More support for DS80C400. Now includes beginning of interface to ROM.
8659
8660 2003-06-25  Bernhard Held <bernhard AT bernhardheld.de>
8661
8662         * src/mcs51/gen.c (gencjneshort): fixed bug #760345
8663
8664 2003-06-20  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
8665
8666         * as/mcs51/lkaomf51.c: Make sure the size of the last procedure is correct.
8667
8668 2003-06-19  Borut Razem <borut.razem AT siol.net>
8669
8670         * src/z80/main.c: fixed Z80 port again: missing -k library paths in linker command line
8671
8672 2003-06-19  Borut Razem <borut.razem AT siol.net>
8673
8674         * src/SDCCutil.h, src/SDCCutil.c, src/SDCCglobl.h, src/SDCCmain.c, src/z80/main.c:
8675         fixed Z80 port - crt0.o: cannot open.
8676
8677 2003-06-19  Bernhard Held <bernhard AT bernhardheld.de>
8678
8679         * support/Util/MySystem.c (merge_command): revert bad fix
8680
8681 2003-06-18  Borut Razem <borut.razem AT siol.net>
8682
8683         * src/SDCC.lex, src/SDCCmain.c: fixed some warnings, introduced with changes made 15.06.1003
8684
8685 2003-06-18  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
8686
8687         * src/SDCCglobl.h, src/SDCCmain.c, doc/sdccman.lyx:
8688         option --use-stdout sends errors to stdout instead of stderr.
8689
8690 2003-06-18  Bernhard Held <bernhard AT bernhardheld.de>
8691
8692         * support/Util/MySystem.c (merge_command): quick fix for Linux segfault with \"cmd\" arg
8693
8694 2003-06-15  Borut Razem <borut.razem AT siol.net>
8695
8696         * support/cpp2/sdcc.h: HAVE_DOS_BASED_FILE_SYSTEM defined for _WIN32
8697         * src/SDCC.lex: cloneXxx and copyAndFreeXxx functions for options and optimize stack handling
8698         * src/SDCCglobl.h, src/SDCCmain.c, src/ds390/main.c, src/mcs51/main.c, src/z80/main.c:
8699         fixed width array of pointers replaced with sets;
8700         multiple include and lib paths ared transferred to preprocessor and linker
8701         * src/SDCCset.c, src/SDCCset.h: added function setFromSetNonRev() and mergeSets()
8702         * src/SDCCsymt.c: reimplemented function inCalleeSaveList() by using sets instead
8703         fixed width array of pointers
8704         * src/SDCCutil.c, src/SDCCutil.h: added functions fputStrSet(), appendStrSet(), joinStrSet();
8705         removed functions addToList(), join(), joinn(), pathCharsEquivalent(), pathCharTransform(),
8706         fixupPath(), getPathDifference()
8707         * src/ds390/gen.c, src/mcs51/gen.c: reimplemented function  inExcludeList() by using sets instead
8708         fixed width array of pointers
8709
8710 2003-06-11  Bernhard Held <bernhard AT bernhardheld.de>
8711
8712         * src/pic16/ralloc.c: fix warnings
8713         * src/pic16/pcode.c: fix warning
8714
8715 2003-06-10  Scott Dattalo  <scott AT dattalo.com>
8716
8717          Scott D. for Vangelis Rokas (vrokas AT otenet.gr). I (scott) don't
8718         know all the details, but essentially this set of changes enable
8719         the pic16 port to generate movff instructions and generate assembler
8720         directives,
8721         * src/SDCCmain.c:
8722         * src/pic16/gen.c:
8723         * src/pic16/glue.c:
8724         * src/pic16/pcode.c:
8725         * src/pic16/device.c:
8726         * src/pic16/main.c:
8727         * src/pic16/pcode.h:
8728         * src/pic16/pcoderegs.c:
8729         * src/pic16/ralloc.c:
8730         * src/pic16/ralloc.h:
8731
8732 2003-06-08  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
8733
8734         * support/Util/SDCCerr.c, src/SDCCglobl.h, src/SDCCmain.c, doc/sdccman.lyx:
8735         added option --vc, so sdcc errors and warnings are compatible with
8736         Microsoft Visual Studio.
8737
8738 2003-06-07  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
8739
8740         * device/lib/_atof.c, device/lib/Makefile.in, device/include/stdlib.h,
8741           device/lib/libfloat.lib: added atof function.
8742
8743 2003-06-04  Bernhard Held <bernhard AT bernhardheld.de>
8744
8745         * doc/sdccman.lyx: updated to Lyx 1.3
8746         * doc/cdbfileformat.lyx: updated to Lyx 1.3
8747         * doc/test_suite_spec.lyx: updated to Lyx 1.3
8748         * doc/Makefile: added fix for the \tabularnewline problem, thanks to Jesus
8749
8750 2003-06-03  Bernhard Held <bernhard AT bernhardheld.de>
8751
8752         * src/SDCCpeeph.c: separate peepRules2pCode() for pic16 by "Vangelis Rokas" <vrokas AT otenet.gr>
8753
8754 2003-06-02  Frieder Ferlemann <Frieder.Ferlemann AT web.de>
8755
8756         * doc/sdccman.lyx: cvs revision keywords, passing pdf information in latex preamble,
8757           additions to the "related tools/documentation" section
8758
8759 2003-06-02  Bernhard Held <bernhard AT bernhardheld.de>
8760
8761         * src/SDCCglue.c (tempfileandname): added check for missing TMP/TEMP/TMPDIR variable
8762
8763 2003-05-29  Bernhard Held <bernhard AT bernhardheld.de>
8764
8765         * src/pic/device.c: added 16F819, patch by "David I. Lehn" <dlehn AT vt.edu>
8766         * src/SDCCcse.c (algebraicOpts): fixed "c * 1"
8767
8768 2003-05-28  Bernhard Held <bernhard AT bernhardheld.de>
8769
8770         * doc/sdccman.lyx: fix double dash and other minor things
8771         * doc/Makefile: fix double dash
8772
8773 2003-05-28  Karl Bongers(patches from Martin Helmling)
8774         * debugger/mcs51/sdcdb.c,cmd.c,break.c and .h files. Martin adds
8775           condition and ignore commands.
8776
8777 2003-05-28  Frieder Ferlemann <Frieder.Ferlemann AT web.de>
8778
8779         * doc/sdccman.lyx: Changes all over, index improved, smaller margins. The manual
8780           is in parts still quite out of date, I did changes as far as I felt makes sense
8781           for a non-native english speaker.
8782           Please feel free to add to the manual or to correct my changes.
8783         * doc/Makefile: undid touching the date of intermediate tex files.
8784
8785 2003-05-26  Frieder Ferlemann <Frieder.Ferlemann AT web.de>
8786
8787         * doc/sdccman.lyx: Manual has an index now
8788
8789 2003-05-25  Bernhard Held <bernhard AT bernhardheld.de>
8790
8791         Finalize muluint/mulsint and mululong/mulslong merging:
8792         * device/lib/_mulint.c
8793         * device/lib/_mullong.c
8794         * device/lib/gbz80/mul.s
8795         * device/lib/gbz80/stubs.s
8796         * device/lib/z80/mul.s
8797         * device/lib/z80/stubs.s
8798         * src/SDCCsymt.c (initCSupport)
8799
8800 2003-05-25  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
8801
8802         * as/mcs51/lkaomf51.c: Address space 'z' was missing.
8803         * src/avr/avr.dsp, src/ds390/ds390.dsp, src/mcs51/mcs51.dsp,
8804           src/pic/pic.dsp, src/pic16/pic16.dsp, src/xa51/xa51.dsp,
8805           src/x80/z80.dsp: peep.rul is bigger now, so /Zm1000 is used
8806           instead of /Zm500.
8807
8808 2003-05-25  Frieder Ferlemann <Frieder.Ferlemann AT web.de>
8809
8810         * src/mcs51/peeph.def: added rules 244.x, 245.x. Although they pass
8811           the regression tests I'm not brave enough to enable 245.b, 245.c
8812         * doc/sdccman.lyx: added latex preamble for hyperref package.
8813           Using pdflatex this will give you a hyperlinked pdf file with
8814           bookmarks. (prepend '%' before /usepackage if this breaks something)
8815
8816 2003-05-24  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
8817
8818          * doc/sdccman.lyx: updated information about .adb files (fixed bug 742649)
8819
8820 2003-05-22  Bernhard Held <bernhard AT bernhardheld.de>
8821
8822         * src/pic16/pcode.c (pic16_get_op_from_instruction): fixed a gcc 3.x warning
8823
8824 2003-05-21    <johan AT balder>
8825
8826         * src/SDCCglue.c (printIval): fixed bug #739934
8827
8828 2003-05-19  Bernhard Held <bernhard AT bernhardheld.de>
8829
8830         Applied patch from bug 737905 (renamed yylineo to mylineno):
8831         * src/altlex.c
8832         * src/SDCCast.c
8833         * src/SDCglobl.h
8834         * src/SDCC.lex
8835         * src/SDCCsymt.c
8836         * src/SDCCval.c
8837         * src/pic16/pcode.c: Cleaned warnings
8838         * src/pic16/pcodeflow.c: Cleaned warnings
8839         * src/pic16/pcoderegs.c: Cleaned warnings
8840
8841 2003-05-19  Scott Dattalo  <scott AT dattalo.com>
8842
8843         * src/pic16/pcode.c: Cleaned warnings
8844         * src/pic16/pcodepeep.c: Cleaned warnings
8845         * src/pic16/ralloc.c: Cleaned warnings
8846
8847 2003-05-19  Bernhard Held <bernhard AT bernhardheld.de>
8848
8849         * doc/sdccman.lyx: fixed bug 739745
8850         * src/pic16/pcode.c (pic16_get_op): fixed warning on alpha
8851
8852 2003-05-18  Bernhard Held <bernhard AT bernhardheld.de>
8853
8854         * src/port.h: removed DEFAULT_PORT, it's not yet pic16 ;-)
8855         it can be defined with CFLAGS when running configure
8856         * src/SDCCmain.c: fixed compiling + linking with object files
8857
8858 2003-05-18  Vangelis Rokas (vrokas AT otenet.gr)
8859
8860         * configure.in: configure for pic16 port,
8861             added --disable-pic16-port
8862         * sdccconf_in.h: added macro OPT_DISABLE_PIC16
8863         * src/SDCCmain.c: linkOptions is changed to set *,
8864             added if/endif conditional macros to remove options help
8865             messages from optionsTable when a port is not configured, added
8866             support for the PIc16 port in the ports table, when executing
8867             the compiler with no port specified on command line, a default
8868             port is selected with the new macro DEFAULT_PORT which is
8869             defined in port.h, in setDefaultOptions() linkOptions is removed
8870             from initialization assignment, since now it is a set,
8871             parseCmdLine uses setParseWithComma for linkOptions, in
8872             linkEdit() linkOptions are accessed with new function indexSet()
8873             which returns the i'th item of a set variable. See SDCCset.c, in
8874             linkEdit() when calling buildCmdLine(), added linkOptions as
8875             last argument. Now users can pass arguments to gplink via the
8876             -Wl option, main() uses pic16glue() to glue up pic16 programs
8877         * src/SDCCpeeph.c: various changes to support pic16
8878         * src/SDCCset.c: added function  void *indexSet(set *, int)  to
8879             return the i'th item of the set
8880         * src/SDCCset.h: added function prototype for indexSet()
8881         * src/SDCCsymt.c: in checkSClass(), added support for PIC16
8882         * src/clean.mk: added pic16 in CLEANALLPORTS variable
8883         * src/port.h: added TARGET_ID_PIC16,TARGET_IS_PIC16 macro,
8884             added macro DEFAULT_PORT
8885         * src/pic/main.c: corrected arguments of gplnk in _linkCmd
8886         * src/pic16/gen.c: bug fix in genCpl(), now the correct code is
8887             generated
8888         * src/pic16/glue.c: commented out some error producing lines
8889         * src/pic16/main.c: __config directives are commented out to stop
8890             gpasm complaining and test the linkage with gplink, _linkCmd and
8891             _asmCmd changed to be more gplink and gpasm friendly
8892         * src/pic16/peeph.def: peep rule 3 is commented out, since it
8893             produced an error when parsed, peep rule 12 is added to utilize
8894             movff, but it is commented out since the pCode does not support
8895             yet a command with 2 address arguments
8896
8897 2003-05-18    <johan AT balder>
8898
8899         * src/ds390/gen.c (genArrayInit): removed obsolete and buggy ARRAYINIT
8900         * src/ds390/main.c (genArrayInit): removed obsolete and buggy ARRAYINIT
8901 2003-05-17  Karl Bongers(apply patches from Martin Helmling)
8902
8903         * debugger/mcs51/sdcdb.c,cmd.c,break.c and .h files.
8904   Added feature to script commands from file.
8905
8906 2003-05-14  Bernhard Held <bernhard AT bernhardheld.de>
8907
8908         * device/lib/_strtok.c: fixed bug #734355 by Lenny Story and Tim Woodall
8909         * src/SDCCutil.c: include ctype.h for win32
8910
8911 2003-05-13  Bernhard Held <bernhard AT bernhardheld.de>
8912
8913         * src/pic16/*: removed CR from many files, reported by Vangelis Rokas
8914
8915 2003-05-12  Karl Bongers(apply development patches from Martin Helmling)
8916
8917         * debugger/mcs51/sdcdb.c,simi.c,cmd.c,break.c and .h files.
8918   Fixed so you can set breakpoints prior to run, run does not stop
8919   on entry now.  Add tbreak.  Other enhancements and fixes for use
8920   with ddd.
8921
8922 2003-05-12  Borut Razem <borut.razem AT siol.net>
8923
8924         * src/SDCCmain.c: fixed the problem with searching the DATADIR as the last resort on *nix
8925
8926 2003-05-11  Borut Razem <borut.razem AT siol.net>
8927
8928         * src/SDCCutil.c: WIN32 version of getBinPath() calls GetModuleFileName() to determine
8929         the path of bin directory, so that PATH is the only env. variable, which has to be set
8930         in case of standard installation.
8931         * src/ds390/ds390.dsp: increased value of /Zm option to 1000
8932         * src/pic/main.c: add quotes to file name parameters for gplink and gpasm
8933         * src/SDCCglobl.h, src/SDCCmain.c, doc/sdccman.lyx: added --print-search-dirs command line option
8934
8935 2003-05-04  Bernhard Held <bernhard AT bernhardheld.de>
8936
8937         * src/SDCCmain.c (linkEdit): fixed buffer overflow for gbz80
8938         * support/regression/Makefile: inter-port-clean is no longer nesessary, the
8939         temp files are in the port dir; clean the gen/test directory when
8940         generating new test.c
8941         * support/regression/ports/host/spec.mk: defined OBJEXT for target clean
8942         * support/regression/tests/vaargs.c: fixed gcc 3.3 warning
8943         * support/regression/tests/zeropad.c: added
8944
8945 2003-05-09    <johan AT balder>
8946
8947         * src/SDCCglue.c: fixed bug #597940
8948
8949 2003-05-05  Karl Bongers(apply patches from Martin Helmling)
8950
8951         * debugger/mcs51/sdcdb.c,simi.c,cmd.c,symtab.c and .h files.
8952   cache sfr, optimize next,step, fix off by one sourceline,
8953   support ddd list function.
8954         * sim/ucsim/cmd.src/newcmd.cc - small fix for sdcdb use.
8955
8956 2003-05-04  Bernhard Held <bernhard AT bernhardheld.de>
8957
8958         * support/regression/HTMLgen.py: added compare_s2f()
8959         * support/regression/Makefile: redo 1.27
8960         * support/regression/generate-cases.py: redo 1.5
8961
8962 2003-04-30  Bernhard Held <bernhard AT bernhardheld.de>
8963
8964         * support/regression/tests/float.c: workaround 33 bit hex constant
8965         * support/regression/tests/simplefloat.c: fix division for host
8966
8967 2003-04-29  Scott Dattalo  <scott AT dattalo.com>
8968
8969         * src/pic/pcoderegs.c Applied patch from Jim Hawkridge <jim AT jimhawkridge.uk.eu.org>
8970         that tame's the PIC's over-aggressive optimizer.
8971
8972 2003-04-29  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
8973
8974          * src.dsw, link/z80/aslink.h, link/z80/linkz80.dsp: z80 linker
8975          support for MSVC.
8976
8977 2003-04-29  Kevin Vigor <kevin AT vigor.nu>
8978
8979         Initial support for DS80C400. "Hello world" runs on TINIm400
8980         (with polled I/O).
8981
8982 2003-04-28  Karl Bongers(apply patches for Martin Helmling)
8983
8984          * debugger/mcs51/sdcdb.c,simi.c,cmd.c,symtab.c and .h files.
8985          * Some notes on ddd usage added in debugger/README
8986          Martin Helmling adding more features and fixes for ddd GUI debugger.
8987          Code added for nexti, stepi, up, down, and other adjustments.
8988
8989 2003-04-28  Scott Dattalo  <scott AT DATTALO.COM>
8990
8991         * src/pic/pCodepeep.c non-wildcard asmops are now handled
8992         * src/pic/peeph.def Added two rules to optimize carry manipulation
8993         * src/pic/* removed debug printfs
8994
8995 2003-04-28  Bernhard Held <bernhard AT bernhardheld.de>
8996
8997         * debugger/mcs51/cmd.c: added header newalloc.h
8998
8999 2003-04-26  Bernhard Held <bernhard AT bernhardheld.de>
9000
9001         * as/Makefile: new EXEEXT
9002         * as/z80/Makefile: remove trailing slash of BUILDIR
9003         * as/z80/clean.mk: new EXEEXT
9004         * Makefile.common.in: add to CFLAGS (and others), don't replace it
9005         * support/cpp2/Makefile.in: new EXEEXT
9006         * src/pic/glue.c (pic14emitRegularMap): fixed warning
9007
9008 2003-04-24  Bernhard Held <bernhard AT bernhardheld.de>
9009
9010         Cygwin's gcc always appends .exe: 'gcc -o a a.c' creates a.exe;
9011         EXEEXT was introduced to fix all related problems with targets
9012         "clean", "install" and "uninstall"; a couple of further flaws
9013         especially with "clean" have been fixed too
9014         * as/mcs51/Makefile.in
9015         * as/mcs51/clean.mk
9016         * as/z80/Makefile
9017         * Makefile
9018         * clean.mk
9019         * debugger/mcs51/Makefile.in
9020         * debugger/mcs51/clean.mk
9021         * link/z80/Makefile
9022         * link/z80/Makefile.in
9023         * link/z80/clean.mk
9024         * link/Makefile
9025         * packihx/Makefile.in
9026         * packihx/clean.mk
9027         * sim/ucsim/Makefile
9028         * sim/ucsim/clean.mk
9029         * sim/ucsim/avr.src/Makefile.in
9030         * sim/ucsim/avr.src/clean.mk
9031         * sim/ucsim/s51.src/Makefile.in
9032         * sim/ucsim/s51.src/clean.mk
9033         * sim/ucsim/xa.src/Makefile.in
9034         * sim/ucsim/xa.src/clean.mk
9035         * sim/ucsim/z80.src/Makefile.in
9036         * sim/ucsim/z80.src/clean.mk
9037         * sim/ucsim/main_in.mk
9038         * sim/ucsim/packages_in.mk
9039         * sim/ucsim/gui.src/Makefile.in
9040         * sim/ucsim/gui.src/serio.src/Makefile.in
9041         * sim/ucsim/gui.src/serio.src/clean.mk
9042         * src/Makefile.in
9043         * src/clean.mk
9044         * support/cpp2/Makefile.in
9045         * support/cpp2/clean.mk
9046         * support/makebin/Makefile
9047         * support/makebin/clean.mk
9048         * support/scripts/sdcc_mingw32: --program-suffix no longer needed
9049         * doc/sdccman.lyx: --program-suffix no longer needed
9050
9051 2003-04-23  Karl Bongers(apply patches for Martin Helmling)
9052
9053          * debugger/mcs51/sdcdb.c,simi.c,cmd.c,..
9054          Martin Helmling added support for ddd GUI debugger.
9055          Code added to display assembly, set variables, and other commands
9056          to interface to ddd.
9057
9058 2003-04-23  Bernhard Held <bernhard AT bernhardheld.de>
9059
9060         * as/Makefile: fix target clean
9061         * as/clean.mk: fix target clean
9062         * as/z80/clean.mk: fix target clean
9063
9064 2003-04-22  Bernhard Held <bernhard AT bernhardheld.de>
9065
9066         * Makefile.common.in: added  AT EXEEXT AT
9067         * configure.in: removed all mingw32 stuff
9068         * configure: rebuilt from configure.in
9069         * doc/sdccman.lyx: updated section "installation"
9070         * support/scripts/sdcc_mingw32: adapted to configure
9071         * support/scripts/sdcc_cygwin_mingw32: added
9072
9073 2003-04-22  Scott Dattalo  <scott AT dattalo.com>
9074
9075         * src/pic Added object file support for the PIC port
9076         * src/pic Applied patch from Craig Franklin (this started the object file support)
9077         * src/regression Updated the PIC regression tests for object files
9078
9079 2003-04-20  Borut Razem <borut.razem AT siol.net>
9080
9081         * sdcc/as/mcs51/lklex.c: make getfid() more robust and fixed gcc warning:
9082           lklex.c: In function `getfid':
9083           lklex.c:203: warning: array subscript has type `char'
9084         * src/SDCCglobl.h: small change in stack handling macros, to avoid crash when compiled
9085           with MSVC with global optimization enabled (probably an cl compiler bug ;-)
9086         * support/Util/SDCCerr.c, support/Util/SDCCerr.h: added function fatal(), called from
9087           stack handling macros
9088
9089 2003-04-19  Borut Razem <borut.razem AT siol.net>
9090
9091         * "handling space characters in file path" task:
9092         * src/SDCCmacro.c: fixed bug in handlig quote at the end of line
9093         * support/Util/BuildCmd.c: define par as NULL if parameter value is invalid
9094         * support/Util/MySystem.h: make it self-sufficient
9095         * src/avr/main.c, src/ds390/main.c, src/mcs51/main.c, src/pic/main.c, src/xa51/main.c,
9096           src/z80/main.c, sdcc/as/mcs51/lklex.c:
9097           handling space characters in file path
9098         * src/SDCCmain.c: introduced setDataPaths() function, {datadir} macro
9099           (it will be used by assemblers, which have their own includes, e.g. gpasm)
9100         * support/Util/MySystem.c: handling space characters in executable's path
9101
9102 2003-04-19  Bernhard Held <bernhard AT bernhardheld.de>
9103
9104         * as/z80/Makefile: fix permanent rebuild of z80
9105         * sim/ucsim/gui.src/Makefile.in: target "install" builds the same packages as target "all"
9106         * support/regression/tests/bitfields.c: added Johan's bitfields.c
9107
9108 2003-04-18      Kevin Vigor <kevin AT vigor.nu>
9109
9110         * src/SDCCopt.c: add special case optimization to replace modulo by
9111           a power of two with a bitwise AND.
9112
9113 2003-04-18    <johan AT balder>
9114
9115         * src/mcs51/gen.c (getFreePtr): fixed bug #635354
9116
9117 2003-04-17    <johan AT balder>
9118
9119         * src/mcs51/ralloc.c (packRegsForAssign): fixed bug #716790 and removes lot's of redundant register usage around function calls
9120         * src/mcs51/ralloc.c (packRegisters): fixed bug #720667
9121
9122 2003-04-13  Borut Razem <borut.razem AT siol.net>
9123
9124         * doc/sdccman.lyx: updated info about #pragma SAVE/RESTORE nesting
9125         * configure.in, configure: fixed problems on cygwin/WinCVS environmet with ports.* line endings;
9126           fixed mingw problem in adl_NORMALIZE_PATH
9127
9128 2003-04-12  Borut Razem <borut.razem AT siol.net>
9129
9130         * fixed "#pragma SAVE/RESTORE can not be nested":
9131         * src/SDCC.lex: reworked pragma handling functions
9132         * sdcc/src/SDCCglobl.h: reworked stack handling macros
9133         * support/Util/SDCCerr.c, support/Util/SDCCerr.h: added E_STACK_VIOLATION error
9134
9135 2003-04-12  Bernhard Held <bernhard AT bernhardheld.de>
9136
9137         * src/SDCCutil.c (pathEquivalent): defined but not used
9138         * debugger/mcs51/sdcdb.c: replace SDCC_LIB_DIR
9139         * configure.in: remove sdcc_datadir, sdcc_lib_dir and sdcc_include_dir
9140         * configure: rebuilt from configure.in
9141         * sdccconf_in.h: remove SDCC_LIB_DIR and SDCC_INCLUDE_DIR
9142         * sdcc_vc_in.h: remove SDCC_LIB_DIR and SDCC_INCLUDE_DIR
9143         * device/include/Makefile.in: replace sdcc_datadir
9144         * device/lib/Makefile.in: replace sdcc_datadir
9145         * Makefile.common.in: add LDFLAGS from configure
9146         * packihx/Makefile.in: use LDFLAGS
9147         * src/Makefile.in: use LDFLAGS
9148         * support/cpp2/Makefile.in: add LDFLAGS from configure
9149         * support/makebin/Makefile: use LDFLAGS
9150         * .version: bumped version number to 2.3.5
9151
9152 2003-04-12  Borut Razem <borut.razem AT siol.net>
9153
9154         * completed "different paths" task:
9155         * src/SDCCmacro.c: fixed bug in handling quotes
9156         * src/SDCCutil.c, src/SDCCutil.c: rewritten getPrefixFromBinPath()
9157         * src/SDCCmain.c: _discoverPaths() replaced with setBinPaths(), setIncludePath() and setLibPath()
9158
9159 2003-04-12  Bernhard Held <bernhard AT bernhardheld.de>
9160
9161         * src/pic/pcoderegs.c (Remove1pcode): fix warning on alpha
9162
9163 2003-04-11 kevin Vigor <kevin AT vigor.nu>
9164
9165         * ds390/gen.c ds390/peeph.def: fix bug 706781
9166
9167 2003-04-11  Borut Razem <borut.razem AT siol.net>
9168
9169         * support/Util/dbuf.c, support/Util/dbuf.h: update to version 1.1.1 - re-added C++ stuff to make it still more portable
9170
9171 2003-04-10  Scott Dattalo  <scott AT dattalo.com>
9172
9173         * src/pic/* Applied the pointer-to-function patch from Steve Tell.
9174         * src/pic/* Fixed several pointer bugs. (PIC port broke when the ruonly bit was
9175          set - this bit used to not be set...).
9176         * src/pic/gen.c Fixed buf 609268 ==> x = (x+1) & 0xf; generated
9177           bad code in PIC Port
9178         * src/regression/and2.c added to test bug 609268
9179         * src/regression/Makefile added and2.c to regression test
9180
9181
9182 2003-04-08    <johan AT CP255758-A>
9183
9184         * src/mcs51/gen.c (gen51Code): display reg usage in --icode-in-asm
9185         * src/mcs51/ralloc.c (serialRegAssign): update the registers in use and save some slocs
9186         * src/SDCCicode.h: added riu to show the register usage in --icode-in-asm
9187
9188 2003-04-07  Bernhard Held <bernhard AT bernhardheld.de>
9189
9190         * configure.in: fully support prefix, exec_prefix, datadir, docdir;
9191         fix bug #487815
9192         * support/cpp2/Makefile.in: fix bug #487815
9193         * configure: rebuilt from configure.in
9194         * Makefile.common.in: docdir changed, new path suffixes
9195         * sdccconf_in.h: new RETSIGTYPE, and other PATHs
9196         * sdcc_vc_in.h: reflect changes from sdccconf.h
9197         * src/SDCCglobl.h: remove *SEPARATOR_CHARS, they are now in sdccconf.h
9198         * src/SDCCutil.h: remove BINDIR hack
9199         * doc/sdccman.lyx: update new path hierarchy
9200
9201 2003-04-06    Paul Stoffregen <paul AT pjrc.com>
9202
9203         * src/SDCCpeeph.c: added okToRemoveSLOC test
9204
9205 2003-04-06    Paul Stoffregen <paul AT pjrc.com>
9206
9207         * device/lib/printf_fast.c: added leading zero format ("%06d", etc)
9208
9209 2003-04-06    Paul Stoffregen <paul AT pjrc.com>
9210
9211         * src/SDCCpeeph.c: added labelIsReturnOnly test
9212         * src/mcs51/peeph.def: Peephole 244: replace ljmp to ret with ret
9213
9214 2003-04-05    <johan AT balder>
9215
9216         * src/SDCCcse.c (cseAllBlocks): fixed bug #460088
9217         * src/SDCCloop.c (DEFSETFUNC): fixed bug #460088
9218         * src/SDCCopt.c (eBBlockFromiCode): fixed bug #460088
9219         * src/SDCCast.c: fixed a warning
9220         * src/SDCCast.h: fixed a warning
9221         * src/SDCCicode.c (operandFromAst): fixed a warning
9222
9223 2003-04-04    <johan AT balder>
9224
9225         * src/SDCCloop.c (DEFSETFUNC): undid the fix for bug #519584
9226         * src/SDCCast.c (decorateType): fixed bug #715076
9227         * src/SDCC.y: fixed bug #702907
9228
9229 2003-04-03    <johan AT balder>
9230
9231         * device/lib/_mulint.c (_muluint): new #pragma LESS_PEDANTIC
9232         * src/SDCCopt.c (eBBlockFromiCode): new #pragma LESS_PEDANTIC
9233         * src/SDCCglobl.h (PRAGMA_LESSPEDANTIC): new #pragma LESS_PEDANTIC
9234         * src/SDCC.lex (doPragma): new #pragma LESS_PEDANTIC
9235         * src/SDCCmain.c (parseCmdLine): new #pragma LESS_PEDANTIC
9236
9237 2003-04-03  Bernhard Held <bernhard AT bernhardheld.de>
9238
9239         * _decdptr.c: fix return values
9240         * _gptrget.c: fix return values
9241         * _gptrgetc.c: fix return values
9242         * _gptrput.c: fix return values
9243         * _mulint.c: fix return values
9244         * as/z80/Makefile: fix 'make -j' problem
9245
9246 2003-04-02  Bernhard Held <bernhard AT bernhardheld.de>
9247
9248         * Makefile.common.in: unused PORT, SCC and SAS removed, fixed docdir
9249         * configure.in: big cleanup, updated to autoconf 2.5x
9250         * configure: rebuilt from configure.in
9251         * sdccconf_in.h: new RETSIGTYPE, and other PATHs
9252         * sdcc_vc_in.h: reflect changes from sdccconf.h
9253         * doc/Makefile: fixed a flaw in "make install"
9254
9255 2003-04-02    <johan AT balder>
9256
9257         * src/ds390/gen.c (genCmp): no comments
9258         * src/mcs51/gen.c (genCmp): no comments
9259         * src/SDCCopt.c (eBBlockFromiCode): detect missing return values
9260         * src/SDCCast.c (ast_print): fixed the function type in --dumptree
9261
9262 2003-04-01  Bernhard Held <bernhard AT bernhardheld.de>
9263
9264         * support/regression/generate-cases.py: place generated file in given sub directory
9265         * support/regression/ports/host/spec.mk: prevent removal of testfwk.o
9266         * support/regression/Makefile: improvements for 'make -j';
9267         side effect: it's simpler and faster now
9268
9269 2003-03-31  Borut Razem <borut.razem AT siol.net>
9270
9271         * src/z80/main.c: link-{port} and as-{port} defined without path
9272         * src/src.dsp: support/Util/MySystem.h and src/SDCCutil.h added to project
9273
9274 2003-03-31  Bernhard Held <bernhard AT bernhardheld.de>
9275
9276         * Makefile, src/Makefile.in: add dependencies, so that 'make -j' works
9277
9278 2003-03-30  Borut Razem <borut.razem AT siol.net>
9279
9280         * support/Util/BuildCmd.c, support/Util/BuildCmd.h: rewrite buildCmdLine(),
9281           changed type of list parameter to set
9282         * src/ds390/main.c: changed type of parameter asmOptions to set in _tininative_do_assemble()
9283         * src/port.h: changed type of do_assemble() parameter to set
9284         * src/SDCCmain.c: type of asmOptions changed to set, introduced setParseWithComma(),
9285           sdcpp defined without path, removed variable VersionString, introduced set binPathSet,
9286           definition of "cppoutfilename" macro with NULL value in preProcess()
9287         * src/SDCCglobl.h: included "SDCCset.h", added declaration of setParseWithComma()
9288         * src/SDCCglue.c: removed variable VersionString, inroduced spacesToUnderscores()
9289         * support/Util/MySystem.c, support/Util/MySystem.h: rewrite, char *ExePathList[]
9290           replaced with set *binPathSet
9291         * shash_add() deallocates the item, if allready exsists, before adding the new one
9292         * src/SDCCmacro.c: handling macros with empty or NULL values in _evalMacros()
9293
9294 2003-03-30  Scott Dattalo  <scott AT dattalo.com>
9295
9296         * src/pic/gen.c: Commit patch from Steve Tell <tell AT telltronics.org> that fixes
9297           a nested for loop bug in the PIC port
9298         * src/regression/nestfor.c: new regression test file Steve wrote to test nested
9299           for loops
9300
9301 2003-03-29  Bernhard Held <bernhard AT bernhardheld.de>
9302
9303         * support/Util/dbuf.h: remove C++ stuff to make it portable
9304
9305 2003-03-28  Borut Razem <borut.razem AT siol.net>
9306
9307         * src/SDCC.lex: Fix for bug #711240: dynamic buffer handling of C
9308           literal strings in stringLiteral()
9309         * support/Util/dbuf.c, support/Util/dbuf.h: added: dynamic buffer handling
9310         * src/Makefile.bcc, src/Makefile.in, src\src.dsp: added support/Util/dbuf.c
9311           to the project
9312
9313 2003-03-27  Paul Stoffregen <paul AT pjrc.com>
9314
9315         * src/SDCCpeeph.c (pcDistance): accurate byte distance for mcs51
9316
9317 2003-03-26    <johan AT balder>
9318
9319         * src/mcs51/gen.c (saveRegisters): catched symbol abuse
9320         * src/ds390/gen.c (saveRegisters): catched symbol abuse
9321         * src/SDCCast.c (decorateType): fixed " -v < 3"
9322
9323 2003-03-23  Bernhard Held <bernhard AT bernhardheld.de>
9324
9325         * doc/cdbfile.html: removed, replaced by cdbfileformat.lyx
9326         Added Lenny Story's debug infrastructure changes:
9327         * src/Makefile.in:  added new files cdbFile.c and SDCCdebug.c
9328         * src/Makefile.bcc: added new files cdbFile.c and SDCCdebug.c
9329         * src/cdbFile.c: added
9330         * src/SDCCdebug.c: added
9331         * src/SDCCdebug.h: added
9332         * src/SDCCast.c (createFunction)
9333         * src/SDCCglue.c (emitRegularMap, emitStaticSeg, emitOverlay, glue)
9334         * src/SDCCmain.c (parseCmdLine, main)
9335         * src/SDCCmem.c (redoStackOffsets)
9336         * src/SDCCsymt.c (cdbStructBlock, cdbTypeInfo, cdbSymbol, cdbStruct, cdbStructBlock)
9337         * src/SDCCsymt.h
9338         * src/common.h
9339         * src/avr/gen.c (genAVRCode)
9340         * src/ds390/gen.c (gen390Code)
9341         * src/mcs51/gen.c (gen51Code)
9342         * src/pic/gen.c (genpic14Code)
9343         * src/pic/glue.c (pic14emitRegularMap, pic14emitStaticSeg, pic14emitOverlay, picglue)
9344         * src/xa51/gen.c (genXA51Code)
9345         * src/SDCCast.c: fixed "void foo(void){char c; -c < 0;}"
9346
9347 2003-03-22  Frieder Ferlemann <Frieder.Ferlemann AT web.de>
9348
9349         * src/mcs51/gen.c (genCodePointerGet): quicker code for bug #700797
9350         * src/mcs51/peeph.def: added rules 177, 241.x to 243, touched 181, 182.x, 193.x
9351
9352 2003-03-22    <johan AT balder>
9353
9354         * src/SDCCicode.c (geniCodeDerefPtr): fixed bug #698231
9355
9356 2003-03-21  Bernhard Held <bernhard AT bernhardheld.de>
9357
9358         * support/scripts/sdcc_mingw32: adapted to configure from autoconf 2.54
9359         * doc/cdbfileformat.lyx: added, written by Lenny Story
9360         * doc/Makefile: added cdbfileformat.lyx
9361         * doc/clean.mk: added cdbfileformat.lyx
9362
9363 2003-03-20  Bernhard Held <bernhard AT bernhardheld.de>
9364
9365         * src/mcs51/peeph.def: fix bug #705773
9366
9367 2003-03-20    <johan AT balder>
9368
9369         An sfr/sbit can have an "at #" AND an initializer
9370         * src/SDCCsymt.c (checkSClass):
9371         * src/SDCCmem.c (allocGlobal):
9372         * src/SDCCmem.c (allocLocal):
9373         * src/SDCCast.c (createBlock):
9374
9375 2003-03-17  Bernhard Held <bernhard AT bernhardheld.de>
9376
9377         * src/ds390/peeph.def: fix bug #704878: added rule 213.b suggested by Jan Rejlek
9378
9379 2003-03-16    <johan AT balder>
9380
9381         Undid the hackup of const and volatile, the problem is much bigger
9382         * src/SDCC.y:1.65
9383         * src/SDCCast.c:1.171
9384         * src/SDCCglue.c:1.138
9385         * src/SDCCicode.c:1.146
9386         * src/SDCCsymt.c:1.150
9387         * src/SDCCval.c:1.65
9388
9389 2003-03-15  Bernhard Held <bernhard AT bernhardheld.de>
9390
9391         * src/mcs51/ralloc.c (packRegsForAssign): fixed bug #703541
9392         * src/ds390/gen.c (genAddrOf): fixed bug #704087
9393
9394 2003-03-13    <johan AT balder>
9395
9396         Hackup const and volatile modifiers in type chains a bit:
9397         * src/SDCC.y:1.63
9398         * src/SDCCast.c:1.169
9399         * src/SDCCglue.c:1.136
9400         * src/SDCCicode.c:1.143
9401         * src/SDCCsymt.c1.146
9402         * src/SDCCsymt.h1.59
9403         * src/SDCCval.c:1.63
9404
9405 2003-03-12    <johan AT balder>
9406
9407         * src/SDCCBBlock.h: more LRH debugging junk
9408         * src/SDCCcflow.h: more LRH debugging junk
9409         * src/SDCCloop.c: more LRH debugging junk
9410         * src/SDCC.y (struct_declaration): fixed bug #697590
9411         * src/SDCCsymt.[hc] (cloneSpec): NEVER EVER use this again
9412         * src/ds390/gen.c (aopForRemat): fixed bug #700031
9413         * src/SDCCglue.c (emitStaticSeg): fixed bug #700797
9414
9415 2003-03-11 Kevin Vigor <kevin AT vigor.nu>
9416         * src/SDCCpeeph.c: quit being lazy and made proper fix (peephole
9417         test function names must now match exactly).
9418         * src/SDCCcse.c: added special case in findCheaperOp to allow
9419         extending a short integer. Makes less awful code for bug 700121 test case.
9420
9421 2003-03-11  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
9422
9423         * as/mcs51/lkmain.c: Added ASlink-Warning to messages
9424         * as/mcs51/lkaomf51.c: Fixed bug when linking asmblink example
9425
9426 2003-03-11 Kevin Vigor <kevin AT vigor.nu>
9427
9428         * src/SDCCpeeph.c: fix so that operandsNotEqualX functions are
9429         actually called (operandsNotEqual() was called for all
9430         operandsNotEqualX tests).
9431
9432 2003-03-11 Kevin Vigor <kevin AT vigor.nu>
9433
9434         * src/SDCCcse.c: fix findCheaperOp to prevent replacing int types
9435         with shorter literals. Fixes bug 700121.
9436
9437 2003-03-11    <johan AT balder>
9438
9439         * src/SDCCsymt.c (compareType): a (void *) can be assigned to any pointer
9440
9441 2003-03-11  Bernhard Held <bernhard AT bernhardheld.de>
9442
9443         * src/SDCCloop.c (mergeRegions): an evil beast is dead
9444         * src/SDCCmain.c (preProcess): minor cleanup: eliminate preOutName
9445
9446 2003-03-10  Borut Razem <borut.razem AT siol.net>
9447
9448         * src/SDCCmain.c: pipe preprocessor's output
9449         * support/Util/MySystem.c, support/Util/MySystem.h: added my_popen()
9450         * sdcc_vc_in.h: define pclose as _pclose for WIN32
9451         * src/SDCCglue.c, src/SDCCglue.h: added set pipeSet, added function closePipes,
9452         which closes all pipes in pipeSet set
9453         * src/SDCCset.c: free deleted item in function deleteSetItem()
9454         * src/src.dsp, src/z80/z80.dsp: files support/Util/BuildCmd.c and support/Util/MySystem.c
9455         moved from z80 to src subproject
9456         * .version: increased version number to 2.3.4
9457
9458 2003-03-10  Bernhard Held <bernhard AT bernhardheld.de>
9459
9460         * support/regression/ports/mcs51/spec.mk: increase timeout for CF's sparc to 30s
9461         * support/regression/ports/ds390/spec.mk: increase timeout for CF's sparc to 25s
9462         * support/regression/ports/xa51/spec.mk: fix typo
9463
9464 2003-03-09  Bernhard Held <bernhard AT bernhardheld.de>
9465
9466         * src/SDCCglobl.h: PATH_MAX is already defined in mingw32 headers
9467
9468 2003-03-09  Borut Razem <borut.razem AT siol.net>
9469
9470         * src/SDCCmain.c: pipe preprocessor's output
9471         * support/Util/MySystem.c, support/Util/MySystem.h: added my_popen()
9472         * sdcc_vc_in.h: define pclose as _pclose for WIN32
9473         * src/SDCCglue.c, src/SDCCglue.h: added set pipeSet, added function closePipes,
9474         which closes all pipes in pipeSet set
9475         * src/SDCCset.c: free deleted item in function deleteSetItem()
9476         * src/src.dsp, src/z80/z80.dsp: files support/Util/BuildCmd.c and support/Util/MySystem.c
9477         moved from z80 to src subproject
9478
9479 2003-03-09  Borut Razem <borut.razem AT siol.net>
9480
9481         * src/SDCCglue.c: re-implemented tempfilename() and tempfile(): using mkstemp() if available
9482         * src/SDCCsymt.h: fixed MSVC and BORLANDC compilation (included SDCCglobl.h instead srccconf.h)
9483         * sdcc_vc_in.h: explicitly undefined HAVE_MKSTEMP which is not available on BORLANDC and MSVC
9484         * src/SDCCset.h: removed inclusion of sdccconf.h or sdcc_vc.h
9485         * src/SDCCglobl.h: unification of WIN32 native definitions
9486
9487 2003-03-09  Frieder Ferlemann <Frieder.Ferlemann AT web.de>
9488
9489         * src/mcs51/gen.c: applied in-/dec patch mentioned on sdcc-devel 2003-03-01
9490
9491 2003-03-08  Bernhard Held <bernhard AT bernhardheld.de>
9492
9493         * src/configure.in:   check for endianess (even while cross-compiling)
9494         * src/configure:      check for endianess (even while cross-compiling)
9495         * src/configure_in.h: check for endianess (even while cross-compiling)
9496         * src/avr/gen.c:        remove old endianess stuff
9497         * src/mcs51/gen.c:      remove old endianess stuff
9498         * src/ds390/gen.c:      remove old endianess stuff
9499         * src/pic/gen.c:        remove old endianess stuff
9500         * src/pic/genarith.c:   remove old endianess stuff
9501         * src/pic/glue.c:       fix endianess check
9502         * src/pic16/gen.c:      remove old endianess stuff
9503         * src/pic16/genarith.c: remove old endianess stuff
9504         * src/pic16/glue.c:     fix endianess check
9505         * src/xa51/gen.c:       remove old endianess stuff
9506         * src/z80/gen.c:        fix endianess check
9507         * src/SDCCglue.c:       fix endianess check
9508         * src/ds390/peeph.def: fix bug 700036
9509
9510 2003-03-08  Bernhard Held <bernhard AT bernhardheld.de>
9511
9512         * src/SDCCsymt.h: use appropriate data-types on host for SDCC's int and long
9513         * src/configure: find appropriate data-types on host for SDCC's int and long
9514         * src/configure.in: find appropriate data-types on host for SDCC's int and long
9515         * src/sdccconf_in.h: find appropriate data-types on host for SDCC's int and long
9516         * src/xa51/gen.c: use %d, not %ld for 4 byte variables
9517
9518 2003-03-07    <johan AT balder>
9519
9520         Just a big NOOP:
9521                 some minor cleanups before the big shot
9522                 OP_DEFS and OP_USES now use Kevin's protection
9523                 new option --nolabelopt
9524
9525         * src/SDCCBBlock.c:
9526         * src/SDCCast.c,:
9527         * src/SDCCcflow.c:
9528         * src/SDCCcse.c:
9529         * src/SDCCicode.c:
9530         * src/SDCCicode.h:
9531         * src/SDCClabel.c:
9532         * src/SDCCloop.c:
9533         * src/SDCCmain.c:
9534         * src/ds390/ralloc.c:
9535         * src/mcs51/ralloc.c:
9536         * src/pic/ralloc.c:
9537         * src/xa51/ralloc.c:
9538         * src/z80/ralloc.c:
9539
9540 2003-03-06  Bernhard Held <bernhard AT bernhardheld.de>
9541
9542         * src/pic/pcode.c (get_op): fix 64 bit warnings
9543         * src/pic/pcode.c (pCode2str): fix 64 bit warnings
9544         * src/SDCChasht.c (newHashTable): fix 64 bit warnings
9545         * src/SDCCsymt.c (checkTypeSanity): fix 64 bit warnings
9546         * support/regression/tests/malloc.c: fix 64 bit warnings
9547
9548 2003-03-04  Bernhard Held <bernhard AT bernhardheld.de>
9549
9550         * src/mcs51/gen.c (genMinus): fixed bug 696436
9551
9552 2003-03-02  Borut Razem <borut.razem AT siol.net>
9553
9554         * src/SDCCmain.c: added BORLANDC, corrected MSVC in printVersionInfo()
9555
9556 2003-02-26  Bernhard Held <bernhard AT bernhardheld.de>
9557
9558         * configure.in: test for mkstemp
9559         * sdccconf_in.h: add HAVE_MKSTEMP
9560
9561 2003-02-24  Bernhard Held <bernhard AT bernhardheld.de>
9562
9563         * device/include/ctype.h: removed warning while using --stack-auto
9564         * device/include/malloc.h: removed warning while using --stack-auto
9565         * device/include/string.h: removed warning while using --stack-auto
9566
9567 2003-02-23  Borut Razem <borut.razem AT siol.net>
9568
9569         * src/asm.h: corrected assertion in function printILine(): _pipe() was not executed on MSVC,
9570         because NDEBUG is defined (see man assert)
9571         * sdcc_vc_in.h: vsnprintf is defined as _vsnprintf on MSVC
9572
9573 2003-02-23  Frieder Ferlemann <Frieder.Ferlemann AT web.de>
9574
9575         * src/mcs51/gen.c (genUminusFloat): avoided dptr in-/decrement for xdata variables
9576         * src/mcs51/peeph.def: added rule suggested by Gernot Fink, white space/comment changes
9577
9578 2003-02-18  Frieder Ferlemann <Frieder.Ferlemann AT web.de>
9579
9580         * src/SDCCpeeph.c: added peephole conditions testing for same arguments
9581         * src/mcs51/peeph.def: added rules 238a-d which remove redundant moves
9582
9583 2003-02-18    <johan AT balder>
9584
9585         * as/mcs51/asmain.c (asmbl): module can start with a digit
9586         * as/z80/asmain.c (asmbl): module can start with a digit
9587
9588 2003-02-16  Bernhard Held <bernhard AT bernhardheld.de>
9589
9590         * sim/ucsim/mkecho: inserted #!/bin/sh for Cygwin, so that it's executable
9591         * src/asm.c: fix pipe() for Mingw32
9592
9593 2003-02-15  Bernhard Held <bernhard AT bernhardheld.de>
9594
9595         * src/SDCCglue.h: make tmpfileNameSet available for preOutName
9596         * src/SDCCmain.c (preProcess): make sure, that preOutName will be deleted;
9597         make -V work again; --c1mode reads now from stdin
9598         * doc/sdccman.lyx: added --c1mode
9599         * support/Util/SDCCerr.c: new messages for c1 mode
9600         * support/Util/SDCCerr.h: new messages for c1 mode
9601         * src/SDCC.lex (checkCurrFile): test if fullSrcFileName is NULL for c1mode
9602
9603 2003-02-15    <johan AT balder>
9604
9605         * src/asm.c: new options: --no-c-code-in-asm and --i-code-in-asm
9606
9607 2003-02-14  Bernhard Held <bernhard AT bernhardheld.de>
9608
9609         * doc/sdccman.lyx: Environment variables, -o and other minor things
9610
9611 2003-02-14    <johan AT balder>
9612
9613         * src/xa51/main.c: before anyone really tries to use it :)
9614
9615         * Install doc's in share/sdcc/doc
9616         * removed some obsolete files
9617         * Do a proper make distclean and uninstall
9618         M Makefile.common.in
9619         R sdccbuild.sh
9620         M as/Makefile
9621         M device/include/Makefile.in
9622         M device/lib/Makefile.in
9623         M doc/sdccman.lyx
9624         M link/Makefile
9625         M sim/ucsim/doc/Makefile.in
9626         M src/clean.mk
9627         R src/avr/peeph.rul
9628         R src/xa51/peeph.rul
9629         M support/cpp2/Makefile.in
9630         M support/makebin/Makefile
9631
9632
9633 2003-02-13  Bernhard Held <bernhard AT bernhardheld.de>
9634
9635         * support/regression/ports/host/spec.mk: use cc as host compiler for max osx
9636
9637 2003-02-10  Borut Razem <borut.razem AT siol.net>
9638
9639         * doc/bccinst.txt, packihx/packihx.c, sdcc_vc_in.h, src/SDCCset.h,
9640         support/cpp2/config.in: Borland C++ build doesn't depend on Cygwin configure
9641         * Bcc.ini, Makefile.bcc, as/mcs51/Makefile.bcc,
9642         device/examples/ds390/tinitalk/Makefile.bcc, packihx/Makefile.bcc,
9643         support/cpp2/Makefile.bcc, src/Makefile.bcc, src/avr/Makefile.bcc,
9644         src/ds390/Makefile.bcc, src/izt/Makefile.bcc, src/mcs51/Makefile.bcc,
9645         src/pic/Makefile.bcc, src/pic16/Makefile.bcc, src/xa15/Makefile.bcc,
9646         src/z80/Makefile.bcc: Borland Makefile cleanup
9647         * as/z80/Makefile.bcc: Added Borland Makefile
9648         * support/cpp2/borland.h: Removed
9649
9650 2003-02-10  Bernhard Held <bernhard AT bernhardheld.de>
9651
9652         * doc/sdccman.lyx: new pragma NOIV by "Johannes Stezenbach" <js AT convergence.de>
9653         * src/SDCC.lex: new pragma NOIV
9654         * src/SDCCglobl.h: new pragma NOIV
9655         * src/SDCCmem.c: new pragma NOIV
9656
9657 2003-02-09  Bernhard Held <bernhard AT bernhardheld.de>
9658
9659         * src/SDCCmain.c: signal handling is switched off by SDCC_LEAVE_SIGNALS
9660
9661 2003-02-09  Bernhard Held <bernhard AT bernhardheld.de>
9662
9663         * src/SDCCmain.c: signal handling is switched off by --debug
9664         * doc/Makefile: small fix for install; use clean.mk again
9665         * doc/clean.mk: clean *.pdf and *.html too
9666
9667 2003-02-08  Bernhard Held <bernhard AT bernhardheld.de>
9668
9669         * device/lib/_mulint.c: small fix for large/ds390 --int-long-reent resp. --stack-auto
9670         * device/lib/printfl.c: fix a ds390 bug by making it portable
9671         * src/SDCCsymt.c (initCSupport): fix compile warning on Cygwin
9672         * src/SDCCopt.c (cnvToFloatCast): fix compile warning on Cygwin
9673         * src/SDCCopt.c (cnvFromFloatCast): fix compile warning on Cygwin
9674         * debugger/mcs51/cmd.c: converted multi-line string literals
9675         * sim/ucsim/globals.cc: converted multi-line string literals
9676         * src/SDCCmain.c: introduced signal handler to remove temp files
9677         * doc/Makefile: small tweaks, implement clean
9678         * doc: removed generated files
9679
9680 2003-02-05  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
9681
9682         * as/mcs51/aslink.h, as/mcs51/lkihx.c, as/mcs51/lkrloc.c:  Applied
9683         patch from Jan Rejlek <jr AT apex-lib.cz> to fix Bug 677692: "Extended
9684         Address Record is not correctly generated for DS390."
9685
9686 2003-02-02  Borut Razem <borut.razem AT siol.net>
9687
9688         * Makefile.bcc: removed non existing cpp project and non compilable izt project from makefile
9689         * as/mcs51/asm.h: fixed compilation with Borland C
9690         * support/cpp2/Makefile.bcc: added rule to generate auto-host.h
9691         * support/cpp2/auto-host_vc_in.h: fixed compilation with Borland C
9692         * src/mcs51/mcs51a.dsp: corrected misspelled project name from msc51a to mcs51a
9693         * src/avr/Makefile.bcc, src/ds390/Makefile.bcc, src/izt/Makefile.bcc,
9694         src/mcs51/Makefile.bcc, src/pic16/Makefile.bcc, src/xa51/Makefile.bcc,
9695         src/z80/Makefile.bcc: delete $(LIB) only if exist
9696         * src/Makefile.bcc, src/pic/Makefile.bcc:  fixed compilation with Borland C
9697
9698 2003-02-02  Bernhard Held <bernhard AT bernhardheld.de>
9699
9700         * device/include/malloc.h: introduced NULL
9701         * device/include/string.h: introduced NULL
9702         * device/include/stdlib.h: introduced NULL
9703         * device/lib/_memcpy.c: removed NULL
9704         * device/lib/_strcat.c: removed NULL
9705         * device/lib/_strchr.c: removed NULL
9706         * device/lib/_strcmp.c: removed NULL
9707         * device/lib/_strcpy.c: removed NULL
9708         * device/lib/_strcspn.c: removed NULL
9709         * device/lib/_strlen.c: removed NULL
9710         * device/lib/_strncat.c: removed NULL
9711         * device/lib/_strncmp.c: removed NULL
9712         * device/lib/_strncpy.c: removed NULL
9713         * device/lib/_strpbrk.c: removed NULL
9714         * device/lib/_strrchr.c: removed NULL
9715         * device/lib/_strspn.c: removed NULL
9716         * device/lib/_strstr.c: removed NULL
9717         * device/lib/_strtok.c: removed NULL
9718         * device/lib/malloc.c: removed NULL, include own header
9719
9720 2003-02-02    <johan AT balder>
9721
9722         * src/mcs51/ralloc.c (packForPush): fixed bug #631653, maybe other ports need this too? At least now some new alerts in SDCCBBlock.c and SDCCicode.c gives an early warning
9723         * support/regression/fwk/lib/testfwk.c: div and mod isn't broken anymore
9724         * regressions ds390/spec.mk and mcs51/spec.mk (timeout): my good old balder isn't fast enough for some tests
9725         * src/z80/gen.c (genZ80Code): added c-lines in asm comments
9726         * as/z80/asm.h (NINPUT): increased for long c-comments in regression tests
9727         * src/z80/gen.c (genRightShiftLiteral): fixed the (char)(-3)>>8 (I think)
9728
9729 2003-02-01  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
9730
9731         * src/SDCCmain.c: Fixed bug 678574: "ds390: ASlink-Error-Stack overlaps
9732         area 'DATA'"
9733
9734 2003-02-01    <johan AT balder>
9735
9736         * src/SDCCval.c (valBitwise): fixed Karl's "2 | (1<<8)"
9737
9738 2003-01-31    <johan AT CP255758-A>
9739
9740         * src/ds390/main.c (_ds390_genAssemblerPreamble): applied Jan Rejlek's >64K startup patch
9741
9742 2003-01-30    <johan AT balder>
9743
9744         * src/SDCCBBlock.c: automatic bug detection
9745         * src/SDCCicode.c: automatic bug detection
9746
9747 2003-01-29  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
9748
9749         * src/SDCCglobl.h:   now --xram-size 0 works
9750         * src/SDCCmain.c:    now --xram-size 0 works
9751
9752 2003-01-29    <johan AT balder>
9753
9754         * src/almosteverything: changed OP_DEFS and OP_USES from macros to functions to catch symbol abuse (a hot topic in the bug list :)
9755
9756 2003-01-29  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
9757
9758         * as/mcs51/aslink.h: Added options --xram-size and --code-size
9759         * as/mcs51/lkdata.c: Added options --xram-size and --code-size
9760         * as/mcs51/lkmain.c: Added options --xram-size and --code-size
9761         * as/mcs51/lkmem.c:  Added options --xram-size and --code-size
9762         * src/SDCCglobl.h:   Added options --xram-size and --code-size
9763         * src/SDCCmain.c:    Added options --xram-size and --code-size
9764
9765 2003-01-28  Bernhard Held <bernhard AT bernhardheld.de>
9766
9767         * src/ds390/gen.c: fix deps by replacing <common.h> with "common.h"
9768         * src/SDCC.lex: rename P_OVERLAY to P_OVERLAY_ for cross-gcc 3.2 MINGW32
9769
9770 2003-01-27    <johan AT balder>
9771
9772         * src/SDCC.y: fixed bug #613764
9773
9774 2003-01-26    <johan AT balder>
9775
9776         * src/SDCClrange.c:  fixed Bernhard's "char * code ptr = &c"
9777         * src/SDCCsymt.h: fixed bug #673374
9778         * src/SDCCglue.c: fixed bug #661910
9779         * src/SDCCast.c: fixed bug #458099 and 673374
9780
9781 2003-01-26  Bernhard Held <bernhard AT bernhardheld.de>
9782
9783         * as/mcs51/strcmpi.c: added, provides Aurelien Jarno's as_strcmpi(); strcmpi() is not ANSI
9784         * as/mcs51/strcmpi.h: added
9785         * as/mcs51/asm.h: remove ugly "#define strcmpi strcmp"
9786         * as/mcs51/aslink.h: remove ugly "#define strcmpi strcmp"
9787         * as/mcs51/asmain.c: strcmpi -> as_strcmpi
9788         * as/mcs51/assym.c: strcmpi -> as_strcmpi
9789         * as/mcs51/lkmem.c: strcmpi -> as_strcmpi
9790         * as/mcs51/lknoice.c: strcmpi -> as_strcmpi
9791         * as/mcs51/lksym.c: strcmpi -> as_strcmpi
9792         * as/mcs51/Makefile.aslink: new module strcmpi
9793         * as/mcs51/Makefile.asx8051: new module strcmpi
9794         * as/mcs51/Makefil.bcc: new module strcmpi
9795         * as/mcs51/Makefile.in: new module strcmpi
9796         * sim/ucsim/s51.src/uc390.cc (get_mem_size): make RAM big enough for tinibios
9797
9798 2003-01-26    <johan AT balder>
9799
9800         * src/SDCCglue.c: reverted back to 1.124
9801         * src/SDCCast.c: reverted back to 1.156
9802         * src/mcs51/gen.c (aopGet): applied Frieder's efficiency patch
9803
9804 2003-01-25    <johan AT balder>
9805
9806         * src/SDCCglue.c: A better fix for bug #661910
9807         * src/SDCCast.c: A better fix for bug #661910
9808         * src/SDCCglue.c (emitRegularMap): That was a little too efficient
9809
9810 2003-01-24  Bernhard Held <bernhard AT bernhardheld.de>
9811
9812         * src/Makefile.in: remove spawn.o
9813         * src/SDCCmain.c: remove spawn.h
9814         * src/SDCCmain.c (printVersionInfo): report MINGW32 instead of UNIX
9815         * src/spawn.c: removed
9816         * src/spawn.h: removed
9817         * support/regression/ports/ds390/spec.mk: link with -r
9818
9819 2003-01-24    <johan AT CP255758-A>
9820
9821         * src/ds390/gen.c (aopOp): fixed bug #667458
9822         * src/SDCCglue.c (emitRegularMap): fixed bug #458099 again
9823         * src/SDCCast.c (createIvalCharPtr): fixed bug #661910
9824         (createIvalCharPtr): an ival doesn't always have a storage class anymore
9825
9826 2003-01-24  Bernhard Held <bernhard AT bernhardheld.de>
9827
9828         * src/mcs51/peeph.def: better assembler identation by Frieder
9829         * src/mcs51/gen.c: better assembler identation by Frieder
9830
9831 2003-01-22  Bernhard Held <bernhard AT bernhardheld.de>
9832
9833         * as/z80/string.h: removed for gcc 3.2
9834         * support/makebin/makebin.c: #include <string.h> for gcc 3.2
9835         * src/pic/pcode.c (get_op_from_instruction): fix concatenation of string literals with __FUNCTION__ for gcc 3.2
9836
9837 2003-01-19  Bernhard Held <bernhard AT bernhardheld.de>
9838
9839         * src/SDCCmain.c (linkEdit): rename mem and map files even in case of failure
9840         * src/SDCCpeeph.c (replaceRule): fix bug #663503
9841         * support/regression/Makefile: separate temp files for ports
9842         * support/regression/generate-cases.py: separate temp files for ports
9843         * src/mcs51/peeph.def: Frieder: removed 237 (obsolete by 236g and 105); added 237 a/b
9844         * src/ds390/peeph.def: Frieder: removed 237 (obsolete by 236g and 105); added 237 a/b
9845
9846 2003-01-19  Bernhard Held <bernhard AT bernhardheld.de>
9847
9848         * moved tinitalk to device/examples/ds390
9849
9850 2003-01-14  Bernhard Held <bernhard AT bernhardheld.de>
9851
9852         * as/mcs51/lkmem.c: rflag is for DS390
9853         * src/SDCCglobl.h: removed out_name and options stackOnData, genericPtr
9854         * src/SDCCmain.c (optionsTable, setDefaultOptions): removed --stack-after-data and --generic
9855                          (linkEdit): move mem- and map-files the same way as ihx-files
9856         * src/z80/main.c (_setDefaultOptions): removed --generic
9857         * src/SDCCmain.c (_processC1Arg, parseCmdLine, main): --c1mode works again
9858         * src/SDCCglue.c (createInterruptVect, glue): --c1mode works again
9859         * src/pic/glue.c (picglue): --c1mode works again
9860         * src/pic16/glue.c (pic16glue): --c1mode works again
9861         * src/asm.c (printCLine): fix #660034
9862
9863 2003-01-13  Bernhard Held <bernhard AT bernhardheld.de>
9864
9865         * src/ds390/peeph.def: fix #123; add 14 rules by Fiorenzo D. Ramaglia <fd.ramaglia AT tin.it>, 1 by Frieder
9866         * src/mcs51/peeph.def: fix #123; add 14 rules by Fiorenzo, 1 by Frieder
9867         * src/mcs51/gen.c (genFunction): emit r0 instead of ar0 by Fiorenzo
9868         * as/mcs51/lkmem (summary): better fix for sp problem
9869         * src/SDCCglue.c (glue): __start_stack - 1, saves 1 byte!
9870         * src/ds390/main.c (_ds390_finaliseOptions, _tininative_finaliseOptions): stack_loc = 0x400008
9871         * support/regression/ports/*/spec.mk: moving testfwk-object to port dir allow parallel execution of regression tests
9872                                               remove --stack-after-data
9873
9874 2003-01-12  Bernhard Held <bernhard AT bernhardheld.de>
9875
9876         * src/SDCCmain.c (main): port->finaliseOptions() moved for z80 linking
9877         * src/SDCCutil.c (join): ugly bug: missing '\0'
9878         * as/mcs51/lkmem.c (summary): sp on address 7 is safe
9879
9880 2003-01-11  Bernhard Held <bernhard AT bernhardheld.de>
9881
9882         * src/SDCCmain.c (assemble, linkEdit): preparations for -o
9883         * src/port.h: typo
9884         * src/pic/main.c (_asmCmd): gpasm supports -o
9885         * src/z80/main.c: more general macros
9886         * device/lib/Makefile.in: remove intermediate files
9887
9888 2003-01-11  Bernhard Held <bernhard AT bernhardheld.de>
9889
9890         * .version: Bumped version number to 2.3.3
9891         * src/SDCCBBlock.c: new option -o
9892         * src/SDCCglobl.h: new option -o
9893         * src/SDCCglue.c: new option -o
9894         * src/SDCCmain.c: new option -o
9895         * src/asm.c: new option -o
9896         * src/ds390/main.c: new option -o
9897         * src/pic/glue.c: new option -o
9898         * src/pic/pcode.c: new option -o
9899         * src/pic/ralloc.c: new option -o
9900         * src/pic16/glue.c: new option -o
9901         * src/pic16/pcode.c: new option -o
9902         * src/pic16/ralloc.c: new option -o
9903         * src/z80/main.c: new option -o
9904         * device/lib/Makefile.in: use -o
9905         * support/regression/ports/ds390/spec.mk: use -o
9906         * support/regression/ports/gbz80/spec.mk: use -o
9907         * support/regression/ports/mcs51/spec.mk: use -o
9908         * support/regression/ports/mcs51-stack-auto/spec.mk: use -o
9909         * support/regression/ports/z80/spec.mk: use -o
9910         * support/regression/ports/ucz80/spec.mk: use -o
9911         * support/regression/ports/xa51/spec.mk: use -o
9912         * support/regression/fwk/lib/timeout.c: fix usage string
9913
9914 2003-01-09  Bernhard Held <bernhard AT bernhardheld.de>
9915         * src/mcs51/gen.c (genPlus): replaced "mov b,acc" by "mov b,a" Fiorenzo D. Ramaglia <fd.ramaglia AT tin.it>
9916
9917 2003-01-07    <johan AT balder>
9918
9919         * src/SDCCast.c (decorateType): fixed bug #600035
9920
9921 2003-01-07  Bernhard Held <bernhard AT bernhardheld.de>
9922         * as/mcs51/lkmem.c: added several l-modifiers to printf to remove warnings
9923         * as/mcs51/lkaomf51.c: #include <ctype.h> to remove warnings
9924         * src/pic/main.c (_hasNativeMulFor): outcommented unused variables to remove warnings
9925         * src/pic/pcode.c: outcommented unused variable to remove warnings
9926         * src/pic/ralloc.c: outcommented unused variable to remove warnings
9927
9928 2003-01-06    <karl AT turbobit.com>
9929         * sim/ucsim/cmd.src/command.cc: fixed so "break xram r 0x7654" works again in
9930    regression tests.
9931
9932 2003-01-06    <johan AT balder>
9933
9934         * src/SDCCicode.c: fixed array add
9935
9936 2002-01-05  Bernhard Held <bernhard AT bernhardheld.de>
9937         * src/SDCCmacro.c: MAX_STRING_LENGTH increased to 2048; was too small for regression tests
9938         * support/regression/ports/host/support.c: #include <stdarg.h> for gcc 3.2
9939
9940 2003-01-04    <johan AT balder>
9941
9942         * src/SDCCval.c (getNelements): fixed the initialized array of structures
9943
9944 2002-12-29  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
9945         * as/mcs51/Makefile.bcc: fixed typo lkomf51.o -> lkaomf51.o
9946
9947 2002-12-28  Bernhard Held <bernhard AT bernhardheld.de>
9948         * src/mcs51/peeph.def: added rules 234 and 235 from Frieder Ferlemann <frieder.ferlemann AT web.de>
9949         * support/regression/tests/bug-524697.c: fit mem usage into 8032
9950
9951 2002-12-28  Bernhard Held <bernhard AT bernhardheld.de>
9952         * src/mcs51/gen.c (aopGetUsesAcc): inserted missing "return FALSE"
9953
9954 2002-12-27  Bernhard Held <bernhard AT bernhardheld.de>
9955         * as/mcs51/Makefile.in: fixed typo lkomf51.o -> lkaomf51.o
9956
9957 2002-12-26  Bernhard Held <bernhard AT bernhardheld.de>
9958         * src/mcs51/main.c: removed {bindir}{sep} from aslink
9959
9960 2002-12-10  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
9961
9962     * in \sdcc\as\mcs51\ changed these files in order to create an
9963     aomf51 file: aslink.h, lkdta.c, lklex.c, lklibr.c, lklist.c,
9964     lkmain.c.  Also added: lkmem.c and lkaomf51.c.  Changed the
9965     following files to include the previous two files: aslink.dsp,
9966     Makefile.aslink, Makefile.bcc, and Makefile.in.
9967
9968     * Changed \sdcc\src\SDCCmain.c so it creates files with extension
9969     .adb instead of .cdb
9970
9971 2002-11-09  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
9972
9973         * \sdcc\as\mcs51\lklist.c: Now reports memory usage using the
9974         value from option --iram-size.
9975
9976 2002-09-20  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
9977
9978         * \sdcc\as\mcs51\lklist.c: added boundary check before using
9979         dram[] array.
9980
9981 2002-09-18    <wiml AT hhhh.org>
9982
9983         * SDCClrange.h: exposed setFromRange() and setToRange()
9984         * mcs51/ralloc.c: fixed over-eager packRegsForSupport() and
9985           packRegsForAccUse() (bug 542397)
9986         * mcs51/gen.c: MOVA() is now a function to avoid calling aopGet()
9987           multiple times and emitting the fetch operations more than once
9988           added aopGetUsesAcc() function to allow binary operators to
9989           fetch their operands in the correct order; made genMinus() emit
9990           compact code for X = LITERAL - Y
9991
9992 2002-09-00  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
9993         * \sdcc\as\mcs51\lklist.c: Fixed incorrect number of parameters to
9994         sprintf() in line 1267.
9995
9996 2002-09-08  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
9997         * \sdcc\src\SDCCglue.c: Generate areas REG_BANK_[0-3] only for 8051
9998         like ports.
9999
10000 2002-09-04  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
10001         Changes to aslink (All the changes are marked with 'JCF'):
10002
10003         * \sdcc\as\mcs51\aslink.h: External definition of sflag and
10004         summary().
10005
10006         * \sdcc\as\mcs51\lkarea.c: Computes the size of area BSEG_BYTES from
10007         area BSEG.  Also moves, if possible, the DATA area down into the internal
10008         ram so more space is available.
10009
10010         * \sdcc\as\mcs51\lkdata.c: Definition of memory summary output flag
10011         sflag.
10012
10013         * \sdcc\as\mcs51\lklist.c: For the BSEG area report the size in bits,
10014         not bytes.  Function summary() which creates a memory usage summary
10015         file with extension .mem.  Reports of overlaping stack and small stack
10016         size.  If the space for the stack is less than 16 bytes aslink trows a
10017         warning.
10018
10019         * \sdcc\as\mcs51\lkmain.c: Creation of some of the default areas for
10020         the 8051.  Option 'y' for memory summary output file.
10021
10022         Changes to sdcc (All the changes are marked with 'JCF'):
10023
10024         * \sdcc\src\SDCCglobl.h: External definition of RegBankUsed[4].
10025
10026         * \sdcc\src\SDCCglue.c:  If a register bank is used, creates an
10027         overlaying area for it (uses RegBankUsed[4]).
10028
10029         * \sdcc\src\SDCCmain.c: Definition RegBankUsed[4]; marks register
10030         bank zero as used by default.  By default aslink locates the stack
10031         (equivalent to --stack-after-data).  Pass option 'y' to aslink for
10032         the creation of the .mem file.  Delegates the allocation of data area
10033         to aslink (it is not longer 0x30 by default).  If --stack-loc passes
10034         the begining of the stack area to aslink.
10035
10036         * \sdcc\src\SDCCmem.c:  If a register bank is used, marks it so
10037         glue() in SDCCglue.c creates an area for it.
10038
10039 2002-09-03  Borut Razem <borut.razem AT siol.net>
10040         * sdcc/src/SDCCglue.c, sdcc/src/SDCCglue.h, sdcc/src/SDCCmain.c,
10041         sdcc/src/pic/glue.c:
10042         introduced atexit() handler for teporay files removal in case of
10043         errors, assertions, ...
10044
10045 2002-08-29  Borut Razem <borut.razem AT siol.net>
10046         * sdcc/support/cpp2/auto-host_vc_in.h:
10047         re-definition of O_BINARY and other O_XXX as _O_BINARY and _O_XXX, so the problem
10048         with the returned value from read() in sdcc/support/cpp2/cppfiles.c is solved for MSC.
10049         Maybe there is a similar problem with BORLANDC? It should be checked!
10050
10051         * sdcc/src/ds390/ralloc.c, sdcc/src/mcs51/ralloc.c, sdcc/src/z80/ralloc.c:
10052         corrected improper use of assert: the assignment to clr variable was done inside the assert.
10053         In case that NDEBUG was defined, the assert macro was substituted with no-op, so the assignment
10054         was not executed, and the compiler (cl) launched a warning:
10055         ralloc.c(1442) : warning C4700: local variable 'clr' used without having been initialized
10056
10057 2002-08-28  Bernhard Held <bernhard AT bernhardheld.de>
10058         * src/SDCCglue.c (printIvalArray): iterative calculation of array length
10059
10060 2002-08-28  Jesus Calvino-Fraga and Borut Razem <borut.razem AT siol.net>
10061         * sdcc/sdcc.dsw: added sdcpp, sdcppa, yacc, conf projects
10062
10063         * sdcc/src/src.dsp, sdcc/src/avr/avr.dsp, sdcc/src/ds390/ds390.dsp,
10064           sdcc/src/mcs51/mcs51.dsp, sdcc/src/pic/pic.dsp, sdcc/src/z80/z80.dsp,
10065           sdcc/src/xa51/xa51.dsp, sdcc/src/avr/avra.dsp,
10066           sdcc/src/ds390/ds390a.dsp, sdcc/src/mcs51/mcs51a.dsp,
10067           sdcc/src/pic/pica.dsp, sdcc/src/z80/z80a.dsp,
10068           sdcc/src/xa51/xa51a.dsp, sdcc/as/as_z80.dsp,
10069           sdcc/as/aslink.dsp, sdcc/as/asx8051.dsp, sdcc/packihx/packihx.dsp:
10070         - added Release configuration in VS projects
10071         - review of compiler an linker options
10072         - VC .exe files are generated in bin_vc directory, not to interfere
10073           with binaries generated from other projects (cygwin, mingw, bcc ...)
10074
10075         * sdcc/src/yacc.dsp: added
10076
10077         * sdcc/config.dsp, sdcc/configure_vc.awk, sdcc/sdcc_vc_in.h:
10078         added - genarate sdcc_vc.h using sdcc_vc_in.h as template
10079         and insert the version number definitions from .version
10080
10081         * sdcc/support/cpp2/sdcpp.dsp: added - VC project for sdcpp
10082
10083         * sdcc/support/cpp2/sdcppa.dsp, sdcc/support/cpp2/auto-host_vc_in.h:
10084         added - genarate auto-host.h using auto-host_vc_in.h as template
10085
10086         * sdcc/sdcc_vc.h,
10087         removed from CVS, generated automatically
10088
10089 2002-08-25  Bernhard Held <bernhard AT bernhardheld.de>
10090         * support/scripts/inc2h.pl: use gputils or gpasm (from Nathan Hurst)
10091
10092 2002-08-11  Borut Razem <borut.razem AT siol.net>
10093         * support/Util/NewAlloc.c: removed unneeded #include "sdccconf.h" (suggested by Jesus Calvino-Fraga)
10094
10095 2002-08-10  Borut Razem <borut.razem AT siol.net>
10096         * src/SDCCmain.c (main):
10097         file preOutName was unlinked before closed. This seems to be OK on UNIX and cygwin
10098         platforms, but it doesn't work with Visual Studio: the opened file can not be removed.
10099         The consequence was that some temporary files were not removed.
10100
10101         * src/SDCCglue.c:
10102         unification of code in functions tempfilename() and tempfile():
10103         function tempnam() is defined in Visual Studio 6.0 and .NET
10104
10105         * sdcc/sdcc.dsw: removed project sdcpp, added project xa51a
10106
10107         * sdcc/src/src.dsp, sdcc/src/avr/avr.dsp, sdcc/src/ds390/ds390.dsp,
10108           sdcc/src/mcs51/mcs51.dsp, sdcc/src/pic/pic.dsp, sdcc/src/z80/z80.dsp:
10109         - removed compiler command line option /WX: Treats all warnings as errors
10110         - update a list of source files, included into the project
10111
10112         * sdcc/src/avr/avra.dsp, sdcc/src/ds390/ds390a.dsp, sdcc/src/mcs51/mcs51a.dsp,
10113           sdcc/src/pic/pica.dsp, sdcc/src/z80/z80a.dsp:
10114         changed project type to Generic Project so that can be correcly converted to VS.NET project
10115
10116         * sdcc/as/mcs51/asm.h: definition of PATH_MAX for MSC
10117
10118         * sdcc/src/SDCCast.c: solved MSC error in function decorateType()
10119
10120         * sdcc/src/SDCC.y: added missing ending ';' to rules to get rid of bison warnings
10121
10122         * dcc/src/ds390/ralloc.c, sdcc/src/mcs51/ralloc.c:
10123         added return 0 statements after assert() to make compiler happy
10124
10125         * sdcc/src/xa51/peeph.rul, sdcc/src/xa51/peeph.def, sdcc/src/z80/ralloc.c:
10126         added newline in the def file to keep MSC compiler satisfied
10127
10128         * sdcc/src/z80/gen.c:
10129         - function strcasecmp() is not defined in MSC (and probably also in BORLANDC),
10130           so it is replaced with STRCASECMP, which is defined as stricmp in case of MSC and BORLANDC
10131         - solved MSC error in function aopDump()
10132
10133         * sdcc_vc.h: define PREFIX as "\\sdcc"
10134
10135 2002-07-18  Bernhard Held <bernhard AT bernhardheld.de>
10136         * src/SDCCast.c (decorateType): fixed access to array of structures http://sourceforge.net/mailarchive/forum.php?thread_id=902690&forum_id=4107
10137
10138 2002-06-22  Scott Dattalo <scott AT dattalo.com>
10139         * src/pic/*: Numerous bug fixes. Flow analysis has been enhanced.
10140         - Rewrote the register banking algorithm.
10141         - Added pCode live-range analysis to registers (for now, only non-used and
10142         singly-used registers optimized away)
10143
10144         * src/pic/pcoderegs.[ch]: Added new files for pCode live-range analysis
10145
10146         * support/scripts/inc2h.pl Kevin L. Pauba <klpauba AT cox.net> submitted this perl script for converting MicroChip include files into SDCC Pic include files.
10147
10148 2002-05-10  Scott Dattalo <scott AT dattalo.com>
10149         * src/pic/*: Added support for multiplication. Fixed many,many bugs.
10150
10151 2002-04-22  Michael Hope  <michaelh AT vroom>
10152
10153         * device/lib/z80/printf.c: Changed emitter to volatile to work around a pcall bug.
10154
10155         * configure.in (DD_COPT): Added include support required for gbdk.
10156
10157         * .version: Bumped version number just to increase it.
10158
10159         * src/SDCCmain.c: Added -nostdinc to the default options.
10160
10161 2002-04-15  Michael Hope  <michaelh AT vroom>
10162
10163         * device/lib/z80/printf.c (sprintf): Added.
10164
10165         * src/z80/ralloc.c (packRegisters): Disabled pack HL use for GB as it's broken.
10166
10167         * src/z80/peeph.def: Added transpose redundent load rule.
10168
10169         * src/z80/main.c: Added force callee saves for jaune.
10170
10171         * src/port.h: Removed the i186 and tlcs-900h ports as they weren't being being developed.
10172
10173         * src/SDCCmain.c: Pulled the options definition out so that you can add port specific options without changing the main file.
10174
10175 2002-03-28  Johan Knol  <johan AT balder>
10176
10177         * src/SDCCval.c: fixed bug #532436
10178
10179 2002-03-14  Scott Dattalo <scott AT dattalo.com>
10180         * /src/port.h:
10181         Added "char *Processor" field to the port structure.
10182
10183         * /src/SDCCmain.c:
10184         Added -p option. Allows port dependent processor to be specified.
10185
10186         * all ports:
10187         Initialized the new field char *Processor field to NULL in all ports
10188
10189         * /src/pic/*:
10190         Compiler generated registers for interrupt context saving
10191         were not getting allocated.
10192
10193 2002-03-16  Sandeep Dutta  <sandeep AT ddi.com>
10194
10195         * /src/SDCCast.c:
10196         Fixed left shift. Will promote the left side of a left shift
10197         if a) left shifting more than size of operand or b) when assigned
10198         to something size > size of left side
10199
10200 2002-03-14  Scott Dattalo <scott AT dattalo.com>
10201         * src/pic/*
10202         tons of changes. Register allocation has been
10203         rewritten. Added customization for the various PICs. Flow
10204         analysis is restructured. ...
10205
10206         * src/pic/device.h:
10207         Added
10208
10209         * src/pic/device.c:
10210         Added. device.c is a PIC port hack to accomodate variations
10211         in PIC devices.
10212
10213 2002-03-13  Michael Hope  <michaelh AT vroom>
10214
10215         * src/z80/gen.c (genGenPointerGet): Fixed a bug where a pointer in HL is dereferenced into HL but HL is not spilled.  Yeah.
10216
10217 2002-03-04  johanknol  <johanknol AT manik>
10218
10219         * /src/SDCCval.c: fixed
10220
10221         const unsigned char arr[][2] = { { 0, 1 } };
10222         t18.c:1: error: Initializer element is not constant
10223
10224 2002-03-04  bela  <bela AT manik>
10225
10226         * /device/include/mcs51reg.h:
10227         ds89c420 register definition update
10228
10229 2002-03-03    <johan AT FRIJA>
10230
10231         * support/Util/SDCCerr.c: did something, but don't no why anymore
10232
10233         * support/regression/tests/bug-524691.c: made it a little less shy
10234
10235         * src/SDCCast.c (decorateType): fixed bug #524697
10236
10237         * src/SDCCast.c: made some lineno improvements
10238
10239         * src/SDCCval.c (getNelements): changed warning to error
10240
10241         * src/SDCCglue.c (printIvalArray): changed warning to error
10242
10243         * src/SDCCicode.c: fixed a warning for mingw
10244
10245         * src/SDCCast.c (decorateType): fixed the << promotion for ops
10246
10247         * src/SDCCicode.c (geniCodeDivision): divide is shift only for unsigned (bug #524685)
10248
10249 2002-03-02  Sandeep Dutta  <sandeep AT ddi.com>
10250
10251         * src/ds390/peeph.def:
10252         Added some more peephole rules
10253
10254         * src/ds390/gen.c: Various fixes & enhancements
10255
10256         * src/SDCClrange.c, src/SDCClrange.h:
10257         functions "alldefsoutofrange" and "notusedinblock" moved to SDCClrange.c
10258
10259         * src/ds390/ralloc.c:
10260         various fixes & enhancements (ds390) specific
10261
10262         * src/avr/ralloc.c, src/mcs51/ralloc.c, src/pic/ralloc.c, src/xa51/ralloc.c, src/z80/ralloc.c:
10263         Functions "allDefsOutOfRange" & "notUsedinBlock" moved to SDCClrange.c
10264         from rallocs.
10265
10266         * sdcc/src/SDCCcse.c: Better fix for bug # 514308
10267
10268 2002-03-02    <johan AT FRIJA>
10269
10270         * src/SDCCast.c (decorateType): fixed bug #524708
10271
10272         * src/SDCCval.c (floatFromVal): fixed the literal void (whatever that may be)
10273
10274         * src/SDCCicode.c (geniCodePtrPtrSubtract): fixed bug #524691
10275
10276 2002-03-01  Michael Hope  <michaelh AT vroom>
10277
10278         * src/SDCCsymt.c (initCSupport): Removed managling of support function names.
10279
10280         * src/z80/ralloc.c (packRegsForIYUse): Fixed fp bug where four byte operands were packed into IY.
10281
10282 2002-03-01    <johan AT FRIJA>
10283
10284         * src/SDCCglue.c (printIvalPtr): fixed bug #524211
10285
10286         * src/SDCCast.c (decorateType): fixed bug #524209
10287
10288         * src/SDCCval.c (valNot): fixed bug #524195
10289
10290 2002-02-26    <johan AT balder>
10291
10292         * src/xa51/gen.c: fixed a warning
10293
10294         * src/SDCCglue.c (printIvalFuncPtr): fixed bug #522534
10295
10296         * src/SDCCast.c (decorateType): fixed bug #522534
10297
10298 2002-02-23    <johan AT balder>
10299
10300         * src/SDCCdflow.c (computeDataFlow): fixed bug #460088
10301
10302 2002-02-22    <johan AT balder>
10303
10304         * src/SDCCast.c: fixed bug #514865
10305
10306         * src/SDCCy.c ("SDCC.y"): fixed bug #516625
10307
10308 2002-02-21  Sandeep Dutta  <sandeep AT ddi.com>
10309
10310         * sdcc/src/SDCCloop.c:
10311         Previous fix was not good. basic blocks that have "break" or "return" are
10312         not really partof a loop , but live ranges used in these blocks should
10313         be live thru the entire loop, so set partOfLoop but don't add them to
10314         loop region
10315
10316 2002-02-21    <johan AT FRIJA>
10317
10318         * src/SDCCcse.c: fixed bug #514308
10319
10320 2002-02-20  Sandeep Dutta  <sandeep AT ddi.com>
10321
10322         * src/SDCCloop.c:
10323         Fixed BUG #519583. If a conditional block ended in a return/break
10324         statement inside a loop, it was not being considered part of the loop.
10325
10326         * src/SDCCcflow.c: Removed fix (Fixed in SDCCloop.c)
10327
10328 2002-02-10  Karl Bongers <karl AT turbobit.com>
10329
10330         * debugger/*:
10331         Fixed up SDCDB debugger somewhat.  Updated debugger/README
10332         with lots of comments and notes.
10333
10334         * device/examples/test2.c:
10335         Fix bug, "red" variable not being initialized(compiler complained).
10336
10337         * device/examples/Makefile, examples/test3.c:
10338         Add Makefile in device/examples folder, compiles test3.c
10339         for use as a multiple module SDCDB test case.
10340
10341         * sim/ucsim/cmd.src/cmdset.cc:
10342         Took out debug printfs in ucsim "next" command.
10343
10344         * sim/ucsim/xa.src:
10345         Karl and Johan start ucsim XA support.  Most dissassembly working,
10346         about 75% emulation done(plenty of work remaining).
10347
10348         * sim/ucsim/z80.src:
10349         Add Z80 support to ucsim, add test-ucz80 regression test,
10350         notice ucsim/z80 emulation fails on examples/test3.c/itoa code.
10351         Notice z80 compiler fails on examples/test3.c/crc code.
10352
10353 2002-01-30  Sandeep Dutta  <sandeep AT ddi.com>
10354
10355         * src/mcs51/gen.c, src/mcs51/main.c, src/mcs51/ralloc.c:
10356         Added support for --parms-in-bank1
10357
10358         * src/ds390/peeph.def:
10359         added a few more peephole optimzations
10360
10361         * src/ds390/main.c:
10362         1) added __builtin_inp & __builtin_outp used to read in data of given length
10363            from a memory mapped port
10364         2) added __builtin_memcmp
10365         3) added __builtin_swapw swap bytes of a short
10366
10367         * src/ds390/gen.c, src/ds390/gen.h, src/ds390/ralloc.c:
10368         1) handle multiple send & receives from register bank1
10369         2) ralloc can now allocate DPTR1 to some liveRanges
10370
10371         * src/SDCCsymt.c, src/SDCCsymt.h:
10372         changes to handle multiple sends & receives
10373
10374         * src/SDCCptropt.h:
10375         added some pointer arithmetic optimization
10376
10377         * src/SDCCptropt.c:
10378         added some pointer arithmetic optimizations but not stable yet so not
10379         called from anywhere (will get this working shortly)
10380
10381         * src/SDCCopt.c: fixed for multiple sends & receives
10382
10383         * src/SDCCmain.c:
10384         1) added options --parms-in-bank1 (ds390/mcs51) & --protect-sp-update
10385         2) preprocessing done AFTER port->finalizeoptions . This allows ports to
10386            set preprocessor defines (depending on options)
10387
10388         * src/SDCCicode.c, src/SDCCicode.h:
10389         changes made to handle multiple sends & receives
10390
10391         * src/SDCCglobl.h:
10392         Added options --protect-sp-update (ds390) and --parms-in-bank1 (ds390/mcs51)
10393
10394         * src/SDCCcse.c, src/SDCCcse.h:
10395         added function findbackward def (to be used in upcoming optimization)
10396
10397         * src/SDCCcflow.c, src/SDCCcflow.h:
10398         added function returnAtEnd - to determine if a basic block terminates with
10399         a RETURN iCode
10400
10401         * src/SDCCast.c, src/SDCCast.h:
10402         added option parms-in-bank1
10403
10404         * device/lib/_divsint.c, device/lib/_divslong.c, device/lib/_divuint.c
10405         * device/lib/_divulong.c, device/lib/_modsint.c, device/lib/_modslong.c
10406         * device/lib/_modulong.c, device/lib/_mulint.c, device/lib/_mullong.c:
10407         adjusted for --parms-in-bank1 option
10408
10409         * device/include/string.h:
10410         donot redefine "reentrant" keyword
10411
10412         * device/include/ds80c390.h: Added some more SFRs
10413
10414 2002-01-28  Bernhard Held  <bernhard AT bernhardheld.de>
10415
10416         * sim/ucsim: Merged branch ucsim-034-pre3 to main trunk; new version 0.4
10417
10418 2002-01-26  Bernhard Held  <bernhard AT bernhardheld.de>
10419
10420         * src/SDCCast.c (funcOfType): fix usage of double --float-reent
10421
10422 2002-01-22  Bernhard Held  <bernhard AT bernhardheld.de>
10423
10424         * support/regression/fwk/lib/testfwk.c (main): Removed workaround for bug #505387
10425
10426 2002-01-18  Paul Stoffregen  <paul AT pjrc.com>
10427
10428         * Added --xram-movc option
10429
10430 2002-01-13  Bernhard Held  <bernhard AT bernhardheld.de>
10431
10432         * support/regression/Makefile: don't include test-mcs51-stack-auto in target all
10433
10434 2002-01-11  Johan Knol
10435
10436         * Added math lib of Jesus Calvino-Fraga
10437
10438 2002-01-08  Bernhard Held  <bernhard AT bernhardheld.de>
10439
10440         * src/SDCCmain.c (processFile): fix processing of ../../src.c
10441         * support/regression/Makefile: new target test-mcs51-stack-auto
10442         * support/regression/ports/mcs51-stack-auto/spec.mk: added
10443
10444 2002-01-04  Bernhard Held  <bernhard AT bernhardheld.de>
10445
10446         * src/SDCCglue.h: printIvalCharPtr(), not printIvalChar()
10447
10448 2002-01-04  Bernhard Held  <bernhard AT bernhardheld.de>
10449
10450         * support/regression/ports/mcs51/support.c: correct setup of timer / UART
10451
10452 2002-01-03  Bernhard Held  <bernhard AT bernhardheld.de>
10453
10454         * src/SDCCsymt.c (processFuncArgs): fix #498307 by Johan
10455
10456         * src/SDCCglue.h: add definition for printIvalChar()
10457
10458 2002-01-02  Bernhard Held  <bernhard AT bernhardheld.de>
10459
10460         * src/SDCCast.c: fix #498138 by Johan
10461
10462         * src/SDCCglue.c: fix #498138 by Johan
10463
10464 2002-01-02  Bernhard Held  <bernhard AT bernhardheld.de>
10465
10466         * support/regression/Makefile: fix clean
10467
10468         * support/regression/ports/ds390/support.c: fix transmission of last character
10469
10470 2001-12-29  Sandeep Dutta  <sandeep AT ddi.com>
10471
10472         * /sdcc/src/ds390/gen.c:
10473         a) improved computing address of stack variable
10474         b) took out some #if 0 code
10475         c) improved parmBytes adjustment
10476         d) improved genPlusIncr & genMinusIncr
10477         e) genCmp could generate bad code (when left assigned to DPTR)
10478         f) Fixed bug in hasInc
10479
10480         * /sdcc/src/ds390/ralloc.c:
10481         a) packRegsForSupport could mess up live information (Fixed)
10482         b) packRegsDPTRuse could be incorrect for left & right shift
10483
10484         * /sdcc/src/mcs51/ralloc.c:
10485         packRegsForSupport could mess up the live information (Fixed)
10486
10487         * /sdcc/src/mcs51/gen.c: Fixed a bug in hasInc
10488
10489         * /sdcc/src/SDCCast.c:
10490         can reverse a loop even if function call is present as long
10491         as the loop control variable is local & is not passed as parameter
10492
10493 2001-12-24  Sandeep Dutta  <sandeep AT ddi.com>
10494
10495         * /sdcc/ChangeLog: *** empty log message ***
10496
10497         * /sdcc/src/ds390/gen.c, /sdcc/src/ds390/main.c:
10498         More builtin function additions for TININative
10499
10500         * /sdcc/src/ds390/ralloc.c:
10501         Had broken the regression testsuite
10502
10503         * /sdcc/src/SDCCast.c: Fixed a bug in dumptree
10504
10505         * /sdcc/src/SDCCsymt.c, /sdcc/src/SDCCsymt.h:
10506         Added funcattr hasStackParms will be set for reentrant functions when there
10507         are paramteres on the stack, this helps in minimizing frame pointer generation
10508         typeFromStr can handle function pointers now
10509
10510         * /sdcc/doc/builtins.txt, /sdcc/doc/TININative.txt:
10511         *** empty log message ***
10512
10513 2001-12-24  Sandeep Dutta  <sandeep AT ddi.com>
10514
10515         * /src/ds390/gen.c, /src/ds390/main.c:
10516         More builtin function additions for TININative
10517
10518         * /src/ds390/ralloc.c:
10519         Had broken the regression testsuite
10520
10521         * /src/SDCCast.c: Fixed a bug in dumptree
10522
10523         * /src/SDCCsymt.c, /src/SDCCsymt.h:
10524         Added funcattr hasStackParms will be set for reentrant functions when there
10525         are paramteres on the stack, this helps in minimizing frame pointer generation
10526         typeFromStr can handle function pointers now
10527
10528         * /doc/builtins.txt, /doc/TININative.txt:
10529         *** empty log message ***
10530
10531
10532 2001-12-24  Sandeep Dutta  <sandeep AT ddi.com>
10533
10534         * /src/ds390/gen.c, /src/ds390/main.c, /src/ds390/peeph.def, /src/ds390/ralloc.c:
10535         ALPHA version for -mTININative
10536
10537         * /src/izt/i186.c, /src/izt/tlcs900h.c, /src/mcs51/main.c, /src/pic/main.c, /src/z80/main.c, /src/avr/main.c:
10538         updated to reflect changes in the port structure
10539
10540         * /src/port.h:
10541         added function do_assemble (similar to do_link) if non-null this function
10542         will be called to do assembly (-mTININative) requires a multi command
10543         assembly
10544         added function genAssemblerEnd will be called to generate assembler Epilogue
10545
10546         * /src/SDCCsymt.c:
10547         added _JavaNative to debug info printing
10548
10549         * /src/SDCCmain.c: added option --tini-libid
10550         added port->do_assemble function (-mTININative) has a multi command assemble
10551
10552         * /src/SDCCglue.c: Disabled "constExpr" check
10553         added port->genAssemblerEnd function
10554
10555         * /src/SDCCglobl.h: Added option --tini-libid value
10556
10557         * /src/SDCCast.h:
10558         tookout optimizeCompare from the header (has no external references)
10559
10560         * /src/SDCCast.c: made one more function "static"
10561
10562 2001-12-23  Michael Hope  <michaelh AT juju.net.nz>
10563
10564         * src/z80/mappings.i: Added z80asm support.
10565
10566         * src/z80/main.c: Added z80asm support on --asm=z80asm
10567
10568         * src/z80/gen.c: Fixed asm portability issues.
10569
10570         * src/asm.c (tvsprintf): Removed old code, added 'N' for function name.  For extern support.
10571
10572         * src/SDCCglue.c (printExterns): Added global/extern split.
10573
10574 2001-12-17  Bernhard Held  <bernhard AT bernhardheld.de>
10575
10576         * support/regression/Makefile: added test for mcs51 model large
10577
10578         * support/regression/ports/mcs51-large/spec.mk: added test for mcs51 model large
10579
10580         * support/regression/ports/gbz80/spec.mk: added -mgbz80
10581
10582 2001-12-05  Michael Hope  <michaelh AT juju.net.nz>
10583
10584         * src/diff.1 (Index): Many, many optmisiations.  Dhrystone up to 201.
10585
10586 1904-01-06  Michael Hope  <michaelh AT juju.net.nz>
10587
10588         * src/z80/ralloc.c (packRegsForIYUse): Fixed the case where an operand is in direct space.
10589
10590         * src/z80/gen.c (makeFreePairId): Optimised IY load by using a spare pair.
10591
10592 2001-12-02  Bernhard Held  <bernhard AT bernhardheld.de>
10593
10594         * src/mcs51/gen.c (genFunction): avoid excess "inc sp"
10595
10596         * support/regression/tests/simplefloat.c: Port to mcs51.
10597
10598 2001-11-25  Michael Hope  <michaelh AT juju.net.nz>
10599         * support/regression/tests/bug-485362.c: Added.
10600
10601         * support/regression/tests/simplefloat.c (testDivNearOne): Added.
10602
10603         * src/z80/gen.c (aopOp): Fixed case where left and result are in the same spill loc and they have different sizes.
10604
10605         * src/z80/peeph.def: Added rules for optimising two byte compares on the same thing, and to optimise two ptr assign.
10606
10607         * src/z80/gen.c (aopDump): Added a dump function.
10608
10609 2001-11-25  Bernhard Held  <bernhard AT bernhardheld.de>
10610         * sim/ucsim/s51.src/glob.cc: DS390 SFRs and bits added.
10611
10612         * sim/ucsim/s51.src/port.cc: Port 4 and 5 added.
10613
10614         * sim/ucsim/s51.src/regs51.h: DS390 SFRs added.
10615
10616         * sim/ucsim/s51.src/uc390.cc: Some details improved, CKRDY works for tinibios.
10617
10618         * sim/ucsim/s51.src/uc390cl.h: Work in progress.
10619
10620         * sim/ucsim/sim.src/uccl.h: 6 ports for DS390.
10621
10622         * support/regression/fwk/lib/testfwk.c: Run with tinibios.
10623
10624         * support/regression/ports/mcs51/spec.mk: Fine tuninig.
10625
10626         * support/regression/ports/ds390/support.c: Use tinibios.
10627
10628         * support/regression/ports/ds390/spec.mk: Fine tuning, use tinibios.
10629
10630 2001-11-23  Michael Hope  <michaelh AT juju.net.nz>support/regression/tests/bug-460010.c
10631
10632         * src/z80/ralloc.c (packRegsForHLUse3): Changed to not pack into HL if anything is in direct space.
10633         (packRegsForHLUse3): Added packing support for send, cast, and return value from a call.
10634
10635         * src/z80/peeph.def: Added rules for optimising pushes of part of a pair.
10636
10637         * src/z80/gen.c (emitCall): Changed the stack fixup to not use HL.
10638
10639 2001-11-18  Michael Hope  <michaelh AT juju.net.nz>
10640
10641         * src/z80/gen.c (genCmp): Fixed compare on unsigned.
10642
10643         * src/z80/ralloc.c (packRegsForHLUse3): Created and optimised.
10644         (packRegsForIYUse): Created and optimised.
10645
10646 2001-11-07  Michael Hope  <michaelh AT juju.net.nz>
10647
10648         * support/regression/tests/float.c (testFloatAdd): Fixed up warning.
10649 2001-11-18  Bernhard Held  <bernhard AT bernhardheld.de>
10650
10651         * sdcc/support/regression/tests/bug-460010.c: fix seg violation on host
10652
10653         * sdcc/support/regression/tests/muldiv.c: fix output on mcs51
10654
10655         * sdcc/support/regression/tests/stacks.c: fix DSEG overflow on mcs51
10656
10657 2001-11-07  Bernhard Held  <bernhard AT bernhardheld.de>
10658
10659         * sdcc/sim/device/lib/_gptrget.c: mem region 5 (idata) added
10660
10661         * sdcc/sim/device/lib/_gptrput.c: mem region 5 (idata) added
10662
10663 2001-11-07  Bernhard Held  <bernhard AT bernhardheld.de>
10664
10665         * sdcc/sim/ucsim/globals.cc: New: IXRAM.
10666
10667         * sdcc/sim/ucsim/stypes.h: New: IXRAM.
10668
10669         * sdcc/sim/ucsim/s51.src/uc390.cc: New: IXRAM.
10670
10671 2001-11-07  Michael Hope  <michaelh AT juju.net.nz>
10672
10673         * src/z80/ralloc.c (packRegsForHLUse): Banned IFXs from being packed into HL.
10674         (packRegsForHLUse): Added rule to pack address of/pointer get for itemps into HL for the Z80.
10675         (packRegsForAccUse2): Added rule to pack hbit IFXs into A.
10676
10677         * src/z80/main.c (_setDefaultOptions): Made float code re-entrant by default.
10678
10679         * src/z80/gen.c (aopGetLitWordLong): Added word support for floats.
10680         (genNotFloat): Added.
10681         (genUminusFloat): Added.
10682
10683         * device/lib/z80/Makefile: Added floating pt stubs.
10684
10685         * device/lib/Makefile.in (Z80SOURCES): Added floating pt support.
10686
10687         * src/z80/gen.c (genIpush): Fixed up a push of one byte when left is in a pair.
10688
10689         * device/lib/_fsadd.c (__fsadd): Fixed up return where the numbers are hugely different.
10690
10691 2001-11-07  Bernhard Held  <bernhard AT bernhardheld.de>
10692
10693         * sdcc/sim/ucsim/s51.src/glob.cc: Minor fix.
10694
10695         * sdcc/sim/ucsim/s51.src/regs51.h: Minor fix.
10696
10697         * sdcc/support/regression/Makefile: Add port ds390.
10698
10699         * sdcc/support/regression/ports/mcs51/spec.mk: Minor change.
10700
10701         * sdcc/support/regression/ports/z80/spec.mk: Minor change.
10702
10703         * sdcc/support/regression/ports/ds390/spec.mk: Added.
10704
10705         * sdcc/support/regression/ports/ds390/support.c: Added.
10706
10707         * sdcc/support/regression/ports/ds390/uCsim.cmd: Added.
10708
10709         * sdcc/support/regression/ports/mcs51/timeout.c: Cut.
10710
10711         * sdcc/support/regression/fwk/lib/timeout.c: Paste.
10712
10713 2001-11-04  Michael Hope  <michaelh AT juju.net.nz>
10714
10715         * device/include/malloc.h: Added z80 and gbz80 support.
10716
10717         * device/lib/gbz80/heap.s: Added.
10718
10719         * device/lib/z80/heap.s: Added.
10720
10721         * device/lib/malloc.c: Added z80 and gbz80 support.
10722
10723         * support/regression/tests/malloc.c (testMalloc): Added.
10724
10725         * src/SDCCmain.c (parseCmdLine): Added support for -Wp.
10726
10727         * support/regression/tests/bug-478094.c: Added.
10728
10729         * src/z80/gen.c (commitPair): Fixed silly gbz80/z80 commit to static bug.
10730
10731 2001-11-04  Bernhard Held  <bernhard AT bernhardheld.de>
10732
10733         * sdcc/sim/ucsim/s51.src/uc390cl.h: Improvement for ds390 to run regression tests
10734
10735         * sdcc/sim/ucsim/s51.src/uc390.h: Improvement for ds390 to run regression tests
10736
10737         * sdcc/sim/ucsim/s51.src/regs51.h: Improvement for ds390 to run regression tests
10738
10739         * sdcc/sim/ucsim/s51.src/glob.cc: Improvement for ds390 to run regression tests
10740
10741         * sdcc/support/regression/tests/bug-460010.c: Small change for ds390
10742
10743 2001-11-04  Michael Hope  <michaelh AT juju.net.nz>
10744
10745         * src/z80/peeph-gbz80.def: Removed a bad sub optimisation.
10746
10747 2001-11-03  Michael Hope  <michaelh AT juju.net.nz>
10748
10749         * support/regression/tests/bug-477927.c: Added.
10750
10751         * src/z80/peeph.def: Added minor rules.
10752
10753         * src/z80/gen.c (genPlusIncr): Added an extra plusinc rule.
10754
10755         * src/z80/peeph.def: Added jump optimisation modification.
10756
10757 2001-11-01  Michael Hope  <michaelh AT juju.net.nz>
10758
10759         * src/SDCCmain.c (linkEdit): Added runtime path detection to the mcs51 port.
10760
10761 2001-10-30  Michael Hope  <michaelh AT juju.net.nz>
10762
10763         * support/regression/tests/funptrs.c: Added.
10764
10765 2001-10-29  Michael Hope  <michaelh AT juju.net.nz>
10766
10767         * src/z80/ralloc.c (packRegsForHLUse): Fixed up bad spill due to pushing one byte via HL.
10768
10769 2001-10-28  Michael Hope  <michaelh AT juju.net.nz>
10770
10771         * src/z80/gen.c (genArrayInit): Made it work for on stack arrays.
10772
10773         * src/z80/main.c (gbz80_port =): Added rle support to the gbz80 port.
10774
10775         * src/z80/gen.c (genMinus): Fixed for where the result is one byte.
10776         (movLeft2ResultLong): Created.
10777
10778         * src/z80/ralloc.c (packRegsForHLUse): Added a couple of simple cases for the GB.
10779         (joinPushes): Added.  Joins two char pushes into a word push.
10780
10781 2001-10-27  Michael Hope  <michaelh AT juju.net.nz>
10782
10783         * support/cpp2/Makefile.in (install): Added creation of dest dir.
10784
10785         * support/makebin/Makefile (install): Added creation of dest dir.
10786
10787 2001-10-24 Karl Bongers <karl AT turbobit.com>
10788
10789         * configure.in, configure, Makefile, support/cpp: Removed cpp folder, since we have new cpp2 preprocessor code.
10790
10791 2001-10-21  Michael Hope  <michaelh AT juju.net.nz>
10792
10793         * src/z80/ralloc.c: Turned off faulty pack for one use.
10794
10795         * src/z80/peeph-gbz80.def: Removed redundent restart options.
10796
10797         * src/z80/gen.c (genMult): Added native mul for constants on the z80 and gbz80.
10798
10799 2001-10-21  Bernhard Held  <bernhard AT bernhardheld.de>
10800
10801         * support/regression/Makefile: Improved clean
10802
10803         * support/regression/ports/gbz80/spec.mk: Added clean
10804
10805         * support/regression/ports/host/spec.mk: Added clean
10806
10807         * support/regression/ports/z80/spec.mk: Added clean
10808
10809         * support/regression/ports/mcs51/spec.mk: Added clean, little improvements
10810
10811         * support/regression/ports/mcs51/timeout.c: little improvements
10812
10813 2001-10-17  Michael Hope  <michaelh AT juju.net.nz>
10814
10815         * device/lib/malloc.c (MEMHEADER): Fixed against new pedantic pointers.
10816
10817         * support/regression/fwk/include/testfwk.h: Fixed up to use function pts correctly.
10818
10819         * support/regression/generate-cases.py: Fixed up to use function pts correctly.
10820
10821 2001-10-16  Bernhard Held  <bernhard AT bernhardheld.de>
10822
10823         * support/regression/port/mcs51/spec.mk: add timeout for uCsim
10824
10825         * support/regression/port/mcs51/timeout.c: add timeout for uCsim
10826
10827 2001-10-13  Michael Hope  <michaelh AT juju.net.nz>
10828         * src/z80/gen.c (emitCall): Fixed up missing spill of HL when used to assign the result value.
10829
10830         * src/z80/ralloc.c: Turned off pack for one use as it's quite broken.
10831
10832         * src/SDCCmain.c (linkEdit): Added support for passing a legacy command line through the processor.
10833
10834         * src/mcs51/main.c (_linkCmd): Added bin path to command.
10835
10836         * src/SDCCmain.c (initValues): Added support for when it it called just to link.
10837
10838         * as/mcs51/lklibr.c (libfil;): Turned off 'library file' message.
10839
10840         * src/SDCCval.c (constVal): Fixed usage of 'L' modifier problems on ppc.
10841
10842         * support/regression/tests/longor.c: Added.
10843
10844 2001-10-11  Bernhard Held  <bernhard AT bernhardheld.de>
10845
10846         * as/mcs51/asdata.c: replaced FILENAME_MAX with PATH_MAX
10847
10848         * as/mcs51/aslink.h: define PATH_MAX
10849
10850         * as/mcs51/asm.h: define PATH_MAX
10851
10852         * as/mcs51/asmain.c: replaced FILENAME_MAX with PATH_MAX
10853
10854         * as/mcs51/asnoice.c: replaced FILENAME_MAX with PATH_MAX
10855
10856         * as/mcs51/lklex.c: replaced FILENAME_MAX with PATH_MAX
10857
10858         * as/mcs51/lkmain.c: replaced FILENAME_MAX with PATH_MAX
10859
10860         * src/SDCCglobl.h: define PATH_MAX
10861
10862         * src/SDCCmacro.c: replaced FILENAME_MAX with PATH_MAX
10863
10864         * src/SDCCmain.c: replaced FILENAME_MAX with PATH_MAX
10865
10866 2001-10-11  Michael Hope  <michaelh AT juju.net.nz>
10867
10868         * src/z80/gen.c (gencjneshort): Fixed
10869
10870         * src/z80/ralloc.c (packRegsForHLUse): Added pack into HL for cast then ipush.
10871
10872 2001-10-09  Michael Hope  <michaelh AT juju.net.nz>
10873
10874         * support/regression/tests/bug-469671.c: Added.
10875
10876         * src/z80/gen.c (shiftIntoPair): Fixed up warning.
10877
10878 2001-10-08  Michael Hope  <michaelh AT juju.net.nz>
10879
10880         * src/SDCCmain.c: Added --fommit-frame-pointer option and implemented in the z80 port.
10881
10882         * src/z80/gen.c (genPlus): Fixed to work with extended stack.  Also fixed genMinus, genCmp.  genUMinus is still left.
10883
10884 2001-10-08  Bernhar Held  <bernhard AT bernhardheld.de>
10885
10886         * src/SDCCmain.c (preProcess): added define SDCC_NOOVERLAY
10887
10888         * src/device/lib/_mulint.c  : removed hint: nooverlay bug
10889
10890         * src/device/lib/_mullong.c : removed hint: nooverlay bug
10891
10892         * src/device/lib/_divuint.c : removed hint: nooverlay bug
10893
10894         * src/device/lib/_divulong.c: removed hint: nooverlay bug
10895
10896         * src/device/lib/_moduint.c : removed hint: nooverlay bug
10897
10898         * src/device/lib/_modulong.c: removed hint: nooverlay bug
10899
10900 2001-10-07  Michael Hope  <michaelh AT juju.net.nz>
10901
10902         * src/z80/gen.c (setupPair): Added 'extended stack' support for the z80.  Can now have local variables or parameters of more than 127 bytes in size.  Increadibly slow, but it will work.  Currently anything involving the carry flag.
10903
10904         * support/Util/NewAlloc.c (freeTrace): Changed free for the gc case to not free at all.  Fixes runtime segfault.
10905
10906         * support/regression/tests/scott-compare3.c (c_abcd): Fixed up casts.
10907
10908 2001-10-07    <johan AT FRIJA>
10909
10910         * device/lib/gets.c (gets): fixed the return value.
10911
10912 2001-10-06  Michael Hope  <michaelh AT juju.net.nz>
10913         * src/SDCCmain.c (WRITE_SEG_LOC): Fixed up to use Safe_strdup.
10914
10915         * src/SDCCpeeph.c (peepHole): Fixed all leaks.  Added trace support for freeing lines.  Optimised restart logic to re-run instead of restart.  Now compiles dscan.c on ~60MB instead of ~200MB.
10916
10917         * support/Util/NewAlloc.c: Added ability to use libgc instead of malloc.  Added Safe_free and Safe_strdup.  Added trace support where you can log allocations and free all at once.
10918
10919         * src/z80/gen.c (genZ80Code): Added de-allocation via trace support.
10920
10921         * src/pic/gen.c: Removed Safe_strdup.
10922
10923         * configure.in: Added option to enable libgc support.
10924
10925         * src/SDCCbitv.c (bitVectnBitsOn): Optimised.
10926         (bitVectUnion): Optimised.
10927         (bitVectIntersect): Optimised.
10928         (bitVectBitsInCommon): Optimised.
10929         (bitVectCplAnd): Optimised.
10930
10931         * support/makebin/makebin.c (usage): Removed getopt as mingw32 doesn't have it.  Sigh.
10932
10933 2001-10-03 Bernhard Held <bernhard AT bernhardheld.de>
10934
10935         * src/SDCCmain.c: distinguish between assembler debug and plain options
10936
10937         * src/avr/main.c:   remove standard assembler options
10938
10939         * src/ds390/main.c: remove standard assembler options
10940
10941         * src/mcs51/main.c: remove standard assembler options
10942
10943         * src/port.h: removed "PENDING" comment
10944
10945 2001-10-03 Bernhard Held <bernhard AT bernhardheld.de>
10946
10947         * src/device/lib/_mulint.c  : new, with assember functions
10948
10949         * src/device/lib/_mullong.c : new, with assember functions
10950
10951         * src/device/lib/_divuint.c : with assember functions
10952
10953         * src/device/lib/_divsint.c : with assember functions
10954
10955         * src/device/lib/_divulong.c: with assember functions
10956
10957         * src/device/lib/_divslong.c: with assember functions
10958
10959         * src/device/lib/_moduint.c : with assember functions
10960
10961         * src/device/lib/_modsint.c : with assember functions
10962
10963         * src/device/lib/_modulong.c: with assember functions
10964
10965         * src/device/lib/_modslong.c: with assember functions
10966
10967         * src/device/lib/libint.lib:  replaced _muluint.c  and _mulsint.c  by _mulint.c
10968
10969         * src/device/lib/liblong.lib: replaced _mululong.c and _mulslong.c by _mullong.c
10970
10971         * src/device/lib/Makefile.in: replaced _muluint.c  and _mulsint.c  by _mulint.c
10972                                       replaced _mululong.c and _mulslong.c by _mullong.c
10973
10974 2001-10-03 Bernhard Held <bernhard AT bernhardheld.de>
10975
10976         * src/SDCCsymt.c: sequence of specifiers in pintTypeChain() corrected
10977
10978 2001-10-01 Bernhard Held <bernhard AT bernhardheld.de>
10979
10980         * src/SDCCglue.c: test, if win32api is available for MINGW
10981
10982 2001-10-01 Bernhard Held <bernhard AT bernhardheld.de>
10983
10984         * src/SDCCsymt.c: no more _modifier in printTypeChain()
10985         * support/regression/tests/driverstruct.c: REENTRANT for mcs51
10986         * support/regression/ports/gbz80/spec.mk: removed GENERIC
10987         * support/regression/ports/host/spec.mk: removed GENERIC
10988         * support/regression/ports/mcs51/spec.mk: removed GENERIC
10989         * support/regression/ports/z80/spec.mk: removed GENERIC
10990
10991 2001-10-01  Michael Hope  <michaelh AT juju.net.nz>
10992
10993         * support/regression/fwk/lib/testfwk.c (__printf): Removed GENERIC.
10994
10995         * support/regression/tests/bug-467035.c: Created.
10996
10997 2001-10-01    <johan AT FRIJA>
10998
10999         * src/SDCC.y: fixed bug #466586 part 1
11000
11001 2001-10-01  Johan Knol <johan.knol AT iduna.nl>
11002
11003         * SDCCicode.c: z80 has no generic pointers
11004         * removed -s from strip in all Makefile(.in)'s. It is not needed, but Solaris chocks on it.
11005
11006 2001-09-30  Michael Hope  <michaelh AT juju.net.nz>
11007
11008         * sim/ucsim/cmd.src/Makefile.in ($(PRJDIR)/libcmd.a): Changed all ar references to $(AR) for Solaris.
11009
11010 2001-09-29  Michael Hope  <michaelh AT juju.net.nz>
11011
11012         * Makefile (sdcc-libs): Added makebin to the list of standard targets.
11013
11014         * support/regression/ports/z80/spec.mk: Updated to use env for sdcc bin dir for automatic regression.
11015
11016 2001-09-25  Michael Hope  <michaelh AT juju.net.nz>
11017
11018         * configure.in: Fixed up so that ucsim is only configured once.
11019
11020         * support/cpp2/configure.in: Fixed to use the program transform to append the .exe for the win32 build.
11021
11022         * src/SDCCutil.c (getPrefixFromBinPath): Fixed up to work with win32 in all of its glory.
11023         (getPathDifference): As above.
11024
11025         * src/SDCCmain.c (preProcess): Changed to use a temporary file in a proper temp directory.  Fixed case where pre-processing only.
11026
11027         * src/SDCCglue.c (tempfilename): Added function for pre-processor.
11028
11029 2001-09-23  Michael Hope  <michaelh AT juju.net.nz>
11030         * .version: Updated to 2.3.1
11031
11032         * src/z80/main.c (z80_port =): Added macro based linker and assembler command line support.
11033         Added copyright header.
11034
11035         * src/SDCCmain.c: Shifted various functions into SDCCutil.c
11036         (assemble): Added support for macro based assembler commands.
11037         (linkEdit): Added support for macro based linker commands.
11038         (preProcess): Changed the pre-processor to use macros.
11039         (_setPaths): Added functionality to autodetect the include, lib and bin dir paths.
11040         (_discoverPaths): Added support for overriding the install directory using the SDCCDIR env variable.
11041
11042         * device/lib/z80/crt0.s: Added module name for debugging.
11043
11044 2001-09-20  Michael Hope  <michaelh AT juju.net.nz>
11045
11046         * src/SDCCmain.c (printVersionInfo): Added the build date to the version info.
11047
11048         * src/SDCChasht.c (hTabDeleteByKey): Fixed delete as it would delete the last item from a bucket even if it wasn't the real one.
11049
11050         * src/SDCCglue.c: Moved gc_strdup to SDCCutil.c
11051
11052         * src/Makefile.in: Added SDCCmacro and SDCCutil
11053
11054 2001-09-19  Michael Hope  <michaelh AT juju.net.nz>
11055
11056         * src/SDCCmain.c (printVersionInfo): Added the build date to the version info.
11057
11058 2001-09-16    <johan AT FRIJA>
11059
11060         * support/Util/SDCCerr.c: fixed up the error/warning/info database. I only changed the E_ W_ I_ prefix to what SDCCerr.c says it is.
11061
11062 2001-09-15    <johan AT FRIJA>
11063
11064         * src/mcs51/ralloc.c: (findAssignToSym): fixed bug #460662 part 1
11065         * src/ds390/ralloc.c (findAssignToSym): fixed bug #460662 part 1
11066
11067 2001-09-11    <johan AT FRIJA>
11068
11069         * src/SDCCval.c (valDiv Mod Minus Plus Shift): keep litteral expressions as small as possible (bug #460010)
11070
11071 2001-09-10  Michael Hope  <michaelh AT juju.net.nz>
11072
11073         * support/regression/tests/bug-460444.c: Added test case.
11074
11075         * src/z80/gen.c (genOr): bug 460444: if (a ^ lit) was broken for &, |, and ^.
11076         (genCast): Added justification for all of the asserts.
11077
11078 2001-09-10  Bernhard Held <bernhard AT bernhardheld.de>
11079
11080         * support/regression/support.c: _xdata replaced by xdata
11081
11082         * support/regression/spec.mk: removed _generic
11083
11084 2001-09-09  Michael Hope  <michaelh AT juju.net.nz>
11085
11086         * src/pic/ralloc.c (debugLogRegType): Removed some old types to get it to compile.
11087
11088         * src/z80/gen.c (shiftR2Left2Result): Improved the case when v = v >> n for small values of n to use less code space and time.
11089         (genrshTwo): Fixed v = v >> n where v is a negative int and n is > 8: bug 460010.
11090
11091         * src/z80/peeph.def: Added a rule to optimise shift then compare.
11092
11093         * support/regression/tests/bug-460000.c (testShiftByParam): Added test case.
11094
11095         * support/regression/tests/bug-460010.c: Added test case.
11096
11097         * support/regression/Makefile (test-host): Removed a silly 'clean' target when testing against gcc.
11098
11099 2001-09-09  Bernhard Held <bernhard AT bernhardheld.de>
11100
11101         * support/regression/Makefile: inter-port-clean adjusted for mcs51
11102
11103         * support/regression/testfwk.c: removed workaround for bug #436344
11104
11105         * support/regression/tests/bp.c: use less memory with mcs51
11106
11107         * support/regression/tests/bug-441448.c: use less memory
11108
11109         * support/regression/tests/ports/mcs51/spec.mk: cleanup, use --stack-after-data
11110
11111         * support/regression/collate-results.py: typo
11112
11113 2001-09-08  Michael Hope  <michaelh AT juju.net.nz>
11114
11115         * support/regression/tests/fetchoverlap.c: Added new test case.
11116
11117         * support/regression/tests/bp.c: Added new test case.
11118
11119         * support/regression/tests/bug-448984.c: Added new test case.
11120
11121         * support/regression/tests/pow2shifts.c: Added new test case.
11122
11123         * src/z80/gen.c: Turned off the noise it normally generates for the release.
11124         (genlshTwo): Fixed right shift for count > 8.
11125
11126         * src/z80/ralloc.c: Disabled most of the ACC packing rules as they weren't getting hit and weren't at all safe.
11127
11128 2001-09-08    <johan AT FRIJA>
11129
11130         * src/SDCCicode.c (geniCodeCall): a CPOINTER can be used as a function
11131
11132 2001-09-07    <johan AT FRIJA>
11133
11134         * src/SDCCicode.c (newiCodeCondition): fixed bug #456235 (1.77)
11135
11136         * src/SDCCglue.c (emitRegularMap): only delete a symbol when it is a symbol
11137
11138 2001-09-06    <johan AT FRIJA>
11139
11140         * src/SDCC.y: this could be a fix for bug #458744 (1.37)
11141         * bernhard noted me at this: "() equals to (void)" (1.38)
11142
11143 2001-09-05    <johan AT FRIJA>
11144
11145         * src/SDCCglue.c (emitRegularMap): a fix for bug #458099/2
11146
11147 2001-09-04    <johan AT FRIJA>
11148
11149         * src/SDCCsymt.c (checkSClass): a fix for bug #458099/1
11150
11151
11152 2001-09-04  Paul Stoffregen  <paul AT pjrc.com>
11153
11154         * pragma noinduction broke memcpy on mcs51 large model.  Moved it inside z80 optimization
11155
11156 2001-09-03  Michael Hope  <michaelh AT juju.net.nz>
11157
11158         * link/z80/aslink.h: Fixed path for PATH_MAX
11159
11160 2001-09-02  Michael Hope  <michaelh AT juju.net.nz>
11161
11162         * src/z80/gen.c (fetchLitPair): Changed so that it properly caches direct space references.
11163
11164         * support/regression/tests/addsub.c: Added cases to cover all the +, - combinations.
11165
11166         * support/regression/tests/uminus.c: Added a test for the unary minus operator.
11167
11168         * src/z80/gen.c (genUminus): Fixed add, sub, and uminus on the gbz80 port for longs.  Had to shift some functions about to do it.
11169
11170 2001-09-01  Michael Hope  <michaelh AT juju.net.nz>
11171
11172         * src/z80/gen.c: Fixed up generator to pass the regresion tests, specifically fixing loads for longs, genCmp, and turned on the map file.
11173         (genCmp): Fixed up genCmp for the GB with longs.
11174
11175         * device/lib/gbz80/Makefile: Fixed up all the libraries to pass the regression tests.
11176
11177         * support/regression/ports/host/spec.mk: Updated to compile with the new type specifiers.
11178
11179         * device/lib/Makefile.in (Z80SOURCES): Removed old _mululong, _mulslong, and unneeded _mulint.
11180
11181         * device/lib/_mullong.c (_mulslong): Changed to actually return a value :)
11182
11183 2001-08-30  Paul Stoffregen  <paul AT pjrc.com>
11184
11185         * added peepholes 223 to 231 to mcs51 port.  These improve code when using large model.
11186
11187 2001-08-30  Michael Hope  <michaelh AT juju.net.nz>
11188
11189         * device/lib/gbz80/crt0.s (init): Fixed up support for the gbz80 such that it will at least run (and fail badly) the regression tests.
11190
11191         * src/z80/gen.c (genPlus): Changed bad long add for gb to a fall through.
11192
11193 2001-08-29  Michael Hope  <michaelh AT juju.net.nz>
11194
11195         * link/z80/aslink.h: Fixed long file name support.  Is now based off PATH_MAX instead of a constant.
11196
11197         * src/z80/gen.c: Fixed add and sub for the case where left or right are in static space.
11198
11199 2001-08-30 Bernhard Held   <bernhard AT bernhardheld.de>
11200
11201   * sim/ucsim/configure:    little improvement of Cygwin-detection
11202   * sim/ucsim/configure.in: little improvement of Cygwin-detection
11203   * sim/ucsim/cmd.src/newcmdcl.h: include <sys/types.h> to define fd_set automated build
11204   * support/regression/tests/bug-221100.c: small changes for mcs51
11205   * support/regression/tests/bug-221168.c: small changes for mcs51
11206   * support/regression/tests/bug-227710.c: small changes for mcs51
11207   * support/regression/tests/staticinit.c: small changes for mcs51
11208   * as/mcs51/aslink.h: accept everything as symbol name in rel-files, bug fix ID 452601
11209   * as/mcs51/lklex.c:  accept everything as symbol name in rel-files, bug fix ID 452601
11210   * as/mcs51/lksym.c:  accept everything as symbol name in rel-files, bug fix ID 452601
11211
11212 $Revision$