* device/lib/pic16/Makefile.in, device/lib/pic16/Makefile.subdir,
[fw/sdcc] / ChangeLog
1 2006-07-27 Borut Razem <borut.razem AT siol.net>
2
3         * device/lib/pic/Makefile.in, device/lib/pic/Makefile.subdir,
4           device/lib/pic/libdev/Makefile.in: fixed bug
5           [ 1438354 ] pic libsdcc: distclean doesn't work
6         * device/lib/pic16/Makefile.in, device/lib/pic16/Makefile.subdir,
7           device/lib/pic16/libio/Makefile.in: fixed bug
8           [ 1438344 ] pic16 lib: clean doesn't work properly
9         * doc/knownbugs.html removed [ 1438354 ] and [ 1438344 ] from the list
10
11 2006-07-26 Maarten Brock <sourceforge.brock AT dse.nl>
12
13         * device/lib/pic/libsdcc/fsdiv.c,
14         * device/lib/pic/libsdcc/fsmul.c,
15         * device/lib/pic16/libsdcc/float/fsdiv.c,
16         * device/lib/pic16/libsdcc/float/fsmul.c,
17         * device/lib/_fsdiv.c,
18         * device/lib/_fsmul.c: bugfix, handle too large and too small numbers
19         * support/regression/tests/bug1520966.c: added
20         * doc/knownbugs.html: removed [ 1520966 ] from the list
21
22 2006-07-25 Borut Razem <borut.razem AT siol.net>
23
24         * configure.in, configure, sdccconf_in.h: fixed bug
25           [ 1519095 ] regression test onebyte.c fails on ppc64 host
26         * doc/knownbugs.html: removed [ 1519095 ] from the list
27
28 2006-07-25 Maarten Brock <sourceforge.brock AT dse.nl>
29
30         * doc/knownbugs.html: added, contains list of known bugs at release
31         * device/include/mcs51/compiler.h: fixed SFR32 for SDCC
32
33 2006-07-23 Maarten Brock <sourceforge.brock AT dse.nl>
34
35         * device/include/mcs51/compiler.h: added SFRX for xdata based special
36           function registers and corrected defaults with additional warning
37         * device/lib/malloc.c: cosmetic changes
38         * device/lib/realloc.c: bugfix for bug #1496907, Thanks Efim Monyak
39         * src/ds390/ralloc.c (getRegBitNoSpil): reenabled,
40           (fillGaps): and used it
41
42 2006-07-20 Raphael Neider <rneider AT web.de>
43
44         * src/pic/device.c (addMemRange,assignRegister): suppress verbose
45           output unless SDCCPICDEBUG is set
46         * device/lib/pic16/Makefile.rules (%.lib target): suppress verbose
47           output if SILENT is set
48
49 2006-07-11 Borut Razem <borut.razem AT siol.net>
50
51         * doc/README.txt: updated
52
53 2006-07-10 Borut Razem <borut.razem AT siol.net>
54
55         * support/scripts/sdcc.nsi: added device/include/asm/pic/features.h and
56           device/lib/src/pic/libm/*.c and device/lib/src/pic16/libsdcc/stack/*.S
57           in WIN32 installation
58         * .version, sdcc.spec, doc/sdccman.lyx: changed sdcc version to 2.6.0 -
59           release candidate 1
60
61 2006-07-08 Maarten Brock <sourceforge.brock AT dse.nl>
62
63         * device/include/mcs51/XC866.h: added sbit definitions for Px_x, P1_x, P2_x
64         * src/pic16/glue.c (initPointer): fixed bug 1496419 for pic16
65
66 2006-07-06 Maarten Brock <sourceforge.brock AT dse.nl>
67
68         * src/hc08/gen.c (genAddrOf): fixed bug when offset on stack is >127
69
70 2006-07-06 Borut Razem <borut.razem AT siol.net>
71
72         * support/regression/tests/bitfields.c:
73           fixed bug [ 1518322 ] regression test bitfields fails on ppc hosts
74         * support/regression/tests/constantRange.c:
75           fixed bug [ 1518317 ] regression test constantRange fails on alpha host
76
77 2006-07-04 Borut Razem <borut.razem AT siol.net>
78
79         * src/configure.in, src/configure, src/Makefile.in, as/z80/Makefile.in,
80           src/port.mk,
81           src/avr/Makefile.in, src/ds390/Makefile.in, src/ds400/Makefile.in,
82           src/hc08/Makefile.in, src/mcs51/Makefile.in, src/pic16/Makefile.in,
83           src/pic/Makefile.in, src/xa51/Makefile.in, src/z80/Makefile.in:
84           reverted changes from 2006-07-03
85         * Makefile.common.in: added @CPPFLAGS@ to CPPFLAGS
86         * support/regression/Makefile.in, support/regression/ports/host/spec.mk:
87           added CPPFLAGS, used by the host port
88
89 2006-07-03 Bernhard Held <bernhard AT bernhardheld.de>
90
91         * support/regression/valdiag/tests/switch.c,
92         * support/regression/valdiag/tests/constantRange.c: adapted to gcc 4
93         * support/regression/tests/libmullong.c: fixed for host
94         * support/regression/ports/host/spec.mk: disable all warnings for host,
95         SDCC runs with --less-pedantic too
96
97 2006-07-03 Borut Razem <borut.razem AT siol.net>
98
99         * src/configure.in, src/configure, src/Makefile.in, as/z80/Makefile.in:
100           defined CPPFLAGS
101         * src/port.mk: defined CPPFLAGS, renamed to src/port.mk.in
102         * src/avr/Makefile.in, src/ds390/Makefile.in, src/ds400/Makefile.in,
103           src/hc08/Makefile.in, src/mcs51/Makefile.in, src/pic16/Makefile.in,
104           src/pic/Makefile.in, src/xa51/Makefile.in, src/z80/Makefile.in:
105           include ../port.mk
106         * sim/ucsim/main_in.mk, sim/ucsim/avr.src/Makefile.in,
107           sim/ucsim/gui.src/Makefile.in, sim/ucsim/hc08.src/Makefile.in,
108           sim/ucsim/s52.src/Makefile.in, sim/ucsim/sim.src/Makefile.in,
109           sim/ucsim/xa.src/Makefile.in: ignore header files for dependencies
110
111 2006-07-02 Raphael Neider <rneider AT web.de>
112
113         * src/pic16/devices.inc,
114         * device/include/pic16/pic18fregs.h,
115         * device/include/pic16/pic18f4550.h,
116         * device/lib/pic16/pics.all,
117         * device/lib/pic16/libdev/pic18f4550.c: added support for 18f4550
118
119 2006-07-01 Bernhard Held <bernhard AT bernhardheld.de>
120
121         * as/hc08/lkaomf51.c (OutputName),
122         * as/mcs51/lkaomf51.c (OutputName),
123         * as/z80/asmain.c (asmbl),
124         * src/ds390/main.c (asmLineNodeFromLineNode),
125         * src/hc08/ralloc.c (hc08_assignRegisters),
126         * src/mcs51/main.c (asmLineNodeFromLineNode),
127         * src/xa51/ralloc.c (checkRegMask),
128         * src/xa51/gen.c (emitcode),
129         * src/z80/gen.c (_emit2),
130         * src/SDCCast.c (searchLitOp),
131         * src/SDCCglobl.h,
132         * support/packihx/packihx.c,
133         * support/Util/MySystem.c (split_command): fix gcc 4 warnings
134         * src/ds390/gen.c (aopPutUsesAcc),
135         * src/ds390/ralloc.c (getRegBitNoSpil): unused, therefore disabled
136         * support/regression/tests/libmullong.c (mullong_wrapper),
137         * src/SDCCsymt.c (powof2),
138         * src/SDCCast.c,
139         * src/SDCCicode.c: renamed TYPE_WORD by TYPE_TARGET_INT and so on
140         * src/SDCCsymt.h: added TYPE_TARGET_*
141         * src/SDCCutil.c (doubleFromFixed16x16, fixed16x16FromDouble),
142         * src/SDCCutil.h (doubleFromFixed16x16, fixed16x16FromDouble): moved to
143         SDCCast because 1) header problems 2) this is the right place
144         * src/SDCCast.c (doubleFromFixed16x16, fixed16x16FromDouble): added
145         * src/SDCCval.h (doubleFromFixed16x16, fixed16x16FromDouble): added
146         prototype
147
148 2006-06-29 Bernhard Held <bernhard AT bernhardheld.de>
149
150         * src/SDCCicode.h: removed buggy semicolon in unused macro
151         * src/SDCClrange.c (findPrevUseSym, rlivePoint): fixed bug #1486853,
152         search for previous definiton of auto symbols too,
153         (findPrevUse): fixed logic of emitWarnings
154
155 2006-06-26 Raphael Neider <rneider AT web.de>
156
157         * src/pic16/gen.c (genFunction, genEndFunction): also preserve
158           PCLATH and PCLATU on interrupts, potentially fixes #1505141
159
160 2006-06-25 Raphael Neider <rneider AT web.de>
161
162         * device/lib/pic/libm: NEW, added math library functions
163         * device/lib/pic/libsdcc: NEW; added float support functions
164         * device/lib/pic/{Makefile.in,configure.in,configure}: added libm/
165         * device/include/pic/{limits.h,errno.h,sdcc-lib.h,float.h,math.h}:
166           NEW, added math related headers
167         * device/include/asm/pic/features.h: NEW
168         * src/pic/gen.c (emitpcode_real): emit warning on NULL pCodeOp,
169           (popGet): allow larger offsets for AOP_PCODE,
170           (genDataPointerSet): handle literals explicitly, more debug output,
171           (genAssign): fixed for float using aopLiteral ;-)
172         * src/pic/glue.c (pic14createInterruptVect): inserted pagesel before
173           GOTO initialisation routine
174         * src/pic/pcoderegs.c (pCodeRegMapLiveRangesInFlow): set wasUsed
175           flag on registers, fixes #1469043 (local variables do not work)
176         * src/pic/main.c (_pic14_do_link),
177         * src/pic16/main.c (_pic16_linkEdit): use fullDstFileName if
178           available
179
180 2006-06-25 Borut Razem <borut.razem AT siol.net>
181
182         * device/lib/pic16/libc/stdio/sprintf.c: return the number of
183           characters printed (not including the trailing '\0' used to end
184           output to strings). Problem detected in regression test bug-927659.c.
185           NOTE: printf() family functions should return int instead
186           unsigned int!
187         * device/lib/pic16/libc/stdio/vfprintf.c: "%%" prints "%", unknown
188           specifier are printed as themselves
189         * sdcc/support/regression/tests/bug1057979.c: pic16 printf doesn't
190           support flags, width and precision specifiers
191
192 2006-06-24 Borut Razem <borut.razem AT siol.net>
193
194         * sdcc/support/regression/tests/bitvars.c: added gbz80, pic16 and pic16
195           to the list of sdcc tagrets not supporting bit type
196         * sdcc/support/regression/tests/bug-905992.c.c: excluded regression
197           testfor pic16 due to bug:
198           [ 1511794 ] pic16: regression test bug-895992.c fails
199
200 2006-06-24 Maarten Brock <sourceforge.brock AT dse.nl>
201
202         * src/mcs51/gen.c (genCmp): optimization for RFE 1162453
203         * src/SDCCglue.c (initPointer), fixed bug 1496419
204         * support/regression/tests/bug1496419.c: new, added
205
206 2006-06-22 Borut Razem <borut.razem AT siol.net>
207
208         * support/regression/ports/pic16/support.c: use gpsim usart module from
209           libgpsim_modules library
210
211 2006-06-21 Jesus Calvino-Fraga <jesusc at ece.ubc.ca>
212
213         * device/include/mcs51/at89c51ed2.h: Fixed bug 1510144 changed
214         IP0H to IPH0.
215
216 2006-06-19 Raphael Neider <rneider AT web.de>
217
218         * src/pic/glue.h,src/pic16/glue.h: added prototypes
219         * src/pic/glue.c,src/pic16/glue.c (pic1x_stringInSet,
220           pic1x_emitSymbolIfNew): NEW, check for a string in a set,
221           (pic14printExterns,pic14printPublics,pic16printPublics,
222           pic16_printExterns): use new functions to emit symbols
223           (picglue,pic16glue): emit publics before emitting externs
224         * src/pic/gen.c,src/pic16/gen.c (genFunction): remember the names of
225           locally defined functions to avoid bug #1443651
226         * support/regression/tests/bug-716242.c: removed pic16 workaround
227         * support/regression/ports/pic16/spec.mk: ignore errors during build
228
229 2006-06-19 Raphael Neider <rneider AT web.de>
230
231         * src/pic/glue.h: added pic14aopLiteral prototype
232         * src/pic/glue.c (pic14aopLiteral): return unsigned int
233         * src/pic/gen.c: removed stdint.h dependency
234           (aopGet): use Safe_strdup()
235           (bitpatternFromVal): removed, replaced use with pic14aopLiteral
236           (genDataPointerSet): use pic14aopLiteral()
237         * src/pic16/glue.h, src/pic16/glue.c, src/pic16/gen.c: similar changes
238           for pic16; thanks to Bernhard and Maarten
239
240 2006-06-18 Borut Razem <borut.razem AT siol.net>
241
242         * support/regression/tests/structflexarray.c: flexible array members
243           not supported by gcc < 3
244         * sim/ucsim/configure, sim/ucsim/configure.in: do not compile serio
245           GUI tool by default
246         * src/pic/gen.c: don't include [p]strdin.h on solaris
247         * support/Util/pstdint.h: addad svn attributes
248         * support/regression/tests/constantRange.c,
249           support/regression/tests/rotate.c: include inttypes.h instead
250           stdint.h on solaris, addad svn attributes
251
252 2006-06-18 Raphael Neider <rneider AT web.de>
253
254         * src/SDCCsymt.c (initCSupport): change return type of divschar to
255           int for PIC16
256         * src/pic16/genarith.c (genAddLit): sign-extend via standard routine
257           (pic16_genMinusBits): simplified sign-extension
258           (pic16_genUMult8XLit_8,pic16_genUMult8X8_8): renamed to
259             pic16_genMult8XLit_n resp. pic16_genMult8X8_n, fixed and
260             adjusted to correctly handle mixed-signed operands, disabled
261             now unused multiplciation routines
262         * src/pic16/gen.c (pic16_pushpCodeOp): fixed to handle literals
263           (assignResultValue): added argument denoting the size of the result
264             as returned by the function (fixes upcasts in assigning from
265             function calls: char foo(); int i = foo();)
266           (genCall,genPcall,genGenPointerGet,genReceive): pass size of
267             function result to assignResultValue
268           (genMult): disabled inlined multiplication code
269           (genDiv): augmented to also handle the modulus operator, fixed to
270             handle mixed-signed operands correctly
271           (genMod): simply call genDiv, disabled unused code
272           (genAssign): fixed missing (sign-)extension on result
273         * src/pic16/main.c (_hasNativeMulFor): accept literals [-128..256) as
274             valid char operands, allow signed operands for native code, added
275             division and modulo operator handling
276         * device/lib/pic16/libsdcc/char/divschar.c: divschar returns an int
277
278         As a consequence, onebyte.c (if split into two files) and muldiv.c
279         pass regression tests.
280
281 2006-06-17 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
282
283         * doc/Makefile.in: two runs of makeindex seem needed to get
284         correct page references in the index of sdccman.pdf
285         * doc/sdccman.lyx: mentioned cmon51, added links, small changes
286
287 2006-06-17 Borut Razem <borut.razem AT siol.net>
288
289         * sdcc/device/lib/Makefile.in: corrected PORTINCDIR path
290
291 2006-06-17 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
292
293         * doc/sdccman.lyx: updated, added (porting source code, debugging),
294         mentioned ec2drv and paulmon
295
296 2006-06-16 Maarten Brock <sourceforge.brock AT dse.nl>
297
298         * as/mcs51/lkarea.c (lnkarea2): clear new xdatamap, bugfix for two
299           consecutive abs areas
300           (find_empty_space, allocate_space): added map to handle codemap or
301            xdatamap,
302           (lnksect2): renamed rloc to locIndex, fixed bug 960060 by handling
303            absolute idata and xdata
304         * as/mcs51/lkmem.c (summary2): updated legend
305
306 2006-06-16 Raphael Neider <rneider AT web.de>
307
308         * src/pic16/gen.c (shiftR2Left2Result): fixed bug #1507127
309
310 2006-06-13 Maarten Brock <sourceforge.brock AT dse.nl>
311
312         * debugger/mcs51/cmd.c (cmdListFunctions): fixed bugs 1181163 and
313           1208515
314         * src/SDCClrange.c (findPrevUse): fixed bug 1294475
315
316 2006-06-13 Vangelis Rokas <vrokas AT users.sourceforge.net>
317
318         * src/port.h (struct PORT): added field gp_tags, to hold the tag
319         value of generic pointers,
320         * src/avr/main.c,
321           src/ds390/main.c,
322           src/hc08/main.c,
323           src/izt/i186.c,
324           src/izt/tlcs900h.c,
325           src/mcs51/main.c,
326           src/pic/main.c,
327           src/pic16/main.c,
328           src/xa51/main.c,
329           src/z80/main.c: PORT structure, added elements for gp_tags field,
330         * src/SDCCsymt.h: replaced hardwired values of GPTYPE_* macros with
331         fields in the PORT structure of each port,
332         * src/SDCCast.c (decorateType): allow processing of generic pointers
333         for PIC16 port (FPTRSIZE equals GPTRSIZE), also set GPTYPE_NEAR for
334         S_FIXED symbols
335
336 2006-06-12 Maarten Brock <sourceforge.brock AT dse.nl>
337
338         * link/z80/lkgb.c,
339         * link/z80/lkgg.c,
340         * src/pic16/gen.c,
341         * src/pic16/main.c,
342         * src/pic16/pcode.c,
343         * src/pic/main.c,
344         * src/pic/pcoderegs.c,
345         * src/SDCCicode.c,
346         * src/SDCCmain.c,
347         * src/SDCCsymt.c: replaced all exit(-1) by exit(EXIT_FAILURE) to fix
348           bug 1504689 on minGW
349
350 2006-06-12 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
351
352         * device/lib/printf_tiny.c: fixed bug #1465675 (%x format specifier)
353
354 2006-06-12 Bernhard Held <bernhard AT bernhardheld.de>
355
356         * src/SDCCast.c (backPatchLabels): fixed bug #1504636
357
358 2006-06-11 Maarten Brock <sourceforge.brock AT dse.nl>
359
360         * device/lib/printf_large.c (OUTPUT_CHAR, _output_char): added and used
361           for optimization
362
363 2006-06-11 Vangelis Rokas <vrokas AT users.sourceforge.net>
364
365         * src/pic16/gen.c (genCast): fixed bug with assignment of a pointer
366         to a char variable. Fixed bug #1504211
367         * device/include/pic16/adc.h,
368         device/include/lib/pic16/libio/adc/adcopen.c: applied patch #1364387
369         and fixed bug #1364390
370
371 2006-06-10 Borut Razem <borut.razem AT siol.net>
372
373         * CVSROOT: removed the CVS left-over
374
375 2006-06-10 Maarten Brock <sourceforge.brock AT dse.nl>
376
377         * as/hc08/asmain.c (asexit),
378         * as/hc08/lkmain.c (lkexit),
379         * as/mcs51/asmain.c (asexit),
380         * as/mcs51/lkmain.c (lkexit),
381         * src/SDCCglue.c (DEFSETFUNC),
382         * src/SDCCmain.c (linkEdit, assemble),
383         * support/librarian/sdcclib.c (AddRel),
384           replaced unlink() by standard C remove()
385         * src/SDCC.y: replaced removePostIncDecOps() by createRMW()
386         * src/SDCCast.c (replaceAstWithTemporary, createRMW,
387           gatherImplicitVariables): new, added to fix bug 608752,
388           (createFunction): added gatherImplicitVariables()
389         * src/SDCCast.h: added createRMW prototype
390         * src/SDCCsymt.h (struct symbol): added infertype
391         * support/regression/tests/bug608752.c: new, added
392
393 2006-06-10 Raphael Neider <rneider AT web.de>
394
395         * src/pic16/gen.c (pic16_aopOp): use WREG as destination even for
396           multibyte dummy reads (fixes #1503234)
397
398 2006-06-10 Maarten Brock <sourceforge.brock AT dse.nl>
399
400         * device/include/mcs51/compiler.h: new, added header file to enable
401           creating common sfr definition header files for different compilers
402
403 2006-06-05 Raphael Neider <rneider AT web.de>
404
405         * src/pic16/{pcode.h,genarith.c}:
406           introduced pCodeOp combining any two pCodeOps (previously only
407           two register operands could be combined), removed pcop2 from
408           pCodepReg, replaced pCodeOpReg2 with pCodeOp2, fixes #1492366
409         * src/pic16/pcodepeep.c (pic16_pCodeOpCopy): added case for PO_TWO_OPS
410         * src/pic16/gen.c (pic16_popGet2,pic16_popGet2p,pic16_popCombine2):
411           rewritten to use new PO_TWO_OPS
412         * src/pic16/main.c (_hasNativeMulFor): cover more cases natively,
413         * src/pic16/pcode.c (pic16_newpCodeOpImmd): initialize rIdx field,
414           (pic16_newpCodeOp): catch invalid attempts on PO_TWO_OPS,
415           (pic16_newpCodeOp2): NEW, create combined pCodeOp,
416           (pic16_get_op): embraced return arg to allow #define return(x),
417             added new case for combined opcodes
418           (pic16_get_op2): reduced to use pic16_get_op() on second pCodeOp,
419           (pic16_pCode2str,pic16_getRegFrompCodeOp,
420            pic16_getRegFromInstruction2): fixed/added handling of new pCodeOp
421
422 2006-06-04 Bernhard Held <bernhard AT bernhardheld.de>
423
424         * src/SDCCval.c (checkConstantRange): added
425         * src/SDCCval.h: added checkConstantRange
426         * support/Util/SDCCerr.c,
427         * support/Util/SDCCerr.h: replaced unused W_IF_NEVER_TRUE and
428         W_IF_ALWAYS_TRUE by W_COMP_RANGE and W_LIT_OVERFLOW
429         * src/SDCC.y: moved early 'condition transformations' to SDCCast.c
430         * src/SDCCast.c (decorateType): added checkConstantRange,
431         added 'condition transformations' from SDCC.y so that now W_COMP_RANGE
432         can be emitted with the correct always true/false warning,
433         added optimization for double '!';
434         result of decorateType() must be assigned back to the tree, because
435         decorateType() can change the tree
436         * src/SDCCicode.c (geniCodeLogic),
437         (geniCodeAssign): replaced new checkConstantRange, added warnings,
438         (checkConstantRange): removed, it was only a fragment which never
439         emitted a warning
440         * src/SDCCsymt.c (computeType): fixed promotion for
441         "-1 < (unsigned bit) b"
442         * src/pic/ralloc.c (packRegsForAssign),
443         * src/pic16/ralloc.c (packRegsForAssign),
444         * src/hc08/ralloc.c (packRegsForAssign),
445         * src/z80/ralloc.c (packRegsForAssign): ported fix for bug #930931
446         from mcs51
447         * src/mcs51/ralloc.c (packRegsForAssign): removed outcommented source
448         * support/regression/tests/constantRange.c: added
449         * support/valdiag/tests/constantRange.c: added
450         * support/valdiag/valdiag.py: added -DPORT_HOST=1
451
452 2006-06-02 Borut Razem <borut.razem AT siol.net>
453
454         * support/regression/ports/pic16/support.c: increase stack size
455           to 255 bytes
456         * support/regression/Makefile.in: sort tests by name so that the
457           resutlts can be compared on different machines / platforms
458
459 2006-06-02 Maarten Brock <sourceforge.brock AT dse.nl>
460
461         * device/lib/printf_large.c (output_digit): optimized further, Tnx Frieder
462         * src/ds390/gen.c (emitLabel): new, added,
463           (genDjnz): fixed stack overflow bug,
464           (throughout): cosmetic changes to sync with mcs51/gen.c,
465           replaced emitcode("", "%05d$:", lbl->key + 100) with emitLabel(lbl)
466         * src/mcs51/gen.c (genEndFunction): small optimization,
467           (throughout): cosmetic changes to sync with ds390/gen.c
468
469 2006-06-02 Maarten Brock <sourceforge.brock AT dse.nl>
470
471         * device/lib/printf_large.c (output_digit, calculate_digit): optimized,
472           (_print_format): fixed printing pointers
473         * src/mcs51/gen.c (emitLabel, movb): new, added,
474           (genAssign): small optimization,
475           (genDjnz): fixed stack overflow bug,
476           (throughout): replaced sprintf with SNPRINTF,
477           replaced mcs51_regWithIdx with REG_WITH_INDEX,
478           replaced emitcode("mov", "b,...") with MOVB(...),
479           replaced emitcode("", "%05d$:", lbl->key + 100) with emitLabel(lbl),
480           replaced D(emitcode("; genXXX", "")) with D(emitcode(";", "genXXX"))
481         * src/mcs51/peeph.def: added rules 140 and 264
482         * src/SDCCmem.c (allocLocal): store register declared locals in DSEG/OSEG
483           so they may get optimized into registers
484
485 2006-05-30 Maarten Brock <sourceforge.brock AT dse.nl>
486
487         * src/SDCCmain.c (optionsTable, parseCmdLine): handle --use-stdout
488           immediately when encountered,
489           (printUsage): always use stderr even on windows
490
491 2006-05-30 Bernhard Held <bernhard AT bernhardheld.de>
492
493         * src/SDCCast.c (isLoopCountable): fixed bug #1478316
494         (processParms): fixed bug #1247551
495         * src/SDCCmain.c (printVersionInfo, printOptions, printUsage,
496         parseCmdLine, main): print '--version' to stdout,
497         print 'help' to stdout if --help is given,
498         print 'help' to stderr and exit with EXIT_FAILURE if no or bad
499         arguments are given; fixed --help
500
501 2006-05-27 Bernhard Held <bernhard AT bernhardheld.de>
502
503         * src/SDCCcse.c (findPointerSet): fixed bug #1493710
504         * support/regression/tests/bug-1493710.c: added
505
506 2006-05-27 Borut Razem <borut.razem AT siol.net>
507
508         * support/regression/fwk/lib/testfwk.c: define array in _printn() as
509           static instead auto
510         * support/regression/ports/pic16/support.c: increase stack size
511           from default 64 bytes to 128 bytes
512         * support/regression/tests/staticinit.c,
513           support/regression/tests/float.c: regression tests fully enabled
514           for pic16 port by putting the initialized data arrays into the code
515           section
516         * support/regression/ports/pic16/spec.mk: don't link default libraries.
517           This was changed by mistake in the previous version.
518
519 2006-05-28 Vangelis Rokas <vrokas AT users.sourceforge.net>
520
521         * src/pic16/gen.c (genFunction, genEndFunction): some
522         beautifications, fixed bug with falsely restoring FSR2 in large
523         stack model, thanks to Beau E. Cox for reporting the bug
524
525 2006-05-26 Maarten Brock <sourceforge.brock AT dse.nl>
526
527         * debugger/mcs51/break.c,
528         * debugger/mcs51/cmd.c (throughout): removed unused variables and labels,
529           use %p to print pointers, made address variables unsigned
530         * debugger/mcs51/cmd.c (infoSymbols): added missing parameter to printf
531         * debugger/mcs51/symtab.c (parseSymbol): must return something
532         * src/mcs51/gen.c (aopForSym): small optimization,
533            moved declarations mcs51_ptrRegReq and mcs51_nRegs to ralloc.h,
534           (freeAsmop): added missing break,
535           (aopPut): removed parameter bvolatile, determine it inside the function,
536           (saveRegisters, unsaveRegisters): small optimization,
537           (genIpush): removed pointless check,
538           (throughout): replaced Safe_calloc, strcpy with Safe_strdup,
539           replaced sprintf with SNPRINTF,
540           replaced strcpy with strncpyz,
541           updated aopPut calls,
542           replaced D(emitcode("; genXXX", "")) with D(emitcode(";", "genXXX"))
543         * src/mcs51/ralloc.h:  added declarations mcs51_ptrRegReq and mcs51_nRegs
544
545 2006-05-24 Borut Razem <borut.razem AT siol.net>
546
547         * support/regression/tests/bug-221100.c: fixed xdata problem caused by
548           modification of test for the pic16 port, put the array to the code
549           memory for pic16port; thanks to Maarten Brock and Frieder Ferlemann
550
551 2006-05-23 Jesus Calvino-Fraga <jesusc at ece.ubc.ca>
552
553         * src/pic/gen.c: MSC 6 does not have <stdint.h>.  Use pstdint.h instead.
554         * support/Util/pstdint.h: added
555
556 2006-05-22 Borut Razem <borut.razem AT siol.net>
557
558         * src/regression/Makefile: removed bool2.c test, added -q linker option
559         * src/regression/add2.c, src/regression/add3.c, src/regression/bool1.c,
560           src/regression/bool3.c, src/regression/nestfor.c, src/regression/ptrfunc.c,
561           src/regression/compare.c, src/regression/or1.c, src/regression/compare2.c,
562           src/regression/while.c, src/regression/compare3.c, src/regression/compare4.c,
563           src/regression/compare5.c, src/regression/sub2.c, src/regression/rotate1.c,
564           src/regression/rotate2.c, src/regression/rotate3.c, src/regression/rotate4.c,
565           src/regression/switch1.c, src/regression/rotate5.c, src/regression/for.c,
566           src/regression/add.c, src/regression/sub.c, src/regression/call1.c:
567           define SUPPORT_BIT_TYPES 0, removed unused bit variables
568
569 2006-05-22 Raphael Neider <rneider AT web.de>
570
571         * src/pic16/gen.c (pic16_storeForReturn): fragile fix for
572           bug #1492360 (problematic due to generic pointers, see code)
573
574 2006-05-22 Borut Razem <borut.razem AT siol.net>
575
576         * support/regression/ports/pic16/specs.mk: removed stack size linker
577           directive
578         * support/regression/tests/array.c,
579           support/regression/tests/bitopcse.c,
580           support/regression/tests/bug-908454.c,
581           support/regression/tests/malloc.c: modified for pic16 regression test
582         * support/regression/tests/bitfields.c:
583           pic16 - excluded bitfileds of size > 8
584         * support/regression/tests/bp.c: pic16 - reduced data size
585         * support/regression/tests/bug-221100.c: pic16 - reduced data size
586         * support/regression/tests/bug-460010.c:
587           pic16 - used the absolute address the fits in memory
588         * support/regression/tests/bug-716242.c:
589           bug [ 1443651 ] pic 16: redefining symbol that cannot be redefined.
590         * support/regression/tests/float.c:
591           pic16 - excluded - data size too big
592         * support/regression/tests/onebyte.c:
593           pic16 - bug [ 1444425 ] onebyte.c regression tes fails on pic16
594         * support/regression/tests/shifts.c:
595           pic16 - function names probably have to differ in first X characters
596           (gpasm limitation?)
597         * support/regression/tests/staticinit.c:
598           pic16 - excluded some tests due error: no target memory available for
599           section ".idata"
600
601 2006-05-22 Borut Razem <borut.razem AT siol.net>
602
603         * support/Util/dbuf.c: fixed bug #1489008 fix dbuf_c_str(),
604           second try. Thanks Stas Sergeev once more.
605
606 2006-05-21 Maarten Brock <sourceforge.brock AT dse.nl>
607
608         * src/hc08/gen.c (transferAopAop): aop forced to stack was not restored,
609           (genLeftShift, genRightShift): fixed bug 1491627
610         * src/hc08/peeph.def (rules 7, 8.x): added
611         * support/regression/tests/shifts.c (ShiftLeftByParam,
612           ShiftRightByParam, testShiftByParam): added to test variable shifting
613
614 2006-05-20 Raphael Neider <rneider AT web.de>
615
616         * src/pic/gen.c (bitpatternFromVal): fixed for 64-bit machines
617         * src/pic16/ralloc.c (newReg): use correct name in hashtable,
618           (allocReg): add only new registers to dynAllocRegs,
619           (pic16_assignRegisters): do not reset dynrIdx, fixes bugs
620             #1489055, #1445850, and probably #1483693
621
622 2006-05-19 Vangelis Rokas <vrokas AT users.sourceforge.net>
623
624         * src/pic16/glue.c (pic16_emitConfigRegs, pic16_emitIDRegs): fixed
625         bug in for-loop that didn't emit the last of CONFIG and ID registers
626
627 2006-05-18 Maarten Brock <sourceforge.brock AT dse.nl>
628
629         * src/mcs51/gen.c (genCodePointerGet): inc dptr instead of loading acc
630           with offset
631         * src/mcs51/peeph.def (186.x): updated and reenabled to fix bugs
632           1489016, 1434401 and 1490124
633         * src/ds390/peeph.def (186.x, 227.x): updated and reenabled to fix bugs
634           1489016, 1434401 and 1490124
635
636 2006-05-17 Borut Razem <borut.razem AT siol.net>
637
638         * support/Util/dbuf.c: fixed bug #1489008 fix dbuf_c_str(),
639           thanks Stas Sergeev
640
641 2006-05-15 Maarten Brock <sourceforge.brock AT dse.nl>
642
643         * device/include/mcs51/P89c51RD2.h,
644         * device/include/mcs51/P89LPC901.h,
645         * device/include/mcs51/P89LPC922.h,
646         * device/include/mcs51/P89LPC932.h: added, thanks Omar Espinosa
647
648 2006-05-14 Vangelis Rokas <vrokas AT users.sourceforge.net>
649
650         * device/lib/pic16/libsdcc/stack/{stack.S, Makefile.in}: add workaround
651         to fix missing stack pragma in compiled binary object file,
652
653 2006-05-14 Bernhard Held <bernhard AT bernhardheld.de>
654
655         * support/packihx/configure.in,
656         * support/packihx/configure: removed warning, autoconf >= 2.5x can
657         determine sizeof basic types even while cross compiling
658
659 2006-05-13 Bernhard Held <bernhard AT bernhardheld.de>
660
661         * src/avr/gen.c (aopop),
662         * src/ds390/gen.c (aopOp),
663         * src/hc08/gen.c (aopOp),
664         * src/mcs51/gen.c (aopop),
665         * src/pic16/gen.c (pic16_aopOp),
666         * src/pic/gen.c (aopOp),
667         * src/z80/gen.c (aopop): fix for bug #1479882; use new, exclusive asmop
668         if size of operand is smaller than spill location
669
670 2006-05-12 Borut Razem <borut.razem AT siol.net>
671
672         * *.dsw, *.dsp: changed property svn:eol-style to CRLF since they
673           have to have CR/LF line endings even if they are checked out on *nix
674           or on WIN32 in cygwin binmode
675
676 2006-05-12 Maarten Brock <sourceforge.brock AT dse.nl>
677
678         * doc/sdccman.lyx: documented numeric ranges, WEBDOC #1442369
679         * device/include/ds80c390.h: added sfr16 definitions
680         * src/ds390/gen.c,
681         * src/ds390/gen.h,
682         * src/ds390/main.c,
683         * src/ds390/ralloc.c,
684         * src/ds390/ralloc.h: changes all over the place to sync with mcs51
685           fixing several bugs and adding sfr16/sfr32, reentrant bit params,
686           bit returning functions
687         * support/regression/tests/sfr16.c: enabled test on ds390
688
689 2006-05-11 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
690
691         * src/hc08/gen.c (asmopToBool, genIfx): fix for bug #1429722
692         * src/hc08/gen.c (storeRegToAop): fix for bug #1439894
693
694 2006-05-11 Maarten Brock <sourceforge.brock AT dse.nl>
695
696         * sim/ucsim/sim.src/memcl.h: added get_decoder() to cl_address_space
697         * sim/ucsim/sim.src/mem.cc: implemented cl_address_space::get_decoder,
698           (cl_address_space constructor): removed expensive initialization,
699           (cl_address_space::get_cell): extended for late initialization,
700           (cl_address_space::*): use late initialization,
701           (cl_address_decoder::activate): removed expensive initialization,
702           This reduced regression test running time by 25%
703
704 2006-05-11 Bernhard Held <bernhard AT bernhardheld.de>
705
706         * packihx/,
707         * configure.in,
708         * configure,
709         * sdcc.dsw,
710         * Makefile.bcc,
711         * Makefile.in,
712         * support/packihx/Makefile.in,
713         * support/packihx/clean.mk,
714         * support/packihx/Makefile.bcc,
715         * support/packihx/PackIhx.dsp: moved packihx to support/packihx
716
717 2006-05-11 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
718
719         * src/SDCCval.c (valNot): fix for regression test failure
720           of not.c on big endian hosts
721
722 2006-05-10 Maarten Brock <sourceforge.brock AT dse.nl>
723
724         * device/inlcude/mcs51/msc1210.h: new, added, thanks Philippe Latu
725
726 2006-05-10 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
727
728         * device/lib/mcs51/Makefile.in: changed string comparison operator
729           to = for POSIX compliance; == is bash extension
730
731 2006-05-10 Maarten Brock <sourceforge.brock AT dse.nl>
732
733         * device/lib/hc08/_mulint.c: applied patch 1485428, thanks
734           kosmonaut_pirx
735
736 2006-05-09 Vangelis Rokas <vrokas AT users.sourceforge.net>
737
738         * src/pic16/gen.c (pic16_freeAsmop): release any temp registers
739         allocated by aopForSym thus fixing bug #1478657 about failed testfwk.c
740         * src/pic16/main.c (_pic16_keywords): added 'sfr16' keyword,
741         * src/pic16/ralloc.c (pic16_allocWithIdx): also a fix for bug exposed by
742         bug report #1478657,
743
744 2006-05-05 Borut Razem <borut.razem AT siol.net>
745
746         * doc/Makefile.in: remove of WARNINGS and labels.pl immediately after
747           making the html
748
749 2006-05-02 Borut Razem <borut.razem AT siol.net>
750
751         * doc/Makefile.in: removed *.ind dependency since there is no rule to
752           create *.ind, which made make to fail if invoked with -j 2
753
754 2006-05-01 Maarten Brock <sourceforge.brock AT dse.nl>
755
756         * src/SDCCglue.c (emitRegularMap): partial fix for bug 1477149, thanks
757           Hubert Sack for patch 1479782
758
759 2006-05-01 Vangelis Rokas <vrokas AT users.sourceforge.net>
760
761         * src/pic16/glue.c (pic16_printIvalStruct): fixed bug #1445929
762
763 2006-05-01 Raphael Neider <rneider AT web.de>
764
765         * src/pic/device.c (sanitise_processor_name): only remove p(ic) prefix,
766           (create_pic): store only prefix-free device name,
767           (init_pic): check for device names with "16" prefix,
768           (list_valid_pics),
769         * src/pic/device.h (struct PIC_device),
770         * src/pic/main.c (_pic14_genAssemblerPreamble): adapted to single
771             stored device name,
772         * device/include/pic/pic12f{635,675,629,683}.h,
773         * device/lib/pic/libdev/pic12f{635,675,629,683}.c: NEW device libraries
774         * device/lib/pic/libdev/Makefile.in: allow pic12* devices,
775         * device/include/pic/pic16f505.h,
776         * device/lib/pic/libdev/pic16f505.c: removed
777         * device/include/pic/pic14devices.txt: added support for pic12f
778             devices, removed unsupported non 16-bit devices
779             [above changes provided by patch from Zik Saleeba]
780         * src/pic/*, src/pic16/*, device/include/pic16/*,
781           device/lib/pic/**, device/lib/pic16/**: obfuscated email address
782
783 2006-05-01 Borut Razem <borut.razem AT siol.net>
784
785         * configure.in, configure, doc/Makefile.in:
786           sync with nightly build makefile - latex, dvipdf and dvips
787           not needed any more
788
789 2006-04-30 Bernhard Held <bernhard AT bernhardheld.de>
790
791         * support/scripts/sdcc.nsi: removed all Readmes and Makefiles
792         in the library source
793
794 2006-04-30 Maarten Brock <sourceforge.brock AT dse.nl>
795
796         * support/regression/ports/hc08/spec.mk: fixed bug 1478892
797
798 2006-04-28 Raphael Neider <rneider AT web.de>
799
800         * src/pic16/pcode.c (pic16_newpCodeOpLit12),
801         * src/pic16/gen.c (pic16_popGetLit12): NEW, create 12 bit literal,
802           (pic16_loadFSR0): handle 12 bit literals correctly, fixes #1440527
803         * src/pic16/pcode.h: added prototype for pic16_newpCodeOpLit12()
804
805 2006-04-28 Bernhard Held <bernhard AT bernhardheld.de>
806
807         * device/lib/pic/libdev/Makefile.in,
808         * device/lib/hc08/Makefile.in,
809         * device/lib/gbz80/Makefile.in,
810         * device/lib/z80/Makefile.in,
811         * device/lib/ds390/Makefile.in,
812         * device/lib/ds400/Makefile.in: added srcdir to include search path,
813         thanks to Borut for the bug report
814         * configure.in,
815         * configure: always create doc/Makefile independent from --enable-doc
816         * Makefile.in: always install from directory doc independent from
817         --enable-doc
818         * device/lib/pic/Makefile.in: added libdev again, it was erroneously
819         removed
820         * device/lib/pic/libdev/Makefile.in: fixed VPATH build
821         * doc/Makefile.in: install *.txt if present
822         * device/include/Makefile.in (install): added installation of pic/*.inc
823         and pic/*.txt files again, they were erroneously removed
824
825 2006-04-28 Raphael Neider <rneider AT web.de>
826
827         * src/pic/{gen.c,main.h,pcode.c},
828         * src/pic16/{gen.c,pcode.c}: quietened compiler warnings
829             concerning signedness with casts
830
831 2006-04-28 Raphael Neider <rneider AT web.de>
832
833         * src/pic/gen.c (genFunction): set global pic14_hasInterrupt on
834             definition of an interrupt handler,
835         * src/pic/glue.c (pic14_emitInterruptHandler): moved output of
836             interrupt handler stuff from picglue() to separate routine,
837           (picglue): enabled definition of intr handlers in files w/o main()
838
839 2006-04-26 Maarten Brock <sourceforge.brock AT dse.nl>
840
841         * support/librarian/sdcclib.c: moved include <limits.h> up to enable
842           compilation with MSVC 2005 Express Edition (VC8)
843
844 2006-04-26 Bernhard Held <bernhard AT bernhardheld.de>
845
846         * device/lib/Makefile: fixed build of gbz80 lib
847
848 2006-04-26 Maarten Brock <sourceforge.brock AT dse.nl>
849
850         * support/regression/tests/bug-460010.c,
851         * support/regression/tests/bug-524691.c,
852         * support/regression/tests/bug-716242.c: removed conditional defines
853           that are already in testfwk.h
854
855 2006-04-25 Maarten Brock <sourceforge.brock AT dse.nl>
856
857         * src/ds390/gen.c (AccAXRrl1, AccAXLrl1): changed to real rotate by 1,
858           (AccAXRsh1): added, shift right by 1,
859           (AccAXLsh, AccAXRsh, AccAXRshS): updated for AccAXRrl1, AccAXRsh1 and
860            AccAXLrl1
861         * support/regression/tests/rotate.c: use <stdint.h> and enabled ds390
862
863 2006-04-25 Bernhard Held <bernhard AT bernhardheld.de>
864
865         * src/SDCCast.c (decorateType): partial fix for RFE 1475769,
866         remove cast to same type
867         * src/SDCCast.c (decorateType): fix for RFE 1475742,
868         optimize 'ifx (op == 0)' resp. 'ifx (op != 0)'
869         * as/z80/Makefile,
870         * link/z80/Makefile: removed, they have moved to
871         Makefile.in files
872         * configure,
873         * configure.in: replaced duplicate message about ucsim by missing sdcpp
874         * install-sh: fix bug #1204398 by setting umask 0022
875         * device/lib/Makefile: separate build of z80 and gbz80 lib
876
877 2006-04-24 Bernhard Held <bernhard AT bernhardheld.de>
878
879         Enabled VPATH feature: changed nearly all Makefiles (149 files).
880         See sdccman.lyx '2.4.10 VPATH feature' about how to use it.
881
882         One basic decision: e.g. src/clean.mk includes further files. In order
883         to make this work there are two solutions:
884         - rename another dozen clean.mk to clean_in.mk, add srcdir to them and
885           run configure on them. This way they can use
886           'include $(srcdir)/port-clean.mk'
887         - always include clean.mk by the Makefile at the same level. To avoid
888           that `make clean` tries to include and build Makefile.dep the
889           MAKECMDGOALS are examined (see e.g. src/Makefile.in). This has been
890           implemented, because now even `make uninstall` doesn't create
891           Makefile.in. clean.mk could be eliminated by pasting it in
892           Makefile.in.
893
894         * debugger/mcs51/Makefile.in: build own objects from library sources
895         (SLIB, SDCC) in current directory
896
897         * configure, configure.in: renamed --disable-device-lib-build in
898         --disable-device-lib; added --enable-doc, the required tools are
899         searched by configure; added result message; the toolchain for the
900         belonging ports are now only built, if the port is enabled.
901
902         * support/regression/*: all output is written in directory gen, because
903         the fwk and ports directories don't livet in the build tree using vpath
904
905         * doc/sdccman.lyx: renamed --disable-device-lib-build to
906         --disable-device-lib, added --enable-doc, added section VPATH
907
908         * sim/ucsim/configure.in,
909         * sim/ucsim/configure.in: hc08 couldn't be disabled, now hc08 and
910         z80 are enabled by default
911
912 2006-04-24 Raphael Neider <rneider AT web.de>
913
914         * src/pic/device.c (pic14_assignConfigWordValue): remember assignments
915             to config word, "pic14_"-prefixed some extern functions
916           (pic14_emitConfigWord): emit __config directive(s) if assignment to
917             config word has been found
918         * src/pic/device.h: added prototypes
919         * src/pic/pcode.c: added "pic14_"-prefix where needed
920         * src/pic/ralloc.c (IS_CONFIG_ADDRESS,pic14_assignRegisters): cosmetic
921             fixup
922         * src/pic/glue.c (pic14_constructAbsMap): handle assignments to config
923             words,
924           (pic14emitRegularMap): ignore config words,
925           (pic14createInterruptVect): moved generating __config directives away
926           (picglue): have __config directives emitted
927
928 2006-04-24 Borut Razem <borut.razem AT siol.net>
929
930         * doc/Makefile: sync with nightly build makefile
931
932 2006-04-24 Raphael Neider <rneider AT web.de>
933
934         * src/pic/pcoderegs.c (OptimizeRegUsage): do not optimize
935             registers that have not been assigned proper liveranges,
936             fixes #1469504 and #1474602,
937           (pCodeRegOptimizeRegUsage): fixed typo in comment
938
939 2006-04-24 Borut Razem <borut.razem AT siol.net>
940
941         * device/examples/main8051.c: deleted - it was removed from CVS
942           24.mar.2000 and after that modified 18.feb.2001, so it reappered
943           after the transition to Subversion
944         * src/SDCCalloc.h: deleted - it was removed  from CVS
945           3.feb.2001 and after that modified 18.feb.2001, so it reappered
946           after the transition to Subversion
947         * sim/ucsim/cpu.gif, sim/ucsim/interrupt.gif, sim/ucsim/new.gif,
948           sim/ucsim/serial1.gif, sim/ucsim/serial2.gif,
949           sim/ucsim/term_cpuopt.gif, sim/ucsim/timers.gif, sim/ucsim/wins.gif,
950           sim/ucsim/post.jpg, sim/ucsim/UCsim.jpg: corrected
951
952 2006-04-22 Maarten Brock <sourceforge.brock AT dse.nl>
953
954         * as/asx8051.dsp: added mcs51/strcmpi.h
955         * as/hc08/as_hc08.dsp: added asm.h, m6808.h, strcmpi.h
956         * as/hc08/aslink.h: updated lnksect prototype
957         * as/hc08/asm.h,
958         * as/mcs51/asm.h: added a_addr to struct area and s_org to struct sym
959         * as/hc08/asmain.c,
960         * as/mcs51/asmain.c (asmbl): init dot.s_org for S_ORG,
961           (newdot): handle A_ABS
962         * as/hc08/asout.c,
963         * as/mcs51/asout.c (outarea): output address
964         * as/hc08/lkaomf51.c,
965         * as/mcs51/lkaomf51.c: disabled unused array UsageType
966         * as/hc08/m08pst.c,
967         * as/mcs51/i51pst.c,
968         * as/z80/z80pst.c: "ABS" is not A_OVR
969         * as/hc08/lkarea.c (newarea): read a_addr,
970           (lnkarea): added codemap array, sort absolute areas to the front,
971            combine all GSINITx/GSFINAL,
972           (find_empty_space, allocate_space): new functions,
973           (lnksect): return next address, handle absolute sections
974         * as/mcs51/lkarea.c (newarea): read a_addr,
975           lnksect2 prototype changed,
976           (lnkarea2): define codemap unsigned, combine all GSINITx/GSFINAL,
977           (find_empty_space, allocate_space): new, factored out of lnksect2,
978           (lnksect2): return next address, handle absolute sections
979         * as/hc08/lkhead.c,
980         * as/mcs51/lkhead.c (newhead): head is absolute but not overlay
981         * as/hc08/lklibr.c (addfile, fndsym),
982         * as/mcs51/lklibr.c (addfile, buildlibraryindex, fndsym): prevent
983           index out of range and detect both '\' and '/'
984         * device/include/mcs51/c8051f200.h: added _XPAGE, removed bad comment
985         * device/include/stdbool.h: removed SDCC_ds390 from check to pass
986           regression tests (ds390 cannot return bool yet)
987         * doc/sdccman.lyx: changed version number, document changed --no-peep,
988           document critical interrupts on z80, document changed SDCC define
989         * src/asm.c (_asxxxx_mapping): fixed .org directive,
990           (_a390_mapping): added .org directive
991         * src/hc08/gen.c (transferAopAop): made bytemask log to fix warning,
992           (genMultOneByte): fixed warnings
993         * src/hc08/hc08.dsp: lowered warning level to 2 to suppress pedantic
994           ones
995         * src/pic16/device.c: removed newReg prototype, removed BYTE_IN_LONG
996         * src/pic16/gen.c (pic16_popGetLabel): made parameter key signed,
997           (pic16_genLeftShiftLiteral, genRightShiftLiteral): fixed warnings
998         * src/pic16/gen.h: changed prototype for pic16_popGetLabel
999         * src/pic16/main.c: removed newReg prototype
1000         * src/pic16/pcode.c,
1001         * src/pic16/pcode.h (pic16_emitDB): changed parameter c to int to fix
1002           warnings
1003         * src/pic16/pic16.dsp: lowered warning level to 2 to suppress pedantic
1004           ones
1005         * src/pic16/ralloc.c
1006         * src/pic16/ralloc.h (newReg): changed type to int and size to unsigned
1007           to fix warnings
1008         * src/pic/pcode.c (allocInternalRegister): changed parameter optype
1009           from short to PIC_OPTYPE
1010         * src/pic/pic.dsp: lowered warning level to 2 to suppress pedantic ones
1011         * src/pic/ralloc.c (newReg, allocInternalRegister): changed parameter
1012           optype from short to PIC_OPTYPE
1013         * src/port.h: made int_size unsigned to fix warnings
1014         * src/SDCC.y: fixed warning on MSVC
1015         * src/SDCCicode.c (getArraySizePtr): return unsigned int
1016         * src/SDCCopt.c (convertToFcall): fixed warnings
1017         * src/SDCCsymt.h: removed double prototype for genSymName
1018         * src/xa51/ralloc.c (allocReg): made size unsigned int, type int and
1019           offset int to fix warnings
1020
1021 2006-04-22 Borut Razem <borut.razem AT siol.net>
1022
1023         * doc/sdccman.lyx, */Makefile, */Makefile.in:
1024           references to CVS replaced with Subversion
1025
1026 2006-04-21 Borut Razem <borut.razem AT siol.net>
1027
1028         * doc/sdccman.lyx, */Makefile, */Makefile.in:
1029           references to CVS replaced with Subversion
1030
1031 2006-04-19 Borut Razem <borut.razem AT siol.net>
1032
1033         * src/version.awk: adapted for svn
1034         * /asxxxx/asxhtml/*.gif: set property svn:mime-type to image/gif
1035           sim/ucsim/doc/*.gif: set property svn:mime-type to image/gif
1036           sim/ucsim/doc/*.jpg: set property svn:mime-type to image/jpeg
1037           /binutils-avr/etc/*.vi, *.jin: removed all properties
1038           support/scripts/sdcc.ico: set property svn:mime-type to image/x-icon
1039
1040 2006-04-19 Borut Razem <borut.razem AT siol.net>
1041
1042         * CVS to Subversion migration completed
1043
1044 2006-04-18 Borut Razem <borut.razem AT siol.net>
1045
1046         * support/scripts/sdcc.nsi: removed unexisting ${DEV_ROOT}\lib\pic\*.o,
1047           ${DEV_ROOT}\lib\src\pic\libdev\*.S, ${DEV_ROOT}\lib\src\pic\libdev\*.inc
1048
1049 2006-04-17 Borut Razem <borut.razem AT siol.net>
1050
1051         * device/include/Makefile.in: added pic/*.inc to the installation
1052
1053 2006-04-15 Bernhard Held <bernhard AT bernhardheld.de>
1054
1055         * support/regression/collate-results.py: fixed output in case of
1056         a valdiag error
1057         * support/regression/generate-cases.py: fixed splitting of pathnames
1058         with dots
1059         * as/hc08/lklibr.c (addfile),
1060         * as/mcs51/lklibr.c (addfile): fixed off-by-one bug
1061
1062 2006-04-11 Raphael Neider <rneider AT web.de>
1063
1064         * src/pic16/gen.c (getFreePtr, pic16_popRegFromString),
1065         * src/pic16/ralloc.c (pic16_allocregWithName): removed debug output
1066         * src/pic16/pcode.c (assignValnums): fixed #1460578
1067
1068 2006-04-11 Raphael Neider <rneider AT web.de>
1069
1070         * device/lib/pic/libdev/*.c,
1071         * device/include/pic/*.h: replaced sfr and data with __sfr and __data,
1072           fixes #1468739, enables compilation in --std-c99 mode
1073         * support/scripts/inc2h.pl: emit __sfr/__data instead of sfr/data
1074
1075 2006-04-11 Raphael Neider <rneider AT web.de>
1076
1077         * src/pic/device.c (find_device): removed debug output
1078           (list_valid_pics): enabled verbose listing of supported devices
1079         * device/include/stdbool.h: define bool as char for pic14/16 as well
1080
1081 2006-04-07 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
1082
1083         * src/SDCC.y: allow using brackets here: "__interrupt (1) __using (1)"
1084
1085 2006-04-07 Maarten Brock <sourceforge.brock AT dse.nl>
1086
1087         * .version: bumped version to 2.5.6
1088         * src/pic/ralloc.c (newReg): MSVC doesn't support __builtin_return_address
1089
1090 2006-04-06 Raphael Neider <rneider AT web.de>
1091
1092         * .version: bumped version to 2.5.6 (pic14 ABI changed)
1093         * src/SDCCmain.c: add -DSDCC_PROCESSOR=<id> for pic14 port
1094         * src/pic/glue.c (emitSymbolToFile,pic14_constructAbsMap,
1095           pic14emitRegularMap,pic14emitMaps): moved output for absolute symbols to
1096             pic14_constructAbsMap
1097           (pic14printPublics): declare absolute global symbols as global
1098           (pic14createInterruptVect),
1099         * src/pic/ralloc.c (IS_CONFIG_ADDRESS): support second config word,
1100           (newReg): assume new registers unused, use correct name in
1101             hashtable (reg->name instead of name), more debugLog output
1102         * src/pic/device.h (PIC_device): added fields for verbose output
1103         * src/pic/device.c: moved device definition to pic14devices.txt,
1104             added routines for runtime parsing of pic14devices.txt,
1105             added support for second config word
1106         * src/pic/main.c (_process_pragma): removed #pragma maxram,
1107           (_pic14_keywords): no longer accept "bit" and "sbit" keywords
1108           (_pic14_initPaths): add search paths with "pic" suffix (not "pic14")
1109           (_pic14_parseOptions): moved pCodeInitRegisters here
1110           (_pic14_do_link): add "pic$(ARCH).lib" to linker arguments
1111         * src/pic/pcode.c (AnalyzeBanking): bail out on unset processor,
1112           (pCodeInitRegisters): rewrapped comments, perpared new approach to
1113             handling the pseudo stack
1114         * device/lib/Makefile.in: ignore failures in objects-pic16,
1115         * device/lib/pic/{configure,configure.in,Makefile}: added libdev/
1116         * device/lib/pic/NEWS: document new dependency on picXXX.lib
1117         * device/lib/pic/Makefile.subdir,
1118         * device/lib/pic16/Makefile.subdir: improved clean rules
1119         * device/lib/pic/libdev/: NEW, pic14 device libraries
1120         * device/lib/pic/libsdcc/_gptr{get,put}{1,2,3,4}.S: use _X not X
1121         * device/lib/pic/libsdcc/macros.inc: use _X not X, declare default SFRs
1122         * device/include/Makefile.in: create subdir and install pic14 headers
1123         * device/include/pic/p16f_common.inc: removed unused declarations
1124         * device/include/pic/pic16*.h: added header files for 100+ 14 bit
1125             PICs from inc2h.pl v1.6,
1126             replaced BIT_AT macros with struct declarations
1127         * device/include/pic/pic14devices.txt: definition of supported devices,
1128             all above improvements contributed by Zik Saleeba, thanks
1129         * support/scripts/inc2h.pl: removed BIT_AT, replaced with structs
1130         * support/scripts/sdcc.nsi: also install pic14 device libraries and
1131             headers
1132
1133 2006-04-06 Maarten Brock <sourceforge.brock AT dse.nl>
1134
1135         * device/include/mcs51/c8051f410.h: added interrupt numbers,
1136         * device/include/mcs51/c8051f200.h: old SiLabs mcu completes the list,
1137           thanks to Charles Olds
1138
1139 2006-04-06 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
1140
1141         * debugger/mcs51/cmd.c (infoRegisters): show return address on stack
1142
1143 2006-04-06 Maarten Brock <sourceforge.brock AT dse.nl>
1144
1145         * src/SDCCpeeph.c (labelIsReturnOnly): fixed bug 1464657
1146         * src/mcs51/gen.c (genJumpTab): fixed bug in medium model
1147         * support/regression/bug1464657.c: added, new test
1148
1149 2006-04-05 Maarten Brock <sourceforge.brock AT dse.nl>
1150
1151         * src/SDCCmain.c (preProcess): implemented RFE 1449908, define SDCC as the
1152           version number
1153
1154 2006-04-05 Maarten Brock <sourceforge.brock AT dse.nl>
1155
1156         * src/SDCCpeeph.c (initPeepHole): implemented RFE 1460196, when both
1157           --no-peep and --peep-file <file> are used don't use default rules but
1158           do use the <file>
1159
1160 2006-04-05 Maarten Brock <sourceforge.brock AT dse.nl>
1161
1162         * src/mcs51/gen.c (genCall): fixed bug 1457608
1163
1164 2006-03-30 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
1165
1166         * doc/sdccman.lyx: reverted to version 1.129 of december as my latest
1167         changes seem to cause (trigger?) problems with the build system.
1168
1169 2006-03-29 Maarten Brock <sourceforge.brock AT dse.nl>
1170
1171         * src/SDCCpeeph.c (operandsLiteral): new, added,
1172           (callFuncByName): inserted operandsLiteral
1173         * src/mcs51/peeph.def: reenabled 132.e, added extra check to 132.x
1174
1175 2006-03-28 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
1176
1177         * doc/sdccman.lyx: added paragraph "Use of SDCC in Education"
1178         * src/mcs51/peeph.def: disabled rule 132.e fixing bug #1453093
1179
1180 2006-03-24 Maarten Brock <sourceforge.brock AT dse.nl>
1181
1182         * src/z80/gen.c (genFunction, genEndFunction): fixed bug 1160666,
1183           implemented patch 1120823 Thanks to Willy De la Court (normal
1184           interrupts need an interrupt number now if they are made critical),
1185           and enabled nesting of critical functions though not for gbz80
1186           (genCritical, genEndCritical): added functions
1187           (genZ80Code): added cases for CRITICAL and ENDCRITICAL
1188         * src/z80/mappings.i: added "ei" to all mappings
1189
1190 2006-03-20 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
1191
1192         * sim/ucsim/cmd.src/newcmdcl.h: applied patch fixing GCC 4.1 build
1193         submitted by the Debian SDCC maintainer Aurelien Jarno:
1194         "Credits goes to Martin Michlmayr, who rebuilt the whole Debian
1195         archive with gcc 4.1 on mips and wrote the patch"
1196
1197 2006-03-16 Raphael Neider <rneider AT web.de>
1198
1199         * src/pic16/genarith.c (genAddLit): simplified and fixed case where
1200           the left operand is shorter than the result (c* = lit-c* + int),
1201           fixes bug #1450796
1202         * src/pic16/gen.c (genRightShift): check IS_SYMOP before accessing
1203           OP_SYMBOL
1204
1205 2006-03-14 Vangelis Rokas <vrokas AT users.sourceforge.net>
1206
1207         * src/.version: increased version number to 2.5.5
1208         * src/SDCCmain.c (linkEdit): do not test for PIC16 target since, PIC16
1209         linking is done manually in pic16 port's _linkEdit,
1210         * src/SDCCsymt.c (compStructSize): for target PIC16 and shell variable
1211         PIC16_PACKED_BITFIELDS, compact bitfield structures as much as possible,
1212         * src/pic16/gen.c (aopForSym): when direct register name is WREG then
1213         allocate asmop as AOP_ACC,
1214         (aopForRemat): added parameter 'bool result' in function declaration,
1215         (pic16_aopGet): return AOP_ACC when accessing WREG,
1216         (pic16_popGetTempReg): minor modification,
1217         (pic16_popRegFromIdx): first try with 'pic16_regWithIdx' then with
1218         'pic16_allocWithIdx',
1219         (genPcall): removed ftype, usage of OP_SYM_TYPE asserted error when
1220         calling function in absolute addresses,
1221         (genAssign): take into account AOP_ACC asmop,
1222         * src/pic16/pcode.c (pic16_newpCodeOpReg): minor modifications,
1223         * src/pic16/pcoderegs.c: some debug functions and lines added,
1224         * src/pic16/ralloc.c (decodeRegType): added but commented out,
1225         * (pic16_typeRegWithIdx): search 'pic16_dynInternalRegs' for given
1226         register too,
1227         * (pic16_findFreeReg, pic16_findFreeRegNext): allocate new register via
1228         call to allocReg, not by manually allocating a new one,
1229         (pic16_assignRegisters): now before going through the register
1230         allocating functions mark all registers as free. This eliminates some
1231         side effects resulting from peephole parser done earlier in the backbone
1232
1233 2006-03-13 Maarten Brock <sourceforge.brock AT dse.nl>
1234
1235         * src/SDCCicode.c (geniCodeLogic),
1236         * src/SDCCast.c (decorateType): applied patch by Bernhard for rfe 1422617
1237
1238 2006-03-10 Maarten Brock <sourceforge.brock AT dse.nl>
1239
1240         * src/mcs51/gen.c (sameReg): new, checks if two aop regs are the same,
1241           (genSend): bugfix, do not allocate and free twice,
1242           (shiftRLong): handle partially overlapping aops
1243         * support/regression/tests/bitopcse.c: fixed warning redefined idata
1244
1245 2006-03-08 Borut Razem <borut.razem AT siol.net>
1246
1247         * support/regression/fwk/include/testfwk.h: added defines for xdata, idata
1248           for pic16
1249
1250 2006-03-08 Maarten Brock <sourceforge.brock AT dse.nl>
1251
1252         * support/regression/tests/bug1409955.c: new, added
1253         * src/mcs51/gen.h: changed asmop.freed:1 to asmop.allocated for tracking
1254         * src/mcs51/gen.c (newAsmop): set asmop.allocated to 1,
1255           (aopForSym, aopOp): increment asmop.allocated if reused,
1256           (freeAsmop): decrement asmop.allocated and check for zero instead of
1257           using asmop.freed,
1258           (freeForBranchAsmop): use asmop.allocated instead of asmop.freed,
1259           (genNot, genCpl, genUminus, genMinus, genMult, genDiv, genMod, genCmpGt,
1260            genCmpLt, genAndOp, genOrOp, genAnd, genOr, genXor, genRRC, genRLC,
1261            genGetHbit, genGetAbit, genGetByte, genGetWord, genSwap,
1262            genLeftShiftLiteral, genLeftShift, genRightShiftLiteral,
1263            genSignedRightShift, genRightShift, genDataPointerGet,
1264            genPagedPointerGet, genFarPointerGet, genCodePointerGet,
1265            genGenPointerGet, genDataPointerSet, genAssign, genCast): free asmop's
1266             in reverse order from allocation,
1267           (genPlus, genCmpEq): free asmop's in reverse order from allocation and
1268             added swappedLR to keep track
1269         * support/regression/fwk/include/testfwk.h: added defines for xdata, idata,
1270           pdata & code for GCC, z80, gbz80 & hc08
1271         * support/regression/tests/zeropad.c: moved defines to testfwk.h
1272
1273 2006-03-08 Raphael Neider <rneider AT web.de>
1274
1275         * src/pic16/main.c (_hasNativeMulFor): fixed bug #1444425
1276
1277 2006-03-07 Maarten Brock <sourceforge.brock AT dse.nl>
1278
1279         * device/include/mcs51/c8051f410.h: new SiLabs mcu
1280         * src/ds390/peeph.def: disabled 186.d and 227.a as fix for #1434401
1281         * support/regression/tests/array.c: added parenthesis, made arrays unsigned
1282
1283 2006-03-06 Borut Razem <borut.razem AT siol.net>
1284
1285         * support/regression/ports/pic16/spec.mk: link with libm18f.lib,
1286           made the linker quiet
1287
1288 2006-03-06 Vangelis Rokas <vrokas AT users.sourceforge.net>
1289
1290         * src/pic16/gen.c (genPcall): fixed bug #1443644
1291         * src/pic16/device.h (struct pic16_options_t): added 'int CATregs' flag
1292         which dumps before the function entry point a data byte which represents
1293         the number of the local variables used by the specified function, added
1294         'xinst' for initial support for Extended Instruction Support,
1295         * src/pic16/gen.c (aopForSym, pic16_aopGet): beautifications,
1296         (pic16_testStackOverflow): do not prefix GSTACK_TEST_NAME with
1297         port->fun_prefix anymore (may change later),
1298         (genFunction, genEndFunction): do not store/restore local registers for
1299         _main (this should take care the --main-return command line option in
1300         the future),
1301         (genOr): removed some legacy pic-port instructions,
1302         * src/pic16/genarith.c (genAddLit): re-enabled old code because
1303         performing operations with SFR's causes data to be written more than
1304         once to each SFR. Perhaps SFRs should be handled in special cases...
1305         * src/pic16/glue.c: macros BIG_ENDIAN and BYTE_IN_LONG are moved to
1306         pcode.h
1307         * src/pic16/main.c (_process_pragma): stack bound checking did not take
1308         into account for stack starting position,
1309         (struct OPTIONS pic16_optionsTable): added command line argument
1310         --extended or -y for Extended Instruction Support,
1311         * src/pic16/ralloc.c (pic16_decodeOp): added case for FUNCTION,
1312         (deassignLRs): *** perhaps the most important change, old 'for' code
1313         (commented out for reference), didn't account for some registers which
1314         were left marked 'not free' after a pointer operation. The change
1315         reduces register usage a lot in some cases
1316
1317 2006-03-04 Borut Razem <borut.razem AT siol.net>
1318
1319         * support/regression/ports/hc08/spec.mk: remove *.asm in traget
1320           _clean
1321         * support/regression/tests/bug-524697.c: decreased array size for
1322           mcs51 to fit into the internal RAM
1323         * support/regression/Makefile.in: a little bit more verbose
1324
1325 2006-03-03 Borut Razem <borut.razem AT siol.net>
1326
1327         * support/regression/fwk/lib/testfwk.c,
1328           support/regression/fwk/include/testfwk.h: introduced function
1329           _prints(), nonrecursive _printn(), call _initEmu() from main()
1330         * support/regression/ports/gbz80/support.asm,
1331           support/regression/ports/ucz80/support.asm,
1332           support/regression/ports/z80/support.asm,
1333           support/regression/ports/ds390/support.c,
1334           support/regression/ports/hc08/support.c,
1335           support/regression/ports/host/support.c,
1336           support/regression/ports/mcs51/support.c,
1337           support/regression/ports/xa51/support.c: added empty _initEmu()
1338           function
1339         * support/regression/ports/pic16/gpsim.cmd,
1340           support/regression/ports/pic16/spec.mk,
1341           support/regression/ports/pic16/support.c,
1342           support/regression/Makefile.in: added pic16 regression test
1343
1344 2006-03-01 Raphael Neider <rneider AT web.de>
1345
1346         * src/pic16/gen.c (genPcall,pic16_derefPtr,genGenPointerGet,
1347           genConstPointerGet): use safe way of generating MOVFF to cover
1348             literals as well as registers, fixes bug #1440527
1349         * src/pic16/glue.c (pic16_printIvalBitFields): prevent NULL pointer
1350             dereference
1351           (pic16_printIvalUnion,pic16_isUnion): NEW, handle initialized unions
1352             more correctly, fixes bug #1232186
1353           (pic16_printIval): use pic16_printIvalUnion() for initialized unions
1354         * src/pic16/main.c (_pic16_linkEdit): reorder linker arguments to make
1355             gplink guess the correct processor in more cases, applied patch
1356             from Till Riedel attached to and fixing bug #1436552
1357
1358 2006-02-20 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
1359
1360         * support/regression/tests/array.c: added, contains check for #1434401
1361         * src/mcs51/peeph.def: disabled 186.d as temporary fix for #1434401
1362
1363 2006-02-16 Maarten Brock <sourceforge.brock AT dse.nl>
1364
1365         * device/include/mcs51/at89s8253.h: new, thanks to Krzysztof Polomka
1366         * device/include/mcs51/at89S8252.h: fixed, thanks to Krzysztof Polomka
1367         * device/include/mcs51/c8051f326.h,
1368         * device/include/mcs51/c8051f340.h: new SiLabs mcu's
1369         * device/include/mcs51/c8051f000.h,
1370         * device/include/mcs51/c8051f018.h,
1371         * device/include/mcs51/c8051f020.h: used () with __at, renamed IDLE,STOP to
1372           PCON_IDLE,PCON_STOP and added sfr16 definitions
1373
1374 2006-02-14 Maarten Brock <sourceforge.brock AT dse.nl>
1375
1376         * src/mcs51/gen.c (genPlus, genMinus, genMult, genGetAbit, genGetByte,
1377           genGetWord): fixed bug 1409955
1378
1379 2006-02-14 Maarten Brock <sourceforge.brock AT dse.nl>
1380
1381         * device/include/hc08/mc68hc908gp32.h,
1382         * device/include/hc08/mc68hc908jb8.h: removed AWUL, added PTA6 & PTA7
1383
1384 2006-02-13 Maarten Brock <sourceforge.brock AT dse.nl>
1385
1386         * src/SDCCast.c (constExprValue): return NULL if not a value
1387         * src/SDCCglue.c (printIvalArray): fixed bug 1225568
1388         * src/hc08/gen.c(genUnpackBits, genUnpackBitsImmed): fixed bug 1019480
1389         * support/regression/tests/bitfields.c: enabled signed bitfield for all
1390
1391 2006-02-13 Borut Razem <borut.razem AT siol.net>
1392
1393         * src/regression/ptrarg.c: added, fails due to bug #1430967
1394         * src/regression/Makefile: ptrarg.c added, ...
1395
1396 2006-02-12 Maarten Brock <sourceforge.brock AT dse.nl>
1397
1398         * src/z80/gen.c (genUnpackBits): fixed bug 1019480
1399         * support/regression/tests/bitfields.c: enabled signed bitfield for z80
1400
1401 2006-02-11 Borut Razem <borut.razem AT siol.net>
1402
1403         * src/SDCCmain.c: Added "sdcc: Calling linker..." if --verbose,
1404           print "Processor: xxx" message to stdout only if --verbose
1405
1406 2006-02-11 Maarten Brock <sourceforge.brock AT dse.nl>
1407
1408         * src/SDCCglue.c (printIvalStruct): fixed bug 1426356 union initializer
1409         * support/regression/tests/bug1426356.c: added
1410         * support/regression/tests/bitfields.c: removed 2 tests
1411
1412 2006-02-10 Maarten Brock <sourceforge.brock AT dse.nl>
1413
1414         * device/include/mcs51/at89c51snd1c.h: updated comments, see patch 1428901
1415         * device/include/mcs51/c8051f330.h,
1416         * device/include/mcs51/c8051f350.h: used () with __at, renamed IDLE,STOP to
1417           PCON_IDLE,PCON_STOP and added sfr16 definitions
1418         * device/lib/_divsint.c,
1419         * device/lib/_divuint.c,
1420         * device/lib/_divulong.c,
1421         * device/lib/_divulong.c: renamed a,b to x,y to avoid confusion, fixed
1422           register bank bug for small stackauto
1423
1424 2006-02-09 Maarten Brock <sourceforge.brock AT dse.nl>
1425
1426         * support/regression/fwk/lib/timeout.c: include <stdlib.h> for exit()
1427
1428 2006-02-08 Maarten Brock <sourceforge.brock AT dse.nl>
1429
1430         * support/regression/ports/mcs51-xstack-auto/spec.mk: forgot -I(...)/mcs51
1431         * all.dsp: corrected several bin paths
1432         * device/include/mcs51/c8051f120.h,
1433         * device/include/mcs51/c8051f300.h,
1434         * device/include/mcs51/c8051f310.h: used () with __at and renamed IDLE,STOP
1435           to PCON_IDLE,PCON_STOP
1436         * device/include/mcs51/c8051f320.h: see above, also added sfr16 definitions
1437         * device/lib/printf_large.c (output_float): fixed bug 1388703
1438         * support/regression/tests/bug1057979.c: added test for bug 1388703
1439
1440 2006-02-08 Raphael Neider <rneider AT web.de>
1441
1442         * src/pic/pcode.c (pciTRIS): fixed typo,
1443           (BuildFlow,LinkFlow_pCode): added (disabled) debug output,
1444           (LinkFlow): fixed handling of flows that end in a call,
1445           (ReuseReg): perform safety check earlier
1446         * src/pic/pcoderegs.c (pCodeRegMapLiveRangesInFlow): fixed
1447             to work with flows at the beginning of a pBlock,
1448             fixes #1426557 (Symbol not previously defined),
1449           (pic14_ReMapLiveRanges): NEW, destroy and rebuild register
1450             usage information
1451           (RemoveUnusedRegisters): update register usage info
1452         * src/pic/ralloc.c (newReg): prevent duplicate registers from being
1453             created, reuse existing ones instead
1454         * src/pic/gen.c (genPcall): fixed #1424719
1455
1456 2006-02-07 Bernhard Held <bernhard AT bernhardheld.de>
1457
1458         * link/z80/lkmain.c,
1459         * link/z80/lklex.c,
1460         * link/z80/lkdata.c,
1461         * link/z80/aslink.h: fixed build on current cygwin:
1462         replaced getline() by lk_getline()
1463
1464 2006-02-01 Borut Razem <borut.razem AT siol.net>
1465
1466         * src/regression/add.c, src/regression/add2.c, src/regression/add3.c,
1467           src/regression/add4.c, src/regression/and1.c, src/regression/and2.c,
1468           src/regression/arrays.c, src/regression/b.c, src/regression/bank1.c,
1469           src/regression/bool1.c, src/regression/bool2.c,
1470           src/regression/bool3.c, src/regression/call1.c,
1471           src/regression/compare.c, src/regression/compare10.c,
1472           src/regression/compare2.c, src/regression/compare3.c,
1473           src/regression/compare4.c, src/regression/compare5.c,
1474           src/regression/compare6.c, src/regression/compare7.c,
1475           src/regression/compare8.c, src/regression/compare9.c,
1476           src/regression/configword.c, src/regression/for.c,
1477           src/regression/inline.c, src/regression/mult1.c,
1478           src/regression/nestfor.c, src/regression/or1.c,
1479           src/regression/pointer1.c, src/regression/ptrfunc.c,
1480           src/regression/rotate1.c, src/regression/rotate2.c,
1481           src/regression/rotate3.c, src/regression/rotate4.c,
1482           src/regression/rotate5.c, src/regression/rotate6.c,
1483           src/regression/rotate7.c, src/regression/string1.c,
1484           src/regression/struct1.c, src/regression/sub.c,
1485           src/regression/sub2.c, src/regression/switch1.c,
1486           src/regression/while.c, src/regression/xor.c,
1487           src/regression/create_stc, src/regression/simulate,
1488           src/regression/rt.sh, src/regression/Makefile: reenabled Scott's PIC14
1489           regression tests
1490         * src/regression/gpsim_assert.h: added
1491
1492 2006-01-28 Bernhard Held <bernhard AT bernhardheld.de>
1493
1494         * src/ds390/gen.c (unsaveRegisters): fixed literal function pointer
1495         ((void (code *) (void)) 0) ();
1496         * as/hc08/aslex.c,
1497         * as/hc08/aslink.h,
1498         * as/hc08/asm.h,
1499         * as/hc08/asmain.c,
1500         * as/hc08/lkdata.c,
1501         * as/hc08/lklex.c,
1502         * as/hc08/lkmain.c,
1503         * as/mcs51/aslex.c,
1504         * as/mcs51/aslink.h,
1505         * as/mcs51/asm.h,
1506         * as/mcs51/asmain.c,
1507         * as/mcs51/lkdata.c,
1508         * as/mcs51/lklex.c,
1509         * as/mcs51/lkmain.c,
1510         * as/z80/aslex.c,
1511         * as/z80/asm.h,
1512         * as/z80/asmain.c: fixed build on current cygwin:
1513         replaced getline() by as_getline()
1514
1515 2006-01-27 Bernhard Held <bernhard AT bernhardheld.de>
1516
1517         * src/SDCC.y: fixed bug #716242, exchanged pointer and function
1518         declarator in the symbol chain
1519         * src/SDCCsymt.h,
1520         * src/SDCCsymt.c (processFuncPtrArgs): added, removes "(void)"
1521         parameter list for function pointers
1522         * src/SDCCast.c (decorateType): added call of processFuncPtrArgs()
1523         * support/regression/tests/bug-716242.c: added
1524
1525 2006-01-20 Bernhard Held <bernhard AT bernhardheld.de>
1526
1527         * src/SDCCicode.c (geniCodeAdd, geniCodeArray): use char for array
1528         offset if possible
1529         * src/SDCCast.c (getLeftResultType): 255 fits in char, not 256
1530
1531 2006-01-18 Bernhard Held <bernhard AT bernhardheld.de>
1532
1533         * src/SDCCast.c (backPatchLabels): fixed bug #1408066: made it
1534         inifinitely recurseable, added static
1535         * support/regression/tests/bug-1408066.c: added
1536
1537 2006-01-17 Bernhard Held <bernhard AT bernhardheld.de>
1538
1539         * src/SDCCicode.h,
1540         * src/SDCCicode.c (newiTempPreheaderLabel, newiTempLoopHeaderLabel):
1541         renamed, added possibility to create "postLoopLbl"-labels
1542         * src/SDCCBBlock.c (iCodeBreakDown): renamed newiTempPreheaderLabel to
1543         newiTempLoopHeaderLabel
1544         * src/SDCCloop.c (newInduction, newRegion, backEdges, insertIntoLoop,
1545         isNotInBlocks, addToExitsMarkDepth, createLoop, dominatedBy,
1546         addDefInExprs, assignmentsToSym, isOperandInvariant, pointerAssigned,
1547         hasNonPtrUse, loopInvariants, addressTaken, findInduction,
1548         findDefInRegion, mergeRegions, ifMerged, mergeInnerLoops): made static,
1549         (pinduction, pregion, hasIncomingDefs, findLoopEndSeq): disabled,
1550         (basicInduction): fixed bug #136564, made static,
1551         (loopInduction): changed parameter of basicInduction, made static,
1552         (addPostLoopBlock): added
1553         * src/SDCCloop.h: removed backEdges, pregion, pinduction,
1554         loopOptimizations, addressTaken, findDefInRegion, hasIncomingDefs,
1555         findLoopEndSeq
1556         * support/regression/tests/bug-136564.c: added
1557         * support/regression/ports/mcs51-xstack-auto/spec.mk: added
1558         --std-sdcc99 to LIBSDCCFLAGS
1559
1560 2006-01-16 Bernhard Held <bernhard AT bernhardheld.de>
1561
1562         * src/SDCCicode.c (geniCodeIfx): fix bug 1406131: always false
1563         while loop
1564         * support/regression/tests/bug-1406131.c: added
1565
1566 2005-12-31 Bernhard Held <bernhard AT bernhardheld.de>
1567
1568         * src/SDCCast.c (decorateType): fix promotion of unary minus
1569         * src/SDCCsymt.c (computeType): beautified
1570         * src/SDCCval.c (cheapestVal): beautified, old non-Ansi version removed,
1571         (valUnaryPM, valComplement): fix sign and promotion,
1572         (valNot): ANSI: result type is int (SDCC: unsigned char)
1573         * support/regression/tests/uminus.c: speedup by removing superflous
1574         test case 'int'
1575         * support/regression/tests/onebyte.c: added promotion and signedness
1576         tests for unary minus
1577         * support/regressions/tests/bug-477927.c: disable warning about
1578         uninitialized variables
1579         * support/regression/tests/not.c: added
1580
1581 2005-12-28 Bernhard Held <bernhard AT bernhardheld.de>
1582
1583         * device/lib/Makefile.in: added --std-sdcc99 to CFLAGS
1584         * src/mcs51/gen.c (gen51Code): show final register usage after
1585         fillGaps in asm with --i-code-in-asm
1586         * src/SDCClrange.c (sequenceiCode, setLiveFrom, setLiveTo,
1587         markLiveRanges, markAlive, findNextUseSym, findNextUse, unvisitBlocks,
1588         incUsed, rliveClear, adjustIChain): made static,
1589         (setFromRange): excluded because it's unused,
1590         (findPrevUseSym, markWholeLoop): added,
1591         (findPrevUse): rewritten; fixes bug 895992; now a complete search
1592         through all branches of predecessors enables sdcc to emit the warning
1593         W_LOCAL_NOINIT, marking of outermost loop was incomplete,
1594         (rlivePoint): made static, added parameter emitWarnings which is only
1595         true during the first run out of two,
1596         (findRecursiveSucc, findRecursivePred): removed,
1597         (computeLiveRanges): made static, added parameter emitWarnings,
1598         (dumpIcRlive): added for debugging only
1599         * src/SDCClrange.h: added boolean parameter to computeLiveRanges(),
1600         removed prototype of setFromRange()
1601         * src/SDCCopt.c (eBBlockFromiCode): added new parameter emitWarnings
1602         in call of computeLiveRanges()
1603         * support/regression/tests/bug-895992.c: added
1604         * support/regression/tests/bug-971834.c: added
1605         * support/valdiag/tests/bug-895992.c: added
1606         * support/valdiag/tests/bug-971834.c: added
1607
1608 2005-12-18 Raphael Neider <rneider AT web.de>
1609
1610         * src/pic16/gen.c: added IS_DIRECT macro for "direct" operands,
1611           (genUnpackBits): improved code for direct operands,
1612           (genPackBits): improved code for literal assignment to bitfields
1613             and for direct destination operands (no FSR indirection),
1614             prevented redundant AND, fixes #1362800,
1615           (AccLsh): added parameter to disable masking of the result
1616         * src/pic16/pcode.c (pic16_safepCodeUnlink): fixed to work with
1617           skip instructions with side-effects (like incfsz),
1618           (pic16_pCodeIsAlive): suppress verbose output unless pcode_verbose,
1619         * src/pic16/pcoderegs.c (RemoveRegsFromSet): removed annoying warning
1620         * device/lib/pic16/Makefile.common.in: added --asm=@GPASM@ to CC,
1621           fixes #1375263
1622
1623 2005-12-11 Bernhard Held <bernhard AT bernhardheld.de>
1624
1625         * src/SDCCicode.c (geniCodeAssign): fixed bug 11369874, don't use
1626         volatile variables as spill location
1627
1628 2005-12-10 Bernhard Held <bernhard AT bernhardheld.de>
1629
1630         * src/SDCCcse.c (findCheaperOp): fixed bug 1376320, copy signedness to
1631         replacing literals
1632         * support/regression/tests/bug-1376320.c: added
1633
1634 2005-12-08 Raphael Neider <rneider AT web.de>
1635
1636         * src/pic/device.c: renamed is_shared to pic14_is_shared
1637         * src/pic/gen.c (genIfx): re-enabled handling of sbits
1638         * src/pic/glue.c (emitSymbolToFile): added workaround for sbits,
1639           (is_valid_identifier): added for above workaround
1640
1641 2005-12-07 Maarten Brock <sourceforge.brock AT dse.nl>
1642
1643         * device/lib/Makefile.in: fixed to enable port-specific-objects
1644         * device/lib/ds390/i2c390.c (BitOutI2C): optimized by making bout unsigned
1645           char, thanks Hubert Sack
1646         * doc/sdccman.lyx: documented --xstack-loc,
1647           elaborated a bit more on interrupts and pitfalls,
1648           removed "setjmp/longjmp unsupported",
1649           documented some unsupported C99 features
1650         * src/SDCCmain.c (linkEdit): adapted default lib path for --stack-auto
1651         * src/SDCCpeeph.c (readRules): inserted patch 1367130 for finding missing
1652           if, thanks Hubert Sack
1653         * src/mcs51/gen.c (genEndFunction): enabled "pop psw" for regbank 0 isr
1654         * support/regression/Makefile.in: test-mcs51-stack-auto no longer needs to
1655           make make_library
1656         * support/regression/get_ticks.py: new, get cpu cycles and code size, so
1657           regression tests can report resource usage (rfe 700441)
1658         * support/regression/collate-results.py: report resource usage
1659         * support/regression/ports/ds390/spec.mk,
1660         * support/regression/ports/hc08/spec.mk,
1661         * support/regression/ports/mcs51/spec.mk,
1662         * support/regression/ports/ucz80/spec.mk: run sim output through get_ticks
1663         * support/regression/ports/ds390/uCsim.cmd,
1664         * support/regression/ports/hc08/uCsim.cmd,
1665         * support/regression/ports/mcs51/uCsim.cmd,
1666         * support/regression/ports/ucz80/uCsim.cmd: inserted "state" to report time
1667         * support/regression/ports/mcs51-stack-auto/spec.mk: no need to build the
1668           library, use the default one
1669         * support/regression/ports/mcs51-xstack-auto/spec.mk: inserted rules for
1670           building the library
1671
1672 2005-12-06 Maarten Brock <sourceforge.brock AT dse.nl>
1673
1674         * config.dsp: added dependency on .version and configure_vc.awk
1675         * device/include/setjmp.h: updated for --stack-auto and --xstack
1676         * device/include/mcs51/at89c51snd1c.h: corrected line endings
1677         * device/include/mcs51/XC866.h: added, thanks Llewellyn van Zyl
1678         * device/lib/_setjmp.c: updated for --stack-auto and --xstack
1679         * device/lib/libsdcc.lib: added _setjmp
1680         * src/SDCCast.c (createIvalCharPtr): fixed warnings,
1681           (decorateType): fixed bug 1372851,
1682           (optimizeGetHbit): fixed warning
1683         * src/SDCCglue.c (printIvalChar, printIvalArray): adapted for flexible
1684           array initialisation
1685         * support/regression/tests/bug1057979.c: added test for bug 1358192
1686         * support/regression/tests/setjmp.c: added, test for setjmp/longjmp
1687
1688 2005-12-03 Borut Razem <borut.razem AT siol.net>
1689
1690         * support/scripts/sdcc.nsi: added /SOLID option to "SetCompressor lzma"
1691           command since the NSIS was upgraded to version 2.11 on CF x86-linux2
1692
1693 2005-11-29 Bernhard Held <bernhard AT bernhardheld.de>
1694
1695         * src/SDCCast.c (createIvalStruct, createIvalArray, createIvalPtr,
1696         createIval): implement symbol independant "flexible array member",
1697         (createIvalCharPtr): implemented flexible array initialisation with a
1698         string
1699         * src/SDCCsymt.c (copyStruct): removed,
1700         (getSize): fixed misleading comment,
1701         (getAllocSize): removed, the additional allocation size is now in
1702         sym->flexArrayLength,
1703         (checkStructFlexArray): new, syntax checks for flexible array members,
1704         (compStructSize): added syntax checks for "flexible array members"
1705         (copyStruct): removed,
1706         (copyLinkChain): removed inefficient fix for bug 770487
1707         * src/SDCCglue.c (emitRegularMap): getAllocSize has been removed
1708         * src/SDCCsymt.h: added structdef.b_flexArrayMember and
1709         symbol->flexArrayLength
1710         * src/SDCCerr.c,
1711         * src/SDCCerr.h: added W_INVALID_FLEXARRAY, W_C89_NO_FLEXARRAY,
1712         E_FLEXARRAY_NOTATEND and E_FLEXARRAY_INEMPTYSTRCT
1713         * support/regression/tests/structflexarray.c: added
1714         * support/valdiag/tests/structflexiblearray.c: added
1715
1716 2005-11-29 Bernhard Held <bernhard AT bernhardheld.de>
1717
1718         * src/SDCCast.c (decorateType): fixed bug 1368489
1719         * support/Util/SDCCerr.c,
1720         * support/Util/SDCCerr.h: added warning W_CMP_SU_CHAR
1721
1722 2005-11-28 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
1723
1724         * device/include/mcs51/at89c51snd1c.h: added file submitted by
1725           Weston T. Schmidt <schmidtw AT users.sourceforge.net>, patch #1368001
1726
1727 2005-11-27 Borut Razem <borut.razem AT siol.net>
1728
1729         * support/cpp2/cppinit.c, support/cpp2/cpplib.h, support/cpp2/mkdeps.c,
1730           support/cpp2/mkdeps.h: added command line option
1731           -obj-ext=<extension> to SDCPP to define object file externion, used
1732           for generation of make dependencies (-M)
1733         * src/SDCCmain.c: pass -obj-ext=<extension> to SDCPP
1734
1735 2005-11-26 Borut Razem <borut.razem AT siol.net>
1736
1737         * support/scripts/sdcc.nsi: added small-stack-auto libraries,
1738           added missing device/lib/mcs51/crt*.asm, pic and pic16 sources,
1739           added pic and pic16 libraries
1740
1741 2005-11-26 Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
1742
1743         * device/include/float.h: Corrected typo in prototype of __fsgt
1744
1745 2005-11-25 Borut Razem <borut.razem AT siol.net>
1746
1747         * sdcc/device/lib/Makefile.in, sdcc/device/lib/incl.mk:
1748           added creation of model-mcs51-stack-auto libraries
1749
1750 2005-11-24 Bernhard Held <bernhard AT bernhardheld.de>
1751
1752         * src/SDCCsymt.c (copyLinkChain): fixed bug 770487, copy structdef
1753         and fields-list too
1754         * src/SDCCast.c (createIvalArray): removed obsolete comment
1755
1756 2005-11-24 Borut Razem <borut.razem AT siol.net>
1757
1758         * sdcc/device/lib/Makefile.in: remove all unnecessary files, 2nd try...,
1759           added missing device/lib/mcs51/crt*.asm sources
1760
1761 2005-11-23 Bernhard Held <bernhard AT bernhardheld.de>
1762
1763         * src/SDCCast.c (createIvalCharPtr): fixed bug 1348271
1764
1765 2005-11-22 Maarten Brock <sourceforge.brock AT dse.nl>
1766
1767         * device/lib/_fs2schar.c,
1768         * device/lib/_fs2sint.c,
1769         * device/lib/_fs2slong.c: optimized inline asm
1770
1771 2005-11-21 Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
1772
1773         * device/lib/_fs2slong.c, device/lib/_fs2sint.c, device/lib/_fs2char.c:
1774           Better handling of floats between -1.0 and 0.0.
1775
1776 2005-11-20 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
1777
1778         * src/mcs51/peeph.def: added missing "if"s as noted by Hubert Sack.
1779           (the missing "if"s prohibited removal of redundant labels)
1780
1781 2005-11-19 Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
1782
1783         * device/lib/_fs2slong.c, device/lib/_fs2sint.c, device/lib/_fs2char.c:
1784           Properly convert floats between -1.0 and 0.0 to long, int, and char
1785           types (max integer value of negative floats tends to zero).
1786         * device/lib/modff.c, device/lib/ceilf.c, device/lib/floorf.c:
1787           Removed changes made so to work properly with floats between
1788           -1.0 and 0.0, as the problem is fixed in _fs2slong.c, _fs2sint.c,
1789           and _fs2char.c
1790
1791 2005-11-18 Bernhard Held <bernhard AT bernhardheld.de>
1792
1793         * src/SDCCcse.c (ReplaceOpWithCheaperOp): minor fix for debugging only
1794         * src/mcs51/gen.c (genUnpackBits): better code and a fix,
1795         (genCast) cosmetic change
1796         * src/ds390/gen.c (genUnpackBits, ): ported from mcs51
1797         * src/ds390/ralloc.c (packRegsForAssign): ported fix for bitfields
1798         from mcs51
1799         * support/regression/tests/bitfields (testSignedBitfields): added
1800
1801 2005-11-18 Borut Razem <borut.razem AT siol.net>
1802
1803         * sdcc/device/lib/Makefile.in: remove all unnecessary files
1804         * device/lib/pic/Makefile.rules, device/lib/pic16/Makefile.subdir:
1805           introduced SILENT option to make building of pic16 libraries less
1806
1807 2005-11-18 Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
1808
1809         * device/lib/modff.c, device/lib/ceilf.c, device/lib/floorf.c:
1810           Now they work properly with floats between -1.0 and 0.0
1811         * device/lib/printf_large.c: Removed temporary patch for bug 1358192
1812
1813 2005-11-18 Maarten Brock <sourceforge.brock AT dse.nl>
1814
1815         * src/SDCCicode.c (printOperand): added missing else
1816
1817 2005-11-18 Bernhard Held <bernhard AT bernhardheld.de>
1818
1819         * src/SDCCsymt.c (computeType): fixed bug 1358192: added missing else,
1820         reformatted for better readability
1821         * src/mcs51/gen.c (genUnpackBits): initial, incomplete support for
1822         signed bitfields
1823
1824 2005-11-17 Borut Razem <borut.razem AT siol.net>
1825
1826         * device/lib/pic16/Makefile.rules, device/lib/pic16/Makefile.subdir:
1827           introduced SILENT option to make building of pic16 libraries less
1828           verbose - used for nightly snapshot build
1829         * doc/sdccman.lyx: documented that SDCDB and ucSim are currently not
1830           available on Win32 platforms.
1831         * sdcc/device/lib/Makefile.in: added library sources for mcs51, small,
1832           medium, large, pic and pic16
1833
1834 2005-11-16 Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
1835
1836         * device/lib/printf_large.c: Temporary patch for bug 1358192:
1837           printf("%f"...) sets fraction to zero.
1838
1839 2005-11-16 Raphael Neider <rneider AT web.de>
1840
1841         * src/pic/pcode.c (LinkFlow): handle empty flows correctly,
1842           fixes #1357221
1843         * src/pic/gen.c (genIfx): implemented for CARRY bit
1844         * src/pic16/gen.c (genAssign,genCast): fixed assigning/casting
1845           to generic pointers, fixes #1357332,
1846           (pic16_movLit2f): NEW,
1847           (pic16_storeForReturn,genDataPointerSet): use pic16_movLit2f
1848
1849 2005-11-14 Maarten Brock <sourceforge.brock AT dse.nl>
1850
1851         * src/SDCCmain.c (parseCmdLine): fixed bug 1356800, thanks rsudjian
1852
1853 2005-11-11 Raphael Neider <rneider AT web.de>
1854
1855         * src/pic/gen.c: handle FPOINTERS like POINTERS everywhere
1856         * src/pic16/gen.c (pic16_derefPtr): now works for non-pointers as well,
1857           compute pointer's type from operand,
1858           (genUnpackBits,genPackBits): handle FPOINTERS correctly, re-indented,
1859           improved single bit reads, fixes bug #1353379
1860
1861 2005-11-09 Borut Razem <borut.razem AT siol.net>
1862
1863         * support/scripts/sdcc.nsi: added lib/pic to the package
1864
1865 2005-11-08 Maarten Brock <sourceforge.brock AT dse.nl>
1866
1867         * src/SDCCval.c (valUnaryPM): fixed bug 1350699
1868
1869 2005-11-06 Maarten Brock <sourceforge.brock AT dse.nl>
1870
1871         * support/regression/tests/bug1348008.c: added
1872         * src/mcs51/gen.c (saveRBank, unsaveRBank): fixed bug 1348008
1873         * support/regression/tests/bug1337835.c: updated comment
1874
1875 2005-11-06 Borut Razem <borut.razem AT siol.net>
1876
1877         * sim/ucsim/error.cc, sim/ucsim/errorcl.h,
1878           sim/ucsim/sim.src/stack.cc, sim/ucsim/sim.src/stackcl.h,
1879           sim/ucsim/sim.src/uc.cc, sim/ucsim/sim.src/uccl.h,
1880           sim/ucsim/sim.src/mem.cc, sim/ucsim/sim.src/memcl.h,
1881           sim/ucsim/cmd.src/set.cc, sim/ucsim/cmd.src/show.cc:
1882           dynamic construction of cl_error_class and derivates - 2.nd try
1883
1884 2005-11-05 Borut Razem <borut.razem AT siol.net>
1885
1886         * sim/ucsim/sim.src/error.cc: fixed uninitialized class member variable
1887           bug, which caused Bus Errors on sparc solaris
1888
1889 2005-11-04 Borut Razem <borut.razem AT siol.net>
1890
1891         * sim/ucsim/error.cc, sim/ucsim/errorcl.h,
1892           sim/ucsim/sim.src/stack.cc, sim/ucsim/sim.src/stackcl.h,
1893           sim/ucsim/sim.src/uc.cc, sim/ucsim/sim.src/uccl.h,
1894           sim/ucsim/sim.src/mem.cc, sim/ucsim/sim.src/memcl.h,
1895           sim/ucsim/cmd.src/cmdconf.cc: dynamic construction of cl_error_class
1896           and derivates to resolve the initialization problem on OSX
1897
1898 2005-11-02 Borut Razem <borut.razem AT siol.net>
1899
1900         * sim/ucsim/cmd.src/cmdutil.cc, sim/ucsim/cmd.src/newcmd.cc:
1901           corrected typo - #include <winsock2.h>
1902
1903 2005-11-02 Maarten Brock <sourceforge.brock AT dse.nl>
1904
1905         * src/asm.c (printILine): always close tmpFile, thanks Beau E. Cox,
1906           (_asxxxx_mapping): added org directive for future enhancements
1907
1908 2005-11-01 Borut Razem <borut.razem AT siol.net>
1909
1910         * sim/ucsim/app.cc, sim/ucsim/cmd.src/cmdutil.cc, sim/ucsim/cmd.src/newcmd.cc:
1911           enabled sockets on WIN32
1912         * sim/ucsim/cmd.src/newcmd.cc: fixed bug with uninitialized variables
1913
1914 2005-10-31 Borut Razem <borut.razem AT siol.net>
1915
1916         * support/regression/generate-cases.py: escape backslashes in {testcase}:
1917           WIN32 backslash path delimiters should be escaped when used in C strings
1918         * support/regression/tests/bitfields.c: exclude failing assertions for
1919           __CYGWIN32__ and __MINGW32__ hosts
1920
1921 2005-10-30 Borut Razem <borut.razem AT siol.net>
1922
1923         * src/SDCCutil.c: corrected double comparison typo
1924
1925 2005-10-30 Maarten Brock <sourceforge.brock AT dse.nl>
1926
1927         * device/lib/medium/Makefile: added for new memory model medium
1928         * device/include/asm/mcs51/features.h: updated for medium/pdata
1929         * device/include/mcs51/c8051f120.h: added sfr16/sfr32 definitions,
1930           added Multiply & Accumulate sbit's and MAC0_PAGE define
1931         * device/include/mcs51/c8051f300.h: added sfr16 definitions
1932         * device/include/mcs51/c8051f310.h: added sfr16 definitions
1933         * device/lib/_mullong.c: update for medium model
1934         * device/lib/incl.mk: added medium model
1935         * doc/sdccman.lyx: documented medium model
1936         * src/SDCCast.c (isBitAndPow2): simplified using updated powof2
1937         * src/SDCCicode.c (geniCodeMultiply, geniCodeDivision): use updated powof2
1938         * src/SDCCmain.c (optionsTable, linkEdit): enabled medium model
1939         * src/SDCCmem.c (allocIntoSeg): set iaccess for pdata symbols,
1940           (allocParms): set SCLS and OCLS to pdata for medium model
1941         * src/SDCCsymt.c (processFuncArgs): use default_local_map and set iaccess
1942           for pdata,
1943           (powof2): return <0 if not power of 2
1944         * src/avr/gen.c (genBitWise): use updated powof2
1945         * src/mcs51/gen.c (genMinusDec): use acc if necessary,
1946           (shiftR2Left2Result): small optimization in setup, save acc when storing,
1947           (shiftLLeftOrResult): use B if necessary
1948         * src/mcs51/main.c (_mcs51_finaliseOptions, mcs51_port): added medium model
1949         * src/mcs51/peeph.def: renamed 226 to 226.b, added 226.a
1950         * src/pic/main.c (_pic14_do_link): made void parameter list explicit
1951         * support/regression/Makefile.in: added test-mcs51-medium
1952         * support/regression/ports/mcs51-medium/spec.mk: added to test medium model
1953
1954 2005-10-28 Bernhard Held <bernhard AT bernhardheld.de>
1955
1956         * src/SDCCsymt.c (compStructSize): make bitfields without (un)signed
1957         specifier unsigned
1958         * device/lib/time.c (mktime): fixed bug 1334315
1959
1960 2005-10-28 Raphael Neider <rneider AT web.de>
1961
1962         * device/include/pic/p16f_common.inc: added common declarations
1963         * src/pic/ralloc.c (initStack): moved regs *r to block start for Alpha
1964
1965 2005-10-27 Maarten Brock <sourceforge.brock AT dse.nl>
1966
1967         * src/mcs51/gen.c (getTempRegs): return 0 if not enough registers found,
1968           (aopPutUsesAcc): added to predict accumulator use,
1969           (assignResultValue): save acc if necessary,
1970           (genMinusDec): store result if indirectly addressed,
1971           (genDivOneByte):  save acc if necessary,
1972           (movLeft2Result): bugfix if left already in acc,
1973           (genAnd, genOr, genXor, shiftL2Left2Result, shiftR2Left2Result): pay more
1974             attention to accumulator use (esp. pdata),
1975           (genReceive): receive pdata correctly
1976         * src/SDCCicode.c (isOperandInPagedSpace): added to detect pdata operands
1977         * src/SDCCicode.h: added isOperandInPagedSpace prototype
1978
1979 2005-10-27 Raphael Neider <rneider AT web.de>
1980
1981         * doc/sdccman.lyx: corrected version (should be 2.5.4 not 2.5.5)
1982
1983 2005-10-27 Raphael Neider <rneider AT web.de>
1984
1985         * .version: changed version to 2.5.4
1986         * doc/sdccman.lyx: changed version to 2.5.4, added some remarks to PIC14
1987         * device/lib/pic/libsdcc/{_mulint.c,_mullong.c}: use unsigned literals,
1988           (_divschar.c,divuchar.c,_mulchar.c,_modschar.c,_moduchar): NEW,
1989             arithmetics support routines
1990         * device/lib/pic/Makefile.rules: have assembler sources preprocessed
1991         * device/lib/Makefile.in: also create installdir for pic
1992
1993         * src/SDCCopt.c (cnvToFcall): mark support routines `extern' for
1994           pic14 port as well
1995         * src/pic/device.c (dump_sfr): rewritten to delegate register
1996           placement to the linker (use `extern sym' rather than sym EQU addr),
1997           (validAddress): fixed to check last specified address
1998         * src/pic/gen.c (aopForSym): added code to deal with array (useless?),
1999           (popGetLit): truncate literal value to 8 bit,
2000           (popGet): moved assert to more appropriate place
2001           (popGetExternal): create pCode operand from and mark the according
2002             symbol as being `extern'
2003           (popGetAddr): added sanity check on immediate's offset, provide
2004             GPOINTER tag on demand
2005           (aopPut): fixed for immediates,
2006           (mov2w_op): move operand's address or contents to WREG (depending on
2007             operand type), safer variant of mov2w,
2008           (movwf,call_libraryfunc): NEW, handy abbreviations,
2009           (get_argument_pcop,get_return_val_pcop,pass_argument,
2010           get_returnvalue): interface for accessing function parameters and
2011             return values,
2012           (assignResultValuei,genRet): use new parameter/return value interface
2013           (pic14_getDataSize): back to old version handling generic pointers,
2014           (pic14_toBoolean,genNot,genCpl,genCmpEq,genOrOp): heavily rewritten,
2015             provided implementation and/or fixed old one,
2016           (genMultOneByte,genDivOneByte,genModOneByte): implemented as library
2017             calls, removed legacy 8051 reference code
2018           (AccLsh,AccRsh): rewritten and fixed to deal with signed operands
2019           (loadSignToC): NEW, move the operands sign bit to CARRY,
2020           (genGenericShift): NEW, replaces genLeftShift, genRightShift and
2021             genRightShiftSigned, accepts negative shift counts,
2022           (setup_fsr): load FSR and adjust IRP (indirect memory access),
2023           (emitPtrByteGet,emitPtrByteSet): rewritten, now works with
2024             generic pointers, __data pointers and __code pointers,
2025           (genUnpackBits,genPackBits): rewritten to work with generic pointers
2026             and signed bitfields, limit bitfields to 8 bit,
2027           (genDataPointerGet): fixed number of bytes read,
2028           (genGenPointerGet,genConstPointerGet): fixed bitfield access,
2029           (genPointerGet,genPointerSet): fixed handling of __code pointers,
2030             pointers to constant data are no longer assumed to point to __code
2031             space, removed invalid pointer types,
2032           (bitpatternFromVal): retrieve the PICs representation of an integer
2033             or float literal,
2034           (genDataPointerSet): fixed assigning to po_immediate operands,
2035           (genGenPointerSet): implemented as library call,
2036           (genIfx): fixed incorrect condition,
2037           (genAddrOf): limit generic pointers' addresses to 2 bytes,
2038             provide GPOINTER tag according to destination's storage class,
2039           (genCast): added code to handle casting to generic pointers, added
2040             sign-/zero extension of the result
2041           (aop_isLitLike,op_isLitLike): fixed handling of immediates
2042         * src/pic/gen.h: added macros to access IRP bit in STATUS register
2043         * src/pic/genarith.c (genAddLit): use min(result's,left's) size, sign
2044           extend the result
2045         * src/pic/glue.c (is_shared_address,is_shared): check whether a given
2046           address/register resides in the shared banks
2047           (emitSymbolToFile): improved to handle global and `pinned' symbols,
2048             put all variables into separate sections (have the linker arrange
2049             them)
2050           (picglue): put init code and interrupt handlers in separate sections
2051         * src/pic/main.c: added port specific options table, modified to PORT
2052           structure to make GPOINTERs 3 byte, added pic14_options
2053           (_pic14_do_link): private linking routine (update paths to libraries,
2054             add libsdcc.lib by default)
2055         * src/pic/main.h: declare pic14_options
2056         * src/pic/pcode.c: fixed instructions i/o relations,
2057           (RegCond): reverted to correct version,
2058           (newpCodeOpLit): truncate literals to 8 bit,
2059           (genericPrint): added debug output,
2060           (getRegFromInstruction): fixed for various operand types, simplified
2061           (BuildFlow): fixed broken handling of isntructions with labels
2062           (LinkFlow): start at last instruction in flow (skip trailing comments),
2063             pass the flow on to the next instruction after CALL
2064           (pCodeReplace): NEW, replace a pCode and move meta data to the new one
2065           (insertPCodeInstruction): fixed inserting after a skip instruction,
2066           (DoBankSelect): fixed for labeled instructions
2067           (OptimizepBlock): honor --nopeep switch
2068           (AnalyzeFlow,ReuseReg): prevent crash on source files with no function
2069         * src/pic/pcodepeep.c (pCodePeepMatchRule): prevent NULL pointer accesses
2070         * src/pic/pcoderegs.c (regIsLocal): NEW, check visibility of a register
2071           (pCodeOptime2pCodes): allow disabling this optimization via
2072             --no-pcode-opt due seldomly occuring bugs, fixed some conditions
2073             but is still buggy), started implementation of a dataflow based
2074             pCode optimization (CSE + dead code elimination)
2075           (pCodeRegMapLiveRangesInFlow): removed bogus inCond
2076         * src/pic/ralloc.c (initStack): renamed stack registers to STK%d, the new
2077           names are independant of the stack location and therefore portable across
2078           devices
2079
2080 2005-10-27 Maarten Brock <sourceforge.brock AT dse.nl>
2081
2082         * src/mcs51/ralloc.c (bitType): added to detect bit variables,
2083           (selectSpil): fixed bug 1337835 by not spilling bit variables
2084         * support/regression/tests/bug1337835.c: added test for this bug
2085         * src/mcs51/peeph.def: restart after rule 3.c,
2086           addded rules 263.x to optimize loading constants
2087
2088 2005-10-26 Raphael Neider <rneider AT web.de>
2089
2090         * src/SDCCsymt.c (compStructSize): allow signed bitfields for PIC ports
2091         * src/pic16/gen.c (genUnpackBits): support signed bitfields,
2092           (genAssign): emit warning when casting literals to generic pointer
2093             type, also applies when taking the address of a fixed variable,
2094           (genCast): improved casting to generic pointers
2095         * src/pic16/glue.c (pic16emitStaticSeg): fixed(?) handling of fixed
2096           extern variables, added verbose error message
2097         * device/include/pic16/{string.h,errno.h}: added #pragma library c
2098
2099 2005-10-26 Bernhard Held <bernhard AT bernhardheld.de>
2100
2101         * src/mcs51/gen.c (genMinus): fixed bug 1270906: reverse subtraction,
2102         carry must be complemented too
2103         * src/mcs51/peeph.def: addded rule 262 to remove double cpl c, which
2104         could be emitted by genMinus
2105         * src/SDCCval.c (constVal): fixed bug 1305065
2106
2107 2005-10-25 Bernhard Held <bernhard AT bernhardheld.de>
2108
2109         * src/SDCCast.c (addCast): added promotion for bit variables
2110         (decorateType): emit W_COMPLEMENT before the problem vanishes behind
2111         promotion casts + optimisation
2112         (optimizeGetWord): fix warning 'i' might be used uninitialized
2113         * src/mcs51/gen.c (genCpl): removed W_COMPLEMENT
2114         * src/ds390/gen.c (genCpl): removed W_COMPLEMENT
2115
2116 2005-10-24 Bernhard Held <bernhard AT bernhardheld.de>
2117
2118         * src/SDCCicode.c (ast2iCode): reverted to 1.224 because of regression:
2119         all chars are promoted to int; promotion should be handled in SDCCast.c
2120
2121 2005-10-15 Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
2122
2123         * device/lib/_strcmp.c: Fixed bug 1326457
2124
2125 2005-10-11 Raphael Neider <rneider AT web.de>
2126
2127         * device/lib/pic16/libio/i2c.ignore: added 1320, fixes broken builds
2128         * device/lib/pic16/libdev/pic18f1320.c: added 1320's device library
2129
2130 2005-10-05 Maarten Brock <sourceforge.brock AT dse.nl>
2131
2132         * src/SDCC.y (AT): fixed bug with sfr32 addresses when built with GCC
2133         * support/regression/tests/sfr16.c: added test for the sfr32 bug
2134
2135 2005-10-04 Raphael Neider <rneider AT web.de>
2136
2137         * device/include/pic16/pic18fregs.h, src/pic16/devices.inc,
2138           device/lib/pic16/pics.all: added pic18f1320
2139         * src/pic16/pcode.c (mnem2key): fixed prototype's argument mismatch
2140
2141 2005-09-30 Raphael Neider <rneider AT web.de>
2142
2143         * src/pic16/device.c (Pics16[]): moved device descriptions to devices.inc
2144         * src/pic16/devices.inc: NEW, provides device descriptions
2145         * src/pic16/gen.c (genInline): fixed handling of ';'-comments
2146
2147 2005-09-26 Maarten Brock <sourceforge.brock AT dse.nl>
2148
2149         * src/SDCCicode.c (operandOperation): added GETABIT, GETBYTE, GETWORD and
2150           GETHBIT
2151
2152 2005-09-25 Maarten Brock <sourceforge.brock AT dse.nl>
2153
2154         * doc/sdccman.lyx: updated Highest Order Bit documentation,
2155           documented Any Order Bit, Higher Order Byte and Higher Order Word
2156         * src/SDCC.y: added tokens GETABIT, GETBYTE, GETWORD
2157         * src/SDCCast.c (optimizeGetHbit): updated to also accept bool=expr&(1<<n),
2158           (optimizeGetAbit): new, to get any bit, not only the high bit,
2159           (optimizeGetByte): new, to get a byte from a (long) int: expr>>(8*n),
2160           (optimizeGetWord): new, to get a word from a long int: expr>>(8*n),
2161           (isConformingBody): also check GETABIT, GETBYTE, GETWORD,
2162           (decorateType): '&': also try GETABIT, GETBYTE, GETWORD optimization,
2163             RIGHT_OP: also try GETBYTE, GETWORD optimization,
2164             GETABIT, GETBYTE, GETWORD: decorate them,
2165           (isShiftRightLitVal, isBitAndPowOf2): new helper functions,
2166           (ast_print): added GETABIT, GETBYTE, GETWORD
2167         * src/SDCCcse.c (isSignedOp): added GETABIT, GETBYTE, GETWORD
2168         * src/SDCCicode.c (codeTable): added GETABIT, GETBYTE, GETWORD,
2169           (geniCodeBinary): new generic binary icode,
2170           (ast2iCode): added GETABIT, GETBYTE, GETWORD
2171         * src/port.h: updated comment for PORT.hasExtBitOp
2172         * src/mcs51/gen.c (genGetAbit): new, to get any single bit,
2173           (genGetByte): new, to get a single byte,
2174           (genGetWord): new, to get a word from a long,
2175           (gen51Code): added GETABIT, GETBYTE, GETWORD
2176         * src/mcs51/main.c (hasExtBitOp): added GETABIT, GETBYTE, GETWORD
2177
2178 2005-09-23 Raphael Neider <rneider AT web.de>
2179
2180         * configure.in, configure: have device/lib/pic configured
2181         * device/lib/Makefile.in: added model-pic14
2182         * device/lib/clean.mk: added pic/ to clean rule
2183         * device/lib/pic: added rudimentary pic14 library providing support
2184           functions for multiplication/division/generic pointer access
2185         * src/SDCCopt.c (convilong): mark support functions as extern
2186           for pic14 port as well
2187         * src/pic/gen.c (genMult): added assertions,
2188           (genpic14Code): emit warning on unhandled iCodes
2189         * src/pic/main.c (_hasNativeMulFor): return true only for 8x8 bit
2190         * src/pic/pcode.c (pCodeOpCopy),
2191         * src/pic16/pcodepeep.c (pic16_pCodeOpCopy): fixed handling of various
2192           pCodeOpReg-subtypes (PO_{STATUS,INTCON,PCL,PCLATH,PCLATU,BSR,
2193           SFR_REGISTER}), made safe for future extensions
2194         * src/pic16/pcode.c (pic16_safepCodeUnlink): allow for removal of
2195           instructions even if preceeded by SKIP instructions (also remove
2196           them); removed unused code
2197         * src/pic16/pcode.h: added arg2 to pCodeOpLit to match pCodeOpLit2,
2198           prevents leaving parts of the structure uninitialized after copying
2199
2200 2005-09-22 Maarten Brock <sourceforge.brock AT dse.nl>
2201
2202         * src/mcs51/gen.c (genMinus): fix for undetected bug introduced 3 months
2203           ago by me
2204         * support/regression/tests/addsub.c: added test for the bug
2205
2206 2005-09-21 Raphael Neider <rneider AT web.de>
2207
2208         * device/include/pic16/pic18f1220.h,
2209           device/lib/pic16/libdev/pic18f1220.c: added ECCPAS sfr and bitfield
2210         * device/lib/pic16/Makefile.rules: added missing opening paren
2211         * src/pic16/gen.c (pic16_genNot,pic16_genCpl): removed as these
2212           are provided in genutils.c,
2213           (genUminusFloat,genUminus,genCmpEq): added asserts on different
2214           operand/result sizes,
2215           (genCmp): assert on NULL pointers first, then check deref'ed values
2216         * src/pic16/genutils.c (pic16_genCpl): fixed for different operand/
2217           result size
2218
2219 2005-09-18 Raphael Neider <rneider AT web.de>
2220
2221         * src/pic16/gen.c (genFarPointerGet,genFarPointerSet): removed
2222           as these are now unused,
2223           (genPointerGet,genPointerSet): handle FPOINTERs like POINTERs
2224         * src/pic16/pcode.c (pic16_symIsSpecial): assume REG_TMPs to be
2225           local, avoids uninitialized pointer dereference on r->name
2226         * src/pic16/ralloc.c (newReg): fixed indentation
2227
2228 2005-09-13 Maarten Brock <sourceforge.brock AT dse.nl>
2229
2230         * src/SDCCval.c (constVal): fixed bug 730366
2231         * support/Util/SDCCerr.c,
2232         * support/Util/SDCCerr.h: added warning W_INVALID_INT_CONST
2233
2234 2005-09-10 Maarten Brock <sourceforge.brock AT dse.nl>
2235
2236         * as/mcs51/lkmem.c (summary2): fixed report for absolute areas (bug 1210220)
2237
2238 2005-09-09 Maarten Brock <sourceforge.brock AT dse.nl>
2239
2240         * src/mcs51/peeph.def (241.x): fixed bug when comparing generic pointers
2241
2242 2005-09-08 Maarten Brock <sourceforge.brock AT dse.nl>
2243
2244         * as/hc08/lkaomf51.c (OutputName): made name unsigned char,
2245           (hex2dec): made hex_digit unsigned char, removed ascii dependance
2246         * as/mcs51/lkaomf51.c (OutputName): made name unsigned char,
2247           (hex2dec): made hex_digit unsigned char, removed ascii dependance
2248         * as/mcs51/lkarea.c (lnkarea2): sort absolute areas to the front
2249         * packihx/packihx.c (hexDigit): made c unsigned char
2250         * as/mcs51/lklibr.c (fndsym),
2251         * link/z80/lkgb.c (gb),
2252         * link/z80/lklibr.c (fndsym),
2253         * link/z80/lkrloc.c (relr),
2254         * sim/ucsim/libltdl/ltdl.c (load_deplibs, try_dlopen),
2255         * src/SDCC.lex (checkCurrFile, process_pragma),
2256         * src/SDCCglue.c (spacesToUnderscores),
2257         * src/SDCCmain.c (setParseWithComma, processFile),
2258         * src/asm.c (tvsprintf, printCLine),
2259         * src/avr/gen.c (emitcode, aopPut),
2260         * src/ds390/gen.c (emitcode),
2261         * src/hc08/gen.c (emitcode, emitinline),
2262         * src/mcs51/gen.c (emitcode, genInline),
2263         * src/pic/pcodepeep.c (cvt_extract_destination, cvt_extract_status,
2264           tokenizeLineNode),
2265         * src/pic/ralloc.c (debugLog),
2266         * src/pic16/pcodepeep.c (cvt_extract_destination, cvt_extract_status,
2267           tokenizeLineNode),
2268         * src/pic16/ralloc.c (debugLog),
2269         * src/z80/main.c (_process_pragma):
2270            made all ctype.h function calls safe
2271         * src/SDCCopt.c: include math.h for fabs
2272         * src/SDCCpeeph.c: added macros ISCHARDIGIT, ISCHARSPACE and ISCHARALNUM
2273           and used them throughout the code to make ctype.h function calls safe
2274         * src/ds390/main.c (asmLineNodeFromLineNode),
2275         * src/mcs51/main.c (asmLineNodeFromLineNode): made p unsigned char*
2276         * src/pic/gen.c (DEBUGpic14_emitcode, pic14_emitcode): made lbp
2277            unsigned char*
2278         * src/pic/pcode.c (mnem2key): made mnem unsigned char*,
2279           (newpCodeAsmDir): made ctype.h function calls safe
2280         * src/pic16/gen.c (pic16_emitpcomment, DEBUGpic16_emitcode,
2281           pic16_emitcode):  made lbp unsigned char*
2282         * src/pic16/pcode.c (mnem2key): made mnem unsigned char*,
2283           (pic16_newpCodeAsmDir): made ctype.h function calls safe
2284         * src/xa51/gen.c (emitcode),
2285         * src/z80/gen.c (_emit2): made lbp unsigned char*
2286         * support/Util/MySystem.c (split_command): made cmd_line and p unsigned
2287            char*
2288
2289 2005-09-05 Raphael Neider <rneider AT web.de>
2290
2291         * src/pic16/ralloc.c (pic16_allocDirReg): use device specific
2292           access bank splitpoint
2293
2294 2005-09-05 Raphael Neider <rneider AT web.de>
2295
2296         * device/lib/pic16/libc/Makefile: added (missing) string to SUBDIRS
2297
2298 2005-09-03 Maarten Brock <sourceforge.brock AT dse.nl>
2299
2300         * .version: changed to version 2.5.3
2301         * doc/sdccman.lyx: changed version to 2.5.3,
2302           documented --codeseg and --constseg and pragma codeseg and constseg,
2303           documented bit parameters (reentrant) and bit returning
2304         * src/SDCCicode.c (geniCodeReceive): fixed (possible) bug generating
2305            currFunc->recvSize, but is this ok for all ports?
2306           (ast2iCode): result of ~ on unsigned char must be cast to int for
2307            bool to work
2308         * src/SDCCmem.c (allocGlobal, allocLocal): don't put bit returning
2309           function pointers in bit space
2310         * src/SDCCsymt.c (checkSClass): allow bit returning function pointers,
2311           (processFuncArgs): call port.reg_parm() with reentrancy info
2312         * src/port.h,
2313         * src/avr/main.c,
2314         * src/ds390/main.c,
2315         * src/hc08/main.c,
2316         * src/pic/main.c,
2317         * src/pic16/main.c,
2318         * src/xa51/main.c,
2319         * src/z80/main.c: port.reg_parm prototype extended with
2320           "bool reentrant" parameter
2321         * src/mcs51/main.c (_mcs51_regparm): use parameter reentrant instead of
2322           options.stackAuto for allocating bit register parameters
2323         * src/mcs51/gen.c (genNot): optimized complementing direct bit,
2324           (genSend): set BitBankUsed if it is,
2325           (selectRegBank): factored out of genCall for use in genPcall,
2326           (genCall): removed redundant dtype assignmen, use selectRegBank,
2327           (genPcall): handle returning in Carry properly, save in F0 if needed,
2328           (genReceive): handle bit register parameters
2329         * src/mcs51/ralloc.c (updateRegUsage): update BitBankUsed along the way,
2330           (mcs51_assignRegisters): enable bit registers for all reentrant
2331            functions and don't set BitBankUsed unconditionally
2332         * src/mcs51/peeph.def (177.d): fixed bug if %2==%3
2333         * support/regression/tests/bitvars.c: enable tests for SDCC_STACK_AUTO
2334         * support/regression/tests/funptrs.c: added tests for BOOL and for return
2335
2336 2005-08-27 Borut Razem <borut.razem AT siol.net>
2337
2338         * device/lib/Makefile.in: cp on sparc-solaris (SunOS) and on
2339         ppc-osx (Darwin) does not support -u option. It seems that it is
2340         supported only on Linux - GNU cp
2341
2342 2005-08-25 Borut Razem <borut.razem AT siol.net>
2343
2344         * sim/ucsim/gui.src/serio.src/Makefile.in,
2345           sim/ucsim/s51.src/Makefile.in, sim/ucsim/avr.src/Makefile.in,
2346           sim/ucsim/z80.src/Makefile.in, sim/ucsim/hc08.src/Makefile.in,
2347           sim/ucsim/xa.src/Makefile.in: install -s changed to 2 steps:
2348           install and strip, since the strip at /usr/ccs/bin should be used
2349           on solaris
2350
2351 2005-08-24 Borut Razem <borut.razem AT siol.net>
2352
2353         * clean.mk, device/lib/clean.mk: find on sparc-solaris does not support -maxdepth option
2354
2355 2005-08-23 Bernhard Held <bernhard AT bernhardheld.de>
2356
2357         * src/SDCCopt.c (convertToFcall): fixed modulus with divisors 1 and
2358         ffffffffu
2359
2360 2005-08-23 Maarten Brock <sourceforge.brock AT dse.nl>
2361
2362         * as/mcs51/aslink.h: completed lkrloc.c prototypes
2363         * as/mcs51/lkmain.c (link_main): fixed warning
2364         * device/include/stdbool.h: ds390 has no advanced bit support yet
2365         * src/SDCC.y: use SPEC_SHORT and renamed _signed to b_signed
2366         * src/SDCCsymt.c: use SPEC_SHORT and renamed _signed to b_signed
2367         * src/SDCCsymt.h (struct specifier): renamed _xxx bitfields to b_xxx
2368           and updated their macros
2369         * src/SDCCval.c (constVal): updated comment for renamed b_long
2370
2371 2005-08-22 Maarten Brock <sourceforge.brock AT dse.nl>
2372
2373         * as/mcs51/asdata.c: changed ctype['['] to BINOP
2374         * as/mcs51/asexpr.c (expr): added case '[' for bit access in bdata,
2375           (term): abused bit 15 of s_addr to indicate bit-addressable bytes,
2376           (oprio): set priority for '['
2377         * as/mcs51/aslink.h: added define R_BIT, and prototypes for adb_bit
2378            and adb_24_bit
2379         * as/mcs51/asm.h: added defines R_BIT and S_BIT
2380         * as/mcs51/lkarea.c (lnksect2): use T for seg BIT_BANK and overlay it
2381         * as/mcs51/lkdata.c: changed ctype['['] to BINOP
2382         * as/mcs51/lkmain.c (Areas51): rel2 contains 12 (=C) areas now,
2383           added overlayable BIT_BANK area
2384         * as/mcs51/lkmem.c (summary): add BIT_BANK to BSEG_BYTES in the report,
2385           (summary2): explain 'T' in legenda
2386         * as/mcs51/lkrloc.c: replaced old K&R style,
2387           (relr): added R_BIT processing,
2388           (errmsg): added "Bit-addressable relocation error",
2389           (adb_bit): added for converting from byte- to bit-addressable space,
2390           (adb_24_bit): added for converting from byte- to bit-addressable space
2391         * device/include/stdbool.h: changed BOOL to __bit for mcs51 as it can be
2392            used in reentrant functions now even as return value
2393         * device/lib/_gptrput.c (_gptrput): removed obsolete code
2394         * src/SDCCast.c (resultTypePropagate): also propagate AND_OP and OR_OP,
2395           (decorateType): case '!', GETHBIT, AND_OP, OR_OP: result in bool or char
2396         * src/SDCCglobl.h: added indicator BitBankUsed
2397         * src/SDCCglue.c (glue): emit area BIT_BANK with byte 'bits' and equ's for
2398            the bit registers b0-b7
2399         * src/SDCCicode.c (operandFromSymbol): removed IS_BITVAR check,
2400           (geniCodeCast): fixed bug 1263853,
2401           (geniCodeLogicAndOr): put result in bool or char,
2402           (geniCodeReceive): added parameter func for accessing the return type,
2403           (geniCodeFunctionBody): pass func to geniCodeReceive
2404         * src/SDCCmain.c: added indicator BitBankUsed
2405         * src/SDCCmem.c (allocLocal): explicitly set sclass for V_BIT
2406         * src/SDCCsymt.c (newBoolLink): added for creating a bool/bit,
2407           (checkSClass): don't put automatic bool/bit on stack,
2408           (checkFunction): removed check on function cannot return bit
2409         * src/SDCCsymt.h: added newBoolLink prototype
2410         * src/mcs51/gen.c (rb1regs): added bit registers,
2411           (movc): created for assigning to carry,
2412           (pushReg, popReg): created for pushing registers,
2413           (sameRegs): check both AOP_REG and AOP_CRY types,
2414           (aopOp): handle bit registers,
2415           (aopPut): optimization no self-assign,
2416           (saveRegisters): push reg->base (bits) only once for bit registers,
2417            and use pushReg,
2418           (unsaveRegisters): pop reg->base only once and use popReg,
2419           (assignResultValue): added parameter func and return in carry for bits,
2420           (genIpush): optimization no reload in A if not changed,
2421           (genSend): bit parameters in reentrant functions are passed in bit
2422            registers by first assigning to bits in B, then save registers and
2423            copy B to bits,
2424           (genCall): handle returning in Carry properly, save it in F0 if needed,
2425           (genPcall): updated assignResultValue call, this is not safe yet for bit
2426            returning function !!!
2427           (genFunction): don't generate equ's for bit registers and use pushReg,
2428           (genEndFunction): take care of bit returning functions and use popReg,
2429           (genRet): return bit in Carry,
2430           (genIfx): optimize bit registers and other directly addressable bits,
2431           (genReceive): updated assignResultValue call
2432         * src/mcs51/main.c (_mcs51_reset_regparm): added regBitParmFlg,
2433           (_mcs51_regparm): allow passing of upto 8 bit parameters in bit
2434            registers when using stack-auto
2435         * src/mcs51/ralloc.c (_G): added allBitregs,
2436           (regs8051): added the bit registers,
2437           (createStackSpil): use macro IS_BIT,
2438           (getRegBit): added to allocate a bit register, else spill,
2439           (getRegBitNoSpil): added to allocate a bit register, else a gpr,
2440           (updateRegUsage): factored out to ease stepping while debugging,
2441           (serialRegAssign): use updateRegUsage, only spill bits if necessary,
2442            also allocate bit registers,
2443           (fillGaps): handle bit registers,
2444           (findAllBitregs): added to create bit vector with all bit registers,
2445           (mcs51_allBitregs): returns this bit vector,
2446           (mcs51_assignRegisters): when using stack-auto use bit registers for
2447            passing parameters and creating local variables
2448         * src/mcs51/ralloc.h: added B0_IDX..B7_IDX and prototype mcs51_allBitregs
2449
2450 2005-08-22 Borut Razem <borut.razem AT siol.net>
2451
2452         * device/lib/Makefile.in: replaced find option -or with -o
2453           to make it run on solaris
2454
2455 2005-08-22 Raphael Neider <rneider AT web.de>
2456
2457         * src/pic16/gen.c (pic16_loadFromReturn): added check for AOP_PCODE,
2458           fixes #1265442 (crash on Solaris)
2459
2460 2005-08-20 Borut Razem <borut.razem AT siol.net>
2461
2462         * configure, configure.in: added tests for libsocket and libnsl libraries,
2463           requred by sdcdb on sparc-solaris; generate support/regression/Makefile
2464           from support/regression/Makefile.in
2465         * support/regression/Makefile.in: added
2466         * device/lib/pic16/Makefile.common.in: force make to use bash shell
2467         * sim/ucsim/libtool: regenerated on sparc-solaris
2468         * sim/ucsim/avr.src/Makefile.in, sim/ucsim/hc08.src/Makefile.in,
2469           sim/ucsim/s51.src/Makefile.in, sim/ucsim/xa.src/Makefile.in,
2470           sim/ucsim/z80.src/Makefile.in: removed GNU ld specific linker options
2471           -Wl,--start-group and -Wl,--end-group to enable ucsim compilation on
2472           sparc-solaris, which doesn't use GNU ld linker
2473         * device/lib/Makefile.in: cp on sparc-solaris (SunOS) does not support -u option
2474         * as/Makefile: find on sparc-solaris does not support -maxdepth option
2475
2476 2005-08-19 Maarten Brock <sourceforge.brock AT dse.nl>
2477
2478         * src/mcs51/peeph.def: updated comments
2479
2480 2005-08-16 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
2481
2482         * device/lib/_gptrget.c,
2483         * device/lib/_gptrput.c: slightly shorter
2484         * doc/sdccman.lyx: incremented version
2485         * src/mcs51/peeph.def: moved peephole comments to the line of first
2486           change to better keep line correlation, reanimated 186.e
2487         * src/mcs51/peeph.def: renamed similar peepholes by using suffixes
2488
2489 2005-08-16 Slade Rich <slade_rich AT users.sourceforge.net>
2490
2491         * src/pic/pcode.c : Pasted ".line" assembly directives patch from
2492           David Saxton with quotes around file name.
2493
2494 2005-08-15 Borut Razem <borut.razem AT siol.net>
2495
2496         * support/regression/tests/bitfields.c, support/regression/tests/bitvars.c,
2497           support/regression/tests/bitwise.c, support/regression/tests/literalop.c,
2498           support/regression/tests/rotate.c, support/regression/tests/zeropad.c:
2499           make tests run on x86_64 platform
2500
2501 2005-08-13 Raphael Neider <rneider AT web.de>
2502
2503         * device/lib/pic16/Makefile.subdir: weakened clean-intermediate rule
2504           as it might be executed DURING a build (parallel make is wonderful)
2505
2506 2005-08-13 Raphael Neider <rneider AT web.de>
2507
2508         * device/lib/Makefile.in (port-specific-objects-pic16):
2509           revert to cp $(PORT)/bin/*.* $(PORTDIR)
2510         * device/lib/pic16/Makefile: added .PHONY targets, removed builddir
2511           dependency
2512         * device/lib/pic16/Makefile.rules: build subdirs before creating
2513           the library, removed builddir rule, create $(builddir) early in
2514           recurse rule, use empty recurse rule for leaf directories
2515         * device/lib/pic16/Makefile.subdir: added phony targets, ignore
2516           mkdir errors (race condition), removed duplicate suffix "hex"
2517           from clean rules
2518         * device/lib/pic16/libdev/Makefile: recursive make via + and $(MAKE)
2519         * device/lib/pic16/libio/Makefile: create sub-make's builddir early,
2520           prevents mkdir -p from aborting on Alpha
2521
2522 2005-08-12 Raphael Neider <rneider AT web.de>
2523
2524         * src/pic16/glue.c (pic16_print(G)PointerType): do not flush
2525           db-statements in order to allow for arrays of pointers in code
2526           sections to be placed without interspersed 0-padding, fixes
2527           bug #1256215
2528         * (emitStatistics): fixed division by zero for pic18f1220
2529         * src/pic16/pcode.c: buffer (up to) 12 DB directives to allow for
2530           unpadded writing of 8-bit, 16-bit, 24-bit and 32-bit values
2531         * (pic16_emitDS): respect DB_ITEMS_PER_LINE
2532         * (pic16_pCodeConstString): keep track of already emitted string
2533           literals to prevent "duplicate definitions of symbol _str_NR"
2534         * src/pic16/ralloc.c (pic16_allocRegByName): removed not so helpful
2535           debug message
2536         * device/lib/Makefile.in: ignore failing PIC16 library builds
2537         * device/lib/pic16/Makefile: do not build if gputils are missing
2538         * device/lib/pic16/Makefile.common.in: do not enforce MAKEFLAGS=-s
2539
2540 2005-08-10 Raphael Neider <rneider AT web.de>
2541
2542         * device/lib/Makefile.in: fixed copying pic16 libraries (broken by
2543           my last commit)
2544
2545 2005-08-10 Raphael Neider <rneider AT web.de>
2546
2547         * src/*.c, src/pic16/{gen.c,glue.c,main.c}: applied Vangelis
2548           Rokas' patch to add the new fixed point type "__fixed16x16"
2549         * device/lib/pic16/libsdcc/fixed16x16: added Vangelis' support
2550           functions for __fixed16x16 arithmetics
2551         * device/lib/pic16: reimplemented the build system to support
2552           a separate build directory, better handling of libio (create
2553           the library in a separate subdir for each architecture) and
2554           easier configuration (centralized in Makefile.common)
2555
2556 2005-08-07 Raphael Neider <rneider AT web.de>
2557
2558         * src/pic16/gen.c (genrshTwo): fixed sign extension
2559         * src/pic16/device.c: added pic18f2320, 4220 and 4320
2560         * device/include/pic16/pic18f2220.h: changed some bit definitions,
2561           added T0CONbits
2562         * device/include/pic16/pic18f4220.h: NEW, header for
2563           pic18f4220 and pic18f4320
2564         * device/include/pic16/pic18fregs.h: added new devices,
2565           embraced Nop(), ClrWdt(), Sleep() and Reset() with do {} while(0)
2566         * device/include/pic16/signal.h: resolved name clashes
2567           on bit definitions, added DEF_HANDLER2(sig1,sig2,handler)
2568           to also allow testing for interrupt enable bits, added
2569           comments on how to use the macros
2570         * device/lib/pic16/libdev/pic18f2220.c: added T0CONbits
2571         * device/lib/pic16/libdev/pic18f{2320,4220,4320}.c: NEW,
2572           register definitions for the devices
2573         * device/lib/pic16/pics.all: added new devices
2574         * device/lib/pic16/libc/stdlib/calloc.c: fixed zeroing
2575           allocated memory
2576         * device/lib/pic16/libc/stdlib/memfree: do not count
2577           the block header as free memory
2578         * device/lib/pic16/libc/stdlib/memmisc.c (_initHeap):
2579           simplified and added missing end-of-blocklist-marker
2580           (reported by Peter Onion, fixes #1252814)
2581         * (_mergeHeapBlock): fixed loop condition
2582         * device/lib/pic16/libc/stdlib/realloc.c: return NULL for
2583           len==0, restructured code
2584         * device/lib/pic16/libc/stdlib/{malloc,memfreemax}.c: cleaned
2585           up a bit, reduced bitfield accesses, prevent endless loops
2586           in case of heap corruption
2587         * device/lib/pic16/libc/stdlib/x_ftoa.c: disabled
2588           "unreferenced arguments/must return a value" warnings
2589         * device/lib/pic16/libio/usart/ubaud.c (usart_baud):
2590           replaced BAUDREG with SPBRG
2591         * device/lib/pic16/libsdcc/lregs/{lrrest.c,lrst.c},
2592           device/lib/pic16/debug/gstack/gstack.c: replaced
2593           _naked, _asm, _endasm with __naked, __asm, __endasm
2594
2595 2005-08-05 Raphael Neider <rneider AT web.de>
2596
2597         * src/pic16/gen.c (pic16_aopGet): fixed handling of offsets in
2598           AOP_PCODE operands, fixes multibyte union-bitfield-accesses
2599
2600 2005-08-05 Borut Razem <borut.razem AT siol.net>
2601
2602         * device/lib/Makefile.in: added missing ';'
2603         * configure: removed ^M characters
2604
2605 2005-08-04 Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
2606
2607         * device/include/mcs51/at89c51ed2.h, device/include/mcs51/p89v51rd2.h,
2608           device/include/mcs51/at89s53.h: changed to GNU Lesser General Public
2609           License
2610
2611 2005-08-04 Borut Razem <borut.razem AT siol.net>
2612
2613         * configure.in: pic16 libraries build 2nd try - enable running
2614           configure in device/lib/pic16
2615         * configure: regenerated from configure.in
2616         * device/lib/Makefile.in: create $(PORT)/bin directory
2617
2618 2005-08-03 Raphael Neider <rneider AT web.de>
2619
2620         * src/pic16/gen.c (pic16_derefPtr): NEW, single place
2621           to get/set values via pointers
2622         * (genUnpackBits,genPackBits): changed detection of
2623           ptr->bitfield vs. sym.bitfield, fixed access via generic
2624           pointers, removed dead (wrong) code for multibyte bitfields
2625         * (genNearPointerGet, genGenPointerGet): removed useless code,
2626           fixed bitfield detection, fixes #1250594
2627         * (genNearPointerSet): removed useless code
2628         * src/pic16/gen.h: renamed pic16_emitpcode to pic16_emitpcode_real
2629           and introduced macro pic16_emitpcode that conditionally emits
2630           the origin of the following pCode (useful for debugging SDCC)
2631         * src/pic16/pcode.c: changed (and disabled) some debug outputs
2632         * (createDefmap): fixed handling of LFSR for --optimize-df
2633
2634 2005-08-02 Borut Razem <borut.razem AT siol.net>
2635
2636         * device/lib/Makefile.in: pic16 libraries build enabled since
2637           gputils-0.13.2 are now localy installed at sourceforge's compile farm
2638
2639 2005-08-02 Raphael Neider <rneider AT web.de>
2640
2641         * src/pic16/gen.c (genPackBits): removed deprecated warning
2642         * (genGenPointerSet): fixed bitfield detection
2643
2644 2005-08-02 Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
2645
2646         * device/include/mcs51/msm8xc154s.h: Removed PT2 definition, now in 8052.h.
2647
2648 2005-07-31 Raphael Neider <rneider AT web.de>
2649
2650         * device/lib/pic16/libdev/pic18f458.c,
2651           device/include/pic16/pic18f458.h: added missing T0CONbits
2652
2653 2005-07-29 Maarten Brock <sourceforge.brock AT dse.nl>
2654
2655         * device/include/mcs51/msm8xc154s.h: added, thanks to Matthias Arndt
2656
2657 2005-07-28 Maarten Brock <sourceforge.brock AT dse.nl>
2658
2659         * src/mcs51/gen.c (operandsEqu): fixed bug 1246687
2660
2661 2005-07-23 Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
2662
2663         * device/include/mcs51/at89c51ed2.h: added.
2664
2665 2005-07-23 Raphael Neider <rneider AT web.de>
2666
2667         * src/pic/gen.h: added emitpcode macro for debugging
2668         * src/pic/gen.c (emitpcode): renamed to emitpcode_real
2669           and replace by macro adding debug information on demand
2670         * (genNot): fixed to C semantics (!0 = 1; !x = 0 iff x != 0)
2671         * (gencjne): tried to fix; replaced with correct (slower) code
2672         * (gen{Unp,P}ackBits): fixed single bit access
2673         * src/pic/pcode.c (AnalyzepCode): fixed DFPRINTF argument
2674         * src/pic/pcodepeep.c (pCodeSearchCondition): fixed finding
2675           previous instruction
2676         * src/pic/pcoderegs.c (regIsSpecial): NEW, check whether a
2677           register has to be handled with care (forbidding movement
2678           of assignments/uses, removing assignments completely, ...)
2679         * (pCodeOptime2pCodes): make use of regIsSpecial
2680         * added lots of debugging output (commented out)
2681         * src/pic/rallloc.c (deassignLRs): prevent operand registers
2682           from being reused as result UNLESS it is known to work
2683
2684 2005-07-23 Maarten Brock <sourceforge.brock AT dse.nl>
2685
2686         * support/Util/dbuf.h: include <stddef.h> for size_t
2687         * .version: changed to version 2.5.2
2688
2689 2005-07-23 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
2690
2691         * src/SDCCloop.c (loopInvariants): fixed bug #1234048
2692
2693 2005-07-22 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
2694
2695         * src/hc08/gen.c (genMinus): fixed bug #1241835,
2696           (genModOneByte): removed needless psha/pula
2697
2698 2005-07-22 Raphael Neider <rneider AT web.de>
2699
2700         * src/SDCCmain.c (linkEdit): initialized linkerScriptFileName,
2701           have PIC14 handled like PIC16, fixes broken pic14 linker calls
2702         * src/pic/gen.c (resolveIfx): do not "invent" labels
2703         * (genSkipc): changed to positive logic
2704         * (genSkipCond): removed as no longer needed
2705         * (pic14_mov2w_regOrLit,genCmp): NEW, replacement for buggy version,
2706           backport from PIC16
2707         * (genLeftShift): check operands are in different registers
2708         * src/pic/genarith.c (genPlus): replaced INCF with ADDLW as
2709           INCF does not update CARRY...
2710         * src/pic/main.c: fixed _linkCmd
2711         * src/pic/pcode.c (unlinkpCode): added inactive code
2712         * src/pic/ralloc.c (deassignLRs): keep arguments to shift operations
2713           alive (do not assign result and operand overlapping registers)
2714
2715 2005-07-22 Raphael Neider <rneider AT web.de>
2716
2717         * src/pic/device.c (dump_sfr): replaced register declaration with
2718           call to emitSymbolToFile() to avoid duplicate symbols
2719         * (assignRelocatableRegisters): do not declare external symbols
2720         * src/pic/ralloc.c (allocNewDirReg): fixed to get size of arrays
2721           right (take size of type, not etype)
2722         * (allocDirReg): fixed call to allocNewDirReg() to pass OP_SYM_TYPE
2723         * (writeUsedRegs): also dump dynDirectRegs (e.g. local variables)
2724         * (packRegsForAccUse): disabled assignment of WREG as
2725           the result reg to prevent occurence of just fixed #1235003,
2726           fixes #1242954
2727         * src/pic/glue.c (emitSymbolToFile): NEW, central place to declare
2728           symbols (avoids duplicate symbols in .asm file)
2729         * (pic14emitRegularMap): use emitSymbolToFile()
2730         * src/pic/gen.c (aopOp): fixed spillLocation handling
2731         * (gen{Unp,P}ackBits): fixed acquiring bit-operands
2732         * (genDataPointerSet): removed unneccessary variables/output
2733
2734 2005-07-22 Maarten Brock <sourceforge.brock AT dse.nl>
2735
2736         * as/mcs51/lkarea.c: enlarged codemap for banked memory
2737         * device/lib/mcs51/crtbank.asm: added # to 0x0F
2738
2739 2005-07-21 Raphael Neider <rneider AT web.de>
2740
2741         * src/pic/gen.c (aopOp): do not generate AOP_ACC operands as pic14
2742           architecture cannot handle them efficiently, fixes bug #1235003
2743         * src/pic16/device.c (pic16_dump_{u,i}section,pic16_dump_int_registers):
2744           check for empty sets before using them (fixes bug #1232190)
2745
2746 2005-07-19 Maarten Brock <sourceforge.brock AT dse.nl>
2747
2748         * as/mcs51/lkarea.c (lnkarea, lnkarea2): improved BSEG size calculation,
2749           (lnksect2): generate warnings for memory overlap
2750         * src/SDCC.lex (doPragma, process_pragma): added pragma's codeseg and
2751           constseg to set the name of these segments so you can instruct the linker
2752           to place them in banks
2753         * src/SDCCast.c (decorateType): use new macro IS_FUNCPTR()
2754         * src/SDCCglobl.h: added MODEL_HUGE to enum,
2755           added code_seg and const_seg to options
2756         * src/SDCCglue.c (emitMaps): use options.const_seg,
2757           (createInterruptVect): put interrupt vectors in segment HOME,
2758           (glue): put HOME before static segment and put the main glue in HOME,
2759           (glue): use options.code_seg
2760         * src/SDCCicode.c (geniCodeCall): use new macro IS_FUNCPTR()
2761         * src/SDCCmain.c: added option --codeseg and --constseg to set the name of
2762           these segments so you can instruct the linker to place them in banks
2763           (linkEdit): use code_loc for HOME segment which should be the first
2764           segment in code memory now
2765         * src/SDCCmem.c: fixed more stuff like bug 1238386
2766         * src/SDCCsymt.c (getSize): use generic pointer size for banked functions,
2767           (changePointer): don't change function pointers to code pointers for
2768           banked functions,
2769           (compareType): added exceptional check for banked function pointers
2770         * src/SDCCsymt.h: changed IFFUNC_ISBANKEDCALL, added IS_FUNCPTR
2771         * src/hc08/main.c (_hc08_genAssemblerPreamble): put HOME first, put CSEG
2772           after static in code memory
2773         * src/mcs51/gen.c: added aopLiteralLong prototype,
2774           (aopForSym): use getSize for functions,
2775           (genCall): generate banked calls over one trampoline __sdcc_banked_call
2776           in HOME with lsb of address in r0, msb in r1 and bank in r2, use
2777           -Wl-bBANKSEG=0xbbaaaa option to set the address (aaaa) and bank (bb) of
2778           the segment,
2779           (genPcall): use call for literal function pointers and generate banked
2780           calls over the one trampoline so there's only one place for the user to
2781           modify according to his/hers hardware,
2782           (genEndFunction): jump to __sdcc_banked_ret in HOME for banked functions,
2783           (genPlusIncr): moved check icount>4 beyond inc dptr optimization
2784         * src/mcs51/main.c: added keyword banked,
2785           (_mcs51_genExtraAreas): put HOME first followed by GSINIT, STATIC and CSEG
2786         * support/Util/SDCCerr.c,
2787         * support/Util/SDCCerr.h: added E_BANKED_WITH_CALLEESAVES, registers are
2788           needed for passing the bank and address to the trampoline
2789         * device/lib/mcs51/crtbank.asm: added for bankswitching
2790         * device/lib/mcs51/Makefile: added crtbank
2791
2792 2005-07-16 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
2793
2794         * src/SDCCcse.c (algebraicOpts): fixed loss of volatility
2795           for fields at offset 0 of a struct or union as reported
2796           on 2005-07-07 in the developer mailing list.
2797
2798 2005-07-15 Maarten Brock <sourceforge.brock AT dse.nl>
2799
2800         * src/SDCCmem.c: fixed bug 1238386
2801
2802 2005-07-12 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
2803
2804         * src/mcs51/peeph.def: added labelrefcounting for peepholes
2805           (patch #1144962), added peephole 300, enabled 259.x
2806         * doc/sdccman.lyx: removed screenshot and provided link instead
2807
2808 2005-07-05 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
2809
2810         * doc/sdccman.lyx: added section about debugging with ddd
2811         * doc/figures/ddd_example.eps: screenshot of debugging session
2812
2813 2005-07-04 Raphael Neider <rneider AT web.de>
2814
2815         * src/pic/gen.c (genPointerGet): handle pointers to CONST values
2816           like CODE pointers, fixes #1115683
2817         * src/pic/pcode.c (DoBankSelect): forget LastRegIdx during function
2818           call, fixes bugs #1232211, #1228110,
2819           fixed wrong casts to pCodeFlow from pCodeInstructions
2820
2821 2005-07-04 Raphael Neider <rneider AT web.de>
2822
2823         * src/pic/gen.c (popGet): changed assert to allow for
2824           bit operands
2825         * (popGetAddr): changed signature to provide
2826           an additional index, patched all call sites
2827         * (genCmpEq): handle literal-like operands correctly
2828         * (genAddrOf): added sanity checks on __code/__data pointers
2829         * (genAssign): added handling of symbols from __code section
2830         * (gencjne): do not generate code for comparisons whose result
2831           is neither stored nor used, fixes bug #1171114
2832         * (AccLsh, AccRsh): operate on operand instead of WREG
2833         * (shift{Left,Right}_Left2ResultLit): NEW, size independant
2834           replacement for Shift{LR}{12}Left2Result; shift (byte/int/long)
2835           by known count
2836         * rewrote complete shift-by-literal logic, commented unused
2837           functions out
2838         * (genConstPointerGet): get multiple bytes (if result size > 1),
2839           fixed handling of non-immediate addresses
2840         * (genPointerGet): handle CODE pointers like CONST pointers
2841         * (genpic14Code): insert C-SRC lines as Cource-pCodes
2842         * ({aop,op}_isLitLike): NEW, single place to decide whether an
2843           operand is to be treated as a literal or not
2844         * (mov2w,genPcall,genCmpEq),
2845           src/pic/genarith.c: use aop_isLitLike() to decide between
2846           literal/register contents
2847         * (addSign): added missing offset
2848         * src/pic/gen.h: remove newline after FENTRY/FEXIT comments,
2849           only emit comment in debug-mode,
2850           use {aop,op}_isLitLike throughout the file
2851         * src/pic/glue.c: fix initializers for pointers (work in progress)
2852         * src/pic/pcode.c (get_op): honor index on _const symbols
2853         * ({reset,dump}pCodeStatistics): NEW, estimate code size
2854         * (dumppBlock): added pCode size estimation
2855         * src/pic/ralloc.c (deassignLRs,serialRegAssign,packRegisters):
2856           check for IS_SYMOP before OP_SYMBOL'ing
2857         * fixed indentation, compacted switch-statements
2858         * (allocReg): find free register and allocate it instead of
2859           allocating new registers all the time
2860         * (deassignLRs): prevent POINTER_GET's from being assigned the same
2861           registers as its operands (necessary only for multibyte GETs)
2862
2863 2005-07-01 Raphael Neider <rneider AT web.de>
2864
2865         * src/pic/gen.h: added prototypes emitpComment, popGetAddr and
2866           debugging .asm-output macros FENTRY + FEXIT
2867         * src/pic/gen.c (Safe_vsnprintf): NEW, is there a more generic
2868           way... I wonder...
2869         * (emitpComment): NEW, printf to pCode
2870         * (popGet): added assert on too large offsets, fixed PO_IMMEDIATE's
2871           offset handling
2872         * (popGetAddr): NEW, variant of popGet to access an immediates
2873           high(er) bytes instead of the n'th byte of memory they reference,
2874           replaced popGet with popGetAddr where neccessary
2875         * (genDataPointerGet): reactivated and fixed implementation
2876         * (genNearPointerGet): enabled call to genDataPointerGet, fixes array-
2877           accesses
2878         * (genDataPointerSet): fixed multibyte assignments
2879         * (genpic14Code): fixed --i-code-in-asm handling
2880         * src/pic/genarith.c: fixed PO_IMMEDIATE issue using popGetAddr,
2881         * (genPlus): fixed index-out-of-bounds error
2882         * src/pic/pcode.c (get_op): fixed PO_IMMEDIATE's index/offset handling
2883         * src/pic/ralloc.c: added debugging output macro FENTRY2
2884         * (spillThis): fixed indentation, enbraced for-body for clarity
2885         * (rematStr): commented out as now unused
2886         * (regTypeNum): commented out special spill case (overwrites
2887           arbitrary values)
2888         * fixes bugs #1229346, #1216476 (both arrays) and #1115667 (SIGSEGV)
2889
2890 2005-06-30 Maarten Brock <sourceforge.brock AT dse.nl>
2891
2892         * doc/sdccman.lyx: documented sfr16/sfr32,
2893           added example for using storage class with function pointers
2894         * src/mcs51/gen.c (genPlusIncr): optimized small offsets from dptr
2895
2896 2005-06-28 Maarten Brock <sourceforge.brock AT dse.nl>
2897
2898         * device/lib/_gptrget.c: also push/pop _PSBANK, added # to 0x03
2899         * device/lib/_itoa.c,
2900         * device/lib/_ltoa.c: optimized codesize
2901         * src/SDCCsymt.c (checkSClass): added sanity check for sfr at addresses,
2902           but don't know how to suppress the double warning.
2903         * src/mcs51/gen.c (genPlusIncr): fixed bug when incrementing volatile int's
2904         * support/Util/SDCCerr.c,
2905         * support/Util/SDCCerr.h: added warning W_SFR_ABSRANGE for sanity check
2906
2907 2005-06-27 Maarten Brock <sourceforge.brock AT dse.nl>
2908
2909         * as/mcs51/asexpr.c (expr): disabled warning "not in .flat24 mode",
2910           fixed old K&R prototypes
2911         * as/mcs51/asout.c (outrb): always output as if generating 24bit addresses
2912         * device/lib/_gptrget.c,
2913         * device/lib/_gptrgetc.c,
2914         * device/lib/_gptrput.c: changed versions for new memory indicator values,
2915           also new versions for small generic pointers and banked generic pointers
2916         * src/port.h: added const_name
2917         * src/SDCC.lex: added keywords sfr16, __sfr16, sfr32, __sfr32
2918         * src/SDCC.y: added tokens SFR16, SFR32 and their sfr_attributes
2919         * src/SDCCcse.c (findPrevIc): check all associative operators
2920         * src/SDCCglue.c (emitMaps): use CONST_NAME if defined
2921         * src/SDCCicode.h: added macro IS_ASSOCIATIVE
2922         * src/SDCCmem.c: updated comments,
2923           set far-space to 0 for pdata, results in optimized code
2924         * src/SDCCmem.h: added macro CONST_NAME
2925         * src/SDCCsymt.h: renumerated generic pointer types GPTYPE_... thereby
2926           moving the info into the highest bits, see also gptrget/gptrput
2927         * src/src.dsp: added sdcc.ico to project files
2928         * src/avr/gen.c (genCast): fixed bug 0x%d
2929         * src/avr/main.c (avr_port): added "CONST (CODE)" for const_name
2930         * src/ds390/gen.c (aopForRemat, adjustArithmeticResult): disconnected direct
2931           relation between ptr_type and DCL_TYPE,
2932           (genCast): fixed bug 0x%d
2933         * src/ds390/main.c (ds390_port, tininative_port, ds400_port): added "CONST
2934           (CODE)" for const_name
2935         * src/hc08/gen.c (genCast): fixed bug 0x%d
2936         * src/hc08/main.c (_hc08_genAssemblerPreamble): added .area ...const_name,
2937           (hc08_port): added "CONST (CODE)" for const_name
2938         * src/mcs51/gen.c (aopForSym): optimized pushing ACC,
2939           (aopForRemat, adjustArithmeticResult): disconnected direct relation
2940           between ptr_type and DCL_TYPE,
2941           (aopGetUsesAcc, aopGet, aopPut): changed first parameter from asmop* to
2942           operand* and took AOP() inside function so sfr-ness can be checked,
2943           (all over): repaired calls to aopGetUsesAcc, aopGet, aopPut to comply with
2944           new prototype,
2945           (genFunction, genEndFunction): optimized stack setup,
2946           (genMinus): optimized for literals with ending zeroes (in bytes),
2947           (genCast): fixed bug 0x%d
2948         * src/mcs51/main.c (_mcs51_keywords): added sfr16 and sfr32,
2949           (mcs51_port): added "CONST (CODE)" for const_name
2950         * src/mcs51/peeph.def: made rule 226 more generic
2951         * src/pic/main.c (pic_port): added "CONST (CODE)" for const_name
2952         * src/pic16/main.c (pic16_port): added "CONST (CODE)" for const_name
2953         * src/xa51/main.c (xa51_port): added "CONST (CODE)" for const_name
2954         * src/z80/main.c (z80_port): added NULL for const_name,
2955           (gbz80_port): added NULL for const_name
2956         * support/regression/tests/bug663539.c,
2957         * support/regression/tests/sfr16.c: new tests
2958
2959 2005-06-25 Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
2960
2961         * device/include/mcs51/p89v51rd2.h, device/include/mcs51/at89s53.h: added.
2962
2963 2005-06-24 Raphael Neider <rneider AT web.de>
2964
2965         * device/lib/pic16/libdev/pic18f[68][567]20.c:
2966           corrected typos...
2967         * device/include/pic16/signal.h: added USBIF
2968           and SIG_USB
2969
2970 2005-06-24 Raphael Neider <rneider AT web.de>
2971
2972         * device/lib/pic16/libdev/pic18f2455.c,
2973           device/include/pic16/pic18f2455.h: NEW
2974         * device/include/pic16/pic18fregs.h,
2975           device/lib/pic16/pics.all,
2976           src/pic16/device.c: added 18f2455
2977         * device/lib/pic16/libdev/pic18f[68][567]20.c,
2978           device/include/pic16/{pic18f[68][567].h,usart.h}:
2979           replaced MULTIPLE_USARTS define with more relaible
2980           compatibility sfrs (for USART access)
2981
2982 2005-06-20 Slade Rich <slade_rich AT users.sourceforge.net>
2983
2984         * src/pic/pcode.c : Fixed problem when a string constant contains a "\r\n"
2985           and the output asm file line is printed on two lines.
2986
2987 2005-06-19 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
2988
2989         * sim/ucsim/hc08.src/inst.cc (inst_condbranch): fixed simulation of
2990           BGT, BLE, BHI, and BLS instructions
2991         * src/hc08/gen.c (outAcc, outBitC, outBitNV, genCmpLt, genCmpGt,
2992           genCmpEq): removed
2993         * src/hc08/gen.c (genCmpEQorNE, genCmp, branchopCmp, nameCmp,
2994           negatedCmp, exchangedCmp, genhc08Code): rewrite of comparison handling,
2995           fixes bug #1216342
2996         * src/hc08/peeph.def: added rules 2g - 2l for new conditional branches
2997
2998 2005-06-15 Raphael Neider <rneider AT web.de>
2999
3000         * src/pic16/NOTES: moved Vangelis from active developers to people to contact
3001         * device/include/pic16/{6520.h,8520.h}: fixed configuration bits
3002         * src/pic16/gen.c (): prevent iTemps from being considered to be in CODESPACE,
3003           fixes bug #1221120; for symbols in CODESPACE get number of bytes to read from
3004           OP_SYM_TYPE() instead of OP_SYM_ETYPE()
3005
3006 2005-06-06 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
3007
3008         * device/include/mcs51/reg764.h: Changed PB0 to PBO as requested by
3009           Marcel Telka in bug #1215704
3010
3011 2005-06-02 Slade Rich <slade_rich AT users.sourceforge.net>
3012
3013         * src/pic/pcode.c : Changed pseudo stack size to 15 to allow WSAVE to be
3014           located in shared memory bank.
3015
3016 2005-05-31 Raphael Neider <rneider AT web.de>
3017
3018         * src/pic16/{gen.c,genarith.c}: replaced sign-extension
3019           "CLRF, BTFSC <signbit>, DECF/COMF" with side-effect-free
3020           "CLRF, BTFSC <signbit>, SETF"; fixes "long>>9"
3021
3022 2005-05-27 Maarten Brock <sourceforge.brock AT dse.nl>
3023
3024         * device/lib/_strncpy.c: fixed the fix
3025
3026 2005-05-26 Raphael Neider <rneider AT web.de>
3027
3028         * src/pic16/glue.c (pic16_printIvalChar): fixed _constant_ string
3029           initializers with \0, bug #1208187
3030         * src/pic/glue.c (printIvalChar): fixed (non- and constant) string
3031           intializers with \0, bug #1208187
3032
3033 2005-05-26 Raphael Neider <rneider AT web.de>
3034
3035         * src/pic16/glue.c (pic16_printIvalChar): fixed string
3036           initializers with \0, bug #1208187
3037         * src/pic16/main.c (_process_pragma): added sanity checks
3038           for stack position and size, emit warnings when appropriate
3039
3040 2005-05-26 Maarten Brock <sourceforge.brock AT dse.nl>
3041
3042         * device/lib/_strncpy.c: fixed not filling with \0
3043
3044 2005-05-26 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
3045
3046         * src/SDCCast.c (funcOfType, funcOfTypeVarg, stringToSymbol,
3047           createFunction),
3048         * src/SDCC.y (external_definition, enumerator, parameter_declaration,
3049           compound_statement),
3050         * src/SDCCsymt.h,
3051         * src/SDCCsymt.c (addSymChain, processFuncArgs): fixed bug #1159134
3052
3053 2005-05-24 Raphael Neider <rneider AT web.de>
3054
3055         * src/pic16/glue.c (pic16_printGPointerType): fixed #1207796
3056
3057 2005-05-24 Raphael Neider <rneider AT web.de>
3058
3059         * device/include/pic16/pic18f{442,452,458}.h: fixed wrong
3060           TRISE definitions, closes bug #1162453
3061
3062 2005-05-22 Raphael Neider <rneider AT web.de>
3063
3064         * src/pic16/main.c (_process_pragma): check for missing
3065           arguments to pragmas code and udata
3066         * device/include/pic16/pic18f{2550,4331,4455,4520}.h:
3067           consistency fixes to match other headers (thanks to Jim Paris)
3068         * device/lib/pic16/libio/i2c.ignore: 18f4331 provides no I2C
3069
3070 2005-05-21 Maarten Brock <sourceforge.brock AT dse.nl>
3071
3072         * src/SDCCicode.c (isOperandEqual): fixed missing ;
3073
3074 2005-05-19 Maarten Brock <sourceforge.brock AT dse.nl>
3075
3076         * support/regression/tests/bug1198642.c: new test
3077         * src/SDCCicode.c (isOperandEqual): fixed bug 1198642
3078         * src/SDCCcse.c (findPrevIc): added comment, please have a look
3079         * support/scripts/resource.h,
3080         * support/scripts/resource.rc,
3081         * src/src.dsp: added sdcc.ico to project as icon for sdcc.exe
3082         * support/scripts/sdcc.ico: added 32x32 icon
3083
3084 2005-05-18 Raphael Neider <rneider AT web.de>
3085
3086         * device/lib/pic16/libdev/pic18f*.c,
3087         * device/include/pic16/pic18f*.h: updated "sfr" and "at X"
3088           keywords to "__sfr" and "__at (X)"
3089         * device/include/pic16/pic18fregs.h: added pic18f4520
3090         * src/pic16/pcode.c (pic16_pCode2str): fixed (?) bug
3091           #1203088 (MPLAB compatibility)
3092
3093 2005-05-17 Raphael Neider <rneider AT web.de>
3094
3095         * device/include/pic16/pic18f{2550,4331,4455,4520}.h: NEW
3096         * device/lib/pic16/libdev/pic18f{2550,4331,4455,4520}.c: NEW
3097         * device/lib/pic16/pics.all: added new devices
3098         * src/pic16/device.c: added support for pic18f4520
3099
3100 2005-05-16 Raphael Neider <rneider AT web.de>
3101         * src/pic16/gen.{c,h}: s/mov2f/pic16_mov2f made public
3102         * src/pic16/genarith.c (genAddLit): fixed bug 1202480
3103         * src/pic16/pcode.{c,h} (pic16_newpCodeOpBit_simple): NEW
3104           convenience function for bit access
3105
3106 2005-05-15 Maarten Brock <sourceforge.brock AT dse.nl>
3107
3108         * device/lib/printf_large.c: fixed bug 1193299
3109         * support/regression/tests/bug1057979.c: added test %3.3s
3110
3111 2005-05-15 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
3112
3113         * device/include/mcs51/8051.h,
3114         * device/include/mcs51/8052.h: made parseable with lint
3115         * device/include/mcs51/lint.h: added include file for (sp)lint
3116         * doc/sdccman.lyx: added doc about use of splint (syntax checking tool)
3117         * doc/cdbfileformat.lyx,
3118         * doc/test_suite_spec.lyx: hardcoded date to the date of last text change
3119
3120 2005-05-14 Raphael Neider <rneider AT web.de>
3121
3122         * device/lib/pic16/Makefile.common.in: add --optimize-df to OPT_FLAGS
3123         * device/lib/pic16/libc/stdlib/itoa.c (new)
3124         * device/lib/pic16/libc/stdlib/Makefile: have itoa.c built
3125         * device/lib/pic16/libio/Makefile: exclude subdir according to
3126           ${subdir}.ignore for certain PICs (lacking e.g. i2c)
3127         * device/lib/pic16/libio/i2c.ignore (new): pic18f1220 has no I2C support
3128         * src/pic16/gen.c (genFunction): prevent annoying warning
3129         * src/pic16/pcode.c: renamed stack_t to dynstack_t to prevent
3130           nameclashes on BeOS
3131         * support/cpp2/cppmain.c (cpp_output_string): new
3132         * support/cpp2/cpplib.c (_cpp_do__Pragma): fixed _Pragma(""),
3133           fixes bug 1116802
3134
3135 2005-05-13 Borut Razem <borut.razem AT siol.net>
3136
3137         * src/SDCCmain.c (linkEdit): fixed bug 1195202
3138
3139 2005-05-12 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
3140
3141         * .version: changed to version 2.5.1; back to bleeding edge development
3142
3143 2005-05-11 Borut Razem <borut.razem AT siol.net>
3144
3145         * doc/sdccman.lyx doc/cdbfileformat.lyx doc/test_suite_spec.lyx:
3146           generate PDF version 1.3 documents
3147
3148 2005-05-07 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
3149
3150         * .version: changed to version 2.5.0
3151
3152 2005-04-27 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
3153
3154         * doc/sdccman.lyx: updated weblinks, index and smaller updates
3155
3156 2005-04-26 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
3157
3158         * doc/sdccman.lyx: changed version 2.5.0, documented --std-c89,
3159         --std-sdcc89, --std-c99, --std-sdcc99, and the corresponding #pragmas, as
3160         well as many smaller updates.
3161         * .version: changed to version 2.5.0-pre1
3162
3163 2005-04-26 Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
3164
3165         * src/SDCCmain.c (setIncludePath): added port->target to SDCC_INCLUDE_NAME
3166
3167 2005-04-26 Maarten Brock <sourceforge.brock AT dse.nl>
3168
3169         * support/regression/tests/bug1185672.c: added
3170         * src/mcs51/gen.c (aopGetUsesAcc, genCpl, genAnd, genOr, genXor): fixed
3171           bug 1185672
3172         * src/mcs51/gen.c (genCall): added comments, made it look safer
3173         * src/mcs51/gen.c (genEndFunction): simplified
3174
3175 2005-04-25 Maarten Brock <sourceforge.brock AT dse.nl>
3176
3177         * src/mcs51/ralloc.c (serialRegAssign): fixed bug 1189609
3178
3179 2005-04-14 Borut Razem <borut.razem AT siol.net>
3180
3181         * fixed bug 1045046 - SIGSEGV with really simple code?:
3182           src/pic/pcode.c (pCodeInitRegisters)- pseudo stack size increased to 16
3183           src/pic/ralloc.c (typeRegWithIdx) - error message on pseudo stack overflow
3184
3185 2005-04-14 Borut Razem <borut.razem AT siol.net>
3186
3187         * src/pic16/gen.c (genInline), src/pic16/main.c (_process_pragma),
3188           src/pic16/device.h: temporarily disabled experimental #inline pragma
3189           for 2.5.0 release
3190
3191 2005-04-14 Maarten Brock <sourceforge.brock AT dse.nl>
3192
3193         * device/include/z80/stdio.h,
3194         * device/include/z80/string.h: removed these highly incomplete files so
3195           SDCC can use the default ones in device/include/
3196
3197 2005-04-14 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
3198
3199         * src/mcs51/gen.c (genEndFunction): removed unused variable to fix
3200         gcc warning.
3201         * device/lib/Makefile.in: default PORTINCDIR to the mcs51 subdir to
3202         fix sdcpp warnings.
3203
3204 2005-04-12 Maarten Brock <sourceforge.brock AT dse.nl>
3205
3206         * device/include/malloc.h: removed redundant __reentrant prototypes
3207         * device/lib/_mullong.c: added working xstack variant in asm (C version
3208           doesn't pass regression tests)
3209         * device/lib/bpx.c: used __data and made bpx char for mcs51
3210         * src/SDCCast.c (decorateType): removed unused GPTYPE_IDATA,
3211           (createFunction): fixed bug with xstackPtr
3212         * src/SDCCcse.c: corrected comments
3213         * src/SDCCopt.c (convertToFcall): fixed warning in MSVC,
3214           (killDeadCode, eBBlockFromiCode): removed unused code
3215         * src/SDCCsymt.h: removed unused GPTYPE_GPTR and GPTYPE_IDATA,
3216           corrected comments
3217         * src/mcs51/gen.c (aopForSym, aopPut, toBoolean, unsaveRegisters,
3218           assignResultValue, genCall, genFunction, genEndFunction, genAnd,
3219           genOr, genXor, genAddrOf): fixed several bugs concerning xstack
3220           (genModOneByte): fixed warning in MSVC
3221         * src/mcs51/main.c (): added comments
3222         * src/mcs51/peeph.def: changed 129 to 129.a, added 129.b, 129.c & 129.d
3223
3224 2005-04-12 Maarten Brock <sourceforge.brock AT dse.nl>
3225
3226         * src/SDCCmain.c (linkEdit): oops, changed one line too many
3227
3228 2005-04-11 Maarten Brock <sourceforge.brock AT dse.nl>
3229
3230         * src/SDCCmain.c (linkEdit): fixed bug with finding crt0.o for z80
3231
3232 2005-04-10 Vangelis Rokas <vrokas AT users.sourceforge.net>
3233
3234         * src/pic16/glue.c (printIvalChar): fixed bug when emitting
3235         characters arrays of larger size than the declared one.
3236
3237 2005-04-10 Borut Razem <borut.razem AT siol.net>
3238
3239         * src/pic/gen.c (genInline),
3240           src/pic/pcode.c (newpCodeAsmDir), (pCode2str),
3241           (genericPrint), (unlinkpCodeFromBranch), (compareLabel),
3242           (findNextInstruction), (findPrevInstruction),
3243           (findInstructionUsingLabel),
3244           src/pic/pcode.h: fixed bug #1164907 - Labels not being recognized
3245         * src/pic/pcode.c (findLabel): added missing '\n'
3246         * src/src.dsp: added SDCCdwarf2.c to the project
3247
3248 2005-04-09 Borut Razem <borut.razem AT siol.net>
3249
3250         * support/scripts/sdcc.nsi: added include/hc08/* h to NSIS setup
3251
3252 2005-04-08 Raphael Neider <rneider AT web.de>
3253
3254         * src/pic16/pcode.c: added helpers defmapInsertAfter (insert a new item
3255           into the chain after a given one) and mergeDefmapSymbols (combine
3256           defmap entries for each symbol per pcode)
3257         * (createDefmap): have defmap entries merged in the end
3258         * (defmapReplaceSymRef): split defmap entries covering two accesses to
3259           a symbol before replacing one access type's symbol, merge symbols in
3260           the end (replacement symbol might already have an entry)
3261         * (assignValnums): keep reference to written WREG intact
3262
3263 2005-04-08 Raphael Neider <rneider AT web.de>
3264
3265         * src/pic16/pcode.c (struct defmap_s): named anonymous union (for
3266           Alpha)
3267
3268 2005-04-08 Vangelis Rokas <vrokas AT users.sourceforge.net>
3269
3270         * src/pic16/pcode.c (pic16_get_op2): enlarged size of array b to 128
3271         bytes
3272
3273 2005-04-07 Raphael Neider <rneider AT web.de>
3274
3275         * device/include/pic16/usart.h: added compatibility defines for
3276           devices with more than one USART
3277         * device/include/pic16/pic18f[68][567]20.h: activated above defines
3278
3279 2005-04-07 Maarten Brock <sourceforge.brock AT dse.nl>
3280
3281         * device/lib/Makefile.in: updated for port specific include
3282
3283 2005-04-07 Maarten Brock <sourceforge.brock AT dse.nl>
3284
3285         * support/regression/ports/mcs51/spec.mk: added mcs51 include
3286
3287 2005-04-07 Maarten Brock <sourceforge.brock AT dse.nl>
3288
3289         * device/include/8051.h,
3290         * device/include/8052.h,
3291         * device/include/at89S8252.h,
3292         * device/include/at89c55.h,
3293         * device/include/at89x051.h,
3294         * device/include/at89x51.h,
3295         * device/include/at89x52.h,
3296         * device/include/mcs51reg.h,
3297         * device/include/reg51.h,
3298         * device/include/reg764.h,
3299         * device/include/regc515c.h,
3300         * device/include/sab80515.h: (re)moved these 12 files
3301         * device/include/mcs51/8051.h,
3302         * device/include/mcs51/8052.h,
3303         * device/include/mcs51/at89S8252.h,
3304         * device/include/mcs51/at89c55.h,
3305         * device/include/mcs51/at89x051.h,
3306         * device/include/mcs51/at89x51.h,
3307         * device/include/mcs51/at89x52.h,
3308         * device/include/mcs51/mcs51reg.h,
3309         * device/include/mcs51/reg51.h,
3310         * device/include/mcs51/reg764.h,
3311         * device/include/mcs51/regc515c.h,
3312         * device/include/mcs51/sab80515.h: and added them here
3313
3314 2005-04-06 Maarten Brock <sourceforge.brock AT dse.nl>
3315
3316         * device/include/stdarg.h: changed SDCC specific keywords to double
3317           underlined form.
3318         * device/include/stdint.h: changed intptr_t and uintptr_t for others than
3319           mcs51 and ds390.
3320         * device/include/hc08/mc68hc908gp32.h,
3321         * device/include/hc08/mc68hc908jb8.h,
3322         * device/include/hc08/mc68hc908jkjl.h,
3323         * device/include/hc08/mc68hc908qy.h: fixed comments
3324         * device/include/mcs51/README: updated
3325         * device/include/mcs51/c8051f120.h: added PINRSF
3326         * device/lib/pic16/libc/stdlib/crc16.c: fixed comments
3327         * src/pic16/pcode.c: MSVC6 doesn't accept declaring new variables
3328           amidst code. Also inline is not supported.
3329
3330 2005-04-06 Raphael Neider <rneider AT web.de>
3331
3332         * src/pic16/pcode.c (pic16_pCodeReplace): also update pcflow->end
3333         * (createDefmap): fixed CALLs to depend on FSR1 and RETLW to restore
3334           callers stack/frame pointers
3335
3336 2005-04-06 Vangelis Rokas <vrokas AT users.sourceforge.net>
3337
3338         * device/include/pic16/usart.h: added, missing in previous commit,
3339         * device/include/pic16/adc.h: fixed typo,
3340         * device/lib/pic16/libc/utils/cvtdec.S: added missing in previous
3341         commit,
3342         * device/lib/pic16/libc/stdlib/g_ftoa.S: modified to include
3343         <p18fxxx.inc>
3344         * device/lib/pic16/libc/stdio/streams.c: leave stdin, stdout
3345         uninitialized because a bug appears with gplink
3346         * device/lib/pic16/{some makefiles}: moved $(CSTD) from CFLAGS to
3347         COMPILE_FLAGS and added CPPFLAGS with -nostdinc because sdcpp
3348         complains for unrecognised option
3349
3350 2005-04-05 Raphael Neider <rneider AT web.de>
3351
3352         * src/pic16/gen.c (pic16_popCopyReg): made copying work for extended
3353           structs as well (using memcpy)
3354         * (genFunction): fixed comparison, used pCodeOpLabel to reduce warning
3355           on ISRs (GOTO has no label)
3356         * src/pic16/device.h: added OF_OPTIMIZE_DF
3357         * src/pic16/main.c: added compiler switch --optimize-df to enable the
3358           new data flow analysis/optimization
3359         * src/pic16/pcode.c: added (prototypes for and implementation of)
3360           dataflow analysis functions, fixed pCodeInstructions' inCond and
3361           outCond values, made RCALL a branch instruction
3362         * (pic16_unlinkpCode): keep C line if possible
3363         * (pic16_pCodeUnlink): removed cast on left side of assignment, have
3364           C line moved if possible
3365         * (pic16_getRegFrompCodeOp): NEW, improved version of...
3366         * (pic16_getRegFromInstruction,pic16_getRegFromInstruction2): changed
3367           to use new pic16_getRegFrompCodeOp (works for more SFRs)
3368         * (pic16_BuildFlow): fixed skip instructions with label (did not start
3369           new flow)
3370         * (pic16_getJumptabpCode): NEW, needed in...
3371         * (LinkFlow): fixed handling of jumptables, calls and conditional
3372           branches
3373         * (pic16_InsertCommentAfter): NEW
3374         * (pic16_pCodeReplace): made verbose and flow preserving
3375         * (AnalyzeFlow): added call to data flow analysis
3376         * src/pic16/pcode.h: added defmaps to pCodeFlow struct
3377         * src/pic16/pcodeflow.h: added PCC_STATUS to mean all STATUS bits
3378         * src/pic16/ralloc.c (packRegsForAssign): added return 1 in the end
3379
3380 2005-04-03 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
3381
3382         * src/SDCCast.c (decorateType): fixed bug #1105626
3383
3384 2005-04-02 Vangelis Rokas <vrokas AT users.sourceforge.net>
3385
3386         * device/include/asm/pic16/features.h,
3387         * pic18f*.h headers,
3388         * device/include/pic16/adc.h,
3389         * device/include/pic16/delay.h,
3390         * device/include/pic16/i2c.h,
3391         * device/include/pic16/malloc.h,
3392         * device/include/pic16/stdio.h,
3393         * device/include/pic16/stdlib.h,
3394         * device/include/pic16/string.h,
3395         * device/lib/pic16/libc/stdio/printf_tiny.c,
3396         * device/lib/pic16/libc/stdio/printf_small.c,
3397         * device/lib/pic16/libc/stdio/strmgpsim.c,
3398         * device/lib/pic16/libc/stdio/strmmssp.c,
3399         * device/lib/pic16/libc/stdio/strmusart.c,
3400         * device/lib/pic16/libc/stdio/vfprintf.c,
3401         * device/lib/pic16/libc/stdlib/ltoa.c,
3402         * device/lib/pic16/libc/stdlib/putchar.c,
3403         * device/lib/pic16/libc/stdlib/x_ftoa.c,
3404         * device/lib/pic16/libc/stdlib/memchrpgm.c,
3405         * device/lib/pic16/libc/stdlib/memchrram.c,
3406         * device/lib/pic16/libc/stdlib/memcpypgm2ram.c,
3407         * device/lib/pic16/libc/stdlib/memcpyram2ram.c,
3408         * device/lib/pic16/libio/adc/adcbusy.c,
3409         * device/lib/pic16/libio/adc/adcread.c,
3410         * device/lib/pic16/libio/adc/adcsetch.c,
3411         * device/lib/pic16/libio/usart/ubaud.c,
3412         * device/lib/pic16/libio/usart/ubusy.c,
3413         * device/lib/pic16/libio/usart/udrdy.c,
3414         * device/lib/pic16/libio/usart/uopen.c,
3415         * device/lib/pic16/libio/usart/uputc.c,
3416         * device/lib/pic16/libsdcc/gptr/gptrget1.c,
3417         * device/lib/pic16/libsdcc/gptr/gptrget2.c,
3418         * device/lib/pic16/libsdcc/gptr/gptrget3.c,
3419         * device/lib/pic16/libsdcc/gptr/gptrget4.c,
3420         * device/lib/pic16/libsdcc/gptr/gptrput1.c,
3421         * device/lib/pic16/libsdcc/gptr/gptrput2.c,
3422         * device/lib/pic16/libsdcc/gptr/gptrput3.c,
3423         * device/lib/pic16/libsdcc/gptr/gptrput4.c: modified all SDCC
3424         specific keywords to double underlined form,
3425         * device/lib/pic16/libc/Makefile.rules,
3426         * device/lib/pic16/libsdcc/Makefile.rules,
3427         * device/lib/pic16/libm/Makefile,
3428         * device/lib/pic16/libio/Makefile.rules: added CSTD macro in CFLAGS
3429         to compile with C standard set in Makefile.common
3430         * device/lib/pic16/libc/stdlib/Makefile: added new C sources
3431         rand.c and crc.c in compilation process,
3432         * device/lib/pic16/libsdcc/int/divuint.c,
3433         * device/lib/pic16/libsdcc/long/divulong.c: changed declaration of
3434         `c' from signed to unsigned,
3435         * device/lib/pic16/startup/crt0.c,
3436         * device/lib/pic16/startup/crt0i.c,
3437         * device/lib/pic16/startup/crt0iz.c: adopted to all SDCC specific
3438         keywords to double underlined form, bug fixes in _do_cinit function
3439         which prevented the correct initialization of the .idata segment,
3440         * src/pic16/pcoderegs.c (insideLRBlock): fixed a bug that caused the
3441         core to enter a infinite loop
3442         * device/lib/pic16/libc/stdlib/rand.c, crc.c: new files
3443
3444 2005-04-02 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
3445
3446         * src/SDCCicode.c (getArraySizePtr): fixed bug #1122171
3447
3448 2005-04-01 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
3449
3450         * device/include/Makefile.in: add support for hc08 subdirectory
3451         * device/include/hc08/: new subdirectory
3452         * device/include/hc08/mc68hc908jkjl.h: new header contributed by
3453         Lucas Loizaga, thanks!
3454         * device/include/hc08/mc68hc908qy.h,
3455         * device/include/hc08/mc68hc908gp32.h,
3456         * device/include/hc08/mc68hc908jb8.h: moved hc08 register defs to
3457         their own directory. Changed internal macro names to use the compiler
3458         reserved namespace. Changed SDCC specific keywords to double
3459         underlined form.
3460         * device/include/math.h,
3461         * device/include/malloc.h,
3462         * device/include/stdarg.h,
3463         * device/include/stdbool.h
3464         * device/include/string.h,
3465         * device/include/tinibios.h,
3466         * device/include/ds400rom.h,
3467         * device/include/8051.h,
3468         * device/include/8052.h,
3469         * device/include/80c51xa.h,
3470         * device/include/at89c55.h,
3471         * device/include/at89S8252.h,
3472         * device/include/at89x51.h,
3473         * device/include/at89x52.h,
3474         * device/include/ds80c390.h,
3475         * device/include/reg764.h,
3476         * device/include/regc515c.h,
3477         * device/include/sab80515.h,
3478         * device/include/mcs51/c8051f000.h,
3479         * device/include/mcs51/c8051f018.h,
3480         * device/include/mcs51/c8051f020.h,
3481         * device/include/mcs51/c8051f040.h,
3482         * device/include/mcs51/c8051f060.h,
3483         * device/include/mcs51/c8051f120.h,
3484         * device/include/mcs51/c8051f300.h,
3485         * device/include/mcs51/c8051f310.h,
3486         * device/include/mcs51/c8051f320.h,
3487         * device/include/mcs51/c8051f330.h,
3488         * device/include/mcs51/c8051f350.h,
3489         * device/include/z180.h: Changed SDCC specific keywords to double
3490         underlined form.
3491
3492 2005-03-31 Vangelis Rokas <vrokas AT users.sourceforge.net>
3493
3494         * src/pic16/device.c (Pics16[]): added devices 18F2550, 18F4331,
3495         18F4455,
3496         * (pic16_assignConfigWordValue): disable testing of configuration
3497         register value with config mask,
3498         * src/pic16/gen.c (pic16_testStackOverflow): prefix stack test
3499         function with port->fun_prefix,
3500         * (genFunction): when generating a naked interrupt function never
3501         create an absolute segment placed in interrupt vector address, place
3502         the actual interrupt function at IVA instead, when an interrupt
3503         function is generated with unspecified interrupt then do not create
3504         the absolute section,
3505         * (genGenPointerGet, genGenPointerSet, genPackBits): replace all
3506         code for generating a call to generic pointer get/put function with
3507         a call to function pic16_callGenericPointer(),
3508         * src/pic16/genutils.c (pic16_callGenericPointerRW): NEW, generates
3509         the call to the generic pointer get/put functions with prefixing the
3510         function name with port->fun_prefix,
3511         * src/pic16/glue.c (pic16glue): ifdef-out test of OF_LR_SUPPORT,
3512         * src/pic16/main.c (_process_pragma): prefix function with
3513         port->fun_prefix,
3514         * (_pic16_finaliseOptions): define macro __18Fxxxx macro when
3515         calling assembler, old 18Fxxxx macro is deprecated,
3516         * src/pic16/pcode.c (unlinkpCodeFromBranch): added PC_INLINE and
3517         PC_ASMDIR in while condition,
3518         * (findInstruction): add PC_ASMDIR in while condition,
3519         * (buildCallTree): prefix main with port->fun_prefix,
3520         * (pic16_pCode2str): fixed bug that didn't emit the memory access
3521         identifier for variable with banked access in instructions BTFSS,
3522         BTFSC, BCF, BSF, BTG
3523         * (AnalyzeFlow): moved call to OptimizepCode to pic16_AnalyzeBanking,
3524         * src/pic16/pcodepeep.c (pCodeOpCompare): increase size of b to 1024,
3525         * src/pic16/pcoderegs.c (pic16_pCodeRegoptimizeRegUsage): don't
3526         perform optimization when enviroment variable NO_REG_OPT is set,
3527         * (insideLRBlock): NEW, return 1 if register is inside an
3528         INF_LOCALREGS block,
3529         * (RemoveRegFromLRBlock): remove a register that is completely
3530         eliminated by register optimization, but it is still left in local
3531         register store/restore in/from stack block,
3532         * (Remove2pcodes): after removing register, check to see if it
3533         should be removed from local register store/restore in/from stack
3534         block,
3535         * src/pic16/ralloc.c (pic16_decodeOp): added decode for
3536         DUMMY_READ_VOLATILE,
3537
3538         * device/include/pic16/adc.h: minor prototype modifications and
3539         update,
3540         * device/include/pic16/malloc.h: added GPL notice various
3541         modifications,
3542         * device/include/pic16/stdint.h: NEW, standard header for ints
3543         * device/include/pic16/delay.h: NEW, header for delay functions,
3544         delay10tcy, delay100tcy, delay1ktcy, delay10ktcy, delay100ktcy,
3545         delay1mtcy,
3546         * device/include/pic16/signal.h: NEW, header providing helper macros
3547         for implementing signal handlers,
3548         * device/include/pic16/stdio.h: added prototypes for functions,
3549         printf, vprintf, sprintf, vsprintf, fprintf, vfprintf. Added
3550         prototypes for stdin and stdout, added macro PUTCHAR to
3551         automatically implement putchar function prototype,
3552         * device/include/pic16/usart.h: modified and updated USART library,
3553         * device/lib/pic16/libio/adc/,
3554         * device/lib/pic16/libio/i2c: some modifications to improve library
3555         performance,
3556         * device/lib/pic16/libc/stdio/: modifications for the new printf*
3557         family of functions,
3558         * device/lib/pic16/libc/stdlib/: various modifications in the malloc
3559         family of functions and other sources,
3560         * device/lib/pic16/libio/usart/: NEW, c sources for the usart module
3561         of the PIC18Fxx[28] devices,
3562         * device/lib/pic16/libc/delay/: NEW, c sources for the delay functions,
3563         * device/lib/pic16/libc/utils/: minor modifications in the .S sources,
3564         * device/lib/pic16/startup/{crt0i.c, crt0iz.c}: redesign of the
3565         _do_cinit function, because the previous failed when local variables
3566         where not placed in the same memory bank,
3567         * device/lib/pic16/libsdcc/char/: various modifications to improve
3568         library performance,
3569         * doc/sdccman.lyx: some reorganization of the PIC16 part, added many
3570         information on the new functions of the c library and more...
3571
3572 2005-03-28 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
3573
3574         * src/SDCCBBlock.c (iCodeBreakDown): fixed bug #1170212
3575
3576 2005-03-26 Raphael Neider <rneider AT web.de>
3577
3578         * src/pic16/gen.c (genSkipc): fixed semantics (execute branch
3579           if condition == CARRY)
3580         * (genCmp): adapted to new genSkipc semantics
3581         * src/pic16/genutils.c (pic6_genCmp_special): removed side effect
3582           on rIfx (genCmp was broken)
3583
3584 2005-03-26 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
3585
3586         * src/SDCCmain.c (setDefaultOptions, optionsTable[], parseCmdLine),
3587         * src/z80/main.c (_keywords[]),
3588         * src/SDCCglobal.h (struct options),
3589         * src/SDCC.y,
3590         * src/SDCC.lex (isTargetKeyword, doPragma, pragma_tbl[]): new pragmas
3591         to enable/disable SDCC and C99 extensions/keywords (std_c89, std_sdcc89,
3592         std_c99, std_sdcc99). Also, equivalent command line options (--std-c89,
3593         --std-sdcc89, --std-c99, --std-sdcc99). SDCC specific keywords are
3594         always available in leading double underscore form. The C99 support is
3595         mostly missing, but it's a start.
3596         * support/regression/tests/bug-227710.c: fixed nonconforming use of
3597         reserved identifier "__data".
3598
3599 2005-03-24 Maarten Brock <sourceforge.brock AT dse.nl>
3600
3601         * src/mcs51/peeph.def: fixed bug 1170013
3602
3603 2005-03-22 Maarten Brock <sourceforge.brock AT dse.nl>
3604
3605         * device/include/mcs51reg.h: fixed bug 842007
3606
3607 2005-03-21 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
3608
3609         * src/SDCCcflow.c (dfNumCompare): committed the wrong version of this
3610         last time.
3611
3612 2005-03-20 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
3613
3614         * src/port.h (struct PORT),
3615         * src/avr/ralloc.c (avr_assignRegisters),
3616         * src/avr/main.c,
3617         * src/ds390/ralloc.c (ds390_assignRegisters),
3618         * src/ds390/main.c,
3619         * src/hc08/ralloc.c (hc08_assignRegisters),
3620         * src/hc08/main.c,
3621         * src/mcs51/ralloc.c (mcs51_assignRegisters),
3622         * src/mcs51/main.c,
3623         * src/pic/ralloc.c (pic14_assignRegisters),
3624         * src/pic/main.c,
3625         * src/pic16/ralloc.c (pic16_assignRegisters),
3626         * src/pic16/main.c,
3627         * src/xa51/ralloc.c (xa51_assignRegisters),
3628         * src/xa51/main.c,
3629         * src/z80/ralloc.c (z80_assignRegisters),
3630         * src/z80/ralloc.h,
3631         * src/SDCCopt.c (eBBlockFromiCode, replaceRegEqv, killDeadCode),
3632         * src/SDCCcse.c (ifxOptimize, cseBBlock, cseAllBlocks),
3633         * src/SDCCcse.h,
3634         * src/SDCCdflow.c (computeDataFlow),
3635         * src/SDCCdflow.h,
3636         * src/SDCCloop.c (addDefInExprs, loopInvariants, loopOptimizations),
3637         * src/SDCCloop.h,
3638         * src/SDCCcflow.c (*),
3639         * src/SDCCcflow.h,
3640         * src/SDCCBBlock.c (iCodeBreakDown, dumpEbbsToFileExt, eBBWithEntryLabel),
3641         * src/SDCCBBlock.h (struct ebbIndex): new struct that keeps two copies
3642         of the eBBlock list, sorted by both bbnum and dfnum. (fixes bug with
3643         immedDom() returning wrong block; probably fixes bug #1160833)
3644
3645 2005-03-20 Borut Razem <borut.razem AT siol.net>
3646
3647         * support/scripts/inc2h.pl: WIN32 port
3648
3649 2005-03-19 Maarten Brock <sourceforge.brock AT dse.nl>
3650
3651         * device/lib/makefile.in: added abs.c and labs.c
3652
3653 2005-03-17 Maarten Brock <sourceforge.brock AT dse.nl>
3654
3655         * device/include/stdint.h: added
3656         * device/lib/abs.c: added
3657         * device/lib/labs.c: added
3658         * device/include/stdlib.h: added abs() and labs() prototypes
3659         * device/lib/libsdcc.lib: added abs and labs
3660         * device/include/float.h,
3661         * device/lib/_fsmul.c,
3662         * device/lib/printf_fast.c,
3663         * device/lib/printf_tiny.c: updated comments
3664
3665 2005-03-16 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
3666
3667         * src/SDCCicode.c (geniCodeSwitch, geniCodeJumpTable): fixed
3668         bug #1164313
3669
3670 2005-03-16 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
3671
3672         * src/SDCCcse.c (cseBBlock): retain assignment to self when volatile
3673         * src/SDCCast.c (isLoopCountable): fixed bug #1161985
3674
3675 2005-03-15 Maarten Brock <sourceforge.brock AT dse.nl>
3676
3677         * device/lib/printf_large.c: removed inline assembly for portability and
3678           readability. Use printf_fast if speed or size are more important.
3679         * src/pic16/gen.c: removed conditions around use of DEBUGpc
3680         * src/pic16/genutils.h: added define for DEBUGpc for MSVC
3681
3682 2005-03-15 Vangelis Rokas <vrokas AT users.sourceforge.net>
3683
3684         * src/pic16/genutils.c (pic16_genCmp_special): initialized offs to
3685         prevent compiler warning
3686
3687 2005-03-14 Vangelis Rokas <vrokas AT users.sourceforge.net>
3688
3689         * device/lib/pic16/startup/crt0i.c (_cinit): local variables where
3690         moved to level 0 and declared as static. Also they are explicit
3691         placed in access bank. This was necessery because some times they
3692         might cross memory bank boundaries. crt0iz.c is *NOT* updated!!!
3693         * src/pic16/device.h: added flag OPTIMIZE_CMP to enable some compare
3694         optimizations. Currently only compare to unsigned char is implemented,
3695         * src/pic16/gen.c: added fReturnIdx array,
3696         * (struct resolvedIfx) is moved to gen.h and made public,
3697         * (struct _G): added sregsAlloc and sregsAllocSet fields,
3698         * (aopForSym): added an optimization to directly store in stack of
3699         the operand of a SEND iCode,
3700         * (pic16_aopOp): don't return return registers as strings (AOP_STR)
3701         but as registers instead (AOP_REG) using the fReturnIdx array,
3702         * (pic16_freeAsmop): remove the freed register from the
3703         _G.sregsAlloc field,
3704         * (pic16_aopGet): in case AOP_STR, the compare to 'a' is changed to
3705         a compare of 'WREG',
3706         * (pic16_popGetTempRegCond): changed function prototype, now
3707         function takes also a bitVector argument v which holds the current
3708         set of registers that are allocated for stack access by aopForSym,
3709         registers allocated in aopForSym for accessing stack symbols are not
3710         any more part of the functions usedRegs field,
3711         * (genCall): some times aopOp is called for a stack variable to be
3712         send, aopForSym might perform the push, if this is true make sure
3713         that genCall doesn't push the variable twice by testing _G.resDirect,
3714         * (genFunction): changed testing for unspecified interrupt number
3715         from 256 to INTNO_UNSPEC,
3716         * modified selection scheme of frame pointer generation. Previously
3717         if function did use local registers a frame pointer was generated,
3718         now a frame pointer is generated only if function has arguments
3719         (that need PLUSW2 register access), or has stack arguments, or the
3720         compiler is not instructed to omit the frame pointer,
3721         * (genEndFunction): before restoring local registers that were saved
3722         in the function preamble, also restore the registers that *might*
3723         have been allocated for stack access,
3724         * (genRet): removed some old comments,
3725         * (genCmp, the active (RN's) version): added a call to the
3726         pic16_genCmp_special function to perform the compare with a more
3727         robust and optimized way,
3728         * (genInline): a feature has been added in inline code generation,
3729         which allows a wildcard variable substitution when writing inline
3730         assembly. Code is incomplete and experimental therefore undocumented,
3731         * (genCast): changed order of aopOp for result and right to allow
3732         aopForSym to directly load the result if possible,
3733         * src/pic16/genutils.c (selectCompareOp, pic16_genCmp_special): NEW,
3734         perform an optimized compare on some selected special occasions,
3735         * src/pic16/genutils.h: declaration of resolvedIfx structure from gen.c,
3736         * src/pic16/glue.c (pic16createInterrupVect): make sure we never
3737         generate an IVT any more,
3738         * src/pic16/main.c (pic16_optionsTable): added command line option
3739         --optimize-cmp,
3740         * (_pic16_initPaths): when calling C preprocessor define pic18fXXXX
3741         macro too, when calling assembler define pic18fXXXX *and* __18Fxxxx
3742         macros,
3743         * src/pic16/NOTES: Raphael Neider added in list of active developers
3744         * src/pic16/pcode.c (OPT_TYPE_STR): added strings jumptable_begin and
3745         jumptable_end to prevent bug #,
3746         * (pic16_pciADDWFC, ADDFWC, COMF, CLRF): added some missing flags in
3747         inCond and outCond fields,
3748         * src/pic16/pcoderegs.c (pCodeOptime2pCodes): add a fix for bug #,
3749         * src/pic16/ralloc.c (serialRegAssign): explicit set willCS to 0 to
3750         turn off register spilling,
3751         * (packRegsForOneUse): synced with other ports' versions although it
3752         is not used currently,
3753         * (pic16_packRegisters): added an optimization while reading
3754         structure bitfields, some registers may be saved (malloc code is
3755         decreased by 80 bytes)
3756
3757 2005-03-12 Vangelis Rokas <vrokas AT users.sourceforge.net>
3758
3759         * src/SDCCcse.c (cseBBlock): inside 'do operand lookup' loop test if
3760         left is a bitfield, if yes, then don't optimize assignment. Perhaps
3761         this can be optimized more?
3762
3763 2005-03-10 Raphael Neider <rneider AT web.de>
3764
3765         * src/pic16/gen.c (pic16_loadFSR0, genPackBits, genUnpackBits,
3766           genNearPointerGet): (hopefully) fixed access to bitfields via
3767           pointers (p->bitN = x; and x = p->bitN; failed)
3768
3769 2005-03-09 Paul Stoffregen <paul AT pjrc.com>
3770
3771         * device/lib/printf_fast.c: fix leading zero format, eg "%02d"
3772
3773 2005-03-09 Raphael Neider <rneider AT web.de>
3774
3775         * src/SDCCopt.c (killDeadCode): fixed bug #1156016
3776
3777 2005-03-06 Maarten Brock <sourceforge.brock AT dse.nl>
3778
3779         * src/SDCCicode.h: moved CRITICAL and ENDCRITICAL from SKIP_IC2 to SKIP_IC
3780         * src/mcs51/ralloc.c (willCauseSpill): added check for REG_BIT type,
3781           (regTypeNum): set REG_BIT type if necessary
3782         * src/mcs51/ralloc.h: added define REG_BIT, used to fix bug 1144613
3783         * support/regression/tests/critical.c: check bug 1144613
3784
3785 2005-03-02 Raphael Neider <rneider AT web.de>
3786
3787         * src/pic16/gen.c (genRightShiftLiteral): fixed bug #1154256
3788
3789 2005-02-26 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
3790
3791         * src/avr/ralloc.c (serialRegAssign),
3792         * src/ds390/ralloc.c (serialRegAssign),
3793         * src/hc08/ralloc.c (serialRegAssign),
3794         * src/mcs51/ralloc.c (serialRegAssign),
3795         * src/pic/ralloc.c (serialRegAssign),
3796         * src/pic16/ralloc.c (serialRegAssign),
3797         * src/xa51/ralloc.c (serialRegAssign),
3798         * src/z80/ralloc.c (serialRegAssign): fixed bug #1105154
3799
3800 2005-02-22 Maarten Brock <sourceforge.brock AT dse.nl>
3801
3802         * src/SDCCast.c (decorateType): fixed bug 1124787
3803
3804 2005-02-20 Hubert Sack <sack AT digiplan.de>
3805         committed by Frieder Ferlemann <Frieder.Ferlemann AT web.de>
3806
3807         * src/mcs51/peeph.def: added peepholes 3.h-k and 132.a-f from
3808         patch #1121755
3809
3810 2005-02-20 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
3811
3812         * src/SDCCpeeph.def: new keyword "labelRefCountChange" which allows peepholes
3813         to keep the correct label reference count when adding/removing references
3814         to labels. A peephole file using this is appended to patch #1144962.
3815
3816 2005-02-14 Raphael Neider <rneider AT web.de>
3817
3818         * device/lib/pic16/libc/string/memccpy.c: changed 3rd argument to char
3819         * src/SDCC.lex (process_pragma): fixed to make disable_warning work for PIC16
3820         * src/pic16/gen.c (aopForSym, calls to pic16_aopOp): prevent unneccessary
3821           retrievals of result operand's value on assignment
3822
3823 2005-02-13 Vangelis Rokas <vrokas AT otenet.gr>
3824
3825         * device/include/pic16/string.h: modified prototype for memccpy()
3826         to memccpy(void *, void *, char, size_t)
3827         * src/pic16/gen.c (genFunction, genEndFunction): reenable if-case to
3828         check whether to omit frame pointer or not,
3829         * (genInline): convert all occurences of "\n" to LF in inline
3830         assembler blocks, this helps formatting the inline text,
3831         * (pic16_loadFSR0): modified prototype,
3832         * (genNearPointerGet, genNearPointerSet): reorganization of code,
3833         removed some 8051 legacy code,
3834         * (genPackBits): enabled handling bitfields exceeding one byte in size,
3835         * src/pic16/ralloc.c (pic16_assignRegisters): clear dynrIdx variable
3836         before allocating temporary registers in functions,
3837
3838 2005-02-11 Maarten Brock <sourceforge.brock AT dse.nl>
3839
3840         * support/regression/tests/bitvars.c: corrected the "fix"
3841
3842 2005-02-10 Maarten Brock <sourceforge.brock AT dse.nl>
3843
3844         * support/regression/tests/bitvars.c,
3845         * support/regression/tests/bitwise.c,
3846         * support/regression/tests/rotate.c: "fixed" problems on Alpha
3847
3848 2005-02-10 Raphael Neider <rneider AT web.de>
3849
3850         * src/pic16/pcode.c (assignToSameBank) : fixed cast to pointer of
3851           different size for Alpha
3852         * src/pic16/gen.c (genCmpEq) : improved compare with 0
3853
3854 2005-02-09 Raphael Neider <rneider AT web.de>
3855
3856         * src/SDCC.lex(doPragma) : save and restore warning options as well
3857           (also added new stack plus clone- and copyAndFreeSDCCERRG())
3858         * have #pragma less_pedantic set the errorlevel to WARNING
3859           (fixes #1117001)
3860         * (cloneOptimize) : fixed wrong malloc's size
3861         * support/Util/SDCCerr.[ch] : made SDCCERRG globally accessible to
3862           facilitate correct handling of #pragma (save|restore)
3863
3864 2005-02-09 Maarten Brock <sourceforge.brock AT dse.nl>
3865
3866         * src/mcs51/gen.c: removed non-standard C nameless struct/union
3867
3868 2005-02-04 Slade Rich <slade_rich AT users.sourceforge.net>
3869
3870         * src/pic/gen.c : Fix for bugs #1080519 & #1115662.
3871
3872 2005-02-03 Maarten Brock <sourceforge.brock AT dse.nl>
3873
3874         * device/include/mcs51/c8051f120.h: added declarations for sbit port 2,3&4
3875
3876 2005-02-02 Raphael Neider <rneider AT web.de>
3877
3878         * src/SDCCast.c (processParms): disabled W_NONRENT_ARGS for pic16 port
3879         * src/pic16/gen.c (aopForSym): reenabled special case for function pointers
3880         * (pic16_storeForReturn): fixed to allow returning function pointers
3881         * (genPackBits): improved accessing full bytes, implemented for GPOINTERs
3882         * device/include/pic16/{stddef.h,stdbool.h}: added
3883
3884 2005-02-02 Maarten Brock <sourceforge.brock AT dse.nl>
3885
3886         * device/include/mcs51/c8051f040.h: added define CPT2_PAGE
3887
3888 2005-02-01 Slade Rich <slade_rich AT users.sourceforge.net>
3889
3890         * src/pic16/pic16.dsp : Added file graph.c to make it compile under windows
3891         * src/pic16/Makefile.bcc : Do not use this file but added file graph.c as it
3892          appeared to be required
3893
3894 2005-01-31 Borut Razem <borut.razem AT siol.net>
3895
3896         * support/scripts/sdcc.nsi: added include/asm/ds390, include/asm/mcs51,
3897           include/mcs51 and include/z80 directories to the package
3898
3899 2005-01-26 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
3900
3901         * src/hc08/gen.c (genFunction): fixed bug #1112752
3902
3903 2005-01-30 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
3904
3905         * src/mcs51/peeph.def: adapted peephole 258.x to changed gen.c (genAnd)
3906
3907 2005-01-29 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
3908
3909         * src/mcs51/gen.c (genAnd): accessing LSB/MSB by rotating acc
3910
3911 2005-01-29 Maarten Brock <sourceforge.brock AT dse.nl>
3912
3913         * device/include/Makefile.in: create/copy mcs51 and z80 include subdirs
3914
3915 2005-01-27 Maarten Brock <sourceforge.brock AT dse.nl>
3916
3917         * device/include/c8051fxxx.h: removed these 6 files
3918         * device/include/mcs51/c8051fxxx.h: added these 11 new files
3919
3920 2005-01-26 Raphael Neider <rneider AT web.de>
3921
3922         * src/pic16/gen.c (genAssign): fixed assignment from longs
3923           in codespace (were cut to three bytes)
3924         * (genDummyRead): implemented (except for CODESPACE...),
3925           fixed bug #1108575
3926         * src/pic16/glue.c (emitStatistics): beautified
3927         * device/lib/pic16/libm/Makefile: added include path
3928
3929 2005-01-26 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
3930
3931         * src/z80/gen.c (aopPut): fixed bug #1103902
3932
3933 2005-01-25 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
3934
3935         * device/lib/expf.c: fixed bug #1095792
3936
3937 2005-01-24 Vangelis Rokas <vrokas AT otenet.gr>
3938
3939         * device/lib/pic16/libm: added Math library sources
3940
3941 2005-01-24 Raphael Neider <rneider AT web.de>
3942
3943         * src/pic16/pcode.h: added second memory operand to pCodeOpReg
3944           to enable upcast to pCodeOpReg2 (there is no type tag to
3945           differenciate the two and pic16_popGet2p cast into PCOR2)
3946         * src/pic16/main.c (_process_pragma): fixed another malloc bug
3947           (sizeof(sectNames) changed to sizeof(sectName))
3948           Both patches fix segfaults under MinGW.
3949
3950 2005-01-23 Raphael Neider <rneider AT web.de>
3951
3952         * src/pic16/{device.c,pcode.c}: s/free/Safe_free/g for
3953           Safe_[mc]?alloc()'ed variables
3954         * src/pic16/gen.c (pic16_aopOp,pic16_popGet): added handling
3955           of (byte sized) temporaries (assign them to WREG for now)
3956         * src/pic16/main.c (_process_pragma): fixed nasty malloc bug
3957           (used sizeof(set *sectSyms) instead of sizeof(struct sectSym)),
3958           this might fix SIGSEGVs on MinGW...
3959         * src/SDCCopt.c (killDeadCode): restored original behaviour
3960           (volatile operands might get thrown away though)
3961
3962 2005-01-23 Vangelis Rokas <vrokas AT otenet.gr>
3963
3964         * src/pic16/gen.c: fixed bug #1106975,
3965         * src/pic16/gen.c: fixed possible bug #1102572, now during TOS
3966         pointer update, INTCON is saved, global interrupts are disabled and
3967         restored after updateing TOS.
3968         * src/SDCC.y, src/SDCC.lex, src/SDCCsymt.c, src/SDCCsymt.h:
3969         * added function attribute 'shadowregs' to take advantage of shadow
3970         registers,
3971         * added function attribute 'wparam' as an alternative to the wparam
3972         pragma,
3973         * support/Utils/SDCCerr.[ch]: added error E_SHADOWREGS_NO_ISR when
3974         user declares a non-ISR function as 'shadowregs',
3975         * doc/sdccman.lyx: updated to reflect recent changes of pic16 port
3976
3977 2005-01-22 Vangelis Rokas <vrokas AT otenet.gr>
3978
3979         * .version: bumped version number to 2.4.8
3980         * device/lib/pic16/pics.all: list of PIC18F devices supported by
3981         pic16 port,
3982         * device/lib/pic16/libio/i2c/: I2C module support library,
3983         * device/include/pic16/i2c.h: I2C support library header,
3984         * device/lib/pic16/libc/stdio/: standard IO support sources,
3985         * (printf_small.c): printf_small() source, supports float print,
3986         * (printf_tiny.c): printf_tiny() source, does not support floats,
3987         * device/lib/pic16/Makefile.common.in: added OPT_FLAGS macro to
3988         enable global optimizations for entire library source, other
3989         Makefiles in the source tree are also modified to reflect this,
3990         * device/lib/pic16/libc/stdlib/putchar.c (putchar): dummy putchar()
3991         function,
3992         * doc/sdccman.lyx: updated to reflect new changes,
3993         * src/pic16/gen.c (aopForSym): don't handle sym->iaccess in
3994         sym->onStack if-case,
3995         * src/pic16/main.c (_pic16_keywords): commented out keywords bit,
3996         sbit, idata, _idata, xdata, _xdata,
3997         * added pragma library, to link an external library, (see doc),
3998         * removed command line options, --pomit-config-words, --pomit-ivt,
3999         --pleave-reset-vector,
4000         * (pic16_finaliseOptions): when define macro SDCC_MODEL_{SMALL/LARGE}
4001         when calling assembler to reflect memory model used, also define
4002         macro STACK_MODEL_{SMALL/LARGE} when compiling and assembling to
4003         reflect stack model used,
4004         * src/pic16/ralloc.c (pic16_allocDirReg): when operand is allocated
4005         on stack return NULL,
4006
4007 2005-01-22 Daniel Winkler <post AT danielwinkler.de>
4008
4009         * src/SDCCopt.c (killDeadCode): do not throw iCodes away if one
4010           of the operands is volatile. Fixes #1020220
4011
4012 2005-01-22 Daniel Winkler <post AT danielwinkler.de>
4013
4014         * src/pic16/pcoderegs.c (pCodeOptime2pCodes): reenabled optimization
4015         * (OptimizeRegUsage): make sure that there is really no other flow where
4016           the first pCode is used
4017
4018 2005-01-22 Raphael Neider <rneider AT web.de>
4019
4020         * src/pic16/pcoderegs.c (pCodeOptime2pCodes): disabled optimization
4021           to fix #1106967 (pCode->seq are not set up correctly)
4022
4023 2005-01-22 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
4024
4025         * src/SDCCglue.c (glue): make sure code area is declared before the
4026         static initialization area.
4027
4028 2005-01-21 Raphael Neider <rneider AT web.de>
4029
4030         * device/lib/Makefile.in: fixed test for pic16 install dir
4031         * device/lib/pic16/*/Makefile*: modified compile flags to enable
4032           optimizations
4033         * doc/sdccman.lyx: updated banksel optimization, removed --flr-support and
4034           added --optimize-goto compiler switch and pragma wparam documentation
4035         * src/pic16/pcode.c (pic16_OptimizeBanksel): removed statistics dump
4036         * src/pic16/pcodepeep.c (pic16_pCodeOpCopy): fixed copying of WREG, PRODL
4037           and PRODH closing bug #1071770 (peephole optimizer)
4038
4039 2005-01-19 Raphael Neider <rneider AT web.de>
4040
4041         * src/SDCCglobl.h: ensure that PATH_MAX >= 2048 to guarantee
4042           cmdLine buffers (used when calling sdcpp...) are large enough
4043           (MAX_PATH=256 truncates arguments leading to system halts when
4044           used in MinGW...)
4045         * src/pic16/gen.c (pic16_sameRegs): relaxed size criterion
4046         * (genUminus): rewritten to for efficiency
4047         * (genNearPointer[GS]et): enforce reloading of FSR0 (was still
4048           used uninitialized in some cases)
4049         * (genCast): upcasting a 16bit int to a 24bit GPOINTER may not
4050           copy the third byte from the int -- now assumes 0x80 (data memory)
4051         * src/pic16/genarith.c (pic16_genPlus): fixed bug when swapping
4052           operands (genAddLit expects the iCode's operands to swapped as
4053           well), fixed leftover bytes (crashed for short left operands)
4054         * (pic16_genMinusDec): performance improvements, removed false
4055           PIC14 emitSKPNCs
4056         * (pic16_genMinus): fixed to cope with differently sized operands
4057         * src/pic16/glue.c (pic16_glue): added new banksel optimization
4058           for --obanksel > 1
4059         * src/pic16/pcode.c: implemented (first phase of) banksel optimization
4060         * src/pic16/graph.[ch]: implementation of directed graphs, used by
4061           new banksel optimization
4062         * src/pic16/pcoderegs.c (pCodeRegMapLiveRangesInFlow): prevented
4063           analysis for temporary registers (segfaults...)
4064         * src/pic16/peeph.def: added rule
4065
4066 2005-01-18 Vangelis Rokas <vrokas AT otenet.gr>
4067
4068         * device/lib/pic16/libc/stdlib/x_ftoa.c: it defines x_ftoa function
4069         which converts a float number to its ASCII representation
4070         * device/lib/pic16/libc/utils/cnvfrac.S,cnvint.S: support
4071         functions to convert the fractional and integer part of a float to ASCII,
4072         * device/lib/pic16/libc/stdlib/(calloc.c,free.c, malloc.c,
4073         realloc.c): added _MALLOC_SPEC to explicit place variables in data
4074         ram
4075         * device/include/asm/pic16/features.h: added _CODE, _DATA, _AUTOMEM,
4076         _STATMEM macros,
4077         * device/include/pic16/adc.h: added GPL info,
4078         * src/pic16/gen.c (genIfxpCOpJump): perform an genIfxJump but using
4079         a pCodeOp as tested operand,
4080         * (genNearPointerGet): optimized bit testing, does not use
4081         intermediate register for bit value, test directly instead with
4082         BTFSS, BTFSC, works only for single bits,
4083         * (genpic16Code): dump the name of the iCode in the asm,
4084         * src/pic16/ralloc.c (decodeOp): removed static declaration and
4085         renamed to pic16_decodeOp,
4086         * (serialRegAssign): do not allocate a temporary register for iCode
4087         sequences that test a single bit for 1/0
4088
4089 2005-01-12 Vangelis Rokas <vrokas AT otenet.gr>
4090
4091         * src/pic16/pcode.[ch]: introduced pic16_stackpnt_*,
4092         pic16_framepnt_*, pic16_stack_*, pic1_frame_* pointer variables to
4093         access stack and frame pointers. They are initially assigned to
4094         point at pic16_pc_fsr1[lh] and pic16_pc_fsr2[lh] variables and other
4095         accessing SFRs. Updated all occurences of modification of stack or
4096         frame pointer in gen.c and pcode.c,
4097         * src/pic16/ralloc.c (serialRegAssign): fixed two bugs with
4098         assigning of a literal value to pointers,
4099         * src/pic16/main.c (pic16_finiliseOptions): set pre-processor define
4100         flag STACK_MODEL_SMALL or STACK_MODEL_LARGE according to the model
4101         selected
4102
4103 2005-01-11 Vangelis Rokas <vrokas AT otenet.gr>
4104
4105         * doc/sdccman.lyx: update documentation about stack pragma, added
4106         some info for stack memory models
4107
4108 2005-01-08 Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
4109
4110         * src/pic16/gen.c (DEBUGpc): MSVC 6 does not support macro variable arguments
4111
4112 2005-01-08 Raphael Neider <rneider AT web.de>
4113
4114         * src/pic16/device.c (pic16_dump_usection): changed naming scheme for
4115           udata sections to fix bug #1097823
4116
4117 2005-01-05 Raphael Neider <rneider AT web.de>
4118
4119         * src/pic16/gen.c (genGenericShift): added handling of differently
4120           sized left operand and result
4121
4122 2005-01-04 Raphael Neider <rneider AT web.de>
4123
4124         * src/pic16/gen.c (genIfxJump): fixed inverted skips on CARRY
4125         * (genIfx): fixed (?) read from uninitialized SPIL_LOC (now assumes CARRY
4126           to hold the condition bit)
4127         * added new version of genCmp (old code available via #define)
4128         * added new version of genShiftLeft/genShiftRight in a generic
4129           way, now supports shifting by negative values
4130         * (genLeftShiftLiteral, genRightShiftLiteral): use absolute value of
4131           shiftCount (expected by genGenericShift)
4132         * src/pic16/genarith.c (genPlus): added code for adding CARRY+literal
4133         * src/pic16/pcode.c (pic16_OptimizeJumps): removed annoying statistics
4134           dump
4135         * (pic16_newpCodeOpLit): changed to cast to unsigned char (as e.g. -32766
4136           is an invalid literal too...)
4137
4138 2005-01-04 Vangelis Rokas <vrokas AT otenet.gr>
4139
4140         * src/pic16/gen.c (aopForSym, genEndFunction): applied some fixes
4141         from Raphael Neider,
4142         * src/pic16/pcode.c (pic16_newpCodeOpLit): removed casting to char
4143         for 8-bit literals. This fixes some literal operands which are sign
4144         extended to 16-bits ints when instruction needs only 8-bits.
4145
4146 2004-12-31 Paul Stoffregen <paul AT pjrc.com>
4147
4148         * device/lib/logf.c: added mcs51 assembly version
4149         * device/lib/expf.c: added mcs51 assembly version
4150         * device/lib/_logexpf.c: new shared asm code for expf and logf
4151         * device/include/math.h: add defines for assembly math library
4152         * device/lib/Makefile.in: build new _logexpf.c
4153         * device/lib/libfloat.lib: use new _logexpf.c
4154
4155 2004-12-29 Slade Rich <slade_rich AT users.sourceforge.net>
4156
4157         * src/pic/device.c
4158         * src/pic/pcode.c : adjusted internal stack and pre-allocated registers for
4159           device types which have less than 0x7f registers.
4160
4161 2004-12-29 Slade Rich <slade_rich AT users.sourceforge.net>
4162
4163         * src/pic/genarith.c : Fixed problem with subtraction where the result would not be updated when borrowing.
4164
4165 2004-12-28 Paul Stoffregen <paul AT pjrc.com>
4166
4167         * device/lib/printf_fast.c: only build on supported arch.
4168         * device/lib/printf_tiny.c: only build on supported arch.
4169         * device/lib/printf_fast_f.c: only build if asm float lib
4170         * device/lib/_fsget1arg.c: only build if asm float lib
4171         * device/lib/_fsget2args.c: only build if asm float lib
4172         * device/lib/_fsnormalize.c: only build if asm float lib
4173         * device/lib/_fsreturnval.c: only build if asm float lib
4174         * device/lib/_fsrshift.c: only build if asm float lib
4175         * device/lib/_fsswapargs.c: only build if asm float lib
4176         * device/include/stdio.h: don't provide print_fast,
4177           print_fast_f, print_tiny prototypes if --xstack used
4178
4179 2004-12-28 Maarten Brock <sourceforge.brock AT dse.nl>
4180
4181         * device/lib/sincosf.c (sincosf): don't invert bit/bool by ~
4182         * support/regression/ports/mcs51-stack-auto/spec.mk: added new _fs.. files
4183           to the SOURCES
4184
4185 2004-12-28 Paul Stoffregen <paul AT pjrc.com>
4186
4187         * device/lib/printf_fast_f.c: same as printf_fast, but
4188           with floating point enabled
4189         * device/lib/printf_fast.c: minor tweaks
4190         * device/include/stdio.h: add printf_fast_f
4191
4192 2004-12-27 Paul Stoffregen <paul AT pjrc.com>
4193
4194         * src/SDCCmain.c: make --float-reent default for mcs51
4195         * device/lib/_fsadd.c: added mcs51 assembly version
4196         * device/lib/_fssub.c: added mcs51 assembly version
4197         * device/lib/_fsmul.c: added mcs51 assembly version
4198         * device/lib/_fsdiv.c: added mcs51 assembly version
4199         * device/lib/_fseq.c: added mcs51 assembly version
4200         * device/lib/_fsneq.c: added mcs51 assembly version
4201         * device/lib/_fsgt.c: added mcs51 assembly version
4202         * device/lib/_fslt.c: added mcs51 assembly version
4203         * device/lib/_fscmp.c: shared code for fseq,fsgt,fslt,fsneq
4204         * device/lib/Makefile.in: add _fscmp to build
4205         * device/lib/libfloat.lib: add _fscmp to build
4206
4207 2004-12-27 Paul Stoffregen <paul AT pjrc.com>
4208
4209         * device/lib/_fs2slong.c: added mcs51 assembly version
4210         * device/lib/_fs2sint.c: added mcs51 assembly version
4211         * device/lib/_fs2schar.c: added mcs51 assembly version
4212         * device/lib/_fs2ulong.c: added mcs51 assembly version
4213         * device/lib/_fs2uint.c: added mcs51 assembly version
4214         * device/lib/_fs2uchar.c: added mcs51 assembly version
4215         * device/lib/_slong2fs.c: added mcs51 assembly version
4216         * device/lib/_sint2fs.c: added mcs51 assembly version
4217         * device/lib/_schar2fs.c: added mcs51 assembly version
4218         * device/lib/_ulong2fs.c: added mcs51 assembly version
4219         * device/lib/_uint2fs.c: added mcs51 assembly version
4220         * device/lib/_uchar2fs.c: added mcs51 assembly version
4221         * device/include/float.h: added #define to select asm vs c
4222
4223 2004-12-26 Paul Stoffregen <paul AT pjrc.com>
4224
4225         * device/lib/printf_fast.c: improvements to float output
4226         * device/include/float.h: add defines for assembly float library
4227         * device/lib/_fsget1arg.c: receive 1 float arg
4228         * device/lib/_fsget2args.c: receive 2 float args (reentrant)
4229         * device/lib/_fsnormalize.c: normalize a float
4230         * device/lib/_fsreturnval.c: return float, various helper routines
4231         * device/lib/_fsrshift.c: right shift a float's mantissa
4232         * device/lib/_fsswapargs.c: swap 2 floats
4233         * device/lib/Makefile.in: build these 6 new files for mcs51
4234         * device/lib/libfloat.lib: add these 6 files to the library
4235
4236 2004-12-26 Borut Razem <borut.razem AT siol.net>
4237
4238         * sim/ucsim/avr.src/arith_inst.cc: fixed bug #1088372- savr is not
4239           built by gcc 3.4.2
4240
4241 2004-12-25 Paul Stoffregen <paul AT pjrc.com>
4242
4243         * device/lib/printf_tiny.c: printf for mcs51 in only 267 bytes,
4244           and fully reentrant and register bank neutral.
4245         * device/lib/printf_fast.c: added float (not enabled by default),
4246           added compact/slower integer (also not enabled by default),
4247           improved size/speed of fast integer code, other minor changes
4248         * device/include/stdio.h, device/lib/Makefile.in,
4249           device/lib/libsdcc.lib: integrate printf_tiny into mcs51 build
4250
4251 2004-12-24 Maarten Brock <sourceforge.brock AT dse.nl>
4252
4253         * src/pic16/pcode.c: declaring variables other than at the start of a
4254           block is not supported in C by VC6.
4255
4256 2004-12-22 Vangelis Rokas <vrokas AT otenet.gr>
4257
4258         * applied a previous patch from Raphael Neider that wasn't included
4259         in the previous commits, which fixes infinite loops within jumptable
4260         improvements,
4261         * made some fixes that previous patches introduced
4262
4263 2004-12-21 Vangelis Rokas <vrokas AT otenet.gr>
4264
4265         * src/pic16/gen.c (pic16_aopGet): applied fix from Raphael Neider
4266         that fixes an issue with AOP_PCODE asmop's offset,
4267         * (pic16_popCopyReg): update instance field too,
4268         * (mov2w): modified to pic16_mov2w because it conflicts with mov2w
4269         function of pic port,
4270         * (genCmp, genAnd, genAssign),
4271         * src/pic16/genarith.c (genAddLit): some fixes from Raphael Neider,
4272
4273 2004-12-20 Vangelis Rokas <vrokas AT otenet.gr>
4274
4275         * src/SDCCast.c (gatherAutoInit): allow pic16 to emit static
4276         variables initial values to idata section,
4277         * src/SDCCicode.c (geniCodeCall): patch from ### to fix unreferenced
4278         variables in some functions. This utilizes parmBytes field of iCode
4279         structure to hold the offset of the variable in stack. (might be
4280         able to use the stack field too?)
4281         * applied patch from Raphael Neider # ### , # ###
4282         * src/pic16/glue.c (pic16emitRegularMap): fix to print static
4283         variable initial values in idata section,
4284         * src/pic16/ralloc.c (pic16_allocDirReg): don't allocate register
4285         for static variables with initial value
4286         * src/device/lib/pic16/libsdcc/float/ulong2fs.c (__ulong2fs):
4287         applied fix in while loop from Raphael Neider.
4288
4289 2004-12-19 Maarten Brock <sourceforge.brock AT dse.nl>
4290
4291         * src/ds390/gen.c (genCpl): fixed bit=~(char/bit) bugs, added warning
4292         * src/ds390/main.c (_ds390_regparm): don't pass bit params in registers
4293         * src/ds390/ralloc.c (serialRegAssign): spill bits
4294         * src/mcs51/gen.c (genCpl): fixed bit=~(char) bugs, added warning
4295         * support/Util/SDCCerr.c,
4296         * support/Util/SDCCerr.h: added warning W_COMPLEMENT for using bit=~(bit)
4297         * support/regression/tests/bitvars.c: added tests for bitwise complement(~)
4298         * support/regression/tests/bitwise.c: added test for bitwise complement(~)
4299
4300 2004-12-09 Maarten Brock <sourceforge.brock AT dse.nl>
4301
4302         * device/include/sdcc-lib.h: inserted LGPL, added includes
4303           asm/ds390/features.h and asm/mcs51/features.h
4304         * device/include/asm/default/features.h,
4305         * device/include/asm/gbz80/features.h,
4306         * device/include/asm/z80/features.h: added empty _AUTOMEM
4307           and _STATMEM
4308         * device/include/asm/ds390/features.h,
4309         * device/include/asm/mcs51/features.h: added files with defines for
4310           _AUTOMEM and _STATMEM indicating automatic and static storage class
4311         * device/lib/printf_large.c (_print_format): optimized & used _AUTOMEM
4312         * doc/sdccman.lyx: version 2.4.7, updated xstack documentation
4313         * src/SDCCicode.c (geniCodeCast),
4314         * src/SDCCsymt.c (compareType): allow cast of data-ptr to idata-ptr
4315         * src/SDCCloop.c (loopInduction): removed unused variable lr
4316         * src/SDCCopt.c (convilong, convertToFcall): moved "easy special case"
4317           to convertToFcall to include char modulo (RFE 1065037), added check
4318           if left operand is unsigned and use abs of literal value
4319         * src/SDCCpeeph.c (setFromConditionArgs): removed double quotes option
4320           as it doesn't work after conversion from peephole.def to peephole.rul
4321         * src/mcs51/gen.c (toBoolean): added check for size,
4322           (genModOneByte): optimized code for signed char modulo a literal
4323           power of 2 (thanks to Hubert Sack),
4324           (genRRC): removed unnecessary "clr c",
4325           (genRLC): replaced "add a,acc" with cheaper "rlc a"
4326         * src/mcs51/peeph.def: renamed 115 to 115.a, added rule 115.b: another
4327           jump optimization,
4328           swapped rules 256.c and 256.d,
4329           extended 256.d by using new multiple checks (thanks Erik),
4330           added rules 256.e and 256.f,
4331           updated rule 261.a and 261.b to new generated code
4332         * support/regression/tests/muldiv.c: added test div/mod by a power of 2
4333
4334 2004-12-07 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
4335
4336         * src/SDCCloop.c (basicInduction, loopInduction): fixed several
4337           induction related bugs, including first part of bug #1074377
4338
4339 2004-12-05 Vangelis Rokas <vrokas AT otenet.gr>
4340
4341         * applied patch from bug-report #1076292,
4342         * applied patches for genAnd and Goto-optimizations for Raphael
4343         Neider,
4344         * src/SDCCicode.c (printOperand): fixed !REGA source to compile and
4345         dump a less iCode information,
4346         * src/pic16/device.h (pic16_options_t): added field debgen,
4347         * src/pic16/gen.h: added macros DUMP_FUNCTION_ENTRY,
4348         DUMP_FUNCTION_EXIT, FENTRY, FENTRY2,
4349         * src/pic16/gen.c (my_powof2): renamed to pic16_my_powof2 and made
4350         puclic,
4351         * (various functions): added macros FENTRY and FENTRY2 to functions,
4352         to emit function prologue,
4353         * (various functions): fixed indentation,
4354         * (genNearPointerGet): fixed loading of FSR0,
4355         * (genPackBits): applied patch from Raphael Neider to fix updating
4356         of FSR0 and touching only the modified bits,
4357         * src/pic16/genarith.c (various functions): added macros FENTRY to
4358         emit function prologue in comments,
4359         * src/pic16/pcode.h: added functions debugf2, debugf3,
4360         * src/pic16/ralloc.c: partial fix for packForPush caused
4361         segmentation fault,
4362
4363 2004-12-04 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
4364
4365         * src/mcs51/peeph.def: added 261.a,b (16 bit rotate) by Stas Sergeev
4366           <stsp AT users.sourceforge.net> with reversed byte order
4367         * support/regression/tests/rotate.c: added (ds390 skips some tests)
4368
4369 2004-12-03 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
4370
4371         * src/z80/gen.c (genLeftShift, genRightShift): fixed second part of
4372           bug #1074377
4373         * src/hc08/gen.c (genrshFour, shiftRLong, shiftLLong),
4374         * src/mcs51/gen.c (shiftLLong): Fixed some shifting bugs Frieder found
4375
4376 2004-12-02 Slade Rich <slade_rich AT users.sourceforge.net>
4377
4378         * src/pic/pcode.c : fixed a problem where banksel was not being inserted.
4379
4380 2004-12-02 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
4381
4382         * src/SDCCpeeph.c (callFuncByName): support combined peephole rule
4383           conditions,
4384           (setFromConditionArgs): friendly operand parser for peephole rules,
4385           (operandBaseName, operandsNotRelated): new peephole condition
4386           "operandsNotRelated" -- similar to "operandsNotSame", but takes
4387           architecture specific register naming into account, handles n-way
4388           comparisons, and supports quoted literals
4389         * src/mcs51/peeph.def: restored rule 177.d with an extra condition
4390
4391 2004-12-02 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
4392
4393         * src/mcs51/peeph.def: fixed bug #1076940
4394
4395 2004-12-02 Slade Rich <slade_rich AT users.sourceforge.net>
4396
4397         * device/include/pic/pic16f877.h : added an include file for the PIC16F877 device.
4398
4399 2004-11-28 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
4400
4401         Adding support for replacing ljmps with sjmps in jumptables
4402         generated for switch statements. For now you need to set the
4403         environment variable SDCC_SJMP_JUMPTABLE to enable this.
4404         Now 4 algorithms for mcs51 jumptable generation are used:
4405         ljmp or sjmp jumptables for up to 16 cases, stack-pushing target
4406         addresses loaded pc-relative for up to 112 cases and stack-pushing
4407         target addresses loaded with offset from dptr for up to 256 cases.
4408
4409         * src/SDCCpeeph.c: added peephole conditional labelJTInRange
4410         * src/mcs51/main.c: adapted constants for switch table generation
4411         * src/mcs51/peeph.def: added 260.x for replacing ljmp with sjmp
4412
4413 2004-11-26 Maarten Brock <sourceforge.brock AT dse.nl>
4414
4415         * device/lib/printf_large.c (_print_format): fixed bug 1073386
4416         * support/regression/tests/bug1057979.c: added test for bug 1073386
4417
4418 2004-11-25 Vangelis Rokas <vrokas AT otenet.gr>
4419
4420         * src/pic16/pcode.c: fixed bug which may produce error in non-GNU
4421         compilers
4422
4423 2004-11-25 Vangelis Rokas <vrokas AT otenet.gr>
4424
4425         * src/pic16/device.h,
4426         * src/pic16/genarith.c,
4427         * src/pic16/glue.c,
4428         * src/pic16/main.c,
4429         * src/pic16/pcode.c: applied patches #1068154 and #1070213
4430
4431 2004-11-24 Vangelis Rokas <vrokas AT otenet.gr>
4432
4433         Large cummulative patch for pic16 port.
4434         * device/lib/pic16/gstack.h: NEW, user can specify its own handler
4435         to call when a stack overflow occurs,
4436         * (malloc.h): added CVS Id tag,
4437         * (pic18f{242,252,442,452}.h): added T0CONbits structure and
4438         variable,
4439         * added libc directory. The current version of LibC contains string
4440         functions, ctype functions and macros and some functions of the
4441         stdlib set (like malloc/free/atof/atoi etc...). All functions are to
4442         be extensively tested in the future. Standard disclaimer here.
4443         Library is not automatically build yet. But one can build it by
4444         invoking 'make' inside the libc directory.
4445         * added ADC library under libio. Preliminary version yet.
4446
4447         * src/pic16/gen.h: added emitTOGC macro, to toggle Carry flag,
4448         * src/pic16/gen.c (aopForRemat): asmop size is filled by
4449         aopForRemat() now and not by pic16_aopOp(),
4450         * (pic16_popGetTempReg): removed warning messgae when allocating
4451         temporary registers, its a buggy feature and will be removed,
4452         * (pic16_popGet): set register instance field in AOP_CRY,
4453         * (pic16_outBitC): fixed for results in size greater than 1,
4454         * (genUminusFloat): fixed for pic16, ported code from mcs51,
4455         * (pic16_storeForReturn): optimized return of 0,
4456         * (genCmp): experimental code for new genCmp which uses PIC18's
4457         special compare&skip instructions. Initial tests fail some times
4458         with variables grater than 1 byte in size, so new code is disabled,
4459         * (genUnpackBits, genPackBits): more optimizations in reading/writing,
4460         a single bit,
4461         * (genCast): began a fix to optimize the casting of a bit to another
4462         bit, now assigning a bitfield to another bitfield will fail, sorry,
4463         * src/pic16/main.c: disabled the use of lr-support feature,
4464         * src/pic16/pcode.h: renamed PCASMDIR to PCAD,
4465         * added some function prototypes, added function _debugf prototype,
4466         * src/pic16/pcode.c: (pic16_get_op): fixed emitting operands of register
4467         bits with offset (case PO_GPR_BIT),
4468         * (genericPrint): don't emit INFO pcode when --pcode-verbose not in
4469         command line,
4470         * (isBankInstruction): modified to return 0 for no banking instruction,
4471         and 1 for banking instruction,
4472         * (pic16_isPCinFlow): check for PCAD (assembler directives) too,
4473         caused stop processing pCodes after a inline assembly block,
4474         * (pic16_popCopyGPR2Bit): updated to match bitfields with offset,
4475         * src/pic16/pcoderegs.c: fixed a bug with eliminating some temporary
4476         registers when it shouldn't,
4477         * src/pic16/ralloc.c (allocReg): add preliminary support for
4478         supporting a limited set of temporary registers,
4479
4480 2004-11-23 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
4481
4482         * src/hc08/gen.c (genAssign, genPointerGetSetOfs, genDataPointerGet,
4483           genDataPointerSet): ensure assignments always copy in MSB to LSB
4484           order,
4485           (loadRegFromAop): recognize CLRH optimization,
4486           (genFunction): optimize RECEIVE iCodes in reentrant functions
4487
4488 2004-11-20 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
4489
4490         * src/SDCCmain.c (parseCmdLine, optionsTable[]): fixed bug with
4491           --out-fmt-s19 turning into --out-fmt-elf if s19 was already
4492           selected.
4493         * src/SDCCmain.c (linkEdit): don't define SSEG for HC08
4494         * src/hc08/main.c (_hc08_setDefaultOptions): default xdata to be
4495           contiguous with data
4496
4497 2004-11-19 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
4498
4499         * device/lib/_gptrget.c (_gptrget),
4500         * device/lib/_gptrgetc.c (_gptrgetc),
4501         * device/lib/_gptrput.c (_gptrput): _naked allows to use ret
4502           instead of sjmp to ret
4503         * src/mcs51/peeph.def: added peepholes 3.d-g and 177.g,h provided
4504           by Hubert Sack <hsack2002 AT arcor.de> in RFE #1067986, thanks
4505
4506 2004-11-18 Maarten Brock <sourceforge.brock AT dse.nl>
4507
4508         * .version: bumped version to 2.4.7
4509         * device/lib/_gptrget.c (_gptrget): is now _naked
4510         * device/lib/_gptrgetc.c (_gptrgetc): is now _naked
4511         * device/lib/_gptrput.c (_gptrput): is now _naked
4512         * src/SDCCast.c (createBlock): removed ridiculous self-assignment,
4513           (createFunction): fixed xstack
4514         * src/SDCCglue.c (emitMaps): set allocation required for bit area
4515         * src/SDCCicode.c (geniCodeCast): don't change SPEC_OCLS for literal
4516           or bit either,
4517           (geniCodeCritical): store original interrupt state in an iTemp bit
4518           var unless stack-auto
4519         * src/SDCCicode.h: added CRITICAL and ENDCRITICAL to SKIP_IC2
4520         * src/SDCCmain.c (setIncludePath): added include/target to search path
4521         * src/SDCCmem.c (allocParms): store bit vars in bit space, not overlay
4522         * src/SDCCsymt.c (checkFunction): don't check regbank for isr's against
4523           prototype,
4524           (processFuncArgs): put bit vars in bit area
4525         * src/mcs51/gen.c (saveRegisters, unsaveRegisters, genXpush, saveRBank,
4526           unsaveRBank): fixed xstack,
4527           (genFunction): bugfix: replaced (global!) reentrant with fReentrant,
4528           (genFunction, genEndFunction): fixed xstack,
4529           (genAssign): optimization don't walk backwards through mem
4530         * src/mcs51/main.c (_mcs51_regparm): don't pass bit params in registers
4531         * src/mcs51/ralloc.c (createStackSpil): spill bits to bit area
4532         * support/regression/Makefile: also make library (for stack-auto) when
4533           making "all" and added "test-mcs51-xstack-auto"
4534         * support/regression/fwk/lib/testfwk.c: added T2_isr prototype for mcs51
4535         * support/regression/ports/mcs51/T2_isr.c: added this file as a stub
4536         * support/regression/ports/mcs51/fwk.lib: added to link T2_isr stub
4537         * support/regression/ports/mcs51/spec.mk: added rules for fwk.lib
4538         * support/regression/ports/mcs51-stack-auto/spec.mk: replaced
4539           make-library by MAKE_LIBRARY
4540         * support/regression/ports/mcs51-xstack-auto/spec.mk: file added to run
4541           regression tests for xstack
4542         * support/regression/tests/bitvars.c: test for bit vars (bug 938782)
4543         * support/regression/tests/critical.c: test for critical on mcs51
4544
4545 2004-11-18 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
4546
4547         * support/regression/ports/ucz80/spec.mk: use include and lib files from
4548           built version of sdcc instead of installed version
4549
4550 2004-11-14 Maarten Brock <sourceforge.brock AT dse.nl>
4551
4552         * src/mcs51/gen.c (toBoolean): fixed bug 1065458
4553         * device/lib/Makefile.in: z80 uses printf_large.c, sprintf.c and
4554           vprintf.c now
4555         * device/lib/printf_large.c (calculate_digit): fixed bug 1057979
4556         * device/lib/z80/Makefile: don't use printf.c as it fails bug 1057979
4557           WARNING: remove device/lib/build/z80/printf.o by hand when
4558           updating from previous build!
4559         * device/lib/z80/printf.c: updated comment
4560         * support/regression/tests/bug1057979.c: test all ports now
4561         * support/regression/tests/bug1065458.c: file added
4562
4563 2004-11-12 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
4564
4565         * src/z80/gen.c (genFunction, genEndFunction): avoided generating
4566           *_start and *_end symbols for static functions
4567
4568 2004-11-11 Maarten Brock <sourceforge.brock AT dse.nl>
4569
4570         * src/SDCCmain.c (linkEdit): don't suppress crt0 if --nostdlib is used
4571           and search crt0.o in all library paths,
4572           (setIncludePath): proper handling of --nostdinc,
4573           (setLibPath): proper handling of --nostdlib
4574         * support/regression/Makefile,
4575         * support/regression/ports/ds390/spec.mk,
4576         * support/regression/ports/gbz80/spec.mk,
4577         * support/regression/ports/hc08/spec.mk,
4578         * support/regression/ports/mcs51/spec.mk,
4579         * support/regression/ports/mcs51-large/spec.mk,
4580         * support/regression/ports/mcs51-stack-auto/spec.mk,
4581         * support/regression/ports/z80/spec.mk: use include and lib files from
4582           built version of sdcc instead of installed version
4583         * doc/sdccman.lyx: fixed typo in --nostdinc
4584
4585 2004-11-10 Slade Rich <slade_rich AT users.sourceforge.net>
4586
4587         * src/pic/pcode.c,
4588         * src/pic/device.c,
4589         * src/pic/ralloc.c,
4590         * src/pic/gen.c : added support to generate code for struct bit fields.
4591
4592 2004-11-06 Maarten Brock <sourceforge.brock AT dse.nl>
4593
4594         * as/xa51/xa_version.h,
4595         * device/include/errno.h,
4596         * device/include/regc515c.h,
4597         * device/lib/_itoa.c,
4598         * device/lib/_ltoa.c,
4599         * device/lib/ser_ir_cts_rts.c,
4600         * sim/ucsim/xa.src/glob.cc,
4601         * sim/ucsim/xa.src/inst_gen.cc,
4602         * sim/ucsim/xa.src/xa_bit.cc,
4603         * sim/ucsim/xa.src/xa_sfr.cc,
4604         * sim/ucsim/z80.src/inst_dd.cc,
4605         * sim/ucsim/z80.src/inst_fdcb.cc,
4606         * support/scripts/keil2sdcc.pl,
4607         * src/pic16/pic16.dsp,
4608         * src/pic16/pic16a.dsp: corrected cvs line endings
4609         * device/lib/printf_large.c: fixed bug 1057979
4610         * src/pic16/gen.c: fixed non-C standard code
4611         * src/SDCCmain.c: made --pack-iram default, added --no-pack-iram
4612         * src/SDCCglobl.h: changed pack_iram to no_pack_iram
4613         * support/regression/ports/mcs51/support.c: reload T1 asap
4614         * doc/sdccman.lyx: updated for options --pack-iram and --no-pack-iram,
4615           pdata use and clear idata startup behaviour
4616         * support/regression/tests/bug1057979.c: added
4617
4618 2004-11-04 Maarten Brock <sourceforge.brock AT dse.nl>
4619
4620         * device/examples/ds390/ow390/ad26.h,
4621         * device/examples/ds390/ow390/cnt1d.h,
4622         * device/examples/ds390/ow390/crcutil.c,
4623         * device/examples/ds390/ow390/ownet.h,
4624         * device/examples/ds390/ow390/owsesu.c,
4625         * device/examples/ds390/ow390/swt12.h,
4626         * device/examples/ds390/ow390/swtoper.c,
4627         * device/examples/ds390/ow390/temp10.h,
4628         * device/examples/ds390/ow390/thermodl.c,
4629         * device/examples/ds390/tinitalk/tinitalk.dsp,
4630         * device/examples/ds390/tinitalk/tinitalk.dsw,
4631         * device/examples/mcs51/clock/hw.h,
4632         * device/examples/mcs51/simple2/go.bat,
4633         * device/examples/serialcomm/windows/serial.h,
4634         * device/examples/xa51/dummy.c,
4635         * device/examples/xa51/hello.c,
4636         * device/include/80c51xa.h,
4637         * device/include/at89x051.h: corrected cvs line endings
4638
4639 2004-11-04 Vangelis Rokas <vrokas AT otenet.gr>
4640
4641         * src/pic16/main.c (options): added command line --gstack, to trace
4642         stack over/under flows,
4643         * added pragma 'wparam' to allow passing first byte of function
4644         parameters via WREG, syntax is #pragma wparam my_function[, func2...]
4645         * src/pic16/gen.c (pic16_testStackOverflow): function which emits a
4646         call to __gstack_test function and sets up the symbol as extern,
4647         * (pic16_pushpCodeOp, pic16_poppCodeOp, pushw, pushaop, popaopidx,
4648         * popaop): added call to pic16_testStackOverflow,
4649         * (wParamCmp, inWparamList): NEW, test existence of a symbol in
4650         wparamList list,
4651         * (genCall, genPcall): now all parameters are passed via stack
4652         except in functions that are pass to wparam pragma in which WREG is
4653         used too,
4654         * (genPcall): REENTRANT flag is checked to see if variable prototype
4655         contains reentrant keyword, don't call a non-reentrant function, via
4656         a reentrant function pointer or vice versa, functions are never
4657         passed via WREG,
4658         * (genJumpTab): applied patch from bug #1057478 by R.Neider and
4659         D.Winkler,
4660         * src/pic16/glue.c (pic16emitRegularMap): fixed bug which caused a
4661         SIGSEGV when accessing a NULL register stucture,
4662         * (pic16_printGPointerType): modified to handle UPPER modifier for
4663         function initializers, changed prototype of function to simpler one,
4664         * (pic16_printIvalFuncPtr): check to see if function is already
4665         added in externs list,
4666         * src/pic16/pcoderegs.c (pCodeOptime2pCodes): fixed bug which
4667         optimized a move from W to SFR with a move to the same register
4668         later after a CALL,
4669         * device/lib/pic16/debug: NEW directory, contains debug features
4670         which are enabled when linking with libdebug.lib, currently command
4671         line option --gstack enables stack pointer tracing for over/under
4672         flow, corresponding sources are in debug/gstack
4673
4674 2004-10-30 Vangelis Rokas <vrokas AT otenet.gr>
4675
4676         * doc/sdccman.lyx: updated SDCC version,
4677         * (PIC16 port): update list of command line options,
4678         * src/pic16/device.h (structure pic16_options_t): added field gstack
4679         to enable stack overflow tracing on push/pops,
4680         * src/pic16/device.c (statistics structure): added statistics
4681         structure,
4682         * (pic16_dump_access, pic16_dump_usection, pic16_dump_gsection,
4683         pic16_dump_int_registers): increase statistics counters for each
4684         * variable which is encountered
4685         * (pic16_dump_usection): emit each .udata variable to its own udata
4686         section,
4687         * src/pic16/gen.c (assignResultValue, genCall, genPcall, genFunction):
4688         when macro USE_WREG_IN_FUNC_PARAMS is set to 0 pass all function
4689         parameters via stack, otherwise use old scheme,
4690         * src/pic16/glue.c (pic16_emitStatistics): dump statistics in
4691         assembler output file,
4692         * src/pic16/main.c: added command line options --gstack to enable
4693         push/pop tracing for stack overflow,
4694         * src/pic16/pcode.c (all pCodeInstruction records for PIC18F
4695         instructions): added size of each instruction,
4696         * (pic16_countInstruction): estimate size of instructions in
4697         the_pFile list, inline assembly blocks are not counted,
4698         * (pic16_FixRegisterBanking): trace previous register usage, when
4699         banksel optimizations is greater than 0, don't emit a redudant
4700         banksel directive,
4701
4702 2004-10-26 Slade Rich <slade_rich AT users.sourceforge.net>
4703
4704         * src/pic/ralloc.c : fixed inefficient code produced when compiling a complimented bit operation.
4705         * src/pic16/ralloc.c : applied same fix for pic16.
4706         * src/pic/gen.c : tidied it up a little.
4707
4708 2004-10-25 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
4709
4710         * src/mcs51/peeph.def: disabled 259.a,b for removing redundant ret,
4711         thanks to Martin Helmling for reporting (mail on sdcc-devel 2004-10-25)
4712
4713 2004-10-22 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
4714
4715         * src/SDCCast.c (reverseParms): fixed bug #1040577 (part 2)
4716
4717 2004-10-22 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
4718
4719         * device/lib/ser_ir_cts_rts.c: integer promotion caused a call to the
4720         non-reentrant function __modsint in the interrupt function (thus
4721         corrupting math operations during serial I/O)
4722         * device/lib/ser_ir.c: as above, changed buffersize
4723         * src/mcs51/peeph.def: added 259.a,b for removing redundant ret,
4724         256.c,d for zeroing
4725         * doc/Makefile: added option -t for rsync
4726
4727 2004-10-22 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
4728
4729         * src/SDCCast.h (struct ast),
4730         * src/SDCCast.c (reverseParms, copyAst): fixed bug #1040577 (part 1)
4731
4732 2004-10-20 Borut Razem <borut.razem AT siol.net>
4733
4734         * support/scripts/sdcc.nsi: added include/pic16/*.h to the setup
4735         package
4736
4737 2004-10-20 Vangelis Rokas <vrokas AT otenet.gr>
4738
4739         * device/lib/pic16/libsdcc/Makefile: added lregs directory in
4740         makefile targets,
4741         * device/lib/pic16/libsdcc/lregs/{Makefile,lrst.c,lrrest.c}: NEW
4742         support functions to replace long sequences of MOVFF's from access
4743         bank registers to stack and vice versa,
4744         * src/pic16/device.h: added new field opt_flags, where optimization
4745         flags can be set to enable certain features,
4746         * src/pic16/gen.c (pic16_emitpinfo): NEW to add PC_INFO pCode in
4747         * pBlock, (genFunction, genEndFunction): surroung loop for
4748         saving/loading used registers in stack with PC_INFO pCodes,
4749         INF_LREGS. Code in between can then be optimized by pCode optimizer
4750         to support function calls,
4751         * (genDataPointerSet): fixed bug which loaded float fields in
4752         structures with corrupt data,
4753         * src/pic16/genutils.c (debugf, _debugf): macro/function which emits
4754         in a standard way debug info on stderr. Feature used for developing
4755         and debugging only,
4756         * src/pic16/glue.c (pic16glue): reformatted, deleted some old and
4757         obsolete chunks of code,
4758         * if optimization flag OF_LR_SUPPORT was set, call pic16_OptimizeLocalRegs,
4759         * src/pic16/main.c (_pic16_parseOptions): added handler for --flr-support,
4760         * pic16/src/pcode.c (pic16_newpCodeInfo,
4761         * (pic16_newpCodeOpLocalRegs),
4762         * (pic16_convertLocalRegs2Support): NEW, to support new optimization
4763         feature,
4764         * (pic16_pCodeConstString): printing of the initial value of a
4765         symbol as a comment is inhibited since parsing was already done by
4766         copyStr and output is corrupt,
4767         * (pic16_pCode2str, genericPrint): handle PC_INFO pCode,
4768
4769 2004-10-20 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
4770
4771         * src/mcs51/ralloc.c (packRegisters): fixed bug #1044601
4772
4773 2004-10-19 Maarten Brock <sourceforge.brock AT dse.nl>
4774
4775         * as/mcs51/lkarea.c: removed old K&R style,
4776           (lnksect): changed check on boundary error,
4777           (lnksect2): changed check on boundary error,
4778           (lnksect2): extend XSTK to end of page if size = 1
4779         * as/mcs51/lkmain.c: removed old K&R style,
4780           (Areas51): create l_IRAM symbol
4781         * as/mcs51/lkmem.c (summary2): added report on PSEG and XSTK
4782         * device/lib/Makefile.in: renamed model-mcs51-reentrant to
4783           model-mcs51-stack-auto, added model-mcs51-xstack-auto
4784         * device/lib/_mullong.c: added version to be compiled with xstack
4785         * device/lib/mcs51/crtclear.asm: clear only upto --iram-size
4786         * device/lib/mcs51/crtxclear.asm: clear pdata as well
4787         * device/lib/mcs51/crtxstack.asm: fixed comment
4788         * src/SDCCglue.c: maxInterrupts defaults to 0,
4789           (emitMaps): added pdata,
4790           (createInterruptVect): (re)moved default,
4791           (glue): added pdata,
4792           (glue): moved __start__xstack to XSTK with default size 1
4793         * src/SDCCmain.c (parseCmdLine): automatically set options.intlong_rent
4794           and options.float_rent when options.stackAuto is set,
4795           (linkEdit): only write XDATA_NAME if provided on command line
4796         * src/SDCCmem.h,
4797         * src/SDCCmem.c: added pdata
4798         * src/port.h: added pdata_name to PORT
4799         * src/mcs51/gen.c (toBoolean): fixed for Acc use of aopGet,
4800           (saveRegisters, unsaveRegisters): removed usage of B,
4801           (genMinus): fixed accumulator clash,
4802           (genJumpTab): added comment, this needs another look
4803         * src/mcs51/gen.c: added check for "B in use" paranoia,
4804           added pushB() and popB()
4805         * src/mcs51/peeph.def: restart after 177.c so 177.a can get a second
4806           chance
4807         * src/avr/main.c,
4808         * src/ds390/main.c,
4809         * src/hc08/main.c,
4810         * src/mcs51/main.c,
4811         * src/pic/main.c,
4812         * src/pic16/main.c,
4813         * src/xa51/main.c,
4814         * src/z80/main.c: (reset_regparms) made void parameter explicit and
4815           added PSEG (PAG,XDATA) or NULL to port specifier
4816         * src/ds390/main.c (_ds390_genIVT): moved implemented default in here
4817         * src/mcs51/main.c (_mcs51_genIVT): moved implemented default in here,
4818           (_mcs51_genInitStartup): removed __start__xstack equ,
4819           (mcs51_port): moved xstack from XSEG (XDATA) to XSTK (PAG,XDATA)
4820         * src/pic16/device.c (pic16_dump_usection, pic16_dump_isection),
4821         * src/z80/gen.c (_rleAppend): fixed warnings
4822         * support/regression/tests/zeropad.c: added pdata test
4823         * .version: bumped to 2.4.6
4824
4825 2004-10-17 Borut Razem <borut.razem AT siol.net>
4826
4827         * support/scripts/sdcc.nsi: cross compiling of WIN32 setup.exe on Linux
4828         as a part of nightly build
4829
4830 2004-10-16 Vangelis Rokas <vrokas AT otenet.gr>
4831
4832         * src/pic16/gen.c (struct _G): added field useWreg, is set to 1 when
4833         WREG holds the first byte function parameters,
4834         * (aopForSym): take special case for symbols which are in FARSPACE
4835         but in CODESPACE too,
4836         * (assignResultValue): modified to take into account _G.useWreg,
4837         * (genCall): don't use wreg for parameter passing when function is
4838         declared as reentrant, too, added optimization INCF to stack
4839         pointer when stack parameter count is 1,
4840         * (genFunction, genEndFunction): refurnished and fixed to not using
4841         wreg for passing parameters when function has varargs or is
4842         reentrant, fixed bug with symbol name compare for generating
4843         functions in absolute address,
4844         * (pic16_storeForReturn): refurnished,
4845         * (genCmp): began writing a new version of the function, not ready
4846         yet, therefore it is disabled,
4847         * (genAssign): do not read code memory when assigning a function to
4848         a pointer function,
4849         * src/pic16/glue.c (pic16emitStaticSeg): abSym->name is defined an
4850         array of characters, not pointer,
4851         * (pic16initialComments): in debug mode emit an .ident directive for
4852         the assembler,
4853         * (_process_pragma): emit a new warning type (internal to pic16)
4854         when setting stack to default length, emit a similar warning when
4855         placing a function at absolute address and address is not word aligned
4856         * (_pic16_parseOptions): added 'return TRUE' statement,
4857         * (_pic16_linkEdit): if compiling a source, then add the source's
4858         file object, first in the list of objects to link,
4859
4860 2004-10-13 Slade Rich <slade_rich AT users.sourceforge.net>
4861
4862         * src/pic/pcoderegs.c : increased count on regUsedinRange to prevent unnecessary warning.
4863         * src/pic/main.c : removed VC warning.
4864         * src/pic/gen.c : changed comment.
4865
4866 2004-10-12 Vangelis Rokas <vrokas AT otenet.gr>
4867
4868         * device/lib/pic16/libsdcc/gptr/gptrput[234].c: an external
4869         reference to a deprecated symbol _GPTRREG was causing failure to
4870         link. Thanks G. M. Gallant for the info.
4871
4872 2004-10-12 Slade Rich <slade_rich AT users.sourceforge.net>
4873
4874         * src/pic/pcode.c : Applied a code patch supplied by Paul Ashmore in
4875         comments for Bugs item #954788.
4876
4877 2004-10-10 Vangelis Rokas <vrokas AT otenet.gr>
4878
4879         * src/pic16/device.c (pic16_dump_gsection,
4880         * pic16_groupRegistersInSection): handle symbols declared to be in
4881         access bank differently,
4882         * src/pic16/gen.c (struct _G): added field resDirect,
4883         * (aopForSym): if symbol on stack and iCode is '=' and result exists,
4884         send values read from stack directly to result and don't allocate
4885         temporary values,
4886         * (pic16_sameRegs): fixed bug that allowed MOVFF to move between
4887         same registers,
4888         * (pic16_sameRegsOfs): NEW,
4889         * (freeAsmop): if _G.resDirect is set then do not mark registers as
4890         free because they were not allocated from temporary pool,
4891         * pic16_popRegFromString): workaround to fix a problem with
4892         allocating variables twice or never,
4893         * (genGenPointerGet): using PRODL instead of FSR0H,
4894         * (genGenPointerSet): using POSTDEC1 (that is a stack location)
4895         instead of FSR0H,
4896         * (genAssign): take advantage of the _G.resDirect flag,
4897         * (genCast): around line 11844, use mov2f instead of directly
4898         MOVFF'ing between operands to account for literal values,
4899         * src/pic16/genutils.c: some new debug functions for gpsim have been
4900         added,
4901         * src/pic16/glue.c (pic16_printIvalType): fixed bug that initialized
4902         float with integer part only,
4903         * src/pic16/main.c (_process_pragma): handle pragma udata access to
4904         place variables in access bank
4905         * device/lib/pic16/libsdcc/gptr/gptr*.c: using BRA instead of GOTO,
4906         updated sources to reflect recent changes in gen.c
4907
4908 2004-10-06 Vangelis Rokas <vrokas AT otenet.gr>
4909
4910         * device/lib/pic16/libsdcc/Makefile.rules: fixed bug concerning
4911         sources that searched for headers in installation path, now the
4912         device/include/pic16 is used,
4913         * src/pic16/glue.c (pic16glue),
4914         * src/pic16/pcode.c (pCode2str, genericPrint): don't print .file or
4915         .line directives if not in debug mode, this suppresses assembler's
4916         warnings for ignored directives
4917
4918 2004-10-05 Maarten Brock <sourceforge.brock AT dse.nl>
4919
4920         * src/port.h: made reset_regparms prototype void parameter explicit.
4921         * src/SDCCsymt.c (processFuncArgs): removed argument "func".
4922         * src/mcs51/ralloc.c (packRegisters): new fix for bugs 898889 & 979599.
4923         * doc/sdccman.lyx: documented warning disabling and how to use
4924           printf_large to make it print floats.
4925         * device/include/stdbool.h: NEW
4926         * device/lib/_atof.c,
4927         * device/lib/_divuint.c,
4928         * device/lib/_divulong.c,
4929         * device/lib/expf.c,
4930         * device/lib/printf_large.c,
4931         * device/lib/sincosf.c,
4932         * device/lib/sincoshf.c: used stdbool.h, all compile with stack-auto now
4933         * device/lib/Makefile.in: added target for model-mcs51-reentrant to build
4934           a completely reentrant lib.
4935
4936 2004-10-05 Vangelis Rokas <vrokas AT otenet.gr>
4937
4938         * device/lib/pic16/libsdcc/gptr/gptr*.c: added return statements
4939         * device/include/pic16/stdio.h: fixed bug with colon
4940
4941 2004-10-03 Vangelis Rokas <vrokas AT otenet.gr>
4942
4943         * device/include/pic16/stdio.h,
4944         * device/include/pic16/stdlib.h,
4945         * device/include/pic16/math.h: NEW
4946         * device/lib/pic16/libsdcc/gptr/*.c (gptrget*, gptrput*): functions
4947         declared as _naked to reduce overhead
4948         * device/lib/Makefile.in (target port-specific-objects-pic16):
4949         changed * to *.* so to ignore the CVS directory,
4950         * src/pic16/gen.c (pic16_freeAsmop): added code to store result of
4951         stacked variables back in stack,
4952         * (genEndFunction): fixed bug reported by G.M. Gallant with stack
4953         corruption
4954
4955 2004-10-01 Vangelis Rokas <vrokas AT otenet.gr>
4956
4957         * .version: bumped version number to 2.4.5
4958         * support/Util/SDCCerr.h: added warning W_POSSBUG2.
4959         * support/Util/SDCCerr.c (messages structure): added entry for
4960         W_POSSBUG2
4961
4962         Large cumulative patch for pic16 port and libraries.
4963         * device/include/pic16/sdcc-lib.h,
4964         * device/include/pic16/stdarg.h,
4965         * device/include/asm/pic16/features.h,
4966         * device/include/lib/pic16/libsdcc/gptr/{*.c, Makefile}: NEW,
4967         * device/include/pic16/float.h: changes reentrant keyword with
4968         _FS_REENTRANT, added prototype for __fsneq, included sdcc-lib.h
4969         * device/lib/pic16/libsdcc/Makefile: added target directory gptr,
4970         updated target build-libraries to include objects from gptr,
4971         * device/lib/pic16/libsdcc/{char,int,long}/*.c: added macro
4972         _IL_REENTRANT to all function headings, included sdcc-lib.h header,
4973         * device/lib/pic16/libsdcc/float/*.c: added macro _FS_REENTRANT to
4974         all function headings,
4975         * src/SDCCmain.c: added global parameter userIncDirsSet,
4976         * (parseCmdLine): when option -I is encountered add directory to
4977         userIncDirsSet too,
4978         * src/version.awk: added space between control and long,
4979         * src/pic16/NOTES: added some notes for the port,
4980         * src/pic16/gen.c: added prototype for mov2fp function,
4981         * (fReturnpic16[]): properly named return value registers,
4982         * (_G structure): added fields stackRegSet, fregsUsed, stack_lat,
4983         * (aopForSym): added code to handle symbols with onStack flag set,
4984         symbols onStack are allocated PTRSIZE bytes,
4985         * (aopFreeAsmop): handles special case where asmops are stack objects,
4986         * (aopGet, pic16_popGet): adde cod to handle new asmop AOP_STA,
4987         * (pic16_popGetTempReg, pic16_popGetTempRegCond, pic16_popReleaseTempReg):
4988         added argument lock to trace flaws in allocating temporary registers
4989         when developing port,
4990         * (pic16_popGetLit, pic16_popGetLit2): changed lit from unsigned to signed
4991         * (pic16_popRegFromString): reenabled allocating a direct register
4992         from string,
4993         * (assignResultValue): various beautifications,
4994         * fixed bug #1037717 (patch from R. Neider & D. Wrinkler) with mistaken
4995         referenced function argument,
4996         * (genIpush): reenabled to allow stacked arguments, handles only
4997         ic->parmPush iCodes,
4998         * (genCall, genPcall): major changes to allow for variable argument
4999         functions, fixed a bug with falsely restoring stack pointer after
5000         returning from call,
5001         * (genFunction): pending code for critical function,
5002         * (shiftR1Left2ResultSigned, shiftR1Left2Result, shiftL2Left2Result,
5003         * (shiftR2Left2Result, shiftLLong) applied patch #1032155 from R.Neider,
5004         * (genNearPointerGet): fixed bug with indirect reading, was always
5005         reading from INDF0
5006         * (genGenPointerGet, genGenPointerSet): rewrote to support generic
5007         pointers,
5008         * (genAddrOf): rewrote code to take address of a stacked function parameter
5009         * (genCast): fixed casting to generic pointer type,
5010         * src/pic16/gen.h: added AOP_STA,
5011         * (struct asmop): added field stk,
5012         * src/pic16/genarith.c (pic16_AopType): handle AOP_STA,
5013         * (pic16_genPlusIncr): changed emitSKPNZ to emitSKPNZ,
5014         * (pic16_genAddLit, pic16_genPlus): applied patch #1034042 by tecodev,
5015         * (pic16_genMinus): fixed bug #1035119 with patch submitted by tecodev,
5016         * src/pic16/genutils.c (pic16_genNot): removed symbol *tlbl,
5017         * src/pic16/glue.c (pic16_printGPPointerType): fixed to support new
5018         generic pointers,
5019         * src/pic16/main.c (_pic16_initPaths): ignores default SDCC include
5020         and library paths,
5021         * (pic16_port structure): generic pointer size is set to 3,
5022         * src/pic16/pcode.c (pic16_newpCodeOpLit): correctly print literal integer,
5023         * (insertBankSwitch): cast to (char *) to prevent 64bit CPUs'
5024         compiler warning,
5025         * src/pic16/ralloc.c (allocReg): prevent allocating register when
5026         operand is an iTemp,
5027
5028 2004-09-24 Martin Helmling <mh AT octo-soft.de>
5029
5030         * debugger/mcs51/cmd.c: set PC if a symbol at pc reg is set
5031         * debugger/mcs51/simi.c: addapt new syntax of s51
5032
5033 2004-09-23 Vangelis Rokas <vrokas AT otenet.gr>
5034
5035         * src/pic16/genutils.c (pic16_genNot): fixed bug #1032265,
5036         * src/pic16/pcode.c: commented out some calls to free() in order to
5037         fix bug #989576,
5038
5039 2004-09-23 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
5040
5041         * src/SDCCicode.h,
5042         * src/SDCCicode.c (isiCodeInFunctionCall),
5043         * src/avr/ralloc.c (selectSpil),
5044         * src/pic/ralloc.c (selectSpil),
5045         * src/pic16/ralloc.c (selectSpil),
5046         * src/ds390/ralloc.c (selectSpil),
5047         * src/hc08/ralloc.c (selectSpil),
5048         * src/xa51/ralloc.c (selectSpil),
5049         * src/mcs51/ralloc.c (selectSpil): Don't use remainSpil to spill to the
5050         stack in the middle of a function call sequence (fixes bug #1020268)
5051         * src/SDCCicode.c (geniCodeJumpTable): fixed error in computing the
5052         costs associated with the minimum switch case.
5053
5054 2004-09-19 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
5055
5056         * src/SDCC.lex: fixed bug #1030549
5057
5058 2004-09-19 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
5059
5060         * src/SDCCcse.h (struct cseDef),
5061         * src/SDCCcse.c (cseBBlock, newCseDef, ifFromAddrTaken): purge CSEs
5062         over a function call if the CSE is derived from a symbol whose
5063         address has been taken (fixes bug #1029883)
5064         * support/regression/tests/bug-1029883: a new regression test for
5065         this bug
5066
5067 2004-09-18 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
5068
5069         * src/hc08/gen.c (emitinline): fixed bug #1029778
5070         * src/SDCC.y (assignment_expr): fixed the grammer so that assignment
5071         to a cast object is no longer a syntax error ("fixes" bug #1030006,
5072         and starts toward RFE #905167)
5073
5074 2004-09-17 Vangelis Rokas <vrokas AT otenet.gr>
5075
5076         * src/pic16/gen.c (mov2f): New function to move an operand to
5077         another without considering if it is a literal or a register,
5078         * (pic16_sameRegs): don't check if they are both AOP_REG,
5079         * (AccRsh): removed andmask=0 lines,
5080         * (genLeftShift): duplicated to be improved in future versions,
5081         * src/pic16/main.c (_process_pragma): emit stack default size in hex,
5082         * src/pic16/pcode.c: added POC_INFSNZW, updated inverted_op fields
5083         in POC_INCFSZ, POC_INCFSZW, POC_INFSNZ,
5084         * (pic16initMnemonics): added initialization for POC_INFSNZW,
5085         * (insertBankSwitch): fixed inserting banksel directives algorithm
5086         for instructions that follow a skip instruction, this fixes a report
5087         for broken subtraction code generation,
5088         * src/pic16/ralloc.c (deassignLRs): do not free register if current
5089         iCode is a left op, just in case result and right share the same
5090         registers
5091
5092 2004-09-16 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
5093
5094         * src/hc08/main.c,
5095         * src/hc08/gen.c (genJumpTable): more efficient jump table, supports
5096         preservation of HX
5097         * src/hc08/gen.c (pullRegs): fixed order of HX & XA pairs
5098         * src/mcs51/ralloc.c (packRegisters): removed the patch applied
5099         on 2004-09-12; it was buggy
5100
5101 2004-09-15 Bernhard Held <bernhard AT bernhardheld.de>
5102
5103         * src/SDCCsymt.h: removed RESULT_CHECK
5104         * src/SDCCast.c,
5105         * src/SDCCglue.c,
5106         * src/SDCCval.c,
5107         * src/pic/glue.c,
5108         * src/pic16/glue.c: replaced RESULT_CHECK with RESULT_TYPE_NONE
5109
5110 2004-09-15 Vangelis Rokas <vrokas AT otenet.gr>
5111
5112         * src/SDCCicode.c (piCode): applied patch from Raphael Neider,
5113         * src/pic16/device.c (pic16_assignConfigWordValues): wrong
5114         configuration values no more rejected by compiler, they are assigned
5115         to configuration registers with a warning message instead,
5116         * src/pic16/glue.c (pic16_emitConfigRegs): added +1 at top-limit of
5117         the for-loop so last conf register is emitted too,
5118         * (_pic16_initPaths): link library libsdcc.lib by default,
5119         * (_hasNativeMulFor): modified test for multiplication according to
5120         Raphael Neider's remarks. Integer multiplication is also done with
5121         support functions,
5122         * device/include/pic16/pic18fregs.h: corrected type error in while
5123         testing and including 18f6720 header file
5124
5125 2004-09-14 Vangelis Rokas <vrokas AT otenet.gr>
5126
5127         * src/pic16/device.h (pic16_options): removed field use_crt,
5128         * src/pic16/gen.c (genUnpackBits): added call to pic16_loadFSR0
5129         until an optimization to handle single bits is added,
5130         * (pic16_loadFSR0): moved before genUnpackBits,
5131         * (genAnd): some white lines removed,
5132         * src/pic16/main.c (_pic16_finaliseOptions): set omit_ivt and clear
5133         leave_reset flags in pic16_options when using crt modules,
5134
5135 2004-09-12 Maarten Brock <sourceforge.brock AT dse.nl>
5136
5137         * src/mcs51/ralloc.c (packRegisters): applied fix by Bernhard Held
5138           for bugs 898889 & 979599. Also used some safer print instructions.
5139
5140 2004-09-12 Vangelis Rokas <vrokas AT otenet.gr>
5141
5142         * src/pic16/device.h (pic16_options_t): added field use_crt,
5143         crt_name, no_crt,
5144         * src/pic16/genarith.c (pic16_genPlus): added an assert(0) line to
5145         catch a probable future bug,
5146         * src/pic16/gen.c: aopIdx function commented out,
5147         * (genAssign): commented out old code which used aopIdx,
5148         * src/pic16/glue.c (pic16glue): removed some legacy fragments of
5149         code, added if conditionals to take into account the --use-crt
5150         command line options,
5151         * src/pic16/main.c (pic16_optionsTable): added new command line
5152         options, --use-crt= and --no-crt,
5153         * (_pic16_linkEdit): now the proper crt object is added in the
5154         linker command line except than when --no-crt is specified,
5155         * src/pic16/pcode.c,
5156         * src/pic16/pcode.h: added some structures and functions for a new
5157         optimization scheme to compansate for instruction overhead between
5158         same iCodes, this scheme is currently under development and is not
5159         working in any way,
5160         * src/pic16/gen.c (genAnd): added patch provided by Aaron Collwell
5161         to && operator,
5162         * device/lib/pic16/startup/crt0i.c,
5163         * device/lib/pic16/startup/crt0iz.c: added global char variable
5164         __uflags to force the generation of an idata section
5165
5166 2004-09-12 Bernhard Held <bernhard AT bernhardheld.de>
5167
5168         * doc/Makefile,
5169         * doc/clean.mk: added support for easy creation of sdcc-doc.tar.bz2
5170         * doc/sdccman.lyx: updated sdcc version to 2.4.4
5171
5172 2004-09-10 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
5173
5174         * doc/sdccman.lyx: fixed a problem with my new index entries (thanks
5175         Frieder) and clarified the default code optimization mode
5176
5177 2004-09-10 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
5178
5179         * src/SDCC.lex (doPragma, process_pragma),
5180         * src/SDCCglobl.h (struct optimize): added pragmas "opt_code_speed",
5181         "opt_code_size", and "opt_code_balanced"
5182         * src/SDCCmain.c (optionsTable[], printOptions, scanOptionsTable):
5183         regrouped options by category, added support for category headers
5184         * src/SDCCmain.c (parseCmdLine): added options "--opt-code-speed"
5185         and "--opt-code-size"
5186         * doc/sdccman.lyx: documented these new options and pragmas
5187         * src/hc08/gen.c (AccLsh, AccRsh): take speed/size optimization
5188         preference into account
5189
5190 2004-09-08 Maarten Brock <sourceforge.brock AT dse.nl>
5191
5192         * src/SDCCicode.c (geniCodePostInc, geniCodePreInc, geniCodePostDec,
5193           geniCodePreDec): Fixed bug 904237 by generating a warning
5194         * src/SDCCerr.h,
5195         * src/SDCCerr.c: added warning W_SIZEOF_VOID
5196
5197 2004-09-09 Slade Rich <slade_rich AT users.sourceforge.net>
5198
5199         * src/pic/device.c : When no max ram set validate full memory range.
5200         * src/pic/pcode.c,
5201         * src/pic/pcodepeep.c : Copy C code comments to optimised replacement code.
5202
5203 2004-09-08 Maarten Brock <sourceforge.brock AT dse.nl>
5204
5205         * device/lib/_gptrget.c,
5206         * device/lib/_gptrput.c: updated comment
5207         * device/lib/calloc.c,
5208         * device/lib/free.c,
5209         * device/lib/malloc.c,
5210         * device/lib/realloc.c: added LGPL, made them reentrant-safe
5211         * src/SDCCcse.c (cseBBlock),
5212         * src/SDCCicode.c (printOperand, geniCodeArray),
5213         * src/SDCCicode.h (struct operand): fixed bug 868103
5214         * support/regression/tests/bug-868103.c: added
5215         * src/SDCCast.c (searchLitOp),
5216         * src/SDCCcse.h (struct cseDef),
5217         * src/SDCCglue.c (printIvalArray, spacesToUnderscores),
5218         * src/SDCCicode.h (struct operand),
5219         * src/SDCCsymt.h (struct sym_link),
5220         * src/avr/gen.c (hasInc),
5221         * src/ds390/gen.c (hasInc),
5222         * src/hc08/gen.c (genPlusIncr, hasInc),
5223         * src/mcs51/gen.c (hasInc),
5224         * src/pic16/glue.c (pic16_printIvalChar),
5225         * src/pic16/ralloc.c (regWithIdx),
5226         * src/xa51/gen.c (hasInc) : removed warnings
5227         * src/SDCCast.c (createBlock): added comment ???
5228         * src/hc08/ralloc.c: updated comments
5229
5230 2004-09-07 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
5231
5232         * doc/sdccman.lyx: updated section on switch statements, added
5233         section about semaphore locking
5234         * doc/Makefile: added option -info for latex2html
5235         * device/lib/_gptrget.c,
5236         * device/lib/_gptrput.c: __XPAGE instead of P2 in outcommented code
5237
5238 2004-09-06 Slade Rich <slade_rich AT users.sourceforge.net>
5239
5240         * src/pic/device.h,
5241         * src/pic/device.c,
5242         * src/pic/port.c : Changed PIC14 code to not set bit RP1 when
5243          maxram is less than 0x100.
5244
5245 2004-09-06 Slade Rich <slade_rich AT users.sourceforge.net>
5246
5247         * Bug fixes for PIC14 - signed RSHIFT problem. Patch supplied by Allen(agschrum).
5248
5249 2004-09-06 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
5250
5251         * src/port.h,
5252         * src/mcs51/main.c,
5253         * src/ds390/main.c,
5254         * src/z80/main.c,
5255         * src/hc08/main.c,
5256         * src/pic/main.c,
5257         * src/pic16/main.c,
5258         * src/avr/main.c,
5259         * src/xa51/main.c
5260         * src/SDCCicode.c (geniCodeJumpTable): Better logic to determine if a
5261         a jump table is the best form for a switch statement, including
5262         automatic insertion of missing cases to make the case range
5263         continuous. Developed in collaboration with Frieder Ferlemann.
5264
5265 2004-09-02 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
5266
5267         * src/hc08/ralloc.c (canDefAccResult): multi-byte shift is unsafe for
5268         accumulator result if it needs sign extension
5269
5270 2004-09-02 Maarten Brock <sourceforge.brock AT dse.nl>
5271
5272         * src/hc08/ralloc.c (canUseAccOperand): fixed comparison bug
5273
5274 2004-09-02 Maarten Brock <sourceforge.brock AT dse.nl>
5275
5276         * device/lib/gbz80/printf.c,
5277         * device/lib/z80/printf.c: removed define for NULL
5278
5279 2004-09-02 Maarten Brock <sourceforge.brock AT dse.nl>
5280
5281         * as/xa51/xa_link.c,
5282         * device/examples/ds390/ow390/ad26.c,
5283         * device/examples/ds390/ow390/cnt1d.c,
5284         * device/examples/ds390/ow390/counter.c,
5285         * device/examples/ds390/ow390/ds2480.h,
5286         * device/examples/ds390/ow390/ds2480ut.c,
5287         * device/examples/ds390/ow390/findtype.c,
5288         * device/examples/ds390/ow390/gethumd.c,
5289         * device/examples/ds390/ow390/owllu.c,
5290         * device/examples/ds390/ow390/ownetu.c,
5291         * device/examples/ds390/ow390/swt12.c,
5292         * device/examples/ds390/ow390/swtloop.c,
5293         * device/examples/ds390/ow390/temp.c,
5294         * device/examples/ds390/ow390/temp10.c,
5295         * device/examples/ds390/ow390/thermo21.c,
5296         * device/examples/ds390/ow390/tinilnk.c,
5297         * device/examples/ds390/ow390/tstfind.c,
5298         * device/examples/serialcomm/windows/serial.cpp,
5299         * device/examples/serialcomm/windows/test_serialcomm.cpp,
5300         * device/include/reg51.h: fixed line endings for cvs
5301
5302 2004-09-02 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
5303
5304         * src/hc08/ralloc.c (canDefAccResult, canUseAccOperand,
5305         packRegsForAccUse, packRegisters): new accumulator register
5306         packing algorithm
5307         * support/regression/ports/hc08/support.c (_putchar): suppress
5308         warning of unused variable
5309         * src/SDCCicode.c: added SWAP entry to codeTable
5310
5311 2004-09-01 Maarten Brock <sourceforge.brock AT dse.nl>
5312
5313         * device/lib/sprintf.c: forgot to add this file before previous commit
5314
5315 2004-09-01 Vangelis Rokas <vrokas AT otenet.gr>
5316
5317         * src/pic16/gen.c (genPackBits): added operand right in function
5318         parameters, load result directly if p_type is POINTER (that is
5319         called by genNearPointerSet)
5320         * (genUnPackBits): added operand left in function parameters,
5321         * (genNearPointerGet, genNearPointerSet): prevent the loading of
5322         FSR0 if accessing bitfields,
5323
5324 2004-08-31 Maarten Brock <sourceforge.brock AT dse.nl>
5325
5326         * device/include/stdio.h: added NULL, size_t, typedef pfn_outputchar,
5327           _print_format; updated printf, sprintf, vsprintf
5328         * device/include/asm/default/features.h: corrected comment/define
5329         * device/lib/Makefile.in: added sprintf.c
5330         * device/lib/libsdcc.lib: added sprintf module
5331         * device/lib/printf_large.c,
5332         * device/lib/vprintf.c,
5333         * device/lib/sprintf.c: totally refactored printf_large and vprintf
5334           into these 3 files
5335         * support/regression/Makefile: changed ALL_PORTS into a usefull default
5336         * support/regression/ports/mcs51-stack-auto/spec.mk: added sprintf
5337         * support/regression/tests/bug-927659.c: removed dummy putchar, enabled
5338           hc08 test
5339         * support/regression/tests/zeropad.c: define idata as data for hc08
5340
5341 2004-08-31 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
5342
5343         * src/SDCCpeeph.c (labelIsReturnOnly): support hc08 rts opcode also
5344         * src/SDCCpeeph.c (buildLabelRefCountHash): assume function entry point
5345         labels are referenced at least once (even if a reference is not found)
5346         * src/hc08/gen.c (emitcode): set isComment flag for comments
5347         * src/hc08/peeph.def: added rules 5a..5f (optimize redundant immediate
5348         loads), rules 6a..6b (optimize jumps to return)
5349
5350 2004-08-30 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
5351
5352         * device/lib/acosf.c (acosf),
5353         * device/lib/asinf.c (asinf),
5354         * device/lib/atanf.c (atanf),
5355         * device/lib/ceilf.c (ceilf),
5356         * device/lib/cosf.c (cosf),
5357         * device/lib/coshf.c (coshf),
5358         * device/lib/cotf.c (cotf),
5359         * device/lib/fabsf.c (fabsf),
5360         * device/lib/floorf.c (floorf),
5361         * device/lib/log10f.c (log10f),
5362         * device/lib/logf.c (logf),
5363         * device/lib/sinf.c (sinf),
5364         * device/lib/sinhf.c (sinhf),
5365         * device/lib/sqrtf.c (sqrtf),
5366         * device/lib/tanf.c (tanf),
5367         * device/lib/tanhf.c (tanhf),
5368         * device/include/math.h: defined _FLOAT_FUNC_REENTRANT macro and
5369         replaced all instances of "reentrant" in the library functions
5370         defined in math.h with this macro.
5371         * support/regression/tests/float_trans.c: reenabled test for hc08
5372
5373 2004-08-30 Bernhard Held <bernhard AT bernhardheld.de>
5374
5375         * device/lib/pic16/Makefile.common.in: added MODELFLAGS again, it was
5376         erroneously deleted
5377
5378 2004-08-30 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
5379
5380         * src/hc08/gen.c (loadRegFromAop): better use of clra & clrx
5381         * src/hc08/gen.c (genAnd, genOr): fixed bug with conditional when
5382         multi-byte volatile operands are used
5383         * src/hc08/gen.c (shiftRLong): fixed bug with wrong rotate direction
5384         * src/hc08/main.c (_hc08_genAssemblerPreamble): moved the built-in
5385         initialization to area GSINIT0 so that it would always precede
5386         any static initializers in GSINIT
5387         * support/regression/tests/zeropad.c: fixed idata define for hc08
5388         * support/regression/tests/bug-927659.c,
5389         * support/regression/tests/float_trans.c: disabled tests for hc08
5390         pending missing library routines
5391         * .version: increased version number to 2.4.4 - hc08 port now passes
5392         regression tests
5393
5394
5395 2004-08-29 Bernhard Held <bernhard AT bernhardheld.de>
5396
5397         * device/lib/pic16/Makefile.common.in: added $(MM) to fix `make clean`
5398         * Makefile.common.in,
5399         * as/Makefile,
5400         * as/hc08/Makefile.in,
5401         * as/mcs51/Makefile.in,
5402         * as/z80/Makefile.in,
5403         * debugger/mcs51/Makefile.in,
5404         * device/include/Makefile.in,
5405         * device/lib/Makefile.in,
5406         * doc/Makefile,
5407         * link/Makefile,
5408         * link/z80/Makefile.in,
5409         * packihx/Makefile.in,
5410         * sim/ucsim/main_in.mk,
5411         * sim/ucsim/avr.src/Makefile.in,
5412         * sim/ucsim/doc/Makefile.in,
5413         * sim/ucsim/gui.src/serio.src/Makefile.in,
5414         * sim/ucsim/hc08.src/Makefile.in,
5415         * sim/ucsim/s51.src/Makefile.in,
5416         * sim/ucsim/xa.src/Makefile.in,
5417         * sim/ucsim/z80.src/Makefile.in,
5418         * src/Makefile.in,
5419         * support/cpp2/Makefile.in,
5420         * support/librarian/Makefile,
5421         * support/makebin/Makefile: added DESTDIR to the install path proposed
5422         by "Maciej 'Agaran' Pijanka" <agaran AT pld-linux.org>
5423         * doc/sdccman.lyx: added DESTDIR documentation
5424
5425 2004-08-29 Vangelis Rokas (vrokas AT otenet.gr>
5426
5427         * src/pic16/gen.c (genFunction, genEndFunction): fixed return
5428         instruction for interrupt handlers, use fast returns when returning
5429         from high priority interrupts
5430
5431 2004-08-29 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
5432
5433         * src/hc08/gen.c (genAnd, genOr, transferAopAop, rmwWithAop): optimized
5434         code generation
5435         * src/hc08/gen.c (genrshFour, genCpl): fixed bugs
5436         * src/hc08/gen.c (genMultOneByte, genDivOneByte, genModOneByte): fixed
5437         bugs, ported much of Bernhard's code from mcs51
5438         * src/mcs51/gen.c (genSend),
5439         * src/hc08/gen.c (genSend): fixed bug with lost SEND iCodes if more
5440         than one when calling a reentrant function
5441         * device/lib/_mullong.c: defined an alternate struct layout for big
5442         endian ports (hc08)
5443
5444 2004-08-28 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
5445
5446         * src/hc08/gen.c (shiftL2Left2Result): fix for bug-500536 regression
5447         test
5448
5449 2004-08-28 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
5450
5451         * src/SDCCsymt.c (processFuncArgs): make sure parameter types
5452         are sane and complete before asking the port its prefered parameter
5453         passing method (fixes bug #1017633)
5454         * device/lib/hc08/_ret.c: added "data" storage class to _ret2
5455         and _ret3
5456
5457 2004-08-27 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
5458
5459         * src/hc08/gen.c (genPackBitsImmed, genUnpackBitsImmed): fix offset
5460         problem in bitfields >= 8 bits.
5461
5462 2004-08-27 Maarten Brock <sourceforge.brock AT dse.nl>
5463
5464         * src/SDCCsymt.c: undid changes that were not meant to be committed
5465
5466 2004-08-27 Maarten Brock <sourceforge.brock AT dse.nl>
5467
5468         * support/regression/ports/hc08spec.mk: REENTRANT must be reentrant
5469
5470 2004-08-27 Maarten Brock <sourceforge.brock AT dse.nl>
5471
5472         * src/hc08/gen.c (genUminusFloat): fixed bug where only 3 bytes were
5473           copied and wrong bit got inverted
5474
5475 2004-08-27 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
5476
5477         * src/hc08/gen.c (genPointerSet, genFarPointerSet): moved code from
5478         genFarPointerSet into genPointerSet; eliminated genFarPointerSet
5479         * src/hc08/gen.c (genPointerGet, genFarPointerGet): moved code from
5480         genFarPointerGet into genPointerGet; eliminated genFarPointerGet
5481         * src/hc08/gen.c (genPackBitsImmed): generate optimized code for
5482         assignments to bitfields at known addresses
5483         * src/hc08/gen.c (genUnpackBitsImmed): generate optimized code for
5484         reads from bitfields at known addresses
5485         * src/hc08/ralloc.c (packRegisters),
5486         * src/hc08/gen.c (genPointerGet, genUnpackBits, genUnpackBitsImmed,
5487         genhc08Code): optimize pointer get values used as conditionals
5488         * src/hc08/peeph.def: added rules 2e & 2f to optimize bit test
5489         and branch
5490
5491 2004-08-24 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
5492
5493         * src/mcs51/gen.c (genPointerGet, genNearPointerGet, genPagedPointerGet,
5494         genFarPointerGet, genCodePointerGet, genGenPointerGet, genUnpackBits),
5495         * src/mcs51/ralloc.c (packRegisters): optimize pointer get values used
5496         as conditionals
5497
5498 2004-08-22 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
5499
5500         * src/mcs51/peeph.def: peepholes 248.i-m for xdata bitfields
5501
5502 2004-08-21 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
5503
5504         * src/mcs51/ralloc.c (packRegsForOneuse): fixed bug #1012650 and some
5505         related problems
5506
5507 2004-08-21 Bernhard Held <bernhard AT bernhardheld.de>
5508
5509         * sim/ucsim/cmd.src/Makefile.in: run lex only if $(PRJDIR)/devel exists
5510
5511 2004-08-18 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
5512
5513         * src/z80/ralloc.c (packRegsForAssign): ported some bug fixes from the
5514         mcs51 port
5515
5516 2004-08-16 Slade Rich <slade_rich AT users.sourceforge.net>
5517
5518         * src/pic/gen.c: Restored fn genRet as previous fix was incorrect.
5519
5520 2004-08-14 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
5521
5522         * src/mcs51/gen.c (genJumpTab): jumptables for more than 16 switch
5523         cases use more compact code.
5524
5525 2004-08-13 Slade Rich <slade_rich AT users.sourceforge.net>
5526
5527         * src/pic/gen.c: Fixed problem with fn returning a variable bigger than a char.
5528
5529 2004-08-12 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
5530
5531         * src/SDCClrange.c (findPrevUse): fixed bug #1007371
5532
5533 2004-08-12 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
5534
5535         * src/SDCCsymt.h,
5536         * src/SDCCsymt.c (changePointer, checkDecl, addSymChain): changed
5537         parameter of changePointer() from symbol* to sym_link*
5538         * src/SDCCast.c (decorateType): call changePointer() for CAST op
5539         * src/SDCCsymt.c (compareType): void* type is castable to other
5540         pointers, but not necesarily an exact match.
5541         * src/SDCCicode.c (geniCodeCast): allow void* casting here since it
5542         is no longer blindly treated as an exact match.
5543         * src/SDCCval.c (valCastLiteral): treat missing type as cast to void
5544
5545 2004-08-12 Slade Rich <slade_rich AT users.sourceforge.net>
5546
5547         * src/pic/glue.c: Added struct initialisation fn printIvalStruct.
5548
5549 2004-08-11 Slade Rich <slade_rich AT users.sourceforge.net>
5550
5551         * src/pic/gen.c,
5552         * src/pic/pcode.c,
5553         * src/pic/ralloc.h,
5554         * src/pic/ralloc.c: Printing rIdx on internal verbose debug.
5555
5556 2004-08-10 Slade Rich <slade_rich AT users.sourceforge.net>
5557
5558         * src/pic/device.c,
5559         * src/pic/device.h,
5560         * src/pic/device.c: Will no longer exit if #pragma maxram has not been defined.
5561
5562 2004-08-06 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
5563
5564         * src/mcs51/gen.c (emitcode): fixed bug #992819
5565
5566 2004-08-05 Maarten Brock <sourceforge.brock AT dse.nl>
5567
5568         * src/pic/ralloc.c (deassignLR): allthough pic port is buggy already,
5569           there's no need to make it worse
5570
5571 2004-08-05 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
5572
5573         * src/mcs51/ralloc.c (deassignLR),
5574         * src/ds390/ralloc.c (deassignLR),
5575         * src/hc08/ralloc.c (deassignLR),
5576         * src/z80/ralloc.c (deassignLR),
5577         * src/pic/ralloc.c (deassignLR),
5578         * src/pic16/ralloc.c (deassignLR),
5579         * src/avr/ralloc.c (deassignLR),
5580         * src/SDCClrange.c (findRecursiveSucc, findRecursivePred, findPrevUse,
5581         rlivePoint): fixed another part of bug #971834
5582
5583 2004-08-04 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
5584
5585         * src/z80/main.c: enabled "critical" keyword
5586         * src/z80/mappings.i,
5587         * src/z80/gen.c (genFunction, genEndFunction): support for interrupt
5588         functions (fixes bug #979646)
5589         * doc/sdccman.lyx: added a subsection explaining z80 interrupt support
5590
5591 2004-08-04 Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
5592
5593         * src/mcs51/gen.c (genInline): Add \n for labels, not DOS/WIN dirs
5594           such as c:\mydir.
5595
5596 2004-08-03 Maarten Brock <sourceforge.brock AT dse.nl>
5597
5598         * src/SDCCloop.c (loopInvariants): fixed bug 983545, hope this
5599           doesn't disable too much optimizations
5600
5601 2004-08-02 Slade Rich <slade_rich AT users.sourceforge.net>
5602
5603         * src/pic/glue.c Disabled "WARNING: function 'main' undefined" when -S option is used.
5604
5605 2004-08-02 Maarten Brock <sourceforge.brock AT dse.nl>
5606
5607         * src/SDCClrange.c (rlivePoint): fixed bug 988568, thanks to anonymous
5608
5609 2004-08-02 Slade Rich <slade_rich AT users.sourceforge.net>
5610
5611         * src/pic/gen.c tidied up tabs
5612         * src/pic/genarith.c tidied up tabs and fixed bug with literal multiple where same register was used for hi and low byte
5613         * src/pic/main.c tidied up tabs
5614         * src/pic/pcode.c tidied up tabs and disabled verbose code generation
5615         * src/pic/pcoderegs.c tidied up tabs
5616         * src/pic/ralloc.c tidied up tabs
5617
5618 2004-07-30 Vangelis Rokas <vrokas AT otenet.gr>
5619
5620         * src/SDCCmem.c (allocGlobal): don't turn S_REGISTER storage class
5621         to S_FIXED for pic16 port and when symbol is not in level 0,
5622         allocate for S_REGISTER storage class and pic16 port, too,
5623         * src/pic16/device.h: prototype for checkSym,
5624         * src/pic16/device.c (pic16_dump_access, checkSym): NEW,
5625         * (pic16_assignConfigWordValue): test the value and the mask to
5626         validate that the value is suitable for the configuration word,
5627         * src/pic16/glue.c (pic16_printIvalFuncPtr): use 'externs' to
5628         collect extern declared symbols, don't emit symbol twice, check
5629         first if symbol is in publics set first,
5630         * src/pic16/main.c (_pic16_keywords[]): added keyword 'register',
5631         * added command line '--fstack' which enables an experimental
5632         feature for stack access, too buggy to be used yet...
5633         * src/pic16/ralloc.c (pic16_accessregWithName): NEW,
5634         * (pic16_allocDirReg): when register has storage class S_REGISTER
5635         allocate in pic16_dynAccessRegs,
5636         * device/include/pic16/pic18f????.h: modified configuration word
5637         naming convention, words started as CONFIG0H but should be CONFIG1H
5638
5639 2004-07-29 Maarten Brock <sourceforge.brock AT dse.nl>
5640
5641         * device/include/mcs51reg.h: fixed bug 970993
5642
5643 2004-07-27 Maarten Brock <sourceforge.brock AT dse.nl>
5644
5645         * added lib/calloc.c, lib/free.c, lib/realloc.c, include/stddef.h
5646         * updated lib/malloc.c, lib/libsdcc.lib, lib/Makefile.in, include/malloc.h
5647         * src/SDCC.lex (doPragma): added pragma disable_warning <nnn>
5648         * src/SDCCmain.c (parseCmdLine): added option --disable-warning <nnn>
5649         * src/ds390/gen.c (genPlusIncr): fixed bug when incrementing generic pointers
5650         * support/Util/SDCCerr.c (vwerror): suppress disabled warnings and output
5651           error/warning numbers,
5652           added function setWarningDisabled()
5653         * support/Util/SDCCerr.h: added setWarningDisabled() and MAX_ERROR_WARNING
5654         * support/regression/ports/mcs51-stack-auto/spec.mk: added dependencies
5655           _memcmp.c _memmove.c calloc.c realloc.c free.c
5656         * support/regression/tests/malloc.c: added tests for new functionality
5657         * support/regression/tests/zeropad.c: added tests for truncated initializers
5658           and initialized char arrays starting with '\x0'
5659         * src/mcs51/peeph.def: fixed regression, added peephole 177.f
5660
5661 2004-07-26 Bernhard Held <bernhard AT bernhardheld.de>
5662
5663         * support/valdiag/tests/overflow.c: fixed warning on (1 >> 40)
5664
5665 2004-07-26 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
5666
5667         * doc/sdccman.lyx: updated example in section "Absolute Addressing"
5668         * src/mcs51/peeph.def: added contributed fix for "bug" #995347 as
5669         peephole 177.e. Thanks to anonymous
5670
5671 2004-07-25 Vangelis Rokas <vrokas AT otenet.gr>
5672
5673         * src/pic16/glue.c (pic16_printIvalFuncPtr): when an extern
5674         function isn't used in the source but referenced as a
5675         variable initializer then declare it as extern in .asm file
5676
5677 2004-07-24 Vangelis Rokas <vrokas AT otenet.gr>
5678
5679         * .version: increased version number to 2.4.3
5680
5681         Adding version extension according to ChangeLog CVS revision
5682         * src/Makefile.in (target all): added dependency 'version.h'
5683         * (rule version.h): added rule to create version.h from ChangeLog,
5684         * (rule dep): added dependency version.h,
5685         * src/version.awk: AWK script to create version.h
5686         * src/SDCCdwarf2.c (dwWriteModule),
5687         * src/SDCCglue.c (initialComments),
5688         * src/SDCCmain.c (printVersionInfo): modified to write after
5689         version string the version extension number,
5690         * src/SDCCutil.c: included "version.h"
5691         * (getBuildNumber): NEW, returns SDCC's ChangeLog minor revision
5692         number,
5693         * src/SDCCutil.h: added prototype for getBuildNumber
5694
5695         * src/SDCCmain.c (parseCmdLine): when sOpt is 'I' add rest in
5696         includeDirsSet, too,
5697         * src/SDCCsymt.c (checkSClass): don't emit error when a variable,
5698         const char [] is found in function prototype...
5699
5700         * src/pic16/genarith.c (pic16_genUMult8XLit_8): optimization to omit
5701         moving to WREG with source is already in WREG,
5702         * src/pic16/gen.h: added AOP_FSR0 and AOP_FSR2 in enum,
5703         * src/pic16/gen.c (getFreePtr): updated to look for FSR0 and FSR2,
5704         * (aopForSym): stack'ed symbols are partially supported, added
5705         if-clause to support symbols in FARSPACE,
5706         * (sameRegs): added test for AOP_ACC to see if registers are same,
5707         * (pic16_freeAsmop): added case for AOP_FSR0 and AOP_FSR2,
5708         * (pic16_aopGet): added case for AOP_FSR0 and AOP_FSR2,
5709         * (pic16_popRegFromString): will not allocate a new register if it
5710         doesn't find one by name, bug may have introduced...
5711         * (pic16_popGet): added case for AOP_FSR0 and AOP_FSR2,
5712         * (genIpush): revived to use pic16 port's stack,
5713         * (genAddrOf): added incomplete case for stack'ed operand,
5714         * (genCast): optimized a pair of MOVFW,MOVWF to MOVFF
5715         * src/pic16/genutils.c (pic16_genNot): almot new vesrion for NOT,
5716         can handle multibyte operands,
5717         * src/pic16/glue.c (pic16_printIval*): some debug info added,
5718         * (pic16initialComments): added message for MPLAB compatibility
5719         mode enabled,
5720         * src/pic16/main.h: prototype for pic16_mplab_comp,
5721         * src/pic16/main.c (pic16_optionsTable): new option --mplab-comp,
5722         which enabled MPLAB compatibility mode (i.e. no #LINE/#FILE, BANKED)
5723         * (_pic16_linkEdit): NEW, handles link stage, transferred here
5724         because of increased complexity of procedure,
5725         * (_process_pragma): stack pragma changed to format 'stack pos len',
5726         emit symbol '_stack_end' to conform with gplink,
5727         * src/pic16/pcode.c (pic16_newpCodeOpBit): using pic16_regWithName
5728         to search for register,
5729         * (pic16_get_op, pic16_get_op2): added case for PO_W, PO_WREG and
5730         PO_GPR_REGISTER,
5731         * (pic16_pCode2str): when in MPLAB compatibility mode, comment out
5732         #LINE directives and replace 'B' with 'BANKED' in instruction opcodes
5733         * (pic16_getRegFromInstruction, pic16_getRegFromInstruction2): added
5734         case for PO_GPR_REGISTER,
5735         * (pic16_AnalyzeBanking): removed the old message for inc2h.pl, past
5736         dies, the new era is ahead !...
5737         * src/pic16/ralloc.c: added hash reposits pic16_dynAllocRegNames and
5738         pic16_dynInternalRegs,
5739         * (pic16_allocregWithName, pic16_procregWithName, pic16_regWithname): NEW,
5740         * (pic16_allocDirReg): minor optimizations and bug fixes,
5741         * (pic16_allocWithIdx): when searching pic16_dynProcessorRegs use fixed,
5742
5743         * device/lib/pic16/startup/crt0*.c: extern definition of stack_end,
5744         load stack and frame pointer with address of 'stack_end' symbol
5745
5746 2004-07-23 Vangelis Rokas <vrokas AT otenet.gr>
5747
5748         * src/pic16/glue.c (pic16emitStaticSeg): fixed bug with files
5749         without source code but only variable initializers
5750
5751 2004-07-20 Vangelis Rokas <vrokas AT otenet.gr>
5752
5753         * src/pic16/glue.c (pic16emitRegularMap): unused functions marked as
5754         external are not declared as extern to reduce overhead while linking
5755
5756 2004-07-20 Maarten Brock <sourceforge.brock AT dse.nl>
5757
5758         * src/SDCCast.c (decorateType): removed buggy fix for bug #979599
5759
5760 2004-07-11 Maarten Brock <sourceforge.brock AT dse.nl>
5761
5762         * src/SDCCglue.c (printIvalArray): fixed bug #984229, thanks to Phuah
5763           Yee Keat for the patch
5764         * src/SDCCast.c (decorateType): fixed bug #979599
5765         * src/ds390/gen.h: removed local fReturnSizeDS390
5766         * src/ds390/gen.c: made fReturnSizeDS390 signed short to remove a warning
5767         * src/ds390/gen.c (genAnd, genOr, genXor),
5768         * src/mcs51/gen.c (genAnd, genOr, genXor): generate better optimized code
5769
5770 2004-07-04 Vangelis Rokas <vrokas AT otenet.gr>
5771
5772         * src/SDCCmain.c (linkEdit): modifications only for pic16 port,
5773         add relFilesSet to $3, manipulate $2 to handle linking of object
5774         files without source files in command line,
5775         * device/include/pic16 (all headers): added ID location macros,
5776         * src/pic16/device.c (struct PIC16_device Pics16[]): added field
5777         entries for ID location bytes,
5778         * (pic16_assignIdByteValue): NEW,
5779         * src/pic16/device.h: new structures idRegInfo_t and idBytesInfo_t,
5780         added field dumpcalltree to pic16_options_t,
5781         * src/pic16/gen.c (genCmp): fixed bug case so a temporary register
5782         is used instead of pic16_Gstack_base_addr, check if (ifx) before
5783         emitting rFalseIfx label after check_carry label,
5784         * src/pic16/glue.c (PIC16_IS_IDLOC_ADDRESS, PIC16_IS_HWREG_ADDRESS,
5785         pic16_emitDIRegs), NEW
5786         * (pic16glue): dump .calltree file when option --calltree found,
5787         * src/pic16/main.c (OPTION _pic16_optionsTable): new option --calltree
5788         * (_pic16_genAssemblerPreamble): emit ID locations after
5789         configuration registers,
5790         * (pic16_linkCmd): modifications of the link command,
5791         * src/pic16/pcode.c (pic16_pciMOVFF): PCC_REGISTER replaces PCC_REGISTER2
5792         * (pic16_pCodeInitRegisters): don't init stack registers,
5793         * (pic16_findPrevInstruction): fixed bug,
5794         * (pic16_getRegFromInstruction, pic16_getRegFromInstruction2): fixed
5795         bug with immediate registers,
5796         * (buildCallTree): traces stack push and pop,
5797         * (pct2): dump also stack usage for each function,
5798         * src/pic16/ralloc.c (dynrIdx): registers names start from 0x00
5799         * (pic16_allocDirReg): various modifications,
5800         * (pic16_typeRegWithIdx): when searching pic16_dynProcessorRegs set
5801         fixed to 1,
5802
5803 2004-07-02 Vangelis Rokas <vrokas AT otenet.gr>
5804
5805         * src/pic16/pcode.c: removed buggy double colon
5806
5807 2004-07-01 Borut Razem <borut.razem AT siol.net>
5808
5809         * support/scripts/sdcc.nsi: added include/pic16 to setup
5810
5811 2004-06-30 Vangelis Rokas <vrokas AT otenet.gr>
5812
5813         * device/lib/Makefile.in: fixed bug in target objects-pic16,
5814         * device/lib/pic16/Makefile: prefixed with dash (-) command under
5815         target 'clean',
5816         * doc/sdccman.lyx: changed version to 2.4.2 and added some port
5817         specific command line arguments. Also added sample lkr script
5818         for placing a variable at a specific memory bank.
5819         * src/pic16/device.c (pic16_dump_gsection): NEW, to dump variables
5820         at a specific memory bank,
5821         * (pic16_dump_isection): fixed bug which caused string literals to
5822         be omitted when dumping idata section,
5823         * (pic16_groupRegistersInSection): added code to handle registers
5824         in specific memory banks,
5825         * src/pic16/gen.c: labelOffset is prefixed with pic16_ and made
5826         public, all references are renamed too,
5827         * (pic16_aopGet): removed switch cases for AOP_R0,AOP_R1,AOP_DPTR,
5828         AOP_DPTR2,
5829         * (pic16_storeForReturn): added case to handle when dest is WREG,
5830         * src/pic16/genarith.c (pic16_pCodeOpSubType): NEW,
5831         * src/pic16/glue.c (pic16emitRegularMap): when adding a register in
5832         pic16_rel_udata, check to see if that register is marked as being
5833         a member of a specific memory bank,
5834         * (pic16_printIvalCharPtr): added code to add string literals either
5835         to code or the idata sections,
5836         * src/pic16/main.c (_process_pragma): added \n to WHITE constant,
5837         also accept the 'udata' pragma,
5838         * src/pic16/main.h: new structure types sectName and sectSym
5839         * src/pic16/pcode.c: added new pCodeInstruction entry for BANKSEL
5840         * (newpCodeOpBit): added PIC_OPTYPE subt in function prototype,
5841         * (pic16_findPrevInstruction): fixed, it returned nothing,
5842         * (insertBankSwitch): fixed to emit banksel/skip and skip/banksel
5843         instruction combinations,
5844         * (pic16_FixRegisterBanking): heavily reorganised,
5845         * (pic16_AnalyzeBanking): if generating banksel directives is
5846         disabled, then don't call FixRegisterBanking at all,
5847         * src/pic16/ralloc.c (bitEQUs, aliasEQUs, allDefsOutOfRange):
5848         completely removed,
5849         * (pic16_writeUsedRegisters): added call to pic16_dump_gsection
5850
5851 2004-06-29 Bernhard Held <bernhard AT bernhardheld.de>
5852
5853         * src/SDCCglue.c (printChar): fixed bug #973350, patch provided by
5854         Phuah Yee Keat <yk.phuah AT nestac.com>
5855
5856 2004-06-28 Vangelis Rokas <vrokas AT otenet.gr>
5857
5858         * src/pic16/glue.c (pic16createInterruptVect): function now emits
5859         correctly the IVT even if it is relocated to some other location
5860
5861 2004-06-28 Vangelis Rokas <vrokas AT otenet.gr>
5862
5863         * device/include/pic16/pic18fregs.h: added case for pic18f2220.h
5864         * device/include/pic16/pic18f2220.h: NEW,
5865         * device/lib/pic16/libdev/pic18f2220.c: NEW,
5866         * device/lib/pic16/libdev/Makefile: added 18f2220 in DEVS,
5867         * src/pic16/device.c (struct Pics16): added info for 18f2220,
5868         * src/pic16/device.h (struct pic16_options): added ivt_loc and
5869         nodefaultlibs, ivt_loc is the location of the interrupt vector
5870         table, and nodefaultlibs signs that default libraries should not be
5871         linked in link stage,
5872         * src/pic16/gen.c (genFunction): relocate interrupt vector functions
5873         according to --ivt-loc argument,
5874         * src/pic16/main.c (_process_pragma): emit '_stack' as public symbol
5875         when pragma stack is found,
5876
5877 2004-06-25 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
5878
5879         * src/mcs51/peeph.def: added peepholes 182.d (return 0.0),
5880         256 (range check), 257 (do while), 258.a-f (bit banging
5881         f.e. on 3-wire SPI bus)
5882
5883 2004-06-21 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
5884
5885         * src/SDCClrange.c (findNextUseSym): fixed a live range bug with
5886         variables used exclusively within a loop
5887
5888 2004-06-21 Bernhard Held <bernhard AT bernhardheld.de>
5889
5890         * src/mcs51/gen.c (genCpl): quick fix for bug #974835
5891
5892 2004-06-21 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
5893
5894         * src/SDCClrange.c (computeClash): fixed bug #971834
5895
5896 2004-06-20 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
5897
5898         * src/mcs51/gen.c (genCmp): fixed bug #975903
5899         * src/hc08/gen.c (operandsEqu),
5900         * src/ds390/gen.c (operandsEqu),
5901         * src/z80/gen.c (operandsEqu),
5902         * src/pic/gen.c (operandsEqu),
5903         * src/pic16/gen.c (operandsEqu),
5904         * src/mcs51/gen.c (operandsEqu): fixed bug #976283
5905         * src/SDCCmain.c (parseCmdLine): report --unknown-option only once
5906
5907 2004-06-15 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
5908
5909         * src/SDCCcse.c (cseBBlock): fixed bug #966963
5910
5911 2004-06-12 Vangelis Rokas <vrokas AT otenet.gr>
5912
5913         * src/pic16/gen.c (genPointerGet): added E_INTERNAL_ERROR for
5914         default case in switch statement,
5915         * glue.c (pic16_initPointer): expr is initialised via decoarteType
5916         to eliminate problem with initialisation of pointers, but problem
5917         still exists,
5918         * (pic16_pointerTypeToGPByte): removed, no needed for pic16,
5919         * (emitStaticSegment): removed various lines emitting debug info,
5920         * src/pic16/pcode.c, src/pic16/pcode.h, src/pic16/ralloc.h:
5921         added processor registers for utilizing EEPROM,
5922         * src/pic16/pcode.c (pic16_emitDB): number of DBs emitted is not
5923         configurable and set 8
5924
5925 2004-06-08 Vangelis Rokas <vrokas AT otenet.gr>
5926
5927         * .version: increased version number to 2.4.2,
5928
5929         Cumulative patch for pic16 port
5930         * src/pic16/device.c: changed scheme to dump initial values for
5931         variables in idata segment, all print_idata* functions were removed,
5932         now the pic16_printIval* will be called,
5933         * src/pic16/glue.c: (pic16_initPointer, pic16_pointerTypeToGPByte,
5934         * _pic16_printPointerType, pic16_printPointerType,
5935         * pic16_printGPointerType, pic16_printIvalArray, pic16_printIvalStruct,
5936         * pic16_printIvalBitFields, pic16_printIvalFuncPtr, pic16_printIvalPtr:
5937         NEW, similar to the respective functions in SDCCglue.c,
5938         * src/pic16/pcode.c (pic16_emitDB, pic16_flushDB): reverted to old
5939         way, emitting hex bytes,
5940         * (pic16_emitDS): NEW, emits a string for pointer initialisation,
5941
5942 2004-06-08 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
5943
5944         * src/avr/ralloc.c (serialRegAssign),
5945         * src/xa51/ralloc.c (serialRegAssign),
5946         * src/pic/ralloc.c (serialRegAssign),
5947         * src/pic16/ralloc.c (serialRegAssign),
5948         * src/hc08/ralloc.c (serialRegAssign),
5949         * src/z80/ralloc.c (serialRegAssign),
5950         * src/ds390/ralloc.c (serialRegAssign),
5951         * src/mcs51/ralloc.c (serialRegAssign): fixed bug #964479
5952
5953 2004-06-08 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
5954
5955         * src/SDCCicode.c (geniCodeJumpTable): fixed bug #967601
5956         * src/SDCCpeeph.c (labelIsReturnOnly): fixed bug #966505
5957
5958 2004-06-07 Vangelis Rokas <vrokas AT otenet.gr>
5959
5960         Cumulative patch for pic16 port:
5961         * src/pic16/device.h (typedef PIC16_device) modified fields for
5962         defining microcontrollers,
5963         * src/pic16/device.c: added new info for all devices in Pics16 array,
5964         * src/pic16/gen.c (genPcall): fixed bug that caused the return label
5965         to be optimised out by the pCode optimiser,
5966         * src/pic16/glue.c (pic16emitRegularMap): treat implicit aggragates
5967         specially, bug reported by G.M. Gallant,
5968         * src/pic16/pcode.c (pic16_newpCodeLabelFORCE): NEW, marks a label
5969         as force'd so that cannot be optimised out by pCode optimiser,
5970         * src/pic16/pcode.c,
5971         * src/pic16/pcodepeeph.c,
5972         * src/pic16/pcoderegs.c: many modifications to re-enable peepholes,
5973         they are disabled by default, but can be enabled explicit with
5974         command argument --denable-peeps, for testing,
5975         * device/lib/pic16/startup/Makefile: added --no-peep,--pomit-config-words,
5976         --pomit-ivt in COMPILE_FLAGS
5977
5978 2004-06-06 Maarten Brock <sourceforge.brock AT dse.nl>
5979
5980         * src/pic16/pcode.c (pic16_emitDB): removed double semicolon which fails
5981           compilation on MSVC
5982
5983 2004-06-06 Maarten Brock <sourceforge.brock AT dse.nl>
5984
5985         * device/include/sab80515.h: added sfr P6, changed GPL to LGPL
5986
5987 2004-06-06 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
5988
5989         device/include/sab80515.h: fixed bug #967492, DAPR is defined at adress
5990         0xd8, but the correct adress is 0xda. Thanks to anonymous for reporting
5991
5992 2004-06-06 Vangelis Rokas <vrokas AT otenet.gr>
5993
5994         * src/pic16/device.c (pic16_assignConfigWord): fixed bug that
5995         would only assign 0x300001 register.
5996
5997 2004-06-05 Vangelis Rokas <vrokas AT otenet.gr>
5998
5999         * device/lib/pic16/startup/Makefile: added $(MODELFLAGS)
6000         in COMPILE_FLAGS. Thanks to G. Gallant for report.
6001
6002 2004-06-05 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
6003
6004         * doc/sdccman.lyx: minor changes, mentioned beta vendor support
6005         for ds80c400
6006         * src/mcs51/peeph.def: ran unexpand -a over peeph.def
6007         * src/mcs51/peeph.def: removed obsolete peephole 100.a,
6008         added peephole 254 (left shift), 255 (jump table)
6009
6010 2004-06-04 Vangelis Rokas <vrokas AT otenet.gr>
6011
6012         * device/lib/Makefile.in: removed comment line with model-pic16,
6013         * (target port-specific-objects-pic16): the libraries and objects
6014         are copied to the build directory form the device/lib/pic16/bin
6015         directory
6016
6017         Cumulative patch concerning pic16 port:
6018         * library directory has been re-organized,
6019         * added support for PIC18F1220,
6020         * added headers and library sources for chips 18f1220,18f6520,
6021         18f6620,18f6680,18f6720,18f8520,18f8620,18f8680,18f8720
6022
6023         * configuration registers setting has changed, now each supported
6024         device has a complete description of the registers it uses,
6025         * all initialisations are moved to idata sections, these section
6026         can be absolute or relocatable,
6027         * fixed initialisation of codespace variables,
6028         * fixed warning about PCLATU and gpsim,
6029         * src/pic16/gen.c (genCmp): now can handle partially iCodes with no ifx,
6030         * (genAssign): use table reads when assigning from variables in codespace,
6031         * src/pic16/glue.c (pic16emitStaticSeg): fixed to correctly initialise
6032         char/int variables placed in codespace,
6033         * (pic16_emitConfigRegs): NEW, emits a list with configuration
6034         registers set in .asm file, no need for --pomit-config-words anymore,
6035         * (pic16glue): some 8051 legacy segments are commented out
6036         (to be removed completely),
6037         * added support for alternative assembler and linker with --asm=
6038         and --link= command line arguments,
6039         * peepholes are disabled automatically in the port, no need to
6040         specify on command line,
6041         * port supports natively char/int/long multiplication, but converts
6042         all divisions to support functions,
6043         * main.c: pic16_linkCmd and pic16_asmCmd changed to force output
6044         to the file set in variable $2,
6045         * pcode.c (pic16_emitDB, pic16_flushDB): modified to print printable
6046         strings in ASCII format and not in hex,
6047         * ralloc.c (serialRegAssign): added a triplet of conditional calls
6048         to pic16_allocDirReg for IC_RESULT, IC_LEFT and IC_RIGHT so to
6049         allocate proper register if iCodes aren't temporary,
6050
6051 2004-06-02 Maarten Brock <sourceforge.brock AT dse.nl>
6052
6053         * support/regression/tests/zeropad.c: added TEST_G macro for alpha
6054
6055 2004-06-02 Vangelis Rokas <vrokas AT otenet.gr>
6056
6057         * src/pic16/gen.c (genPcall): warning about gpsim and PCLATU
6058         is commented out
6059
6060 2004-06-01 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
6061
6062         * src/hc08/gen.c (genPointerGetSetOfs): disabled optimization if
6063         computed address is reused
6064         * src/hc08/gen.c (genPackBits): fixed offsets in assignments to
6065         multi-byte bitfields
6066
6067 2004-06-01 Maarten Brock <sourceforge.brock AT dse.nl>
6068
6069         * src/z80/gen.c: (genArrayInit): must check for pointers too
6070
6071 2004-06-01 Maarten Brock <sourceforge.brock AT dse.nl>
6072
6073         * support/regression/tests/zeropad.c: never meant to commit the
6074           nestedstruct test: removed, added check for GCC version
6075
6076 2004-05-31 Maarten Brock <sourceforge.brock AT dse.nl>
6077
6078         * src/SDCCast.c (createIvalArray): fixed bug 770487 SIGSEGV
6079         * src/SDCCglue.c (emitRegularMap): fixed bug 770484 allocation problem
6080         * src/SDCCglue.c (initPointer, printIvalType, printIvalStruct,
6081           printIvalArray, printIvalFuncPtr, printIvalPtr, printIval): fixed
6082           bugs 928906 and 954082 half-empty initializers
6083         * src/SDCCsymt.h,
6084         * src/SDCCsymt.c (getAllocSize): added for above fix
6085         * src/z80/gen.c (genArrayInit): fixed bug 741044
6086         * support/regression/tests/zeropad.c: added tests
6087
6088 2004-05-30 Vangelis Rokas <vrokas AT otenet.gr>
6089
6090         * src/pic16/device.c (pic16_dump_section): corrected bug which
6091         caused some symbols of the libraries to be misplaced
6092
6093 2004-05-28 Vangelis Rokas <vrokas AT otenet.gr>
6094
6095         * src/pic16/glue.c,
6096         * src/pic16/ralloc.h,
6097         * src/pic16/ralloc.cc: prefixed IS_CONFIG_ADDRESS with PIC16_
6098         to fix conflict with pic port
6099
6100 2004-05-28 Vangelis Rokas <vrokas AT otenet.gr>
6101
6102         * src/pic16/glue.c (pic16emitStaticSeg): do not print as publics or
6103         externs configuration variables,
6104         * src/pic16/ralloc.h,
6105         * src/pic16/ralloc.cc: IS_CONFIG_ADDRESS is made public and added
6106         prototype in header, commented out some debug messages
6107
6108 2004-05-26 Vangelis Rokas <vrokas AT otenet.gr>
6109
6110         * src/pic16/glue.c,
6111         * src/pic16/main.c,
6112         * src/pic16/pcode.c: added gpasm directives #FILE/#LINE
6113         for gpasm COFF object generation. Thanks to D. Hawkins for
6114         his patch info
6115
6116 2004-05-25 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
6117
6118         * src/ds390/main.c,
6119         * src/mcs51/main.c: fixed sort order of mnemonics (thanks to Maarten
6120         Brock for spotting this)
6121         * src/ds390/gen.c (genEndFunction),
6122         * src/mcs51/gen.c (genEndFunction): always save psw if function is an
6123         interrupt handler and critical. Disable push/pop optimizations when
6124         peephole optimizations disabled.
6125
6126 2004-05-25 Vangelis Rokas <vrokas AT otenet.gr>
6127
6128         Updated pic16 library sources and headers.
6129         * device/lib/pic16/pic18f*/ ,
6130         * device/include/pic16/*.h: modified to handle structured SFR
6131         definitions
6132
6133 2004-05-25 Vangelis Rokas <vrokas AT otenet.gr>
6134
6135         * src/port.h (PORT structure): added hook initPaths, now each
6136         port can declare its own default search paths,
6137         which can been seen with the --print-search-dirs option,
6138         see pic16 port for example,
6139         * src/SDCCmain.c (setBinPaths, setIncludePaths, setLibPath,
6140         setDataPaths): test to options.printSearchDirs is ifdef'ed out,
6141         * (doPrintSearchDirs): NEW, replaces in a central manner the
6142         printing of search dirs which was split in set*Paths functions,
6143         * (main): added call to port->initPaths and doPrintSearchDirs,
6144         * src/avr/main.c,
6145         * src/ds390/main.c,
6146         * src/hc08/main.c,
6147         * src/izt/i186.c,
6148         * src/izt/tlcs900h.c,
6149         * src/mcs51/main.c,
6150         * src/pic/main.c,
6151         * src/pic16/main.c: modified port structures to reflect addition of
6152         initPaths hook,
6153
6154         * src/pic16/device.c (regCompare): registers are finally sorted by name,
6155         * (pic16_dump_section): for registers in same address reserve memory once,
6156         * src/pic16/device.h (struct PIC16_device): changed variable gen_banksel
6157         to no_banksel,
6158         * src/pic16/genarith.c (pic16_genPlus): added code to handle cases where
6159         result is greater in size than right or left,
6160         * (pic16_genUMult8X8_8): there are some cases where the result can
6161         be 16 bits size, so handle these,
6162         * src/pic16/gen.c: changed some pic16_emitpcomment to DEBUGpic16_emitcode,
6163         * (pic16_outBitC): modified to emit pcodes,
6164         * (pic16_storeForReturn): using is_LitOp to see if operand is literal
6165         or not,
6166         * (genDivOneByte): implemented algorithm to divide 8-bits,
6167         * (genCmp): uncommented goto, but issues still exist,
6168         * (genAnd): fixed a bug with variables >8bits,
6169         * (genPackBits): optimization added that uses BCF/BSF to change a
6170         single bit,
6171         * (genAssign): fixed bug when assigning floating point literals,
6172         * src/pic16/glue.c (pic16glue): added assembler directive 'code' before
6173         __sdcc_gsinit_startup label,
6174         * src/pic16/main.c (_pic16_init): removed search directory
6175         initialisations,
6176         * (_pic16_initPaths): NEW, used to initialise search directories,
6177         * (_hasNativeMulFor): support functions for all except char/int
6178         multiplication, and char division,
6179         * (PIC16_port struct): modified entry for native mul support,
6180         * src/pic16/pcode.c (insertBankSwitch): modified to support the renamed
6181         no_banksel option,
6182         * (buildCallTree): call to register_usage is ifdef'ed out,
6183
6184 2004-05-22 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
6185
6186         * device/include/string.h: applied Stas Sergeev's patch to make this
6187         header file compatible with the preprocessor -Wundef option
6188         * src/SDCCmain.c (main): abort compilation if preprocessor reports
6189         failure (fixes bug #941458)
6190
6191 2004-05-21 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
6192
6193         * src/SDCCopt.c (killDeadCode): fixed bug #907733
6194         * support/Util/SDCCerr.c: reworded E_AUTO_ASSUMED diagnostic to clarify
6195         that the variable, not the function, should be static
6196         * src/SDCCval.c (valCastLiteral): fixed bit initialization from literal
6197         to be consistent with non-literal case
6198
6199 2004-05-19 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
6200
6201         * src/SDCCast.c (isConformingBody): fixed bug #949967
6202         * src/SDCCopt.c (cnvToFcall, cnvToFloatCast, cnvFromFloatCast,
6203         convilong): fixed bug #952086
6204
6205 2004-05-18 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
6206
6207         * src/SDCCmem.c (allocVariables): fixed bug #955321
6208
6209 2004-05-18 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
6210
6211         * src/hc08/main.c (_hc08_genAssemblerEnd),
6212         * src/SDCCdwarf2.c (dwOpenFile, dwCloseFile, dwWriteFunction,
6213         dwWriteModule, dwWriteCLine, dwWriteALine, dwarf2FinalizeFile):
6214         completely eliminated the use of a temporary file
6215         * src/SDCCdwarf2.c (dwWriteAttr): fixed bug with location list offset
6216         when more than one file linked
6217         * src/SDCCloop.c (pointerAssigned): fixed bug #954163
6218
6219 2004-05-17 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
6220
6221         * src/SDCCval.c (valForArray): applied Maarten Brock's patch #947682
6222         which fixes bug #543481
6223         * support/regression/tests/bug-751703.c: fixed comments left from a
6224         cut and paste error
6225         * src/SDCCdwarf2.c (dwCloseFile): don't explicitly close a temp file
6226         * src/SDCCdwarf2.c (dwTagFromType): added bitfield support
6227         * src/SDCCdwarf2.c (dwWriteSymbolInternal): handle extern within local
6228         scopes
6229         * src/SDCCdwarf2.c (dwWriteLineNumber): line number deltas are signed
6230         * src/SDCCmain.c (processFile, parseCmdLine): non-alphanumeric chars
6231         are now changed to underscores in moduleName
6232
6233 2004-05-15 Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
6234
6235         * as/mcs51/lkmem.c: better fix for bug #954173
6236
6237 2004-05-15 Maarten Brock <sourceforge.brock AT dse.nl>
6238         committed by Frieder Ferlemann <Frieder.Ferlemann AT web.de>
6239
6240         * device/include/c8051f020.h: newly added SiLabs (Cygnal) header file
6241         * device/include/c8051f000.h,
6242         * device/include/c8051f120.h,
6243         * device/include/c8051f300.h,
6244         * device/include/c8051f310.h,
6245         * device/include/c8051f320.h: updated (added _XPAGE, CAPN, CAPP,
6246         PWM16) and detab'ed
6247
6248 2004-05-15 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
6249
6250         * doc/sdccman.lyx: mentioned sourceforge's delay between web frontend
6251         and mailing lists, doc'ed --no-peep-comments, removed reference
6252         to knoppix (newest version has no LyX/LaTeX), other minor changes
6253         * src/SDCCglue.c (glue): save 2 bytes stack space with
6254         option --main-return. The ljmp could probably be avoided too
6255
6256 2004-05-14 Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
6257
6258         * as/mcs51/lkmem.c, as/mcs51/lkaomf51: fixed bug 954173
6259
6260 2004-05-14 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
6261
6262         * src/SDCCsymt.h: added IS_AUTO(symbol) test macro
6263         * src/SDCCopt.c (isLocalWithoutDef),
6264         * src/SDCCicode.c (operandFromSymbol): use the IS_AUTO test macro
6265         which adds a !IS_EXTERN codition. Fixes bugs #877426 and #751703.
6266         (credit to Maarten Brock for patch #949363, on which this is based)
6267         * support/regression/tests/bug-751703.c: some test cases of extern used
6268         within inner scopes.
6269
6270 2004-05-14 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
6271
6272         * src/SDCCdwarf2.c (dwMatchTypes): structs must have matching
6273         SPEC_STRUCT
6274         * src/SDCCdwarf2.c (dwTagFromType): fix to handle recursive
6275         struct definitions
6276         * src/SDCCdwarf2.c (dwWriteModule, dwNewDebugSymbol, dwWriteEndFunction,
6277         dwWriteLabel): fix to create valid debugger symbols even when
6278         the module name has non-alphanumeric symbols in it
6279         * src/SDCCdwarf2.c (dwWriteSymbolInternal): better detection for
6280         when a variable's allocation has been optimized away
6281
6282
6283 2004-05-13 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
6284
6285         * src/hc08/gen.c (hc08_emitDebuggerSymbol),
6286         * src/hc08/main.c,
6287         * src/mcs51/gen.c (mcs51_emitDebuggerSymbol),
6288         * src/mcs51/main.c,
6289         * src/ds390/gen.c (ds390_emitDebuggerSymbol),
6290         * src/ds390/main.c,
6291         * src/z80/gen.c (z80_emitDebuggerSymbol),
6292         * src/z80/main.c,
6293         * src/pic/gen.c (pic14_emitDebuggerSymbol),
6294         * src/pic/main.c,
6295         * src/pic16/gen.c (pic14_emitDebuggerSymbol),
6296         * src/pic16/main.c,
6297         * src/avr/gen.c (avr_emitDebuggerSymbol),
6298         * src/avr/main.c,
6299         * src/xa51/gen.c (xa51_emitDebuggerSymbol),
6300         * src/xa51/main.c,
6301         * src/SDCCdebug.c (emitDebuggerSymbol),
6302         * src/SDCCdebug.h,
6303         * src/port.h: added a debugger struct to the port struct. Added a
6304         callback for defining debugger symbols
6305
6306         * src/SDCCast.c (createLabel),
6307         * src/SDCC.y (labeled_statement): mark all compiler generated labels
6308         with isitmp = 1
6309         * src/SDCCicode.h,
6310         * src/SDCCicode.c (geniCodeFunctionBody): added a link from the FUNCTION
6311         iCode back to the ast for the function
6312
6313         * src/hc08/ralloc.c (hc08_assignRegisters),
6314         * src/hc08/ralloc.h: define a regs struct for the stack pointer. Removed
6315         unneeded fields from the regs struct.
6316         * src/hc08/gen.c (transferRegReg, genFunction, genEndFunction): use the
6317         pushReg() & pullReg() functions instead of emitcode()
6318
6319         * src/hc08/gen.c (genLabel, genhc08Code),
6320         * src/SDCCdebug.h: Added additional debugger hooks needed for DWARF
6321
6322         * src/cdbFile.c (cdbWriteLabel, cdbWriteScope): Added stubs for unneeded
6323         debugger hooks
6324
6325         * src/hc08/gen.c (genEndFunction, genhc08Code),
6326         * src/hc08/gen.h,
6327         * src/mcs51/gen.c (genEndFunction, gen51Code),
6328         * src/mcs51/gen.h,
6329         * src/ds390/gen.c (genEndFunction, gen390Code),
6330         * src/ds390/gen.h,
6331         * src/z80/gen.c (genEndFunction, genZ80Code),
6332         * src/z80/gen.h,
6333         * src/z80/z80.h,
6334         * src/pic/gen.c (genEndFunction, genpic14Code),
6335         * src/pic/gen.h,
6336         * src/pic16/gen.c (genEndFunction, genpic16Code),
6337         * src/pic16/gen.h,
6338         * src/avr/gen.c (genEndFunction, genAVRCode),
6339         * src/avr/gen.h,
6340         * src/xa51/gen.c (genEndFunction, genXA51Code),
6341         * src/xa51/gen.h,
6342         * src/cdbFile.c (cdbWriteFunction, cdbWriteEndFunction): moved cdb
6343         specific code to cdbFile.c and out of the backend code generators
6344
6345         * as/hc08/lkmain.c (main): removed OMF51 support from link-hc08
6346         * as/hc08/lkarea.c (lnkarea): areas with NOLOAD attribute default
6347         starting address is now 0
6348
6349         * as/hc08/asm.h,
6350         * as/hc08/m08pst.c,
6351         * as/hc08/asmain.c (asmbl): implemented the .sleb128 and .uleb128
6352         assembler directive for DWARF support
6353         * as/hc08/lkelf.c (elf): only increment address when rtflg[] set
6354
6355         * src/src.dsp,
6356         * src/Makefile.in,
6357         * src/SDCCdwarf2.c: preliminary DWARF (ver 2) debugger data generator
6358
6359 2004-05-04 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
6360
6361         * src/hc08/gen.c (genJumpTab, emitcode, genhc08code): fixed stack error
6362         and inappropriate peephole optimization in jump tables
6363
6364 2004-04-30 Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
6365
6366         * as/hc08/m08pst.c,
6367         * src/SDCCglue.c: sdccopt works for the hc08 port now
6368
6369 2004-04-27 Bernhard Held <bernhard AT bernhardheld.de>
6370
6371         * src/SDCCicode.c (geniCodePreInc, geniCodePreDec): fixed bug #942130
6372
6373 2004-04-27 Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
6374
6375         * as/hc08/lkelf.c: sdccconf.h is not available in WIN32
6376
6377 2004-04-24 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
6378
6379         * src/SDCCpeeph.c (replaceRule): support empty replacement peephole
6380         rules
6381         * src/SDCCmain.c,
6382         * src/SDCCglobl.h,
6383         * src/SDCCpeeph.c (getPeepLine): new option --no-peep-comments omits
6384         comments from the peephole optimizer replacement rules
6385         * src/SDCCmem.c (printAllocInfoSeg): give actual location of spilled
6386         symbols
6387         * src/SDCCcse.c (updateSpillLocation),
6388         * src/SDCCopt.c (killDeadCode, findReqv): better tracking of register
6389         equivalents
6390         * src/hc08/ralloc.c (regTypeNum): pseudo symbols must be in DATA only
6391         * src/hc08/main.c (_hc08_finaliseOptions): made pointers to stack
6392         objects far pointers
6393
6394 2004-04-23 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
6395
6396         * src/SDCCsymt.h: a missing part of my last change
6397         * src/pic/ralloc.c (regTypeNum),
6398         * src/pic16/ralloc.c (regTypeNum): fixed statement/declaration order
6399
6400 2004-04-23 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
6401
6402         * src/SDCCicode.h,
6403         * src/SDCCicode.c (aggrToPtrDclType),
6404         * src/SDCCptropt.h,
6405         * src/SDCCptropt.c (ptrBaseRematSym, ptrPseudoSymSafe,
6406         ptrPseudoSymConvert),
6407         * src/pic/ralloc.c (regTypeNum),
6408         * src/pic16/ralloc.c (regTypeNum),
6409         * src/hc08/ralloc.c (regTypeNum),
6410         * src/ds390/ralloc.c (regTypeNum),
6411         * src/mcs51/ralloc.c (regTypeNum): check for dependancy hazards before
6412         creating pseudo symbols (fixed bugs #777768, #930484, and #933966)
6413
6414 2004-04-22 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
6415
6416         * link/z80/lkmain.c (afile),
6417         * as/hc08/lkmain.c (afile),
6418         * as/mcs51/lkmain.c (afile): fix suggested by Maarten Brock to
6419         prevent a pointer problem when a filename has no directory and
6420         no extension specified.
6421
6422 2004-04-21 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
6423
6424         * link/z80/lkmain.c (afile): allow periods in directory names
6425         * link/z80/lkmain.c (afile),
6426         * as/mcs51/lkmain.c (afile),
6427         * as/hc08/lkmain.c (afile): allow linker script file to have an
6428         extension other than ".lnk"
6429         * link/z80/lklex.c (getfid),
6430         * link/z80/lkmain.c (parse),
6431         * as/mcs51/lklex.c (getfid),
6432         * as/mcs51/lkmain.c (parse),
6433         * as/hc08/lklex.c (getfid),
6434         * as/hc08/lkmain.c (parse): Support comments in the linker script
6435         file on lines by themselves and after filenames
6436
6437 2004-04-20 Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
6438
6439         * as/link_hc08.dsp: Added as/hc08/lkelf.c to project.
6440
6441 2004-04-20 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
6442
6443         * src/z80/peeph-z80.def: removed some peephole rules that don't
6444         work with multibyte arithmetic (fixed bug #937126)
6445         * src/mcs51/peeph.def: fixed peephole rules 150-158 to apply only
6446         to registers and not global variables
6447         * src/SDCCicode.c (geniCodeAssign, ast2iCode, geniCodePostInc,
6448         geniCodePreInc, geniCodePostDec, geniCodePreDec,
6449         geniCodeLogicAndOr, geniCodeConditional): enforce strict lvalue
6450         checking for assignments not internally generated (fixed bug #931895)
6451         * src/SDCC.y (postfix_expr): ignore typedefs when looking for a
6452         structure member (fixed bug #930072)
6453
6454 2004-04-19 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
6455
6456         * src/SDCCmain.c (linkEdit),
6457         * src/hc08/main.c (_hc08_parseOptions),
6458         * as/hc08/Makefile.in,
6459         * as/hc08/aslink.h,
6460         * as/hc08/asm.h,
6461         * as/hc08/m08pst.c,
6462         * as/hc08/lkrloc.c (relr, rele),
6463         * as/hc08/lkarea.c (lnkarea)
6464         * as/hc08/lkmain.c (afile, parse),
6465         * as/hc08/lkelf.c: support for ELF output
6466         * as/hc08/lks19.c (s19),
6467         * as/hc08/lkihx.c (ihx): ignore areas with the NOLOAD attribute
6468
6469 2004-04-17 Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
6470
6471         * as/mcs51/lkihx.c: Fixed bug #899105.
6472
6473 2004-04-16 Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
6474
6475         * doc/sdccman.lyx: Added instructons on how to convert MSVC .dsw and
6476         .dsp files from Unix to DOS.
6477
6478 2004-04-16 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
6479
6480         * doc/sdccman.lyx: removed the ANSI-C noncompliance note regarding
6481         function pointers; we have been compliant for several months now.
6482         * src/mcs51/ralloc.c (serialRegAssign): enabled part of my 2004-04-13
6483         change that was accidently commented out
6484         * src/mcs51/gen.c (freeAsmop, getFreePtr, freeForBranchAsmop, genIfxJump,
6485         genCmpEq, jmpTrueOrFalse, genCmp, genAnd, genOr, genXor, genIfx): fixed
6486         bug #922319
6487
6488 2004-04-15 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
6489
6490         * src/hc08/gen.c: output of all of the internal debugging information
6491         is now controlled by the D() macro; it is disabled by default
6492
6493 2004-04-13 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
6494
6495         * src/mcs51/ralloc.c (serialRegAssign, fillGaps, allocThisReg): try
6496         harder to keep the same registers during a CAST iCode
6497         * src/SDCCopt.c (optimizeCastCast, eBBlockFromiCode): casts of char to
6498         long via int can be done in a single cast, if the signedness is
6499         correct.
6500         * support/regression/tests/bug-927659.c: fixed to avoid conflict with
6501         putchar() in tinibios.c in ds390's library
6502
6503 2004-04-12 Bernhard Held <bernhard AT bernhardheld.de>
6504
6505         * src/SDCCast.c (decorateType): fixed bug #898889,
6506         cast result of a literal complement too
6507         * src/mcs51/ralloc.c (packRegsForAssign): fixed bug #930931,
6508         fixed check for bitfields
6509
6510 2004-04-11 Bernhard Held <bernhard AT bernhardheld.de>
6511
6512         * src/SDCCicode.c (geniCodeLogic): made it static,
6513         (geniCodeLogicAndOr): added in order to fix bug #905492,
6514         (ast2iCode): fixed bug #905492
6515         * support/regression/tests/bug-905492.c: added
6516         * src/SDCCast.c (decorateType): don't decorate/process parms twice,
6517         (processParms): fixed bug #927659: don't copy parms, this will clear
6518         decorated flag
6519         * support/regression/tests/bug-927659.c: added
6520
6521 2004-03-29 Bernhard Held <bernhard AT bernhardheld.de>
6522
6523         * src/SDCCast.c (addCast): don't cast float to char
6524         * device/lib/libsdcc.lib: added _memmove
6525
6526 2004-03-28 Bernhard Held <bernhard AT bernhardheld.de>
6527
6528         * device/lib/large/Makefile: fixed parallel execution by
6529         replacing `make` by `$(MAKE)`
6530
6531 2004-03-28 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
6532
6533         * src/hc08/gen.c (genPointerGetSetOfs): correctly handle 1 byte array
6534         offsets (fixes bug #923936)
6535
6536 2004-03-26 Bernhard Held <bernhard AT bernhardheld.de>
6537
6538         * device/lib/small/Makefile: fixed parallel execution by
6539         replacing `make` by `$(MAKE)`
6540
6541 2004-03-23 Bernhard Held <bernhard AT bernhardheld.de>
6542
6543         * device/lib/vprintf.c (vsprintf): minor optimization, see bug #801101
6544
6545 2004-03-23  Scott Dattalo  <scott AT dattalo.com>
6546
6547         * src/pic/gen.c (genCpl): multi-byte complements were not working.
6548         * src/regression/Makefile: Regression test was not running.
6549
6550 2004-03-23 Bernhard Held <bernhard AT bernhardheld.de>
6551
6552         * src/SDCCast.c (resultTypePropagate, decorateType): avoid promotion to int for
6553         complement if possible
6554         * src/SDCCval.c (valComplement),
6555         * src/SDCCicode.c (operandOperation): fixed complement of literal
6556         * support/regression/tests/onebyte.c (testComplement): added
6557
6558 2004-03-22 Bernhard Held <bernhard AT bernhardheld.de>
6559
6560         * src/SDCCast.c (processParms): fixed bug #920866; decorateType() can
6561         return an optimized tree; actually replace actParm with the new tree
6562         * src/SDCCast.h: added some parantheses to remove side effects
6563         * support/regression/tests/bug-920866.c
6564
6565 2004-03-21  Scott Dattalo  <scott AT dattalo.com>
6566         * src/pic/gen.c, src/pic/gen.h, src/pic/genarith.c, src/pic/pcode.c:
6567         Bit operands were not being handled properly in the pic14 port.
6568         (now src/regression/add.c passes again).
6569
6570 2004-03-20 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
6571
6572         * src/SDCC.y (labeled_statement): case and default no longer require
6573         a following statement (RFE #893037)
6574
6575 2004-03-19 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
6576
6577         * src/mcs51/gen.c (pushSide, genSignedRightShift, genDjnz, geniPush):
6578         use MOVA macro to avoid "mov a,acc" when peephole optimizer is
6579         disabled (fixes bug #916294)
6580         * sim/ucsim/s51.src/mov.cc (inst_mov_a_addr): Throw an error on
6581         "mov a,acc"; patch provided by Lenny Story
6582         * device/include/mc68hc908gp32.h: header contibuted by Juan Gonzalez
6583
6584 2004-03-19 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
6585
6586         * src/mcs51/gen.c (genFunction): optimize RECEIVE in reentrant
6587         functions
6588         * src/ds390/gen.c (genFunction, genEndFunction),
6589         * src/ds390/ralloc.c (ds390_assignRegisters),
6590         * src/mcs51/gen.c (genFunction, genEndFunction, mcs51_assignRegisters):
6591         * src/mcs51/ralloc.c (mcs51_assignRegisters): Skip optimizing registers
6592         pushed if there are parameters passed on the stack. Also, a cleaner
6593         way to decide if r0/r1 should be pushed/popped. (Together they fix
6594         bug #918693)
6595
6596 2004-03-18 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
6597
6598         * doc/sdccman.lyx,
6599         * device/lib/mcs51/crtpagesfr.asm,
6600         * device/lib/mcs51/crtxinit.asm,
6601         * device/lib/mcs51/crtxstack.asm: Changed name of _PAGESFR to _XPAGE
6602         to avoid confusion with Si Lab's SFRPAGE register.
6603
6604 2004-03-17 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
6605
6606         * src/SDCCglue.c (emitMaps): allow public sfr variables
6607         * src/SDCCglue.c (initialComments): include compiler build date
6608         with compiler version and put the timestamp of the generated
6609         assembly file on a serperate line to be less confusing.
6610         * src/port.h: added genInitStartup hook
6611         * src/avr/main.c,
6612         * src/ds390/main.c,
6613         * src/hc08/main.c,
6614         * src/pic/main.c,
6615         * src/pic16/main.c,
6616         * src/xa51/main.c,
6617         * src/z80/main.c: genInitStartup initialize as NULL (default to
6618         historical behaviour)
6619         * src/SDCCglue.c (glue): _sdcc_gsinit_startup is now port specific.
6620         * src/mcs51/main.c: (_mcs51_genInitStartup, _mcs51_genExtraAreas,
6621         _mcs51_genXINIT, _mcs51_genRAMCLEAR): link initialization code from the
6622         library instead of hard coding it into the compiler.
6623         * support/regression/ports/mcs51-stack-auto/spec.mk,
6624         * src/SDCCmain.c (linkEdit): added mcs51.lib to the link libraries
6625         * device/lib/mcs51/Makefile,
6626         * device/lib/small/Makefile,
6627         * device/lib/large/Makefile,
6628         * device/lib/mcs51/crtpagesfr.asm,
6629         * device/lib/mcs51/crtstart.asm,
6630         * device/lib/mcs51/crtxclear.asm,
6631         * device/lib/mcs51/crtxinit.asm,
6632         * device/lib/mcs51/crtclear.asm,
6633         * device/lib/mcs51/crtxstack.asm: move most of the mcs51 C runtime
6634         startup/initialization out of src/SDCCglue.c and src/mcs51/main.c
6635         and into user configurable files.
6636         * device/lib/clean.mk: clean mcs51 directory too
6637         * support/regression/tests/longlit.c: added static to T1 declaration
6638         * doc/sdccman.lyx: documented _PAGESFR sfr for customizing pdata
6639         accesses in the initialization code
6640
6641 2004-03-14 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
6642
6643         * device/include/mc68hc908qy.h: corrected declarations of FLBPR and
6644         OSCTRIMVAL as noted in bug #916008
6645
6646 2004-03-14 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
6647
6648         * src/SDCCloop.c (basicInduction): fixed bug with loop induction
6649         in loops with multiple exits (reported as incorrect registers
6650         used by Martin Helmling in Sdcc-user list)
6651
6652 2004-03-12 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
6653
6654         * src/ds390/main.c (_ds390_genAssemblerPreamble): cosmetic change,
6655         made ds390 register extensions look less like error messages
6656
6657 2004-03-12 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
6658
6659         * src/SDCCglue.c (printIvalPtr): fixed bug with pointer initializer
6660         reported by Adam Wozniak in Sdcc-user list
6661
6662 2004-03-10 Bernhard Held <bernhard AT bernhardheld.de>
6663
6664         * src/SDCCast.c (decorateType): fixed with bug and promotion in
6665         arithmetic optimizations, added debug output
6666
6667 2004-03-09 Bernhard Held <bernhard AT bernhardheld.de>
6668
6669         * device/lib/time.c (mktime): fixed bug reported by Bert Thomas
6670         * sdcc.spec: updated and split sdcc into 3 rpms
6671         * src/SDCCast.c (decorateType): &|^ don't need addCast(); addCast() is
6672         needed for literals of LEFT_OP and '+'
6673         * src/SDCCicode.c (geniCodeLogic): I must have been braindead when I
6674         introduced RESULT_TYPE_NOPROM
6675         (geniCodeMultiply): fixed logic for decision if mul is optimized to
6676         left shift
6677         * src/SDCCsymt.c (computeType): op is int; added RESULT_TYPE_OTHER;
6678         limited promotion to int only for '*'
6679         * src/SDCCsymt.h (computeType): op is int, removed RESULT_TYPE_NOPROM
6680
6681 2004-03-09 Hans Dorn <hjdorn AT users.sourceforge.net>
6682
6683         * src/pic16/gen.c (genSkip),
6684         (genc16bit2lit), (gencjneshort): commented out
6685         (is_LitOp): new helper function, checks operand type
6686         (genCmpEq): rewritten
6687
6688 2004-03-08 Bernhard Held <bernhard AT bernhardheld.de>
6689
6690         * support/regression/tests/bug-908454.c: added
6691
6692 2004-03-07 Bernhard Held <bernhard AT bernhardheld.de>
6693
6694         * src/SDCCast.c (addCast): fixed bug #908454 by promoting bits to char
6695         * src/SDCCicode.c (usualBinaryConversions): op needs int type
6696         (geniCodeCast): cosmetic, don't preserve bit storage class
6697         (geniCodeLeftShift): added promotion
6698         (geniCodeLogic): fixed regression
6699         * src/SDCCsymt.c (computeTypeOr): accept bits too
6700         (compareType): 2nd part of fix for bug #908454, needed for bitfields
6701
6702 2004-03-07  Borut Razem <borut.razem AT siol.net>
6703
6704         * support/Util/findme.c: alloca() replaced with malloc()/free() pair
6705
6706 2004-03-06 Vangelis Rokas <vrokas AT otenet.gr>
6707
6708         * src/pic16/ralloc.c (pic16_genPackRegisters): reverted to old
6709         version of pic16_genPackRegisters which does not check if ic is a
6710         CAST operator,
6711         * src/pic16/gen.c (ifxForOp): disabled new and untested code in
6712         function cause string1.c regression test fails
6713
6714 2004-03-06 Bernhard Held <bernhard AT bernhardheld.de>
6715
6716         * sim/ucsim/configure.in,
6717         * sim/ucsim/configure,
6718         * sim/ucsim/doc/Makefile.in: use docdir
6719         * src/SDCC.y: fixed sbit atrributes
6720         * src/SDCCast.c (getResultTypeFromType): added support for bitfields
6721         * src/SDCCast.c (decorateType): |^& need special promotion handling
6722         * src/SDCCast.h,
6723         * src/SDCCsymt.h: moved definition of RESULT_TYPE
6724         * src/SDCCsymt.h (computeType),
6725         * src/SDCCicode.c: computeType() needs op
6726         * src/SDCCsymt.c (checkTypeSanity),
6727         * doc/sddman.lyx: "plain" bitfields are unsigned
6728         * src/SDCCsymt.c (computeTypeOr): added
6729         * src/SDCCsymt.c (computeType): added support for bitfields, fixed
6730         |^& ops
6731         * src/SDCCval.c (val*): computeType() needs op
6732         * src/SDCCval.c (valCastLiteral): fixed casting of bitfields
6733         * support/regression/tests/onebyte.c: added tests for |^&
6734
6735 2004-03-06 Hans Dorn <hjdorn AT users.sourceforge.net>
6736
6737         * src/pic16/gen.c: (genpic16Code) use copy of printILine's output
6738         for writing icode into asm output.
6739
6740 2004-03-05 Vangelis Rokas <vrokas AT otenet.gr>
6741
6742         * src/pic16/device.c: added some debug lines enabled
6743         with macro DEBUG_CHECK,
6744         * src/pic16/genarith.c: more debug in genPlus,
6745         * (pic16_genUMult8XLit_16, pic16_genUMult8X8_16): removed,
6746         * (pic16_genUMult16X16_16, pic16_genUMult16XLit_16): NEW,
6747         * src/pic16/gen.c: added prototypes for pic16_genMult16X16_16,
6748         * (aopForSym): onStack symbols are re-placed in data memspace,
6749         and onStack flag is cleared,
6750         * (pic16_popGetTempReg, pic16_popReleaseTempReg): modified to
6751         copy temporary pcodeop,
6752         * (genPcall): added warning for not updating PCLATU,
6753         * (genFunction): removed test with IFFUNC_CALLEESAVES, its
6754         always true for pic16 port,
6755         * (genMultOneWord): NEW, supports integer multiplication,
6756         * (genMult): modified to call genMultOneWord,
6757         * (ifxForOp): added warning when return NULL,
6758         * src/pic16/glue.c (pic16emitRegularMap): symbol implicit
6759         flag is set before call to operandFromSymbol for implicit
6760         added structures,
6761         * src/pic16/main.c (_pic16_finaliseOptions): options.float_rent,
6762         options.intlong_rent are set by default,
6763         * (_hasNativeMulFor): modified to allow port generation of integer
6764         multiplication,
6765         * src/pic16/ralloc.c (pic16_allocDirReg): commented out line which
6766         set regtype to REG_SFR for all registers, restricting seting the
6767         accessBank flag for registers 0<= r < 0x80 and 0xf80<=r<=0xfff,
6768
6769 2004-03-05 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
6770
6771         * src/mcs51/peephole.def: added 251.b and 253.x. 253.x are applied
6772         more than 500 times in the regression tests
6773
6774 2004-03-05 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
6775
6776         * support/Util/SDCCerr.h,
6777         * support/Util/SDCCerr.c,
6778         * src/SDCC.y (struct_or_union_specifier, enum_specifier,
6779         enumerator_list),
6780         * src/SDCCsymt.c (addSymChain): show location of oriignal definition
6781         for symbol conflicts.
6782         * support/valdiags/tests/enum.c,
6783         * support/valdiags/tests/tentdecl.c,
6784         * support/valdiags/tests/struct.c: expect possible error messages
6785         referring to original symbol definitions.
6786         * src/SDCC.y (struct_or_union_specifier, struct_declarator),
6787         * src/SDCCsymt.h,
6788         * src/SDCCsymt.c (promoteAnonStructs): support anonymous struct/union
6789
6790 2004-03-03 Hans Dorn <hjdorn AT users.sourceforge.net>
6791
6792         * src/pic16/gen.c (gencjne): fixed for right=REG / left=LIT
6793
6794 2004-02-03 Vangelis Rokas <vrokas AT otenet.gr>
6795
6796         * src/pic16/ralloc.c (newReg): fixed bug #908929
6797
6798 2004-03-02 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
6799
6800         * src/ds390/gen.c: added missing #include "main.h"
6801
6802 2004-03-02 Vangelis Rokas <vrokas AT otenet.gr>
6803
6804         * src/pic16/device.c (checkAddSym): NEW, adds a symbol to set while
6805         checking if symbol is already in set,
6806         * src/pic16/device.h: prototype for checkAddSym,
6807         * src/pic16/gen.c: (_G): added entry interruptvector,
6808         * (assignResultValue): removed some commented out lines,
6809         * (genFunction): check for ISR via sym->type, absolute section for
6810         interrupt code is created via a new pBlock, the goto instruction is
6811         placed now correctly at the interrupt vector position, changed all
6812         references from ivec to _G.interruptvector,
6813         * WREG,STATUS,BSR are not saved in stack upon an entry to interrupt
6814         is the interrupt is a high priority one, same for return from ISR,
6815         * src/pic16/glue.c: changed all calls of addSetHead for publics and
6816         externs to calls of checkAddSym,
6817         * src/pic16/pcode.c (pic16_pBlockConvert2*): emit warning when
6818         pic16_pcode_verbose flag is set,
6819         * src/pic16/pcode.h: extern to pic16_pcode_verbose,
6820         * src/pic16/pcoderegs.c: message about how many registers are saved
6821         will only be emitted if pic16_pcode_verbose flag is set,
6822
6823 2004-03-02 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
6824
6825         * src/ds390/ralloc.h,
6826         * src/ds390/ralloc.c (ds390_regWithIdx),
6827         * src/ds390/gen.c (emitcode),
6828         * src/ds390/main.h,
6829         * src/ds390/main.c (instructionSize, ds390newAsmLineNode, updateOpRW,
6830         ds390opcodeCompare, asmLineNodeFromLineNode, getInstructionSize,
6831         ds390operandCompare, getRegsRead, getRegsWritten,
6832         initializeAsmLineNode): customized instruction size calculation for
6833         ds390, started basis for some register optimizations
6834         * src/ds390/gen.c (gen390Code, emitcode): associate iCodes with
6835         corresponding assembly output
6836         * src/ds390/gen.c (genFunction, genEndFunction): added case to handle
6837         missing push/pop of r0/r1. Optimized push/pops
6838
6839 2004-03-01 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
6840
6841         * src/mcs51/main.c (instructionSize): fixed ACALL size
6842         * src/mcs51/main.c (updateOpRW): fixed bug with @dptr, @a+dptr operands
6843
6844 2004-03-01 Vangelis Rokas <vrokas AT otenet.gr>
6845
6846         * src/pic16/device.c (pic16_dump_section): fixed a bug that allowed
6847         the sorting of rlist with NULL elements
6848         * (print_idataType, print_idata): NEW to create idata sections
6849         * src/pic16/device.h: idataSymSet new variable
6850         * src/pic16/gen.c (genFunction): fixed some bugs in string
6851         comparing, improved the absolute section creation for ISRs,
6852         added FSR0L/FSR0H in registers that are saved in an ISR,
6853         * (genInline): fixed the processing of inline snippets,
6854         now they undergo no process by the peephole optimizer
6855         * src/pic16/glue.c (pic16emitRegularMap): symbols with initialiser
6856         are placed in idataSymSet,
6857         * (pic16emitStaticSeg): extern symbols are added in externs,
6858         * src/pic16/ralloc.c (pic16_allocDirReg): work around to reduce bank
6859         switching when aboslute variables are placed in access bank memory
6860         * (pic16_writeUsedRegs): added call to pic16_dump_idata,
6861         * (packRegsForSupport,packRegsForAccUse,packRegsForOneuse):
6862         commented out with #if,
6863         * (pic16_packRegisters): reintroduce the check for CAST because some
6864         symbols are not correctly handled,
6865         * src/pic16/pcode.h: changed the definition of pCodeAsmDir to hold a
6866         pCodeInstruction instead of pCode,
6867         * src/pic16/pcode.c (pic16_newpCodeAsmDir): modified for the new
6868         pCodeAsmDir definition,
6869         * (pic16_pCode2str, genericPrint): when an AsmDir pcode has a NULL
6870         directive, then the argument directive is emitted without the leading
6871         tab, hack for inline labels which must be in the first column,
6872         * (compareLabel,pic16_findNextInstruction),
6873         * (pic16_findPrevInstruction): added case for PO_ASMDIR,
6874         * (insertBankSwitch): modified for the new pCodeAsmDir,
6875
6876 2004-03-01 Hans-Juergen Dorn <hans.dorn AT apl-landau.de>
6877         patch applied by Vangelis Rokas <vrokas AT otenet.gr>
6878
6879         * src/pic16/gen.c (pic16_popGet): case PO_DIR, adds the offset to
6880         instance,
6881         * (pushSide): commented out with #if,
6882         * (assignResultValue): fixed some typos in saving
6883         registers,
6884         * (genPcall): FIXED and sync'ed with genCall,
6885         * (genDataPointerGet,genDataPointerSet): using offset not leoffset
6886         * (genNearPointerGet): fixed to handle some more cases,
6887         implementation scheme via table reads,
6888         * (genConstPointerGet): modified to access code memory correct,
6889         * (genCodePointerGet,genNearPointerSet,genGenPointerSet): modified
6890         and improved to handle some cases
6891         * glue.c (printIvalType,printIvalChar,emitStaticSeg): use "DB"
6892         instead of "RETLW" for init data
6893         * src/pic16/ralloc.c (pic16_allocDirReg): warning when a symbol is
6894         not IN_DIRSPACE, work around to reduce bank switching when aboslute
6895         variables are placed in access bank memory (<0x80 and >=0xf80),
6896         * src/pic16/pcode.c: added SFRs TBLPTR, TABLAT, added opcodes TBLRD,
6897         TBLRD_POSTINC,TBLRD_POSTDEC,TBLRD_PREINC,TBLWT,TBLWT_POSTINC,
6898         TBLWT_POSTDEC,TBLWT_PREINC
6899         * Fixed initialisation of BSR, set "alias" for SSAVE to "0"
6900         * (pic16_emitDB,pic16_flushDB): New functions to generate "DB"
6901         directives
6902         * (pic16_pCodeConstString): use "DB" instead of "RETLW"
6903         * src/pic16/pcode.h: added TBLRD*,TBLWT*, added pic16_emitDB,
6904         pic16_flushDB, made pic16_newpCodeAsmDir public, added TBLPTR, TABLAT
6905         * src/pic16/ralloc.h: added IDX_BSR,IDX_TBLPTR*,IDX_TABLAT
6906
6907 2004-02-29  Borut Razem <borut.razem AT siol.net>
6908
6909         * src/Makefile.in, src/SDCCutil.c, support/Util/findme.c,
6910         support/Util/findme.h, support/Util/system.h: enhance binary relative
6911         search for lib and include by using findProgramPath()
6912
6913 2004-02-28 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
6914
6915         * src/SDCCpeeph.h,
6916         * src/SDCCpeeph.c (pcDistance),
6917         * src/port.h,
6918         * src/mcs51/ralloc.h,
6919         * src/mcs51/ralloc.c (mcs51_regWithIdx),
6920         * src/mcs51/main.h,
6921         * src/mcs51/main.c (instructionSize, asmLineNode, updateOpRW,
6922         mcs51opcodeCompare, asmLineNodeFromLineNode, getInstructionSize,
6923         mcs51operandCompare, getRegsRead, getRegsWritten): made instruction
6924         size calculation port specific, started basis for some register
6925         optimizations
6926         * src/mcs51/gen.c (genFunction, genEndFunction): added case to handle
6927         missing push/pop of r0/r1. Optimized push/pops
6928         * src/mcs51/ralloc.c (packregisters): fixed bug #727095
6929         * device/lib/_modsint.c (_modsint),
6930         * device/lib/_modslong.c (_modslong): fixed sign of result in non-asm
6931         and stack version so regression tests pass
6932
6933 2004-02-26 Bernhard Held <bernhard AT bernhardheld.de>
6934
6935         * src/Makefile.in (dep): include SLIBOBJS in dependency check
6936         * src/SDCCast.c (decorateType): catch another small optimization
6937         with '?' operator
6938         * src/SDCCsymt.c (computeType): added comments and cosmetic changes
6939         * src/SDCCval.c (valMult, valDiv, valMod, valPlus, valMinus, valShift):
6940         modified to finally use computeType() all over SDCC,
6941         see Feature Request #877103
6942         * src/SDCCval.h: cosmetic
6943         * src/SDCCicode.c (operandOperation): fixed EQ_OP bug, now same as in
6944         valCompare(); regression tested in muldiv.c
6945         * support/regression/tests/muldiv.c (testMod): mod sign follows
6946         dividend only
6947
6948 2004-02-23 Bernhard Held <bernhard AT bernhardheld.de>
6949
6950         * src/SDCCast.c (decorateType): fixed bug #902362
6951         * doc/INSTALL.txt: fixed install instructions for win32
6952
6953 2004-02-21 Bernhard Held <bernhard AT bernhardheld.de>
6954
6955         * device/include/Makefile.in (install): fixed by replacing spaces
6956         by tabs
6957         * doc/README.txt,
6958         * doc/INSTALL.txt: updated for release
6959         * doc/sdccman.lyx: added warning for --xstack being buggy
6960
6961 2004-02-20 Bernhard Held <bernhard AT bernhardheld.de>
6962
6963         * src/pic16/ralloc.c (packRegsForAccUse):  disabled functions with #if
6964         to eliminate build warnings.
6965         * src/pic16/gen.c (pic16_popGet): fixed for gcc 2.95.4
6966
6967 2004-02-20 Vangelis Rokas <vrokas AT otenet.gr>
6968            Hans-Juergen Dorn <hans.dorn AT apl-landau.de>
6969
6970         * doc/sdccman.lyx: removed PIC16 from PIC16 Port Specific Options,
6971         removed -penable-stack, added comment for stack pragma, added
6972         warning for not initializing the stack/frame registers, removed
6973         comment at interrupts section
6974
6975         Stack is made permanent, there is no ability to disable stack usage.
6976         * src/pic16/device.h,
6977         * src/pic16/device.c: removed all references to USE_STACK macro,
6978         * src/pic16/device.c (pic16_dump_section): when no elements in
6979         rlist, free rlist before return,
6980         * (pic16_dump_int_registers): NEW, internal registers are a new set
6981         of general purpose registers reused by each function,
6982         * (checkAddReg): returns 1 if registers is added to set,
6983         * (pic16_groupRegistersInSection): when a registers is of type
6984         PO_GPR_TEMP add it in pic16_int_regs and not in pic16_rel_udata,
6985         * src/pic16/device.h: memRange and Assigned Memory are deleted,
6986         SRCASECMP macro is moved here from device.c
6987         * src/pic16/genarith.c (pic16_pCodeOpType): added cases for
6988         PO_PCLATU, PO_PRODL, PO_PRODH,
6989         * (pic16_pCodeOpType, genMinus,
6990         changed compares to "a" register, with AOP_ACC,
6991         * (pic16_genPlus): fixed some bugs and indented properly,
6992         * (pic16_addSign): changed size to size+offset in the MOVWF
6993         instruction,
6994         * (pic16_genUMult8XLit_8): NEW, uses processor MULLW instruction to
6995         multiply 8-bit operand by literal, result is 8-bit,
6996         * (pic16_genUMult8X8_8): NEW, uses processor MULWF instruction to
6997         multiply 2 8-bit operand, result is 8-bit,
6998         * (pic16_genMult8X8_8): modified to call genUMult8X*_8 functions and not
6999         genUMult8X*_16,
7000         * src/pic16/gen.c: changed accUse to contain WREG only,
7001         * (pic16_emitcomment): renamed to pic16_emitpcomment,
7002         * (aopForSym): allocated dir register when IN_DIRSPACE(space) is,
7003         true, do not use immediate addressing any more unless sym is a
7004         pointer in codespace,
7005         * (aopForRemat): do not use immediate addressing when symbol not in
7006         codespace and when symbol's address is requested,
7007         * (aopOp): for-loop in if(sym->accUse) is modified for the new
7008         accUse size (= 1),
7009         * (aopGet): added case for AOP_ACC and don't return "accumulator
7010         bug" but WREG instead,
7011         * (popGetTempReg): pushes contents of temporary register in stack,
7012         * (popReleaseTempReg): pops contents of temporary register from
7013         stack. Use popGetTempReg/popReleaseTempReg in aligned pairs,
7014         * (pic16_popGet): separated case AOP_ACC to return register WREG
7015         from processor registers, AOP_PCODE not checks if pcop is PO_DIR
7016         or PO_IMMEDIATE and initializes their instance/offset appropriately,
7017         * The whole issue with aopForSym,aopForRemat,popGet) is to minimize
7018         the use of immediate pointers to certain cases only.
7019
7020         * (pic16_pushpCodeOpReg, pic16_poppCodeOpReg): use pic16_popGet2p,
7021         * (pic16_loadFromReturn, pic16_storeForReturn: NEW,
7022         * (assignResultValue, genCall, genRet): modified to use the new
7023         function return value scheme with WREG,PRODL,PRODH,FSR0L and FSR0,
7024         genPcall is still broken,
7025         * (genFunction): added code to create 'A' type pBlocks when
7026         interrupt functions are generated, code not extensively tested yet,
7027         ISRs push WREG,STATUS,BSR,PRODL,PRODH,FSR0L,FSR0H registers on stack,
7028         * (genEndFunction): modified so ISRs pop stored registers from stack,
7029         * (genMultOneByte): cleanup,
7030         * (AccRsh): added flag andmask, to and result with appropriate mask,
7031         * (genUnpackBits,genPackBits): fixed and can handle bit fields,
7032         * (genDataPointerGet): fixed and reenabled its use,
7033         * (genNearDataPointerGet): bugs fixed,
7034         * (genDataPointerSet): bugs fixed,
7035         * src/pic16/genutils.c: added functions pic16_DumpValue,pic16_DumpAop,
7036         pic16_DumpSymbol, pic16_DumpOp,
7037         * src/pic16/genutils.h: function prototypes for the above functions,
7038         * src/pic16/glue.c: new flags initsfpnt, to initialize stack/frame
7039         pointers,
7040         * (pic16emitRegularMap): many many many improvements, but needs a
7041         major cleanup,
7042         * src/pic16/main.c: enable_stack in pic16_options is removed,
7043         * (_pic16_parseOptions): removed command line options -penable-stack,
7044         * (_process_pragma): emit stack symbol only when stack pragma is
7045         processed,
7046         * src/pic16/pcode.c: pic16_pc_fsr0 is removed, all operations are
7047         redirected to FSR0L/FSR0H pair,
7048         * (pic16_get_op, pic16_get_op2): modifications and improvements,
7049         * (pic16_getRegFromInstruction, pic16_getRegFromInstruction2): added
7050         cases PO_PRODL,PO_PRODH, pic16_getRegFromInstruction2 returns sane
7051         for immediates,
7052         * (insertBankSwitch): modified to handle cases like: (alfa + 1)
7053         * (dumpPicOptype): NEW,
7054         * src/pic16/pcode.h: added PO_PCLATU,PO_PRODL,PO_PRODH in enum,
7055         * src/pic16/pcoderegs.c (pCodeRegMapLiveRangesInFlow): fixed bug
7056         with movff instruction,
7057         * src/pic16/ralloc.c: renamed typeRegWithIdx to pic16_typeRegWithIdx,
7058         added pic16_int_regs, some packRegsFor* functions are commented out,
7059         because produce errors,
7060         * src/pic16/NOTES: minor modifications
7061
7062 2004-02-18  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
7063
7064         * as/mcs51/aslink.h, as/mcs51/lkarea.c, as/mcs51/lkdata.c, as/mcs51/lkmain.c,
7065         as/mcs51/lkmem.c, src/SDCCglob.h, src/SDCCmain.c: added options --stack-size and
7066         --pack-iram.
7067         * doc/sdccman.lyx: described options --stack-size and --pack-iram.
7068         * as/mcs51/lkaomf51.c: fixed bug #895763
7069
7070 2004-02-17 Bernhard Held <bernhard AT bernhardheld.de>
7071
7072         * device/include/c8051f320.h: added. Contributed by Maarten Brock.
7073
7074 2004-02-17 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
7075
7076         * doc/sdccman.lyx: added details about the HC08 storage classes and
7077         interrupts, fixed the register usage info for z80 & gbz80
7078
7079 2004-02-17 Vangelis Rokas <vrokas AT otenet.gr>
7080
7081         * doc/sdccman.lyx: added more pic16 port documentation
7082         * device/include/pic16/: added header pic18fregs.h
7083
7084 2004-02-16 Bernhard Held <bernhard AT bernhardheld.de>
7085
7086         * doc/sdccman.lyx: added Vangelis' contribution
7087
7088 2004-02-16 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
7089
7090         * src/SDCClrange.c (rlivePoint): live range of SEND operand should
7091         extend to the next CALL or PCALL, not just to the next CALL.
7092
7093 2004-02-16 Vangelis Rokas <vrokas AT otenet.gr>
7094
7095         * src/pic16/gen.c (genInline): fixed bug #896482 with inline assembly
7096
7097 2004-02-15 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
7098
7099         * src/mcs51/ralloc.c (packRegsForAssign, reassignAliasedSym): fixed
7100         bug #895752 and a better fix for bug #716790
7101
7102 2004-02-15 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
7103
7104         * src/SDCCsymt.c (processFuncArgs): fixed bug #896796
7105
7106 2004-02-14 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
7107
7108         * doc/sdccman.lyx: minor changes, minor changed
7109
7110 2004-02-13 Bernhard Held <bernhard AT bernhardheld.de>
7111
7112         * src/SDCCicode.c (usualBinaryConversions): removed pic16 from ports
7113         which can't handle SDCC_NEWONEBYTEOPS,
7114         (geniCodeMultiply): removed conversion from mult to shift for pic14
7115         and pic16
7116
7117 2004-02-12 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
7118
7119         * src/hc08/gen.h,
7120         * src/hc08/gen.c (storeRegToAop, aopOp, aopAdrStr, accopWithAop,
7121         rmwWithAop): Ported my 2003-10-02 fix for bug #663539 to the hc08,
7122         thus fixing bug #895406
7123
7124 2004-02-11 Bernhard Held <bernhard AT bernhardheld.de>
7125
7126         * device/lib/_modsint.c,
7127         * device/lib/_modslong.c: sign follows divisor only
7128         * src/hc08/gen.c (genMultOneByte): if result size is 1,
7129         signs or signedness can be ignored
7130         * src/SDCCast.c (addCast): cosmetic - added lineno to CAST
7131         * src/SDCCast.c (resultTypePropagate): added even more ops: +, - and *,
7132         added optimization for IFX,
7133         (decorateType): Mult/Div/ModOneByte ops can handle all kind of signed
7134         arguments;
7135         reenabled optimization for IFX, which was removed on 2004-01-11
7136         * src/SDCCast.h: added return type IFX
7137         * src/SDCCicode.c: Mult/Div/ModOneByte ops can handle all kind of signed
7138         arguments with 8 or 16 bit results; pic14 and pic16 ports use old
7139         promotion behaviour; env. var. SDCC_NEWONEBYTEOPS selects the new,
7140         SDCC_OLDONEBYTEOPS selects the old behaviour
7141         * src/SDCCsymt.c (computeType): type2 can be NULL (for LEFT_OP);
7142         changed again and commented promotion rule
7143         * src/SDCCval.c (valDiv): promotion no longer necessary
7144         * src/ds390/gen.c (genMultOneByte) (genDivOneByte) (genModOneByte),
7145         * src/mcs51/gen.c (genMultOneByte) (genDivOneByte) (genModOneByte):
7146         rewritten
7147         * support/regression/tests/onebyte.c: added
7148
7149 2004-02-11 Vangelis Rokas <vrokas AT otenet.gr>
7150
7151         * gen.c (genInline): reverted to old code for assemnling inline
7152         code because of bug reported James Chadd
7153
7154 2004-02-10 Vangelis Rokas <vrokas AT otenet.gr>
7155
7156         * ralloc.h: missing declarations from previous patch,
7157         seems that patch for ralloc.h was never applied, fixed
7158
7159 2004-02-10 Hans-Juergen Dorn <hans.dorn AT apl-landau.de>
7160            patch committed by Vangelis Rokas <vrokas AT otenet.gr>
7161
7162         * pcode.c,
7163         * pcode.h,
7164         * ralloc.h: added FSR0L, FSR0H and other missing PIC16 SFR's for
7165         indirect addressing. Marked FSR0 as deprecated
7166         * gen.c (pointerCode): commented out, not needed now
7167         (pic16_popGet2p): new MOVFF helper function
7168         (genGenPointerGet),
7169         (genGenPointerSet): reimplemented with MOVFF and POSTINC0
7170         (shiftRLong): removed duplicate debugging info
7171
7172 2004-02-10 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
7173
7174         * src/ds390/gen.c (genNearPointerGet),
7175         * src/mcs51/gen.c (genNearPointerGet): allow the genDataPointerGet()
7176         optimization with bits, but not bitfields.
7177         * src/ds390/ralloc.c (packRegisters),
7178         * src/mcs51/ralloc.c (packRegisters): fixed bug #884453 & #880832
7179
7180 2004-02-09 Bernhard Held <bernhard AT bernhardheld.de>
7181
7182         * src/SDCCcse.c (algebraicOpts): copy operands before modification
7183
7184 2004-02-09 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
7185
7186         * src/SDCCsymt.h,
7187         * src/SDCCicode.c (operandFromSymbol),
7188         * src/mcs51/ralloc.c (verifyRegsAssigned, serialRegAssign),
7189         * src/ds390/ralloc.c (verifyRegsAssigned, serialRegAssign),
7190         * src/z80/ralloc.c (verifyRegsAssigned, serialRegAssign),
7191         * src/hc08/ralloc.c (verifyRegsAssigned, serialRegAssign),
7192         * src/pic/ralloc.c (verifyRegsAssigned, serialRegAssign),
7193         * src/pic16/ralloc.c (verifyRegsAssigned, serialRegAssign): fixed
7194         bug #892038
7195         * src/SDCCast.c (createIvalStruct, createIvalArray, gatherAutoInit),
7196         * src/SDCCglue.c (emitRegularMap, printIvalStruct, printIvalArray,
7197         printIvalCharPtr, printIvalPtr, printIval, emitStaticSeg, emitOverlay)
7198         * src/SDCCsymt.c (newSymbol),
7199         * src/SDCC.y (struct_or_union_specifier, enum_specifier,
7200         enumerator_list),
7201         * src/SDCCval.h,
7202         * src/SDCCval.c (newiList): fixed bug #885705
7203
7204 2004-02-08  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
7205
7206         * doc/sdccman.lyx: added section 3.1.4: sdcclib.
7207         * as/mcs51/lkmem.c: report the size of the stack in .mem file.
7208
7209 2004-02-08 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
7210
7211         * device/include/c8051f120.h,
7212         * device/include/c8051f300.h,
7213         * device/include/c8051f310.h: added/updated header files for Silicon
7214         Laboratories (formerly Cygnal) CPUs. Contributed by Maarten Brock.
7215         * doc/sdccman.lyx: minor changes, recommended diff -Naur and diff -u
7216         in new section Submitting patches
7217
7218 2004-02-08 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
7219
7220         * src/mcs51/gen.c (genNearPointerGet, genPagedPointerGet,
7221         genFarPointerGet, genCodePointerGet, genGenPointerGet,
7222         genNearPointerSet, genPagedPointerSet, genFarPointerSet,
7223         genGenPointerSet),
7224         * src/ds390/gen.c (genNearPointerGet, genPagedPointerGet,
7225         genFarPointerGet, genCodePointerGet, genGenPointerGet,
7226         genNearPointerSet, genPagedPointerSet, genFarPointerSet,
7227         genGenPointerSet),
7228         * src/pic16/gen.c (genNearPointerGet, genPagedPointerGet,
7229         genFarPointerGet, genCodePointerGet, genGenPointerGet,
7230         genNearPointerSet, genPagedPointerSet, genFarPointerSet,
7231         genGenPointerSet),
7232         * src/pic/gen.c (genNearPointerGet, genPagedPointerGet,
7233         genFarPointerGet, genCodePointerGet, genGenPointerGet,
7234         genNearPointerSet, genPagedPointerSet, genFarPointerSet,
7235         genGenPointerSet): fixed bug #892400
7236         * src/pic16/gen.c (genSkipz, AccRol): disabled functions with #if 0
7237         to eliminate build warnings.
7238         * src/SDCCast.c (processParms),
7239         * src/SDCC.y (function_declarator2, declarator2_function_attributes):
7240         fixed bug 751859
7241         * support/valdiag/valdiag.py: added GCC to the list of defines active
7242         when compiling with gcc
7243
7244 2004-02-07 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
7245
7246         * support/Util/SDCCerr.h,
7247         * support/Util/SDCCerr.c,
7248         * src/SDCCast.c (decorateType, sizeofOp): complain when sizeof is used
7249         with an incomplete type (fixed bug #883734)
7250         * src/SDCCicode.c (geniCodeCast): fixed bug #890510
7251
7252 2004-02-07 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
7253
7254         * src/pic16/gen.c (genCmpEq, shiftRLong): fixed declarations
7255
7256 2004-02-06 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
7257
7258         * src/SDCCast.c (decorateType),
7259         * src/SDCCicode.c (geniCodeParms, geniCodeCall): fixed bugs in my ANSI
7260         function pointer implementation
7261         * support/regression/tests/funptrs.c: added tests to verify both forms
7262         of function pointers work correctly. Added tests to verify parameters
7263         are passed in the correct order.
7264
7265 2004-02-06  Vangelis Rokas <vrokas AT otenet.gr>
7266
7267         * device.c (regCompare): registers are sorted by ascending
7268         address and increasing size,
7269         * main.c (_pic16_finaliseOptions): removed the declaration
7270         of compiler macro MCU. Now a macro of the format pic18fxxxx
7271         will be defined from the command line
7272
7273 2004-02-06  Hans-Juergen Dorn <hans.dorn AT apl-landau.de>
7274             patch committed by Vangelis Rokas <vrokas AT otenet.gr>
7275
7276         * pcode.c (pic16initMnemonics): fixed typo in assignment to PCOP_RLNCF
7277         PCOP_RLCF was overwritten!
7278         * gen.c (genSkip): commented out calls to pic16_emitcode,
7279         * (genCmpEQ): fixed "long" compares, only high word did get compared,
7280         * (genlshTwo),
7281         * (genRRC): added debugging info,
7282         * (shiftL2Left2Result): Fixed bug, if offr > offl. Result got
7283         overwritten while shifting,
7284         * (shiftR2Left2Result): Fixed bug, if offr < offl. Result got
7285         overwritten while shifting,
7286         * (AccLsh),
7287         * (AccRsh),
7288         * (shiftLLeftOrResult),
7289         * (shiftRLeftOrResult),
7290         * (shiftRLong),
7291         * (shiftLLong): Implemented with pic16_emitpcode
7292         * (genlshFour): Replaced pic16_aopPut with pic16_emitpcode,
7293         * (genLeftShift): Fixed bug, operand for shift by variable always
7294         was "and"ed with 0x0f,
7295         * (genLeftShiftLiteral),
7296         * (genrshTwo),
7297         * (genRightShiftLiteral): added debugging info,
7298         * (genrshFour): added comment,
7299         * (genRightShift): determined signedness from operand "left"
7300         instead of "result"
7301
7302 2004-02-04 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
7303
7304         * src/SDCCicode.c (geniCodeParms),
7305         * src/SDCCast.c (decorateType, processParms): support for ANSI-style
7306         function pointers, fixed function pointer bugs #861242 and #861896
7307
7308 2004-01-31 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
7309
7310         * device/include/c8051f000.h,
7311         * device/include/c8051f120.h,
7312         * device/include/c8051f300.h: added header files for Silicon
7313         Laboratories (formerly Cygnal) CPUs. Contributed by Maarten Brock.
7314
7315 2004-01-31 Bernhard Held <bernhard AT bernhardheld.de>
7316
7317         * src/SDCCast.c (processParams): added new type flow and restructured
7318         (gatherAutoInit): added new type flow
7319         (addCast): cosmetic changes
7320         (getLeftResultType): added new type flow for array indices, patch
7321         provided by Stas, see FR #877103
7322         (decorateType): SDCC_NEWTYPEFLOW removed, new type flow is now standard;
7323         array index patch by Stas
7324         * src/SDCCast.h: added prototype getResultTypeFromType()
7325         * src/SDCCval.h,
7326         * src/SDCCval.c (resolveIvalSym) (resolveIvalSym),
7327         * src/pic/glue.c (pic14emitStaticSeg),
7328         * src/pic16/glue.c (pic16emitStaticSeg),
7329         * src/SDCCglue.c (emitRegularMap) (emitStaticSeg): added new type flow
7330         for initialization of symbols
7331         * src/SDCCicode.c (geniCodeArray): removed warning W_ARRAY_BOUND
7332         * support/Util/SDCCerr.h:
7333         * support/Util/SDCCerr.c: replaced W_ARRAY_BOUND by W_IDX_OUT_OF_BOUNDS
7334         * .version: bumped version number to 2.3.8
7335         * device/include/Makefile.in (install),
7336         * doc/Makefile (install): changed to 'rm `find ...`' construct to
7337         avoid warnings
7338
7339 2004-01-30 Bernhard Held <bernhard AT bernhardheld.de>
7340
7341         * support/regression/tests/libmullong.c: fixed for 64 bit hosts
7342         Slade Rich fixed an optimization bug
7343         * src/pic/pcodepeep.c,
7344         * src/pic/pcoderegs.c
7345         * doc/Makefile (install): added test for directory
7346
7347 2004-01-30 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
7348
7349         * src/mcs51/ralloc.c (getRegPtr, getRegGpr),
7350         * src/ds390/ralloc.c (getRegPtr, getRegGpr),
7351         * src/pic/ralloc.c (getRegPtr, getRegGpr),
7352         * src/pic16/ralloc.c (getRegPtr, getRegGpr),
7353         * src/z80/ralloc.c (getRegGpr): fixed bug #883361
7354         * as/mcs51/asexpr.c (term),
7355         * as/hc08/asexpr.c (term): fixed bug #887146
7356
7357 2004-01-29 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
7358
7359         * src/z80/gen.c (genMult): handle single byte result product
7360         * src/SDCCopt.c (killDeadCode): never convert ADDRESS_OF iCode to
7361         DUMMY_READ_VOLATILE (fixed bug #886367)
7362
7363 2004-01-27 Bernhard Held <bernhard AT bernhardheld.de>
7364
7365         * support/regression/tests/libmullong.c: fixed logic, on little endian
7366         hosts we ended without a mullong_wrapper()
7367
7368 2004-01-27 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
7369
7370         * ChangeLog: changed "@" to " AT " in hopes of reducing spam and
7371         virus/worm forged address usage.
7372
7373 2004-01-27 Bernhard Held <bernhard AT bernhardheld.de>
7374
7375         Fixed promotion, it should be done on AST level:
7376         * src/SDCCast.c (addCast): added promotion to int
7377         (decorateType): updated call to upCast()
7378         * src/SDCCicode.c (geniCodeLeftShift): removed call to
7379         usualUnaryConversions()
7380
7381 2004-01-26  Michael Hope  <michaelh AT juju.net.nz>
7382
7383         * support/regression/tests/literalop.c (mulWrapper): Added a
7384         wrapper to remove integer overflow warnings.
7385
7386         * support/regression/tests/float_trans.c: Made work on host.
7387
7388         * support/regression/ports/ucz80/spec.mk (UCZ80): Made detect the
7389         location of sz80.
7390
7391         * support/regression/generate-cases.py (main): Changed from inline
7392         to a main method.
7393
7394         * doc/Makefile (install): Changed to depth first to get rid of
7395         missing directory install warning.
7396
7397         * as/Makefile (install-doc): Made work on Mac.
7398
7399 2004-01-25 Bernhard Held <bernhard AT bernhardheld.de>
7400
7401         * src/SDCCast.c: added an additional type flow in decorateType() of
7402         opposite direction, see feature request #860006; it's enabled at runtime
7403         by setting the environment variable SDCC_NEWTYPEFLOW
7404         * src/SDCCast.h: changed prototype of decorateType()
7405         * src/SDCCglue.c (emitRegularMap): updated call of decorateType()
7406         * src/SDCCicode.c (geniCodeDivision) (geniCodeModulus): promotion from
7407         'char' to 'int' can be omitted, if both operands are 'unsigned char';
7408         see feature request #877103
7409         * src/SDCCval.c: updated call of decorateType()
7410         (valBitwise): fixed bug #882876
7411         (valMinus): added promotion
7412         (valLogicAndOr): result is unsigned
7413         (cheapestVal) (constVal): literals from 0...255 are 'unsigned char' now
7414         * src/SDCCsymt.c (computeType),
7415         * src/mcs51/gen.c (genCmpGt) (genCmpLt): literal 'unsigned char'
7416         must not cause an unsigned operation
7417         * src/pic/glue (pic14emitRegularMap),
7418         * src/pic16/glue.c (pic16emitRegularMap): updated call of decorateType()
7419
7420 2004-01-23 Bernhard Held <bernhard AT bernhardheld.de>
7421
7422         * src/pic/pcode.c (PCodeID): commented out left over debug code
7423
7424 2004-01-20 Bernhard Held <bernhard AT bernhardheld.de>
7425
7426         * support/valdiag/tests/overflow.c: added shift tests
7427         * src/pic/device.c,
7428         * src/pic/gen.c,
7429         * src/pic/gen.h,
7430         * src/pic/glue.c,
7431         * src/pic/main.c,
7432         * src/pic/pcode.c,
7433         * src/pic/pcode.h,
7434         * src/pic/pcodepeep.c,
7435         * src/pic/pcoderegs.c,
7436         * src/pic/ralloc.c,
7437         * src/pic/ralloc.h: applied patch from Slade Rich;
7438         added support for multiple code pages and multiple RAM banks on the
7439         PIC 14 port. The ASM files now no longer simply assume all the
7440         code / RAM are in the same page / bank. This means the linker can
7441         safely allocate code/RAM of separate ASM files to different pages/banks.
7442         * doc/sdccman.lyx: added Slade's tips
7443         * src/mcs51/peeph.def: fixed bug #880768
7444
7445 2004-01-20 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
7446
7447         * src/hc08/ralloc.c (rematStr): fixed bug #879282
7448         * src/SDCCast.c (decorateType): fixed bug #880197
7449
7450 2004-01-20  Michael Hope  <michaelh AT juju.net.nz>
7451
7452         * sim/ucsim/gui.src/serio.src/main.cc: Fixed unconditional use of
7453         getopt.h.
7454
7455         * debugger/mcs51/cmd.c (getValBasic): Changed strtof to strtod as
7456         strtof is not part of C89 and isn't included with Mac OS X.
7457
7458 2004-01-20 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
7459
7460         * src/hc08/gen.c (genPlusIncr, genUminus, genMinusDec, genCmp,
7461         shiftL2Left2Result): fixed bug #879326
7462         (genAnd, genOr, genXor): fixed bug when result was of type AOP_CRY
7463         (genMultOneByte): fixed bug in signed vs unsigned multiplication
7464         * sim/ucsim/hc08.src/inst.cc (inst_clr): added missing effective
7465         address fetch for clr instruction
7466         * device/lib/hc08/_mulint.c: created optimized assembly version
7467         * src/SDCCdflow.c (computeDataFlow): fixed bug #878209
7468
7469 2004-01-19 Bernhard Held <bernhard AT bernhardheld.de>
7470
7471         * src/SDCCicode.c (geniCodeArray): applied patch from Stas Sergeev
7472         proposed in FR #877103
7473
7474 2004-01-18 Bernhard Held <bernhard AT bernhardheld.de>
7475
7476         * src/SDCCval.c (cheapestVal): added missing checks
7477         * src/SDCCicode.c (usualBinaryConversions): fixed condition
7478         * src/SDCCicode.c (geniCodeAdd): fixed part of bug #877103
7479
7480 2004-01-16 Klaus Flittner <klaus_flittner AT gmx.de>
7481
7482         * src/ds390/gen.c (aopOp3): fixed the assignment of different dptrs to
7483         equal operands
7484
7485 2004-01-16 Vangelis Rokas <vrokas AT otenet.gr>
7486
7487         * src/SDCCmain.c (linkEdit): variable $3 of the linker command is
7488         loaded with the linker search paths (-L arguments) and the libraries
7489         to be linked with the current source (-l arguments). Changes
7490         currently will affect only the pic16 port.
7491         * src/pic16/main.c (_pic16_finaliseOptions): add to the linker
7492         include path the port specific paths and port specific libraries,
7493         * gplink command now contains the $3 argument,
7494         * src/pic16/device.h,
7495         * src/pic16/device.c,: structure PIC_device is made public and
7496         renamed to PIC16_device, the same for variable Pics which is renamed
7497         to Pics16. Updated all references to them.
7498         * src/pic16/glue.c (pic16glue): corrected bug with code
7499         initialization which bypassed the variable initializations block.
7500
7501         * device/lib/pic16/Makefile.rules: removed --penable-stack from
7502         COMPILE_FLAGS and added the --nostdinc option
7503
7504 2004-01-15 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
7505
7506         * device/include/mc68hc908jb8.h: Register defs for another member
7507         of the hc08 family. Contributed by Bjorn Bringert - thanks!
7508
7509 2004-01-14 Vangelis Rokas <vrokas AT otenet.gr>
7510
7511         Documenting changes from previous commits.
7512         * configure.in (version 1.56),
7513         * configure: initially I've added AC_CONFIG_SUBDIRS(device/lib/pic16)
7514         when generating output files to configure the pic16 library,
7515         but now I've commented it out, since gputils aren't installed in the
7516         SF compile farm, so library won't compile
7517
7518         * device/lib/Makefile.in (version 1.56): initially I've added in
7519         target 'all' the prerequestive 'model-pic16' so it compiled the
7520         pic16 library, but now I've commented it out for the same reasons
7521         above,
7522         * added targets 'model-pic16' and 'objects-pic16' to compile the
7523         library
7524         * added target 'port-specific-objects-pic16' to handle the
7525         generated libraries and copy them into the build/ directory
7526         * added target 'clean-intermediate-pic16' to clean intermediate
7527         files into pic16 directory
7528         * in target 'installdirs' added line to create directory pic16 in
7529         the installation path
7530
7531         * device/include/Makefile.in (version 1.11): in target 'install'
7532         added lines to copy all header files to installation path,
7533         * in target 'installdirs' added line create directory for pic16
7534         headers in the installation path
7535
7536 2004-01-13 Klaus Flittner <klaus_flittner AT gmx.de>
7537
7538         * src/ds390/gen.c (genCall): fixed a double use of acc and b after
7539          a function call
7540
7541 2004-01-13 Bernhard Held <bernhard AT bernhardheld.de>
7542
7543         * configure,
7544         * device/lib/configure.in,
7545         * device/lib/configure: fixed for autoconf 2.57
7546
7547 2004-01-13 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
7548
7549         * src/z80/main.c (_parseOptions): fixed the portmode= command line
7550         option so that it actually works. Made it specific to the z80, since
7551         the gbz80 doesn't have these kinds of I/O ports.
7552
7553 2004-01-13 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
7554
7555         * device/include/z180.h,
7556         * device/lib/_memcpy.c,
7557         * device/lib/_memmove.c,
7558         * device/lib/_mulint.c,
7559         * device/lib/ser_ir.c,
7560         * device/lib/ser_ir_cts_rts.c,
7561         * device/lib/_strcmp.c,
7562         * device/lib/_strtok.c: fixed pragmas to non-deprecated form
7563         * src/z80/main.c (_process_pragma): add support for pragmas bank and
7564         portmode; added deprecation warning for bank= and protmode= forms.
7565         Also, guard against buffer overflow.
7566         * src/z80/gen.c (aopGet): generate better code for sfr banked read
7567
7568 2004-01-13 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
7569
7570         * src/hc08/main.c (_hc08_genAssemblerPreamble): fixed bug #875487. Also
7571         changed interrupt vector table generation to only emit declared vectors.
7572         * device/include/Makefile.in: added missing backslash
7573         * device/lib/pic16/Makefile.rules: add $(MODELFLAGS) to $(CFLAGS)
7574
7575 2004-01-13 Vangelis Rokas <vrokas AT otenet.gr>
7576
7577         Mainly changes to support compilation of the device libraries
7578         * src/pic16/device.c: stack is allocated via symbol and not
7579         via literal number. The symbol is placed in the corresponding
7580         position of the data ram
7581         * (pic16_dump_section): relocatable and absolute uninitialized
7582         data are now emitted in sorted order to reduce section naming,
7583         * src/pic16/ralloc.c (newReg): fixed bug with SFR's that
7584         weren't marked as being in the access bank,
7585
7586 2004-01-13 Vangelis Rokas <vrokas AT otenet.gr>
7587
7588         Added portion of GNU PIC Library under the directory
7589         device/include/pic16 and device/lib/pic16. These files
7590         contain the declarations of SFRs for the PIC18Fxx2 devices.
7591         The directory is initialized via configure from toplevel.
7592
7593 2004-01-12 Klaus Flittner <klaus_flittner AT gmx.de>
7594
7595         * src/ds390/gen.c (operandsEqu): fixed a little typo, that prevented
7596         the spilllocations to be compared correctly
7597
7598 2004-01-12 Bernhard Held <bernhard AT bernhardheld.de>
7599
7600         * src/SDCCast.c (decorateType): fixed bug introduced today
7601
7602 2004-01-12  Borut Razem <borut.razem AT siol.net>
7603
7604         * src/SDCC.lex, support/Util/SDCCerr.h, support/Util/SDCCerr.c,
7605         doc/sdccman.lyx: upper case pragmas are deprecated
7606
7607 2004-01-12 Bernhard Held <bernhard AT bernhardheld.de>
7608
7609         * src/SDCCast.c (decorateType): replacing 'ul > 0' by  '!ul' results
7610         in simpler and even better code
7611
7612 2004-01-11 Bernhard Held <bernhard AT bernhardheld.de>
7613
7614         * src/SDCCicode.c (operandOperation): fixed bug #874819
7615         * src/SDCCast.c (decorateType): fixed
7616         char foo (unsigned long ul) { return ul > 0; }
7617
7618 2004-01-11 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
7619
7620         * doc/sdccman.lyx: Moved and added some sections, small changes
7621         all over. Telling LaTeX to be less strict with word spacing
7622         to better keep the right margin. Changed some notes about
7623         maintainance of the ports in section 3.2.1 - is it OK like this?
7624
7625 2004-01-11 Vangelis Rokas <vrokas AT otenet.gr>
7626
7627         SDCC source changes:
7628         * src/SDCCopt.c (cntToFcall, cnvToFloatCast, cnvFromFloatCast,
7629         convilong): modified to inform the pic16 port that builtin functions
7630         are external
7631
7632         PIC16 PORT specific changes:
7633         * src/pic16/device.c pic16_dump_equates() added,
7634         processor registers declared internally by the port are emitted in
7635         the translation as equates,
7636         * src/pic16/gen.c: inline code is passed unprocessed to the
7637         translation,
7638         * (pic16_popGetLit2): fnuction modified to take second operand as
7639         pCodeOp pointer and not as literal,
7640         * (popRegFromIdx): prefixed with pic16_,
7641         * (pic16_popCombine2): modified to receive already allocated pCode
7642         operands,
7643         * (pic16_pushpCodeOpReg, pic16_poppCodeOpReg): added
7644         * (genFunction): initializes local stack frame and pushes on stack
7645         all the registers used by this function,
7646         * (genEndFunction): restores all registers from stack and restores
7647         stack frame,
7648         * src/pic16/glue.c (pic16emitRegularMap): various changes and
7649         improvements,
7650         * (pic16glue): changed the program startup sequence,
7651         * added new dbName code 'A' for functions placed in absolute section
7652         * src/pic16/main.c: added function attribute _naked,
7653         * added pragma 'code' to place a fnuction at an absolute address,
7654         * added command line arguments --debug-ralloc and --pcode-verbose,
7655         * (_pic16_finiliseOptions): options.all_callee_saves is set by default
7656         * src/pic16/pcode.c (pic16_pBlockConvert2Absolute) added,
7657         * (pic16_newpCodeOpLit2): modified to take the second operand as
7658         pCodeOp pointer,
7659         * (pic16_printpBlock): modified to emit each function in a separate
7660         section,
7661         * (pic16_get_op): modified to use the gpasm modifiers LOW,HIGH and
7662         UPPER for immediate operands,
7663         * src/pic16/pcodepeeph.c: added peephole support for the LFSR
7664         instruction,
7665         * src/pic16/peeph.def: all peepholes with movff are commented out,
7666         because there is a problem in the pcode peep optimizer,
7667         * src/pic16/ralloc.c: the register allocator can now reuse local
7668         function symbols for another function. This saves register usage.
7669         * src/pic16/ralloc.h: added flag isLocal in structure regs,
7670
7671         Added file src/pic16/NOTES with information about program writing on
7672         the current port version.
7673
7674 2004-01-11 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
7675
7676         * src/mcs51/peephole.def: added peepholes 177.c,d (redundant moves)
7677         and peephole 252 (array access)
7678
7679 2004-01-09  Borut Razem <borut.razem AT siol.net>
7680
7681         * src/SDCCmain.c : fixed #872250: -l command line defined library
7682           files are scanned before standard library files
7683
7684 2004-01-10 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
7685
7686         * src/SDCCast.c (decorateType): fixed bug #874046
7687
7688 2004-01-09  Borut Razem <borut.razem AT siol.net>
7689
7690         * support/scripts/sdcc.nsi: remove previous installation
7691
7692 2004-01-09 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
7693
7694         * src/SDCCglue.c (createInterruptVect): don't append 7(5) padding
7695         bytes for last interrupt vector (mcs51)
7696         * sdcc.spec: fixed typo
7697
7698 2004-01-09 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
7699
7700         * src/mcs51/gen.c (genFunction, genEndFunction, genReceive, getTempRegs,
7701         gen51Code): more efficient parameter receive for --model-large
7702         ("bug" #845294)
7703
7704 2004-01-09 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
7705
7706         * src/ds390/main.c,
7707         * src/z80/main.c: added missed needLinkerScript flags (more than
7708         one port structure defined in these file)
7709         * src/ds390/gen.c (aopForSym, aopOp, operandsEqu, aopOp3): fixed
7710         bug #795325
7711
7712 2004-01-08 Vangelis Rokas <vrokas AT otenet.gr>
7713
7714         * src/SDCCmain.c: removed various references to DEFAULT_PORT
7715         * src/port.h: added flag needLinkerScript in port->linker
7716         structure to inform whether to create a .lnk file or not,
7717         * src/avr/main.c,
7718         * src/ds390/main.c,
7719         * src/hc08/main.c,
7720         * src/mcs51/main.c,
7721         * src/pic/main.c,
7722         * src/pic16/main.c,
7723         * src/xa51/main.c,
7724         * src/z80/main.c: changed appropriately to configure
7725         needLinkerScript flag
7726         * src/pic/gen.c,
7727         * src/pic16/gen.c (genAddrOf): fixed bug #863624
7728         * src/pic/glue.c: added variable udata_section_name to
7729         override default uninitialized data segment definition for
7730         devices only with SHAREBANK memory (reported from Erik Epetrich)
7731         * (pic14emitOverlay): modified to emit a commented overlay segment
7732         directive when no overlay data exist
7733         * (picglue): modified to emit uninitialized data segment
7734         according to udata_section_name
7735         * src/pic/main.c (_pic14_parseOptions): added command line
7736         options --udata-section-name=[name] to override default
7737         udata definition name
7738         * modified _linkCmd and _asmCmd to include compiler passed
7739         arguments via -W option
7740         * src/pic16/main.c: added $l in _asmCmd, changed extension for
7741         object file from '.rel' to '.o' in port->linker structure,
7742         changed size of fptr from 2 to 3 in port structure
7743
7744 2004-01-07  Borut Razem <borut.razem AT siol.net>
7745
7746         * support/scripts/sdcc.nsi: update PATH
7747         * support/scripts/sdcc.ico: craeted
7748
7749 2004-01-07 Bernhard Held <bernhard AT bernhardheld.de>
7750
7751         * device/include/Makefile.in: fix install
7752         * doc/Makefile: fix install
7753
7754 2004-01-07 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
7755
7756         * src/SDCCsymt.c (processFuncArgs): fixed superflous allocation noted
7757         in bug #860505
7758         * src/SDCCmem.c (printAllocInfoSeg, printAllocInfo): minor changes to
7759         how the function variable allocation summary is displayed; also
7760         include information about variables allocated to the overlay
7761         segment
7762
7763 2004-01-06  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
7764
7765         * as/mcs51/lkmain.c: Help about -Y option
7766         * as/mcs51/lkarea.c: Fixed gcc warnings
7767
7768 2004-01-06 Bernhard Held <bernhard AT bernhardheld.de>
7769
7770         * src/SDCCval.c (valShift): changed from 16 to 32 bit shift count,
7771         fixed warning
7772         * support/valdiag/tests/overflow.c: added
7773         * src/SDCCast.c (decorateType),
7774         * src/SDCCicode.c (geniCodeLeftShift): added promotion to int for
7775         LEFT_OP (left shift)
7776
7777 2004-01-06  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
7778
7779         * as/mcs51/lkmain.c: stack must be after data when option -Y is not used
7780         (default behaviour).
7781
7782 2004-01-06 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
7783
7784         A python script to validate compiler diagnostic messages. It can be
7785         used to verify that sdcc complains about bad c source code and
7786         gives a good location of the error.
7787         * support/valdiag/Makefile,
7788         * support/valdiag/valdiag.py,
7789         * support/valdiag/tests/*
7790
7791 2004-01-06 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
7792
7793         * src/SDCC.y (enum_specifier, enumerator_list, opt_assign_expr),
7794         * src/SDCCsymt.c (newEnumType),
7795         * src/SDCCsymt.h
7796         * support/Util/SDCCerr.c,
7797         * support/Util/SDCCerr.h: fixed bug #871258 and some other unreported
7798         enum related bugs.
7799         * support/regression/tests/enum.c: added test for enum values that
7800         require at least 2 bytes of storage.
7801
7802 2004-01-06 Vangelis Rokas <vrokas AT otenet.gr>
7803
7804         * src/common.h: added ifndef/define/endif macros
7805         around the header file.
7806         Bug reported from Jesus Calvino-Fraga
7807
7808 2004-01-06 Bernhard Held <bernhard AT bernhardheld.de>
7809
7810         * sdcc.spec: updated
7811         * device/include/Makefile.in: don't install CVS directories
7812         * device/lib/Makefile.in: added removal of CVS directories after install
7813         * doc/Makefile: fixed install, added local_icons
7814         * sim/ucsim/gui.src/Makefile.in: fixed an old typo
7815         * src/mcs51/gen.c (genRightShift): fixed bug #870788
7816         * src/ds390/gen.c (genRightShift): fixed bug #870788
7817         * src/SDCCast.c (decorateType): fixed bug #870781
7818
7819 2004-01-06 Vangelis Rokas <vrokas AT otenet.gr>
7820
7821         PIC16 port related changes:
7822         * device.c: removed pic16_finalMapping and pic16_finalMappingSize,
7823         added variable stackPos,
7824
7825         * gen.c: genCall, assignResultValue: added support for
7826         pushing/retrieving function parameters to/from stack,
7827         genFunction,genEndFunction: setup stack frame for the
7828         generated function,
7829         genAddrOf: will be changed according to bug 863624
7830
7831         * added files genutils.c and genutils.h which contain gen*
7832         debugged and optimised functions extracted from gen.c
7833
7834         * glue.c: added variable 'externs' which holds extern symbols,
7835         pic16emitRegularMap: is modified to properly handle relocatable
7836          symbols under the new scheme,
7837         pic16createInterruptVect: is modified
7838         pic16printPublics: is modified to emit 'global' assembler directives,
7839         added pic16_printExterns to print extern symbols,
7840         pic16glue: initializes stack/frame pointer in the beginning of
7841         the assembly output. Temporary hack, will be corrected later,
7842         because gplink yet does not support stack and SDCC does not
7843         yet support a type of crt0.o object to create the final binary.
7844
7845         * Removed many lines that contain 8051 legacy code.
7846         * The code is finally placed under a 'code' directive.
7847         * Added port specific options.
7848
7849         * _process_pragma: simplified since now we do not need *special*
7850         include file to define SFR registers. But a separate header
7851         will be needed. This will be developed later.
7852         * _pic16_parseOptions: added, parses port specific options:
7853         --pgen-banksel, --obanksel=, --pomit-config-words, --pomit-ivt,
7854         --pleave-reset-vector, --penable-stack, --pstack-model, --debug-xtra
7855         --preplace-udata-with=
7856
7857         * _pic16_setDefaultOptions: modified to initialize section names,
7858         but hack is temporarly out of order since it needs improvement.
7859         * _pic16_genAssemblerPreamble: configuration words are emitted by
7860         their address instead of their name. This part is incomplete and
7861         supports only the 18Fxx2 devices. Other devices will emit an error
7862         during assembly since they do not contain the same set of config
7863         registers
7864         * _pic16_genIVT: is modified,
7865
7866         * pcode.c: added definitions for some hardware registers that are needed
7867         for stack support
7868         * added flag is2LitOp and variable pci_magic in pCodeInstruction.
7869         All PCI entries are updated. Now LFSR is supported.
7870         * Removed pic16_pciTRIS is mentioned by mdubuc in source
7871         * added pic16_newpCodeOpLit2 to support instructions with
7872         two literal arguments
7873         * pic16_pCode2str: corrected code that emits assembler instructions
7874         with two literal operands and those that have an access bit modifier
7875         * genericPrint: now PC_ASMDIR pCodes, can emit a label if it exists,
7876         this fixes a bug which caused some labels to be lost, when an
7877         assembler directive was added, i.e. banksel,
7878         * pic16_FixRegisterBanking: improved logic that causes the insertion
7879         of bank switching,
7880         * InlineFunction: functions that are called once, are not any more
7881         inlined. This can be a port option in the future,
7882
7883         * pcode.h: added pCodeOpLit2 and added variable label in pCodeAsmDir
7884
7885         * ralloc.c: added pic16_rel_udata and pic16_fix_udata variables which
7886         hold the corresponding uninitialized symbols,
7887         * pic16_allocProcessorRegister: registers have explicit marked the
7888         accessBank field,
7889         * pic16_allocInternalRegister: registers are explicit marked as
7890         not used,
7891         * pic16_writeUsedRegs: pic16_dynDirectBitRegs was missing from the
7892         processing list, so bit registers were lost,
7893         *
7894
7895         * ralloc.h: added field 'accessBank' and original symbol operand
7896         in register definition,
7897         * removed the field isMapped from register definition,
7898
7899         ** Several functions have been removed from various sources:
7900         BanksUsedFlow2,BanksUsedFlow,FixBankFlow,InstructionRegBank,
7901         pic16_addMemRange,pic16_isREGinBank,pic16_dump_map,pic16_dump_cblock
7902         isSFR,validAddress,mapRegister,assignRegister,pic16_assignFixedRegisters
7903         pic16_assignRelocatableRegisters
7904
7905         ** others have been introduced:
7906         pic16_areRegsSame,pic16_dump_section,checkAddReg,pic16_groupRegistersInSection
7907         pic16_popGetLit2,pic16_popCombine2,pushw,pushaop
7908
7909 2004-01-05 Vangelis Rokas <vrokas AT otenet.gr>
7910
7911         * support/scripts/inc2h.pl: changed definition of BIT_AT
7912         to emit 'sbit at' instead of 'bit at'. This was a request.
7913
7914         PIC16 port related preliminary changes:
7915         * gen.c: prefixed function popRegFromString with
7916         pic16_ and all references to it corrected
7917         * pcode.c: all pic16_pc_* hardware registers prefixed
7918         with underscore (_),
7919         pic16_popCopyGPR2Bit(): function sets register wasUsed=1
7920         * ralloc.c: newReg(): when register is REG_SFR then
7921         set address to rIdx,
7922         pic16_allocProcessorRegister(): marks register wasUsed=0
7923         pic16_writeUsedRegs(): added a call to assign processor
7924         registers via pic16_assignFixedRegisters
7925
7926 2004-01-04  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
7927
7928         * as/mcs51/aslink.h, as/mcs51/lkarea.c, as/mcs51/lkdata.c,
7929         as/mcs51/lkmain.c, as/mcs51/lkmem.c: 8051 linker can now pack
7930         variables in unused register banks.  Also the SSEG is placed
7931         wherever there is enough space for it, and IDATA can be anywhere
7932         in internal RAM.  For now compile using -Wl-Y[stack_size].
7933         The mem file is different for this option as well, since it
7934         makes no sense of talking about DSEG lenght.
7935
7936 2004-01-02 Vangelis Rokas <vrokas AT otenet.gr>
7937
7938         * src/SDCClrange.c: fixed bug 869095 that caused segfault
7939         in certain cases, e.g. when ROM assignment, patch provided
7940         from Albert den Haan.
7941
7942 2004-01-01 Bernhard Held <bernhard AT bernhardheld.de>
7943
7944         Many signedness and type propagation fixes:
7945         * src/SDCCicode.c: made geniCodeCast() static
7946         replaced SPEC_ by IS_ (cosmetic)
7947         (operandOperation): fixed div and mod operation
7948         (usualBinaryConversions): added support for promotion of char
7949         (geniCodeMultiply): replaced (unsigned long) by (TYPE_UDWORD)
7950         (geniCodeDivision): replaced (unsigned long) by (TYPE_UDWORD)
7951         (geniCodeAdd): an array index will stay unsigned, even if promoted
7952         from char to int
7953         (geniCodeArray): ditto
7954         * src/SDCCicode.h: made geniCodeCast() static: removed prototype
7955         * src/SDCCsymt.c (computeType): added more support for char;
7956         promotion of char is selectable by promoteCharToInt, fixed signedness
7957         for all cases
7958         (powof2): replaced (unsigned long) by (TYPE_UDWORD)
7959         * src/SDCCsymt.h (powof2): replaced (unsigned long) by (TYPE_UDWORD)
7960         * src/SDCCval (val*): replaced signedness calculation by
7961         computeType()
7962         rearranged if-branches (cosmetic)
7963         (valShift): added warning W_SHIFT_CHANGED
7964         (valCompare): fixed problem with different types
7965         * src/hc08/rallo.c (leastUsedLR): fixed gcc 3.3 warning
7966         * support/regression/tests/literalop.c: added many cases
7967         * support/regression/tests/ast_constant_folding.c: changed finally to
7968         'unsigned int'
7969         * .version: new year, new version: 2.3.7
7970         * src/SDCCmain.c (main): applied patch #866468
7971         * debugger/mcs51/sdcdb.c (parseCmdLine): added -k for ucsim, patch
7972         provided by Scott Bronson
7973         * doc/sdccman.lyx: updated documentation for sdcdb
7974         updated and added chapter tips
7975
7976 2004-01-01 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
7977
7978         * src/SDCCsymt.h: missing from yesterday's commits
7979
7980 2003-12-31 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
7981
7982         * src/SDCC.y (struct_or_union_specifier),
7983         * support/Util/SDCCerr.c,
7984         * support/Util/SDCCerr.h: verify that struct & union tags are used
7985         as declared.
7986
7987 2003-12-29 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
7988
7989         * src/SDCCglobl.h: missing from yesterday's commits
7990
7991 2003-12-28 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
7992
7993         * src/SDCC.y (external_definition, type_specifier2, sfr_reg_bit,
7994         sft_attributes, struct_declaration, parameter_declaration,
7995         type_name, start_block, declaration_list),
7996         * src/SDCC.lex (check_type): support redefinition of typedef names
7997
7998 2003-12-22 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
7999
8000         * src/mcs51/gen.c (genPlus): added special handling for 256 byte
8001         aligned xdata arrays. Erik helped me with the if clause.
8002
8003 2003-12-20 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
8004
8005         * device/lib/ds390/tinibios.c (CpuSpeed): suppress unreachable code
8006         warning
8007
8008 2003-12-20 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
8009
8010         * src/SDCCast.h,
8011         * src/SDCCast.c (newAst_),
8012         * src/SDCCicode.h,
8013         * src/SDCCicode.c (ast2iCode, newiCode),
8014         * src/SDCCglobl.h,
8015         * src/SDCC.y (logical_and_expr, logical_or_expr, conditional_expr,
8016         expr, statement, expression_statement, selection_statement,
8017         iteration_statement, expr_opt, jump_statement): foundation for tracking
8018         sequence points
8019         * src/SDCCopt.c (killDeadCode): fixed bug #861580 (needs the sequence
8020         point code too)
8021
8022 2003-12-19 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
8023
8024         * support/Util/SDCCerr.c,
8025         * src/SDCCast.h,
8026         * src/SDCCast.c (createCase, createDefault, decorateType),
8027         * src/SDCClabel.c (labelUnreach),
8028         * src/SDCC.y (labeled_statement, jump_statement): More improvements
8029         to error messages.
8030         * support/Util/SDCCerr.c (werrorfl): fixed a non-standard declaration
8031         (with thanks to Stas Sergeev)
8032         * device/include/time.h,
8033         * device/lib/time.c (CheckTime): suppress unreachable code warning
8034
8035 2003-12-18 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
8036
8037         * src/SDCCast.c (createIvalCharPtr),
8038         * src/SDCCglue.c (printChar): fixed bug #862241 (an error in my fix for
8039         bug #753752)
8040         * support/regression/tests/nullstring.c: tests for these two bugs
8041
8042 2003-12-18 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
8043
8044         * support/Util/SDCCerr.h,
8045         * support/Util/SDCCerr.c (E_NOT_ALLOWED),
8046         * src/SDCC.y (struct_declaration, struct_or_union_specifier): complain
8047         about storage class and 'at' used inside struct or union
8048         * src/SDCCBBlock.c (iCodeFromeBBlock),
8049         * src/SDCCcse.c (ifxOptimize),
8050         * src/SDCCglue.c (emitRegularMap, initPointer, printIvalStruct,
8051         printIvalArray, printiValFuncPtr, printIvalCharPtr, printIvalPtr,
8052         printIval, emitStaticSeg, emitOverlay),
8053         * src/SDCClabel.c (deleteIfx),
8054         * src/SDCCopt.c (replaceRegEqv, eBBlockFromiCode),
8055         * src/SDCCast.c (resolveSymbols, createIvalStruct, createIvalArray,
8056         gatherAutoInit, processParms),
8057         * support/Util/SDCCerr.h,
8058         * support/Util/SDCCerr.c (werrorfl): Support for better error location
8059         reporting for post-parse errors.
8060
8061 2003-12-16 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
8062
8063         * src/SDCCval.c (valPlus, valMinus, valShift): fixed some problems with
8064         implicit casts via union; they don't work on big endian systems
8065         (possible fix for bug #861138)
8066
8067 2003-12-16 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
8068
8069         (committed by Erik Petrich <epetrich AT ivorytower.norman.ok.us> on Frieder's behalf)
8070         * src/mcs51/main.c: fixed the fix for bug #737001
8071
8072 2003-12-15  Borut Razem <borut.razem AT siol.net>
8073
8074         * support/scripts/sdcc.nsi: updated for NSIS 2.0 beta 4
8075
8076 2003-12-14 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
8077
8078         * support/makebin/makebin.c: put output in binary mode
8079
8080 2003-12-13 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
8081
8082         * src/mcs51/main.c: fixed bug #737001 for the mcs51. SDCC clears
8083         xdata and data memory on startup. Set the environment variable
8084         SDCC_NOGENRAMCLEAR to disable this.
8085         * src/mcs51/peephole.def,
8086         * src/ds390/peephole.def: using the atomic test and clear instruction jbc
8087         (allows non-interrupt and interrupt code to safely compete for a resource
8088         without the non-interrupt code having to disable interrupts)
8089
8090 2003-12-13 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
8091
8092         * src/SDCCicode.c (geniCodeAdd),
8093         * src/SDCCast.c (decorateType): fixed bug #857753 (need to be careful
8094         with valFromType if type might be a pointer and host is big endian).
8095         * src/SDCCast.c (decorateType): unary plus compatible with all arithmetic
8096         types, not just integer types.
8097         * src/SDCCsymt.c (addSymChain): clarified error message when symbol is
8098         multiply defined with mismatching "at" address.
8099
8100 2003-12-12 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
8101
8102         * src/ds390/main.c (PORT tininative_port): fixed bug #858416
8103         * src/SDCCglue.c (printChar, printIvalChar, emitStaticSeg),
8104         * src/SDCCast.c (createIvalCharPtr, stringToSymbol): handle strings
8105         with embedded nulls (fixed bug #753752)
8106
8107 2003-12-12 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
8108
8109         * src/mcs51/main.c(_mcs51_genRAMCLEAR): using r0 instead of r1/r2.
8110         Apparently this did not see much testing (endless loop)
8111
8112 2003-12-11 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
8113
8114         * src/z80/ralloc.c: set DISABLE_PACK_HL = 1 as a temporary fix to bug #855165
8115
8116 2003-12-10 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
8117
8118         * src/SDCCdebug.c (outputDebugSymbols, outputDebugStackSymbols, dumpSymInfo):
8119         gracefully handle NULL memmap pointers
8120
8121 2003-12-08 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
8122
8123         * src/SDCCopt.c (killDeadCode): change iCode type to DUMMY_READ_VOLATILE
8124         instead of deleting the iCode when an operand is volatile
8125         * src/z80/gen.c (genDummyRead),
8126         * src/mcs51/gen.c (genDummyRead),
8127         * src/ds390/gen.c (genDummyRead),
8128         * src/hc08/gen.c (genDummyRead): handle operands in IC_LEFT and/or IC_RIGHT,
8129         not just IC_RIGHT
8130         * src/SDCCicode.c (geniCodeCall): fixed bug #851607
8131         * src/SDCC.y: fixed bug #850420
8132
8133 2003-12-05 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
8134
8135         Applied z80 i/o port patch from Peter Townson and fixed some operators
8136         to better handle operands in A register.
8137         * device/include/z180.h
8138         * src/SDCC.y
8139         * src/SDCCglue.c
8140         * src/z80/gen.c
8141         * src/z80/gen.h
8142         * src/z80/main.c
8143         * src/z80/peeph-z80.def
8144         * src/z80/peeph.def
8145         * src/z80/z80.h
8146
8147 2003-12-03 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
8148
8149         * src/SDCCsymt.c (addSymChain, compareTypeExact): fixed bug #838241 again
8150
8151 2003-12-01 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
8152
8153         * device/lib/hc08/_mullong.c: Removed extra #endif
8154
8155 2003-12-01 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
8156
8157         * sim/ucsim/hc08.src/inst.cc,
8158         * sim/ucsim/hc08.src/hc08mac.h: fixed some problems with CC flag bits and
8159         carries from x to h
8160         * src/hc08/gen.c (aopAdrStr): fixed problem with 16 bit immediate
8161         * src/hc08/gen.c (XAccRsh): fixed problem with right shift
8162         * device/include/stdarg.h: fixed varargs for hc08
8163         * device/lib/Makefile.in,
8164         * device/lib/hc08/Makefile,
8165         * device/lib/hc08/_mulint.c,
8166         * device/lib/hc08/_mullong.c: fixed some endian problems
8167
8168 2003-11-28 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
8169
8170         * sdcc/src/mcs51/gen.c (genMultOneByte): help peephole 105
8171         * sdcc/src/mcs51/peeph.def: added peephole 186.e array access in code space
8172         * device/lib/_gptrget.c,
8173         * device/lib/_gptrput.c: P2 not used any more (related to #850747, #785979)
8174
8175 2003-11-27 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
8176
8177         * src/SDCClrange.c (findNextUseSym, rlivePoint): fixed bug #849795
8178         * src/SDCCast.c (astErrors): fixed bug #846007
8179         * src/SDCCsymt.c (checkFunction): fixed follow-up bug on bug #846007
8180
8181 2003-11-26 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
8182
8183         * src/SDCCast.c (decorateType): disabled a transformation I added in
8184         revision 1.188 (access to fields of a structure at an absolute address);
8185         it breaks with bitfields, extern declarations, and gcse analysis.
8186         * src/SDCCopt.c (isLocalWithoutDef): if ADDRESS_OF applied to a symbol, it
8187         could be assigned through a pointer, so don't complain.
8188         * src/SDCCast.c (astErrors),
8189         * src/SDCCast.h,
8190         * src/SDCCglue.c (emitRegularMap): fixed bug #847813
8191
8192 2003-11-26 Vangelis Rokas <vrokas AT otenet.gr>
8193
8194         * src/pic16/main.c (_pic16_genIVT): fixed interrupt vector table
8195         * src/pic16/main.c (_pic16_genAssemblerPreamble): re-enabled the
8196         output of __config directives, since gpasm now supports them
8197         * src/pic16/main.c (_pic16_finaliseOptions): define MCU
8198         pre-processor macro, i.e. -DMCU=p18f452
8199         * src/pic16/ralloc.c: renamed packRegisters to pic16_packRegisters,
8200         and modified to handle 'cast' icode similarly to '=' icode
8201         * src/pic16/device.h (typedef struct PIC_device): added field
8202         'extMIface' to indicate that chip has external memory interface
8203         * src/pic16/device.c: added chips 18F248, 18F258, 18F448, 18F458,
8204         18F6520, 18F6620, 18F6680, 18F6720, 18F8520, 18F8620, 18F8680,
8205         18F8720
8206
8207 2003-11-26 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
8208
8209         * src/SDCC.y (pointer): fixed bug #846006
8210         * support/Util/SDCCerr.c: made W_PTR_TYPE_INVALID message clearer
8211         * src/SDCCast.c (decorateType): fixed bug #846009
8212         * src/ds390/peeph.def,
8213         * src/ds390/gen.c (genAnd, genOr),
8214         * src/mcs51/peeph.def,
8215         * src/mcs51/gen.c (genAnd, genOr): fixed bug #846777
8216
8217 2003-11-25 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
8218
8219         Fixed several common-sub-expression bugs (#772861, #768380, & #755323)
8220         * src/SDCCdflow.c
8221         * src/SDCCcse.c
8222         * src/SDCCcse.h
8223         * src/SDCCBBlock.h
8224         * src/SDCCBBlock.c
8225
8226 2003-11-23 Klaus Flittner <klaus_flittner AT gmx.de>
8227
8228         fixed bug #845089
8229         * src/SDCCbitv.h,
8230         * src/SDCCbitv.c: added function to free a bitvector
8231         * src/SDCClrange.h,
8232         * src/SDCClrange.c: added function to recompute the liveranges
8233         * src/avr/ralloc.c,
8234         * src/ds390/ralloc.c,
8235         * src/hc08/ralloc.c,
8236         * src/mcs51/ralloc.c,
8237         * src/pic/ralloc.c,
8238         * src/pic16/ralloc.c,
8239         * src/xa51/ralloc.c,
8240         * src/z80/ralloc.c: recompute the liveranges after register packing
8241
8242 2003-11-21 Klaus Flittner <klaus_flittner AT gmx.de>
8243
8244         * src/SDCCloop.c (newInduction): fixed bug #845630
8245
8246 2003-11-21 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
8247
8248         * src/SDCCsymt.c (compareTypesExact): disabled debugging output
8249         inadvertantly left behind from my 2003-11-12 change
8250
8251 2003-11-20 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
8252
8253         Updated headers I neglected to commit yesterday.
8254         * src/SDCClrange.h,
8255         * src/SDCCicode.h
8256
8257 2003-11-19 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
8258
8259         * src/SDCCcse.c (algebraicOpts): fixed bug #773153
8260         * src/SDCClrange.c (rlivePoint): need to mark IC_RESULT used if POINTER_SET op
8261         * src/SDCCopt.c (eBBlockFromiCode),
8262         * src/SDCClrange.c (hashiCodeKeys, sequenceiCode, computeLiveRanges): seperated
8263         the creation of the key hash table from the sequencing so it can be used
8264         earlier (for some GCSE bug fixes still pending)
8265
8266 2003-11-15 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
8267
8268         * src/mcs51/gen.c (genPlus): generate shortcut for adding 0xab00
8269         * support/regression/tests/addsub.c: testing genPlus shortcut
8270
8271 2003-11-15  Borut Razem <borut.razem AT siol.net>
8272
8273         * src/SDCCmain.c: fixed bug #841645: -MM command line option passed to sdcpp
8274
8275 2003-11-15 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
8276
8277         * src/SDCCcse.c (cseBBlock): fixed bug #527779
8278         * src/SDCCcse.c (deleteGetPointers): rewrote so that the set
8279         ordering is immaterial.
8280         * src/SDCCdflow.c (mergeInExprs): fixed bug #587536
8281
8282 2003-11-14 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
8283
8284         * src/SDCCicode.c (geniCodeAddressOf): fixed part of bug #840381
8285         * src/SDCCopt.c (replaceRegEqv, isLocalWithoutDef): fixed other part
8286         (SIGSEV) of bug #840381
8287         * src/SDCCmain.c (linkEdit, assemble): fixed bug #841606 (don't
8288         unlink new file before rename if new and old filenames are the same)
8289
8290 2003-11-13 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
8291
8292         * src/mcs51/main.c: started fixing bug #737001 (SDCC not clearing
8293         uninitialized variables) for the mcs51. Set environment variable
8294         SDCC_GENRAMCLEAR to test.
8295         xdata initialization slightly shorter
8296
8297 2003-11-12 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
8298
8299         * src/SDCCsymt.h,
8300         * src/SDCCsymt.c (addSymTypeChain, compareTypesExact): fixed bugs
8301         #838241 & 780691 (basicly the same bug)
8302         * src/SDCCBBlock.c (iCode2eBBlock): fixed bug #840148
8303         * src/SDCCBBlock.c (iCodeFromeBBlock): fixed bug #840162
8304
8305 2003-11-11 Bernhard Held <bernhard AT bernhardheld.de>
8306
8307         * src/SDCCmain.c (linkEdit): "fix" #834252
8308
8309 2003-11-11 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
8310
8311         * src/SDCCast.c (removePostIncDecOps, removePreIncDecOps),
8312         * src/SDCCast.h,
8313         * src/SDCC.y: fixed bug #819403
8314
8315 2003-11-08 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
8316
8317         * support/regression/fwk/lib/testfwk.c: printn is recursive and thus needs
8318         the reentrant attribute.
8319         * src/hc08/gen.c (genPackBits): added missing stack readjustment
8320         * sim/ucsim/hc08.src/inst.cc (inst_mov): fixed bugs with mov instruction
8321         simulation
8322         * src/SDCCast.c (decorateType): fixed bug with storage class not being
8323         updated during pointer dereference; f.e. ~(((char *)1)*) was being
8324         erroneously reduced to a literal.
8325         * src/hc08/ralloc.c (packRegisters, rematStr),
8326         * src/hc08/gen.c (aopForRemat): allow literals to be rematerialized in
8327         some cases
8328
8329 2003-11-08 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
8330
8331         * src/mcs51/main.c: fixed bug #838385. Thanks to Josef Pavlik for finding and fixing
8332         * doc/sdccman.lyx: changed from 'article' to 'book'
8333         * doc/Makefile: readded test_suite_spec and cdbfileformat
8334
8335 2003-11-08 Bernhard Held <bernhard AT bernhardheld.de>
8336
8337         * device/include/stdlib.h: include malloc.h to comply with ANSI
8338         * support/regression/tests/malloc.c: include stdlib.h instead of malloc.h
8339
8340 2003-11-07 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
8341
8342         * doc/Makefile: sdccman.pdf should build with correct references (more info in commit msg)
8343         * doc/clean.mk: also remove *.out files
8344         * doc/sdccman.lyx: some additions, larger top/bottom margins
8345
8346 2003-11-07 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
8347
8348         * src/SDCC.y: fixed bug #837365
8349         * support/regression/tests/bitopcse.c
8350         * src/hc08/gen.c (genPointerGet): Don't assume pointer operand is
8351         a symbol (might be valop instead)
8352         * device/lib/Makefile.in: added errno.c to HC08SOURCES
8353         * device/lib/clean.mk: added hc08 to the cleaning list
8354
8355 2003-11-04  Borut Razem <borut.razem AT siol.net>
8356
8357         * configure, configure.in, sdcc_vc_in.h, sdcconf_in.h: reverted changes,
8358           made 2003-11-04
8359         * support/Util/NewAlloc.c, as/hc08/lklibr.c, as/mcs51/lklibr.c,
8360           as/z80/aslist.c, as/z80/assym.c: removed inclusion of nonstandard malloc.h;
8361           malloc is declared in standard stdlib.h
8362
8363 2003-11-06 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
8364
8365         * device/lib/hc08/Makefile: need to clean .rel not .o files
8366         * src/hc08/gen.c (genDjnz): can't use djnz with extended addressing mode
8367
8368 2003-11-06 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
8369
8370         * src/port.h,
8371         * src/hc08/main.c,
8372         * src/mcs51/main.c,
8373         * src/ds390/main.c,
8374         * src/z80/main.c,
8375         * src/avr/main.c,
8376         * src/pic/main.c,
8377         * src/pic16/main.c,
8378         * src/xa51/main.c: added hasExtBitOp & oclsExpense functions to ports
8379         * src/SDCCicode.c: changed several IS_FARSPACE tests to isOclsExpensive
8380         tests (which uses the port's oclsExpense function)
8381         * src/SDCC.y,
8382         * src/SDCCast.c,
8383         * src/SDCCicode.c,
8384         * src/hc08/gen.c,
8385         * src/ds390/gen.c,
8386         * src/mcs51/gen.c: added support for the SWAP iCode (RFE #834167)
8387
8388 2003-11-04 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
8389
8390         * src/SDCCcse.c (ifxOptimize),
8391         * src/SDCClabel.c (labelIfx, deleteIfx): When the condition to
8392         an IFX iCode is volatile, convert to DUMMY_READ_VOLATILE instead
8393         deleting the IFX iCode.
8394         * src/hc08/ralloc.c: reduced unneeded slocs
8395         * src/hc08/gen.c: fixed bug in asmopToBoolean
8396
8397 2003-11-04  Borut Razem <borut.razem AT siol.net>
8398
8399         * configure, configure.in, sdcc_vc_in.h, sdcconf_in.h,
8400           support/Util/NewAlloc.c, as/hc08/lklibr.c, as/mcs51/lklibr.c,
8401           as/z80/aslist.c, as/z80/assym.c: decision to include malloc.h
8402           transferred to configure
8403
8404 2003-11-03 Bernhard Held <bernhard AT bernhardheld.de>
8405
8406         Use headers defined in the C[++] standards:
8407         * sim/ucsim/gui.src/serio.src/fileio.cc
8408         * sim/ucsim/gui.src/serio.src/frontend.cc
8409         * sim/ucsim/gui.src/serio.src/main.cc
8410         * sim/ucsim/gui.src/serio.src/posix_signal.cc
8411         * support/Util/NewAlloc.c
8412         * as/hc08/lklibr.c
8413         * as/mcs51/lklibr.c
8414         * as/z80/aslist.c
8415         * as/z80/assym.c
8416
8417 2003-11-03  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
8418
8419         * Added MSVC projects for hc08 assembler and linker:
8420         all.dsp, config.dsp, sdcc.dsw, /as/hc08/as_hc08.dsp,
8421         /as/hc08/link_hc08.dsp
8422
8423 2003-11-03 Martin Helmling <Martin.Helmling AT octo-soft.de>
8424
8425         * debugger/mcs51/cmd.c: allows filename starting with digit(+ some debug)
8426
8427 2003-11-02 Bernhard Held <bernhard AT bernhardheld.de>
8428
8429         * src/SDCCmain.c (linkEdit): "fixed" again bug #833605
8430
8431 2003-11-01 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
8432
8433         * src/mcs51/main.c: xdata initialization is 13 bytes shorter now
8434
8435 2003-10-31  Borut Razem <borut.razem AT siol.net>
8436
8437         * support/cpp2/cpplib.h,
8438           support/cpp2/cpplib.c,
8439           support/cpp2/cpplex.c,
8440           support/cpp2/cppinit.c: introduced #pragma preproc_asm [ + | - ]
8441           to switch _asm block preprocessing on / off. Default is
8442           #pragma preproc_asm +
8443
8444 2003-10-31  Borut Razem <borut.razem AT siol.net>
8445
8446         * support/cpp2/cpplex.c: Fixed _WIN32 problem with CR-CR-LF sequences
8447           when outputting comment blocks (when executed with -C option) and
8448           _asm (SDCPP specific) blocks
8449
8450 2003-10-31 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
8451
8452         * as/hc08/lkrloc.c (relr): Fixed ihx output, fixed lastAreaIndex warning
8453
8454 2003-10-31 Klaus Flittner <klaus_flittner AT gmx.de>
8455
8456         * src/SDCCcse.c (updateSpillLocation): fixed bug #808027
8457
8458 2003-10-31 Bernhard Held <bernhard AT bernhardheld.de>
8459
8460         * src/SDCCmain.c (linkEdit): "fixed" bug #833605
8461         * src/SDCCast.c (decorateType): fixed bug #832664
8462
8463 2003-10-31  Borut Razem <borut.razem AT siol.net>
8464
8465         * support\cpp2\cpplex.c: fixed for SDCPP:
8466           comments(when executed with -C option) and _asm blocks
8467           were included even if they where in skipped #if block.
8468           Applied solution from GCC cpp 3.3.2
8469
8470 2003-10-31  Borut Razem <borut.razem AT siol.net>
8471
8472         * src/SDCC.lex: sdcc now understands both formats:
8473           '# <line_number> <file_name>' and
8474           '#line <line_number> <file_name>'
8475         * support/cpp2/cppmain.c: sdcpp now generates the standard
8476           '# <line_number> <file_name>' instead of former
8477           '#line <line_number> <file_name>'
8478
8479 2003-10-30  Borut Razem <borut.razem AT siol.net>
8480
8481         * support/cpp2/cpphash.h,
8482         * support/cpp2/cpplib.h
8483         * support/cpp2/cpplex.c,
8484         * support/cpp2/cppmain.c,
8485         * support/cpp2/cppinit.c: fixed bug #828015 - Syntax variation for _asm character constants
8486
8487 2003-10-30 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
8488
8489         Fixed a number of problems revealed by bug #827883.
8490         * src/SDCCloop.c (loopInvariants): Spill location of the
8491         result operand should be recomputed if extracted from
8492         a loop. Also, don't extract assignments of an iTemp
8493         from a literal.
8494         * src/SDCCast.c (isConformingBody): loop reversal should
8495         not occur if the control variable is involved with a
8496         relational operator.
8497
8498 2003-10-28 Bernhard Held <bernhard AT bernhardheld.de>
8499
8500         * .version: bumped to 2.3.6 to reflect the big improvements
8501         made by Erik and Klaus. Thanks!
8502
8503 2003-10-28 Klaus Flittner <klaus_flittner AT gmx.de>
8504
8505         Replaced the livrange code.
8506         * src/SDCClrange.c: added new LR code
8507         * src/SDCCloop.c,
8508         * src/SDCCBBlock.h: removed remainig parts from old LR code
8509         * src/ds390/ralloc.c,
8510         * src/ds390/gen.c: minor fixes to make it work with new code
8511
8512 2003-10-28 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
8513
8514         * as/hc08/asm.h,
8515         * as/hc08/lkrloc.c,
8516         * src/hc08/gen.c,
8517         * src/hc08/ralloc.c: Fix various warnings related to the hc08
8518         * src/SDCCicode.c (geniCodePreInc, geniCodePreDec): Fixed bug #829717
8519         (tweaked fix for bug #818696)
8520
8521 2003-10-23 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
8522
8523         * src/z80/ralloc.c (joinPushes): Fixed bug #828742
8524
8525 2003-10-23 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
8526
8527         * src/SDCCmain.c,
8528         * sdccconf_in.h: Fixed bug #828387 (--disable-hc08-port didn't work)
8529         * src/mcs51/gen.c (gencjneshort),
8530         * src/ds390/gen.c (gencjneshort): Made comparison with AOP_IMMD operand
8531         more efficient (per Scott Bronson's suggestion)
8532
8533 2003-10-22 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
8534
8535         Extended the semantics of the critical keyword to include
8536         individual statements. See RFE #827755 and #799831
8537         * src/SDCC.y
8538         * src/SDCCicode.c
8539         * src/SDCCopt.c
8540         * src/SDCCast.c
8541         * support/Util/SDCCerr.c
8542         * support/Util/SDCCerr.h
8543         * src/mcs51/gen.c
8544         * src/ds390/gen.c
8545         * src/hc08/gen.c
8546
8547 2003-10-19  Borut Razem <borut.razem AT siol.net>
8548
8549         * src/SDCC.lex: fixed bug #825944 - defined yytext_ptr to make it compile with flex 2.5.31
8550
8551 2003-10-19 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
8552
8553         * src/SDCCicode.c (geniCodePreInc, geniCodePreDec, ast2iCode):
8554         Fixed bug #818696
8555         * src/SDCCast.c (ast_print): Fixed --dumptree so that preincrement
8556         and predecrement operand is displayed
8557
8558 2003-10-13 Bernhard Held <bernhard AT bernhardheld.de>
8559
8560         * src/SDCCval.c (valMinus): fixed bug #826041
8561
8562 2003-10-15 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
8563
8564         Some hc08 related updates that I missed earlier
8565         * sim/ucsim/stypes.h
8566         * support/regression/ports/hc08/spec.mk
8567
8568 2003-10-15 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
8569
8570         New target "hc08" for the Motorola 68hc08 family of micros
8571
8572         * configure
8573         * configure.in
8574         * Makefile
8575         * src/hc08/*
8576         * src/SDCCmain.c
8577         * src/port.h
8578         * sim/ucsim/hc08.src/*
8579         * sim/ucsim/configure.in
8580         * src/ucsim/configure
8581         * sim/ucsim/packages_in.mk
8582         * as/hc08/*
8583         * as/Makefile
8584         * device/include/mc68hc908qy.h
8585         * device/lib/hc08/*
8586         * device/lib/Makefile.in
8587         * support/regression/ports/hc08/*
8588         * support/regression/Makefile
8589
8590 2003-10-14 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
8591
8592         * src/z80/gen.c: fixed bug revealed by ast_constant_folding.c
8593         regression test
8594         * src/ds390/gen.c (genCast): fixed bug #821957
8595
8596 2003-10-13 Bernhard Held <bernhard AT bernhardheld.de>
8597
8598         * device/lib/logf.c: "fixed" overlay bug
8599         * support/regression/ports/host/spec.mk: added m library
8600         * support/regression/ports/mcs51-stack-auto/spec.mk: added float funcs
8601         * support/regression/tests/float_trans: added (for Eric)
8602
8603 2003-10-12 Bernhard Held <bernhard AT bernhardheld.de>
8604
8605         * src/mcs51/gen.c (genCpl): fixed bug
8606         http://sf.net/mailarchive/message.php?msg_id=6263915
8607
8608 2003-10-10 Bernhard Held <bernhard AT bernhardheld.de>
8609
8610         * src/SDCCast.c (decorateType): added extended constant folding
8611         * src/SDCCsymt.c (computeType): cleanup
8612         * src/SDCCval.c (valShift): minor optimization
8613         * support/regression/tests/ast_constant_folding.c: added
8614
8615 2003-10-09  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
8616
8617         * src/SDCCmain.c: removed some unintended changes
8618
8619 2003-10-09  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
8620
8621         * src/SDCCmain.c (setParseWithComma): fixed bug #816685
8622         * src/z80/gen.c: fixed part of bug #817589
8623         * src/SDCCsymt.c (checkFunction): fixed bug #817895
8624
8625 2003-10-08 Bernhard Held <bernhard AT bernhardheld.de>
8626
8627         Replaced cast (void **) with (void *) to avoid gcc 3 warning:
8628         * src/SDCCcflow.c
8629         * src/SDCCcse.c
8630         * src/SDCCdflow.c
8631         * src/SDCClabel.c
8632         * src/SDCClrange.c
8633         * src/SDCCmem.c
8634         * src/SDCCopt.c
8635         * src/SDCCpeeph.c
8636         * src/SDCCset.c
8637         * src/avr/ralloc.c
8638         * src/ds390/ralloc.c
8639         * src/izt/ralloc.c
8640         * src/mcs51/ralloc.c
8641         * src/pic/ralloc.c
8642         * src/pic16/ralloc.c
8643         * src/xa51/ralloc.c
8644         * src/z80/ralloc.c
8645         * src/z80/gen.c: removed unused label "release:"
8646
8647 2003-10-06  Borut Razem <borut.razem AT siol.net>
8648
8649         * src/SDCC.lex: removed definition of unused variables
8650           save_optimize and save_options
8651
8652 2003-10-06 Bernhard Held <bernhard AT bernhardheld.de>
8653
8654         * clean.mk: removed '=' in "-maxdepth=1"
8655         * src/SDCCloop.c: replace LRKLAUS with SDCC_LRKLAUS
8656         * src/SDCClrange.c: replace LRKLAUS with SDCC_LRKLAUS
8657
8658 2003-10-06  Borut Razem <borut.razem AT siol.net>
8659
8660         * src/SDCC.lex, src/SDCC.lex: use dbuf for "_asm" definitions;
8661           my_unput() replaced by unput()
8662
8663 2003-10-05 Bernhard Held <bernhard AT bernhardheld.de>
8664
8665         * src/SDCCloop.c (assignmentsToSym, loopInduction): cast argument of
8666         setToNull() to (void *) to avoid gcc3.x's warning: "dereferencing
8667         type-punned pointer will break strict-aliasing rules"
8668         Old LR behaviour is again default; Klaus' LR can be choosen by
8669         defining the environment variable LRKLAUS
8670         * src/SDCCBBlock.h
8671         * src/SDCCloop.c
8672         * src/SDCClrange.c
8673         * src/ds390/ralloc.c (spillThis): applied Klaus' patch
8674         * clean.mk: fixed removal of files in bin/CVS/
8675         * device/lib/clean.mk: fixed removal of directories small and large
8676         * support/Util/SDCCerr.c: changed W_INT_OVL to ERROR_LEVEL_PEDANTIC
8677         * src/SDCCicode.c,
8678         * src/SDCCval.c: removed superflous test for pedantic
8679
8680 2003-10-05  Borut Razem <borut.razem AT siol.net>
8681
8682         * src/SDCC.lex, support/Util/SDCCerr.c, sdcc/support/Util/SDCCerr.h:
8683           Fixed bug #816692: introduced new ERROR_LEVEL_PEDANTIC warning
8684           message "unmatched #pragma SAVE and #pragma RESTORE"
8685
8686 2003-10-04  Frieder Ferlemann <Frieder.Ferlemann AT web.de>
8687
8688         * doc/sdccman.lyx: various additions and updates (interrupts, inline
8689           assembly, critical functions, atomic, nojtbound)
8690
8691 2003-10-04 Bernhard Held <bernhard AT bernhardheld.de>
8692
8693         Applied liferange patch from Klaus Flittner <klaus_flittner AT gmx.de>
8694         * src/SDCCBBlock.h
8695         * src/SDCCloop.c
8696         * src/SDCCloop.h
8697         * src/SDCClrange.c
8698
8699 2003-10-03  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
8700
8701         * src/z80/gen.h,
8702         * src/z80/gen.c (aopOp, aopGet, aopPut, genDummyRead),
8703         * src/mcs51/gen.h
8704         * src/mcs51/gen.c (aopOp, aopGet, aopPut, genDummyRead),
8705         * src/ds390/gen.h
8706         * src/ds390/gen.c (aopOp, aopGet, aopPut, genDummyRead),
8707         * src/SDCCicode.c (ast2iCode, geniCodeDummyRead): Fixed bug #663539
8708         * src/SDCCopt.c (killDeadCode): Fixed bugs #663539 & #816705
8709
8710 2003-10-02  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
8711
8712         * src/z80/gen.c (genRet): fixed bug #524753
8713         * src/z80/gen.c (genCast): fixed internal error on cast from
8714         pointer to long
8715         * src/z80/gen.c (_saveRegsForCall, emitCall): adapted Johan's
8716         fix for bug #477835 to the z80
8717         * src/z80/gen.c (genZ80code, _vemit2, _emit2): added support
8718         for tracking iCodes in the peephole optimizer for z80
8719
8720 2003-10-01  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
8721
8722         * src/SDCCicode.c (geniCodeJumpTable, geniCodeSwitch): fixed
8723         the other part of bug #814548
8724         * src/SDCCpeeph.c (labelInRange): fixed bug #814558
8725
8726 2003-09-30  Bernhard Held <bernhard AT bernhardheld.de>
8727
8728         * src/SDCCcse.c: fixed part of bug #814548
8729
8730 2003-09-28  Borut Razem <borut.razem AT siol.net>
8731
8732         * src/asm.c: rewrite of printILine() to use temporary file instead
8733           a pipe
8734         * src/xa51/main.c: commented out declaration of int rewinds
8735
8736 2003-09-27  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
8737
8738         * src/SDCCicode.c (geniCodeJumpTable): Fixed bug #813206
8739
8740 2003-09-26  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
8741
8742         * src/SDCCdflow.c (computeDataFlow): Fixed bug #810746
8743         * src/asm.c (printILine): Fixed bug #811015
8744
8745 2003-09-22  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
8746
8747         *link/z80/lklibr.c, as/mcs51/lklibr.c: Improved memory allocation and
8748         freeing.
8749
8750 2003-09-21  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
8751
8752         * src/z80/gen.c (setupToPreserveCarry): Fixed bug #796955
8753         * src/z80/gen.c (setupPair, genMovePairPair): Fixed setupPair
8754         to correctly handle general case of AOP_PAIRPTR
8755         * src/z80/gen.c (aopGet, aopPut): Generalized AOP_PAIRPTR handling
8756
8757 2003-09-21  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
8758
8759         * src/mcs51/ralloc.c (fillGaps),
8760         * src/ds390/ralloc.c (fillGaps): fixed bug #810093 (yet another
8761         register positioning bug)
8762
8763 2003-09-21  Bernhard Held <bernhard AT bernhardheld.de>
8764
8765         * device/lib/_fsdiv.c: replaced (1<<31) by (1ul<<31)
8766
8767 2003-09-19  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
8768
8769         * src/mcs51/gen.c (loadDptrFromOperand, genFarPointerGet,
8770         genCodePointerGet, genGenPointerGet, genFarPointerSet,
8771         genGenPointerSet): handle AOP_DPTR correctly when loading dptr
8772         (ralloc doesn't intentionally do this now, but perhaps later)
8773         * src/mcs51/ralloc.c (serialRegAssign, fillGaps),
8774         * src/ds390/ralloc.c (serialRegAssign, fillGaps): fixed some
8775         register positioning bugs (Fixed bug #762602 and #795325)
8776         * src/SDCCicode.c (geniCodeDerefPtr): Track output class correctly
8777         (Fixed bug #808779)
8778         * src/z80/gen.c: increased _vemit2's buffer[] to handle long
8779         lines that --i-code-in-asm generates
8780
8781 2003-09-18  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
8782
8783         *link/z80/lklibr.c, as/mcs51/lklibr.c: Fixed Linux segfaults when
8784         trying to fclose a FILE* that was already closed.
8785
8786 2003-09-18  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
8787
8788         * src/SDCCsymt.c (structElemType): fixed bug #808291 (members
8789         of const struct should be treated as if const themselves)
8790
8791 2003-09-18  Bernhard Held <bernhard AT bernhardheld.de>
8792
8793         * src/SDCCval.c (valPlus, valMinus): fixed bug #808337
8794
8795 2003-07-06  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
8796
8797         * support/librarian/sdcclib.c: Generate correct offsets for libraries with
8798         Unix (/n) and DOS (/r/n) line terminations.
8799
8800 2003-09-17  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
8801
8802         * src/SDCCopt.c (cnvFromFloatCast, cnvToFloatCast): fixed
8803         bug #613775
8804
8805 2003-09-16  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
8806
8807         * src/mcs51/gen.c (genFunction, genEndFunction),
8808         * src/ds390/gen.c (genFunction, genEndFunction): Moved save
8809         and restore of EA so that stack offsets to parameters are
8810         correct when using both critical and reentrant/stack-auto.
8811         * src/z80/gen.c (aopOp): removed erroneous assertion about sloc
8812         size (can be triggered in error if sloc is shared between
8813         different sized objects)
8814         * device/include/float.h: fixed macros to explicitly use
8815         unsigned long where needed
8816
8817 2003-09-15  Bernhard Held <bernhard AT bernhardheld.de>
8818
8819         Feature req. 799831: added code to allow nesting of critical functions
8820         * src/mcs51/gen.c (genFunction, genEndFunction)
8821         * src/ds390/gen.c (genFunction, genEndFunction)
8822
8823 2003-09-14  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
8824
8825         * src/SDCCsymt.c (sclsFromPtr),
8826         * src/SDCCsymt.h,
8827         * src/SDCCast.c (decorateType): fixed bug #462971. Also, better
8828         support for standard C idiom of memory mapped variables; for
8829         example, *((xdata int*)0x1234) = 1 is now internally equivalent
8830         to xdata int at 0x1234 tempvar = 1.
8831         * sim/ucsim/z80.src/inst_xd.cc: fixed bug #805483 with patch
8832         provided by Akiya ISHIDA
8833
8834 2003-09-13  Bernhard Held <bernhard AT bernhardheld.de>
8835
8836         * src/SDCCval.c (cheapestVal): reenabled to reduce int to char
8837         * src/SDCCval.c (constVal): added reduction from int to char
8838         * src/SDCCval.c (valMult, valDiv): fixed sign handling
8839         * src/SDCCval.c (valShift): fixed after change of cheapestVal()
8840         * src/SDCCval.c (valCompare): fixed EQ_OP and NE_OP; they have
8841         to ignore the sign
8842         * support/regression/tests/shifts.c: fixed
8843
8844 2003-09-13  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
8845
8846         * src/z80/gen.c (genXor): Fixed bug #805445
8847
8848 2003-09-12  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
8849
8850         Fixed bug #621531 (const & volatile confusion in the type chain).
8851         DCL_PTR_CONST, DCL_PTR_VOLATILE, & IS_PTR_CONST now exclusively
8852         refer to the const or volatile state of the pointer itself.
8853
8854         * src/SDCCast.c
8855         * src/SDCCglue.c
8856         * src/SDCCicode.c
8857         * src/SDCCsymt.c
8858         * src/SDCCval.c
8859         * src/SDCC.y
8860         * src/SDCCsymt.h
8861         * src/pic/gen.c
8862         * src/pic/ralloc.c
8863         * src/pic16/gen.c
8864         * src/pic16/ralloc.c
8865         * support/regression/tests/const.c
8866
8867 2003-09-10  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
8868
8869         When checking for duplicated modules, use absolute paths
8870         instead of relative paths.  Files changed:
8871
8872         * as/mcs51/lklib.c
8873         * link/z80/lklib.c
8874
8875 2003-09-09  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
8876
8877         * src/SDCCicode.c (geniCodeLogic): fixed bug #797572
8878
8879 2003-09-07  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
8880
8881         * device/include/string.h: added size_t typedef, changed
8882         prototypes to use size_t, eliminated separate reentrant and
8883         non-reentrant declarations, added _memmove declaration
8884         * device/lib/_memcpy.c: changed to use size_t instead of int,
8885         changed /4 to >>2 to avoid division library call
8886         * device/lib/_memcmp.c,
8887         * device/lib/_memset.c,
8888         * device/lib/_strncat.c,
8889         * device/lib/_strncpy.c,
8890         * device/lib/_strncmp.c: changed to use size_t instead of int
8891         * device/lib/_memmove.c: new file (fixed bug #772294)
8892         * device/lib/Makefile.in: added _memmove.c
8893         * device/lib/z80/asm_strings.s: fixed bug #772290
8894         * support/regression/tests/bitfields.c: attempt to fix host assertion
8895         failure on amd64-unknown-linux2.2
8896
8897 2003-09-06  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
8898
8899         * src/z80/gen.c (aopPut, spillPairReg): fixed bug #800998
8900         * src/z80/gen.c (genFunction, genEndFunction): fixed "bug" #774700
8901         * as/z80/asmain.c (main): fixed bug #801766
8902
8903 2003-09-06  Bernhard Held <bernhard AT bernhardheld.de>
8904
8905         * src/SDCCicode.c (ast2iCode): fixed differences in iCode with different
8906         compilers
8907
8908 2003-09-05  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
8909
8910         * src/SDCCast.c (isConformingBody): fixed loop reversal bug
8911         reported in bug #800609
8912
8913 2003-09-04  Vangelis Rokas <vrokas AT otenet.gr>
8914
8915         * Top header beautifications in src/pic16 directory:
8916           device.c, device.h, gen.c, gen.h, genarith.c, glue.c, pcode.c,
8917           pcodeflow.c, pcodeflow.h, pcode.h, pcodepeep.c, pcoderegs.c,
8918           pcoderegs.h, ralloc.c, ralloc.h
8919         * main.c: added top header and GPL license notice
8920         * pcode.c: fixed the if-conditional warning
8921
8922 2003-09-04  Bernhard Held <bernhard AT bernhardheld.de>
8923
8924         * device/lib/_mullong.c: replaced int by short for gcc
8925
8926 2003-08-31  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
8927
8928         * src/SDCCpeeph.c (notVolatile, notVolatileVariable): handle IFX
8929         and JUMPTABLE iCodes properly now (worked by accident before)
8930         * src/mcs51/gen.c (leftRightUseAcc),
8931         * src/ds390/gen.c (leftRightUseAcc): handle IFX and JUMPTABLE
8932         iCode properly now. Use getSize instead of nRegs since a & b
8933         aren't part of the nRegs tally.
8934
8935 2003-08-31  Vangelis Rokas <vrokas AT otenet.gr>
8936
8937         * src/pic16/main.c: corrected offsets of interrupt vectors in _pic16_genIVT()
8938         * src/pic16/pcode.c: fix to disable inserting BANKSEL directive
8939           before instructions that use the _STATUS register
8940
8941 2003-08-31  Bernhard Held <bernhard AT bernhardheld.de>
8942
8943         * src/mcs51/gen.c (freeAsmop): fixed off by one in stack offset (AOP_STK)
8944         * src/mcs51/gen.c (genNearPointerSet): added missing opcode for
8945         fetching of the pointer
8946         * src/mcs51/gen.c (genNearPointerGet): added reuse of PREG,
8947         copied from genNearPointerSet()
8948         * src/mcs51/gen.c (genNearPointerGet): don't pop r0/r1, if RESULTONSTACK
8949         * src/mcs51/gen.c: changed order of freeAsmop(left/right/result)-calls.
8950         If they pop r0/r1 they must be called in the opposite order than aopOp().
8951         * device/lib/_mullong.c: fixed for "--model-large --int-long-reent"
8952         (resp. --stack-auto), prepared for --xstack
8953
8954 2003-08-28  Frieder Ferlemann <Frieder.Ferlemann AT web.de>
8955
8956         * doc/sdccman.lyx: reverted tables to those in cvs 1.64
8957
8958 2003-08-28  Bernhard Held <bernhard AT bernhardheld.de>
8959
8960         * device/lib/_startup.c: quick & dirty fix for ds390/ds400;
8961         these ports have their own __sdcc_external_start()
8962
8963 2003-08-26  Bernhard Held <bernhard AT bernhardheld.de>
8964
8965         pic patch provided by Slade Rich <slade_rich AT yahoo.com>
8966         * src/pic/glue.c (pic14printPublics): fixed bug introduced when symbol
8967         type for bits was changed. It resulted in bit variables becoming
8968         global, which is not permitted in PIC 14 assembly output.
8969
8970 2003-08-23  Frieder Ferlemann <Frieder.Ferlemann AT web.de>
8971
8972         * doc/sdccman.lyx: various additions and updates. Rearranged sections
8973
8974 2003-08-22  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
8975
8976         Z80 and MCS51 linkers complaint if a public symbol is defined
8977         in more than one library module:
8978
8979         * as/mcs51/lklib.c
8980         * link/z80/lklib.c
8981         * as/mcs51/Makefile.in
8982
8983 2003-08-22  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
8984
8985         A few small changes that speed up the peephole optimizer.
8986
8987         * src/SDCCpeeph.c
8988
8989 2003-08-22  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
8990
8991         Try to make the peephole optimizer smarter by maintaining
8992         an association between the assembly source code and the
8993         iCodes that originated them. Put this information to use
8994         with a new peephole rule condition "notVolatile" so that
8995         the rules can be aggressive yet still safe.
8996
8997         * src/SDCCpeeph.c
8998         * src/SDCCpeeph.h
8999         * src/mcs51/gen.c
9000         * src/mcs51/peeph.def
9001
9002 2003-08-20  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
9003
9004         Fixed bug #741761
9005
9006         * src/mcs51/gen.c (aopForSym, leftRightUseAcc),
9007         * src/ds390/gen.c (aopForSym, leftRightUseAcc): preserve A and B
9008         if the left or right operand symbols have the accuse flag set.
9009
9010 2003-08-20  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
9011
9012         Changed the type of the result of the ! (NOT) operator to char;
9013         previously it returned the same type as the source. This allows
9014         us to eliminate all the genFloatNot functions (all of its target
9015         implementations were very buggy) since !float can use the same
9016         code as !long now.
9017
9018         * src/SDCCicode.c (ast2iCode): ! returns char
9019         * src/mcs51/gen.c (genNot, genNotFloat),
9020         * src/ds390/gen.c (genNot, genNotFloat),
9021         * src/z80/gen.c (genNot, genNotFloat),
9022         * src/pic/gen.c (genNot, genNotFloat),
9023         * src/pic16/gen.c (genNot, genNotFloat): eliminated genNotFloat
9024
9025 2003-08-19  Bernhard Held <bernhard AT bernhardheld.de>
9026
9027         pic patch provided by Slade Rich <slade_rich AT yahoo.com>
9028         1. Interrupt would not compile properly. Ensure PCLATH register is saved
9029            during interrupts. Ensure WSAVE is located at a shared bank address.
9030         2. Fixed page selection in some places
9031         3. Fixed BTFSS/C to where necessary use registers directly and not simply
9032            the registers name strings.
9033         4. Fixed "signed / unsigned compare" compiler warnings.
9034         5. The PIC port manages its own allocation of the general purpose
9035            registers, but makes no attempt to reuse them. As a result when
9036            compiling it soon runs out of general purpose registers. Some
9037            additional code was added to the files pcode.c and device.c to walk
9038            through the function call tree and rename the registers so that they
9039            get reused.
9040
9041         * src/pic/device.c
9042         * src/pic/gen.c
9043         * src/pic/glue.c
9044         * src/pic/pcode.c
9045         * src/pic/pcode.h
9046         * src/pic/ralloc.c
9047         * src/pic/ralloc.h
9048         * src/pic/genarith.c: Fixed problems with PIC 14 port in functions
9049         genPlus() & genMinus() when the result is the same as left or right
9050
9051 2003-08-18  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
9052
9053         * src/z80/gen.c (isUnsplitable, fetchPairLong): fixed bug #770454
9054
9055 2003-08-18  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
9056
9057         Made bitfield a distinct type from bit so that bitfields
9058         convert as per ANSI C and bits retain their traditional
9059         boolean style behaviour. Implemented bitfield support in
9060         the z80 port.
9061
9062         * src/SDCCsymt.h,
9063         * src/SDCCsymt.c,
9064         * src/SDCCast.c,
9065         * src/cdbFile.c,
9066         * src/mcs51/gen.c,
9067         * src/ds390/gen.c: bit v bitfield split
9068         * src/z80/gen.c: New support for bitfields
9069         * support/regression/tests/bitfields.c: reenabled z80,
9070         added more tests
9071
9072 2003-08-17  Frieder Ferlemann <Frieder.Ferlemann AT web.de>
9073
9074         Rules 246.x, 247.x relate to bitfields, the others speed up
9075         access to xdata mapped I/O devices.
9076
9077         * src/mcs51/peeph.def: added 26 peepholes 246.x - 248.x, 180.x
9078
9079 2003-08-16  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
9080
9081         Cleaned up genPackBits and genUnpackBits and added two helper
9082         functions, emitPtrByteGet & emitPtrByteSet. Added optimizations
9083         for literal assignments in genPackBits (thanks to Frieder for
9084         reminding me).
9085
9086         * src/mcs51/gen.c
9087         * src/ds390/gen.c
9088
9089 2003-08-16  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
9090
9091         Fixed bug #748310 (pointer to function type mishandled when the
9092         function name is omitted). Also fixed a SIGSEGV when a function
9093         attribute (reentrant, etc) is used on a non-function or on a
9094         function but misplaced before the parameter list.
9095
9096         * src/SDCC.y (abstract_declarator, abstract_declaractor2): fixed
9097         bug #748310
9098         * src/SDCC.y (declarator2_function_attributes): avoided SIGSEGV
9099         * support/Util/SDCCerr.h,
9100         * support/Util/SDCCerr.c: Added func attr misuse error msg
9101
9102 2003-08-13  Bernhard Held <bernhard AT bernhardheld.de>
9103
9104         Fixed bug #787649 by anonymous
9105         * src/SDCCglue.c (emitRegularMap): added emission of sloc for func ptr
9106         * src/ds390/gen.c (aopForSym): fixed func ptr in sloc
9107
9108 2003-08-14  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
9109
9110         Fixed numerous bitfield problems.
9111
9112         * src/SDCC.y: More bitfield related error checking
9113         * src/SDCCsymt.h,
9114         * src/SDCCsymt.c (compStructSize): fixed bitfield offset calc
9115         * support/Util/SDCCerr.h,
9116         * support/Util/SDCCerr.c: Added & edited some bitfield err msgs
9117         * src/mcs51/gen.c (genPackBits, genUnpackBits): fixed mask bugs
9118         * src/ds390/gen.c (genPackBits, genUnpackBits): fixed mask bugs
9119         * support/regression/tests/bitfields.c: tests added
9120
9121 2003-08-13  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
9122
9123         Made the constant following the "interrupt" keyword optional. If
9124         omitted, the function will not automatically be given an entry
9125         in the interrupt vector table (similar to #pragma NOIV, but
9126         less syntacticly kludgy). The interrupt number is also now
9127         range checked. Also fixed a bug in the high order bit example
9128         in the manual.
9129
9130         * src/SDCC.y
9131         * src/SDCCmem.c
9132         * src/SDCCglue.c
9133         * src/SDCCsymt.h
9134         * support/Util/SDCCerr.c
9135         * support/Util/SDCCerr.h
9136         * doc/sdccman.lyx
9137
9138 2003-08-13  Bernhard Held <bernhard AT bernhardheld.de>
9139
9140         * src/SDCCcse.c (algebraicOpts): fix bug converting op from value to type
9141         * src/SDCCicode.c (operandOperation): rewritten some ops
9142         (*, ==, unary_minus) to fix possible overflows and to accord with ANSI
9143         * src/SDCCsymt.c (computeType): literals are handled the same way as any
9144         other type
9145         * src/SDCCval.c (cheapestVal): removed, it doesn't accord with ANSI (can
9146         be re-activated by defining REDUCE_LITERALS)
9147         * src/SDCCval.c (constVal): fixed; hex and octal constants can be
9148         unsigned, but are signed by default
9149         * src/SDCCval.c (constVal): rearranged
9150         * src/SDCCval.c (valMod): preliminary fix
9151         * src/SDCCval.c (valCastLiteral): use TYPE_* types
9152         * support/regression/literalop.c: added, work in progress
9153
9154 2003-08-12  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
9155
9156         Generate warnings for useless declarations like "char data;"
9157         that don't do what new users expect.
9158
9159         * src/SDCC.y
9160         * support/Util/SDCCerr.h
9161         * support/Util/SDCCerr.c
9162
9163 2003-08-09  Bernhard Held <bernhard AT bernhardheld.de>
9164
9165         * src/SDCCval.c (valMult): fix overflow detection of negative int
9166
9167 2003-08-07  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
9168
9169         * src/z80/ralloc.c (joinPushes): made compatible with new signedness
9170
9171         Changes to support big endian targets:
9172
9173         * src/ports.h
9174         * src/SDCCglue.c
9175         * src/avr/main.c
9176         * src/ds390/main.c
9177         * src/izt/i186.c
9178         * src/mcs51/main.c
9179         * src/pic/main.c
9180         * src/pic16/main.c
9181         * src/xa51/main.c
9182         * src/z80/main.c
9183
9184 2003-08-06  Bernhard Held <bernhard AT bernhardheld.de>
9185
9186         * src/SDCCval.c (cheapestVal): changed behaviour to the same as constVal()
9187         * device/lib/time.c: fixed warning "integer overflow in expression"
9188
9189 2003-08-05  Bernhard Held <bernhard AT bernhardheld.de>
9190
9191         * src/SDCCval.c (cheapestVal, valueFromLit): use TYPE_* types
9192         * src/SDCCval.c (constVal): changed default to signed; hex and octal
9193         constants are unsigned; added recognition of "u" flag for unsigned
9194         * src/SDCCval.c (valMult): fixed signdness, added warning for overflow
9195         * src/SDCCval.c (valDiv, valMod): fixed signdness
9196         * src/SDCCicode.c (operandOperation): fixed critical typo; fixed
9197         signedness of modulo, left and right shift
9198         * support/Util/SDCCerr.c: added warning "integer overflow in expression"
9199         * support/Util/SDCCerr.h: added warning W_INT_OVL
9200         * src/SDCCast.c (decorateType): fixed gcc3.3 warning
9201         * src/SDCCast.c (ast_print): improved output of constants
9202
9203 2003-08-04  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
9204
9205         Fixed some warnings when building with MSVC:
9206
9207         * as\mcs51\asdata.c
9208         * as\z80\asdata.c
9209         * as\mcs51\asm.h
9210         * as\z80\asm.h
9211         * link\z80\aslink.h
9212         * link\z80\lkdata.c
9213         * link\z80\lkeval.c
9214         * link\z80\lkgb.c
9215         * link\z80\lkihx.c
9216         * link\z80\lks19.c
9217         * link\z80\lksym.c
9218         * support\cpp2\cpplib.c
9219         * src\ds390\gen.c
9220         * src\mcs51\gen.c
9221
9222 2003-08-03  Bernhard Held <bernhard AT bernhardheld.de>
9223
9224         * src/SDCCast.c (constExprTree): fix bug #781827 by Carl Worth <cworth AT isi.edu>
9225
9226 2003-08-01  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
9227
9228         * support\librarian\clean.mk: Do not remove Makefile.
9229         * support\librarian\Makefile: added.
9230
9231 2003-08-01  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
9232
9233         Added librarian to MSVC build:
9234         * all.dsp
9235         * sdcc.dsw
9236         * support\librarian\librarian.dsp
9237
9238         'configure' not needed for librarian, removed:
9239         * support\librarian\configure
9240         * support\librarian\configure.in
9241         * support\librarian\config_in.h
9242         * support\librarian\Makefile.in
9243
9244         Hopefully these ones built the librarian and the rest of sdcc properly:
9245         * Makefile
9246         * Makefile.common.in
9247
9248         Messed up 'configure', so revert to previous version:
9249         * configure
9250         * configure.in
9251
9252 2003-07-31  Bernhard Held <bernhard AT bernhardheld.de>
9253
9254         * src/SDCCicode.c (operandOperation): 3. fix, this time for Alpha; ULONG has 64 bits
9255         there, while the mantissa of a double is "only" 53 bits wide.
9256
9257 2003-07-31  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
9258
9259         Adding sdcclib to the build.  MSVC project coming soon.
9260         Files added/changed:
9261
9262         * support\librarian\clean.mk
9263         * support\librarian\configure
9264         * support\librarian\configure.in
9265         * support\librarian\config_in.h
9266         * support\librarian\Makefile.bcc
9267         * support\librarian\Makefile.in
9268         * support\librarian\sdcclib.c
9269         * Makefile.bcc
9270         * Makefile
9271         * Makefile.common.in
9272         * configure
9273         * configure.in
9274
9275 2003-07-29  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
9276
9277         Linker now complaints if linked modules have conflicting options, for
9278         example, one compiled using --model-large and another one compiled with
9279         --model-small.  The following files were modified:
9280
9281         * as\mcs51\asdata.c
9282         * as\mcs51\aslink.h
9283         * as\mcs51\asm.h
9284         * as\mcs51\asmain.c
9285         * as\mcs51\asout.c
9286         * as\mcs51\i51pst.c
9287         * as\mcs51\lkdata.c
9288         * as\mcs51\lklibr.c
9289         * as\mcs51\lkmain.c
9290         * as\z80\asdata.c
9291         * as\z80\asm.h
9292         * as\z80\asmain.c
9293         * as\z80\asout.c
9294         * as\z80\z80pst.c
9295         * link\z80\aslink.h
9296         * link\z80\lkdata.c
9297         * link\z80\lklibr.c
9298         * link\z80\lkmain.c
9299         * src\SDCCglue.c
9300
9301 2003-07-28  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
9302
9303         *link/z80/aslink.h, link/z80/lklibr.c, as/mcs51/aslink.h,
9304         as/mcs51/lklibr.c: Generate a warning when a library is not found.
9305
9306 2003-07-28  Bernhard Held <bernhard AT bernhardheld.de>
9307
9308         * src/z80/mappings.i: fix _mul[us][int,long] entries
9309
9310 2003-07-26  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
9311
9312         *src/SDCCmain.c: do not search for crt0.o when using --nostdlib
9313
9314 2003-07-24  Bernhard Held <bernhard AT bernhardheld.de>
9315
9316         * src/SDCCicode.c (operandOperation): really fixed problem with bitops
9317         * support/regression/tests/bitopcse.c: added
9318         fixed warning:
9319         * src/avr/gen.c:
9320         * src/pic/gen.c:
9321         * src/pic16/gen.c:
9322         * src/z80/gen.c:
9323         * src/xa51/gen.c:
9324
9325 2003-07-24  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
9326
9327         added support for new library format to z80, gbz80 linkers:
9328         *link/z80/aslink.h
9329         *link/z80/lklex.c
9330         *link/z80/lklib.c
9331         *link/z80/lklist.c
9332
9333 2003-07-24  Bernhard Held <bernhard AT bernhardheld.de>
9334
9335         * src/SDCCicode.c (operandOperation): fixed problem with bitops and 0xffffffff;
9336         after {double d = 0xffffffff; long l = d;} l will be 0x80000000 (LONG_MIN)
9337
9338 2003-07-23  Bernhard Held <bernhard AT bernhardheld.de>
9339
9340         added DUMMY_READ_VOLATILE:
9341         * src/SDCC.y:
9342         * src/avr/gen.c:
9343         * src/xa51/gen.c:
9344         * src/z80/gen.c:
9345         * src/pic/gen.c:
9346         * src/pic16/gen.c:
9347         * src/mcs51/gen.c:
9348         * src/ds390/gen.c:
9349         * src/SDCCcse.c (algebraicOpts): many improvements
9350         * src/SDCCcse.h: removed algebraicOpts()
9351         * src/SDCCicode.c (picDummyRead): added
9352
9353 2003-07-23  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
9354
9355         * as/mcs51/lkmem.c: Changed message "Insufficient DRAM memory" to
9356         "Insufficient space in data memory".
9357
9358 2003-07-20  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
9359
9360         * src/mcs51/gen.c: fixed bug #771358
9361         * src/z80/gen.c: fixed bug #759087
9362
9363 2003-07-20  Bernhard Held <bernhard AT bernhardheld.de>
9364
9365         * src/pic16/glue.c: minor cleanup by Vangelis
9366
9367 2003-07-19  Frieder Ferlemann <Frieder.Ferlemann AT web.de>
9368
9369         * device/include/regc515c.h: fixed #758477
9370         * device/lib/_gptrget.c: saving some cycles in generic pointer get
9371         * device/lib/_gptrput.c: saved a few bytes
9372         * my tab spacing is 8, yours too?)
9373         * device/lib/_ser.c: process RX bytes earlier than TX bytes
9374         * device/lib/serial.c: process RX bytes earlier than TX bytes
9375         * src/mcs51/gen.c(genGenPointerGet/Set): removed writing of type after postincrement
9376
9377 2003-07-18  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
9378
9379         * src/z80/gen.c: fixed some right shift bugs (#772726 among them)
9380
9381 2003-07-17  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
9382
9383     * link/z80/lklibr.c: fixed bug when there is a '.' in a library path.
9384
9385 2003-07-17  Bernhard Held <bernhard AT bernhardheld.de>
9386
9387         * device/lib/Makefile.in: bad fix, reverted to 1.43
9388
9389 2003-07-16  Bernhard Held <bernhard AT bernhardheld.de>
9390
9391         * device/lib/Makefile.in: added missing z80 object files
9392
9393 2003-07-14  Bernhard Held <bernhard AT bernhardheld.de>
9394
9395         * src/SDCCcse.c (algebraicOpts): CSE fun with &|^ and 0x00/0xff literals
9396         pic16 progress by Vangelis:
9397         * src/SDCCglobl.h:
9398         * src/SDCCmain.c:
9399         * src/pic/Makefile:
9400         * src/pic:
9401         * pic/Makefile:
9402         * pic16/device.c:
9403         * pic16/device.h:
9404         * pic16/gen.c:
9405         * pic16/gen.h:
9406         * pic16/genarith.c:
9407         * pic16/glue.c:
9408         * pic16/main.c:
9409         * pic16/pcode.c:
9410         * pic16/pcode.h:
9411         * pic16/pcodepeep.c:
9412         * pic16/peeph.def:
9413
9414 2003-07-13  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
9415
9416     * src/SDCCmain.c, src/SDCCglobl.h: added option --no-std-crt0
9417
9418 2003-07-12  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
9419
9420     * sdcc.dsw, all.dsp, link/z80/linkgbz80.dsp, as/z80/as-gbz80.dsp:
9421     added gbz80 build to MSVC project.
9422     * src/SDCCmain.c, src/SDCCglue.c, src/z80/main.c, src/z80/z80.dsp,
9423     link/z80/aslink.h, linkz80.dsp: cleaned up z80 and gbz80 asm files
9424     from 8051 stuff and setup so it links using a .lnk file.
9425
9426 2003-07-06  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
9427
9428     * support/librarian/sdcclib.c: sdcc librarian.
9429     * as/mcs51/aslink.h, as/mcs51/lklib.c: Support for libraries created
9430     with sdcclib.
9431
9432 2003-07-03  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
9433
9434     * as/mcs51/lkmain.c: properly handle extensions in function afile.
9435
9436 2003-07-02  Borut Razem <borut.razem AT siol.net>
9437
9438         * src/port.h, src/SDCCmain.c, src/pic/glue.h, src/pic/main.c,
9439         src/pic16/glue.h, sdcc/src/pic16/main.c, src/izt/i186.c,
9440         src/izt/tlcs900h.c, src/avr/main.c, src/ds390/main.c, src/mcs51/main.c,
9441         src/xa51/main.c, src/z80/main.c:
9442         virtualization of glue() function: each port has it's own glue function,
9443         which is accessed by do_glue function pointer in PORT.general structure
9444
9445 2003-07-01 Kevin Vigor <kevin AT vigor.nu>
9446
9447         * DS800C400 fun, improved ROM interface and tinibios.
9448
9449 2003-06-27 Kevin Vigor <kevin AT vigor.nu>
9450
9451         * More support for DS80C400. Now includes beginning of interface to ROM.
9452
9453 2003-06-25  Bernhard Held <bernhard AT bernhardheld.de>
9454
9455         * src/mcs51/gen.c (gencjneshort): fixed bug #760345
9456
9457 2003-06-20  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
9458
9459         * as/mcs51/lkaomf51.c: Make sure the size of the last procedure is correct.
9460
9461 2003-06-19  Borut Razem <borut.razem AT siol.net>
9462
9463         * src/z80/main.c: fixed Z80 port again: missing -k library paths in linker command line
9464
9465 2003-06-19  Borut Razem <borut.razem AT siol.net>
9466
9467         * src/SDCCutil.h, src/SDCCutil.c, src/SDCCglobl.h, src/SDCCmain.c, src/z80/main.c:
9468         fixed Z80 port - crt0.o: cannot open.
9469
9470 2003-06-19  Bernhard Held <bernhard AT bernhardheld.de>
9471
9472         * support/Util/MySystem.c (merge_command): revert bad fix
9473
9474 2003-06-18  Borut Razem <borut.razem AT siol.net>
9475
9476         * src/SDCC.lex, src/SDCCmain.c: fixed some warnings, introduced with changes made 15.06.1003
9477
9478 2003-06-18  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
9479
9480         * src/SDCCglobl.h, src/SDCCmain.c, doc/sdccman.lyx:
9481         option --use-stdout sends errors to stdout instead of stderr.
9482
9483 2003-06-18  Bernhard Held <bernhard AT bernhardheld.de>
9484
9485         * support/Util/MySystem.c (merge_command): quick fix for Linux segfault with \"cmd\" arg
9486
9487 2003-06-15  Borut Razem <borut.razem AT siol.net>
9488
9489         * support/cpp2/sdcc.h: HAVE_DOS_BASED_FILE_SYSTEM defined for _WIN32
9490         * src/SDCC.lex: cloneXxx and copyAndFreeXxx functions for options and optimize stack handling
9491         * src/SDCCglobl.h, src/SDCCmain.c, src/ds390/main.c, src/mcs51/main.c, src/z80/main.c:
9492         fixed width array of pointers replaced with sets;
9493         multiple include and lib paths ared transferred to preprocessor and linker
9494         * src/SDCCset.c, src/SDCCset.h: added function setFromSetNonRev() and mergeSets()
9495         * src/SDCCsymt.c: reimplemented function inCalleeSaveList() by using sets instead
9496         fixed width array of pointers
9497         * src/SDCCutil.c, src/SDCCutil.h: added functions fputStrSet(), appendStrSet(), joinStrSet();
9498         removed functions addToList(), join(), joinn(), pathCharsEquivalent(), pathCharTransform(),
9499         fixupPath(), getPathDifference()
9500         * src/ds390/gen.c, src/mcs51/gen.c: reimplemented function  inExcludeList() by using sets instead
9501         fixed width array of pointers
9502
9503 2003-06-11  Bernhard Held <bernhard AT bernhardheld.de>
9504
9505         * src/pic16/ralloc.c: fix warnings
9506         * src/pic16/pcode.c: fix warning
9507
9508 2003-06-10  Scott Dattalo  <scott AT dattalo.com>
9509
9510          Scott D. for Vangelis Rokas (vrokas AT otenet.gr). I (scott) don't
9511         know all the details, but essentially this set of changes enable
9512         the pic16 port to generate movff instructions and generate assembler
9513         directives,
9514         * src/SDCCmain.c:
9515         * src/pic16/gen.c:
9516         * src/pic16/glue.c:
9517         * src/pic16/pcode.c:
9518         * src/pic16/device.c:
9519         * src/pic16/main.c:
9520         * src/pic16/pcode.h:
9521         * src/pic16/pcoderegs.c:
9522         * src/pic16/ralloc.c:
9523         * src/pic16/ralloc.h:
9524
9525 2003-06-08  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
9526
9527         * support/Util/SDCCerr.c, src/SDCCglobl.h, src/SDCCmain.c, doc/sdccman.lyx:
9528         added option --vc, so sdcc errors and warnings are compatible with
9529         Microsoft Visual Studio.
9530
9531 2003-06-07  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
9532
9533         * device/lib/_atof.c, device/lib/Makefile.in, device/include/stdlib.h,
9534           device/lib/libfloat.lib: added atof function.
9535
9536 2003-06-04  Bernhard Held <bernhard AT bernhardheld.de>
9537
9538         * doc/sdccman.lyx: updated to Lyx 1.3
9539         * doc/cdbfileformat.lyx: updated to Lyx 1.3
9540         * doc/test_suite_spec.lyx: updated to Lyx 1.3
9541         * doc/Makefile: added fix for the \tabularnewline problem, thanks to Jesus
9542
9543 2003-06-03  Bernhard Held <bernhard AT bernhardheld.de>
9544
9545         * src/SDCCpeeph.c: separate peepRules2pCode() for pic16 by "Vangelis Rokas" <vrokas AT otenet.gr>
9546
9547 2003-06-02  Frieder Ferlemann <Frieder.Ferlemann AT web.de>
9548
9549         * doc/sdccman.lyx: cvs revision keywords, passing pdf information in latex preamble,
9550           additions to the "related tools/documentation" section
9551
9552 2003-06-02  Bernhard Held <bernhard AT bernhardheld.de>
9553
9554         * src/SDCCglue.c (tempfileandname): added check for missing TMP/TEMP/TMPDIR variable
9555
9556 2003-05-29  Bernhard Held <bernhard AT bernhardheld.de>
9557
9558         * src/pic/device.c: added 16F819, patch by "David I. Lehn" <dlehn AT vt.edu>
9559         * src/SDCCcse.c (algebraicOpts): fixed "c * 1"
9560
9561 2003-05-28  Bernhard Held <bernhard AT bernhardheld.de>
9562
9563         * doc/sdccman.lyx: fix double dash and other minor things
9564         * doc/Makefile: fix double dash
9565
9566 2003-05-28  Karl Bongers(patches from Martin Helmling)
9567         * debugger/mcs51/sdcdb.c,cmd.c,break.c and .h files. Martin adds
9568           condition and ignore commands.
9569
9570 2003-05-28  Frieder Ferlemann <Frieder.Ferlemann AT web.de>
9571
9572         * doc/sdccman.lyx: Changes all over, index improved, smaller margins. The manual
9573           is in parts still quite out of date, I did changes as far as I felt makes sense
9574           for a non-native english speaker.
9575           Please feel free to add to the manual or to correct my changes.
9576         * doc/Makefile: undid touching the date of intermediate tex files.
9577
9578 2003-05-26  Frieder Ferlemann <Frieder.Ferlemann AT web.de>
9579
9580         * doc/sdccman.lyx: Manual has an index now
9581
9582 2003-05-25  Bernhard Held <bernhard AT bernhardheld.de>
9583
9584         Finalize muluint/mulsint and mululong/mulslong merging:
9585         * device/lib/_mulint.c
9586         * device/lib/_mullong.c
9587         * device/lib/gbz80/mul.s
9588         * device/lib/gbz80/stubs.s
9589         * device/lib/z80/mul.s
9590         * device/lib/z80/stubs.s
9591         * src/SDCCsymt.c (initCSupport)
9592
9593 2003-05-25  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
9594
9595         * as/mcs51/lkaomf51.c: Address space 'z' was missing.
9596         * src/avr/avr.dsp, src/ds390/ds390.dsp, src/mcs51/mcs51.dsp,
9597           src/pic/pic.dsp, src/pic16/pic16.dsp, src/xa51/xa51.dsp,
9598           src/x80/z80.dsp: peep.rul is bigger now, so /Zm1000 is used
9599           instead of /Zm500.
9600
9601 2003-05-25  Frieder Ferlemann <Frieder.Ferlemann AT web.de>
9602
9603         * src/mcs51/peeph.def: added rules 244.x, 245.x. Although they pass
9604           the regression tests I'm not brave enough to enable 245.b, 245.c
9605         * doc/sdccman.lyx: added latex preamble for hyperref package.
9606           Using pdflatex this will give you a hyperlinked pdf file with
9607           bookmarks. (prepend '%' before /usepackage if this breaks something)
9608
9609 2003-05-24  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
9610
9611          * doc/sdccman.lyx: updated information about .adb files (fixed bug 742649)
9612
9613 2003-05-22  Bernhard Held <bernhard AT bernhardheld.de>
9614
9615         * src/pic16/pcode.c (pic16_get_op_from_instruction): fixed a gcc 3.x warning
9616
9617 2003-05-21    <johan AT balder>
9618
9619         * src/SDCCglue.c (printIval): fixed bug #739934
9620
9621 2003-05-19  Bernhard Held <bernhard AT bernhardheld.de>
9622
9623         Applied patch from bug 737905 (renamed yylineo to mylineno):
9624         * src/altlex.c
9625         * src/SDCCast.c
9626         * src/SDCglobl.h
9627         * src/SDCC.lex
9628         * src/SDCCsymt.c
9629         * src/SDCCval.c
9630         * src/pic16/pcode.c: Cleaned warnings
9631         * src/pic16/pcodeflow.c: Cleaned warnings
9632         * src/pic16/pcoderegs.c: Cleaned warnings
9633
9634 2003-05-19  Scott Dattalo  <scott AT dattalo.com>
9635
9636         * src/pic16/pcode.c: Cleaned warnings
9637         * src/pic16/pcodepeep.c: Cleaned warnings
9638         * src/pic16/ralloc.c: Cleaned warnings
9639
9640 2003-05-19  Bernhard Held <bernhard AT bernhardheld.de>
9641
9642         * doc/sdccman.lyx: fixed bug 739745
9643         * src/pic16/pcode.c (pic16_get_op): fixed warning on alpha
9644
9645 2003-05-18  Bernhard Held <bernhard AT bernhardheld.de>
9646
9647         * src/port.h: removed DEFAULT_PORT, it's not yet pic16 ;-)
9648         it can be defined with CFLAGS when running configure
9649         * src/SDCCmain.c: fixed compiling + linking with object files
9650
9651 2003-05-18  Vangelis Rokas (vrokas AT otenet.gr)
9652
9653         * configure.in: configure for pic16 port,
9654             added --disable-pic16-port
9655         * sdccconf_in.h: added macro OPT_DISABLE_PIC16
9656         * src/SDCCmain.c: linkOptions is changed to set *,
9657             added if/endif conditional macros to remove options help
9658             messages from optionsTable when a port is not configured, added
9659             support for the PIc16 port in the ports table, when executing
9660             the compiler with no port specified on command line, a default
9661             port is selected with the new macro DEFAULT_PORT which is
9662             defined in port.h, in setDefaultOptions() linkOptions is removed
9663             from initialization assignment, since now it is a set,
9664             parseCmdLine uses setParseWithComma for linkOptions, in
9665             linkEdit() linkOptions are accessed with new function indexSet()
9666             which returns the i'th item of a set variable. See SDCCset.c, in
9667             linkEdit() when calling buildCmdLine(), added linkOptions as
9668             last argument. Now users can pass arguments to gplink via the
9669             -Wl option, main() uses pic16glue() to glue up pic16 programs
9670         * src/SDCCpeeph.c: various changes to support pic16
9671         * src/SDCCset.c: added function  void *indexSet(set *, int)  to
9672             return the i'th item of the set
9673         * src/SDCCset.h: added function prototype for indexSet()
9674         * src/SDCCsymt.c: in checkSClass(), added support for PIC16
9675         * src/clean.mk: added pic16 in CLEANALLPORTS variable
9676         * src/port.h: added TARGET_ID_PIC16,TARGET_IS_PIC16 macro,
9677             added macro DEFAULT_PORT
9678         * src/pic/main.c: corrected arguments of gplnk in _linkCmd
9679         * src/pic16/gen.c: bug fix in genCpl(), now the correct code is
9680             generated
9681         * src/pic16/glue.c: commented out some error producing lines
9682         * src/pic16/main.c: __config directives are commented out to stop
9683             gpasm complaining and test the linkage with gplink, _linkCmd and
9684             _asmCmd changed to be more gplink and gpasm friendly
9685         * src/pic16/peeph.def: peep rule 3 is commented out, since it
9686             produced an error when parsed, peep rule 12 is added to utilize
9687             movff, but it is commented out since the pCode does not support
9688             yet a command with 2 address arguments
9689
9690 2003-05-18    <johan AT balder>
9691
9692         * src/ds390/gen.c (genArrayInit): removed obsolete and buggy ARRAYINIT
9693         * src/ds390/main.c (genArrayInit): removed obsolete and buggy ARRAYINIT
9694 2003-05-17  Karl Bongers(apply patches from Martin Helmling)
9695
9696         * debugger/mcs51/sdcdb.c,cmd.c,break.c and .h files.
9697   Added feature to script commands from file.
9698
9699 2003-05-14  Bernhard Held <bernhard AT bernhardheld.de>
9700
9701         * device/lib/_strtok.c: fixed bug #734355 by Lenny Story and Tim Woodall
9702         * src/SDCCutil.c: include ctype.h for win32
9703
9704 2003-05-13  Bernhard Held <bernhard AT bernhardheld.de>
9705
9706         * src/pic16/*: removed CR from many files, reported by Vangelis Rokas
9707
9708 2003-05-12  Karl Bongers(apply development patches from Martin Helmling)
9709
9710         * debugger/mcs51/sdcdb.c,simi.c,cmd.c,break.c and .h files.
9711   Fixed so you can set breakpoints prior to run, run does not stop
9712   on entry now.  Add tbreak.  Other enhancements and fixes for use
9713   with ddd.
9714
9715 2003-05-12  Borut Razem <borut.razem AT siol.net>
9716
9717         * src/SDCCmain.c: fixed the problem with searching the DATADIR as the last resort on *nix
9718
9719 2003-05-11  Borut Razem <borut.razem AT siol.net>
9720
9721         * src/SDCCutil.c: WIN32 version of getBinPath() calls GetModuleFileName() to determine
9722         the path of bin directory, so that PATH is the only env. variable, which has to be set
9723         in case of standard installation.
9724         * src/ds390/ds390.dsp: increased value of /Zm option to 1000
9725         * src/pic/main.c: add quotes to file name parameters for gplink and gpasm
9726         * src/SDCCglobl.h, src/SDCCmain.c, doc/sdccman.lyx: added --print-search-dirs command line option
9727
9728 2003-05-04  Bernhard Held <bernhard AT bernhardheld.de>
9729
9730         * src/SDCCmain.c (linkEdit): fixed buffer overflow for gbz80
9731         * support/regression/Makefile: inter-port-clean is no longer nesessary, the
9732         temp files are in the port dir; clean the gen/test directory when
9733         generating new test.c
9734         * support/regression/ports/host/spec.mk: defined OBJEXT for target clean
9735         * support/regression/tests/vaargs.c: fixed gcc 3.3 warning
9736         * support/regression/tests/zeropad.c: added
9737
9738 2003-05-09    <johan AT balder>
9739
9740         * src/SDCCglue.c: fixed bug #597940
9741
9742 2003-05-05  Karl Bongers(apply patches from Martin Helmling)
9743
9744         * debugger/mcs51/sdcdb.c,simi.c,cmd.c,symtab.c and .h files.
9745   cache sfr, optimize next,step, fix off by one sourceline,
9746   support ddd list function.
9747         * sim/ucsim/cmd.src/newcmd.cc - small fix for sdcdb use.
9748
9749 2003-05-04  Bernhard Held <bernhard AT bernhardheld.de>
9750
9751         * support/regression/HTMLgen.py: added compare_s2f()
9752         * support/regression/Makefile: redo 1.27
9753         * support/regression/generate-cases.py: redo 1.5
9754
9755 2003-04-30  Bernhard Held <bernhard AT bernhardheld.de>
9756
9757         * support/regression/tests/float.c: workaround 33 bit hex constant
9758         * support/regression/tests/simplefloat.c: fix division for host
9759
9760 2003-04-29  Scott Dattalo  <scott AT dattalo.com>
9761
9762         * src/pic/pcoderegs.c Applied patch from Jim Hawkridge <jim AT jimhawkridge.uk.eu.org>
9763         that tame's the PIC's over-aggressive optimizer.
9764
9765 2003-04-29  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
9766
9767          * src.dsw, link/z80/aslink.h, link/z80/linkz80.dsp: z80 linker
9768          support for MSVC.
9769
9770 2003-04-29  Kevin Vigor <kevin AT vigor.nu>
9771
9772         Initial support for DS80C400. "Hello world" runs on TINIm400
9773         (with polled I/O).
9774
9775 2003-04-28  Karl Bongers(apply patches for Martin Helmling)
9776
9777          * debugger/mcs51/sdcdb.c,simi.c,cmd.c,symtab.c and .h files.
9778          * Some notes on ddd usage added in debugger/README
9779          Martin Helmling adding more features and fixes for ddd GUI debugger.
9780          Code added for nexti, stepi, up, down, and other adjustments.
9781
9782 2003-04-28  Scott Dattalo  <scott AT DATTALO.COM>
9783
9784         * src/pic/pCodepeep.c non-wildcard asmops are now handled
9785         * src/pic/peeph.def Added two rules to optimize carry manipulation
9786         * src/pic/* removed debug printfs
9787
9788 2003-04-28  Bernhard Held <bernhard AT bernhardheld.de>
9789
9790         * debugger/mcs51/cmd.c: added header newalloc.h
9791
9792 2003-04-26  Bernhard Held <bernhard AT bernhardheld.de>
9793
9794         * as/Makefile: new EXEEXT
9795         * as/z80/Makefile: remove trailing slash of BUILDIR
9796         * as/z80/clean.mk: new EXEEXT
9797         * Makefile.common.in: add to CFLAGS (and others), don't replace it
9798         * support/cpp2/Makefile.in: new EXEEXT
9799         * src/pic/glue.c (pic14emitRegularMap): fixed warning
9800
9801 2003-04-24  Bernhard Held <bernhard AT bernhardheld.de>
9802
9803         Cygwin's gcc always appends .exe: 'gcc -o a a.c' creates a.exe;
9804         EXEEXT was introduced to fix all related problems with targets
9805         "clean", "install" and "uninstall"; a couple of further flaws
9806         especially with "clean" have been fixed too
9807         * as/mcs51/Makefile.in
9808         * as/mcs51/clean.mk
9809         * as/z80/Makefile
9810         * Makefile
9811         * clean.mk
9812         * debugger/mcs51/Makefile.in
9813         * debugger/mcs51/clean.mk
9814         * link/z80/Makefile
9815         * link/z80/Makefile.in
9816         * link/z80/clean.mk
9817         * link/Makefile
9818         * packihx/Makefile.in
9819         * packihx/clean.mk
9820         * sim/ucsim/Makefile
9821         * sim/ucsim/clean.mk
9822         * sim/ucsim/avr.src/Makefile.in
9823         * sim/ucsim/avr.src/clean.mk
9824         * sim/ucsim/s51.src/Makefile.in
9825         * sim/ucsim/s51.src/clean.mk
9826         * sim/ucsim/xa.src/Makefile.in
9827         * sim/ucsim/xa.src/clean.mk
9828         * sim/ucsim/z80.src/Makefile.in
9829         * sim/ucsim/z80.src/clean.mk
9830         * sim/ucsim/main_in.mk
9831         * sim/ucsim/packages_in.mk
9832         * sim/ucsim/gui.src/Makefile.in
9833         * sim/ucsim/gui.src/serio.src/Makefile.in
9834         * sim/ucsim/gui.src/serio.src/clean.mk
9835         * src/Makefile.in
9836         * src/clean.mk
9837         * support/cpp2/Makefile.in
9838         * support/cpp2/clean.mk
9839         * support/makebin/Makefile
9840         * support/makebin/clean.mk
9841         * support/scripts/sdcc_mingw32: --program-suffix no longer needed
9842         * doc/sdccman.lyx: --program-suffix no longer needed
9843
9844 2003-04-23  Karl Bongers(apply patches for Martin Helmling)
9845
9846          * debugger/mcs51/sdcdb.c,simi.c,cmd.c,..
9847          Martin Helmling added support for ddd GUI debugger.
9848          Code added to display assembly, set variables, and other commands
9849          to interface to ddd.
9850
9851 2003-04-23  Bernhard Held <bernhard AT bernhardheld.de>
9852
9853         * as/Makefile: fix target clean
9854         * as/clean.mk: fix target clean
9855         * as/z80/clean.mk: fix target clean
9856
9857 2003-04-22  Bernhard Held <bernhard AT bernhardheld.de>
9858
9859         * Makefile.common.in: added  AT EXEEXT AT
9860         * configure.in: removed all mingw32 stuff
9861         * configure: rebuilt from configure.in
9862         * doc/sdccman.lyx: updated section "installation"
9863         * support/scripts/sdcc_mingw32: adapted to configure
9864         * support/scripts/sdcc_cygwin_mingw32: added
9865
9866 2003-04-22  Scott Dattalo  <scott AT dattalo.com>
9867
9868         * src/pic Added object file support for the PIC port
9869         * src/pic Applied patch from Craig Franklin (this started the object file support)
9870         * src/regression Updated the PIC regression tests for object files
9871
9872 2003-04-20  Borut Razem <borut.razem AT siol.net>
9873
9874         * sdcc/as/mcs51/lklex.c: make getfid() more robust and fixed gcc warning:
9875           lklex.c: In function `getfid':
9876           lklex.c:203: warning: array subscript has type `char'
9877         * src/SDCCglobl.h: small change in stack handling macros, to avoid crash when compiled
9878           with MSVC with global optimization enabled (probably an cl compiler bug ;-)
9879         * support/Util/SDCCerr.c, support/Util/SDCCerr.h: added function fatal(), called from
9880           stack handling macros
9881
9882 2003-04-19  Borut Razem <borut.razem AT siol.net>
9883
9884         * "handling space characters in file path" task:
9885         * src/SDCCmacro.c: fixed bug in handlig quote at the end of line
9886         * support/Util/BuildCmd.c: define par as NULL if parameter value is invalid
9887         * support/Util/MySystem.h: make it self-sufficient
9888         * src/avr/main.c, src/ds390/main.c, src/mcs51/main.c, src/pic/main.c, src/xa51/main.c,
9889           src/z80/main.c, sdcc/as/mcs51/lklex.c:
9890           handling space characters in file path
9891         * src/SDCCmain.c: introduced setDataPaths() function, {datadir} macro
9892           (it will be used by assemblers, which have their own includes, e.g. gpasm)
9893         * support/Util/MySystem.c: handling space characters in executable's path
9894
9895 2003-04-19  Bernhard Held <bernhard AT bernhardheld.de>
9896
9897         * as/z80/Makefile: fix permanent rebuild of z80
9898         * sim/ucsim/gui.src/Makefile.in: target "install" builds the same packages as target "all"
9899         * support/regression/tests/bitfields.c: added Johan's bitfields.c
9900
9901 2003-04-18      Kevin Vigor <kevin AT vigor.nu>
9902
9903         * src/SDCCopt.c: add special case optimization to replace modulo by
9904           a power of two with a bitwise AND.
9905
9906 2003-04-18    <johan AT balder>
9907
9908         * src/mcs51/gen.c (getFreePtr): fixed bug #635354
9909
9910 2003-04-17    <johan AT balder>
9911
9912         * src/mcs51/ralloc.c (packRegsForAssign): fixed bug #716790 and removes lot's of redundant register usage around function calls
9913         * src/mcs51/ralloc.c (packRegisters): fixed bug #720667
9914
9915 2003-04-13  Borut Razem <borut.razem AT siol.net>
9916
9917         * doc/sdccman.lyx: updated info about #pragma SAVE/RESTORE nesting
9918         * configure.in, configure: fixed problems on cygwin/WinCVS environmet with ports.* line endings;
9919           fixed mingw problem in adl_NORMALIZE_PATH
9920
9921 2003-04-12  Borut Razem <borut.razem AT siol.net>
9922
9923         * fixed "#pragma SAVE/RESTORE can not be nested":
9924         * src/SDCC.lex: reworked pragma handling functions
9925         * sdcc/src/SDCCglobl.h: reworked stack handling macros
9926         * support/Util/SDCCerr.c, support/Util/SDCCerr.h: added E_STACK_VIOLATION error
9927
9928 2003-04-12  Bernhard Held <bernhard AT bernhardheld.de>
9929
9930         * src/SDCCutil.c (pathEquivalent): defined but not used
9931         * debugger/mcs51/sdcdb.c: replace SDCC_LIB_DIR
9932         * configure.in: remove sdcc_datadir, sdcc_lib_dir and sdcc_include_dir
9933         * configure: rebuilt from configure.in
9934         * sdccconf_in.h: remove SDCC_LIB_DIR and SDCC_INCLUDE_DIR
9935         * sdcc_vc_in.h: remove SDCC_LIB_DIR and SDCC_INCLUDE_DIR
9936         * device/include/Makefile.in: replace sdcc_datadir
9937         * device/lib/Makefile.in: replace sdcc_datadir
9938         * Makefile.common.in: add LDFLAGS from configure
9939         * packihx/Makefile.in: use LDFLAGS
9940         * src/Makefile.in: use LDFLAGS
9941         * support/cpp2/Makefile.in: add LDFLAGS from configure
9942         * support/makebin/Makefile: use LDFLAGS
9943         * .version: bumped version number to 2.3.5
9944
9945 2003-04-12  Borut Razem <borut.razem AT siol.net>
9946
9947         * completed "different paths" task:
9948         * src/SDCCmacro.c: fixed bug in handling quotes
9949         * src/SDCCutil.c, src/SDCCutil.c: rewritten getPrefixFromBinPath()
9950         * src/SDCCmain.c: _discoverPaths() replaced with setBinPaths(), setIncludePath() and setLibPath()
9951
9952 2003-04-12  Bernhard Held <bernhard AT bernhardheld.de>
9953
9954         * src/pic/pcoderegs.c (Remove1pcode): fix warning on alpha
9955
9956 2003-04-11 kevin Vigor <kevin AT vigor.nu>
9957
9958         * ds390/gen.c ds390/peeph.def: fix bug 706781
9959
9960 2003-04-11  Borut Razem <borut.razem AT siol.net>
9961
9962         * support/Util/dbuf.c, support/Util/dbuf.h: update to version 1.1.1 - re-added C++ stuff to make it still more portable
9963
9964 2003-04-10  Scott Dattalo  <scott AT dattalo.com>
9965
9966         * src/pic/* Applied the pointer-to-function patch from Steve Tell.
9967         * src/pic/* Fixed several pointer bugs. (PIC port broke when the ruonly bit was
9968          set - this bit used to not be set...).
9969         * src/pic/gen.c Fixed buf 609268 ==> x = (x+1) & 0xf; generated
9970           bad code in PIC Port
9971         * src/regression/and2.c added to test bug 609268
9972         * src/regression/Makefile added and2.c to regression test
9973
9974
9975 2003-04-08    <johan AT CP255758-A>
9976
9977         * src/mcs51/gen.c (gen51Code): display reg usage in --icode-in-asm
9978         * src/mcs51/ralloc.c (serialRegAssign): update the registers in use and save some slocs
9979         * src/SDCCicode.h: added riu to show the register usage in --icode-in-asm
9980
9981 2003-04-07  Bernhard Held <bernhard AT bernhardheld.de>
9982
9983         * configure.in: fully support prefix, exec_prefix, datadir, docdir;
9984         fix bug #487815
9985         * support/cpp2/Makefile.in: fix bug #487815
9986         * configure: rebuilt from configure.in
9987         * Makefile.common.in: docdir changed, new path suffixes
9988         * sdccconf_in.h: new RETSIGTYPE, and other PATHs
9989         * sdcc_vc_in.h: reflect changes from sdccconf.h
9990         * src/SDCCglobl.h: remove *SEPARATOR_CHARS, they are now in sdccconf.h
9991         * src/SDCCutil.h: remove BINDIR hack
9992         * doc/sdccman.lyx: update new path hierarchy
9993
9994 2003-04-06    Paul Stoffregen <paul AT pjrc.com>
9995
9996         * src/SDCCpeeph.c: added okToRemoveSLOC test
9997
9998 2003-04-06    Paul Stoffregen <paul AT pjrc.com>
9999
10000         * device/lib/printf_fast.c: added leading zero format ("%06d", etc)
10001
10002 2003-04-06    Paul Stoffregen <paul AT pjrc.com>
10003
10004         * src/SDCCpeeph.c: added labelIsReturnOnly test
10005         * src/mcs51/peeph.def: Peephole 244: replace ljmp to ret with ret
10006
10007 2003-04-05    <johan AT balder>
10008
10009         * src/SDCCcse.c (cseAllBlocks): fixed bug #460088
10010         * src/SDCCloop.c (DEFSETFUNC): fixed bug #460088
10011         * src/SDCCopt.c (eBBlockFromiCode): fixed bug #460088
10012         * src/SDCCast.c: fixed a warning
10013         * src/SDCCast.h: fixed a warning
10014         * src/SDCCicode.c (operandFromAst): fixed a warning
10015
10016 2003-04-04    <johan AT balder>
10017
10018         * src/SDCCloop.c (DEFSETFUNC): undid the fix for bug #519584
10019         * src/SDCCast.c (decorateType): fixed bug #715076
10020         * src/SDCC.y: fixed bug #702907
10021
10022 2003-04-03    <johan AT balder>
10023
10024         * device/lib/_mulint.c (_muluint): new #pragma LESS_PEDANTIC
10025         * src/SDCCopt.c (eBBlockFromiCode): new #pragma LESS_PEDANTIC
10026         * src/SDCCglobl.h (PRAGMA_LESSPEDANTIC): new #pragma LESS_PEDANTIC
10027         * src/SDCC.lex (doPragma): new #pragma LESS_PEDANTIC
10028         * src/SDCCmain.c (parseCmdLine): new #pragma LESS_PEDANTIC
10029
10030 2003-04-03  Bernhard Held <bernhard AT bernhardheld.de>
10031
10032         * _decdptr.c: fix return values
10033         * _gptrget.c: fix return values
10034         * _gptrgetc.c: fix return values
10035         * _gptrput.c: fix return values
10036         * _mulint.c: fix return values
10037         * as/z80/Makefile: fix 'make -j' problem
10038
10039 2003-04-02  Bernhard Held <bernhard AT bernhardheld.de>
10040
10041         * Makefile.common.in: unused PORT, SCC and SAS removed, fixed docdir
10042         * configure.in: big cleanup, updated to autoconf 2.5x
10043         * configure: rebuilt from configure.in
10044         * sdccconf_in.h: new RETSIGTYPE, and other PATHs
10045         * sdcc_vc_in.h: reflect changes from sdccconf.h
10046         * doc/Makefile: fixed a flaw in "make install"
10047
10048 2003-04-02    <johan AT balder>
10049
10050         * src/ds390/gen.c (genCmp): no comments
10051         * src/mcs51/gen.c (genCmp): no comments
10052         * src/SDCCopt.c (eBBlockFromiCode): detect missing return values
10053         * src/SDCCast.c (ast_print): fixed the function type in --dumptree
10054
10055 2003-04-01  Bernhard Held <bernhard AT bernhardheld.de>
10056
10057         * support/regression/generate-cases.py: place generated file in given sub directory
10058         * support/regression/ports/host/spec.mk: prevent removal of testfwk.o
10059         * support/regression/Makefile: improvements for 'make -j';
10060         side effect: it's simpler and faster now
10061
10062 2003-03-31  Borut Razem <borut.razem AT siol.net>
10063
10064         * src/z80/main.c: link-{port} and as-{port} defined without path
10065         * src/src.dsp: support/Util/MySystem.h and src/SDCCutil.h added to project
10066
10067 2003-03-31  Bernhard Held <bernhard AT bernhardheld.de>
10068
10069         * Makefile, src/Makefile.in: add dependencies, so that 'make -j' works
10070
10071 2003-03-30  Borut Razem <borut.razem AT siol.net>
10072
10073         * support/Util/BuildCmd.c, support/Util/BuildCmd.h: rewrite buildCmdLine(),
10074           changed type of list parameter to set
10075         * src/ds390/main.c: changed type of parameter asmOptions to set in _tininative_do_assemble()
10076         * src/port.h: changed type of do_assemble() parameter to set
10077         * src/SDCCmain.c: type of asmOptions changed to set, introduced setParseWithComma(),
10078           sdcpp defined without path, removed variable VersionString, introduced set binPathSet,
10079           definition of "cppoutfilename" macro with NULL value in preProcess()
10080         * src/SDCCglobl.h: included "SDCCset.h", added declaration of setParseWithComma()
10081         * src/SDCCglue.c: removed variable VersionString, inroduced spacesToUnderscores()
10082         * support/Util/MySystem.c, support/Util/MySystem.h: rewrite, char *ExePathList[]
10083           replaced with set *binPathSet
10084         * shash_add() deallocates the item, if allready exsists, before adding the new one
10085         * src/SDCCmacro.c: handling macros with empty or NULL values in _evalMacros()
10086
10087 2003-03-30  Scott Dattalo  <scott AT dattalo.com>
10088
10089         * src/pic/gen.c: Commit patch from Steve Tell <tell AT telltronics.org> that fixes
10090           a nested for loop bug in the PIC port
10091         * src/regression/nestfor.c: new regression test file Steve wrote to test nested
10092           for loops
10093
10094 2003-03-29  Bernhard Held <bernhard AT bernhardheld.de>
10095
10096         * support/Util/dbuf.h: remove C++ stuff to make it portable
10097
10098 2003-03-28  Borut Razem <borut.razem AT siol.net>
10099
10100         * src/SDCC.lex: Fix for bug #711240: dynamic buffer handling of C
10101           literal strings in stringLiteral()
10102         * support/Util/dbuf.c, support/Util/dbuf.h: added: dynamic buffer handling
10103         * src/Makefile.bcc, src/Makefile.in, src\src.dsp: added support/Util/dbuf.c
10104           to the project
10105
10106 2003-03-27  Paul Stoffregen <paul AT pjrc.com>
10107
10108         * src/SDCCpeeph.c (pcDistance): accurate byte distance for mcs51
10109
10110 2003-03-26    <johan AT balder>
10111
10112         * src/mcs51/gen.c (saveRegisters): catched symbol abuse
10113         * src/ds390/gen.c (saveRegisters): catched symbol abuse
10114         * src/SDCCast.c (decorateType): fixed " -v < 3"
10115
10116 2003-03-23  Bernhard Held <bernhard AT bernhardheld.de>
10117
10118         * doc/cdbfile.html: removed, replaced by cdbfileformat.lyx
10119         Added Lenny Story's debug infrastructure changes:
10120         * src/Makefile.in:  added new files cdbFile.c and SDCCdebug.c
10121         * src/Makefile.bcc: added new files cdbFile.c and SDCCdebug.c
10122         * src/cdbFile.c: added
10123         * src/SDCCdebug.c: added
10124         * src/SDCCdebug.h: added
10125         * src/SDCCast.c (createFunction)
10126         * src/SDCCglue.c (emitRegularMap, emitStaticSeg, emitOverlay, glue)
10127         * src/SDCCmain.c (parseCmdLine, main)
10128         * src/SDCCmem.c (redoStackOffsets)
10129         * src/SDCCsymt.c (cdbStructBlock, cdbTypeInfo, cdbSymbol, cdbStruct, cdbStructBlock)
10130         * src/SDCCsymt.h
10131         * src/common.h
10132         * src/avr/gen.c (genAVRCode)
10133         * src/ds390/gen.c (gen390Code)
10134         * src/mcs51/gen.c (gen51Code)
10135         * src/pic/gen.c (genpic14Code)
10136         * src/pic/glue.c (pic14emitRegularMap, pic14emitStaticSeg, pic14emitOverlay, picglue)
10137         * src/xa51/gen.c (genXA51Code)
10138         * src/SDCCast.c: fixed "void foo(void){char c; -c < 0;}"
10139
10140 2003-03-22  Frieder Ferlemann <Frieder.Ferlemann AT web.de>
10141
10142         * src/mcs51/gen.c (genCodePointerGet): quicker code for bug #700797
10143         * src/mcs51/peeph.def: added rules 177, 241.x to 243, touched 181, 182.x, 193.x
10144
10145 2003-03-22    <johan AT balder>
10146
10147         * src/SDCCicode.c (geniCodeDerefPtr): fixed bug #698231
10148
10149 2003-03-21  Bernhard Held <bernhard AT bernhardheld.de>
10150
10151         * support/scripts/sdcc_mingw32: adapted to configure from autoconf 2.54
10152         * doc/cdbfileformat.lyx: added, written by Lenny Story
10153         * doc/Makefile: added cdbfileformat.lyx
10154         * doc/clean.mk: added cdbfileformat.lyx
10155
10156 2003-03-20  Bernhard Held <bernhard AT bernhardheld.de>
10157
10158         * src/mcs51/peeph.def: fix bug #705773
10159
10160 2003-03-20    <johan AT balder>
10161
10162         An sfr/sbit can have an "at #" AND an initializer
10163         * src/SDCCsymt.c (checkSClass):
10164         * src/SDCCmem.c (allocGlobal):
10165         * src/SDCCmem.c (allocLocal):
10166         * src/SDCCast.c (createBlock):
10167
10168 2003-03-17  Bernhard Held <bernhard AT bernhardheld.de>
10169
10170         * src/ds390/peeph.def: fix bug #704878: added rule 213.b suggested by Jan Rejlek
10171
10172 2003-03-16    <johan AT balder>
10173
10174         Undid the hackup of const and volatile, the problem is much bigger
10175         * src/SDCC.y:1.65
10176         * src/SDCCast.c:1.171
10177         * src/SDCCglue.c:1.138
10178         * src/SDCCicode.c:1.146
10179         * src/SDCCsymt.c:1.150
10180         * src/SDCCval.c:1.65
10181
10182 2003-03-15  Bernhard Held <bernhard AT bernhardheld.de>
10183
10184         * src/mcs51/ralloc.c (packRegsForAssign): fixed bug #703541
10185         * src/ds390/gen.c (genAddrOf): fixed bug #704087
10186
10187 2003-03-13    <johan AT balder>
10188
10189         Hackup const and volatile modifiers in type chains a bit:
10190         * src/SDCC.y:1.63
10191         * src/SDCCast.c:1.169
10192         * src/SDCCglue.c:1.136
10193         * src/SDCCicode.c:1.143
10194         * src/SDCCsymt.c1.146
10195         * src/SDCCsymt.h1.59
10196         * src/SDCCval.c:1.63
10197
10198 2003-03-12    <johan AT balder>
10199
10200         * src/SDCCBBlock.h: more LRH debugging junk
10201         * src/SDCCcflow.h: more LRH debugging junk
10202         * src/SDCCloop.c: more LRH debugging junk
10203         * src/SDCC.y (struct_declaration): fixed bug #697590
10204         * src/SDCCsymt.[hc] (cloneSpec): NEVER EVER use this again
10205         * src/ds390/gen.c (aopForRemat): fixed bug #700031
10206         * src/SDCCglue.c (emitStaticSeg): fixed bug #700797
10207
10208 2003-03-11 Kevin Vigor <kevin AT vigor.nu>
10209         * src/SDCCpeeph.c: quit being lazy and made proper fix (peephole
10210         test function names must now match exactly).
10211         * src/SDCCcse.c: added special case in findCheaperOp to allow
10212         extending a short integer. Makes less awful code for bug 700121 test case.
10213
10214 2003-03-11  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
10215
10216         * as/mcs51/lkmain.c: Added ASlink-Warning to messages
10217         * as/mcs51/lkaomf51.c: Fixed bug when linking asmblink example
10218
10219 2003-03-11 Kevin Vigor <kevin AT vigor.nu>
10220
10221         * src/SDCCpeeph.c: fix so that operandsNotEqualX functions are
10222         actually called (operandsNotEqual() was called for all
10223         operandsNotEqualX tests).
10224
10225 2003-03-11 Kevin Vigor <kevin AT vigor.nu>
10226
10227         * src/SDCCcse.c: fix findCheaperOp to prevent replacing int types
10228         with shorter literals. Fixes bug 700121.
10229
10230 2003-03-11    <johan AT balder>
10231
10232         * src/SDCCsymt.c (compareType): a (void *) can be assigned to any pointer
10233
10234 2003-03-11  Bernhard Held <bernhard AT bernhardheld.de>
10235
10236         * src/SDCCloop.c (mergeRegions): an evil beast is dead
10237         * src/SDCCmain.c (preProcess): minor cleanup: eliminate preOutName
10238
10239 2003-03-10  Borut Razem <borut.razem AT siol.net>
10240
10241         * src/SDCCmain.c: pipe preprocessor's output
10242         * support/Util/MySystem.c, support/Util/MySystem.h: added my_popen()
10243         * sdcc_vc_in.h: define pclose as _pclose for WIN32
10244         * src/SDCCglue.c, src/SDCCglue.h: added set pipeSet, added function closePipes,
10245         which closes all pipes in pipeSet set
10246         * src/SDCCset.c: free deleted item in function deleteSetItem()
10247         * src/src.dsp, src/z80/z80.dsp: files support/Util/BuildCmd.c and support/Util/MySystem.c
10248         moved from z80 to src subproject
10249         * .version: increased version number to 2.3.4
10250
10251 2003-03-10  Bernhard Held <bernhard AT bernhardheld.de>
10252
10253         * support/regression/ports/mcs51/spec.mk: increase timeout for CF's sparc to 30s
10254         * support/regression/ports/ds390/spec.mk: increase timeout for CF's sparc to 25s
10255         * support/regression/ports/xa51/spec.mk: fix typo
10256
10257 2003-03-09  Bernhard Held <bernhard AT bernhardheld.de>
10258
10259         * src/SDCCglobl.h: PATH_MAX is already defined in mingw32 headers
10260
10261 2003-03-09  Borut Razem <borut.razem AT siol.net>
10262
10263         * src/SDCCmain.c: pipe preprocessor's output
10264         * support/Util/MySystem.c, support/Util/MySystem.h: added my_popen()
10265         * sdcc_vc_in.h: define pclose as _pclose for WIN32
10266         * src/SDCCglue.c, src/SDCCglue.h: added set pipeSet, added function closePipes,
10267         which closes all pipes in pipeSet set
10268         * src/SDCCset.c: free deleted item in function deleteSetItem()
10269         * src/src.dsp, src/z80/z80.dsp: files support/Util/BuildCmd.c and support/Util/MySystem.c
10270         moved from z80 to src subproject
10271
10272 2003-03-09  Borut Razem <borut.razem AT siol.net>
10273
10274         * src/SDCCglue.c: re-implemented tempfilename() and tempfile(): using mkstemp() if available
10275         * src/SDCCsymt.h: fixed MSVC and BORLANDC compilation (included SDCCglobl.h instead srccconf.h)
10276         * sdcc_vc_in.h: explicitly undefined HAVE_MKSTEMP which is not available on BORLANDC and MSVC
10277         * src/SDCCset.h: removed inclusion of sdccconf.h or sdcc_vc.h
10278         * src/SDCCglobl.h: unification of WIN32 native definitions
10279
10280 2003-03-09  Frieder Ferlemann <Frieder.Ferlemann AT web.de>
10281
10282         * src/mcs51/gen.c: applied in-/dec patch mentioned on sdcc-devel 2003-03-01
10283
10284 2003-03-08  Bernhard Held <bernhard AT bernhardheld.de>
10285
10286         * src/configure.in:   check for endianess (even while cross-compiling)
10287         * src/configure:      check for endianess (even while cross-compiling)
10288         * src/configure_in.h: check for endianess (even while cross-compiling)
10289         * src/avr/gen.c:        remove old endianess stuff
10290         * src/mcs51/gen.c:      remove old endianess stuff
10291         * src/ds390/gen.c:      remove old endianess stuff
10292         * src/pic/gen.c:        remove old endianess stuff
10293         * src/pic/genarith.c:   remove old endianess stuff
10294         * src/pic/glue.c:       fix endianess check
10295         * src/pic16/gen.c:      remove old endianess stuff
10296         * src/pic16/genarith.c: remove old endianess stuff
10297         * src/pic16/glue.c:     fix endianess check
10298         * src/xa51/gen.c:       remove old endianess stuff
10299         * src/z80/gen.c:        fix endianess check
10300         * src/SDCCglue.c:       fix endianess check
10301         * src/ds390/peeph.def: fix bug 700036
10302
10303 2003-03-08  Bernhard Held <bernhard AT bernhardheld.de>
10304
10305         * src/SDCCsymt.h: use appropriate data-types on host for SDCC's int and long
10306         * src/configure: find appropriate data-types on host for SDCC's int and long
10307         * src/configure.in: find appropriate data-types on host for SDCC's int and long
10308         * src/sdccconf_in.h: find appropriate data-types on host for SDCC's int and long
10309         * src/xa51/gen.c: use %d, not %ld for 4 byte variables
10310
10311 2003-03-07    <johan AT balder>
10312
10313         Just a big NOOP:
10314                 some minor cleanups before the big shot
10315                 OP_DEFS and OP_USES now use Kevin's protection
10316                 new option --nolabelopt
10317
10318         * src/SDCCBBlock.c:
10319         * src/SDCCast.c,:
10320         * src/SDCCcflow.c:
10321         * src/SDCCcse.c:
10322         * src/SDCCicode.c:
10323         * src/SDCCicode.h:
10324         * src/SDCClabel.c:
10325         * src/SDCCloop.c:
10326         * src/SDCCmain.c:
10327         * src/ds390/ralloc.c:
10328         * src/mcs51/ralloc.c:
10329         * src/pic/ralloc.c:
10330         * src/xa51/ralloc.c:
10331         * src/z80/ralloc.c:
10332
10333 2003-03-06  Bernhard Held <bernhard AT bernhardheld.de>
10334
10335         * src/pic/pcode.c (get_op): fix 64 bit warnings
10336         * src/pic/pcode.c (pCode2str): fix 64 bit warnings
10337         * src/SDCChasht.c (newHashTable): fix 64 bit warnings
10338         * src/SDCCsymt.c (checkTypeSanity): fix 64 bit warnings
10339         * support/regression/tests/malloc.c: fix 64 bit warnings
10340
10341 2003-03-04  Bernhard Held <bernhard AT bernhardheld.de>
10342
10343         * src/mcs51/gen.c (genMinus): fixed bug 696436
10344
10345 2003-03-02  Borut Razem <borut.razem AT siol.net>
10346
10347         * src/SDCCmain.c: added BORLANDC, corrected MSVC in printVersionInfo()
10348
10349 2003-02-26  Bernhard Held <bernhard AT bernhardheld.de>
10350
10351         * configure.in: test for mkstemp
10352         * sdccconf_in.h: add HAVE_MKSTEMP
10353
10354 2003-02-24  Bernhard Held <bernhard AT bernhardheld.de>
10355
10356         * device/include/ctype.h: removed warning while using --stack-auto
10357         * device/include/malloc.h: removed warning while using --stack-auto
10358         * device/include/string.h: removed warning while using --stack-auto
10359
10360 2003-02-23  Borut Razem <borut.razem AT siol.net>
10361
10362         * src/asm.h: corrected assertion in function printILine(): _pipe() was not executed on MSVC,
10363         because NDEBUG is defined (see man assert)
10364         * sdcc_vc_in.h: vsnprintf is defined as _vsnprintf on MSVC
10365
10366 2003-02-23  Frieder Ferlemann <Frieder.Ferlemann AT web.de>
10367
10368         * src/mcs51/gen.c (genUminusFloat): avoided dptr in-/decrement for xdata variables
10369         * src/mcs51/peeph.def: added rule suggested by Gernot Fink, white space/comment changes
10370
10371 2003-02-18  Frieder Ferlemann <Frieder.Ferlemann AT web.de>
10372
10373         * src/SDCCpeeph.c: added peephole conditions testing for same arguments
10374         * src/mcs51/peeph.def: added rules 238a-d which remove redundant moves
10375
10376 2003-02-18    <johan AT balder>
10377
10378         * as/mcs51/asmain.c (asmbl): module can start with a digit
10379         * as/z80/asmain.c (asmbl): module can start with a digit
10380
10381 2003-02-16  Bernhard Held <bernhard AT bernhardheld.de>
10382
10383         * sim/ucsim/mkecho: inserted #!/bin/sh for Cygwin, so that it's executable
10384         * src/asm.c: fix pipe() for Mingw32
10385
10386 2003-02-15  Bernhard Held <bernhard AT bernhardheld.de>
10387
10388         * src/SDCCglue.h: make tmpfileNameSet available for preOutName
10389         * src/SDCCmain.c (preProcess): make sure, that preOutName will be deleted;
10390         make -V work again; --c1mode reads now from stdin
10391         * doc/sdccman.lyx: added --c1mode
10392         * support/Util/SDCCerr.c: new messages for c1 mode
10393         * support/Util/SDCCerr.h: new messages for c1 mode
10394         * src/SDCC.lex (checkCurrFile): test if fullSrcFileName is NULL for c1mode
10395
10396 2003-02-15    <johan AT balder>
10397
10398         * src/asm.c: new options: --no-c-code-in-asm and --i-code-in-asm
10399
10400 2003-02-14  Bernhard Held <bernhard AT bernhardheld.de>
10401
10402         * doc/sdccman.lyx: Environment variables, -o and other minor things
10403
10404 2003-02-14    <johan AT balder>
10405
10406         * src/xa51/main.c: before anyone really tries to use it :)
10407
10408         * Install doc's in share/sdcc/doc
10409         * removed some obsolete files
10410         * Do a proper make distclean and uninstall
10411         M Makefile.common.in
10412         R sdccbuild.sh
10413         M as/Makefile
10414         M device/include/Makefile.in
10415         M device/lib/Makefile.in
10416         M doc/sdccman.lyx
10417         M link/Makefile
10418         M sim/ucsim/doc/Makefile.in
10419         M src/clean.mk
10420         R src/avr/peeph.rul
10421         R src/xa51/peeph.rul
10422         M support/cpp2/Makefile.in
10423         M support/makebin/Makefile
10424
10425
10426 2003-02-13  Bernhard Held <bernhard AT bernhardheld.de>
10427
10428         * support/regression/ports/host/spec.mk: use cc as host compiler for max osx
10429
10430 2003-02-10  Borut Razem <borut.razem AT siol.net>
10431
10432         * doc/bccinst.txt, packihx/packihx.c, sdcc_vc_in.h, src/SDCCset.h,
10433         support/cpp2/config.in: Borland C++ build doesn't depend on Cygwin configure
10434         * Bcc.ini, Makefile.bcc, as/mcs51/Makefile.bcc,
10435         device/examples/ds390/tinitalk/Makefile.bcc, packihx/Makefile.bcc,
10436         support/cpp2/Makefile.bcc, src/Makefile.bcc, src/avr/Makefile.bcc,
10437         src/ds390/Makefile.bcc, src/izt/Makefile.bcc, src/mcs51/Makefile.bcc,
10438         src/pic/Makefile.bcc, src/pic16/Makefile.bcc, src/xa15/Makefile.bcc,
10439         src/z80/Makefile.bcc: Borland Makefile cleanup
10440         * as/z80/Makefile.bcc: Added Borland Makefile
10441         * support/cpp2/borland.h: Removed
10442
10443 2003-02-10  Bernhard Held <bernhard AT bernhardheld.de>
10444
10445         * doc/sdccman.lyx: new pragma NOIV by "Johannes Stezenbach" <js AT convergence.de>
10446         * src/SDCC.lex: new pragma NOIV
10447         * src/SDCCglobl.h: new pragma NOIV
10448         * src/SDCCmem.c: new pragma NOIV
10449
10450 2003-02-09  Bernhard Held <bernhard AT bernhardheld.de>
10451
10452         * src/SDCCmain.c: signal handling is switched off by SDCC_LEAVE_SIGNALS
10453
10454 2003-02-09  Bernhard Held <bernhard AT bernhardheld.de>
10455
10456         * src/SDCCmain.c: signal handling is switched off by --debug
10457         * doc/Makefile: small fix for install; use clean.mk again
10458         * doc/clean.mk: clean *.pdf and *.html too
10459
10460 2003-02-08  Bernhard Held <bernhard AT bernhardheld.de>
10461
10462         * device/lib/_mulint.c: small fix for large/ds390 --int-long-reent resp. --stack-auto
10463         * device/lib/printfl.c: fix a ds390 bug by making it portable
10464         * src/SDCCsymt.c (initCSupport): fix compile warning on Cygwin
10465         * src/SDCCopt.c (cnvToFloatCast): fix compile warning on Cygwin
10466         * src/SDCCopt.c (cnvFromFloatCast): fix compile warning on Cygwin
10467         * debugger/mcs51/cmd.c: converted multi-line string literals
10468         * sim/ucsim/globals.cc: converted multi-line string literals
10469         * src/SDCCmain.c: introduced signal handler to remove temp files
10470         * doc/Makefile: small tweaks, implement clean
10471         * doc: removed generated files
10472
10473 2003-02-05  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
10474
10475         * as/mcs51/aslink.h, as/mcs51/lkihx.c, as/mcs51/lkrloc.c:  Applied
10476         patch from Jan Rejlek <jr AT apex-lib.cz> to fix Bug 677692: "Extended
10477         Address Record is not correctly generated for DS390."
10478
10479 2003-02-02  Borut Razem <borut.razem AT siol.net>
10480
10481         * Makefile.bcc: removed non existing cpp project and non compilable izt project from makefile
10482         * as/mcs51/asm.h: fixed compilation with Borland C
10483         * support/cpp2/Makefile.bcc: added rule to generate auto-host.h
10484         * support/cpp2/auto-host_vc_in.h: fixed compilation with Borland C
10485         * src/mcs51/mcs51a.dsp: corrected misspelled project name from msc51a to mcs51a
10486         * src/avr/Makefile.bcc, src/ds390/Makefile.bcc, src/izt/Makefile.bcc,
10487         src/mcs51/Makefile.bcc, src/pic16/Makefile.bcc, src/xa51/Makefile.bcc,
10488         src/z80/Makefile.bcc: delete $(LIB) only if exist
10489         * src/Makefile.bcc, src/pic/Makefile.bcc:  fixed compilation with Borland C
10490
10491 2003-02-02  Bernhard Held <bernhard AT bernhardheld.de>
10492
10493         * device/include/malloc.h: introduced NULL
10494         * device/include/string.h: introduced NULL
10495         * device/include/stdlib.h: introduced NULL
10496         * device/lib/_memcpy.c: removed NULL
10497         * device/lib/_strcat.c: removed NULL
10498         * device/lib/_strchr.c: removed NULL
10499         * device/lib/_strcmp.c: removed NULL
10500         * device/lib/_strcpy.c: removed NULL
10501         * device/lib/_strcspn.c: removed NULL
10502         * device/lib/_strlen.c: removed NULL
10503         * device/lib/_strncat.c: removed NULL
10504         * device/lib/_strncmp.c: removed NULL
10505         * device/lib/_strncpy.c: removed NULL
10506         * device/lib/_strpbrk.c: removed NULL
10507         * device/lib/_strrchr.c: removed NULL
10508         * device/lib/_strspn.c: removed NULL
10509         * device/lib/_strstr.c: removed NULL
10510         * device/lib/_strtok.c: removed NULL
10511         * device/lib/malloc.c: removed NULL, include own header
10512
10513 2003-02-02    <johan AT balder>
10514
10515         * 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
10516         * support/regression/fwk/lib/testfwk.c: div and mod isn't broken anymore
10517         * regressions ds390/spec.mk and mcs51/spec.mk (timeout): my good old balder isn't fast enough for some tests
10518         * src/z80/gen.c (genZ80Code): added c-lines in asm comments
10519         * as/z80/asm.h (NINPUT): increased for long c-comments in regression tests
10520         * src/z80/gen.c (genRightShiftLiteral): fixed the (char)(-3)>>8 (I think)
10521
10522 2003-02-01  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
10523
10524         * src/SDCCmain.c: Fixed bug 678574: "ds390: ASlink-Error-Stack overlaps
10525         area 'DATA'"
10526
10527 2003-02-01    <johan AT balder>
10528
10529         * src/SDCCval.c (valBitwise): fixed Karl's "2 | (1<<8)"
10530
10531 2003-01-31    <johan AT CP255758-A>
10532
10533         * src/ds390/main.c (_ds390_genAssemblerPreamble): applied Jan Rejlek's >64K startup patch
10534
10535 2003-01-30    <johan AT balder>
10536
10537         * src/SDCCBBlock.c: automatic bug detection
10538         * src/SDCCicode.c: automatic bug detection
10539
10540 2003-01-29  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
10541
10542         * src/SDCCglobl.h:   now --xram-size 0 works
10543         * src/SDCCmain.c:    now --xram-size 0 works
10544
10545 2003-01-29    <johan AT balder>
10546
10547         * src/almosteverything: changed OP_DEFS and OP_USES from macros to functions to catch symbol abuse (a hot topic in the bug list :)
10548
10549 2003-01-29  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
10550
10551         * as/mcs51/aslink.h: Added options --xram-size and --code-size
10552         * as/mcs51/lkdata.c: Added options --xram-size and --code-size
10553         * as/mcs51/lkmain.c: Added options --xram-size and --code-size
10554         * as/mcs51/lkmem.c:  Added options --xram-size and --code-size
10555         * src/SDCCglobl.h:   Added options --xram-size and --code-size
10556         * src/SDCCmain.c:    Added options --xram-size and --code-size
10557
10558 2003-01-28  Bernhard Held <bernhard AT bernhardheld.de>
10559
10560         * src/ds390/gen.c: fix deps by replacing <common.h> with "common.h"
10561         * src/SDCC.lex: rename P_OVERLAY to P_OVERLAY_ for cross-gcc 3.2 MINGW32
10562
10563 2003-01-27    <johan AT balder>
10564
10565         * src/SDCC.y: fixed bug #613764
10566
10567 2003-01-26    <johan AT balder>
10568
10569         * src/SDCClrange.c:  fixed Bernhard's "char * code ptr = &c"
10570         * src/SDCCsymt.h: fixed bug #673374
10571         * src/SDCCglue.c: fixed bug #661910
10572         * src/SDCCast.c: fixed bug #458099 and 673374
10573
10574 2003-01-26  Bernhard Held <bernhard AT bernhardheld.de>
10575
10576         * as/mcs51/strcmpi.c: added, provides Aurelien Jarno's as_strcmpi(); strcmpi() is not ANSI
10577         * as/mcs51/strcmpi.h: added
10578         * as/mcs51/asm.h: remove ugly "#define strcmpi strcmp"
10579         * as/mcs51/aslink.h: remove ugly "#define strcmpi strcmp"
10580         * as/mcs51/asmain.c: strcmpi -> as_strcmpi
10581         * as/mcs51/assym.c: strcmpi -> as_strcmpi
10582         * as/mcs51/lkmem.c: strcmpi -> as_strcmpi
10583         * as/mcs51/lknoice.c: strcmpi -> as_strcmpi
10584         * as/mcs51/lksym.c: strcmpi -> as_strcmpi
10585         * as/mcs51/Makefile.aslink: new module strcmpi
10586         * as/mcs51/Makefile.asx8051: new module strcmpi
10587         * as/mcs51/Makefil.bcc: new module strcmpi
10588         * as/mcs51/Makefile.in: new module strcmpi
10589         * sim/ucsim/s51.src/uc390.cc (get_mem_size): make RAM big enough for tinibios
10590
10591 2003-01-26    <johan AT balder>
10592
10593         * src/SDCCglue.c: reverted back to 1.124
10594         * src/SDCCast.c: reverted back to 1.156
10595         * src/mcs51/gen.c (aopGet): applied Frieder's efficiency patch
10596
10597 2003-01-25    <johan AT balder>
10598
10599         * src/SDCCglue.c: A better fix for bug #661910
10600         * src/SDCCast.c: A better fix for bug #661910
10601         * src/SDCCglue.c (emitRegularMap): That was a little too efficient
10602
10603 2003-01-24  Bernhard Held <bernhard AT bernhardheld.de>
10604
10605         * src/Makefile.in: remove spawn.o
10606         * src/SDCCmain.c: remove spawn.h
10607         * src/SDCCmain.c (printVersionInfo): report MINGW32 instead of UNIX
10608         * src/spawn.c: removed
10609         * src/spawn.h: removed
10610         * support/regression/ports/ds390/spec.mk: link with -r
10611
10612 2003-01-24    <johan AT CP255758-A>
10613
10614         * src/ds390/gen.c (aopOp): fixed bug #667458
10615         * src/SDCCglue.c (emitRegularMap): fixed bug #458099 again
10616         * src/SDCCast.c (createIvalCharPtr): fixed bug #661910
10617         (createIvalCharPtr): an ival doesn't always have a storage class anymore
10618
10619 2003-01-24  Bernhard Held <bernhard AT bernhardheld.de>
10620
10621         * src/mcs51/peeph.def: better assembler identation by Frieder
10622         * src/mcs51/gen.c: better assembler identation by Frieder
10623
10624 2003-01-22  Bernhard Held <bernhard AT bernhardheld.de>
10625
10626         * as/z80/string.h: removed for gcc 3.2
10627         * support/makebin/makebin.c: #include <string.h> for gcc 3.2
10628         * src/pic/pcode.c (get_op_from_instruction): fix concatenation of string literals with __FUNCTION__ for gcc 3.2
10629
10630 2003-01-19  Bernhard Held <bernhard AT bernhardheld.de>
10631
10632         * src/SDCCmain.c (linkEdit): rename mem and map files even in case of failure
10633         * src/SDCCpeeph.c (replaceRule): fix bug #663503
10634         * support/regression/Makefile: separate temp files for ports
10635         * support/regression/generate-cases.py: separate temp files for ports
10636         * src/mcs51/peeph.def: Frieder: removed 237 (obsolete by 236g and 105); added 237 a/b
10637         * src/ds390/peeph.def: Frieder: removed 237 (obsolete by 236g and 105); added 237 a/b
10638
10639 2003-01-19  Bernhard Held <bernhard AT bernhardheld.de>
10640
10641         * moved tinitalk to device/examples/ds390
10642
10643 2003-01-14  Bernhard Held <bernhard AT bernhardheld.de>
10644
10645         * as/mcs51/lkmem.c: rflag is for DS390
10646         * src/SDCCglobl.h: removed out_name and options stackOnData, genericPtr
10647         * src/SDCCmain.c (optionsTable, setDefaultOptions): removed --stack-after-data and --generic
10648                          (linkEdit): move mem- and map-files the same way as ihx-files
10649         * src/z80/main.c (_setDefaultOptions): removed --generic
10650         * src/SDCCmain.c (_processC1Arg, parseCmdLine, main): --c1mode works again
10651         * src/SDCCglue.c (createInterruptVect, glue): --c1mode works again
10652         * src/pic/glue.c (picglue): --c1mode works again
10653         * src/pic16/glue.c (pic16glue): --c1mode works again
10654         * src/asm.c (printCLine): fix #660034
10655
10656 2003-01-13  Bernhard Held <bernhard AT bernhardheld.de>
10657
10658         * src/ds390/peeph.def: fix #123; add 14 rules by Fiorenzo D. Ramaglia <fd.ramaglia AT tin.it>, 1 by Frieder
10659         * src/mcs51/peeph.def: fix #123; add 14 rules by Fiorenzo, 1 by Frieder
10660         * src/mcs51/gen.c (genFunction): emit r0 instead of ar0 by Fiorenzo
10661         * as/mcs51/lkmem (summary): better fix for sp problem
10662         * src/SDCCglue.c (glue): __start_stack - 1, saves 1 byte!
10663         * src/ds390/main.c (_ds390_finaliseOptions, _tininative_finaliseOptions): stack_loc = 0x400008
10664         * support/regression/ports/*/spec.mk: moving testfwk-object to port dir allow parallel execution of regression tests
10665                                               remove --stack-after-data
10666
10667 2003-01-12  Bernhard Held <bernhard AT bernhardheld.de>
10668
10669         * src/SDCCmain.c (main): port->finaliseOptions() moved for z80 linking
10670         * src/SDCCutil.c (join): ugly bug: missing '\0'
10671         * as/mcs51/lkmem.c (summary): sp on address 7 is safe
10672
10673 2003-01-11  Bernhard Held <bernhard AT bernhardheld.de>
10674
10675         * src/SDCCmain.c (assemble, linkEdit): preparations for -o
10676         * src/port.h: typo
10677         * src/pic/main.c (_asmCmd): gpasm supports -o
10678         * src/z80/main.c: more general macros
10679         * device/lib/Makefile.in: remove intermediate files
10680
10681 2003-01-11  Bernhard Held <bernhard AT bernhardheld.de>
10682
10683         * .version: Bumped version number to 2.3.3
10684         * src/SDCCBBlock.c: new option -o
10685         * src/SDCCglobl.h: new option -o
10686         * src/SDCCglue.c: new option -o
10687         * src/SDCCmain.c: new option -o
10688         * src/asm.c: new option -o
10689         * src/ds390/main.c: new option -o
10690         * src/pic/glue.c: new option -o
10691         * src/pic/pcode.c: new option -o
10692         * src/pic/ralloc.c: new option -o
10693         * src/pic16/glue.c: new option -o
10694         * src/pic16/pcode.c: new option -o
10695         * src/pic16/ralloc.c: new option -o
10696         * src/z80/main.c: new option -o
10697         * device/lib/Makefile.in: use -o
10698         * support/regression/ports/ds390/spec.mk: use -o
10699         * support/regression/ports/gbz80/spec.mk: use -o
10700         * support/regression/ports/mcs51/spec.mk: use -o
10701         * support/regression/ports/mcs51-stack-auto/spec.mk: use -o
10702         * support/regression/ports/z80/spec.mk: use -o
10703         * support/regression/ports/ucz80/spec.mk: use -o
10704         * support/regression/ports/xa51/spec.mk: use -o
10705         * support/regression/fwk/lib/timeout.c: fix usage string
10706
10707 2003-01-09  Bernhard Held <bernhard AT bernhardheld.de>
10708         * src/mcs51/gen.c (genPlus): replaced "mov b,acc" by "mov b,a" Fiorenzo D. Ramaglia <fd.ramaglia AT tin.it>
10709
10710 2003-01-07    <johan AT balder>
10711
10712         * src/SDCCast.c (decorateType): fixed bug #600035
10713
10714 2003-01-07  Bernhard Held <bernhard AT bernhardheld.de>
10715         * as/mcs51/lkmem.c: added several l-modifiers to printf to remove warnings
10716         * as/mcs51/lkaomf51.c: #include <ctype.h> to remove warnings
10717         * src/pic/main.c (_hasNativeMulFor): outcommented unused variables to remove warnings
10718         * src/pic/pcode.c: outcommented unused variable to remove warnings
10719         * src/pic/ralloc.c: outcommented unused variable to remove warnings
10720
10721 2003-01-06    <karl AT turbobit.com>
10722         * sim/ucsim/cmd.src/command.cc: fixed so "break xram r 0x7654" works again in
10723    regression tests.
10724
10725 2003-01-06    <johan AT balder>
10726
10727         * src/SDCCicode.c: fixed array add
10728
10729 2002-01-05  Bernhard Held <bernhard AT bernhardheld.de>
10730         * src/SDCCmacro.c: MAX_STRING_LENGTH increased to 2048; was too small for regression tests
10731         * support/regression/ports/host/support.c: #include <stdarg.h> for gcc 3.2
10732
10733 2003-01-04    <johan AT balder>
10734
10735         * src/SDCCval.c (getNelements): fixed the initialized array of structures
10736
10737 2002-12-29  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
10738         * as/mcs51/Makefile.bcc: fixed typo lkomf51.o -> lkaomf51.o
10739
10740 2002-12-28  Bernhard Held <bernhard AT bernhardheld.de>
10741         * src/mcs51/peeph.def: added rules 234 and 235 from Frieder Ferlemann <frieder.ferlemann AT web.de>
10742         * support/regression/tests/bug-524697.c: fit mem usage into 8032
10743
10744 2002-12-28  Bernhard Held <bernhard AT bernhardheld.de>
10745         * src/mcs51/gen.c (aopGetUsesAcc): inserted missing "return FALSE"
10746
10747 2002-12-27  Bernhard Held <bernhard AT bernhardheld.de>
10748         * as/mcs51/Makefile.in: fixed typo lkomf51.o -> lkaomf51.o
10749
10750 2002-12-26  Bernhard Held <bernhard AT bernhardheld.de>
10751         * src/mcs51/main.c: removed {bindir}{sep} from aslink
10752
10753 2002-12-10  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
10754
10755     * in \sdcc\as\mcs51\ changed these files in order to create an
10756     aomf51 file: aslink.h, lkdta.c, lklex.c, lklibr.c, lklist.c,
10757     lkmain.c.  Also added: lkmem.c and lkaomf51.c.  Changed the
10758     following files to include the previous two files: aslink.dsp,
10759     Makefile.aslink, Makefile.bcc, and Makefile.in.
10760
10761     * Changed \sdcc\src\SDCCmain.c so it creates files with extension
10762     .adb instead of .cdb
10763
10764 2002-11-09  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
10765
10766         * \sdcc\as\mcs51\lklist.c: Now reports memory usage using the
10767         value from option --iram-size.
10768
10769 2002-09-20  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
10770
10771         * \sdcc\as\mcs51\lklist.c: added boundary check before using
10772         dram[] array.
10773
10774 2002-09-18    <wiml AT hhhh.org>
10775
10776         * SDCClrange.h: exposed setFromRange() and setToRange()
10777         * mcs51/ralloc.c: fixed over-eager packRegsForSupport() and
10778           packRegsForAccUse() (bug 542397)
10779         * mcs51/gen.c: MOVA() is now a function to avoid calling aopGet()
10780           multiple times and emitting the fetch operations more than once
10781           added aopGetUsesAcc() function to allow binary operators to
10782           fetch their operands in the correct order; made genMinus() emit
10783           compact code for X = LITERAL - Y
10784
10785 2002-09-00  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
10786         * \sdcc\as\mcs51\lklist.c: Fixed incorrect number of parameters to
10787         sprintf() in line 1267.
10788
10789 2002-09-08  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
10790         * \sdcc\src\SDCCglue.c: Generate areas REG_BANK_[0-3] only for 8051
10791         like ports.
10792
10793 2002-09-04  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
10794         Changes to aslink (All the changes are marked with 'JCF'):
10795
10796         * \sdcc\as\mcs51\aslink.h: External definition of sflag and
10797         summary().
10798
10799         * \sdcc\as\mcs51\lkarea.c: Computes the size of area BSEG_BYTES from
10800         area BSEG.  Also moves, if possible, the DATA area down into the internal
10801         ram so more space is available.
10802
10803         * \sdcc\as\mcs51\lkdata.c: Definition of memory summary output flag
10804         sflag.
10805
10806         * \sdcc\as\mcs51\lklist.c: For the BSEG area report the size in bits,
10807         not bytes.  Function summary() which creates a memory usage summary
10808         file with extension .mem.  Reports of overlaping stack and small stack
10809         size.  If the space for the stack is less than 16 bytes aslink trows a
10810         warning.
10811
10812         * \sdcc\as\mcs51\lkmain.c: Creation of some of the default areas for
10813         the 8051.  Option 'y' for memory summary output file.
10814
10815         Changes to sdcc (All the changes are marked with 'JCF'):
10816
10817         * \sdcc\src\SDCCglobl.h: External definition of RegBankUsed[4].
10818
10819         * \sdcc\src\SDCCglue.c:  If a register bank is used, creates an
10820         overlaying area for it (uses RegBankUsed[4]).
10821
10822         * \sdcc\src\SDCCmain.c: Definition RegBankUsed[4]; marks register
10823         bank zero as used by default.  By default aslink locates the stack
10824         (equivalent to --stack-after-data).  Pass option 'y' to aslink for
10825         the creation of the .mem file.  Delegates the allocation of data area
10826         to aslink (it is not longer 0x30 by default).  If --stack-loc passes
10827         the begining of the stack area to aslink.
10828
10829         * \sdcc\src\SDCCmem.c:  If a register bank is used, marks it so
10830         glue() in SDCCglue.c creates an area for it.
10831
10832 2002-09-03  Borut Razem <borut.razem AT siol.net>
10833         * sdcc/src/SDCCglue.c, sdcc/src/SDCCglue.h, sdcc/src/SDCCmain.c,
10834         sdcc/src/pic/glue.c:
10835         introduced atexit() handler for teporay files removal in case of
10836         errors, assertions, ...
10837
10838 2002-08-29  Borut Razem <borut.razem AT siol.net>
10839         * sdcc/support/cpp2/auto-host_vc_in.h:
10840         re-definition of O_BINARY and other O_XXX as _O_BINARY and _O_XXX, so the problem
10841         with the returned value from read() in sdcc/support/cpp2/cppfiles.c is solved for MSC.
10842         Maybe there is a similar problem with BORLANDC? It should be checked!
10843
10844         * sdcc/src/ds390/ralloc.c, sdcc/src/mcs51/ralloc.c, sdcc/src/z80/ralloc.c:
10845         corrected improper use of assert: the assignment to clr variable was done inside the assert.
10846         In case that NDEBUG was defined, the assert macro was substituted with no-op, so the assignment
10847         was not executed, and the compiler (cl) launched a warning:
10848         ralloc.c(1442) : warning C4700: local variable 'clr' used without having been initialized
10849
10850 2002-08-28  Bernhard Held <bernhard AT bernhardheld.de>
10851         * src/SDCCglue.c (printIvalArray): iterative calculation of array length
10852
10853 2002-08-28  Jesus Calvino-Fraga and Borut Razem <borut.razem AT siol.net>
10854         * sdcc/sdcc.dsw: added sdcpp, sdcppa, yacc, conf projects
10855
10856         * sdcc/src/src.dsp, sdcc/src/avr/avr.dsp, sdcc/src/ds390/ds390.dsp,
10857           sdcc/src/mcs51/mcs51.dsp, sdcc/src/pic/pic.dsp, sdcc/src/z80/z80.dsp,
10858           sdcc/src/xa51/xa51.dsp, sdcc/src/avr/avra.dsp,
10859           sdcc/src/ds390/ds390a.dsp, sdcc/src/mcs51/mcs51a.dsp,
10860           sdcc/src/pic/pica.dsp, sdcc/src/z80/z80a.dsp,
10861           sdcc/src/xa51/xa51a.dsp, sdcc/as/as_z80.dsp,
10862           sdcc/as/aslink.dsp, sdcc/as/asx8051.dsp, sdcc/packihx/packihx.dsp:
10863         - added Release configuration in VS projects
10864         - review of compiler an linker options
10865         - VC .exe files are generated in bin_vc directory, not to interfere
10866           with binaries generated from other projects (cygwin, mingw, bcc ...)
10867
10868         * sdcc/src/yacc.dsp: added
10869
10870         * sdcc/config.dsp, sdcc/configure_vc.awk, sdcc/sdcc_vc_in.h:
10871         added - genarate sdcc_vc.h using sdcc_vc_in.h as template
10872         and insert the version number definitions from .version
10873
10874         * sdcc/support/cpp2/sdcpp.dsp: added - VC project for sdcpp
10875
10876         * sdcc/support/cpp2/sdcppa.dsp, sdcc/support/cpp2/auto-host_vc_in.h:
10877         added - genarate auto-host.h using auto-host_vc_in.h as template
10878
10879         * sdcc/sdcc_vc.h,
10880         removed from CVS, generated automatically
10881
10882 2002-08-25  Bernhard Held <bernhard AT bernhardheld.de>
10883         * support/scripts/inc2h.pl: use gputils or gpasm (from Nathan Hurst)
10884
10885 2002-08-11  Borut Razem <borut.razem AT siol.net>
10886         * support/Util/NewAlloc.c: removed unneeded #include "sdccconf.h" (suggested by Jesus Calvino-Fraga)
10887
10888 2002-08-10  Borut Razem <borut.razem AT siol.net>
10889         * src/SDCCmain.c (main):
10890         file preOutName was unlinked before closed. This seems to be OK on UNIX and cygwin
10891         platforms, but it doesn't work with Visual Studio: the opened file can not be removed.
10892         The consequence was that some temporary files were not removed.
10893
10894         * src/SDCCglue.c:
10895         unification of code in functions tempfilename() and tempfile():
10896         function tempnam() is defined in Visual Studio 6.0 and .NET
10897
10898         * sdcc/sdcc.dsw: removed project sdcpp, added project xa51a
10899
10900         * sdcc/src/src.dsp, sdcc/src/avr/avr.dsp, sdcc/src/ds390/ds390.dsp,
10901           sdcc/src/mcs51/mcs51.dsp, sdcc/src/pic/pic.dsp, sdcc/src/z80/z80.dsp:
10902         - removed compiler command line option /WX: Treats all warnings as errors
10903         - update a list of source files, included into the project
10904
10905         * sdcc/src/avr/avra.dsp, sdcc/src/ds390/ds390a.dsp, sdcc/src/mcs51/mcs51a.dsp,
10906           sdcc/src/pic/pica.dsp, sdcc/src/z80/z80a.dsp:
10907         changed project type to Generic Project so that can be correcly converted to VS.NET project
10908
10909         * sdcc/as/mcs51/asm.h: definition of PATH_MAX for MSC
10910
10911         * sdcc/src/SDCCast.c: solved MSC error in function decorateType()
10912
10913         * sdcc/src/SDCC.y: added missing ending ';' to rules to get rid of bison warnings
10914
10915         * dcc/src/ds390/ralloc.c, sdcc/src/mcs51/ralloc.c:
10916         added return 0 statements after assert() to make compiler happy
10917
10918         * sdcc/src/xa51/peeph.rul, sdcc/src/xa51/peeph.def, sdcc/src/z80/ralloc.c:
10919         added newline in the def file to keep MSC compiler satisfied
10920
10921         * sdcc/src/z80/gen.c:
10922         - function strcasecmp() is not defined in MSC (and probably also in BORLANDC),
10923           so it is replaced with STRCASECMP, which is defined as stricmp in case of MSC and BORLANDC
10924         - solved MSC error in function aopDump()
10925
10926         * sdcc_vc.h: define PREFIX as "\\sdcc"
10927
10928 2002-07-18  Bernhard Held <bernhard AT bernhardheld.de>
10929         * src/SDCCast.c (decorateType): fixed access to array of structures http://sourceforge.net/mailarchive/forum.php?thread_id=902690&forum_id=4107
10930
10931 2002-06-22  Scott Dattalo <scott AT dattalo.com>
10932         * src/pic/*: Numerous bug fixes. Flow analysis has been enhanced.
10933         - Rewrote the register banking algorithm.
10934         - Added pCode live-range analysis to registers (for now, only non-used and
10935         singly-used registers optimized away)
10936
10937         * src/pic/pcoderegs.[ch]: Added new files for pCode live-range analysis
10938
10939         * 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.
10940
10941 2002-05-10  Scott Dattalo <scott AT dattalo.com>
10942         * src/pic/*: Added support for multiplication. Fixed many,many bugs.
10943
10944 2002-04-22  Michael Hope  <michaelh AT vroom>
10945
10946         * device/lib/z80/printf.c: Changed emitter to volatile to work around a pcall bug.
10947
10948         * configure.in (DD_COPT): Added include support required for gbdk.
10949
10950         * .version: Bumped version number just to increase it.
10951
10952         * src/SDCCmain.c: Added -nostdinc to the default options.
10953
10954 2002-04-15  Michael Hope  <michaelh AT vroom>
10955
10956         * device/lib/z80/printf.c (sprintf): Added.
10957
10958         * src/z80/ralloc.c (packRegisters): Disabled pack HL use for GB as it's broken.
10959
10960         * src/z80/peeph.def: Added transpose redundent load rule.
10961
10962         * src/z80/main.c: Added force callee saves for jaune.
10963
10964         * src/port.h: Removed the i186 and tlcs-900h ports as they weren't being being developed.
10965
10966         * src/SDCCmain.c: Pulled the options definition out so that you can add port specific options without changing the main file.
10967
10968 2002-03-28  Johan Knol  <johan AT balder>
10969
10970         * src/SDCCval.c: fixed bug #532436
10971
10972 2002-03-14  Scott Dattalo <scott AT dattalo.com>
10973         * /src/port.h:
10974         Added "char *Processor" field to the port structure.
10975
10976         * /src/SDCCmain.c:
10977         Added -p option. Allows port dependent processor to be specified.
10978
10979         * all ports:
10980         Initialized the new field char *Processor field to NULL in all ports
10981
10982         * /src/pic/*:
10983         Compiler generated registers for interrupt context saving
10984         were not getting allocated.
10985
10986 2002-03-16  Sandeep Dutta  <sandeep AT ddi.com>
10987
10988         * /src/SDCCast.c:
10989         Fixed left shift. Will promote the left side of a left shift
10990         if a) left shifting more than size of operand or b) when assigned
10991         to something size > size of left side
10992
10993 2002-03-14  Scott Dattalo <scott AT dattalo.com>
10994         * src/pic/*
10995         tons of changes. Register allocation has been
10996         rewritten. Added customization for the various PICs. Flow
10997         analysis is restructured. ...
10998
10999         * src/pic/device.h:
11000         Added
11001
11002         * src/pic/device.c:
11003         Added. device.c is a PIC port hack to accomodate variations
11004         in PIC devices.
11005
11006 2002-03-13  Michael Hope  <michaelh AT vroom>
11007
11008         * src/z80/gen.c (genGenPointerGet): Fixed a bug where a pointer in HL is dereferenced into HL but HL is not spilled.  Yeah.
11009
11010 2002-03-04  johanknol  <johanknol AT manik>
11011
11012         * /src/SDCCval.c: fixed
11013
11014         const unsigned char arr[][2] = { { 0, 1 } };
11015         t18.c:1: error: Initializer element is not constant
11016
11017 2002-03-04  bela  <bela AT manik>
11018
11019         * /device/include/mcs51reg.h:
11020         ds89c420 register definition update
11021
11022 2002-03-03    <johan AT FRIJA>
11023
11024         * support/Util/SDCCerr.c: did something, but don't no why anymore
11025
11026         * support/regression/tests/bug-524691.c: made it a little less shy
11027
11028         * src/SDCCast.c (decorateType): fixed bug #524697
11029
11030         * src/SDCCast.c: made some lineno improvements
11031
11032         * src/SDCCval.c (getNelements): changed warning to error
11033
11034         * src/SDCCglue.c (printIvalArray): changed warning to error
11035
11036         * src/SDCCicode.c: fixed a warning for mingw
11037
11038         * src/SDCCast.c (decorateType): fixed the << promotion for ops
11039
11040         * src/SDCCicode.c (geniCodeDivision): divide is shift only for unsigned (bug #524685)
11041
11042 2002-03-02  Sandeep Dutta  <sandeep AT ddi.com>
11043
11044         * src/ds390/peeph.def:
11045         Added some more peephole rules
11046
11047         * src/ds390/gen.c: Various fixes & enhancements
11048
11049         * src/SDCClrange.c, src/SDCClrange.h:
11050         functions "alldefsoutofrange" and "notusedinblock" moved to SDCClrange.c
11051
11052         * src/ds390/ralloc.c:
11053         various fixes & enhancements (ds390) specific
11054
11055         * src/avr/ralloc.c, src/mcs51/ralloc.c, src/pic/ralloc.c, src/xa51/ralloc.c, src/z80/ralloc.c:
11056         Functions "allDefsOutOfRange" & "notUsedinBlock" moved to SDCClrange.c
11057         from rallocs.
11058
11059         * sdcc/src/SDCCcse.c: Better fix for bug # 514308
11060
11061 2002-03-02    <johan AT FRIJA>
11062
11063         * src/SDCCast.c (decorateType): fixed bug #524708
11064
11065         * src/SDCCval.c (floatFromVal): fixed the literal void (whatever that may be)
11066
11067         * src/SDCCicode.c (geniCodePtrPtrSubtract): fixed bug #524691
11068
11069 2002-03-01  Michael Hope  <michaelh AT vroom>
11070
11071         * src/SDCCsymt.c (initCSupport): Removed managling of support function names.
11072
11073         * src/z80/ralloc.c (packRegsForIYUse): Fixed fp bug where four byte operands were packed into IY.
11074
11075 2002-03-01    <johan AT FRIJA>
11076
11077         * src/SDCCglue.c (printIvalPtr): fixed bug #524211
11078
11079         * src/SDCCast.c (decorateType): fixed bug #524209
11080
11081         * src/SDCCval.c (valNot): fixed bug #524195
11082
11083 2002-02-26    <johan AT balder>
11084
11085         * src/xa51/gen.c: fixed a warning
11086
11087         * src/SDCCglue.c (printIvalFuncPtr): fixed bug #522534
11088
11089         * src/SDCCast.c (decorateType): fixed bug #522534
11090
11091 2002-02-23    <johan AT balder>
11092
11093         * src/SDCCdflow.c (computeDataFlow): fixed bug #460088
11094
11095 2002-02-22    <johan AT balder>
11096
11097         * src/SDCCast.c: fixed bug #514865
11098
11099         * src/SDCCy.c ("SDCC.y"): fixed bug #516625
11100
11101 2002-02-21  Sandeep Dutta  <sandeep AT ddi.com>
11102
11103         * sdcc/src/SDCCloop.c:
11104         Previous fix was not good. basic blocks that have "break" or "return" are
11105         not really partof a loop , but live ranges used in these blocks should
11106         be live thru the entire loop, so set partOfLoop but don't add them to
11107         loop region
11108
11109 2002-02-21    <johan AT FRIJA>
11110
11111         * src/SDCCcse.c: fixed bug #514308
11112
11113 2002-02-20  Sandeep Dutta  <sandeep AT ddi.com>
11114
11115         * src/SDCCloop.c:
11116         Fixed BUG #519583. If a conditional block ended in a return/break
11117         statement inside a loop, it was not being considered part of the loop.
11118
11119         * src/SDCCcflow.c: Removed fix (Fixed in SDCCloop.c)
11120
11121 2002-02-10  Karl Bongers <karl AT turbobit.com>
11122
11123         * debugger/*:
11124         Fixed up SDCDB debugger somewhat.  Updated debugger/README
11125         with lots of comments and notes.
11126
11127         * device/examples/test2.c:
11128         Fix bug, "red" variable not being initialized(compiler complained).
11129
11130         * device/examples/Makefile, examples/test3.c:
11131         Add Makefile in device/examples folder, compiles test3.c
11132         for use as a multiple module SDCDB test case.
11133
11134         * sim/ucsim/cmd.src/cmdset.cc:
11135         Took out debug printfs in ucsim "next" command.
11136
11137         * sim/ucsim/xa.src:
11138         Karl and Johan start ucsim XA support.  Most dissassembly working,
11139         about 75% emulation done(plenty of work remaining).
11140
11141         * sim/ucsim/z80.src:
11142         Add Z80 support to ucsim, add test-ucz80 regression test,
11143         notice ucsim/z80 emulation fails on examples/test3.c/itoa code.
11144         Notice z80 compiler fails on examples/test3.c/crc code.
11145
11146 2002-01-30  Sandeep Dutta  <sandeep AT ddi.com>
11147
11148         * src/mcs51/gen.c, src/mcs51/main.c, src/mcs51/ralloc.c:
11149         Added support for --parms-in-bank1
11150
11151         * src/ds390/peeph.def:
11152         added a few more peephole optimzations
11153
11154         * src/ds390/main.c:
11155         1) added __builtin_inp & __builtin_outp used to read in data of given length
11156            from a memory mapped port
11157         2) added __builtin_memcmp
11158         3) added __builtin_swapw swap bytes of a short
11159
11160         * src/ds390/gen.c, src/ds390/gen.h, src/ds390/ralloc.c:
11161         1) handle multiple send & receives from register bank1
11162         2) ralloc can now allocate DPTR1 to some liveRanges
11163
11164         * src/SDCCsymt.c, src/SDCCsymt.h:
11165         changes to handle multiple sends & receives
11166
11167         * src/SDCCptropt.h:
11168         added some pointer arithmetic optimization
11169
11170         * src/SDCCptropt.c:
11171         added some pointer arithmetic optimizations but not stable yet so not
11172         called from anywhere (will get this working shortly)
11173
11174         * src/SDCCopt.c: fixed for multiple sends & receives
11175
11176         * src/SDCCmain.c:
11177         1) added options --parms-in-bank1 (ds390/mcs51) & --protect-sp-update
11178         2) preprocessing done AFTER port->finalizeoptions . This allows ports to
11179            set preprocessor defines (depending on options)
11180
11181         * src/SDCCicode.c, src/SDCCicode.h:
11182         changes made to handle multiple sends & receives
11183
11184         * src/SDCCglobl.h:
11185         Added options --protect-sp-update (ds390) and --parms-in-bank1 (ds390/mcs51)
11186
11187         * src/SDCCcse.c, src/SDCCcse.h:
11188         added function findbackward def (to be used in upcoming optimization)
11189
11190         * src/SDCCcflow.c, src/SDCCcflow.h:
11191         added function returnAtEnd - to determine if a basic block terminates with
11192         a RETURN iCode
11193
11194         * src/SDCCast.c, src/SDCCast.h:
11195         added option parms-in-bank1
11196
11197         * device/lib/_divsint.c, device/lib/_divslong.c, device/lib/_divuint.c
11198         * device/lib/_divulong.c, device/lib/_modsint.c, device/lib/_modslong.c
11199         * device/lib/_modulong.c, device/lib/_mulint.c, device/lib/_mullong.c:
11200         adjusted for --parms-in-bank1 option
11201
11202         * device/include/string.h:
11203         donot redefine "reentrant" keyword
11204
11205         * device/include/ds80c390.h: Added some more SFRs
11206
11207 2002-01-28  Bernhard Held  <bernhard AT bernhardheld.de>
11208
11209         * sim/ucsim: Merged branch ucsim-034-pre3 to main trunk; new version 0.4
11210
11211 2002-01-26  Bernhard Held  <bernhard AT bernhardheld.de>
11212
11213         * src/SDCCast.c (funcOfType): fix usage of double --float-reent
11214
11215 2002-01-22  Bernhard Held  <bernhard AT bernhardheld.de>
11216
11217         * support/regression/fwk/lib/testfwk.c (main): Removed workaround for bug #505387
11218
11219 2002-01-18  Paul Stoffregen  <paul AT pjrc.com>
11220
11221         * Added --xram-movc option
11222
11223 2002-01-13  Bernhard Held  <bernhard AT bernhardheld.de>
11224
11225         * support/regression/Makefile: don't include test-mcs51-stack-auto in target all
11226
11227 2002-01-11  Johan Knol
11228
11229         * Added math lib of Jesus Calvino-Fraga
11230
11231 2002-01-08  Bernhard Held  <bernhard AT bernhardheld.de>
11232
11233         * src/SDCCmain.c (processFile): fix processing of ../../src.c
11234         * support/regression/Makefile: new target test-mcs51-stack-auto
11235         * support/regression/ports/mcs51-stack-auto/spec.mk: added
11236
11237 2002-01-04  Bernhard Held  <bernhard AT bernhardheld.de>
11238
11239         * src/SDCCglue.h: printIvalCharPtr(), not printIvalChar()
11240
11241 2002-01-04  Bernhard Held  <bernhard AT bernhardheld.de>
11242
11243         * support/regression/ports/mcs51/support.c: correct setup of timer / UART
11244
11245 2002-01-03  Bernhard Held  <bernhard AT bernhardheld.de>
11246
11247         * src/SDCCsymt.c (processFuncArgs): fix #498307 by Johan
11248
11249         * src/SDCCglue.h: add definition for printIvalChar()
11250
11251 2002-01-02  Bernhard Held  <bernhard AT bernhardheld.de>
11252
11253         * src/SDCCast.c: fix #498138 by Johan
11254
11255         * src/SDCCglue.c: fix #498138 by Johan
11256
11257 2002-01-02  Bernhard Held  <bernhard AT bernhardheld.de>
11258
11259         * support/regression/Makefile: fix clean
11260
11261         * support/regression/ports/ds390/support.c: fix transmission of last character
11262
11263 2001-12-29  Sandeep Dutta  <sandeep AT ddi.com>
11264
11265         * /sdcc/src/ds390/gen.c:
11266         a) improved computing address of stack variable
11267         b) took out some #if 0 code
11268         c) improved parmBytes adjustment
11269         d) improved genPlusIncr & genMinusIncr
11270         e) genCmp could generate bad code (when left assigned to DPTR)
11271         f) Fixed bug in hasInc
11272
11273         * /sdcc/src/ds390/ralloc.c:
11274         a) packRegsForSupport could mess up live information (Fixed)
11275         b) packRegsDPTRuse could be incorrect for left & right shift
11276
11277         * /sdcc/src/mcs51/ralloc.c:
11278         packRegsForSupport could mess up the live information (Fixed)
11279
11280         * /sdcc/src/mcs51/gen.c: Fixed a bug in hasInc
11281
11282         * /sdcc/src/SDCCast.c:
11283         can reverse a loop even if function call is present as long
11284         as the loop control variable is local & is not passed as parameter
11285
11286 2001-12-24  Sandeep Dutta  <sandeep AT ddi.com>
11287
11288         * /sdcc/ChangeLog: *** empty log message ***
11289
11290         * /sdcc/src/ds390/gen.c, /sdcc/src/ds390/main.c:
11291         More builtin function additions for TININative
11292
11293         * /sdcc/src/ds390/ralloc.c:
11294         Had broken the regression testsuite
11295
11296         * /sdcc/src/SDCCast.c: Fixed a bug in dumptree
11297
11298         * /sdcc/src/SDCCsymt.c, /sdcc/src/SDCCsymt.h:
11299         Added funcattr hasStackParms will be set for reentrant functions when there
11300         are paramteres on the stack, this helps in minimizing frame pointer generation
11301         typeFromStr can handle function pointers now
11302
11303         * /sdcc/doc/builtins.txt, /sdcc/doc/TININative.txt:
11304         *** empty log message ***
11305
11306 2001-12-24  Sandeep Dutta  <sandeep AT ddi.com>
11307
11308         * /src/ds390/gen.c, /src/ds390/main.c:
11309         More builtin function additions for TININative
11310
11311         * /src/ds390/ralloc.c:
11312         Had broken the regression testsuite
11313
11314         * /src/SDCCast.c: Fixed a bug in dumptree
11315
11316         * /src/SDCCsymt.c, /src/SDCCsymt.h:
11317         Added funcattr hasStackParms will be set for reentrant functions when there
11318         are paramteres on the stack, this helps in minimizing frame pointer generation
11319         typeFromStr can handle function pointers now
11320
11321         * /doc/builtins.txt, /doc/TININative.txt:
11322         *** empty log message ***
11323
11324
11325 2001-12-24  Sandeep Dutta  <sandeep AT ddi.com>
11326
11327         * /src/ds390/gen.c, /src/ds390/main.c, /src/ds390/peeph.def, /src/ds390/ralloc.c:
11328         ALPHA version for -mTININative
11329
11330         * /src/izt/i186.c, /src/izt/tlcs900h.c, /src/mcs51/main.c, /src/pic/main.c, /src/z80/main.c, /src/avr/main.c:
11331         updated to reflect changes in the port structure
11332
11333         * /src/port.h:
11334         added function do_assemble (similar to do_link) if non-null this function
11335         will be called to do assembly (-mTININative) requires a multi command
11336         assembly
11337         added function genAssemblerEnd will be called to generate assembler Epilogue
11338
11339         * /src/SDCCsymt.c:
11340         added _JavaNative to debug info printing
11341
11342         * /src/SDCCmain.c: added option --tini-libid
11343         added port->do_assemble function (-mTININative) has a multi command assemble
11344
11345         * /src/SDCCglue.c: Disabled "constExpr" check
11346         added port->genAssemblerEnd function
11347
11348         * /src/SDCCglobl.h: Added option --tini-libid value
11349
11350         * /src/SDCCast.h:
11351         tookout optimizeCompare from the header (has no external references)
11352
11353         * /src/SDCCast.c: made one more function "static"
11354
11355 2001-12-23  Michael Hope  <michaelh AT juju.net.nz>
11356
11357         * src/z80/mappings.i: Added z80asm support.
11358
11359         * src/z80/main.c: Added z80asm support on --asm=z80asm
11360
11361         * src/z80/gen.c: Fixed asm portability issues.
11362
11363         * src/asm.c (tvsprintf): Removed old code, added 'N' for function name.  For extern support.
11364
11365         * src/SDCCglue.c (printExterns): Added global/extern split.
11366
11367 2001-12-17  Bernhard Held  <bernhard AT bernhardheld.de>
11368
11369         * support/regression/Makefile: added test for mcs51 model large
11370
11371         * support/regression/ports/mcs51-large/spec.mk: added test for mcs51 model large
11372
11373         * support/regression/ports/gbz80/spec.mk: added -mgbz80
11374
11375 2001-12-05  Michael Hope  <michaelh AT juju.net.nz>
11376
11377         * src/diff.1 (Index): Many, many optmisiations.  Dhrystone up to 201.
11378
11379 1904-01-06  Michael Hope  <michaelh AT juju.net.nz>
11380
11381         * src/z80/ralloc.c (packRegsForIYUse): Fixed the case where an operand is in direct space.
11382
11383         * src/z80/gen.c (makeFreePairId): Optimised IY load by using a spare pair.
11384
11385 2001-12-02  Bernhard Held  <bernhard AT bernhardheld.de>
11386
11387         * src/mcs51/gen.c (genFunction): avoid excess "inc sp"
11388
11389         * support/regression/tests/simplefloat.c: Port to mcs51.
11390
11391 2001-11-25  Michael Hope  <michaelh AT juju.net.nz>
11392         * support/regression/tests/bug-485362.c: Added.
11393
11394         * support/regression/tests/simplefloat.c (testDivNearOne): Added.
11395
11396         * src/z80/gen.c (aopOp): Fixed case where left and result are in the same spill loc and they have different sizes.
11397
11398         * src/z80/peeph.def: Added rules for optimising two byte compares on the same thing, and to optimise two ptr assign.
11399
11400         * src/z80/gen.c (aopDump): Added a dump function.
11401
11402 2001-11-25  Bernhard Held  <bernhard AT bernhardheld.de>
11403         * sim/ucsim/s51.src/glob.cc: DS390 SFRs and bits added.
11404
11405         * sim/ucsim/s51.src/port.cc: Port 4 and 5 added.
11406
11407         * sim/ucsim/s51.src/regs51.h: DS390 SFRs added.
11408
11409         * sim/ucsim/s51.src/uc390.cc: Some details improved, CKRDY works for tinibios.
11410
11411         * sim/ucsim/s51.src/uc390cl.h: Work in progress.
11412
11413         * sim/ucsim/sim.src/uccl.h: 6 ports for DS390.
11414
11415         * support/regression/fwk/lib/testfwk.c: Run with tinibios.
11416
11417         * support/regression/ports/mcs51/spec.mk: Fine tuninig.
11418
11419         * support/regression/ports/ds390/support.c: Use tinibios.
11420
11421         * support/regression/ports/ds390/spec.mk: Fine tuning, use tinibios.
11422
11423 2001-11-23  Michael Hope  <michaelh AT juju.net.nz>support/regression/tests/bug-460010.c
11424
11425         * src/z80/ralloc.c (packRegsForHLUse3): Changed to not pack into HL if anything is in direct space.
11426         (packRegsForHLUse3): Added packing support for send, cast, and return value from a call.
11427
11428         * src/z80/peeph.def: Added rules for optimising pushes of part of a pair.
11429
11430         * src/z80/gen.c (emitCall): Changed the stack fixup to not use HL.
11431
11432 2001-11-18  Michael Hope  <michaelh AT juju.net.nz>
11433
11434         * src/z80/gen.c (genCmp): Fixed compare on unsigned.
11435
11436         * src/z80/ralloc.c (packRegsForHLUse3): Created and optimised.
11437         (packRegsForIYUse): Created and optimised.
11438
11439 2001-11-07  Michael Hope  <michaelh AT juju.net.nz>
11440
11441         * support/regression/tests/float.c (testFloatAdd): Fixed up warning.
11442 2001-11-18  Bernhard Held  <bernhard AT bernhardheld.de>
11443
11444         * sdcc/support/regression/tests/bug-460010.c: fix seg violation on host
11445
11446         * sdcc/support/regression/tests/muldiv.c: fix output on mcs51
11447
11448         * sdcc/support/regression/tests/stacks.c: fix DSEG overflow on mcs51
11449
11450 2001-11-07  Bernhard Held  <bernhard AT bernhardheld.de>
11451
11452         * sdcc/sim/device/lib/_gptrget.c: mem region 5 (idata) added
11453
11454         * sdcc/sim/device/lib/_gptrput.c: mem region 5 (idata) added
11455
11456 2001-11-07  Bernhard Held  <bernhard AT bernhardheld.de>
11457
11458         * sdcc/sim/ucsim/globals.cc: New: IXRAM.
11459
11460         * sdcc/sim/ucsim/stypes.h: New: IXRAM.
11461
11462         * sdcc/sim/ucsim/s51.src/uc390.cc: New: IXRAM.
11463
11464 2001-11-07  Michael Hope  <michaelh AT juju.net.nz>
11465
11466         * src/z80/ralloc.c (packRegsForHLUse): Banned IFXs from being packed into HL.
11467         (packRegsForHLUse): Added rule to pack address of/pointer get for itemps into HL for the Z80.
11468         (packRegsForAccUse2): Added rule to pack hbit IFXs into A.
11469
11470         * src/z80/main.c (_setDefaultOptions): Made float code re-entrant by default.
11471
11472         * src/z80/gen.c (aopGetLitWordLong): Added word support for floats.
11473         (genNotFloat): Added.
11474         (genUminusFloat): Added.
11475
11476         * device/lib/z80/Makefile: Added floating pt stubs.
11477
11478         * device/lib/Makefile.in (Z80SOURCES): Added floating pt support.
11479
11480         * src/z80/gen.c (genIpush): Fixed up a push of one byte when left is in a pair.
11481
11482         * device/lib/_fsadd.c (__fsadd): Fixed up return where the numbers are hugely different.
11483
11484 2001-11-07  Bernhard Held  <bernhard AT bernhardheld.de>
11485
11486         * sdcc/sim/ucsim/s51.src/glob.cc: Minor fix.
11487
11488         * sdcc/sim/ucsim/s51.src/regs51.h: Minor fix.
11489
11490         * sdcc/support/regression/Makefile: Add port ds390.
11491
11492         * sdcc/support/regression/ports/mcs51/spec.mk: Minor change.
11493
11494         * sdcc/support/regression/ports/z80/spec.mk: Minor change.
11495
11496         * sdcc/support/regression/ports/ds390/spec.mk: Added.
11497
11498         * sdcc/support/regression/ports/ds390/support.c: Added.
11499
11500         * sdcc/support/regression/ports/ds390/uCsim.cmd: Added.
11501
11502         * sdcc/support/regression/ports/mcs51/timeout.c: Cut.
11503
11504         * sdcc/support/regression/fwk/lib/timeout.c: Paste.
11505
11506 2001-11-04  Michael Hope  <michaelh AT juju.net.nz>
11507
11508         * device/include/malloc.h: Added z80 and gbz80 support.
11509
11510         * device/lib/gbz80/heap.s: Added.
11511
11512         * device/lib/z80/heap.s: Added.
11513
11514         * device/lib/malloc.c: Added z80 and gbz80 support.
11515
11516         * support/regression/tests/malloc.c (testMalloc): Added.
11517
11518         * src/SDCCmain.c (parseCmdLine): Added support for -Wp.
11519
11520         * support/regression/tests/bug-478094.c: Added.
11521
11522         * src/z80/gen.c (commitPair): Fixed silly gbz80/z80 commit to static bug.
11523
11524 2001-11-04  Bernhard Held  <bernhard AT bernhardheld.de>
11525
11526         * sdcc/sim/ucsim/s51.src/uc390cl.h: Improvement for ds390 to run regression tests
11527
11528         * sdcc/sim/ucsim/s51.src/uc390.h: Improvement for ds390 to run regression tests
11529
11530         * sdcc/sim/ucsim/s51.src/regs51.h: Improvement for ds390 to run regression tests
11531
11532         * sdcc/sim/ucsim/s51.src/glob.cc: Improvement for ds390 to run regression tests
11533
11534         * sdcc/support/regression/tests/bug-460010.c: Small change for ds390
11535
11536 2001-11-04  Michael Hope  <michaelh AT juju.net.nz>
11537
11538         * src/z80/peeph-gbz80.def: Removed a bad sub optimisation.
11539
11540 2001-11-03  Michael Hope  <michaelh AT juju.net.nz>
11541
11542         * support/regression/tests/bug-477927.c: Added.
11543
11544         * src/z80/peeph.def: Added minor rules.
11545
11546         * src/z80/gen.c (genPlusIncr): Added an extra plusinc rule.
11547
11548         * src/z80/peeph.def: Added jump optimisation modification.
11549
11550 2001-11-01  Michael Hope  <michaelh AT juju.net.nz>
11551
11552         * src/SDCCmain.c (linkEdit): Added runtime path detection to the mcs51 port.
11553
11554 2001-10-30  Michael Hope  <michaelh AT juju.net.nz>
11555
11556         * support/regression/tests/funptrs.c: Added.
11557
11558 2001-10-29  Michael Hope  <michaelh AT juju.net.nz>
11559
11560         * src/z80/ralloc.c (packRegsForHLUse): Fixed up bad spill due to pushing one byte via HL.
11561
11562 2001-10-28  Michael Hope  <michaelh AT juju.net.nz>
11563
11564         * src/z80/gen.c (genArrayInit): Made it work for on stack arrays.
11565
11566         * src/z80/main.c (gbz80_port =): Added rle support to the gbz80 port.
11567
11568         * src/z80/gen.c (genMinus): Fixed for where the result is one byte.
11569         (movLeft2ResultLong): Created.
11570
11571         * src/z80/ralloc.c (packRegsForHLUse): Added a couple of simple cases for the GB.
11572         (joinPushes): Added.  Joins two char pushes into a word push.
11573
11574 2001-10-27  Michael Hope  <michaelh AT juju.net.nz>
11575
11576         * support/cpp2/Makefile.in (install): Added creation of dest dir.
11577
11578         * support/makebin/Makefile (install): Added creation of dest dir.
11579
11580 2001-10-24 Karl Bongers <karl AT turbobit.com>
11581
11582         * configure.in, configure, Makefile, support/cpp: Removed cpp folder, since we have new cpp2 preprocessor code.
11583
11584 2001-10-21  Michael Hope  <michaelh AT juju.net.nz>
11585
11586         * src/z80/ralloc.c: Turned off faulty pack for one use.
11587
11588         * src/z80/peeph-gbz80.def: Removed redundent restart options.
11589
11590         * src/z80/gen.c (genMult): Added native mul for constants on the z80 and gbz80.
11591
11592 2001-10-21  Bernhard Held  <bernhard AT bernhardheld.de>
11593
11594         * support/regression/Makefile: Improved clean
11595
11596         * support/regression/ports/gbz80/spec.mk: Added clean
11597
11598         * support/regression/ports/host/spec.mk: Added clean
11599
11600         * support/regression/ports/z80/spec.mk: Added clean
11601
11602         * support/regression/ports/mcs51/spec.mk: Added clean, little improvements
11603
11604         * support/regression/ports/mcs51/timeout.c: little improvements
11605
11606 2001-10-17  Michael Hope  <michaelh AT juju.net.nz>
11607
11608         * device/lib/malloc.c (MEMHEADER): Fixed against new pedantic pointers.
11609
11610         * support/regression/fwk/include/testfwk.h: Fixed up to use function pts correctly.
11611
11612         * support/regression/generate-cases.py: Fixed up to use function pts correctly.
11613
11614 2001-10-16  Bernhard Held  <bernhard AT bernhardheld.de>
11615
11616         * support/regression/port/mcs51/spec.mk: add timeout for uCsim
11617
11618         * support/regression/port/mcs51/timeout.c: add timeout for uCsim
11619
11620 2001-10-13  Michael Hope  <michaelh AT juju.net.nz>
11621         * src/z80/gen.c (emitCall): Fixed up missing spill of HL when used to assign the result value.
11622
11623         * src/z80/ralloc.c: Turned off pack for one use as it's quite broken.
11624
11625         * src/SDCCmain.c (linkEdit): Added support for passing a legacy command line through the processor.
11626
11627         * src/mcs51/main.c (_linkCmd): Added bin path to command.
11628
11629         * src/SDCCmain.c (initValues): Added support for when it it called just to link.
11630
11631         * as/mcs51/lklibr.c (libfil;): Turned off 'library file' message.
11632
11633         * src/SDCCval.c (constVal): Fixed usage of 'L' modifier problems on ppc.
11634
11635         * support/regression/tests/longor.c: Added.
11636
11637 2001-10-11  Bernhard Held  <bernhard AT bernhardheld.de>
11638
11639         * as/mcs51/asdata.c: replaced FILENAME_MAX with PATH_MAX
11640
11641         * as/mcs51/aslink.h: define PATH_MAX
11642
11643         * as/mcs51/asm.h: define PATH_MAX
11644
11645         * as/mcs51/asmain.c: replaced FILENAME_MAX with PATH_MAX
11646
11647         * as/mcs51/asnoice.c: replaced FILENAME_MAX with PATH_MAX
11648
11649         * as/mcs51/lklex.c: replaced FILENAME_MAX with PATH_MAX
11650
11651         * as/mcs51/lkmain.c: replaced FILENAME_MAX with PATH_MAX
11652
11653         * src/SDCCglobl.h: define PATH_MAX
11654
11655         * src/SDCCmacro.c: replaced FILENAME_MAX with PATH_MAX
11656
11657         * src/SDCCmain.c: replaced FILENAME_MAX with PATH_MAX
11658
11659 2001-10-11  Michael Hope  <michaelh AT juju.net.nz>
11660
11661         * src/z80/gen.c (gencjneshort): Fixed
11662
11663         * src/z80/ralloc.c (packRegsForHLUse): Added pack into HL for cast then ipush.
11664
11665 2001-10-09  Michael Hope  <michaelh AT juju.net.nz>
11666
11667         * support/regression/tests/bug-469671.c: Added.
11668
11669         * src/z80/gen.c (shiftIntoPair): Fixed up warning.
11670
11671 2001-10-08  Michael Hope  <michaelh AT juju.net.nz>
11672
11673         * src/SDCCmain.c: Added --fommit-frame-pointer option and implemented in the z80 port.
11674
11675         * src/z80/gen.c (genPlus): Fixed to work with extended stack.  Also fixed genMinus, genCmp.  genUMinus is still left.
11676
11677 2001-10-08  Bernhar Held  <bernhard AT bernhardheld.de>
11678
11679         * src/SDCCmain.c (preProcess): added define SDCC_NOOVERLAY
11680
11681         * src/device/lib/_mulint.c  : removed hint: nooverlay bug
11682
11683         * src/device/lib/_mullong.c : removed hint: nooverlay bug
11684
11685         * src/device/lib/_divuint.c : removed hint: nooverlay bug
11686
11687         * src/device/lib/_divulong.c: removed hint: nooverlay bug
11688
11689         * src/device/lib/_moduint.c : removed hint: nooverlay bug
11690
11691         * src/device/lib/_modulong.c: removed hint: nooverlay bug
11692
11693 2001-10-07  Michael Hope  <michaelh AT juju.net.nz>
11694
11695         * 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.
11696
11697         * support/Util/NewAlloc.c (freeTrace): Changed free for the gc case to not free at all.  Fixes runtime segfault.
11698
11699         * support/regression/tests/scott-compare3.c (c_abcd): Fixed up casts.
11700
11701 2001-10-07    <johan AT FRIJA>
11702
11703         * device/lib/gets.c (gets): fixed the return value.
11704
11705 2001-10-06  Michael Hope  <michaelh AT juju.net.nz>
11706         * src/SDCCmain.c (WRITE_SEG_LOC): Fixed up to use Safe_strdup.
11707
11708         * 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.
11709
11710         * 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.
11711
11712         * src/z80/gen.c (genZ80Code): Added de-allocation via trace support.
11713
11714         * src/pic/gen.c: Removed Safe_strdup.
11715
11716         * configure.in: Added option to enable libgc support.
11717
11718         * src/SDCCbitv.c (bitVectnBitsOn): Optimised.
11719         (bitVectUnion): Optimised.
11720         (bitVectIntersect): Optimised.
11721         (bitVectBitsInCommon): Optimised.
11722         (bitVectCplAnd): Optimised.
11723
11724         * support/makebin/makebin.c (usage): Removed getopt as mingw32 doesn't have it.  Sigh.
11725
11726 2001-10-03 Bernhard Held <bernhard AT bernhardheld.de>
11727
11728         * src/SDCCmain.c: distinguish between assembler debug and plain options
11729
11730         * src/avr/main.c:   remove standard assembler options
11731
11732         * src/ds390/main.c: remove standard assembler options
11733
11734         * src/mcs51/main.c: remove standard assembler options
11735
11736         * src/port.h: removed "PENDING" comment
11737
11738 2001-10-03 Bernhard Held <bernhard AT bernhardheld.de>
11739
11740         * src/device/lib/_mulint.c  : new, with assember functions
11741
11742         * src/device/lib/_mullong.c : new, with assember functions
11743
11744         * src/device/lib/_divuint.c : with assember functions
11745
11746         * src/device/lib/_divsint.c : with assember functions
11747
11748         * src/device/lib/_divulong.c: with assember functions
11749
11750         * src/device/lib/_divslong.c: with assember functions
11751
11752         * src/device/lib/_moduint.c : with assember functions
11753
11754         * src/device/lib/_modsint.c : with assember functions
11755
11756         * src/device/lib/_modulong.c: with assember functions
11757
11758         * src/device/lib/_modslong.c: with assember functions
11759
11760         * src/device/lib/libint.lib:  replaced _muluint.c  and _mulsint.c  by _mulint.c
11761
11762         * src/device/lib/liblong.lib: replaced _mululong.c and _mulslong.c by _mullong.c
11763
11764         * src/device/lib/Makefile.in: replaced _muluint.c  and _mulsint.c  by _mulint.c
11765                                       replaced _mululong.c and _mulslong.c by _mullong.c
11766
11767 2001-10-03 Bernhard Held <bernhard AT bernhardheld.de>
11768
11769         * src/SDCCsymt.c: sequence of specifiers in pintTypeChain() corrected
11770
11771 2001-10-01 Bernhard Held <bernhard AT bernhardheld.de>
11772
11773         * src/SDCCglue.c: test, if win32api is available for MINGW
11774
11775 2001-10-01 Bernhard Held <bernhard AT bernhardheld.de>
11776
11777         * src/SDCCsymt.c: no more _modifier in printTypeChain()
11778         * support/regression/tests/driverstruct.c: REENTRANT for mcs51
11779         * support/regression/ports/gbz80/spec.mk: removed GENERIC
11780         * support/regression/ports/host/spec.mk: removed GENERIC
11781         * support/regression/ports/mcs51/spec.mk: removed GENERIC
11782         * support/regression/ports/z80/spec.mk: removed GENERIC
11783
11784 2001-10-01  Michael Hope  <michaelh AT juju.net.nz>
11785
11786         * support/regression/fwk/lib/testfwk.c (__printf): Removed GENERIC.
11787
11788         * support/regression/tests/bug-467035.c: Created.
11789
11790 2001-10-01    <johan AT FRIJA>
11791
11792         * src/SDCC.y: fixed bug #466586 part 1
11793
11794 2001-10-01  Johan Knol <johan.knol AT iduna.nl>
11795
11796         * SDCCicode.c: z80 has no generic pointers
11797         * removed -s from strip in all Makefile(.in)'s. It is not needed, but Solaris chocks on it.
11798
11799 2001-09-30  Michael Hope  <michaelh AT juju.net.nz>
11800
11801         * sim/ucsim/cmd.src/Makefile.in ($(PRJDIR)/libcmd.a): Changed all ar references to $(AR) for Solaris.
11802
11803 2001-09-29  Michael Hope  <michaelh AT juju.net.nz>
11804
11805         * Makefile (sdcc-libs): Added makebin to the list of standard targets.
11806
11807         * support/regression/ports/z80/spec.mk: Updated to use env for sdcc bin dir for automatic regression.
11808
11809 2001-09-25  Michael Hope  <michaelh AT juju.net.nz>
11810
11811         * configure.in: Fixed up so that ucsim is only configured once.
11812
11813         * support/cpp2/configure.in: Fixed to use the program transform to append the .exe for the win32 build.
11814
11815         * src/SDCCutil.c (getPrefixFromBinPath): Fixed up to work with win32 in all of its glory.
11816         (getPathDifference): As above.
11817
11818         * src/SDCCmain.c (preProcess): Changed to use a temporary file in a proper temp directory.  Fixed case where pre-processing only.
11819
11820         * src/SDCCglue.c (tempfilename): Added function for pre-processor.
11821
11822 2001-09-23  Michael Hope  <michaelh AT juju.net.nz>
11823         * .version: Updated to 2.3.1
11824
11825         * src/z80/main.c (z80_port =): Added macro based linker and assembler command line support.
11826         Added copyright header.
11827
11828         * src/SDCCmain.c: Shifted various functions into SDCCutil.c
11829         (assemble): Added support for macro based assembler commands.
11830         (linkEdit): Added support for macro based linker commands.
11831         (preProcess): Changed the pre-processor to use macros.
11832         (_setPaths): Added functionality to autodetect the include, lib and bin dir paths.
11833         (_discoverPaths): Added support for overriding the install directory using the SDCCDIR env variable.
11834
11835         * device/lib/z80/crt0.s: Added module name for debugging.
11836
11837 2001-09-20  Michael Hope  <michaelh AT juju.net.nz>
11838
11839         * src/SDCCmain.c (printVersionInfo): Added the build date to the version info.
11840
11841         * src/SDCChasht.c (hTabDeleteByKey): Fixed delete as it would delete the last item from a bucket even if it wasn't the real one.
11842
11843         * src/SDCCglue.c: Moved gc_strdup to SDCCutil.c
11844
11845         * src/Makefile.in: Added SDCCmacro and SDCCutil
11846
11847 2001-09-19  Michael Hope  <michaelh AT juju.net.nz>
11848
11849         * src/SDCCmain.c (printVersionInfo): Added the build date to the version info.
11850
11851 2001-09-16    <johan AT FRIJA>
11852
11853         * 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.
11854
11855 2001-09-15    <johan AT FRIJA>
11856
11857         * src/mcs51/ralloc.c: (findAssignToSym): fixed bug #460662 part 1
11858         * src/ds390/ralloc.c (findAssignToSym): fixed bug #460662 part 1
11859
11860 2001-09-11    <johan AT FRIJA>
11861
11862         * src/SDCCval.c (valDiv Mod Minus Plus Shift): keep litteral expressions as small as possible (bug #460010)
11863
11864 2001-09-10  Michael Hope  <michaelh AT juju.net.nz>
11865
11866         * support/regression/tests/bug-460444.c: Added test case.
11867
11868         * src/z80/gen.c (genOr): bug 460444: if (a ^ lit) was broken for &, |, and ^.
11869         (genCast): Added justification for all of the asserts.
11870
11871 2001-09-10  Bernhard Held <bernhard AT bernhardheld.de>
11872
11873         * support/regression/support.c: _xdata replaced by xdata
11874
11875         * support/regression/spec.mk: removed _generic
11876
11877 2001-09-09  Michael Hope  <michaelh AT juju.net.nz>
11878
11879         * src/pic/ralloc.c (debugLogRegType): Removed some old types to get it to compile.
11880
11881         * src/z80/gen.c (shiftR2Left2Result): Improved the case when v = v >> n for small values of n to use less code space and time.
11882         (genrshTwo): Fixed v = v >> n where v is a negative int and n is > 8: bug 460010.
11883
11884         * src/z80/peeph.def: Added a rule to optimise shift then compare.
11885
11886         * support/regression/tests/bug-460000.c (testShiftByParam): Added test case.
11887
11888         * support/regression/tests/bug-460010.c: Added test case.
11889
11890         * support/regression/Makefile (test-host): Removed a silly 'clean' target when testing against gcc.
11891
11892 2001-09-09  Bernhard Held <bernhard AT bernhardheld.de>
11893
11894         * support/regression/Makefile: inter-port-clean adjusted for mcs51
11895
11896         * support/regression/testfwk.c: removed workaround for bug #436344
11897
11898         * support/regression/tests/bp.c: use less memory with mcs51
11899
11900         * support/regression/tests/bug-441448.c: use less memory
11901
11902         * support/regression/tests/ports/mcs51/spec.mk: cleanup, use --stack-after-data
11903
11904         * support/regression/collate-results.py: typo
11905
11906 2001-09-08  Michael Hope  <michaelh AT juju.net.nz>
11907
11908         * support/regression/tests/fetchoverlap.c: Added new test case.
11909
11910         * support/regression/tests/bp.c: Added new test case.
11911
11912         * support/regression/tests/bug-448984.c: Added new test case.
11913
11914         * support/regression/tests/pow2shifts.c: Added new test case.
11915
11916         * src/z80/gen.c: Turned off the noise it normally generates for the release.
11917         (genlshTwo): Fixed right shift for count > 8.
11918
11919         * src/z80/ralloc.c: Disabled most of the ACC packing rules as they weren't getting hit and weren't at all safe.
11920
11921 2001-09-08    <johan AT FRIJA>
11922
11923         * src/SDCCicode.c (geniCodeCall): a CPOINTER can be used as a function
11924
11925 2001-09-07    <johan AT FRIJA>
11926
11927         * src/SDCCicode.c (newiCodeCondition): fixed bug #456235 (1.77)
11928
11929         * src/SDCCglue.c (emitRegularMap): only delete a symbol when it is a symbol
11930
11931 2001-09-06    <johan AT FRIJA>
11932
11933         * src/SDCC.y: this could be a fix for bug #458744 (1.37)
11934         * bernhard noted me at this: "() equals to (void)" (1.38)
11935
11936 2001-09-05    <johan AT FRIJA>
11937
11938         * src/SDCCglue.c (emitRegularMap): a fix for bug #458099/2
11939
11940 2001-09-04    <johan AT FRIJA>
11941
11942         * src/SDCCsymt.c (checkSClass): a fix for bug #458099/1
11943
11944
11945 2001-09-04  Paul Stoffregen  <paul AT pjrc.com>
11946
11947         * pragma noinduction broke memcpy on mcs51 large model.  Moved it inside z80 optimization
11948
11949 2001-09-03  Michael Hope  <michaelh AT juju.net.nz>
11950
11951         * link/z80/aslink.h: Fixed path for PATH_MAX
11952
11953 2001-09-02  Michael Hope  <michaelh AT juju.net.nz>
11954
11955         * src/z80/gen.c (fetchLitPair): Changed so that it properly caches direct space references.
11956
11957         * support/regression/tests/addsub.c: Added cases to cover all the +, - combinations.
11958
11959         * support/regression/tests/uminus.c: Added a test for the unary minus operator.
11960
11961         * 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.
11962
11963 2001-09-01  Michael Hope  <michaelh AT juju.net.nz>
11964
11965         * src/z80/gen.c: Fixed up generator to pass the regresion tests, specifically fixing loads for longs, genCmp, and turned on the map file.
11966         (genCmp): Fixed up genCmp for the GB with longs.
11967
11968         * device/lib/gbz80/Makefile: Fixed up all the libraries to pass the regression tests.
11969
11970         * support/regression/ports/host/spec.mk: Updated to compile with the new type specifiers.
11971
11972         * device/lib/Makefile.in (Z80SOURCES): Removed old _mululong, _mulslong, and unneeded _mulint.
11973
11974         * device/lib/_mullong.c (_mulslong): Changed to actually return a value :)
11975
11976 2001-08-30  Paul Stoffregen  <paul AT pjrc.com>
11977
11978         * added peepholes 223 to 231 to mcs51 port.  These improve code when using large model.
11979
11980 2001-08-30  Michael Hope  <michaelh AT juju.net.nz>
11981
11982         * 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.
11983
11984         * src/z80/gen.c (genPlus): Changed bad long add for gb to a fall through.
11985
11986 2001-08-29  Michael Hope  <michaelh AT juju.net.nz>
11987
11988         * link/z80/aslink.h: Fixed long file name support.  Is now based off PATH_MAX instead of a constant.
11989
11990         * src/z80/gen.c: Fixed add and sub for the case where left or right are in static space.
11991
11992 2001-08-30 Bernhard Held   <bernhard AT bernhardheld.de>
11993
11994   * sim/ucsim/configure:    little improvement of Cygwin-detection
11995   * sim/ucsim/configure.in: little improvement of Cygwin-detection
11996   * sim/ucsim/cmd.src/newcmdcl.h: include <sys/types.h> to define fd_set automated build
11997   * support/regression/tests/bug-221100.c: small changes for mcs51
11998   * support/regression/tests/bug-221168.c: small changes for mcs51
11999   * support/regression/tests/bug-227710.c: small changes for mcs51
12000   * support/regression/tests/staticinit.c: small changes for mcs51
12001   * as/mcs51/aslink.h: accept everything as symbol name in rel-files, bug fix ID 452601
12002   * as/mcs51/lklex.c:  accept everything as symbol name in rel-files, bug fix ID 452601
12003   * as/mcs51/lksym.c:  accept everything as symbol name in rel-files, bug fix ID 452601
12004
12005 $Revision$