* sdcc/device/lib/Makefile.in: corrected PORTINCDIR path
[fw/sdcc] / ChangeLog
1 2006-06-17 Borut Razem <borut.razem AT siol.net>
2
3         * sdcc/device/lib/Makefile.in: corrected PORTINCDIR path
4
5 2006-06-17 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
6
7         * doc/sdccman.lyx: updated, added (porting source code, debugging),
8         mentioned ec2drv and paulmon
9
10 2006-06-16 Maarten Brock <sourceforge.brock AT dse.nl>
11
12         * as/mcs51/lkarea.c (lnkarea2): clear new xdatamap, bugfix for two
13           consecutive abs areas
14           (find_empty_space, allocate_space): added map to handle codemap or
15            xdatamap,
16           (lnksect2): renamed rloc to locIndex, fixed bug 960060 by handling
17            absolute idata and xdata
18         * as/mcs51/lkmem.c (summary2): updated legend
19
20 2006-06-16 Raphael Neider <rneider AT web.de>
21
22         * src/pic16/gen.c (shiftR2Left2Result): fixed bug #1507127
23
24 2006-06-13 Maarten Brock <sourceforge.brock AT dse.nl>
25
26         * debugger/mcs51/cmd.c (cmdListFunctions): fixed bugs 1181163 and
27           1208515
28         * src/SDCClrange.c (findPrevUse): fixed bug 1294475
29
30 2006-06-13 Vangelis Rokas <vrokas AT users.sourceforge.net>
31
32         * src/port.h (struct PORT): added field gp_tags, to hold the tag
33         value of generic pointers,
34         * src/avr/main.c,
35           src/ds390/main.c,
36           src/hc08/main.c,
37           src/izt/i186.c,
38           src/izt/tlcs900h.c,
39           src/mcs51/main.c,
40           src/pic/main.c,
41           src/pic16/main.c,
42           src/xa51/main.c,
43           src/z80/main.c: PORT structure, added elements for gp_tags field,
44         * src/SDCCsymt.h: replaced hardwired values of GPTYPE_* macros with
45         fields in the PORT structure of each port,
46         * src/SDCCast.c (decorateType): allow processing of generic pointers
47         for PIC16 port (FPTRSIZE equals GPTRSIZE), also set GPTYPE_NEAR for
48         S_FIXED symbols
49
50 2006-06-12 Maarten Brock <sourceforge.brock AT dse.nl>
51
52         * link/z80/lkgb.c,
53         * link/z80/lkgg.c,
54         * src/pic16/gen.c,
55         * src/pic16/main.c,
56         * src/pic16/pcode.c,
57         * src/pic/main.c,
58         * src/pic/pcoderegs.c,
59         * src/SDCCicode.c,
60         * src/SDCCmain.c,
61         * src/SDCCsymt.c: replaced all exit(-1) by exit(EXIT_FAILURE) to fix
62           bug 1504689 on minGW
63
64 2006-06-12 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
65
66         * device/lib/printf_tiny.c: fixed bug #1465675 (%x format specifier)
67
68 2006-06-12 Bernhard Held <bernhard AT bernhardheld.de>
69
70         * src/SDCCast.c (backPatchLabels): fixed bug #1504636
71
72 2006-06-11 Maarten Brock <sourceforge.brock AT dse.nl>
73
74         * device/lib/printf_large.c (OUTPUT_CHAR, _output_char): added and used
75           for optimization
76
77 2006-06-11 Vangelis Rokas <vrokas AT users.sourceforge.net>
78
79         * src/pic16/gen.c (genCast): fixed bug with assignment of a pointer
80         to a char variable. Fixed bug #1504211
81         * device/include/pic16/adc.h,
82         device/include/lib/pic16/libio/adc/adcopen.c: applied patch #1364387
83         and fixed bug #1364390
84
85 2006-06-10 Borut Razem <borut.razem AT siol.net>
86
87         * CVSROOT: removed the CVS left-over
88
89 2006-06-10 Maarten Brock <sourceforge.brock AT dse.nl>
90
91         * as/hc08/asmain.c (asexit),
92         * as/hc08/lkmain.c (lkexit),
93         * as/mcs51/asmain.c (asexit),
94         * as/mcs51/lkmain.c (lkexit),
95         * src/SDCCglue.c (DEFSETFUNC),
96         * src/SDCCmain.c (linkEdit, assemble),
97         * support/librarian/sdcclib.c (AddRel),
98           replaced unlink() by standard C remove()
99         * src/SDCC.y: replaced removePostIncDecOps() by createRMW()
100         * src/SDCCast.c (replaceAstWithTemporary, createRMW,
101           gatherImplicitVariables): new, added to fix bug 608752,
102           (createFunction): added gatherImplicitVariables()
103         * src/SDCCast.h: added createRMW prototype
104         * src/SDCCsymt.h (struct symbol): added infertype
105         * support/regression/tests/bug608752.c: new, added
106
107 2006-06-10 Raphael Neider <rneider AT web.de>
108
109         * src/pic16/gen.c (pic16_aopOp): use WREG as destination even for
110           multibyte dummy reads (fixes #1503234)
111
112 2006-06-10 Maarten Brock <sourceforge.brock AT dse.nl>
113
114         * device/include/mcs51/compiler.h: new, added header file to enable
115           creating common sfr definition header files for different compilers
116
117 2006-06-05 Raphael Neider <rneider AT web.de>
118
119         * src/pic16/{pcode.h,genarith.c}:
120           introduced pCodeOp combining any two pCodeOps (previously only
121           two register operands could be combined), removed pcop2 from
122           pCodepReg, replaced pCodeOpReg2 with pCodeOp2, fixes #1492366
123         * src/pic16/pcodepeep.c (pic16_pCodeOpCopy): added case for PO_TWO_OPS
124         * src/pic16/gen.c (pic16_popGet2,pic16_popGet2p,pic16_popCombine2):
125           rewritten to use new PO_TWO_OPS
126         * src/pic16/main.c (_hasNativeMulFor): cover more cases natively,
127         * src/pic16/pcode.c (pic16_newpCodeOpImmd): initialize rIdx field,
128           (pic16_newpCodeOp): catch invalid attempts on PO_TWO_OPS,
129           (pic16_newpCodeOp2): NEW, create combined pCodeOp,
130           (pic16_get_op): embraced return arg to allow #define return(x),
131             added new case for combined opcodes
132           (pic16_get_op2): reduced to use pic16_get_op() on second pCodeOp,
133           (pic16_pCode2str,pic16_getRegFrompCodeOp,
134            pic16_getRegFromInstruction2): fixed/added handling of new pCodeOp
135
136 2006-06-04 Bernhard Held <bernhard AT bernhardheld.de>
137
138         * src/SDCCval.c (checkConstantRange): added
139         * src/SDCCval.h: added checkConstantRange
140         * support/Util/SDCCerr.c,
141         * support/Util/SDCCerr.h: replaced unused W_IF_NEVER_TRUE and
142         W_IF_ALWAYS_TRUE by W_COMP_RANGE and W_LIT_OVERFLOW
143         * src/SDCC.y: moved early 'condition transformations' to SDCCast.c
144         * src/SDCCast.c (decorateType): added checkConstantRange,
145         added 'condition transformations' from SDCC.y so that now W_COMP_RANGE
146         can be emitted with the correct always true/false warning,
147         added optimization for double '!';
148         result of decorateType() must be assigned back to the tree, because
149         decorateType() can change the tree
150         * src/SDCCicode.c (geniCodeLogic),
151         (geniCodeAssign): replaced new checkConstantRange, added warnings,
152         (checkConstantRange): removed, it was only a fragment which never
153         emitted a warning
154         * src/SDCCsymt.c (computeType): fixed promotion for
155         "-1 < (unsigned bit) b"
156         * src/pic/ralloc.c (packRegsForAssign),
157         * src/pic16/ralloc.c (packRegsForAssign),
158         * src/hc08/ralloc.c (packRegsForAssign),
159         * src/z80/ralloc.c (packRegsForAssign): ported fix for bug #930931
160         from mcs51
161         * src/mcs51/ralloc.c (packRegsForAssign): removed outcommented source
162         * support/regression/tests/constantRange.c: added
163         * support/valdiag/tests/constantRange.c: added
164         * support/valdiag/valdiag.py: added -DPORT_HOST=1
165
166 2006-06-02 Borut Razem <borut.razem AT siol.net>
167
168         * support/regression/ports/pic16/support.c: increase stack size
169           to 255 bytes
170         * support/regression/Makefile.in: sort tests by name so that the
171           resutlts can be compared on different machines / platforms
172
173 2006-06-02 Maarten Brock <sourceforge.brock AT dse.nl>
174
175         * device/lib/printf_large.c (output_digit): optimized further, Tnx Frieder
176         * src/ds390/gen.c (emitLabel): new, added,
177           (genDjnz): fixed stack overflow bug,
178           (throughout): cosmetic changes to sync with mcs51/gen.c,
179           replaced emitcode("", "%05d$:", lbl->key + 100) with emitLabel(lbl)
180         * src/mcs51/gen.c (genEndFunction): small optimization,
181           (throughout): cosmetic changes to sync with ds390/gen.c
182
183 2006-06-02 Maarten Brock <sourceforge.brock AT dse.nl>
184
185         * device/lib/printf_large.c (output_digit, calculate_digit): optimized,
186           (_print_format): fixed printing pointers
187         * src/mcs51/gen.c (emitLabel, movb): new, added,
188           (genAssign): small optimization,
189           (genDjnz): fixed stack overflow bug,
190           (throughout): replaced sprintf with SNPRINTF,
191           replaced mcs51_regWithIdx with REG_WITH_INDEX,
192           replaced emitcode("mov", "b,...") with MOVB(...),
193           replaced emitcode("", "%05d$:", lbl->key + 100) with emitLabel(lbl),
194           replaced D(emitcode("; genXXX", "")) with D(emitcode(";", "genXXX"))
195         * src/mcs51/peeph.def: added rules 140 and 264
196         * src/SDCCmem.c (allocLocal): store register declared locals in DSEG/OSEG
197           so they may get optimized into registers
198
199 2006-05-30 Maarten Brock <sourceforge.brock AT dse.nl>
200
201         * src/SDCCmain.c (optionsTable, parseCmdLine): handle --use-stdout
202           immediately when encountered,
203           (printUsage): always use stderr even on windows
204
205 2006-05-30 Bernhard Held <bernhard AT bernhardheld.de>
206
207         * src/SDCCast.c (isLoopCountable): fixed bug #1478316
208         (processParms): fixed bug #1247551
209         * src/SDCCmain.c (printVersionInfo, printOptions, printUsage,
210         parseCmdLine, main): print '--version' to stdout,
211         print 'help' to stdout if --help is given,
212         print 'help' to stderr and exit with EXIT_FAILURE if no or bad
213         arguments are given; fixed --help
214
215 2006-05-27 Bernhard Held <bernhard AT bernhardheld.de>
216
217         * src/SDCCcse.c (findPointerSet): fixed bug #1493710
218         * support/regression/tests/bug-1493710.c: added
219
220 2006-05-27 Borut Razem <borut.razem AT siol.net>
221
222         * support/regression/fwk/lib/testfwk.c: define array in _printn() as
223           static instead auto
224         * support/regression/ports/pic16/support.c: increase stack size
225           from default 64 bytes to 128 bytes
226         * support/regression/tests/staticinit.c,
227           support/regression/tests/float.c: regression tests fully enabled
228           for pic16 port by putting the initialized data arrays into the code
229           section
230         * support/regression/ports/pic16/spec.mk: don't link default libraries.
231           This was changed by mistake in the previous version.
232
233 2006-05-28 Vangelis Rokas <vrokas AT users.sourceforge.net>
234
235         * src/pic16/gen.c (genFunction, genEndFunction): some
236         beautifications, fixed bug with falsely restoring FSR2 in large
237         stack model, thanks to Beau E. Cox for reporting the bug
238
239 2006-05-26 Maarten Brock <sourceforge.brock AT dse.nl>
240
241         * debugger/mcs51/break.c,
242         * debugger/mcs51/cmd.c (throughout): removed unused variables and labels,
243           use %p to print pointers, made address variables unsigned
244         * debugger/mcs51/cmd.c (infoSymbols): added missing parameter to printf
245         * debugger/mcs51/symtab.c (parseSymbol): must return something
246         * src/mcs51/gen.c (aopForSym): small optimization,
247            moved declarations mcs51_ptrRegReq and mcs51_nRegs to ralloc.h,
248           (freeAsmop): added missing break,
249           (aopPut): removed parameter bvolatile, determine it inside the function,
250           (saveRegisters, unsaveRegisters): small optimization,
251           (genIpush): removed pointless check,
252           (throughout): replaced Safe_calloc, strcpy with Safe_strdup,
253           replaced sprintf with SNPRINTF,
254           replaced strcpy with strncpyz,
255           updated aopPut calls,
256           replaced D(emitcode("; genXXX", "")) with D(emitcode(";", "genXXX"))
257         * src/mcs51/ralloc.h:  added declarations mcs51_ptrRegReq and mcs51_nRegs
258
259 2006-05-24 Borut Razem <borut.razem AT siol.net>
260
261         * support/regression/tests/bug-221100.c: fixed xdata problem caused by
262           modification of test for the pic16 port, put the array to the code
263           memory for pic16port; thanks to Maarten Brock and Frieder Ferlemann
264
265 2006-05-23 Jesus Calvino-Fraga <jesusc at ece.ubc.ca>
266
267         * src/pic/gen.c: MSC 6 does not have <stdint.h>.  Use pstdint.h instead.
268         * support/Util/pstdint.h: added
269
270 2006-05-22 Borut Razem <borut.razem AT siol.net>
271
272         * src/regression/Makefile: removed bool2.c test, added -q linker option
273         * src/regression/add2.c, src/regression/add3.c, src/regression/bool1.c,
274           src/regression/bool3.c, src/regression/nestfor.c, src/regression/ptrfunc.c,
275           src/regression/compare.c, src/regression/or1.c, src/regression/compare2.c,
276           src/regression/while.c, src/regression/compare3.c, src/regression/compare4.c,
277           src/regression/compare5.c, src/regression/sub2.c, src/regression/rotate1.c,
278           src/regression/rotate2.c, src/regression/rotate3.c, src/regression/rotate4.c,
279           src/regression/switch1.c, src/regression/rotate5.c, src/regression/for.c,
280           src/regression/add.c, src/regression/sub.c, src/regression/call1.c:
281           define SUPPORT_BIT_TYPES 0, removed unused bit variables
282
283 2006-05-22 Raphael Neider <rneider AT web.de>
284
285         * src/pic16/gen.c (pic16_storeForReturn): fragile fix for
286           bug #1492360 (problematic due to generic pointers, see code)
287
288 2006-05-22 Borut Razem <borut.razem AT siol.net>
289
290         * support/regression/ports/pic16/specs.mk: removed stack size linker
291           directive
292         * support/regression/tests/array.c,
293           support/regression/tests/bitopcse.c,
294           support/regression/tests/bug-908454.c,
295           support/regression/tests/malloc.c: modified for pic16 regression test
296         * support/regression/tests/bitfields.c:
297           pic16 - excluded bitfileds of size > 8
298         * support/regression/tests/bp.c: pic16 - reduced data size
299         * support/regression/tests/bug-221100.c: pic16 - reduced data size
300         * support/regression/tests/bug-460010.c:
301           pic16 - used the absolute address the fits in memory
302         * support/regression/tests/bug-716242.c:
303           bug [ 1443651 ] pic 16: redefining symbol that cannot be redefined.
304         * support/regression/tests/float.c:
305           pic16 - excluded - data size too big
306         * support/regression/tests/onebyte.c:
307           pic16 - bug [ 1444425 ] onebyte.c regression tes fails on pic16
308         * support/regression/tests/shifts.c:
309           pic16 - function names probably have to differ in first X characters
310           (gpasm limitation?)
311         * support/regression/tests/staticinit.c:
312           pic16 - excluded some tests due error: no target memory available for
313           section ".idata"
314
315 2006-05-22 Borut Razem <borut.razem AT siol.net>
316
317         * support/Util/dbuf.c: fixed bug #1489008 fix dbuf_c_str(),
318           second try. Thanks Stas Sergeev once more.
319
320 2006-05-21 Maarten Brock <sourceforge.brock AT dse.nl>
321
322         * src/hc08/gen.c (transferAopAop): aop forced to stack was not restored,
323           (genLeftShift, genRightShift): fixed bug 1491627
324         * src/hc08/peeph.def (rules 7, 8.x): added
325         * support/regression/tests/shifts.c (ShiftLeftByParam,
326           ShiftRightByParam, testShiftByParam): added to test variable shifting
327
328 2006-05-20 Raphael Neider <rneider AT web.de>
329
330         * src/pic/gen.c (bitpatternFromVal): fixed for 64-bit machines
331         * src/pic16/ralloc.c (newReg): use correct name in hashtable,
332           (allocReg): add only new registers to dynAllocRegs,
333           (pic16_assignRegisters): do not reset dynrIdx, fixes bugs
334             #1489055, #1445850, and probably #1483693
335
336 2006-05-19 Vangelis Rokas <vrokas AT users.sourceforge.net>
337
338         * src/pic16/glue.c (pic16_emitConfigRegs, pic16_emitIDRegs): fixed
339         bug in for-loop that didn't emit the last of CONFIG and ID registers
340
341 2006-05-18 Maarten Brock <sourceforge.brock AT dse.nl>
342
343         * src/mcs51/gen.c (genCodePointerGet): inc dptr instead of loading acc
344           with offset
345         * src/mcs51/peeph.def (186.x): updated and reenabled to fix bugs
346           1489016, 1434401 and 1490124
347         * src/ds390/peeph.def (186.x, 227.x): updated and reenabled to fix bugs
348           1489016, 1434401 and 1490124
349
350 2006-05-17 Borut Razem <borut.razem AT siol.net>
351
352         * support/Util/dbuf.c: fixed bug #1489008 fix dbuf_c_str(),
353           thanks Stas Sergeev
354
355 2006-05-15 Maarten Brock <sourceforge.brock AT dse.nl>
356
357         * device/include/mcs51/P89c51RD2.h,
358         * device/include/mcs51/P89LPC901.h,
359         * device/include/mcs51/P89LPC922.h,
360         * device/include/mcs51/P89LPC932.h: added, thanks Omar Espinosa
361
362 2006-05-14 Vangelis Rokas <vrokas AT users.sourceforge.net>
363
364         * device/lib/pic16/libsdcc/stack/{stack.S, Makefile.in}: add workaround
365         to fix missing stack pragma in compiled binary object file,
366
367 2006-05-14 Bernhard Held <bernhard AT bernhardheld.de>
368
369         * support/packihx/configure.in,
370         * support/packihx/configure: removed warning, autoconf >= 2.5x can
371         determine sizeof basic types even while cross compiling
372
373 2006-05-13 Bernhard Held <bernhard AT bernhardheld.de>
374
375         * src/avr/gen.c (aopop),
376         * src/ds390/gen.c (aopOp),
377         * src/hc08/gen.c (aopOp),
378         * src/mcs51/gen.c (aopop),
379         * src/pic16/gen.c (pic16_aopOp),
380         * src/pic/gen.c (aopOp),
381         * src/z80/gen.c (aopop): fix for bug #1479882; use new, exclusive asmop
382         if size of operand is smaller than spill location
383
384 2006-05-12 Borut Razem <borut.razem AT siol.net>
385
386         * *.dsw, *.dsp: changed property svn:eol-style to CRLF since they
387           have to have CR/LF line endings even if they are checked out on *nix
388           or on WIN32 in cygwin binmode
389
390 2006-05-12 Maarten Brock <sourceforge.brock AT dse.nl>
391
392         * doc/sdccman.lyx: documented numeric ranges, WEBDOC #1442369
393         * device/include/ds80c390.h: added sfr16 definitions
394         * src/ds390/gen.c,
395         * src/ds390/gen.h,
396         * src/ds390/main.c,
397         * src/ds390/ralloc.c,
398         * src/ds390/ralloc.h: changes all over the place to sync with mcs51
399           fixing several bugs and adding sfr16/sfr32, reentrant bit params,
400           bit returning functions
401         * support/regression/tests/sfr16.c: enabled test on ds390
402
403 2006-05-11 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
404
405         * src/hc08/gen.c (asmopToBool, genIfx): fix for bug #1429722
406         * src/hc08/gen.c (storeRegToAop): fix for bug #1439894
407
408 2006-05-11 Maarten Brock <sourceforge.brock AT dse.nl>
409
410         * sim/ucsim/sim.src/memcl.h: added get_decoder() to cl_address_space
411         * sim/ucsim/sim.src/mem.cc: implemented cl_address_space::get_decoder,
412           (cl_address_space constructor): removed expensive initialization,
413           (cl_address_space::get_cell): extended for late initialization,
414           (cl_address_space::*): use late initialization,
415           (cl_address_decoder::activate): removed expensive initialization,
416           This reduced regression test running time by 25%
417
418 2006-05-11 Bernhard Held <bernhard AT bernhardheld.de>
419
420         * packihx/,
421         * configure.in,
422         * configure,
423         * sdcc.dsw,
424         * Makefile.bcc,
425         * Makefile.in,
426         * support/packihx/Makefile.in,
427         * support/packihx/clean.mk,
428         * support/packihx/Makefile.bcc,
429         * support/packihx/PackIhx.dsp: moved packihx to support/packihx
430
431 2006-05-11 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
432
433         * src/SDCCval.c (valNot): fix for regression test failure
434           of not.c on big endian hosts
435
436 2006-05-10 Maarten Brock <sourceforge.brock AT dse.nl>
437
438         * device/inlcude/mcs51/msc1210.h: new, added, thanks Philippe Latu
439
440 2006-05-10 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
441
442         * device/lib/mcs51/Makefile.in: changed string comparison operator
443           to = for POSIX compliance; == is bash extension
444
445 2006-05-10 Maarten Brock <sourceforge.brock AT dse.nl>
446
447         * device/lib/hc08/_mulint.c: applied patch 1485428, thanks
448           kosmonaut_pirx
449
450 2006-05-09 Vangelis Rokas <vrokas AT users.sourceforge.net>
451
452         * src/pic16/gen.c (pic16_freeAsmop): release any temp registers
453         allocated by aopForSym thus fixing bug #1478657 about failed testfwk.c
454         * src/pic16/main.c (_pic16_keywords): added 'sfr16' keyword,
455         * src/pic16/ralloc.c (pic16_allocWithIdx): also a fix for bug exposed by
456         bug report #1478657,
457
458 2006-05-05 Borut Razem <borut.razem AT siol.net>
459
460         * doc/Makefile.in: remove of WARNINGS and labels.pl immediately after
461           making the html
462
463 2006-05-02 Borut Razem <borut.razem AT siol.net>
464
465         * doc/Makefile.in: removed *.ind dependency since there is no rule to
466           create *.ind, which made make to fail if invoked with -j 2
467
468 2006-05-01 Maarten Brock <sourceforge.brock AT dse.nl>
469
470         * src/SDCCglue.c (emitRegularMap): partial fix for bug 1477149, thanks
471           Hubert Sack for patch 1479782
472
473 2006-05-01 Vangelis Rokas <vrokas AT users.sourceforge.net>
474
475         * src/pic16/glue.c (pic16_printIvalStruct): fixed bug #1445929
476
477 2006-05-01 Raphael Neider <rneider AT web.de>
478
479         * src/pic/device.c (sanitise_processor_name): only remove p(ic) prefix,
480           (create_pic): store only prefix-free device name,
481           (init_pic): check for device names with "16" prefix,
482           (list_valid_pics),
483         * src/pic/device.h (struct PIC_device),
484         * src/pic/main.c (_pic14_genAssemblerPreamble): adapted to single
485             stored device name,
486         * device/include/pic/pic12f{635,675,629,683}.h,
487         * device/lib/pic/libdev/pic12f{635,675,629,683}.c: NEW device libraries
488         * device/lib/pic/libdev/Makefile.in: allow pic12* devices,
489         * device/include/pic/pic16f505.h,
490         * device/lib/pic/libdev/pic16f505.c: removed
491         * device/include/pic/pic14devices.txt: added support for pic12f
492             devices, removed unsupported non 16-bit devices
493             [above changes provided by patch from Zik Saleeba]
494         * src/pic/*, src/pic16/*, device/include/pic16/*,
495           device/lib/pic/**, device/lib/pic16/**: obfuscated email address
496
497 2006-05-01 Borut Razem <borut.razem AT siol.net>
498
499         * configure.in, configure, doc/Makefile.in:
500           sync with nightly build makefile - latex, dvipdf and dvips
501           not needed any more
502
503 2006-04-30 Bernhard Held <bernhard AT bernhardheld.de>
504
505         * support/scripts/sdcc.nsi: removed all Readmes and Makefiles
506         in the library source
507
508 2006-04-30 Maarten Brock <sourceforge.brock AT dse.nl>
509
510         * support/regression/ports/hc08/spec.mk: fixed bug 1478892
511
512 2006-04-28 Raphael Neider <rneider AT web.de>
513
514         * src/pic16/pcode.c (pic16_newpCodeOpLit12),
515         * src/pic16/gen.c (pic16_popGetLit12): NEW, create 12 bit literal,
516           (pic16_loadFSR0): handle 12 bit literals correctly, fixes #1440527
517         * src/pic16/pcode.h: added prototype for pic16_newpCodeOpLit12()
518
519 2006-04-28 Bernhard Held <bernhard AT bernhardheld.de>
520
521         * device/lib/pic/libdev/Makefile.in,
522         * device/lib/hc08/Makefile.in,
523         * device/lib/gbz80/Makefile.in,
524         * device/lib/z80/Makefile.in,
525         * device/lib/ds390/Makefile.in,
526         * device/lib/ds400/Makefile.in: added srcdir to include search path,
527         thanks to Borut for the bug report
528         * configure.in,
529         * configure: always create doc/Makefile independent from --enable-doc
530         * Makefile.in: always install from directory doc independent from
531         --enable-doc
532         * device/lib/pic/Makefile.in: added libdev again, it was erroneously
533         removed
534         * device/lib/pic/libdev/Makefile.in: fixed VPATH build
535         * doc/Makefile.in: install *.txt if present
536         * device/include/Makefile.in (install): added installation of pic/*.inc
537         and pic/*.txt files again, they were erroneously removed
538
539 2006-04-28 Raphael Neider <rneider AT web.de>
540
541         * src/pic/{gen.c,main.h,pcode.c},
542         * src/pic16/{gen.c,pcode.c}: quietened compiler warnings
543             concerning signedness with casts
544
545 2006-04-28 Raphael Neider <rneider AT web.de>
546
547         * src/pic/gen.c (genFunction): set global pic14_hasInterrupt on
548             definition of an interrupt handler,
549         * src/pic/glue.c (pic14_emitInterruptHandler): moved output of
550             interrupt handler stuff from picglue() to separate routine,
551           (picglue): enabled definition of intr handlers in files w/o main()
552
553 2006-04-26 Maarten Brock <sourceforge.brock AT dse.nl>
554
555         * support/librarian/sdcclib.c: moved include <limits.h> up to enable
556           compilation with MSVC 2005 Express Edition (VC8)
557
558 2006-04-26 Bernhard Held <bernhard AT bernhardheld.de>
559
560         * device/lib/Makefile: fixed build of gbz80 lib
561
562 2006-04-26 Maarten Brock <sourceforge.brock AT dse.nl>
563
564         * support/regression/tests/bug-460010.c,
565         * support/regression/tests/bug-524691.c,
566         * support/regression/tests/bug-716242.c: removed conditional defines
567           that are already in testfwk.h
568
569 2006-04-25 Maarten Brock <sourceforge.brock AT dse.nl>
570
571         * src/ds390/gen.c (AccAXRrl1, AccAXLrl1): changed to real rotate by 1,
572           (AccAXRsh1): added, shift right by 1,
573           (AccAXLsh, AccAXRsh, AccAXRshS): updated for AccAXRrl1, AccAXRsh1 and
574            AccAXLrl1
575         * support/regression/tests/rotate.c: use <stdint.h> and enabled ds390
576
577 2006-04-25 Bernhard Held <bernhard AT bernhardheld.de>
578
579         * src/SDCCast.c (decorateType): partial fix for RFE 1475769,
580         remove cast to same type
581         * src/SDCCast.c (decorateType): fix for RFE 1475742,
582         optimize 'ifx (op == 0)' resp. 'ifx (op != 0)'
583         * as/z80/Makefile,
584         * link/z80/Makefile: removed, they have moved to
585         Makefile.in files
586         * configure,
587         * configure.in: replaced duplicate message about ucsim by missing sdcpp
588         * install-sh: fix bug #1204398 by setting umask 0022
589         * device/lib/Makefile: separate build of z80 and gbz80 lib
590
591 2006-04-24 Bernhard Held <bernhard AT bernhardheld.de>
592
593         Enabled VPATH feature: changed nearly all Makefiles (149 files).
594         See sdccman.lyx '2.4.10 VPATH feature' about how to use it.
595
596         One basic decision: e.g. src/clean.mk includes further files. In order
597         to make this work there are two solutions:
598         - rename another dozen clean.mk to clean_in.mk, add srcdir to them and
599           run configure on them. This way they can use
600           'include $(srcdir)/port-clean.mk'
601         - always include clean.mk by the Makefile at the same level. To avoid
602           that `make clean` tries to include and build Makefile.dep the
603           MAKECMDGOALS are examined (see e.g. src/Makefile.in). This has been
604           implemented, because now even `make uninstall` doesn't create
605           Makefile.in. clean.mk could be eliminated by pasting it in
606           Makefile.in.
607
608         * debugger/mcs51/Makefile.in: build own objects from library sources
609         (SLIB, SDCC) in current directory
610
611         * configure, configure.in: renamed --disable-device-lib-build in
612         --disable-device-lib; added --enable-doc, the required tools are
613         searched by configure; added result message; the toolchain for the
614         belonging ports are now only built, if the port is enabled.
615
616         * support/regression/*: all output is written in directory gen, because
617         the fwk and ports directories don't livet in the build tree using vpath
618
619         * doc/sdccman.lyx: renamed --disable-device-lib-build to
620         --disable-device-lib, added --enable-doc, added section VPATH
621
622         * sim/ucsim/configure.in,
623         * sim/ucsim/configure.in: hc08 couldn't be disabled, now hc08 and
624         z80 are enabled by default
625
626 2006-04-24 Raphael Neider <rneider AT web.de>
627
628         * src/pic/device.c (pic14_assignConfigWordValue): remember assignments
629             to config word, "pic14_"-prefixed some extern functions
630           (pic14_emitConfigWord): emit __config directive(s) if assignment to
631             config word has been found
632         * src/pic/device.h: added prototypes
633         * src/pic/pcode.c: added "pic14_"-prefix where needed
634         * src/pic/ralloc.c (IS_CONFIG_ADDRESS,pic14_assignRegisters): cosmetic
635             fixup
636         * src/pic/glue.c (pic14_constructAbsMap): handle assignments to config
637             words,
638           (pic14emitRegularMap): ignore config words,
639           (pic14createInterruptVect): moved generating __config directives away
640           (picglue): have __config directives emitted
641
642 2006-04-24 Borut Razem <borut.razem AT siol.net>
643
644         * doc/Makefile: sync with nightly build makefile
645
646 2006-04-24 Raphael Neider <rneider AT web.de>
647
648         * src/pic/pcoderegs.c (OptimizeRegUsage): do not optimize
649             registers that have not been assigned proper liveranges,
650             fixes #1469504 and #1474602,
651           (pCodeRegOptimizeRegUsage): fixed typo in comment
652
653 2006-04-24 Borut Razem <borut.razem AT siol.net>
654
655         * device/examples/main8051.c: deleted - it was removed from CVS
656           24.mar.2000 and after that modified 18.feb.2001, so it reappered
657           after the transition to Subversion
658         * src/SDCCalloc.h: deleted - it was removed  from CVS
659           3.feb.2001 and after that modified 18.feb.2001, so it reappered
660           after the transition to Subversion
661         * sim/ucsim/cpu.gif, sim/ucsim/interrupt.gif, sim/ucsim/new.gif,
662           sim/ucsim/serial1.gif, sim/ucsim/serial2.gif,
663           sim/ucsim/term_cpuopt.gif, sim/ucsim/timers.gif, sim/ucsim/wins.gif,
664           sim/ucsim/post.jpg, sim/ucsim/UCsim.jpg: corrected
665
666 2006-04-22 Maarten Brock <sourceforge.brock AT dse.nl>
667
668         * as/asx8051.dsp: added mcs51/strcmpi.h
669         * as/hc08/as_hc08.dsp: added asm.h, m6808.h, strcmpi.h
670         * as/hc08/aslink.h: updated lnksect prototype
671         * as/hc08/asm.h,
672         * as/mcs51/asm.h: added a_addr to struct area and s_org to struct sym
673         * as/hc08/asmain.c,
674         * as/mcs51/asmain.c (asmbl): init dot.s_org for S_ORG,
675           (newdot): handle A_ABS
676         * as/hc08/asout.c,
677         * as/mcs51/asout.c (outarea): output address
678         * as/hc08/lkaomf51.c,
679         * as/mcs51/lkaomf51.c: disabled unused array UsageType
680         * as/hc08/m08pst.c,
681         * as/mcs51/i51pst.c,
682         * as/z80/z80pst.c: "ABS" is not A_OVR
683         * as/hc08/lkarea.c (newarea): read a_addr,
684           (lnkarea): added codemap array, sort absolute areas to the front,
685            combine all GSINITx/GSFINAL,
686           (find_empty_space, allocate_space): new functions,
687           (lnksect): return next address, handle absolute sections
688         * as/mcs51/lkarea.c (newarea): read a_addr,
689           lnksect2 prototype changed,
690           (lnkarea2): define codemap unsigned, combine all GSINITx/GSFINAL,
691           (find_empty_space, allocate_space): new, factored out of lnksect2,
692           (lnksect2): return next address, handle absolute sections
693         * as/hc08/lkhead.c,
694         * as/mcs51/lkhead.c (newhead): head is absolute but not overlay
695         * as/hc08/lklibr.c (addfile, fndsym),
696         * as/mcs51/lklibr.c (addfile, buildlibraryindex, fndsym): prevent
697           index out of range and detect both '\' and '/'
698         * device/include/mcs51/c8051f200.h: added _XPAGE, removed bad comment
699         * device/include/stdbool.h: removed SDCC_ds390 from check to pass
700           regression tests (ds390 cannot return bool yet)
701         * doc/sdccman.lyx: changed version number, document changed --no-peep,
702           document critical interrupts on z80, document changed SDCC define
703         * src/asm.c (_asxxxx_mapping): fixed .org directive,
704           (_a390_mapping): added .org directive
705         * src/hc08/gen.c (transferAopAop): made bytemask log to fix warning,
706           (genMultOneByte): fixed warnings
707         * src/hc08/hc08.dsp: lowered warning level to 2 to suppress pedantic
708           ones
709         * src/pic16/device.c: removed newReg prototype, removed BYTE_IN_LONG
710         * src/pic16/gen.c (pic16_popGetLabel): made parameter key signed,
711           (pic16_genLeftShiftLiteral, genRightShiftLiteral): fixed warnings
712         * src/pic16/gen.h: changed prototype for pic16_popGetLabel
713         * src/pic16/main.c: removed newReg prototype
714         * src/pic16/pcode.c,
715         * src/pic16/pcode.h (pic16_emitDB): changed parameter c to int to fix
716           warnings
717         * src/pic16/pic16.dsp: lowered warning level to 2 to suppress pedantic
718           ones
719         * src/pic16/ralloc.c
720         * src/pic16/ralloc.h (newReg): changed type to int and size to unsigned
721           to fix warnings
722         * src/pic/pcode.c (allocInternalRegister): changed parameter optype
723           from short to PIC_OPTYPE
724         * src/pic/pic.dsp: lowered warning level to 2 to suppress pedantic ones
725         * src/pic/ralloc.c (newReg, allocInternalRegister): changed parameter
726           optype from short to PIC_OPTYPE
727         * src/port.h: made int_size unsigned to fix warnings
728         * src/SDCC.y: fixed warning on MSVC
729         * src/SDCCicode.c (getArraySizePtr): return unsigned int
730         * src/SDCCopt.c (convertToFcall): fixed warnings
731         * src/SDCCsymt.h: removed double prototype for genSymName
732         * src/xa51/ralloc.c (allocReg): made size unsigned int, type int and
733           offset int to fix warnings
734
735 2006-04-22 Borut Razem <borut.razem AT siol.net>
736
737         * doc/sdccman.lyx, */Makefile, */Makefile.in:
738           references to CVS replaced with Subversion
739
740 2006-04-21 Borut Razem <borut.razem AT siol.net>
741
742         * doc/sdccman.lyx, */Makefile, */Makefile.in:
743           references to CVS replaced with Subversion
744
745 2006-04-19 Borut Razem <borut.razem AT siol.net>
746
747         * src/version.awk: adapted for svn
748         * /asxxxx/asxhtml/*.gif: set property svn:mime-type to image/gif
749           sim/ucsim/doc/*.gif: set property svn:mime-type to image/gif
750           sim/ucsim/doc/*.jpg: set property svn:mime-type to image/jpeg
751           /binutils-avr/etc/*.vi, *.jin: removed all properties
752           support/scripts/sdcc.ico: set property svn:mime-type to image/x-icon
753
754 2006-04-19 Borut Razem <borut.razem AT siol.net>
755
756         * CVS to Subversion migration completed
757
758 2006-04-18 Borut Razem <borut.razem AT siol.net>
759
760         * support/scripts/sdcc.nsi: removed unexisting ${DEV_ROOT}\lib\pic\*.o,
761           ${DEV_ROOT}\lib\src\pic\libdev\*.S, ${DEV_ROOT}\lib\src\pic\libdev\*.inc
762
763 2006-04-17 Borut Razem <borut.razem AT siol.net>
764
765         * device/include/Makefile.in: added pic/*.inc to the installation
766
767 2006-04-15 Bernhard Held <bernhard AT bernhardheld.de>
768
769         * support/regression/collate-results.py: fixed output in case of
770         a valdiag error
771         * support/regression/generate-cases.py: fixed splitting of pathnames
772         with dots
773         * as/hc08/lklibr.c (addfile),
774         * as/mcs51/lklibr.c (addfile): fixed off-by-one bug
775
776 2006-04-11 Raphael Neider <rneider AT web.de>
777
778         * src/pic16/gen.c (getFreePtr, pic16_popRegFromString),
779         * src/pic16/ralloc.c (pic16_allocregWithName): removed debug output
780         * src/pic16/pcode.c (assignValnums): fixed #1460578
781
782 2006-04-11 Raphael Neider <rneider AT web.de>
783
784         * device/lib/pic/libdev/*.c,
785         * device/include/pic/*.h: replaced sfr and data with __sfr and __data,
786           fixes #1468739, enables compilation in --std-c99 mode
787         * support/scripts/inc2h.pl: emit __sfr/__data instead of sfr/data
788
789 2006-04-11 Raphael Neider <rneider AT web.de>
790
791         * src/pic/device.c (find_device): removed debug output
792           (list_valid_pics): enabled verbose listing of supported devices
793         * device/include/stdbool.h: define bool as char for pic14/16 as well
794
795 2006-04-07 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
796
797         * src/SDCC.y: allow using brackets here: "__interrupt (1) __using (1)"
798
799 2006-04-07 Maarten Brock <sourceforge.brock AT dse.nl>
800
801         * .version: bumped version to 2.5.6
802         * src/pic/ralloc.c (newReg): MSVC doesn't support __builtin_return_address
803
804 2006-04-06 Raphael Neider <rneider AT web.de>
805
806         * .version: bumped version to 2.5.6 (pic14 ABI changed)
807         * src/SDCCmain.c: add -DSDCC_PROCESSOR=<id> for pic14 port
808         * src/pic/glue.c (emitSymbolToFile,pic14_constructAbsMap,
809           pic14emitRegularMap,pic14emitMaps): moved output for absolute symbols to
810             pic14_constructAbsMap
811           (pic14printPublics): declare absolute global symbols as global
812           (pic14createInterruptVect),
813         * src/pic/ralloc.c (IS_CONFIG_ADDRESS): support second config word,
814           (newReg): assume new registers unused, use correct name in
815             hashtable (reg->name instead of name), more debugLog output
816         * src/pic/device.h (PIC_device): added fields for verbose output
817         * src/pic/device.c: moved device definition to pic14devices.txt,
818             added routines for runtime parsing of pic14devices.txt,
819             added support for second config word
820         * src/pic/main.c (_process_pragma): removed #pragma maxram,
821           (_pic14_keywords): no longer accept "bit" and "sbit" keywords
822           (_pic14_initPaths): add search paths with "pic" suffix (not "pic14")
823           (_pic14_parseOptions): moved pCodeInitRegisters here
824           (_pic14_do_link): add "pic$(ARCH).lib" to linker arguments
825         * src/pic/pcode.c (AnalyzeBanking): bail out on unset processor,
826           (pCodeInitRegisters): rewrapped comments, perpared new approach to
827             handling the pseudo stack
828         * device/lib/Makefile.in: ignore failures in objects-pic16,
829         * device/lib/pic/{configure,configure.in,Makefile}: added libdev/
830         * device/lib/pic/NEWS: document new dependency on picXXX.lib
831         * device/lib/pic/Makefile.subdir,
832         * device/lib/pic16/Makefile.subdir: improved clean rules
833         * device/lib/pic/libdev/: NEW, pic14 device libraries
834         * device/lib/pic/libsdcc/_gptr{get,put}{1,2,3,4}.S: use _X not X
835         * device/lib/pic/libsdcc/macros.inc: use _X not X, declare default SFRs
836         * device/include/Makefile.in: create subdir and install pic14 headers
837         * device/include/pic/p16f_common.inc: removed unused declarations
838         * device/include/pic/pic16*.h: added header files for 100+ 14 bit
839             PICs from inc2h.pl v1.6,
840             replaced BIT_AT macros with struct declarations
841         * device/include/pic/pic14devices.txt: definition of supported devices,
842             all above improvements contributed by Zik Saleeba, thanks
843         * support/scripts/inc2h.pl: removed BIT_AT, replaced with structs
844         * support/scripts/sdcc.nsi: also install pic14 device libraries and
845             headers
846
847 2006-04-06 Maarten Brock <sourceforge.brock AT dse.nl>
848
849         * device/include/mcs51/c8051f410.h: added interrupt numbers,
850         * device/include/mcs51/c8051f200.h: old SiLabs mcu completes the list,
851           thanks to Charles Olds
852
853 2006-04-06 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
854
855         * debugger/mcs51/cmd.c (infoRegisters): show return address on stack
856
857 2006-04-06 Maarten Brock <sourceforge.brock AT dse.nl>
858
859         * src/SDCCpeeph.c (labelIsReturnOnly): fixed bug 1464657
860         * src/mcs51/gen.c (genJumpTab): fixed bug in medium model
861         * support/regression/bug1464657.c: added, new test
862
863 2006-04-05 Maarten Brock <sourceforge.brock AT dse.nl>
864
865         * src/SDCCmain.c (preProcess): implemented RFE 1449908, define SDCC as the
866           version number
867
868 2006-04-05 Maarten Brock <sourceforge.brock AT dse.nl>
869
870         * src/SDCCpeeph.c (initPeepHole): implemented RFE 1460196, when both
871           --no-peep and --peep-file <file> are used don't use default rules but
872           do use the <file>
873
874 2006-04-05 Maarten Brock <sourceforge.brock AT dse.nl>
875
876         * src/mcs51/gen.c (genCall): fixed bug 1457608
877
878 2006-03-30 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
879
880         * doc/sdccman.lyx: reverted to version 1.129 of december as my latest
881         changes seem to cause (trigger?) problems with the build system.
882
883 2006-03-29 Maarten Brock <sourceforge.brock AT dse.nl>
884
885         * src/SDCCpeeph.c (operandsLiteral): new, added,
886           (callFuncByName): inserted operandsLiteral
887         * src/mcs51/peeph.def: reenabled 132.e, added extra check to 132.x
888
889 2006-03-28 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
890
891         * doc/sdccman.lyx: added paragraph "Use of SDCC in Education"
892         * src/mcs51/peeph.def: disabled rule 132.e fixing bug #1453093
893
894 2006-03-24 Maarten Brock <sourceforge.brock AT dse.nl>
895
896         * src/z80/gen.c (genFunction, genEndFunction): fixed bug 1160666,
897           implemented patch 1120823 Thanks to Willy De la Court (normal
898           interrupts need an interrupt number now if they are made critical),
899           and enabled nesting of critical functions though not for gbz80
900           (genCritical, genEndCritical): added functions
901           (genZ80Code): added cases for CRITICAL and ENDCRITICAL
902         * src/z80/mappings.i: added "ei" to all mappings
903
904 2006-03-20 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
905
906         * sim/ucsim/cmd.src/newcmdcl.h: applied patch fixing GCC 4.1 build
907         submitted by the Debian SDCC maintainer Aurelien Jarno:
908         "Credits goes to Martin Michlmayr, who rebuilt the whole Debian
909         archive with gcc 4.1 on mips and wrote the patch"
910
911 2006-03-16 Raphael Neider <rneider AT web.de>
912
913         * src/pic16/genarith.c (genAddLit): simplified and fixed case where
914           the left operand is shorter than the result (c* = lit-c* + int),
915           fixes bug #1450796
916         * src/pic16/gen.c (genRightShift): check IS_SYMOP before accessing
917           OP_SYMBOL
918
919 2006-03-14 Vangelis Rokas <vrokas AT users.sourceforge.net>
920
921         * src/.version: increased version number to 2.5.5
922         * src/SDCCmain.c (linkEdit): do not test for PIC16 target since, PIC16
923         linking is done manually in pic16 port's _linkEdit,
924         * src/SDCCsymt.c (compStructSize): for target PIC16 and shell variable
925         PIC16_PACKED_BITFIELDS, compact bitfield structures as much as possible,
926         * src/pic16/gen.c (aopForSym): when direct register name is WREG then
927         allocate asmop as AOP_ACC,
928         (aopForRemat): added parameter 'bool result' in function declaration,
929         (pic16_aopGet): return AOP_ACC when accessing WREG,
930         (pic16_popGetTempReg): minor modification,
931         (pic16_popRegFromIdx): first try with 'pic16_regWithIdx' then with
932         'pic16_allocWithIdx',
933         (genPcall): removed ftype, usage of OP_SYM_TYPE asserted error when
934         calling function in absolute addresses,
935         (genAssign): take into account AOP_ACC asmop,
936         * src/pic16/pcode.c (pic16_newpCodeOpReg): minor modifications,
937         * src/pic16/pcoderegs.c: some debug functions and lines added,
938         * src/pic16/ralloc.c (decodeRegType): added but commented out,
939         * (pic16_typeRegWithIdx): search 'pic16_dynInternalRegs' for given
940         register too,
941         * (pic16_findFreeReg, pic16_findFreeRegNext): allocate new register via
942         call to allocReg, not by manually allocating a new one,
943         (pic16_assignRegisters): now before going through the register
944         allocating functions mark all registers as free. This eliminates some
945         side effects resulting from peephole parser done earlier in the backbone
946
947 2006-03-13 Maarten Brock <sourceforge.brock AT dse.nl>
948
949         * src/SDCCicode.c (geniCodeLogic),
950         * src/SDCCast.c (decorateType): applied patch by Bernhard for rfe 1422617
951
952 2006-03-10 Maarten Brock <sourceforge.brock AT dse.nl>
953
954         * src/mcs51/gen.c (sameReg): new, checks if two aop regs are the same,
955           (genSend): bugfix, do not allocate and free twice,
956           (shiftRLong): handle partially overlapping aops
957         * support/regression/tests/bitopcse.c: fixed warning redefined idata
958
959 2006-03-08 Borut Razem <borut.razem AT siol.net>
960
961         * support/regression/fwk/include/testfwk.h: added defines for xdata, idata
962           for pic16
963
964 2006-03-08 Maarten Brock <sourceforge.brock AT dse.nl>
965
966         * support/regression/tests/bug1409955.c: new, added
967         * src/mcs51/gen.h: changed asmop.freed:1 to asmop.allocated for tracking
968         * src/mcs51/gen.c (newAsmop): set asmop.allocated to 1,
969           (aopForSym, aopOp): increment asmop.allocated if reused,
970           (freeAsmop): decrement asmop.allocated and check for zero instead of
971           using asmop.freed,
972           (freeForBranchAsmop): use asmop.allocated instead of asmop.freed,
973           (genNot, genCpl, genUminus, genMinus, genMult, genDiv, genMod, genCmpGt,
974            genCmpLt, genAndOp, genOrOp, genAnd, genOr, genXor, genRRC, genRLC,
975            genGetHbit, genGetAbit, genGetByte, genGetWord, genSwap,
976            genLeftShiftLiteral, genLeftShift, genRightShiftLiteral,
977            genSignedRightShift, genRightShift, genDataPointerGet,
978            genPagedPointerGet, genFarPointerGet, genCodePointerGet,
979            genGenPointerGet, genDataPointerSet, genAssign, genCast): free asmop's
980             in reverse order from allocation,
981           (genPlus, genCmpEq): free asmop's in reverse order from allocation and
982             added swappedLR to keep track
983         * support/regression/fwk/include/testfwk.h: added defines for xdata, idata,
984           pdata & code for GCC, z80, gbz80 & hc08
985         * support/regression/tests/zeropad.c: moved defines to testfwk.h
986
987 2006-03-08 Raphael Neider <rneider AT web.de>
988
989         * src/pic16/main.c (_hasNativeMulFor): fixed bug #1444425
990
991 2006-03-07 Maarten Brock <sourceforge.brock AT dse.nl>
992
993         * device/include/mcs51/c8051f410.h: new SiLabs mcu
994         * src/ds390/peeph.def: disabled 186.d and 227.a as fix for #1434401
995         * support/regression/tests/array.c: added parenthesis, made arrays unsigned
996
997 2006-03-06 Borut Razem <borut.razem AT siol.net>
998
999         * support/regression/ports/pic16/spec.mk: link with libm18f.lib,
1000           made the linker quiet
1001
1002 2006-03-06 Vangelis Rokas <vrokas AT users.sourceforge.net>
1003
1004         * src/pic16/gen.c (genPcall): fixed bug #1443644
1005         * src/pic16/device.h (struct pic16_options_t): added 'int CATregs' flag
1006         which dumps before the function entry point a data byte which represents
1007         the number of the local variables used by the specified function, added
1008         'xinst' for initial support for Extended Instruction Support,
1009         * src/pic16/gen.c (aopForSym, pic16_aopGet): beautifications,
1010         (pic16_testStackOverflow): do not prefix GSTACK_TEST_NAME with
1011         port->fun_prefix anymore (may change later),
1012         (genFunction, genEndFunction): do not store/restore local registers for
1013         _main (this should take care the --main-return command line option in
1014         the future),
1015         (genOr): removed some legacy pic-port instructions,
1016         * src/pic16/genarith.c (genAddLit): re-enabled old code because
1017         performing operations with SFR's causes data to be written more than
1018         once to each SFR. Perhaps SFRs should be handled in special cases...
1019         * src/pic16/glue.c: macros BIG_ENDIAN and BYTE_IN_LONG are moved to
1020         pcode.h
1021         * src/pic16/main.c (_process_pragma): stack bound checking did not take
1022         into account for stack starting position,
1023         (struct OPTIONS pic16_optionsTable): added command line argument
1024         --extended or -y for Extended Instruction Support,
1025         * src/pic16/ralloc.c (pic16_decodeOp): added case for FUNCTION,
1026         (deassignLRs): *** perhaps the most important change, old 'for' code
1027         (commented out for reference), didn't account for some registers which
1028         were left marked 'not free' after a pointer operation. The change
1029         reduces register usage a lot in some cases
1030
1031 2006-03-04 Borut Razem <borut.razem AT siol.net>
1032
1033         * support/regression/ports/hc08/spec.mk: remove *.asm in traget
1034           _clean
1035         * support/regression/tests/bug-524697.c: decreased array size for
1036           mcs51 to fit into the internal RAM
1037         * support/regression/Makefile.in: a little bit more verbose
1038
1039 2006-03-03 Borut Razem <borut.razem AT siol.net>
1040
1041         * support/regression/fwk/lib/testfwk.c,
1042           support/regression/fwk/include/testfwk.h: introduced function
1043           _prints(), nonrecursive _printn(), call _initEmu() from main()
1044         * support/regression/ports/gbz80/support.asm,
1045           support/regression/ports/ucz80/support.asm,
1046           support/regression/ports/z80/support.asm,
1047           support/regression/ports/ds390/support.c,
1048           support/regression/ports/hc08/support.c,
1049           support/regression/ports/host/support.c,
1050           support/regression/ports/mcs51/support.c,
1051           support/regression/ports/xa51/support.c: added empty _initEmu()
1052           function
1053         * support/regression/ports/pic16/gpsim.cmd,
1054           support/regression/ports/pic16/spec.mk,
1055           support/regression/ports/pic16/support.c,
1056           support/regression/Makefile.in: added pic16 regression test
1057
1058 2006-03-01 Raphael Neider <rneider AT web.de>
1059
1060         * src/pic16/gen.c (genPcall,pic16_derefPtr,genGenPointerGet,
1061           genConstPointerGet): use safe way of generating MOVFF to cover
1062             literals as well as registers, fixes bug #1440527
1063         * src/pic16/glue.c (pic16_printIvalBitFields): prevent NULL pointer
1064             dereference
1065           (pic16_printIvalUnion,pic16_isUnion): NEW, handle initialized unions
1066             more correctly, fixes bug #1232186
1067           (pic16_printIval): use pic16_printIvalUnion() for initialized unions
1068         * src/pic16/main.c (_pic16_linkEdit): reorder linker arguments to make
1069             gplink guess the correct processor in more cases, applied patch
1070             from Till Riedel attached to and fixing bug #1436552
1071
1072 2006-02-20 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
1073
1074         * support/regression/tests/array.c: added, contains check for #1434401
1075         * src/mcs51/peeph.def: disabled 186.d as temporary fix for #1434401
1076
1077 2006-02-16 Maarten Brock <sourceforge.brock AT dse.nl>
1078
1079         * device/include/mcs51/at89s8253.h: new, thanks to Krzysztof Polomka
1080         * device/include/mcs51/at89S8252.h: fixed, thanks to Krzysztof Polomka
1081         * device/include/mcs51/c8051f326.h,
1082         * device/include/mcs51/c8051f340.h: new SiLabs mcu's
1083         * device/include/mcs51/c8051f000.h,
1084         * device/include/mcs51/c8051f018.h,
1085         * device/include/mcs51/c8051f020.h: used () with __at, renamed IDLE,STOP to
1086           PCON_IDLE,PCON_STOP and added sfr16 definitions
1087
1088 2006-02-14 Maarten Brock <sourceforge.brock AT dse.nl>
1089
1090         * src/mcs51/gen.c (genPlus, genMinus, genMult, genGetAbit, genGetByte,
1091           genGetWord): fixed bug 1409955
1092
1093 2006-02-14 Maarten Brock <sourceforge.brock AT dse.nl>
1094
1095         * device/include/hc08/mc68hc908gp32.h,
1096         * device/include/hc08/mc68hc908jb8.h: removed AWUL, added PTA6 & PTA7
1097
1098 2006-02-13 Maarten Brock <sourceforge.brock AT dse.nl>
1099
1100         * src/SDCCast.c (constExprValue): return NULL if not a value
1101         * src/SDCCglue.c (printIvalArray): fixed bug 1225568
1102         * src/hc08/gen.c(genUnpackBits, genUnpackBitsImmed): fixed bug 1019480
1103         * support/regression/tests/bitfields.c: enabled signed bitfield for all
1104
1105 2006-02-13 Borut Razem <borut.razem AT siol.net>
1106
1107         * src/regression/ptrarg.c: added, fails due to bug #1430967
1108         * src/regression/Makefile: ptrarg.c added, ...
1109
1110 2006-02-12 Maarten Brock <sourceforge.brock AT dse.nl>
1111
1112         * src/z80/gen.c (genUnpackBits): fixed bug 1019480
1113         * support/regression/tests/bitfields.c: enabled signed bitfield for z80
1114
1115 2006-02-11 Borut Razem <borut.razem AT siol.net>
1116
1117         * src/SDCCmain.c: Added "sdcc: Calling linker..." if --verbose,
1118           print "Processor: xxx" message to stdout only if --verbose
1119
1120 2006-02-11 Maarten Brock <sourceforge.brock AT dse.nl>
1121
1122         * src/SDCCglue.c (printIvalStruct): fixed bug 1426356 union initializer
1123         * support/regression/tests/bug1426356.c: added
1124         * support/regression/tests/bitfields.c: removed 2 tests
1125
1126 2006-02-10 Maarten Brock <sourceforge.brock AT dse.nl>
1127
1128         * device/include/mcs51/at89c51snd1c.h: updated comments, see patch 1428901
1129         * device/include/mcs51/c8051f330.h,
1130         * device/include/mcs51/c8051f350.h: used () with __at, renamed IDLE,STOP to
1131           PCON_IDLE,PCON_STOP and added sfr16 definitions
1132         * device/lib/_divsint.c,
1133         * device/lib/_divuint.c,
1134         * device/lib/_divulong.c,
1135         * device/lib/_divulong.c: renamed a,b to x,y to avoid confusion, fixed
1136           register bank bug for small stackauto
1137
1138 2006-02-09 Maarten Brock <sourceforge.brock AT dse.nl>
1139
1140         * support/regression/fwk/lib/timeout.c: include <stdlib.h> for exit()
1141
1142 2006-02-08 Maarten Brock <sourceforge.brock AT dse.nl>
1143
1144         * support/regression/ports/mcs51-xstack-auto/spec.mk: forgot -I(...)/mcs51
1145         * all.dsp: corrected several bin paths
1146         * device/include/mcs51/c8051f120.h,
1147         * device/include/mcs51/c8051f300.h,
1148         * device/include/mcs51/c8051f310.h: used () with __at and renamed IDLE,STOP
1149           to PCON_IDLE,PCON_STOP
1150         * device/include/mcs51/c8051f320.h: see above, also added sfr16 definitions
1151         * device/lib/printf_large.c (output_float): fixed bug 1388703
1152         * support/regression/tests/bug1057979.c: added test for bug 1388703
1153
1154 2006-02-08 Raphael Neider <rneider AT web.de>
1155
1156         * src/pic/pcode.c (pciTRIS): fixed typo,
1157           (BuildFlow,LinkFlow_pCode): added (disabled) debug output,
1158           (LinkFlow): fixed handling of flows that end in a call,
1159           (ReuseReg): perform safety check earlier
1160         * src/pic/pcoderegs.c (pCodeRegMapLiveRangesInFlow): fixed
1161             to work with flows at the beginning of a pBlock,
1162             fixes #1426557 (Symbol not previously defined),
1163           (pic14_ReMapLiveRanges): NEW, destroy and rebuild register
1164             usage information
1165           (RemoveUnusedRegisters): update register usage info
1166         * src/pic/ralloc.c (newReg): prevent duplicate registers from being
1167             created, reuse existing ones instead
1168         * src/pic/gen.c (genPcall): fixed #1424719
1169
1170 2006-02-07 Bernhard Held <bernhard AT bernhardheld.de>
1171
1172         * link/z80/lkmain.c,
1173         * link/z80/lklex.c,
1174         * link/z80/lkdata.c,
1175         * link/z80/aslink.h: fixed build on current cygwin:
1176         replaced getline() by lk_getline()
1177
1178 2006-02-01 Borut Razem <borut.razem AT siol.net>
1179
1180         * src/regression/add.c, src/regression/add2.c, src/regression/add3.c,
1181           src/regression/add4.c, src/regression/and1.c, src/regression/and2.c,
1182           src/regression/arrays.c, src/regression/b.c, src/regression/bank1.c,
1183           src/regression/bool1.c, src/regression/bool2.c,
1184           src/regression/bool3.c, src/regression/call1.c,
1185           src/regression/compare.c, src/regression/compare10.c,
1186           src/regression/compare2.c, src/regression/compare3.c,
1187           src/regression/compare4.c, src/regression/compare5.c,
1188           src/regression/compare6.c, src/regression/compare7.c,
1189           src/regression/compare8.c, src/regression/compare9.c,
1190           src/regression/configword.c, src/regression/for.c,
1191           src/regression/inline.c, src/regression/mult1.c,
1192           src/regression/nestfor.c, src/regression/or1.c,
1193           src/regression/pointer1.c, src/regression/ptrfunc.c,
1194           src/regression/rotate1.c, src/regression/rotate2.c,
1195           src/regression/rotate3.c, src/regression/rotate4.c,
1196           src/regression/rotate5.c, src/regression/rotate6.c,
1197           src/regression/rotate7.c, src/regression/string1.c,
1198           src/regression/struct1.c, src/regression/sub.c,
1199           src/regression/sub2.c, src/regression/switch1.c,
1200           src/regression/while.c, src/regression/xor.c,
1201           src/regression/create_stc, src/regression/simulate,
1202           src/regression/rt.sh, src/regression/Makefile: reenabled Scott's PIC14
1203           regression tests
1204         * src/regression/gpsim_assert.h: added
1205
1206 2006-01-28 Bernhard Held <bernhard AT bernhardheld.de>
1207
1208         * src/ds390/gen.c (unsaveRegisters): fixed literal function pointer
1209         ((void (code *) (void)) 0) ();
1210         * as/hc08/aslex.c,
1211         * as/hc08/aslink.h,
1212         * as/hc08/asm.h,
1213         * as/hc08/asmain.c,
1214         * as/hc08/lkdata.c,
1215         * as/hc08/lklex.c,
1216         * as/hc08/lkmain.c,
1217         * as/mcs51/aslex.c,
1218         * as/mcs51/aslink.h,
1219         * as/mcs51/asm.h,
1220         * as/mcs51/asmain.c,
1221         * as/mcs51/lkdata.c,
1222         * as/mcs51/lklex.c,
1223         * as/mcs51/lkmain.c,
1224         * as/z80/aslex.c,
1225         * as/z80/asm.h,
1226         * as/z80/asmain.c: fixed build on current cygwin:
1227         replaced getline() by as_getline()
1228
1229 2006-01-27 Bernhard Held <bernhard AT bernhardheld.de>
1230
1231         * src/SDCC.y: fixed bug #716242, exchanged pointer and function
1232         declarator in the symbol chain
1233         * src/SDCCsymt.h,
1234         * src/SDCCsymt.c (processFuncPtrArgs): added, removes "(void)"
1235         parameter list for function pointers
1236         * src/SDCCast.c (decorateType): added call of processFuncPtrArgs()
1237         * support/regression/tests/bug-716242.c: added
1238
1239 2006-01-20 Bernhard Held <bernhard AT bernhardheld.de>
1240
1241         * src/SDCCicode.c (geniCodeAdd, geniCodeArray): use char for array
1242         offset if possible
1243         * src/SDCCast.c (getLeftResultType): 255 fits in char, not 256
1244
1245 2006-01-18 Bernhard Held <bernhard AT bernhardheld.de>
1246
1247         * src/SDCCast.c (backPatchLabels): fixed bug #1408066: made it
1248         inifinitely recurseable, added static
1249         * support/regression/tests/bug-1408066.c: added
1250
1251 2006-01-17 Bernhard Held <bernhard AT bernhardheld.de>
1252
1253         * src/SDCCicode.h,
1254         * src/SDCCicode.c (newiTempPreheaderLabel, newiTempLoopHeaderLabel):
1255         renamed, added possibility to create "postLoopLbl"-labels
1256         * src/SDCCBBlock.c (iCodeBreakDown): renamed newiTempPreheaderLabel to
1257         newiTempLoopHeaderLabel
1258         * src/SDCCloop.c (newInduction, newRegion, backEdges, insertIntoLoop,
1259         isNotInBlocks, addToExitsMarkDepth, createLoop, dominatedBy,
1260         addDefInExprs, assignmentsToSym, isOperandInvariant, pointerAssigned,
1261         hasNonPtrUse, loopInvariants, addressTaken, findInduction,
1262         findDefInRegion, mergeRegions, ifMerged, mergeInnerLoops): made static,
1263         (pinduction, pregion, hasIncomingDefs, findLoopEndSeq): disabled,
1264         (basicInduction): fixed bug #136564, made static,
1265         (loopInduction): changed parameter of basicInduction, made static,
1266         (addPostLoopBlock): added
1267         * src/SDCCloop.h: removed backEdges, pregion, pinduction,
1268         loopOptimizations, addressTaken, findDefInRegion, hasIncomingDefs,
1269         findLoopEndSeq
1270         * support/regression/tests/bug-136564.c: added
1271         * support/regression/ports/mcs51-xstack-auto/spec.mk: added
1272         --std-sdcc99 to LIBSDCCFLAGS
1273
1274 2006-01-16 Bernhard Held <bernhard AT bernhardheld.de>
1275
1276         * src/SDCCicode.c (geniCodeIfx): fix bug 1406131: always false
1277         while loop
1278         * support/regression/tests/bug-1406131.c: added
1279
1280 2005-12-31 Bernhard Held <bernhard AT bernhardheld.de>
1281
1282         * src/SDCCast.c (decorateType): fix promotion of unary minus
1283         * src/SDCCsymt.c (computeType): beautified
1284         * src/SDCCval.c (cheapestVal): beautified, old non-Ansi version removed,
1285         (valUnaryPM, valComplement): fix sign and promotion,
1286         (valNot): ANSI: result type is int (SDCC: unsigned char)
1287         * support/regression/tests/uminus.c: speedup by removing superflous
1288         test case 'int'
1289         * support/regression/tests/onebyte.c: added promotion and signedness
1290         tests for unary minus
1291         * support/regressions/tests/bug-477927.c: disable warning about
1292         uninitialized variables
1293         * support/regression/tests/not.c: added
1294
1295 2005-12-28 Bernhard Held <bernhard AT bernhardheld.de>
1296
1297         * device/lib/Makefile.in: added --std-sdcc99 to CFLAGS
1298         * src/mcs51/gen.c (gen51Code): show final register usage after
1299         fillGaps in asm with --i-code-in-asm
1300         * src/SDCClrange.c (sequenceiCode, setLiveFrom, setLiveTo,
1301         markLiveRanges, markAlive, findNextUseSym, findNextUse, unvisitBlocks,
1302         incUsed, rliveClear, adjustIChain): made static,
1303         (setFromRange): excluded because it's unused,
1304         (findPrevUseSym, markWholeLoop): added,
1305         (findPrevUse): rewritten; fixes bug 895992; now a complete search
1306         through all branches of predecessors enables sdcc to emit the warning
1307         W_LOCAL_NOINIT, marking of outermost loop was incomplete,
1308         (rlivePoint): made static, added parameter emitWarnings which is only
1309         true during the first run out of two,
1310         (findRecursiveSucc, findRecursivePred): removed,
1311         (computeLiveRanges): made static, added parameter emitWarnings,
1312         (dumpIcRlive): added for debugging only
1313         * src/SDCClrange.h: added boolean parameter to computeLiveRanges(),
1314         removed prototype of setFromRange()
1315         * src/SDCCopt.c (eBBlockFromiCode): added new parameter emitWarnings
1316         in call of computeLiveRanges()
1317         * support/regression/tests/bug-895992.c: added
1318         * support/regression/tests/bug-971834.c: added
1319         * support/valdiag/tests/bug-895992.c: added
1320         * support/valdiag/tests/bug-971834.c: added
1321
1322 2005-12-18 Raphael Neider <rneider AT web.de>
1323
1324         * src/pic16/gen.c: added IS_DIRECT macro for "direct" operands,
1325           (genUnpackBits): improved code for direct operands,
1326           (genPackBits): improved code for literal assignment to bitfields
1327             and for direct destination operands (no FSR indirection),
1328             prevented redundant AND, fixes #1362800,
1329           (AccLsh): added parameter to disable masking of the result
1330         * src/pic16/pcode.c (pic16_safepCodeUnlink): fixed to work with
1331           skip instructions with side-effects (like incfsz),
1332           (pic16_pCodeIsAlive): suppress verbose output unless pcode_verbose,
1333         * src/pic16/pcoderegs.c (RemoveRegsFromSet): removed annoying warning
1334         * device/lib/pic16/Makefile.common.in: added --asm=@GPASM@ to CC,
1335           fixes #1375263
1336
1337 2005-12-11 Bernhard Held <bernhard AT bernhardheld.de>
1338
1339         * src/SDCCicode.c (geniCodeAssign): fixed bug 11369874, don't use
1340         volatile variables as spill location
1341
1342 2005-12-10 Bernhard Held <bernhard AT bernhardheld.de>
1343
1344         * src/SDCCcse.c (findCheaperOp): fixed bug 1376320, copy signedness to
1345         replacing literals
1346         * support/regression/tests/bug-1376320.c: added
1347
1348 2005-12-08 Raphael Neider <rneider AT web.de>
1349
1350         * src/pic/device.c: renamed is_shared to pic14_is_shared
1351         * src/pic/gen.c (genIfx): re-enabled handling of sbits
1352         * src/pic/glue.c (emitSymbolToFile): added workaround for sbits,
1353           (is_valid_identifier): added for above workaround
1354
1355 2005-12-07 Maarten Brock <sourceforge.brock AT dse.nl>
1356
1357         * device/lib/Makefile.in: fixed to enable port-specific-objects
1358         * device/lib/ds390/i2c390.c (BitOutI2C): optimized by making bout unsigned
1359           char, thanks Hubert Sack
1360         * doc/sdccman.lyx: documented --xstack-loc,
1361           elaborated a bit more on interrupts and pitfalls,
1362           removed "setjmp/longjmp unsupported",
1363           documented some unsupported C99 features
1364         * src/SDCCmain.c (linkEdit): adapted default lib path for --stack-auto
1365         * src/SDCCpeeph.c (readRules): inserted patch 1367130 for finding missing
1366           if, thanks Hubert Sack
1367         * src/mcs51/gen.c (genEndFunction): enabled "pop psw" for regbank 0 isr
1368         * support/regression/Makefile.in: test-mcs51-stack-auto no longer needs to
1369           make make_library
1370         * support/regression/get_ticks.py: new, get cpu cycles and code size, so
1371           regression tests can report resource usage (rfe 700441)
1372         * support/regression/collate-results.py: report resource usage
1373         * support/regression/ports/ds390/spec.mk,
1374         * support/regression/ports/hc08/spec.mk,
1375         * support/regression/ports/mcs51/spec.mk,
1376         * support/regression/ports/ucz80/spec.mk: run sim output through get_ticks
1377         * support/regression/ports/ds390/uCsim.cmd,
1378         * support/regression/ports/hc08/uCsim.cmd,
1379         * support/regression/ports/mcs51/uCsim.cmd,
1380         * support/regression/ports/ucz80/uCsim.cmd: inserted "state" to report time
1381         * support/regression/ports/mcs51-stack-auto/spec.mk: no need to build the
1382           library, use the default one
1383         * support/regression/ports/mcs51-xstack-auto/spec.mk: inserted rules for
1384           building the library
1385
1386 2005-12-06 Maarten Brock <sourceforge.brock AT dse.nl>
1387
1388         * config.dsp: added dependency on .version and configure_vc.awk
1389         * device/include/setjmp.h: updated for --stack-auto and --xstack
1390         * device/include/mcs51/at89c51snd1c.h: corrected line endings
1391         * device/include/mcs51/XC866.h: added, thanks Llewellyn van Zyl
1392         * device/lib/_setjmp.c: updated for --stack-auto and --xstack
1393         * device/lib/libsdcc.lib: added _setjmp
1394         * src/SDCCast.c (createIvalCharPtr): fixed warnings,
1395           (decorateType): fixed bug 1372851,
1396           (optimizeGetHbit): fixed warning
1397         * src/SDCCglue.c (printIvalChar, printIvalArray): adapted for flexible
1398           array initialisation
1399         * support/regression/tests/bug1057979.c: added test for bug 1358192
1400         * support/regression/tests/setjmp.c: added, test for setjmp/longjmp
1401
1402 2005-12-03 Borut Razem <borut.razem AT siol.net>
1403
1404         * support/scripts/sdcc.nsi: added /SOLID option to "SetCompressor lzma"
1405           command since the NSIS was upgraded to version 2.11 on CF x86-linux2
1406
1407 2005-11-29 Bernhard Held <bernhard AT bernhardheld.de>
1408
1409         * src/SDCCast.c (createIvalStruct, createIvalArray, createIvalPtr,
1410         createIval): implement symbol independant "flexible array member",
1411         (createIvalCharPtr): implemented flexible array initialisation with a
1412         string
1413         * src/SDCCsymt.c (copyStruct): removed,
1414         (getSize): fixed misleading comment,
1415         (getAllocSize): removed, the additional allocation size is now in
1416         sym->flexArrayLength,
1417         (checkStructFlexArray): new, syntax checks for flexible array members,
1418         (compStructSize): added syntax checks for "flexible array members"
1419         (copyStruct): removed,
1420         (copyLinkChain): removed inefficient fix for bug 770487
1421         * src/SDCCglue.c (emitRegularMap): getAllocSize has been removed
1422         * src/SDCCsymt.h: added structdef.b_flexArrayMember and
1423         symbol->flexArrayLength
1424         * src/SDCCerr.c,
1425         * src/SDCCerr.h: added W_INVALID_FLEXARRAY, W_C89_NO_FLEXARRAY,
1426         E_FLEXARRAY_NOTATEND and E_FLEXARRAY_INEMPTYSTRCT
1427         * support/regression/tests/structflexarray.c: added
1428         * support/valdiag/tests/structflexiblearray.c: added
1429
1430 2005-11-29 Bernhard Held <bernhard AT bernhardheld.de>
1431
1432         * src/SDCCast.c (decorateType): fixed bug 1368489
1433         * support/Util/SDCCerr.c,
1434         * support/Util/SDCCerr.h: added warning W_CMP_SU_CHAR
1435
1436 2005-11-28 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
1437
1438         * device/include/mcs51/at89c51snd1c.h: added file submitted by
1439           Weston T. Schmidt <schmidtw AT users.sourceforge.net>, patch #1368001
1440
1441 2005-11-27 Borut Razem <borut.razem AT siol.net>
1442
1443         * support/cpp2/cppinit.c, support/cpp2/cpplib.h, support/cpp2/mkdeps.c,
1444           support/cpp2/mkdeps.h: added command line option
1445           -obj-ext=<extension> to SDCPP to define object file externion, used
1446           for generation of make dependencies (-M)
1447         * src/SDCCmain.c: pass -obj-ext=<extension> to SDCPP
1448
1449 2005-11-26 Borut Razem <borut.razem AT siol.net>
1450
1451         * support/scripts/sdcc.nsi: added small-stack-auto libraries,
1452           added missing device/lib/mcs51/crt*.asm, pic and pic16 sources,
1453           added pic and pic16 libraries
1454
1455 2005-11-26 Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
1456
1457         * device/include/float.h: Corrected typo in prototype of __fsgt
1458
1459 2005-11-25 Borut Razem <borut.razem AT siol.net>
1460
1461         * sdcc/device/lib/Makefile.in, sdcc/device/lib/incl.mk:
1462           added creation of model-mcs51-stack-auto libraries
1463
1464 2005-11-24 Bernhard Held <bernhard AT bernhardheld.de>
1465
1466         * src/SDCCsymt.c (copyLinkChain): fixed bug 770487, copy structdef
1467         and fields-list too
1468         * src/SDCCast.c (createIvalArray): removed obsolete comment
1469
1470 2005-11-24 Borut Razem <borut.razem AT siol.net>
1471
1472         * sdcc/device/lib/Makefile.in: remove all unnecessary files, 2nd try...,
1473           added missing device/lib/mcs51/crt*.asm sources
1474
1475 2005-11-23 Bernhard Held <bernhard AT bernhardheld.de>
1476
1477         * src/SDCCast.c (createIvalCharPtr): fixed bug 1348271
1478
1479 2005-11-22 Maarten Brock <sourceforge.brock AT dse.nl>
1480
1481         * device/lib/_fs2schar.c,
1482         * device/lib/_fs2sint.c,
1483         * device/lib/_fs2slong.c: optimized inline asm
1484
1485 2005-11-21 Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
1486
1487         * device/lib/_fs2slong.c, device/lib/_fs2sint.c, device/lib/_fs2char.c:
1488           Better handling of floats between -1.0 and 0.0.
1489
1490 2005-11-20 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
1491
1492         * src/mcs51/peeph.def: added missing "if"s as noted by Hubert Sack.
1493           (the missing "if"s prohibited removal of redundant labels)
1494
1495 2005-11-19 Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
1496
1497         * device/lib/_fs2slong.c, device/lib/_fs2sint.c, device/lib/_fs2char.c:
1498           Properly convert floats between -1.0 and 0.0 to long, int, and char
1499           types (max integer value of negative floats tends to zero).
1500         * device/lib/modff.c, device/lib/ceilf.c, device/lib/floorf.c:
1501           Removed changes made so to work properly with floats between
1502           -1.0 and 0.0, as the problem is fixed in _fs2slong.c, _fs2sint.c,
1503           and _fs2char.c
1504
1505 2005-11-18 Bernhard Held <bernhard AT bernhardheld.de>
1506
1507         * src/SDCCcse.c (ReplaceOpWithCheaperOp): minor fix for debugging only
1508         * src/mcs51/gen.c (genUnpackBits): better code and a fix,
1509         (genCast) cosmetic change
1510         * src/ds390/gen.c (genUnpackBits, ): ported from mcs51
1511         * src/ds390/ralloc.c (packRegsForAssign): ported fix for bitfields
1512         from mcs51
1513         * support/regression/tests/bitfields (testSignedBitfields): added
1514
1515 2005-11-18 Borut Razem <borut.razem AT siol.net>
1516
1517         * sdcc/device/lib/Makefile.in: remove all unnecessary files
1518         * device/lib/pic/Makefile.rules, device/lib/pic16/Makefile.subdir:
1519           introduced SILENT option to make building of pic16 libraries less
1520
1521 2005-11-18 Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
1522
1523         * device/lib/modff.c, device/lib/ceilf.c, device/lib/floorf.c:
1524           Now they work properly with floats between -1.0 and 0.0
1525         * device/lib/printf_large.c: Removed temporary patch for bug 1358192
1526
1527 2005-11-18 Maarten Brock <sourceforge.brock AT dse.nl>
1528
1529         * src/SDCCicode.c (printOperand): added missing else
1530
1531 2005-11-18 Bernhard Held <bernhard AT bernhardheld.de>
1532
1533         * src/SDCCsymt.c (computeType): fixed bug 1358192: added missing else,
1534         reformatted for better readability
1535         * src/mcs51/gen.c (genUnpackBits): initial, incomplete support for
1536         signed bitfields
1537
1538 2005-11-17 Borut Razem <borut.razem AT siol.net>
1539
1540         * device/lib/pic16/Makefile.rules, device/lib/pic16/Makefile.subdir:
1541           introduced SILENT option to make building of pic16 libraries less
1542           verbose - used for nightly snapshot build
1543         * doc/sdccman.lyx: documented that SDCDB and ucSim are currently not
1544           available on Win32 platforms.
1545         * sdcc/device/lib/Makefile.in: added library sources for mcs51, small,
1546           medium, large, pic and pic16
1547
1548 2005-11-16 Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
1549
1550         * device/lib/printf_large.c: Temporary patch for bug 1358192:
1551           printf("%f"...) sets fraction to zero.
1552
1553 2005-11-16 Raphael Neider <rneider AT web.de>
1554
1555         * src/pic/pcode.c (LinkFlow): handle empty flows correctly,
1556           fixes #1357221
1557         * src/pic/gen.c (genIfx): implemented for CARRY bit
1558         * src/pic16/gen.c (genAssign,genCast): fixed assigning/casting
1559           to generic pointers, fixes #1357332,
1560           (pic16_movLit2f): NEW,
1561           (pic16_storeForReturn,genDataPointerSet): use pic16_movLit2f
1562
1563 2005-11-14 Maarten Brock <sourceforge.brock AT dse.nl>
1564
1565         * src/SDCCmain.c (parseCmdLine): fixed bug 1356800, thanks rsudjian
1566
1567 2005-11-11 Raphael Neider <rneider AT web.de>
1568
1569         * src/pic/gen.c: handle FPOINTERS like POINTERS everywhere
1570         * src/pic16/gen.c (pic16_derefPtr): now works for non-pointers as well,
1571           compute pointer's type from operand,
1572           (genUnpackBits,genPackBits): handle FPOINTERS correctly, re-indented,
1573           improved single bit reads, fixes bug #1353379
1574
1575 2005-11-09 Borut Razem <borut.razem AT siol.net>
1576
1577         * support/scripts/sdcc.nsi: added lib/pic to the package
1578
1579 2005-11-08 Maarten Brock <sourceforge.brock AT dse.nl>
1580
1581         * src/SDCCval.c (valUnaryPM): fixed bug 1350699
1582
1583 2005-11-06 Maarten Brock <sourceforge.brock AT dse.nl>
1584
1585         * support/regression/tests/bug1348008.c: added
1586         * src/mcs51/gen.c (saveRBank, unsaveRBank): fixed bug 1348008
1587         * support/regression/tests/bug1337835.c: updated comment
1588
1589 2005-11-06 Borut Razem <borut.razem AT siol.net>
1590
1591         * sim/ucsim/error.cc, sim/ucsim/errorcl.h,
1592           sim/ucsim/sim.src/stack.cc, sim/ucsim/sim.src/stackcl.h,
1593           sim/ucsim/sim.src/uc.cc, sim/ucsim/sim.src/uccl.h,
1594           sim/ucsim/sim.src/mem.cc, sim/ucsim/sim.src/memcl.h,
1595           sim/ucsim/cmd.src/set.cc, sim/ucsim/cmd.src/show.cc:
1596           dynamic construction of cl_error_class and derivates - 2.nd try
1597
1598 2005-11-05 Borut Razem <borut.razem AT siol.net>
1599
1600         * sim/ucsim/sim.src/error.cc: fixed uninitialized class member variable
1601           bug, which caused Bus Errors on sparc solaris
1602
1603 2005-11-04 Borut Razem <borut.razem AT siol.net>
1604
1605         * sim/ucsim/error.cc, sim/ucsim/errorcl.h,
1606           sim/ucsim/sim.src/stack.cc, sim/ucsim/sim.src/stackcl.h,
1607           sim/ucsim/sim.src/uc.cc, sim/ucsim/sim.src/uccl.h,
1608           sim/ucsim/sim.src/mem.cc, sim/ucsim/sim.src/memcl.h,
1609           sim/ucsim/cmd.src/cmdconf.cc: dynamic construction of cl_error_class
1610           and derivates to resolve the initialization problem on OSX
1611
1612 2005-11-02 Borut Razem <borut.razem AT siol.net>
1613
1614         * sim/ucsim/cmd.src/cmdutil.cc, sim/ucsim/cmd.src/newcmd.cc:
1615           corrected typo - #include <winsock2.h>
1616
1617 2005-11-02 Maarten Brock <sourceforge.brock AT dse.nl>
1618
1619         * src/asm.c (printILine): always close tmpFile, thanks Beau E. Cox,
1620           (_asxxxx_mapping): added org directive for future enhancements
1621
1622 2005-11-01 Borut Razem <borut.razem AT siol.net>
1623
1624         * sim/ucsim/app.cc, sim/ucsim/cmd.src/cmdutil.cc, sim/ucsim/cmd.src/newcmd.cc:
1625           enabled sockets on WIN32
1626         * sim/ucsim/cmd.src/newcmd.cc: fixed bug with uninitialized variables
1627
1628 2005-10-31 Borut Razem <borut.razem AT siol.net>
1629
1630         * support/regression/generate-cases.py: escape backslashes in {testcase}:
1631           WIN32 backslash path delimiters should be escaped when used in C strings
1632         * support/regression/tests/bitfields.c: exclude failing assertions for
1633           __CYGWIN32__ and __MINGW32__ hosts
1634
1635 2005-10-30 Borut Razem <borut.razem AT siol.net>
1636
1637         * src/SDCCutil.c: corrected double comparison typo
1638
1639 2005-10-30 Maarten Brock <sourceforge.brock AT dse.nl>
1640
1641         * device/lib/medium/Makefile: added for new memory model medium
1642         * device/include/asm/mcs51/features.h: updated for medium/pdata
1643         * device/include/mcs51/c8051f120.h: added sfr16/sfr32 definitions,
1644           added Multiply & Accumulate sbit's and MAC0_PAGE define
1645         * device/include/mcs51/c8051f300.h: added sfr16 definitions
1646         * device/include/mcs51/c8051f310.h: added sfr16 definitions
1647         * device/lib/_mullong.c: update for medium model
1648         * device/lib/incl.mk: added medium model
1649         * doc/sdccman.lyx: documented medium model
1650         * src/SDCCast.c (isBitAndPow2): simplified using updated powof2
1651         * src/SDCCicode.c (geniCodeMultiply, geniCodeDivision): use updated powof2
1652         * src/SDCCmain.c (optionsTable, linkEdit): enabled medium model
1653         * src/SDCCmem.c (allocIntoSeg): set iaccess for pdata symbols,
1654           (allocParms): set SCLS and OCLS to pdata for medium model
1655         * src/SDCCsymt.c (processFuncArgs): use default_local_map and set iaccess
1656           for pdata,
1657           (powof2): return <0 if not power of 2
1658         * src/avr/gen.c (genBitWise): use updated powof2
1659         * src/mcs51/gen.c (genMinusDec): use acc if necessary,
1660           (shiftR2Left2Result): small optimization in setup, save acc when storing,
1661           (shiftLLeftOrResult): use B if necessary
1662         * src/mcs51/main.c (_mcs51_finaliseOptions, mcs51_port): added medium model
1663         * src/mcs51/peeph.def: renamed 226 to 226.b, added 226.a
1664         * src/pic/main.c (_pic14_do_link): made void parameter list explicit
1665         * support/regression/Makefile.in: added test-mcs51-medium
1666         * support/regression/ports/mcs51-medium/spec.mk: added to test medium model
1667
1668 2005-10-28 Bernhard Held <bernhard AT bernhardheld.de>
1669
1670         * src/SDCCsymt.c (compStructSize): make bitfields without (un)signed
1671         specifier unsigned
1672         * device/lib/time.c (mktime): fixed bug 1334315
1673
1674 2005-10-28 Raphael Neider <rneider AT web.de>
1675
1676         * device/include/pic/p16f_common.inc: added common declarations
1677         * src/pic/ralloc.c (initStack): moved regs *r to block start for Alpha
1678
1679 2005-10-27 Maarten Brock <sourceforge.brock AT dse.nl>
1680
1681         * src/mcs51/gen.c (getTempRegs): return 0 if not enough registers found,
1682           (aopPutUsesAcc): added to predict accumulator use,
1683           (assignResultValue): save acc if necessary,
1684           (genMinusDec): store result if indirectly addressed,
1685           (genDivOneByte):  save acc if necessary,
1686           (movLeft2Result): bugfix if left already in acc,
1687           (genAnd, genOr, genXor, shiftL2Left2Result, shiftR2Left2Result): pay more
1688             attention to accumulator use (esp. pdata),
1689           (genReceive): receive pdata correctly
1690         * src/SDCCicode.c (isOperandInPagedSpace): added to detect pdata operands
1691         * src/SDCCicode.h: added isOperandInPagedSpace prototype
1692
1693 2005-10-27 Raphael Neider <rneider AT web.de>
1694
1695         * doc/sdccman.lyx: corrected version (should be 2.5.4 not 2.5.5)
1696
1697 2005-10-27 Raphael Neider <rneider AT web.de>
1698
1699         * .version: changed version to 2.5.4
1700         * doc/sdccman.lyx: changed version to 2.5.4, added some remarks to PIC14
1701         * device/lib/pic/libsdcc/{_mulint.c,_mullong.c}: use unsigned literals,
1702           (_divschar.c,divuchar.c,_mulchar.c,_modschar.c,_moduchar): NEW,
1703             arithmetics support routines
1704         * device/lib/pic/Makefile.rules: have assembler sources preprocessed
1705         * device/lib/Makefile.in: also create installdir for pic
1706
1707         * src/SDCCopt.c (cnvToFcall): mark support routines `extern' for
1708           pic14 port as well
1709         * src/pic/device.c (dump_sfr): rewritten to delegate register
1710           placement to the linker (use `extern sym' rather than sym EQU addr),
1711           (validAddress): fixed to check last specified address
1712         * src/pic/gen.c (aopForSym): added code to deal with array (useless?),
1713           (popGetLit): truncate literal value to 8 bit,
1714           (popGet): moved assert to more appropriate place
1715           (popGetExternal): create pCode operand from and mark the according
1716             symbol as being `extern'
1717           (popGetAddr): added sanity check on immediate's offset, provide
1718             GPOINTER tag on demand
1719           (aopPut): fixed for immediates,
1720           (mov2w_op): move operand's address or contents to WREG (depending on
1721             operand type), safer variant of mov2w,
1722           (movwf,call_libraryfunc): NEW, handy abbreviations,
1723           (get_argument_pcop,get_return_val_pcop,pass_argument,
1724           get_returnvalue): interface for accessing function parameters and
1725             return values,
1726           (assignResultValuei,genRet): use new parameter/return value interface
1727           (pic14_getDataSize): back to old version handling generic pointers,
1728           (pic14_toBoolean,genNot,genCpl,genCmpEq,genOrOp): heavily rewritten,
1729             provided implementation and/or fixed old one,
1730           (genMultOneByte,genDivOneByte,genModOneByte): implemented as library
1731             calls, removed legacy 8051 reference code
1732           (AccLsh,AccRsh): rewritten and fixed to deal with signed operands
1733           (loadSignToC): NEW, move the operands sign bit to CARRY,
1734           (genGenericShift): NEW, replaces genLeftShift, genRightShift and
1735             genRightShiftSigned, accepts negative shift counts,
1736           (setup_fsr): load FSR and adjust IRP (indirect memory access),
1737           (emitPtrByteGet,emitPtrByteSet): rewritten, now works with
1738             generic pointers, __data pointers and __code pointers,
1739           (genUnpackBits,genPackBits): rewritten to work with generic pointers
1740             and signed bitfields, limit bitfields to 8 bit,
1741           (genDataPointerGet): fixed number of bytes read,
1742           (genGenPointerGet,genConstPointerGet): fixed bitfield access,
1743           (genPointerGet,genPointerSet): fixed handling of __code pointers,
1744             pointers to constant data are no longer assumed to point to __code
1745             space, removed invalid pointer types,
1746           (bitpatternFromVal): retrieve the PICs representation of an integer
1747             or float literal,
1748           (genDataPointerSet): fixed assigning to po_immediate operands,
1749           (genGenPointerSet): implemented as library call,
1750           (genIfx): fixed incorrect condition,
1751           (genAddrOf): limit generic pointers' addresses to 2 bytes,
1752             provide GPOINTER tag according to destination's storage class,
1753           (genCast): added code to handle casting to generic pointers, added
1754             sign-/zero extension of the result
1755           (aop_isLitLike,op_isLitLike): fixed handling of immediates
1756         * src/pic/gen.h: added macros to access IRP bit in STATUS register
1757         * src/pic/genarith.c (genAddLit): use min(result's,left's) size, sign
1758           extend the result
1759         * src/pic/glue.c (is_shared_address,is_shared): check whether a given
1760           address/register resides in the shared banks
1761           (emitSymbolToFile): improved to handle global and `pinned' symbols,
1762             put all variables into separate sections (have the linker arrange
1763             them)
1764           (picglue): put init code and interrupt handlers in separate sections
1765         * src/pic/main.c: added port specific options table, modified to PORT
1766           structure to make GPOINTERs 3 byte, added pic14_options
1767           (_pic14_do_link): private linking routine (update paths to libraries,
1768             add libsdcc.lib by default)
1769         * src/pic/main.h: declare pic14_options
1770         * src/pic/pcode.c: fixed instructions i/o relations,
1771           (RegCond): reverted to correct version,
1772           (newpCodeOpLit): truncate literals to 8 bit,
1773           (genericPrint): added debug output,
1774           (getRegFromInstruction): fixed for various operand types, simplified
1775           (BuildFlow): fixed broken handling of isntructions with labels
1776           (LinkFlow): start at last instruction in flow (skip trailing comments),
1777             pass the flow on to the next instruction after CALL
1778           (pCodeReplace): NEW, replace a pCode and move meta data to the new one
1779           (insertPCodeInstruction): fixed inserting after a skip instruction,
1780           (DoBankSelect): fixed for labeled instructions
1781           (OptimizepBlock): honor --nopeep switch
1782           (AnalyzeFlow,ReuseReg): prevent crash on source files with no function
1783         * src/pic/pcodepeep.c (pCodePeepMatchRule): prevent NULL pointer accesses
1784         * src/pic/pcoderegs.c (regIsLocal): NEW, check visibility of a register
1785           (pCodeOptime2pCodes): allow disabling this optimization via
1786             --no-pcode-opt due seldomly occuring bugs, fixed some conditions
1787             but is still buggy), started implementation of a dataflow based
1788             pCode optimization (CSE + dead code elimination)
1789           (pCodeRegMapLiveRangesInFlow): removed bogus inCond
1790         * src/pic/ralloc.c (initStack): renamed stack registers to STK%d, the new
1791           names are independant of the stack location and therefore portable across
1792           devices
1793
1794 2005-10-27 Maarten Brock <sourceforge.brock AT dse.nl>
1795
1796         * src/mcs51/ralloc.c (bitType): added to detect bit variables,
1797           (selectSpil): fixed bug 1337835 by not spilling bit variables
1798         * support/regression/tests/bug1337835.c: added test for this bug
1799         * src/mcs51/peeph.def: restart after rule 3.c,
1800           addded rules 263.x to optimize loading constants
1801
1802 2005-10-26 Raphael Neider <rneider AT web.de>
1803
1804         * src/SDCCsymt.c (compStructSize): allow signed bitfields for PIC ports
1805         * src/pic16/gen.c (genUnpackBits): support signed bitfields,
1806           (genAssign): emit warning when casting literals to generic pointer
1807             type, also applies when taking the address of a fixed variable,
1808           (genCast): improved casting to generic pointers
1809         * src/pic16/glue.c (pic16emitStaticSeg): fixed(?) handling of fixed
1810           extern variables, added verbose error message
1811         * device/include/pic16/{string.h,errno.h}: added #pragma library c
1812
1813 2005-10-26 Bernhard Held <bernhard AT bernhardheld.de>
1814
1815         * src/mcs51/gen.c (genMinus): fixed bug 1270906: reverse subtraction,
1816         carry must be complemented too
1817         * src/mcs51/peeph.def: addded rule 262 to remove double cpl c, which
1818         could be emitted by genMinus
1819         * src/SDCCval.c (constVal): fixed bug 1305065
1820
1821 2005-10-25 Bernhard Held <bernhard AT bernhardheld.de>
1822
1823         * src/SDCCast.c (addCast): added promotion for bit variables
1824         (decorateType): emit W_COMPLEMENT before the problem vanishes behind
1825         promotion casts + optimisation
1826         (optimizeGetWord): fix warning 'i' might be used uninitialized
1827         * src/mcs51/gen.c (genCpl): removed W_COMPLEMENT
1828         * src/ds390/gen.c (genCpl): removed W_COMPLEMENT
1829
1830 2005-10-24 Bernhard Held <bernhard AT bernhardheld.de>
1831
1832         * src/SDCCicode.c (ast2iCode): reverted to 1.224 because of regression:
1833         all chars are promoted to int; promotion should be handled in SDCCast.c
1834
1835 2005-10-15 Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
1836
1837         * device/lib/_strcmp.c: Fixed bug 1326457
1838
1839 2005-10-11 Raphael Neider <rneider AT web.de>
1840
1841         * device/lib/pic16/libio/i2c.ignore: added 1320, fixes broken builds
1842         * device/lib/pic16/libdev/pic18f1320.c: added 1320's device library
1843
1844 2005-10-05 Maarten Brock <sourceforge.brock AT dse.nl>
1845
1846         * src/SDCC.y (AT): fixed bug with sfr32 addresses when built with GCC
1847         * support/regression/tests/sfr16.c: added test for the sfr32 bug
1848
1849 2005-10-04 Raphael Neider <rneider AT web.de>
1850
1851         * device/include/pic16/pic18fregs.h, src/pic16/devices.inc,
1852           device/lib/pic16/pics.all: added pic18f1320
1853         * src/pic16/pcode.c (mnem2key): fixed prototype's argument mismatch
1854
1855 2005-09-30 Raphael Neider <rneider AT web.de>
1856
1857         * src/pic16/device.c (Pics16[]): moved device descriptions to devices.inc
1858         * src/pic16/devices.inc: NEW, provides device descriptions
1859         * src/pic16/gen.c (genInline): fixed handling of ';'-comments
1860
1861 2005-09-26 Maarten Brock <sourceforge.brock AT dse.nl>
1862
1863         * src/SDCCicode.c (operandOperation): added GETABIT, GETBYTE, GETWORD and
1864           GETHBIT
1865
1866 2005-09-25 Maarten Brock <sourceforge.brock AT dse.nl>
1867
1868         * doc/sdccman.lyx: updated Highest Order Bit documentation,
1869           documented Any Order Bit, Higher Order Byte and Higher Order Word
1870         * src/SDCC.y: added tokens GETABIT, GETBYTE, GETWORD
1871         * src/SDCCast.c (optimizeGetHbit): updated to also accept bool=expr&(1<<n),
1872           (optimizeGetAbit): new, to get any bit, not only the high bit,
1873           (optimizeGetByte): new, to get a byte from a (long) int: expr>>(8*n),
1874           (optimizeGetWord): new, to get a word from a long int: expr>>(8*n),
1875           (isConformingBody): also check GETABIT, GETBYTE, GETWORD,
1876           (decorateType): '&': also try GETABIT, GETBYTE, GETWORD optimization,
1877             RIGHT_OP: also try GETBYTE, GETWORD optimization,
1878             GETABIT, GETBYTE, GETWORD: decorate them,
1879           (isShiftRightLitVal, isBitAndPowOf2): new helper functions,
1880           (ast_print): added GETABIT, GETBYTE, GETWORD
1881         * src/SDCCcse.c (isSignedOp): added GETABIT, GETBYTE, GETWORD
1882         * src/SDCCicode.c (codeTable): added GETABIT, GETBYTE, GETWORD,
1883           (geniCodeBinary): new generic binary icode,
1884           (ast2iCode): added GETABIT, GETBYTE, GETWORD
1885         * src/port.h: updated comment for PORT.hasExtBitOp
1886         * src/mcs51/gen.c (genGetAbit): new, to get any single bit,
1887           (genGetByte): new, to get a single byte,
1888           (genGetWord): new, to get a word from a long,
1889           (gen51Code): added GETABIT, GETBYTE, GETWORD
1890         * src/mcs51/main.c (hasExtBitOp): added GETABIT, GETBYTE, GETWORD
1891
1892 2005-09-23 Raphael Neider <rneider AT web.de>
1893
1894         * configure.in, configure: have device/lib/pic configured
1895         * device/lib/Makefile.in: added model-pic14
1896         * device/lib/clean.mk: added pic/ to clean rule
1897         * device/lib/pic: added rudimentary pic14 library providing support
1898           functions for multiplication/division/generic pointer access
1899         * src/SDCCopt.c (convilong): mark support functions as extern
1900           for pic14 port as well
1901         * src/pic/gen.c (genMult): added assertions,
1902           (genpic14Code): emit warning on unhandled iCodes
1903         * src/pic/main.c (_hasNativeMulFor): return true only for 8x8 bit
1904         * src/pic/pcode.c (pCodeOpCopy),
1905         * src/pic16/pcodepeep.c (pic16_pCodeOpCopy): fixed handling of various
1906           pCodeOpReg-subtypes (PO_{STATUS,INTCON,PCL,PCLATH,PCLATU,BSR,
1907           SFR_REGISTER}), made safe for future extensions
1908         * src/pic16/pcode.c (pic16_safepCodeUnlink): allow for removal of
1909           instructions even if preceeded by SKIP instructions (also remove
1910           them); removed unused code
1911         * src/pic16/pcode.h: added arg2 to pCodeOpLit to match pCodeOpLit2,
1912           prevents leaving parts of the structure uninitialized after copying
1913
1914 2005-09-22 Maarten Brock <sourceforge.brock AT dse.nl>
1915
1916         * src/mcs51/gen.c (genMinus): fix for undetected bug introduced 3 months
1917           ago by me
1918         * support/regression/tests/addsub.c: added test for the bug
1919
1920 2005-09-21 Raphael Neider <rneider AT web.de>
1921
1922         * device/include/pic16/pic18f1220.h,
1923           device/lib/pic16/libdev/pic18f1220.c: added ECCPAS sfr and bitfield
1924         * device/lib/pic16/Makefile.rules: added missing opening paren
1925         * src/pic16/gen.c (pic16_genNot,pic16_genCpl): removed as these
1926           are provided in genutils.c,
1927           (genUminusFloat,genUminus,genCmpEq): added asserts on different
1928           operand/result sizes,
1929           (genCmp): assert on NULL pointers first, then check deref'ed values
1930         * src/pic16/genutils.c (pic16_genCpl): fixed for different operand/
1931           result size
1932
1933 2005-09-18 Raphael Neider <rneider AT web.de>
1934
1935         * src/pic16/gen.c (genFarPointerGet,genFarPointerSet): removed
1936           as these are now unused,
1937           (genPointerGet,genPointerSet): handle FPOINTERs like POINTERs
1938         * src/pic16/pcode.c (pic16_symIsSpecial): assume REG_TMPs to be
1939           local, avoids uninitialized pointer dereference on r->name
1940         * src/pic16/ralloc.c (newReg): fixed indentation
1941
1942 2005-09-13 Maarten Brock <sourceforge.brock AT dse.nl>
1943
1944         * src/SDCCval.c (constVal): fixed bug 730366
1945         * support/Util/SDCCerr.c,
1946         * support/Util/SDCCerr.h: added warning W_INVALID_INT_CONST
1947
1948 2005-09-10 Maarten Brock <sourceforge.brock AT dse.nl>
1949
1950         * as/mcs51/lkmem.c (summary2): fixed report for absolute areas (bug 1210220)
1951
1952 2005-09-09 Maarten Brock <sourceforge.brock AT dse.nl>
1953
1954         * src/mcs51/peeph.def (241.x): fixed bug when comparing generic pointers
1955
1956 2005-09-08 Maarten Brock <sourceforge.brock AT dse.nl>
1957
1958         * as/hc08/lkaomf51.c (OutputName): made name unsigned char,
1959           (hex2dec): made hex_digit unsigned char, removed ascii dependance
1960         * as/mcs51/lkaomf51.c (OutputName): made name unsigned char,
1961           (hex2dec): made hex_digit unsigned char, removed ascii dependance
1962         * as/mcs51/lkarea.c (lnkarea2): sort absolute areas to the front
1963         * packihx/packihx.c (hexDigit): made c unsigned char
1964         * as/mcs51/lklibr.c (fndsym),
1965         * link/z80/lkgb.c (gb),
1966         * link/z80/lklibr.c (fndsym),
1967         * link/z80/lkrloc.c (relr),
1968         * sim/ucsim/libltdl/ltdl.c (load_deplibs, try_dlopen),
1969         * src/SDCC.lex (checkCurrFile, process_pragma),
1970         * src/SDCCglue.c (spacesToUnderscores),
1971         * src/SDCCmain.c (setParseWithComma, processFile),
1972         * src/asm.c (tvsprintf, printCLine),
1973         * src/avr/gen.c (emitcode, aopPut),
1974         * src/ds390/gen.c (emitcode),
1975         * src/hc08/gen.c (emitcode, emitinline),
1976         * src/mcs51/gen.c (emitcode, genInline),
1977         * src/pic/pcodepeep.c (cvt_extract_destination, cvt_extract_status,
1978           tokenizeLineNode),
1979         * src/pic/ralloc.c (debugLog),
1980         * src/pic16/pcodepeep.c (cvt_extract_destination, cvt_extract_status,
1981           tokenizeLineNode),
1982         * src/pic16/ralloc.c (debugLog),
1983         * src/z80/main.c (_process_pragma):
1984            made all ctype.h function calls safe
1985         * src/SDCCopt.c: include math.h for fabs
1986         * src/SDCCpeeph.c: added macros ISCHARDIGIT, ISCHARSPACE and ISCHARALNUM
1987           and used them throughout the code to make ctype.h function calls safe
1988         * src/ds390/main.c (asmLineNodeFromLineNode),
1989         * src/mcs51/main.c (asmLineNodeFromLineNode): made p unsigned char*
1990         * src/pic/gen.c (DEBUGpic14_emitcode, pic14_emitcode): made lbp
1991            unsigned char*
1992         * src/pic/pcode.c (mnem2key): made mnem unsigned char*,
1993           (newpCodeAsmDir): made ctype.h function calls safe
1994         * src/pic16/gen.c (pic16_emitpcomment, DEBUGpic16_emitcode,
1995           pic16_emitcode):  made lbp unsigned char*
1996         * src/pic16/pcode.c (mnem2key): made mnem unsigned char*,
1997           (pic16_newpCodeAsmDir): made ctype.h function calls safe
1998         * src/xa51/gen.c (emitcode),
1999         * src/z80/gen.c (_emit2): made lbp unsigned char*
2000         * support/Util/MySystem.c (split_command): made cmd_line and p unsigned
2001            char*
2002
2003 2005-09-05 Raphael Neider <rneider AT web.de>
2004
2005         * src/pic16/ralloc.c (pic16_allocDirReg): use device specific
2006           access bank splitpoint
2007
2008 2005-09-05 Raphael Neider <rneider AT web.de>
2009
2010         * device/lib/pic16/libc/Makefile: added (missing) string to SUBDIRS
2011
2012 2005-09-03 Maarten Brock <sourceforge.brock AT dse.nl>
2013
2014         * .version: changed to version 2.5.3
2015         * doc/sdccman.lyx: changed version to 2.5.3,
2016           documented --codeseg and --constseg and pragma codeseg and constseg,
2017           documented bit parameters (reentrant) and bit returning
2018         * src/SDCCicode.c (geniCodeReceive): fixed (possible) bug generating
2019            currFunc->recvSize, but is this ok for all ports?
2020           (ast2iCode): result of ~ on unsigned char must be cast to int for
2021            bool to work
2022         * src/SDCCmem.c (allocGlobal, allocLocal): don't put bit returning
2023           function pointers in bit space
2024         * src/SDCCsymt.c (checkSClass): allow bit returning function pointers,
2025           (processFuncArgs): call port.reg_parm() with reentrancy info
2026         * src/port.h,
2027         * src/avr/main.c,
2028         * src/ds390/main.c,
2029         * src/hc08/main.c,
2030         * src/pic/main.c,
2031         * src/pic16/main.c,
2032         * src/xa51/main.c,
2033         * src/z80/main.c: port.reg_parm prototype extended with
2034           "bool reentrant" parameter
2035         * src/mcs51/main.c (_mcs51_regparm): use parameter reentrant instead of
2036           options.stackAuto for allocating bit register parameters
2037         * src/mcs51/gen.c (genNot): optimized complementing direct bit,
2038           (genSend): set BitBankUsed if it is,
2039           (selectRegBank): factored out of genCall for use in genPcall,
2040           (genCall): removed redundant dtype assignmen, use selectRegBank,
2041           (genPcall): handle returning in Carry properly, save in F0 if needed,
2042           (genReceive): handle bit register parameters
2043         * src/mcs51/ralloc.c (updateRegUsage): update BitBankUsed along the way,
2044           (mcs51_assignRegisters): enable bit registers for all reentrant
2045            functions and don't set BitBankUsed unconditionally
2046         * src/mcs51/peeph.def (177.d): fixed bug if %2==%3
2047         * support/regression/tests/bitvars.c: enable tests for SDCC_STACK_AUTO
2048         * support/regression/tests/funptrs.c: added tests for BOOL and for return
2049
2050 2005-08-27 Borut Razem <borut.razem AT siol.net>
2051
2052         * device/lib/Makefile.in: cp on sparc-solaris (SunOS) and on
2053         ppc-osx (Darwin) does not support -u option. It seems that it is
2054         supported only on Linux - GNU cp
2055
2056 2005-08-25 Borut Razem <borut.razem AT siol.net>
2057
2058         * sim/ucsim/gui.src/serio.src/Makefile.in,
2059           sim/ucsim/s51.src/Makefile.in, sim/ucsim/avr.src/Makefile.in,
2060           sim/ucsim/z80.src/Makefile.in, sim/ucsim/hc08.src/Makefile.in,
2061           sim/ucsim/xa.src/Makefile.in: install -s changed to 2 steps:
2062           install and strip, since the strip at /usr/ccs/bin should be used
2063           on solaris
2064
2065 2005-08-24 Borut Razem <borut.razem AT siol.net>
2066
2067         * clean.mk, device/lib/clean.mk: find on sparc-solaris does not support -maxdepth option
2068
2069 2005-08-23 Bernhard Held <bernhard AT bernhardheld.de>
2070
2071         * src/SDCCopt.c (convertToFcall): fixed modulus with divisors 1 and
2072         ffffffffu
2073
2074 2005-08-23 Maarten Brock <sourceforge.brock AT dse.nl>
2075
2076         * as/mcs51/aslink.h: completed lkrloc.c prototypes
2077         * as/mcs51/lkmain.c (link_main): fixed warning
2078         * device/include/stdbool.h: ds390 has no advanced bit support yet
2079         * src/SDCC.y: use SPEC_SHORT and renamed _signed to b_signed
2080         * src/SDCCsymt.c: use SPEC_SHORT and renamed _signed to b_signed
2081         * src/SDCCsymt.h (struct specifier): renamed _xxx bitfields to b_xxx
2082           and updated their macros
2083         * src/SDCCval.c (constVal): updated comment for renamed b_long
2084
2085 2005-08-22 Maarten Brock <sourceforge.brock AT dse.nl>
2086
2087         * as/mcs51/asdata.c: changed ctype['['] to BINOP
2088         * as/mcs51/asexpr.c (expr): added case '[' for bit access in bdata,
2089           (term): abused bit 15 of s_addr to indicate bit-addressable bytes,
2090           (oprio): set priority for '['
2091         * as/mcs51/aslink.h: added define R_BIT, and prototypes for adb_bit
2092            and adb_24_bit
2093         * as/mcs51/asm.h: added defines R_BIT and S_BIT
2094         * as/mcs51/lkarea.c (lnksect2): use T for seg BIT_BANK and overlay it
2095         * as/mcs51/lkdata.c: changed ctype['['] to BINOP
2096         * as/mcs51/lkmain.c (Areas51): rel2 contains 12 (=C) areas now,
2097           added overlayable BIT_BANK area
2098         * as/mcs51/lkmem.c (summary): add BIT_BANK to BSEG_BYTES in the report,
2099           (summary2): explain 'T' in legenda
2100         * as/mcs51/lkrloc.c: replaced old K&R style,
2101           (relr): added R_BIT processing,
2102           (errmsg): added "Bit-addressable relocation error",
2103           (adb_bit): added for converting from byte- to bit-addressable space,
2104           (adb_24_bit): added for converting from byte- to bit-addressable space
2105         * device/include/stdbool.h: changed BOOL to __bit for mcs51 as it can be
2106            used in reentrant functions now even as return value
2107         * device/lib/_gptrput.c (_gptrput): removed obsolete code
2108         * src/SDCCast.c (resultTypePropagate): also propagate AND_OP and OR_OP,
2109           (decorateType): case '!', GETHBIT, AND_OP, OR_OP: result in bool or char
2110         * src/SDCCglobl.h: added indicator BitBankUsed
2111         * src/SDCCglue.c (glue): emit area BIT_BANK with byte 'bits' and equ's for
2112            the bit registers b0-b7
2113         * src/SDCCicode.c (operandFromSymbol): removed IS_BITVAR check,
2114           (geniCodeCast): fixed bug 1263853,
2115           (geniCodeLogicAndOr): put result in bool or char,
2116           (geniCodeReceive): added parameter func for accessing the return type,
2117           (geniCodeFunctionBody): pass func to geniCodeReceive
2118         * src/SDCCmain.c: added indicator BitBankUsed
2119         * src/SDCCmem.c (allocLocal): explicitly set sclass for V_BIT
2120         * src/SDCCsymt.c (newBoolLink): added for creating a bool/bit,
2121           (checkSClass): don't put automatic bool/bit on stack,
2122           (checkFunction): removed check on function cannot return bit
2123         * src/SDCCsymt.h: added newBoolLink prototype
2124         * src/mcs51/gen.c (rb1regs): added bit registers,
2125           (movc): created for assigning to carry,
2126           (pushReg, popReg): created for pushing registers,
2127           (sameRegs): check both AOP_REG and AOP_CRY types,
2128           (aopOp): handle bit registers,
2129           (aopPut): optimization no self-assign,
2130           (saveRegisters): push reg->base (bits) only once for bit registers,
2131            and use pushReg,
2132           (unsaveRegisters): pop reg->base only once and use popReg,
2133           (assignResultValue): added parameter func and return in carry for bits,
2134           (genIpush): optimization no reload in A if not changed,
2135           (genSend): bit parameters in reentrant functions are passed in bit
2136            registers by first assigning to bits in B, then save registers and
2137            copy B to bits,
2138           (genCall): handle returning in Carry properly, save it in F0 if needed,
2139           (genPcall): updated assignResultValue call, this is not safe yet for bit
2140            returning function !!!
2141           (genFunction): don't generate equ's for bit registers and use pushReg,
2142           (genEndFunction): take care of bit returning functions and use popReg,
2143           (genRet): return bit in Carry,
2144           (genIfx): optimize bit registers and other directly addressable bits,
2145           (genReceive): updated assignResultValue call
2146         * src/mcs51/main.c (_mcs51_reset_regparm): added regBitParmFlg,
2147           (_mcs51_regparm): allow passing of upto 8 bit parameters in bit
2148            registers when using stack-auto
2149         * src/mcs51/ralloc.c (_G): added allBitregs,
2150           (regs8051): added the bit registers,
2151           (createStackSpil): use macro IS_BIT,
2152           (getRegBit): added to allocate a bit register, else spill,
2153           (getRegBitNoSpil): added to allocate a bit register, else a gpr,
2154           (updateRegUsage): factored out to ease stepping while debugging,
2155           (serialRegAssign): use updateRegUsage, only spill bits if necessary,
2156            also allocate bit registers,
2157           (fillGaps): handle bit registers,
2158           (findAllBitregs): added to create bit vector with all bit registers,
2159           (mcs51_allBitregs): returns this bit vector,
2160           (mcs51_assignRegisters): when using stack-auto use bit registers for
2161            passing parameters and creating local variables
2162         * src/mcs51/ralloc.h: added B0_IDX..B7_IDX and prototype mcs51_allBitregs
2163
2164 2005-08-22 Borut Razem <borut.razem AT siol.net>
2165
2166         * device/lib/Makefile.in: replaced find option -or with -o
2167           to make it run on solaris
2168
2169 2005-08-22 Raphael Neider <rneider AT web.de>
2170
2171         * src/pic16/gen.c (pic16_loadFromReturn): added check for AOP_PCODE,
2172           fixes #1265442 (crash on Solaris)
2173
2174 2005-08-20 Borut Razem <borut.razem AT siol.net>
2175
2176         * configure, configure.in: added tests for libsocket and libnsl libraries,
2177           requred by sdcdb on sparc-solaris; generate support/regression/Makefile
2178           from support/regression/Makefile.in
2179         * support/regression/Makefile.in: added
2180         * device/lib/pic16/Makefile.common.in: force make to use bash shell
2181         * sim/ucsim/libtool: regenerated on sparc-solaris
2182         * sim/ucsim/avr.src/Makefile.in, sim/ucsim/hc08.src/Makefile.in,
2183           sim/ucsim/s51.src/Makefile.in, sim/ucsim/xa.src/Makefile.in,
2184           sim/ucsim/z80.src/Makefile.in: removed GNU ld specific linker options
2185           -Wl,--start-group and -Wl,--end-group to enable ucsim compilation on
2186           sparc-solaris, which doesn't use GNU ld linker
2187         * device/lib/Makefile.in: cp on sparc-solaris (SunOS) does not support -u option
2188         * as/Makefile: find on sparc-solaris does not support -maxdepth option
2189
2190 2005-08-19 Maarten Brock <sourceforge.brock AT dse.nl>
2191
2192         * src/mcs51/peeph.def: updated comments
2193
2194 2005-08-16 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
2195
2196         * device/lib/_gptrget.c,
2197         * device/lib/_gptrput.c: slightly shorter
2198         * doc/sdccman.lyx: incremented version
2199         * src/mcs51/peeph.def: moved peephole comments to the line of first
2200           change to better keep line correlation, reanimated 186.e
2201         * src/mcs51/peeph.def: renamed similar peepholes by using suffixes
2202
2203 2005-08-16 Slade Rich <slade_rich AT users.sourceforge.net>
2204
2205         * src/pic/pcode.c : Pasted ".line" assembly directives patch from
2206           David Saxton with quotes around file name.
2207
2208 2005-08-15 Borut Razem <borut.razem AT siol.net>
2209
2210         * support/regression/tests/bitfields.c, support/regression/tests/bitvars.c,
2211           support/regression/tests/bitwise.c, support/regression/tests/literalop.c,
2212           support/regression/tests/rotate.c, support/regression/tests/zeropad.c:
2213           make tests run on x86_64 platform
2214
2215 2005-08-13 Raphael Neider <rneider AT web.de>
2216
2217         * device/lib/pic16/Makefile.subdir: weakened clean-intermediate rule
2218           as it might be executed DURING a build (parallel make is wonderful)
2219
2220 2005-08-13 Raphael Neider <rneider AT web.de>
2221
2222         * device/lib/Makefile.in (port-specific-objects-pic16):
2223           revert to cp $(PORT)/bin/*.* $(PORTDIR)
2224         * device/lib/pic16/Makefile: added .PHONY targets, removed builddir
2225           dependency
2226         * device/lib/pic16/Makefile.rules: build subdirs before creating
2227           the library, removed builddir rule, create $(builddir) early in
2228           recurse rule, use empty recurse rule for leaf directories
2229         * device/lib/pic16/Makefile.subdir: added phony targets, ignore
2230           mkdir errors (race condition), removed duplicate suffix "hex"
2231           from clean rules
2232         * device/lib/pic16/libdev/Makefile: recursive make via + and $(MAKE)
2233         * device/lib/pic16/libio/Makefile: create sub-make's builddir early,
2234           prevents mkdir -p from aborting on Alpha
2235
2236 2005-08-12 Raphael Neider <rneider AT web.de>
2237
2238         * src/pic16/glue.c (pic16_print(G)PointerType): do not flush
2239           db-statements in order to allow for arrays of pointers in code
2240           sections to be placed without interspersed 0-padding, fixes
2241           bug #1256215
2242         * (emitStatistics): fixed division by zero for pic18f1220
2243         * src/pic16/pcode.c: buffer (up to) 12 DB directives to allow for
2244           unpadded writing of 8-bit, 16-bit, 24-bit and 32-bit values
2245         * (pic16_emitDS): respect DB_ITEMS_PER_LINE
2246         * (pic16_pCodeConstString): keep track of already emitted string
2247           literals to prevent "duplicate definitions of symbol _str_NR"
2248         * src/pic16/ralloc.c (pic16_allocRegByName): removed not so helpful
2249           debug message
2250         * device/lib/Makefile.in: ignore failing PIC16 library builds
2251         * device/lib/pic16/Makefile: do not build if gputils are missing
2252         * device/lib/pic16/Makefile.common.in: do not enforce MAKEFLAGS=-s
2253
2254 2005-08-10 Raphael Neider <rneider AT web.de>
2255
2256         * device/lib/Makefile.in: fixed copying pic16 libraries (broken by
2257           my last commit)
2258
2259 2005-08-10 Raphael Neider <rneider AT web.de>
2260
2261         * src/*.c, src/pic16/{gen.c,glue.c,main.c}: applied Vangelis
2262           Rokas' patch to add the new fixed point type "__fixed16x16"
2263         * device/lib/pic16/libsdcc/fixed16x16: added Vangelis' support
2264           functions for __fixed16x16 arithmetics
2265         * device/lib/pic16: reimplemented the build system to support
2266           a separate build directory, better handling of libio (create
2267           the library in a separate subdir for each architecture) and
2268           easier configuration (centralized in Makefile.common)
2269
2270 2005-08-07 Raphael Neider <rneider AT web.de>
2271
2272         * src/pic16/gen.c (genrshTwo): fixed sign extension
2273         * src/pic16/device.c: added pic18f2320, 4220 and 4320
2274         * device/include/pic16/pic18f2220.h: changed some bit definitions,
2275           added T0CONbits
2276         * device/include/pic16/pic18f4220.h: NEW, header for
2277           pic18f4220 and pic18f4320
2278         * device/include/pic16/pic18fregs.h: added new devices,
2279           embraced Nop(), ClrWdt(), Sleep() and Reset() with do {} while(0)
2280         * device/include/pic16/signal.h: resolved name clashes
2281           on bit definitions, added DEF_HANDLER2(sig1,sig2,handler)
2282           to also allow testing for interrupt enable bits, added
2283           comments on how to use the macros
2284         * device/lib/pic16/libdev/pic18f2220.c: added T0CONbits
2285         * device/lib/pic16/libdev/pic18f{2320,4220,4320}.c: NEW,
2286           register definitions for the devices
2287         * device/lib/pic16/pics.all: added new devices
2288         * device/lib/pic16/libc/stdlib/calloc.c: fixed zeroing
2289           allocated memory
2290         * device/lib/pic16/libc/stdlib/memfree: do not count
2291           the block header as free memory
2292         * device/lib/pic16/libc/stdlib/memmisc.c (_initHeap):
2293           simplified and added missing end-of-blocklist-marker
2294           (reported by Peter Onion, fixes #1252814)
2295         * (_mergeHeapBlock): fixed loop condition
2296         * device/lib/pic16/libc/stdlib/realloc.c: return NULL for
2297           len==0, restructured code
2298         * device/lib/pic16/libc/stdlib/{malloc,memfreemax}.c: cleaned
2299           up a bit, reduced bitfield accesses, prevent endless loops
2300           in case of heap corruption
2301         * device/lib/pic16/libc/stdlib/x_ftoa.c: disabled
2302           "unreferenced arguments/must return a value" warnings
2303         * device/lib/pic16/libio/usart/ubaud.c (usart_baud):
2304           replaced BAUDREG with SPBRG
2305         * device/lib/pic16/libsdcc/lregs/{lrrest.c,lrst.c},
2306           device/lib/pic16/debug/gstack/gstack.c: replaced
2307           _naked, _asm, _endasm with __naked, __asm, __endasm
2308
2309 2005-08-05 Raphael Neider <rneider AT web.de>
2310
2311         * src/pic16/gen.c (pic16_aopGet): fixed handling of offsets in
2312           AOP_PCODE operands, fixes multibyte union-bitfield-accesses
2313
2314 2005-08-05 Borut Razem <borut.razem AT siol.net>
2315
2316         * device/lib/Makefile.in: added missing ';'
2317         * configure: removed ^M characters
2318
2319 2005-08-04 Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
2320
2321         * device/include/mcs51/at89c51ed2.h, device/include/mcs51/p89v51rd2.h,
2322           device/include/mcs51/at89s53.h: changed to GNU Lesser General Public
2323           License
2324
2325 2005-08-04 Borut Razem <borut.razem AT siol.net>
2326
2327         * configure.in: pic16 libraries build 2nd try - enable running
2328           configure in device/lib/pic16
2329         * configure: regenerated from configure.in
2330         * device/lib/Makefile.in: create $(PORT)/bin directory
2331
2332 2005-08-03 Raphael Neider <rneider AT web.de>
2333
2334         * src/pic16/gen.c (pic16_derefPtr): NEW, single place
2335           to get/set values via pointers
2336         * (genUnpackBits,genPackBits): changed detection of
2337           ptr->bitfield vs. sym.bitfield, fixed access via generic
2338           pointers, removed dead (wrong) code for multibyte bitfields
2339         * (genNearPointerGet, genGenPointerGet): removed useless code,
2340           fixed bitfield detection, fixes #1250594
2341         * (genNearPointerSet): removed useless code
2342         * src/pic16/gen.h: renamed pic16_emitpcode to pic16_emitpcode_real
2343           and introduced macro pic16_emitpcode that conditionally emits
2344           the origin of the following pCode (useful for debugging SDCC)
2345         * src/pic16/pcode.c: changed (and disabled) some debug outputs
2346         * (createDefmap): fixed handling of LFSR for --optimize-df
2347
2348 2005-08-02 Borut Razem <borut.razem AT siol.net>
2349
2350         * device/lib/Makefile.in: pic16 libraries build enabled since
2351           gputils-0.13.2 are now localy installed at sourceforge's compile farm
2352
2353 2005-08-02 Raphael Neider <rneider AT web.de>
2354
2355         * src/pic16/gen.c (genPackBits): removed deprecated warning
2356         * (genGenPointerSet): fixed bitfield detection
2357
2358 2005-08-02 Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
2359
2360         * device/include/mcs51/msm8xc154s.h: Removed PT2 definition, now in 8052.h.
2361
2362 2005-07-31 Raphael Neider <rneider AT web.de>
2363
2364         * device/lib/pic16/libdev/pic18f458.c,
2365           device/include/pic16/pic18f458.h: added missing T0CONbits
2366
2367 2005-07-29 Maarten Brock <sourceforge.brock AT dse.nl>
2368
2369         * device/include/mcs51/msm8xc154s.h: added, thanks to Matthias Arndt
2370
2371 2005-07-28 Maarten Brock <sourceforge.brock AT dse.nl>
2372
2373         * src/mcs51/gen.c (operandsEqu): fixed bug 1246687
2374
2375 2005-07-23 Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
2376
2377         * device/include/mcs51/at89c51ed2.h: added.
2378
2379 2005-07-23 Raphael Neider <rneider AT web.de>
2380
2381         * src/pic/gen.h: added emitpcode macro for debugging
2382         * src/pic/gen.c (emitpcode): renamed to emitpcode_real
2383           and replace by macro adding debug information on demand
2384         * (genNot): fixed to C semantics (!0 = 1; !x = 0 iff x != 0)
2385         * (gencjne): tried to fix; replaced with correct (slower) code
2386         * (gen{Unp,P}ackBits): fixed single bit access
2387         * src/pic/pcode.c (AnalyzepCode): fixed DFPRINTF argument
2388         * src/pic/pcodepeep.c (pCodeSearchCondition): fixed finding
2389           previous instruction
2390         * src/pic/pcoderegs.c (regIsSpecial): NEW, check whether a
2391           register has to be handled with care (forbidding movement
2392           of assignments/uses, removing assignments completely, ...)
2393         * (pCodeOptime2pCodes): make use of regIsSpecial
2394         * added lots of debugging output (commented out)
2395         * src/pic/rallloc.c (deassignLRs): prevent operand registers
2396           from being reused as result UNLESS it is known to work
2397
2398 2005-07-23 Maarten Brock <sourceforge.brock AT dse.nl>
2399
2400         * support/Util/dbuf.h: include <stddef.h> for size_t
2401         * .version: changed to version 2.5.2
2402
2403 2005-07-23 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
2404
2405         * src/SDCCloop.c (loopInvariants): fixed bug #1234048
2406
2407 2005-07-22 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
2408
2409         * src/hc08/gen.c (genMinus): fixed bug #1241835,
2410           (genModOneByte): removed needless psha/pula
2411
2412 2005-07-22 Raphael Neider <rneider AT web.de>
2413
2414         * src/SDCCmain.c (linkEdit): initialized linkerScriptFileName,
2415           have PIC14 handled like PIC16, fixes broken pic14 linker calls
2416         * src/pic/gen.c (resolveIfx): do not "invent" labels
2417         * (genSkipc): changed to positive logic
2418         * (genSkipCond): removed as no longer needed
2419         * (pic14_mov2w_regOrLit,genCmp): NEW, replacement for buggy version,
2420           backport from PIC16
2421         * (genLeftShift): check operands are in different registers
2422         * src/pic/genarith.c (genPlus): replaced INCF with ADDLW as
2423           INCF does not update CARRY...
2424         * src/pic/main.c: fixed _linkCmd
2425         * src/pic/pcode.c (unlinkpCode): added inactive code
2426         * src/pic/ralloc.c (deassignLRs): keep arguments to shift operations
2427           alive (do not assign result and operand overlapping registers)
2428
2429 2005-07-22 Raphael Neider <rneider AT web.de>
2430
2431         * src/pic/device.c (dump_sfr): replaced register declaration with
2432           call to emitSymbolToFile() to avoid duplicate symbols
2433         * (assignRelocatableRegisters): do not declare external symbols
2434         * src/pic/ralloc.c (allocNewDirReg): fixed to get size of arrays
2435           right (take size of type, not etype)
2436         * (allocDirReg): fixed call to allocNewDirReg() to pass OP_SYM_TYPE
2437         * (writeUsedRegs): also dump dynDirectRegs (e.g. local variables)
2438         * (packRegsForAccUse): disabled assignment of WREG as
2439           the result reg to prevent occurence of just fixed #1235003,
2440           fixes #1242954
2441         * src/pic/glue.c (emitSymbolToFile): NEW, central place to declare
2442           symbols (avoids duplicate symbols in .asm file)
2443         * (pic14emitRegularMap): use emitSymbolToFile()
2444         * src/pic/gen.c (aopOp): fixed spillLocation handling
2445         * (gen{Unp,P}ackBits): fixed acquiring bit-operands
2446         * (genDataPointerSet): removed unneccessary variables/output
2447
2448 2005-07-22 Maarten Brock <sourceforge.brock AT dse.nl>
2449
2450         * as/mcs51/lkarea.c: enlarged codemap for banked memory
2451         * device/lib/mcs51/crtbank.asm: added # to 0x0F
2452
2453 2005-07-21 Raphael Neider <rneider AT web.de>
2454
2455         * src/pic/gen.c (aopOp): do not generate AOP_ACC operands as pic14
2456           architecture cannot handle them efficiently, fixes bug #1235003
2457         * src/pic16/device.c (pic16_dump_{u,i}section,pic16_dump_int_registers):
2458           check for empty sets before using them (fixes bug #1232190)
2459
2460 2005-07-19 Maarten Brock <sourceforge.brock AT dse.nl>
2461
2462         * as/mcs51/lkarea.c (lnkarea, lnkarea2): improved BSEG size calculation,
2463           (lnksect2): generate warnings for memory overlap
2464         * src/SDCC.lex (doPragma, process_pragma): added pragma's codeseg and
2465           constseg to set the name of these segments so you can instruct the linker
2466           to place them in banks
2467         * src/SDCCast.c (decorateType): use new macro IS_FUNCPTR()
2468         * src/SDCCglobl.h: added MODEL_HUGE to enum,
2469           added code_seg and const_seg to options
2470         * src/SDCCglue.c (emitMaps): use options.const_seg,
2471           (createInterruptVect): put interrupt vectors in segment HOME,
2472           (glue): put HOME before static segment and put the main glue in HOME,
2473           (glue): use options.code_seg
2474         * src/SDCCicode.c (geniCodeCall): use new macro IS_FUNCPTR()
2475         * src/SDCCmain.c: added option --codeseg and --constseg to set the name of
2476           these segments so you can instruct the linker to place them in banks
2477           (linkEdit): use code_loc for HOME segment which should be the first
2478           segment in code memory now
2479         * src/SDCCmem.c: fixed more stuff like bug 1238386
2480         * src/SDCCsymt.c (getSize): use generic pointer size for banked functions,
2481           (changePointer): don't change function pointers to code pointers for
2482           banked functions,
2483           (compareType): added exceptional check for banked function pointers
2484         * src/SDCCsymt.h: changed IFFUNC_ISBANKEDCALL, added IS_FUNCPTR
2485         * src/hc08/main.c (_hc08_genAssemblerPreamble): put HOME first, put CSEG
2486           after static in code memory
2487         * src/mcs51/gen.c: added aopLiteralLong prototype,
2488           (aopForSym): use getSize for functions,
2489           (genCall): generate banked calls over one trampoline __sdcc_banked_call
2490           in HOME with lsb of address in r0, msb in r1 and bank in r2, use
2491           -Wl-bBANKSEG=0xbbaaaa option to set the address (aaaa) and bank (bb) of
2492           the segment,
2493           (genPcall): use call for literal function pointers and generate banked
2494           calls over the one trampoline so there's only one place for the user to
2495           modify according to his/hers hardware,
2496           (genEndFunction): jump to __sdcc_banked_ret in HOME for banked functions,
2497           (genPlusIncr): moved check icount>4 beyond inc dptr optimization
2498         * src/mcs51/main.c: added keyword banked,
2499           (_mcs51_genExtraAreas): put HOME first followed by GSINIT, STATIC and CSEG
2500         * support/Util/SDCCerr.c,
2501         * support/Util/SDCCerr.h: added E_BANKED_WITH_CALLEESAVES, registers are
2502           needed for passing the bank and address to the trampoline
2503         * device/lib/mcs51/crtbank.asm: added for bankswitching
2504         * device/lib/mcs51/Makefile: added crtbank
2505
2506 2005-07-16 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
2507
2508         * src/SDCCcse.c (algebraicOpts): fixed loss of volatility
2509           for fields at offset 0 of a struct or union as reported
2510           on 2005-07-07 in the developer mailing list.
2511
2512 2005-07-15 Maarten Brock <sourceforge.brock AT dse.nl>
2513
2514         * src/SDCCmem.c: fixed bug 1238386
2515
2516 2005-07-12 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
2517
2518         * src/mcs51/peeph.def: added labelrefcounting for peepholes
2519           (patch #1144962), added peephole 300, enabled 259.x
2520         * doc/sdccman.lyx: removed screenshot and provided link instead
2521
2522 2005-07-05 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
2523
2524         * doc/sdccman.lyx: added section about debugging with ddd
2525         * doc/figures/ddd_example.eps: screenshot of debugging session
2526
2527 2005-07-04 Raphael Neider <rneider AT web.de>
2528
2529         * src/pic/gen.c (genPointerGet): handle pointers to CONST values
2530           like CODE pointers, fixes #1115683
2531         * src/pic/pcode.c (DoBankSelect): forget LastRegIdx during function
2532           call, fixes bugs #1232211, #1228110,
2533           fixed wrong casts to pCodeFlow from pCodeInstructions
2534
2535 2005-07-04 Raphael Neider <rneider AT web.de>
2536
2537         * src/pic/gen.c (popGet): changed assert to allow for
2538           bit operands
2539         * (popGetAddr): changed signature to provide
2540           an additional index, patched all call sites
2541         * (genCmpEq): handle literal-like operands correctly
2542         * (genAddrOf): added sanity checks on __code/__data pointers
2543         * (genAssign): added handling of symbols from __code section
2544         * (gencjne): do not generate code for comparisons whose result
2545           is neither stored nor used, fixes bug #1171114
2546         * (AccLsh, AccRsh): operate on operand instead of WREG
2547         * (shift{Left,Right}_Left2ResultLit): NEW, size independant
2548           replacement for Shift{LR}{12}Left2Result; shift (byte/int/long)
2549           by known count
2550         * rewrote complete shift-by-literal logic, commented unused
2551           functions out
2552         * (genConstPointerGet): get multiple bytes (if result size > 1),
2553           fixed handling of non-immediate addresses
2554         * (genPointerGet): handle CODE pointers like CONST pointers
2555         * (genpic14Code): insert C-SRC lines as Cource-pCodes
2556         * ({aop,op}_isLitLike): NEW, single place to decide whether an
2557           operand is to be treated as a literal or not
2558         * (mov2w,genPcall,genCmpEq),
2559           src/pic/genarith.c: use aop_isLitLike() to decide between
2560           literal/register contents
2561         * (addSign): added missing offset
2562         * src/pic/gen.h: remove newline after FENTRY/FEXIT comments,
2563           only emit comment in debug-mode,
2564           use {aop,op}_isLitLike throughout the file
2565         * src/pic/glue.c: fix initializers for pointers (work in progress)
2566         * src/pic/pcode.c (get_op): honor index on _const symbols
2567         * ({reset,dump}pCodeStatistics): NEW, estimate code size
2568         * (dumppBlock): added pCode size estimation
2569         * src/pic/ralloc.c (deassignLRs,serialRegAssign,packRegisters):
2570           check for IS_SYMOP before OP_SYMBOL'ing
2571         * fixed indentation, compacted switch-statements
2572         * (allocReg): find free register and allocate it instead of
2573           allocating new registers all the time
2574         * (deassignLRs): prevent POINTER_GET's from being assigned the same
2575           registers as its operands (necessary only for multibyte GETs)
2576
2577 2005-07-01 Raphael Neider <rneider AT web.de>
2578
2579         * src/pic/gen.h: added prototypes emitpComment, popGetAddr and
2580           debugging .asm-output macros FENTRY + FEXIT
2581         * src/pic/gen.c (Safe_vsnprintf): NEW, is there a more generic
2582           way... I wonder...
2583         * (emitpComment): NEW, printf to pCode
2584         * (popGet): added assert on too large offsets, fixed PO_IMMEDIATE's
2585           offset handling
2586         * (popGetAddr): NEW, variant of popGet to access an immediates
2587           high(er) bytes instead of the n'th byte of memory they reference,
2588           replaced popGet with popGetAddr where neccessary
2589         * (genDataPointerGet): reactivated and fixed implementation
2590         * (genNearPointerGet): enabled call to genDataPointerGet, fixes array-
2591           accesses
2592         * (genDataPointerSet): fixed multibyte assignments
2593         * (genpic14Code): fixed --i-code-in-asm handling
2594         * src/pic/genarith.c: fixed PO_IMMEDIATE issue using popGetAddr,
2595         * (genPlus): fixed index-out-of-bounds error
2596         * src/pic/pcode.c (get_op): fixed PO_IMMEDIATE's index/offset handling
2597         * src/pic/ralloc.c: added debugging output macro FENTRY2
2598         * (spillThis): fixed indentation, enbraced for-body for clarity
2599         * (rematStr): commented out as now unused
2600         * (regTypeNum): commented out special spill case (overwrites
2601           arbitrary values)
2602         * fixes bugs #1229346, #1216476 (both arrays) and #1115667 (SIGSEGV)
2603
2604 2005-06-30 Maarten Brock <sourceforge.brock AT dse.nl>
2605
2606         * doc/sdccman.lyx: documented sfr16/sfr32,
2607           added example for using storage class with function pointers
2608         * src/mcs51/gen.c (genPlusIncr): optimized small offsets from dptr
2609
2610 2005-06-28 Maarten Brock <sourceforge.brock AT dse.nl>
2611
2612         * device/lib/_gptrget.c: also push/pop _PSBANK, added # to 0x03
2613         * device/lib/_itoa.c,
2614         * device/lib/_ltoa.c: optimized codesize
2615         * src/SDCCsymt.c (checkSClass): added sanity check for sfr at addresses,
2616           but don't know how to suppress the double warning.
2617         * src/mcs51/gen.c (genPlusIncr): fixed bug when incrementing volatile int's
2618         * support/Util/SDCCerr.c,
2619         * support/Util/SDCCerr.h: added warning W_SFR_ABSRANGE for sanity check
2620
2621 2005-06-27 Maarten Brock <sourceforge.brock AT dse.nl>
2622
2623         * as/mcs51/asexpr.c (expr): disabled warning "not in .flat24 mode",
2624           fixed old K&R prototypes
2625         * as/mcs51/asout.c (outrb): always output as if generating 24bit addresses
2626         * device/lib/_gptrget.c,
2627         * device/lib/_gptrgetc.c,
2628         * device/lib/_gptrput.c: changed versions for new memory indicator values,
2629           also new versions for small generic pointers and banked generic pointers
2630         * src/port.h: added const_name
2631         * src/SDCC.lex: added keywords sfr16, __sfr16, sfr32, __sfr32
2632         * src/SDCC.y: added tokens SFR16, SFR32 and their sfr_attributes
2633         * src/SDCCcse.c (findPrevIc): check all associative operators
2634         * src/SDCCglue.c (emitMaps): use CONST_NAME if defined
2635         * src/SDCCicode.h: added macro IS_ASSOCIATIVE
2636         * src/SDCCmem.c: updated comments,
2637           set far-space to 0 for pdata, results in optimized code
2638         * src/SDCCmem.h: added macro CONST_NAME
2639         * src/SDCCsymt.h: renumerated generic pointer types GPTYPE_... thereby
2640           moving the info into the highest bits, see also gptrget/gptrput
2641         * src/src.dsp: added sdcc.ico to project files
2642         * src/avr/gen.c (genCast): fixed bug 0x%d
2643         * src/avr/main.c (avr_port): added "CONST (CODE)" for const_name
2644         * src/ds390/gen.c (aopForRemat, adjustArithmeticResult): disconnected direct
2645           relation between ptr_type and DCL_TYPE,
2646           (genCast): fixed bug 0x%d
2647         * src/ds390/main.c (ds390_port, tininative_port, ds400_port): added "CONST
2648           (CODE)" for const_name
2649         * src/hc08/gen.c (genCast): fixed bug 0x%d
2650         * src/hc08/main.c (_hc08_genAssemblerPreamble): added .area ...const_name,
2651           (hc08_port): added "CONST (CODE)" for const_name
2652         * src/mcs51/gen.c (aopForSym): optimized pushing ACC,
2653           (aopForRemat, adjustArithmeticResult): disconnected direct relation
2654           between ptr_type and DCL_TYPE,
2655           (aopGetUsesAcc, aopGet, aopPut): changed first parameter from asmop* to
2656           operand* and took AOP() inside function so sfr-ness can be checked,
2657           (all over): repaired calls to aopGetUsesAcc, aopGet, aopPut to comply with
2658           new prototype,
2659           (genFunction, genEndFunction): optimized stack setup,
2660           (genMinus): optimized for literals with ending zeroes (in bytes),
2661           (genCast): fixed bug 0x%d
2662         * src/mcs51/main.c (_mcs51_keywords): added sfr16 and sfr32,
2663           (mcs51_port): added "CONST (CODE)" for const_name
2664         * src/mcs51/peeph.def: made rule 226 more generic
2665         * src/pic/main.c (pic_port): added "CONST (CODE)" for const_name
2666         * src/pic16/main.c (pic16_port): added "CONST (CODE)" for const_name
2667         * src/xa51/main.c (xa51_port): added "CONST (CODE)" for const_name
2668         * src/z80/main.c (z80_port): added NULL for const_name,
2669           (gbz80_port): added NULL for const_name
2670         * support/regression/tests/bug663539.c,
2671         * support/regression/tests/sfr16.c: new tests
2672
2673 2005-06-25 Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
2674
2675         * device/include/mcs51/p89v51rd2.h, device/include/mcs51/at89s53.h: added.
2676
2677 2005-06-24 Raphael Neider <rneider AT web.de>
2678
2679         * device/lib/pic16/libdev/pic18f[68][567]20.c:
2680           corrected typos...
2681         * device/include/pic16/signal.h: added USBIF
2682           and SIG_USB
2683
2684 2005-06-24 Raphael Neider <rneider AT web.de>
2685
2686         * device/lib/pic16/libdev/pic18f2455.c,
2687           device/include/pic16/pic18f2455.h: NEW
2688         * device/include/pic16/pic18fregs.h,
2689           device/lib/pic16/pics.all,
2690           src/pic16/device.c: added 18f2455
2691         * device/lib/pic16/libdev/pic18f[68][567]20.c,
2692           device/include/pic16/{pic18f[68][567].h,usart.h}:
2693           replaced MULTIPLE_USARTS define with more relaible
2694           compatibility sfrs (for USART access)
2695
2696 2005-06-20 Slade Rich <slade_rich AT users.sourceforge.net>
2697
2698         * src/pic/pcode.c : Fixed problem when a string constant contains a "\r\n"
2699           and the output asm file line is printed on two lines.
2700
2701 2005-06-19 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
2702
2703         * sim/ucsim/hc08.src/inst.cc (inst_condbranch): fixed simulation of
2704           BGT, BLE, BHI, and BLS instructions
2705         * src/hc08/gen.c (outAcc, outBitC, outBitNV, genCmpLt, genCmpGt,
2706           genCmpEq): removed
2707         * src/hc08/gen.c (genCmpEQorNE, genCmp, branchopCmp, nameCmp,
2708           negatedCmp, exchangedCmp, genhc08Code): rewrite of comparison handling,
2709           fixes bug #1216342
2710         * src/hc08/peeph.def: added rules 2g - 2l for new conditional branches
2711
2712 2005-06-15 Raphael Neider <rneider AT web.de>
2713
2714         * src/pic16/NOTES: moved Vangelis from active developers to people to contact
2715         * device/include/pic16/{6520.h,8520.h}: fixed configuration bits
2716         * src/pic16/gen.c (): prevent iTemps from being considered to be in CODESPACE,
2717           fixes bug #1221120; for symbols in CODESPACE get number of bytes to read from
2718           OP_SYM_TYPE() instead of OP_SYM_ETYPE()
2719
2720 2005-06-06 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
2721
2722         * device/include/mcs51/reg764.h: Changed PB0 to PBO as requested by
2723           Marcel Telka in bug #1215704
2724
2725 2005-06-02 Slade Rich <slade_rich AT users.sourceforge.net>
2726
2727         * src/pic/pcode.c : Changed pseudo stack size to 15 to allow WSAVE to be
2728           located in shared memory bank.
2729
2730 2005-05-31 Raphael Neider <rneider AT web.de>
2731
2732         * src/pic16/{gen.c,genarith.c}: replaced sign-extension
2733           "CLRF, BTFSC <signbit>, DECF/COMF" with side-effect-free
2734           "CLRF, BTFSC <signbit>, SETF"; fixes "long>>9"
2735
2736 2005-05-27 Maarten Brock <sourceforge.brock AT dse.nl>
2737
2738         * device/lib/_strncpy.c: fixed the fix
2739
2740 2005-05-26 Raphael Neider <rneider AT web.de>
2741
2742         * src/pic16/glue.c (pic16_printIvalChar): fixed _constant_ string
2743           initializers with \0, bug #1208187
2744         * src/pic/glue.c (printIvalChar): fixed (non- and constant) string
2745           intializers with \0, bug #1208187
2746
2747 2005-05-26 Raphael Neider <rneider AT web.de>
2748
2749         * src/pic16/glue.c (pic16_printIvalChar): fixed string
2750           initializers with \0, bug #1208187
2751         * src/pic16/main.c (_process_pragma): added sanity checks
2752           for stack position and size, emit warnings when appropriate
2753
2754 2005-05-26 Maarten Brock <sourceforge.brock AT dse.nl>
2755
2756         * device/lib/_strncpy.c: fixed not filling with \0
2757
2758 2005-05-26 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
2759
2760         * src/SDCCast.c (funcOfType, funcOfTypeVarg, stringToSymbol,
2761           createFunction),
2762         * src/SDCC.y (external_definition, enumerator, parameter_declaration,
2763           compound_statement),
2764         * src/SDCCsymt.h,
2765         * src/SDCCsymt.c (addSymChain, processFuncArgs): fixed bug #1159134
2766
2767 2005-05-24 Raphael Neider <rneider AT web.de>
2768
2769         * src/pic16/glue.c (pic16_printGPointerType): fixed #1207796
2770
2771 2005-05-24 Raphael Neider <rneider AT web.de>
2772
2773         * device/include/pic16/pic18f{442,452,458}.h: fixed wrong
2774           TRISE definitions, closes bug #1162453
2775
2776 2005-05-22 Raphael Neider <rneider AT web.de>
2777
2778         * src/pic16/main.c (_process_pragma): check for missing
2779           arguments to pragmas code and udata
2780         * device/include/pic16/pic18f{2550,4331,4455,4520}.h:
2781           consistency fixes to match other headers (thanks to Jim Paris)
2782         * device/lib/pic16/libio/i2c.ignore: 18f4331 provides no I2C
2783
2784 2005-05-21 Maarten Brock <sourceforge.brock AT dse.nl>
2785
2786         * src/SDCCicode.c (isOperandEqual): fixed missing ;
2787
2788 2005-05-19 Maarten Brock <sourceforge.brock AT dse.nl>
2789
2790         * support/regression/tests/bug1198642.c: new test
2791         * src/SDCCicode.c (isOperandEqual): fixed bug 1198642
2792         * src/SDCCcse.c (findPrevIc): added comment, please have a look
2793         * support/scripts/resource.h,
2794         * support/scripts/resource.rc,
2795         * src/src.dsp: added sdcc.ico to project as icon for sdcc.exe
2796         * support/scripts/sdcc.ico: added 32x32 icon
2797
2798 2005-05-18 Raphael Neider <rneider AT web.de>
2799
2800         * device/lib/pic16/libdev/pic18f*.c,
2801         * device/include/pic16/pic18f*.h: updated "sfr" and "at X"
2802           keywords to "__sfr" and "__at (X)"
2803         * device/include/pic16/pic18fregs.h: added pic18f4520
2804         * src/pic16/pcode.c (pic16_pCode2str): fixed (?) bug
2805           #1203088 (MPLAB compatibility)
2806
2807 2005-05-17 Raphael Neider <rneider AT web.de>
2808
2809         * device/include/pic16/pic18f{2550,4331,4455,4520}.h: NEW
2810         * device/lib/pic16/libdev/pic18f{2550,4331,4455,4520}.c: NEW
2811         * device/lib/pic16/pics.all: added new devices
2812         * src/pic16/device.c: added support for pic18f4520
2813
2814 2005-05-16 Raphael Neider <rneider AT web.de>
2815         * src/pic16/gen.{c,h}: s/mov2f/pic16_mov2f made public
2816         * src/pic16/genarith.c (genAddLit): fixed bug 1202480
2817         * src/pic16/pcode.{c,h} (pic16_newpCodeOpBit_simple): NEW
2818           convenience function for bit access
2819
2820 2005-05-15 Maarten Brock <sourceforge.brock AT dse.nl>
2821
2822         * device/lib/printf_large.c: fixed bug 1193299
2823         * support/regression/tests/bug1057979.c: added test %3.3s
2824
2825 2005-05-15 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
2826
2827         * device/include/mcs51/8051.h,
2828         * device/include/mcs51/8052.h: made parseable with lint
2829         * device/include/mcs51/lint.h: added include file for (sp)lint
2830         * doc/sdccman.lyx: added doc about use of splint (syntax checking tool)
2831         * doc/cdbfileformat.lyx,
2832         * doc/test_suite_spec.lyx: hardcoded date to the date of last text change
2833
2834 2005-05-14 Raphael Neider <rneider AT web.de>
2835
2836         * device/lib/pic16/Makefile.common.in: add --optimize-df to OPT_FLAGS
2837         * device/lib/pic16/libc/stdlib/itoa.c (new)
2838         * device/lib/pic16/libc/stdlib/Makefile: have itoa.c built
2839         * device/lib/pic16/libio/Makefile: exclude subdir according to
2840           ${subdir}.ignore for certain PICs (lacking e.g. i2c)
2841         * device/lib/pic16/libio/i2c.ignore (new): pic18f1220 has no I2C support
2842         * src/pic16/gen.c (genFunction): prevent annoying warning
2843         * src/pic16/pcode.c: renamed stack_t to dynstack_t to prevent
2844           nameclashes on BeOS
2845         * support/cpp2/cppmain.c (cpp_output_string): new
2846         * support/cpp2/cpplib.c (_cpp_do__Pragma): fixed _Pragma(""),
2847           fixes bug 1116802
2848
2849 2005-05-13 Borut Razem <borut.razem AT siol.net>
2850
2851         * src/SDCCmain.c (linkEdit): fixed bug 1195202
2852
2853 2005-05-12 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
2854
2855         * .version: changed to version 2.5.1; back to bleeding edge development
2856
2857 2005-05-11 Borut Razem <borut.razem AT siol.net>
2858
2859         * doc/sdccman.lyx doc/cdbfileformat.lyx doc/test_suite_spec.lyx:
2860           generate PDF version 1.3 documents
2861
2862 2005-05-07 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
2863
2864         * .version: changed to version 2.5.0
2865
2866 2005-04-27 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
2867
2868         * doc/sdccman.lyx: updated weblinks, index and smaller updates
2869
2870 2005-04-26 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
2871
2872         * doc/sdccman.lyx: changed version 2.5.0, documented --std-c89,
2873         --std-sdcc89, --std-c99, --std-sdcc99, and the corresponding #pragmas, as
2874         well as many smaller updates.
2875         * .version: changed to version 2.5.0-pre1
2876
2877 2005-04-26 Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
2878
2879         * src/SDCCmain.c (setIncludePath): added port->target to SDCC_INCLUDE_NAME
2880
2881 2005-04-26 Maarten Brock <sourceforge.brock AT dse.nl>
2882
2883         * support/regression/tests/bug1185672.c: added
2884         * src/mcs51/gen.c (aopGetUsesAcc, genCpl, genAnd, genOr, genXor): fixed
2885           bug 1185672
2886         * src/mcs51/gen.c (genCall): added comments, made it look safer
2887         * src/mcs51/gen.c (genEndFunction): simplified
2888
2889 2005-04-25 Maarten Brock <sourceforge.brock AT dse.nl>
2890
2891         * src/mcs51/ralloc.c (serialRegAssign): fixed bug 1189609
2892
2893 2005-04-14 Borut Razem <borut.razem AT siol.net>
2894
2895         * fixed bug 1045046 - SIGSEGV with really simple code?:
2896           src/pic/pcode.c (pCodeInitRegisters)- pseudo stack size increased to 16
2897           src/pic/ralloc.c (typeRegWithIdx) - error message on pseudo stack overflow
2898
2899 2005-04-14 Borut Razem <borut.razem AT siol.net>
2900
2901         * src/pic16/gen.c (genInline), src/pic16/main.c (_process_pragma),
2902           src/pic16/device.h: temporarily disabled experimental #inline pragma
2903           for 2.5.0 release
2904
2905 2005-04-14 Maarten Brock <sourceforge.brock AT dse.nl>
2906
2907         * device/include/z80/stdio.h,
2908         * device/include/z80/string.h: removed these highly incomplete files so
2909           SDCC can use the default ones in device/include/
2910
2911 2005-04-14 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
2912
2913         * src/mcs51/gen.c (genEndFunction): removed unused variable to fix
2914         gcc warning.
2915         * device/lib/Makefile.in: default PORTINCDIR to the mcs51 subdir to
2916         fix sdcpp warnings.
2917
2918 2005-04-12 Maarten Brock <sourceforge.brock AT dse.nl>
2919
2920         * device/include/malloc.h: removed redundant __reentrant prototypes
2921         * device/lib/_mullong.c: added working xstack variant in asm (C version
2922           doesn't pass regression tests)
2923         * device/lib/bpx.c: used __data and made bpx char for mcs51
2924         * src/SDCCast.c (decorateType): removed unused GPTYPE_IDATA,
2925           (createFunction): fixed bug with xstackPtr
2926         * src/SDCCcse.c: corrected comments
2927         * src/SDCCopt.c (convertToFcall): fixed warning in MSVC,
2928           (killDeadCode, eBBlockFromiCode): removed unused code
2929         * src/SDCCsymt.h: removed unused GPTYPE_GPTR and GPTYPE_IDATA,
2930           corrected comments
2931         * src/mcs51/gen.c (aopForSym, aopPut, toBoolean, unsaveRegisters,
2932           assignResultValue, genCall, genFunction, genEndFunction, genAnd,
2933           genOr, genXor, genAddrOf): fixed several bugs concerning xstack
2934           (genModOneByte): fixed warning in MSVC
2935         * src/mcs51/main.c (): added comments
2936         * src/mcs51/peeph.def: changed 129 to 129.a, added 129.b, 129.c & 129.d
2937
2938 2005-04-12 Maarten Brock <sourceforge.brock AT dse.nl>
2939
2940         * src/SDCCmain.c (linkEdit): oops, changed one line too many
2941
2942 2005-04-11 Maarten Brock <sourceforge.brock AT dse.nl>
2943
2944         * src/SDCCmain.c (linkEdit): fixed bug with finding crt0.o for z80
2945
2946 2005-04-10 Vangelis Rokas <vrokas AT users.sourceforge.net>
2947
2948         * src/pic16/glue.c (printIvalChar): fixed bug when emitting
2949         characters arrays of larger size than the declared one.
2950
2951 2005-04-10 Borut Razem <borut.razem AT siol.net>
2952
2953         * src/pic/gen.c (genInline),
2954           src/pic/pcode.c (newpCodeAsmDir), (pCode2str),
2955           (genericPrint), (unlinkpCodeFromBranch), (compareLabel),
2956           (findNextInstruction), (findPrevInstruction),
2957           (findInstructionUsingLabel),
2958           src/pic/pcode.h: fixed bug #1164907 - Labels not being recognized
2959         * src/pic/pcode.c (findLabel): added missing '\n'
2960         * src/src.dsp: added SDCCdwarf2.c to the project
2961
2962 2005-04-09 Borut Razem <borut.razem AT siol.net>
2963
2964         * support/scripts/sdcc.nsi: added include/hc08/* h to NSIS setup
2965
2966 2005-04-08 Raphael Neider <rneider AT web.de>
2967
2968         * src/pic16/pcode.c: added helpers defmapInsertAfter (insert a new item
2969           into the chain after a given one) and mergeDefmapSymbols (combine
2970           defmap entries for each symbol per pcode)
2971         * (createDefmap): have defmap entries merged in the end
2972         * (defmapReplaceSymRef): split defmap entries covering two accesses to
2973           a symbol before replacing one access type's symbol, merge symbols in
2974           the end (replacement symbol might already have an entry)
2975         * (assignValnums): keep reference to written WREG intact
2976
2977 2005-04-08 Raphael Neider <rneider AT web.de>
2978
2979         * src/pic16/pcode.c (struct defmap_s): named anonymous union (for
2980           Alpha)
2981
2982 2005-04-08 Vangelis Rokas <vrokas AT users.sourceforge.net>
2983
2984         * src/pic16/pcode.c (pic16_get_op2): enlarged size of array b to 128
2985         bytes
2986
2987 2005-04-07 Raphael Neider <rneider AT web.de>
2988
2989         * device/include/pic16/usart.h: added compatibility defines for
2990           devices with more than one USART
2991         * device/include/pic16/pic18f[68][567]20.h: activated above defines
2992
2993 2005-04-07 Maarten Brock <sourceforge.brock AT dse.nl>
2994
2995         * device/lib/Makefile.in: updated for port specific include
2996
2997 2005-04-07 Maarten Brock <sourceforge.brock AT dse.nl>
2998
2999         * support/regression/ports/mcs51/spec.mk: added mcs51 include
3000
3001 2005-04-07 Maarten Brock <sourceforge.brock AT dse.nl>
3002
3003         * device/include/8051.h,
3004         * device/include/8052.h,
3005         * device/include/at89S8252.h,
3006         * device/include/at89c55.h,
3007         * device/include/at89x051.h,
3008         * device/include/at89x51.h,
3009         * device/include/at89x52.h,
3010         * device/include/mcs51reg.h,
3011         * device/include/reg51.h,
3012         * device/include/reg764.h,
3013         * device/include/regc515c.h,
3014         * device/include/sab80515.h: (re)moved these 12 files
3015         * device/include/mcs51/8051.h,
3016         * device/include/mcs51/8052.h,
3017         * device/include/mcs51/at89S8252.h,
3018         * device/include/mcs51/at89c55.h,
3019         * device/include/mcs51/at89x051.h,
3020         * device/include/mcs51/at89x51.h,
3021         * device/include/mcs51/at89x52.h,
3022         * device/include/mcs51/mcs51reg.h,
3023         * device/include/mcs51/reg51.h,
3024         * device/include/mcs51/reg764.h,
3025         * device/include/mcs51/regc515c.h,
3026         * device/include/mcs51/sab80515.h: and added them here
3027
3028 2005-04-06 Maarten Brock <sourceforge.brock AT dse.nl>
3029
3030         * device/include/stdarg.h: changed SDCC specific keywords to double
3031           underlined form.
3032         * device/include/stdint.h: changed intptr_t and uintptr_t for others than
3033           mcs51 and ds390.
3034         * device/include/hc08/mc68hc908gp32.h,
3035         * device/include/hc08/mc68hc908jb8.h,
3036         * device/include/hc08/mc68hc908jkjl.h,
3037         * device/include/hc08/mc68hc908qy.h: fixed comments
3038         * device/include/mcs51/README: updated
3039         * device/include/mcs51/c8051f120.h: added PINRSF
3040         * device/lib/pic16/libc/stdlib/crc16.c: fixed comments
3041         * src/pic16/pcode.c: MSVC6 doesn't accept declaring new variables
3042           amidst code. Also inline is not supported.
3043
3044 2005-04-06 Raphael Neider <rneider AT web.de>
3045
3046         * src/pic16/pcode.c (pic16_pCodeReplace): also update pcflow->end
3047         * (createDefmap): fixed CALLs to depend on FSR1 and RETLW to restore
3048           callers stack/frame pointers
3049
3050 2005-04-06 Vangelis Rokas <vrokas AT users.sourceforge.net>
3051
3052         * device/include/pic16/usart.h: added, missing in previous commit,
3053         * device/include/pic16/adc.h: fixed typo,
3054         * device/lib/pic16/libc/utils/cvtdec.S: added missing in previous
3055         commit,
3056         * device/lib/pic16/libc/stdlib/g_ftoa.S: modified to include
3057         <p18fxxx.inc>
3058         * device/lib/pic16/libc/stdio/streams.c: leave stdin, stdout
3059         uninitialized because a bug appears with gplink
3060         * device/lib/pic16/{some makefiles}: moved $(CSTD) from CFLAGS to
3061         COMPILE_FLAGS and added CPPFLAGS with -nostdinc because sdcpp
3062         complains for unrecognised option
3063
3064 2005-04-05 Raphael Neider <rneider AT web.de>
3065
3066         * src/pic16/gen.c (pic16_popCopyReg): made copying work for extended
3067           structs as well (using memcpy)
3068         * (genFunction): fixed comparison, used pCodeOpLabel to reduce warning
3069           on ISRs (GOTO has no label)
3070         * src/pic16/device.h: added OF_OPTIMIZE_DF
3071         * src/pic16/main.c: added compiler switch --optimize-df to enable the
3072           new data flow analysis/optimization
3073         * src/pic16/pcode.c: added (prototypes for and implementation of)
3074           dataflow analysis functions, fixed pCodeInstructions' inCond and
3075           outCond values, made RCALL a branch instruction
3076         * (pic16_unlinkpCode): keep C line if possible
3077         * (pic16_pCodeUnlink): removed cast on left side of assignment, have
3078           C line moved if possible
3079         * (pic16_getRegFrompCodeOp): NEW, improved version of...
3080         * (pic16_getRegFromInstruction,pic16_getRegFromInstruction2): changed
3081           to use new pic16_getRegFrompCodeOp (works for more SFRs)
3082         * (pic16_BuildFlow): fixed skip instructions with label (did not start
3083           new flow)
3084         * (pic16_getJumptabpCode): NEW, needed in...
3085         * (LinkFlow): fixed handling of jumptables, calls and conditional
3086           branches
3087         * (pic16_InsertCommentAfter): NEW
3088         * (pic16_pCodeReplace): made verbose and flow preserving
3089         * (AnalyzeFlow): added call to data flow analysis
3090         * src/pic16/pcode.h: added defmaps to pCodeFlow struct
3091         * src/pic16/pcodeflow.h: added PCC_STATUS to mean all STATUS bits
3092         * src/pic16/ralloc.c (packRegsForAssign): added return 1 in the end
3093
3094 2005-04-03 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
3095
3096         * src/SDCCast.c (decorateType): fixed bug #1105626
3097
3098 2005-04-02 Vangelis Rokas <vrokas AT users.sourceforge.net>
3099
3100         * device/include/asm/pic16/features.h,
3101         * pic18f*.h headers,
3102         * device/include/pic16/adc.h,
3103         * device/include/pic16/delay.h,
3104         * device/include/pic16/i2c.h,
3105         * device/include/pic16/malloc.h,
3106         * device/include/pic16/stdio.h,
3107         * device/include/pic16/stdlib.h,
3108         * device/include/pic16/string.h,
3109         * device/lib/pic16/libc/stdio/printf_tiny.c,
3110         * device/lib/pic16/libc/stdio/printf_small.c,
3111         * device/lib/pic16/libc/stdio/strmgpsim.c,
3112         * device/lib/pic16/libc/stdio/strmmssp.c,
3113         * device/lib/pic16/libc/stdio/strmusart.c,
3114         * device/lib/pic16/libc/stdio/vfprintf.c,
3115         * device/lib/pic16/libc/stdlib/ltoa.c,
3116         * device/lib/pic16/libc/stdlib/putchar.c,
3117         * device/lib/pic16/libc/stdlib/x_ftoa.c,
3118         * device/lib/pic16/libc/stdlib/memchrpgm.c,
3119         * device/lib/pic16/libc/stdlib/memchrram.c,
3120         * device/lib/pic16/libc/stdlib/memcpypgm2ram.c,
3121         * device/lib/pic16/libc/stdlib/memcpyram2ram.c,
3122         * device/lib/pic16/libio/adc/adcbusy.c,
3123         * device/lib/pic16/libio/adc/adcread.c,
3124         * device/lib/pic16/libio/adc/adcsetch.c,
3125         * device/lib/pic16/libio/usart/ubaud.c,
3126         * device/lib/pic16/libio/usart/ubusy.c,
3127         * device/lib/pic16/libio/usart/udrdy.c,
3128         * device/lib/pic16/libio/usart/uopen.c,
3129         * device/lib/pic16/libio/usart/uputc.c,
3130         * device/lib/pic16/libsdcc/gptr/gptrget1.c,
3131         * device/lib/pic16/libsdcc/gptr/gptrget2.c,
3132         * device/lib/pic16/libsdcc/gptr/gptrget3.c,
3133         * device/lib/pic16/libsdcc/gptr/gptrget4.c,
3134         * device/lib/pic16/libsdcc/gptr/gptrput1.c,
3135         * device/lib/pic16/libsdcc/gptr/gptrput2.c,
3136         * device/lib/pic16/libsdcc/gptr/gptrput3.c,
3137         * device/lib/pic16/libsdcc/gptr/gptrput4.c: modified all SDCC
3138         specific keywords to double underlined form,
3139         * device/lib/pic16/libc/Makefile.rules,
3140         * device/lib/pic16/libsdcc/Makefile.rules,
3141         * device/lib/pic16/libm/Makefile,
3142         * device/lib/pic16/libio/Makefile.rules: added CSTD macro in CFLAGS
3143         to compile with C standard set in Makefile.common
3144         * device/lib/pic16/libc/stdlib/Makefile: added new C sources
3145         rand.c and crc.c in compilation process,
3146         * device/lib/pic16/libsdcc/int/divuint.c,
3147         * device/lib/pic16/libsdcc/long/divulong.c: changed declaration of
3148         `c' from signed to unsigned,
3149         * device/lib/pic16/startup/crt0.c,
3150         * device/lib/pic16/startup/crt0i.c,
3151         * device/lib/pic16/startup/crt0iz.c: adopted to all SDCC specific
3152         keywords to double underlined form, bug fixes in _do_cinit function
3153         which prevented the correct initialization of the .idata segment,
3154         * src/pic16/pcoderegs.c (insideLRBlock): fixed a bug that caused the
3155         core to enter a infinite loop
3156         * device/lib/pic16/libc/stdlib/rand.c, crc.c: new files
3157
3158 2005-04-02 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
3159
3160         * src/SDCCicode.c (getArraySizePtr): fixed bug #1122171
3161
3162 2005-04-01 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
3163
3164         * device/include/Makefile.in: add support for hc08 subdirectory
3165         * device/include/hc08/: new subdirectory
3166         * device/include/hc08/mc68hc908jkjl.h: new header contributed by
3167         Lucas Loizaga, thanks!
3168         * device/include/hc08/mc68hc908qy.h,
3169         * device/include/hc08/mc68hc908gp32.h,
3170         * device/include/hc08/mc68hc908jb8.h: moved hc08 register defs to
3171         their own directory. Changed internal macro names to use the compiler
3172         reserved namespace. Changed SDCC specific keywords to double
3173         underlined form.
3174         * device/include/math.h,
3175         * device/include/malloc.h,
3176         * device/include/stdarg.h,
3177         * device/include/stdbool.h
3178         * device/include/string.h,
3179         * device/include/tinibios.h,
3180         * device/include/ds400rom.h,
3181         * device/include/8051.h,
3182         * device/include/8052.h,
3183         * device/include/80c51xa.h,
3184         * device/include/at89c55.h,
3185         * device/include/at89S8252.h,
3186         * device/include/at89x51.h,
3187         * device/include/at89x52.h,
3188         * device/include/ds80c390.h,
3189         * device/include/reg764.h,
3190         * device/include/regc515c.h,
3191         * device/include/sab80515.h,
3192         * device/include/mcs51/c8051f000.h,
3193         * device/include/mcs51/c8051f018.h,
3194         * device/include/mcs51/c8051f020.h,
3195         * device/include/mcs51/c8051f040.h,
3196         * device/include/mcs51/c8051f060.h,
3197         * device/include/mcs51/c8051f120.h,
3198         * device/include/mcs51/c8051f300.h,
3199         * device/include/mcs51/c8051f310.h,
3200         * device/include/mcs51/c8051f320.h,
3201         * device/include/mcs51/c8051f330.h,
3202         * device/include/mcs51/c8051f350.h,
3203         * device/include/z180.h: Changed SDCC specific keywords to double
3204         underlined form.
3205
3206 2005-03-31 Vangelis Rokas <vrokas AT users.sourceforge.net>
3207
3208         * src/pic16/device.c (Pics16[]): added devices 18F2550, 18F4331,
3209         18F4455,
3210         * (pic16_assignConfigWordValue): disable testing of configuration
3211         register value with config mask,
3212         * src/pic16/gen.c (pic16_testStackOverflow): prefix stack test
3213         function with port->fun_prefix,
3214         * (genFunction): when generating a naked interrupt function never
3215         create an absolute segment placed in interrupt vector address, place
3216         the actual interrupt function at IVA instead, when an interrupt
3217         function is generated with unspecified interrupt then do not create
3218         the absolute section,
3219         * (genGenPointerGet, genGenPointerSet, genPackBits): replace all
3220         code for generating a call to generic pointer get/put function with
3221         a call to function pic16_callGenericPointer(),
3222         * src/pic16/genutils.c (pic16_callGenericPointerRW): NEW, generates
3223         the call to the generic pointer get/put functions with prefixing the
3224         function name with port->fun_prefix,
3225         * src/pic16/glue.c (pic16glue): ifdef-out test of OF_LR_SUPPORT,
3226         * src/pic16/main.c (_process_pragma): prefix function with
3227         port->fun_prefix,
3228         * (_pic16_finaliseOptions): define macro __18Fxxxx macro when
3229         calling assembler, old 18Fxxxx macro is deprecated,
3230         * src/pic16/pcode.c (unlinkpCodeFromBranch): added PC_INLINE and
3231         PC_ASMDIR in while condition,
3232         * (findInstruction): add PC_ASMDIR in while condition,
3233         * (buildCallTree): prefix main with port->fun_prefix,
3234         * (pic16_pCode2str): fixed bug that didn't emit the memory access
3235         identifier for variable with banked access in instructions BTFSS,
3236         BTFSC, BCF, BSF, BTG
3237         * (AnalyzeFlow): moved call to OptimizepCode to pic16_AnalyzeBanking,
3238         * src/pic16/pcodepeep.c (pCodeOpCompare): increase size of b to 1024,
3239         * src/pic16/pcoderegs.c (pic16_pCodeRegoptimizeRegUsage): don't
3240         perform optimization when enviroment variable NO_REG_OPT is set,
3241         * (insideLRBlock): NEW, return 1 if register is inside an
3242         INF_LOCALREGS block,
3243         * (RemoveRegFromLRBlock): remove a register that is completely
3244         eliminated by register optimization, but it is still left in local
3245         register store/restore in/from stack block,
3246         * (Remove2pcodes): after removing register, check to see if it
3247         should be removed from local register store/restore in/from stack
3248         block,
3249         * src/pic16/ralloc.c (pic16_decodeOp): added decode for
3250         DUMMY_READ_VOLATILE,
3251
3252         * device/include/pic16/adc.h: minor prototype modifications and
3253         update,
3254         * device/include/pic16/malloc.h: added GPL notice various
3255         modifications,
3256         * device/include/pic16/stdint.h: NEW, standard header for ints
3257         * device/include/pic16/delay.h: NEW, header for delay functions,
3258         delay10tcy, delay100tcy, delay1ktcy, delay10ktcy, delay100ktcy,
3259         delay1mtcy,
3260         * device/include/pic16/signal.h: NEW, header providing helper macros
3261         for implementing signal handlers,
3262         * device/include/pic16/stdio.h: added prototypes for functions,
3263         printf, vprintf, sprintf, vsprintf, fprintf, vfprintf. Added
3264         prototypes for stdin and stdout, added macro PUTCHAR to
3265         automatically implement putchar function prototype,
3266         * device/include/pic16/usart.h: modified and updated USART library,
3267         * device/lib/pic16/libio/adc/,
3268         * device/lib/pic16/libio/i2c: some modifications to improve library
3269         performance,
3270         * device/lib/pic16/libc/stdio/: modifications for the new printf*
3271         family of functions,
3272         * device/lib/pic16/libc/stdlib/: various modifications in the malloc
3273         family of functions and other sources,
3274         * device/lib/pic16/libio/usart/: NEW, c sources for the usart module
3275         of the PIC18Fxx[28] devices,
3276         * device/lib/pic16/libc/delay/: NEW, c sources for the delay functions,
3277         * device/lib/pic16/libc/utils/: minor modifications in the .S sources,
3278         * device/lib/pic16/startup/{crt0i.c, crt0iz.c}: redesign of the
3279         _do_cinit function, because the previous failed when local variables
3280         where not placed in the same memory bank,
3281         * device/lib/pic16/libsdcc/char/: various modifications to improve
3282         library performance,
3283         * doc/sdccman.lyx: some reorganization of the PIC16 part, added many
3284         information on the new functions of the c library and more...
3285
3286 2005-03-28 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
3287
3288         * src/SDCCBBlock.c (iCodeBreakDown): fixed bug #1170212
3289
3290 2005-03-26 Raphael Neider <rneider AT web.de>
3291
3292         * src/pic16/gen.c (genSkipc): fixed semantics (execute branch
3293           if condition == CARRY)
3294         * (genCmp): adapted to new genSkipc semantics
3295         * src/pic16/genutils.c (pic6_genCmp_special): removed side effect
3296           on rIfx (genCmp was broken)
3297
3298 2005-03-26 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
3299
3300         * src/SDCCmain.c (setDefaultOptions, optionsTable[], parseCmdLine),
3301         * src/z80/main.c (_keywords[]),
3302         * src/SDCCglobal.h (struct options),
3303         * src/SDCC.y,
3304         * src/SDCC.lex (isTargetKeyword, doPragma, pragma_tbl[]): new pragmas
3305         to enable/disable SDCC and C99 extensions/keywords (std_c89, std_sdcc89,
3306         std_c99, std_sdcc99). Also, equivalent command line options (--std-c89,
3307         --std-sdcc89, --std-c99, --std-sdcc99). SDCC specific keywords are
3308         always available in leading double underscore form. The C99 support is
3309         mostly missing, but it's a start.
3310         * support/regression/tests/bug-227710.c: fixed nonconforming use of
3311         reserved identifier "__data".
3312
3313 2005-03-24 Maarten Brock <sourceforge.brock AT dse.nl>
3314
3315         * src/mcs51/peeph.def: fixed bug 1170013
3316
3317 2005-03-22 Maarten Brock <sourceforge.brock AT dse.nl>
3318
3319         * device/include/mcs51reg.h: fixed bug 842007
3320
3321 2005-03-21 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
3322
3323         * src/SDCCcflow.c (dfNumCompare): committed the wrong version of this
3324         last time.
3325
3326 2005-03-20 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
3327
3328         * src/port.h (struct PORT),
3329         * src/avr/ralloc.c (avr_assignRegisters),
3330         * src/avr/main.c,
3331         * src/ds390/ralloc.c (ds390_assignRegisters),
3332         * src/ds390/main.c,
3333         * src/hc08/ralloc.c (hc08_assignRegisters),
3334         * src/hc08/main.c,
3335         * src/mcs51/ralloc.c (mcs51_assignRegisters),
3336         * src/mcs51/main.c,
3337         * src/pic/ralloc.c (pic14_assignRegisters),
3338         * src/pic/main.c,
3339         * src/pic16/ralloc.c (pic16_assignRegisters),
3340         * src/pic16/main.c,
3341         * src/xa51/ralloc.c (xa51_assignRegisters),
3342         * src/xa51/main.c,
3343         * src/z80/ralloc.c (z80_assignRegisters),
3344         * src/z80/ralloc.h,
3345         * src/SDCCopt.c (eBBlockFromiCode, replaceRegEqv, killDeadCode),
3346         * src/SDCCcse.c (ifxOptimize, cseBBlock, cseAllBlocks),
3347         * src/SDCCcse.h,
3348         * src/SDCCdflow.c (computeDataFlow),
3349         * src/SDCCdflow.h,
3350         * src/SDCCloop.c (addDefInExprs, loopInvariants, loopOptimizations),
3351         * src/SDCCloop.h,
3352         * src/SDCCcflow.c (*),
3353         * src/SDCCcflow.h,
3354         * src/SDCCBBlock.c (iCodeBreakDown, dumpEbbsToFileExt, eBBWithEntryLabel),
3355         * src/SDCCBBlock.h (struct ebbIndex): new struct that keeps two copies
3356         of the eBBlock list, sorted by both bbnum and dfnum. (fixes bug with
3357         immedDom() returning wrong block; probably fixes bug #1160833)
3358
3359 2005-03-20 Borut Razem <borut.razem AT siol.net>
3360
3361         * support/scripts/inc2h.pl: WIN32 port
3362
3363 2005-03-19 Maarten Brock <sourceforge.brock AT dse.nl>
3364
3365         * device/lib/makefile.in: added abs.c and labs.c
3366
3367 2005-03-17 Maarten Brock <sourceforge.brock AT dse.nl>
3368
3369         * device/include/stdint.h: added
3370         * device/lib/abs.c: added
3371         * device/lib/labs.c: added
3372         * device/include/stdlib.h: added abs() and labs() prototypes
3373         * device/lib/libsdcc.lib: added abs and labs
3374         * device/include/float.h,
3375         * device/lib/_fsmul.c,
3376         * device/lib/printf_fast.c,
3377         * device/lib/printf_tiny.c: updated comments
3378
3379 2005-03-16 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
3380
3381         * src/SDCCicode.c (geniCodeSwitch, geniCodeJumpTable): fixed
3382         bug #1164313
3383
3384 2005-03-16 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
3385
3386         * src/SDCCcse.c (cseBBlock): retain assignment to self when volatile
3387         * src/SDCCast.c (isLoopCountable): fixed bug #1161985
3388
3389 2005-03-15 Maarten Brock <sourceforge.brock AT dse.nl>
3390
3391         * device/lib/printf_large.c: removed inline assembly for portability and
3392           readability. Use printf_fast if speed or size are more important.
3393         * src/pic16/gen.c: removed conditions around use of DEBUGpc
3394         * src/pic16/genutils.h: added define for DEBUGpc for MSVC
3395
3396 2005-03-15 Vangelis Rokas <vrokas AT users.sourceforge.net>
3397
3398         * src/pic16/genutils.c (pic16_genCmp_special): initialized offs to
3399         prevent compiler warning
3400
3401 2005-03-14 Vangelis Rokas <vrokas AT users.sourceforge.net>
3402
3403         * device/lib/pic16/startup/crt0i.c (_cinit): local variables where
3404         moved to level 0 and declared as static. Also they are explicit
3405         placed in access bank. This was necessery because some times they
3406         might cross memory bank boundaries. crt0iz.c is *NOT* updated!!!
3407         * src/pic16/device.h: added flag OPTIMIZE_CMP to enable some compare
3408         optimizations. Currently only compare to unsigned char is implemented,
3409         * src/pic16/gen.c: added fReturnIdx array,
3410         * (struct resolvedIfx) is moved to gen.h and made public,
3411         * (struct _G): added sregsAlloc and sregsAllocSet fields,
3412         * (aopForSym): added an optimization to directly store in stack of
3413         the operand of a SEND iCode,
3414         * (pic16_aopOp): don't return return registers as strings (AOP_STR)
3415         but as registers instead (AOP_REG) using the fReturnIdx array,
3416         * (pic16_freeAsmop): remove the freed register from the
3417         _G.sregsAlloc field,
3418         * (pic16_aopGet): in case AOP_STR, the compare to 'a' is changed to
3419         a compare of 'WREG',
3420         * (pic16_popGetTempRegCond): changed function prototype, now
3421         function takes also a bitVector argument v which holds the current
3422         set of registers that are allocated for stack access by aopForSym,
3423         registers allocated in aopForSym for accessing stack symbols are not
3424         any more part of the functions usedRegs field,
3425         * (genCall): some times aopOp is called for a stack variable to be
3426         send, aopForSym might perform the push, if this is true make sure
3427         that genCall doesn't push the variable twice by testing _G.resDirect,
3428         * (genFunction): changed testing for unspecified interrupt number
3429         from 256 to INTNO_UNSPEC,
3430         * modified selection scheme of frame pointer generation. Previously
3431         if function did use local registers a frame pointer was generated,
3432         now a frame pointer is generated only if function has arguments
3433         (that need PLUSW2 register access), or has stack arguments, or the
3434         compiler is not instructed to omit the frame pointer,
3435         * (genEndFunction): before restoring local registers that were saved
3436         in the function preamble, also restore the registers that *might*
3437         have been allocated for stack access,
3438         * (genRet): removed some old comments,
3439         * (genCmp, the active (RN's) version): added a call to the
3440         pic16_genCmp_special function to perform the compare with a more
3441         robust and optimized way,
3442         * (genInline): a feature has been added in inline code generation,
3443         which allows a wildcard variable substitution when writing inline
3444         assembly. Code is incomplete and experimental therefore undocumented,
3445         * (genCast): changed order of aopOp for result and right to allow
3446         aopForSym to directly load the result if possible,
3447         * src/pic16/genutils.c (selectCompareOp, pic16_genCmp_special): NEW,
3448         perform an optimized compare on some selected special occasions,
3449         * src/pic16/genutils.h: declaration of resolvedIfx structure from gen.c,
3450         * src/pic16/glue.c (pic16createInterrupVect): make sure we never
3451         generate an IVT any more,
3452         * src/pic16/main.c (pic16_optionsTable): added command line option
3453         --optimize-cmp,
3454         * (_pic16_initPaths): when calling C preprocessor define pic18fXXXX
3455         macro too, when calling assembler define pic18fXXXX *and* __18Fxxxx
3456         macros,
3457         * src/pic16/NOTES: Raphael Neider added in list of active developers
3458         * src/pic16/pcode.c (OPT_TYPE_STR): added strings jumptable_begin and
3459         jumptable_end to prevent bug #,
3460         * (pic16_pciADDWFC, ADDFWC, COMF, CLRF): added some missing flags in
3461         inCond and outCond fields,
3462         * src/pic16/pcoderegs.c (pCodeOptime2pCodes): add a fix for bug #,
3463         * src/pic16/ralloc.c (serialRegAssign): explicit set willCS to 0 to
3464         turn off register spilling,
3465         * (packRegsForOneUse): synced with other ports' versions although it
3466         is not used currently,
3467         * (pic16_packRegisters): added an optimization while reading
3468         structure bitfields, some registers may be saved (malloc code is
3469         decreased by 80 bytes)
3470
3471 2005-03-12 Vangelis Rokas <vrokas AT users.sourceforge.net>
3472
3473         * src/SDCCcse.c (cseBBlock): inside 'do operand lookup' loop test if
3474         left is a bitfield, if yes, then don't optimize assignment. Perhaps
3475         this can be optimized more?
3476
3477 2005-03-10 Raphael Neider <rneider AT web.de>
3478
3479         * src/pic16/gen.c (pic16_loadFSR0, genPackBits, genUnpackBits,
3480           genNearPointerGet): (hopefully) fixed access to bitfields via
3481           pointers (p->bitN = x; and x = p->bitN; failed)
3482
3483 2005-03-09 Paul Stoffregen <paul AT pjrc.com>
3484
3485         * device/lib/printf_fast.c: fix leading zero format, eg "%02d"
3486
3487 2005-03-09 Raphael Neider <rneider AT web.de>
3488
3489         * src/SDCCopt.c (killDeadCode): fixed bug #1156016
3490
3491 2005-03-06 Maarten Brock <sourceforge.brock AT dse.nl>
3492
3493         * src/SDCCicode.h: moved CRITICAL and ENDCRITICAL from SKIP_IC2 to SKIP_IC
3494         * src/mcs51/ralloc.c (willCauseSpill): added check for REG_BIT type,
3495           (regTypeNum): set REG_BIT type if necessary
3496         * src/mcs51/ralloc.h: added define REG_BIT, used to fix bug 1144613
3497         * support/regression/tests/critical.c: check bug 1144613
3498
3499 2005-03-02 Raphael Neider <rneider AT web.de>
3500
3501         * src/pic16/gen.c (genRightShiftLiteral): fixed bug #1154256
3502
3503 2005-02-26 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
3504
3505         * src/avr/ralloc.c (serialRegAssign),
3506         * src/ds390/ralloc.c (serialRegAssign),
3507         * src/hc08/ralloc.c (serialRegAssign),
3508         * src/mcs51/ralloc.c (serialRegAssign),
3509         * src/pic/ralloc.c (serialRegAssign),
3510         * src/pic16/ralloc.c (serialRegAssign),
3511         * src/xa51/ralloc.c (serialRegAssign),
3512         * src/z80/ralloc.c (serialRegAssign): fixed bug #1105154
3513
3514 2005-02-22 Maarten Brock <sourceforge.brock AT dse.nl>
3515
3516         * src/SDCCast.c (decorateType): fixed bug 1124787
3517
3518 2005-02-20 Hubert Sack <sack AT digiplan.de>
3519         committed by Frieder Ferlemann <Frieder.Ferlemann AT web.de>
3520
3521         * src/mcs51/peeph.def: added peepholes 3.h-k and 132.a-f from
3522         patch #1121755
3523
3524 2005-02-20 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
3525
3526         * src/SDCCpeeph.def: new keyword "labelRefCountChange" which allows peepholes
3527         to keep the correct label reference count when adding/removing references
3528         to labels. A peephole file using this is appended to patch #1144962.
3529
3530 2005-02-14 Raphael Neider <rneider AT web.de>
3531
3532         * device/lib/pic16/libc/string/memccpy.c: changed 3rd argument to char
3533         * src/SDCC.lex (process_pragma): fixed to make disable_warning work for PIC16
3534         * src/pic16/gen.c (aopForSym, calls to pic16_aopOp): prevent unneccessary
3535           retrievals of result operand's value on assignment
3536
3537 2005-02-13 Vangelis Rokas <vrokas AT otenet.gr>
3538
3539         * device/include/pic16/string.h: modified prototype for memccpy()
3540         to memccpy(void *, void *, char, size_t)
3541         * src/pic16/gen.c (genFunction, genEndFunction): reenable if-case to
3542         check whether to omit frame pointer or not,
3543         * (genInline): convert all occurences of "\n" to LF in inline
3544         assembler blocks, this helps formatting the inline text,
3545         * (pic16_loadFSR0): modified prototype,
3546         * (genNearPointerGet, genNearPointerSet): reorganization of code,
3547         removed some 8051 legacy code,
3548         * (genPackBits): enabled handling bitfields exceeding one byte in size,
3549         * src/pic16/ralloc.c (pic16_assignRegisters): clear dynrIdx variable
3550         before allocating temporary registers in functions,
3551
3552 2005-02-11 Maarten Brock <sourceforge.brock AT dse.nl>
3553
3554         * support/regression/tests/bitvars.c: corrected the "fix"
3555
3556 2005-02-10 Maarten Brock <sourceforge.brock AT dse.nl>
3557
3558         * support/regression/tests/bitvars.c,
3559         * support/regression/tests/bitwise.c,
3560         * support/regression/tests/rotate.c: "fixed" problems on Alpha
3561
3562 2005-02-10 Raphael Neider <rneider AT web.de>
3563
3564         * src/pic16/pcode.c (assignToSameBank) : fixed cast to pointer of
3565           different size for Alpha
3566         * src/pic16/gen.c (genCmpEq) : improved compare with 0
3567
3568 2005-02-09 Raphael Neider <rneider AT web.de>
3569
3570         * src/SDCC.lex(doPragma) : save and restore warning options as well
3571           (also added new stack plus clone- and copyAndFreeSDCCERRG())
3572         * have #pragma less_pedantic set the errorlevel to WARNING
3573           (fixes #1117001)
3574         * (cloneOptimize) : fixed wrong malloc's size
3575         * support/Util/SDCCerr.[ch] : made SDCCERRG globally accessible to
3576           facilitate correct handling of #pragma (save|restore)
3577
3578 2005-02-09 Maarten Brock <sourceforge.brock AT dse.nl>
3579
3580         * src/mcs51/gen.c: removed non-standard C nameless struct/union
3581
3582 2005-02-04 Slade Rich <slade_rich AT users.sourceforge.net>
3583
3584         * src/pic/gen.c : Fix for bugs #1080519 & #1115662.
3585
3586 2005-02-03 Maarten Brock <sourceforge.brock AT dse.nl>
3587
3588         * device/include/mcs51/c8051f120.h: added declarations for sbit port 2,3&4
3589
3590 2005-02-02 Raphael Neider <rneider AT web.de>
3591
3592         * src/SDCCast.c (processParms): disabled W_NONRENT_ARGS for pic16 port
3593         * src/pic16/gen.c (aopForSym): reenabled special case for function pointers
3594         * (pic16_storeForReturn): fixed to allow returning function pointers
3595         * (genPackBits): improved accessing full bytes, implemented for GPOINTERs
3596         * device/include/pic16/{stddef.h,stdbool.h}: added
3597
3598 2005-02-02 Maarten Brock <sourceforge.brock AT dse.nl>
3599
3600         * device/include/mcs51/c8051f040.h: added define CPT2_PAGE
3601
3602 2005-02-01 Slade Rich <slade_rich AT users.sourceforge.net>
3603
3604         * src/pic16/pic16.dsp : Added file graph.c to make it compile under windows
3605         * src/pic16/Makefile.bcc : Do not use this file but added file graph.c as it
3606          appeared to be required
3607
3608 2005-01-31 Borut Razem <borut.razem AT siol.net>
3609
3610         * support/scripts/sdcc.nsi: added include/asm/ds390, include/asm/mcs51,
3611           include/mcs51 and include/z80 directories to the package
3612
3613 2005-01-26 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
3614
3615         * src/hc08/gen.c (genFunction): fixed bug #1112752
3616
3617 2005-01-30 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
3618
3619         * src/mcs51/peeph.def: adapted peephole 258.x to changed gen.c (genAnd)
3620
3621 2005-01-29 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
3622
3623         * src/mcs51/gen.c (genAnd): accessing LSB/MSB by rotating acc
3624
3625 2005-01-29 Maarten Brock <sourceforge.brock AT dse.nl>
3626
3627         * device/include/Makefile.in: create/copy mcs51 and z80 include subdirs
3628
3629 2005-01-27 Maarten Brock <sourceforge.brock AT dse.nl>
3630
3631         * device/include/c8051fxxx.h: removed these 6 files
3632         * device/include/mcs51/c8051fxxx.h: added these 11 new files
3633
3634 2005-01-26 Raphael Neider <rneider AT web.de>
3635
3636         * src/pic16/gen.c (genAssign): fixed assignment from longs
3637           in codespace (were cut to three bytes)
3638         * (genDummyRead): implemented (except for CODESPACE...),
3639           fixed bug #1108575
3640         * src/pic16/glue.c (emitStatistics): beautified
3641         * device/lib/pic16/libm/Makefile: added include path
3642
3643 2005-01-26 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
3644
3645         * src/z80/gen.c (aopPut): fixed bug #1103902
3646
3647 2005-01-25 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
3648
3649         * device/lib/expf.c: fixed bug #1095792
3650
3651 2005-01-24 Vangelis Rokas <vrokas AT otenet.gr>
3652
3653         * device/lib/pic16/libm: added Math library sources
3654
3655 2005-01-24 Raphael Neider <rneider AT web.de>
3656
3657         * src/pic16/pcode.h: added second memory operand to pCodeOpReg
3658           to enable upcast to pCodeOpReg2 (there is no type tag to
3659           differenciate the two and pic16_popGet2p cast into PCOR2)
3660         * src/pic16/main.c (_process_pragma): fixed another malloc bug
3661           (sizeof(sectNames) changed to sizeof(sectName))
3662           Both patches fix segfaults under MinGW.
3663
3664 2005-01-23 Raphael Neider <rneider AT web.de>
3665
3666         * src/pic16/{device.c,pcode.c}: s/free/Safe_free/g for
3667           Safe_[mc]?alloc()'ed variables
3668         * src/pic16/gen.c (pic16_aopOp,pic16_popGet): added handling
3669           of (byte sized) temporaries (assign them to WREG for now)
3670         * src/pic16/main.c (_process_pragma): fixed nasty malloc bug
3671           (used sizeof(set *sectSyms) instead of sizeof(struct sectSym)),
3672           this might fix SIGSEGVs on MinGW...
3673         * src/SDCCopt.c (killDeadCode): restored original behaviour
3674           (volatile operands might get thrown away though)
3675
3676 2005-01-23 Vangelis Rokas <vrokas AT otenet.gr>
3677
3678         * src/pic16/gen.c: fixed bug #1106975,
3679         * src/pic16/gen.c: fixed possible bug #1102572, now during TOS
3680         pointer update, INTCON is saved, global interrupts are disabled and
3681         restored after updateing TOS.
3682         * src/SDCC.y, src/SDCC.lex, src/SDCCsymt.c, src/SDCCsymt.h:
3683         * added function attribute 'shadowregs' to take advantage of shadow
3684         registers,
3685         * added function attribute 'wparam' as an alternative to the wparam
3686         pragma,
3687         * support/Utils/SDCCerr.[ch]: added error E_SHADOWREGS_NO_ISR when
3688         user declares a non-ISR function as 'shadowregs',
3689         * doc/sdccman.lyx: updated to reflect recent changes of pic16 port
3690
3691 2005-01-22 Vangelis Rokas <vrokas AT otenet.gr>
3692
3693         * .version: bumped version number to 2.4.8
3694         * device/lib/pic16/pics.all: list of PIC18F devices supported by
3695         pic16 port,
3696         * device/lib/pic16/libio/i2c/: I2C module support library,
3697         * device/include/pic16/i2c.h: I2C support library header,
3698         * device/lib/pic16/libc/stdio/: standard IO support sources,
3699         * (printf_small.c): printf_small() source, supports float print,
3700         * (printf_tiny.c): printf_tiny() source, does not support floats,
3701         * device/lib/pic16/Makefile.common.in: added OPT_FLAGS macro to
3702         enable global optimizations for entire library source, other
3703         Makefiles in the source tree are also modified to reflect this,
3704         * device/lib/pic16/libc/stdlib/putchar.c (putchar): dummy putchar()
3705         function,
3706         * doc/sdccman.lyx: updated to reflect new changes,
3707         * src/pic16/gen.c (aopForSym): don't handle sym->iaccess in
3708         sym->onStack if-case,
3709         * src/pic16/main.c (_pic16_keywords): commented out keywords bit,
3710         sbit, idata, _idata, xdata, _xdata,
3711         * added pragma library, to link an external library, (see doc),
3712         * removed command line options, --pomit-config-words, --pomit-ivt,
3713         --pleave-reset-vector,
3714         * (pic16_finaliseOptions): when define macro SDCC_MODEL_{SMALL/LARGE}
3715         when calling assembler to reflect memory model used, also define
3716         macro STACK_MODEL_{SMALL/LARGE} when compiling and assembling to
3717         reflect stack model used,
3718         * src/pic16/ralloc.c (pic16_allocDirReg): when operand is allocated
3719         on stack return NULL,
3720
3721 2005-01-22 Daniel Winkler <post AT danielwinkler.de>
3722
3723         * src/SDCCopt.c (killDeadCode): do not throw iCodes away if one
3724           of the operands is volatile. Fixes #1020220
3725
3726 2005-01-22 Daniel Winkler <post AT danielwinkler.de>
3727
3728         * src/pic16/pcoderegs.c (pCodeOptime2pCodes): reenabled optimization
3729         * (OptimizeRegUsage): make sure that there is really no other flow where
3730           the first pCode is used
3731
3732 2005-01-22 Raphael Neider <rneider AT web.de>
3733
3734         * src/pic16/pcoderegs.c (pCodeOptime2pCodes): disabled optimization
3735           to fix #1106967 (pCode->seq are not set up correctly)
3736
3737 2005-01-22 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
3738
3739         * src/SDCCglue.c (glue): make sure code area is declared before the
3740         static initialization area.
3741
3742 2005-01-21 Raphael Neider <rneider AT web.de>
3743
3744         * device/lib/Makefile.in: fixed test for pic16 install dir
3745         * device/lib/pic16/*/Makefile*: modified compile flags to enable
3746           optimizations
3747         * doc/sdccman.lyx: updated banksel optimization, removed --flr-support and
3748           added --optimize-goto compiler switch and pragma wparam documentation
3749         * src/pic16/pcode.c (pic16_OptimizeBanksel): removed statistics dump
3750         * src/pic16/pcodepeep.c (pic16_pCodeOpCopy): fixed copying of WREG, PRODL
3751           and PRODH closing bug #1071770 (peephole optimizer)
3752
3753 2005-01-19 Raphael Neider <rneider AT web.de>
3754
3755         * src/SDCCglobl.h: ensure that PATH_MAX >= 2048 to guarantee
3756           cmdLine buffers (used when calling sdcpp...) are large enough
3757           (MAX_PATH=256 truncates arguments leading to system halts when
3758           used in MinGW...)
3759         * src/pic16/gen.c (pic16_sameRegs): relaxed size criterion
3760         * (genUminus): rewritten to for efficiency
3761         * (genNearPointer[GS]et): enforce reloading of FSR0 (was still
3762           used uninitialized in some cases)
3763         * (genCast): upcasting a 16bit int to a 24bit GPOINTER may not
3764           copy the third byte from the int -- now assumes 0x80 (data memory)
3765         * src/pic16/genarith.c (pic16_genPlus): fixed bug when swapping
3766           operands (genAddLit expects the iCode's operands to swapped as
3767           well), fixed leftover bytes (crashed for short left operands)
3768         * (pic16_genMinusDec): performance improvements, removed false
3769           PIC14 emitSKPNCs
3770         * (pic16_genMinus): fixed to cope with differently sized operands
3771         * src/pic16/glue.c (pic16_glue): added new banksel optimization
3772           for --obanksel > 1
3773         * src/pic16/pcode.c: implemented (first phase of) banksel optimization
3774         * src/pic16/graph.[ch]: implementation of directed graphs, used by
3775           new banksel optimization
3776         * src/pic16/pcoderegs.c (pCodeRegMapLiveRangesInFlow): prevented
3777           analysis for temporary registers (segfaults...)
3778         * src/pic16/peeph.def: added rule
3779
3780 2005-01-18 Vangelis Rokas <vrokas AT otenet.gr>
3781
3782         * device/lib/pic16/libc/stdlib/x_ftoa.c: it defines x_ftoa function
3783         which converts a float number to its ASCII representation
3784         * device/lib/pic16/libc/utils/cnvfrac.S,cnvint.S: support
3785         functions to convert the fractional and integer part of a float to ASCII,
3786         * device/lib/pic16/libc/stdlib/(calloc.c,free.c, malloc.c,
3787         realloc.c): added _MALLOC_SPEC to explicit place variables in data
3788         ram
3789         * device/include/asm/pic16/features.h: added _CODE, _DATA, _AUTOMEM,
3790         _STATMEM macros,
3791         * device/include/pic16/adc.h: added GPL info,
3792         * src/pic16/gen.c (genIfxpCOpJump): perform an genIfxJump but using
3793         a pCodeOp as tested operand,
3794         * (genNearPointerGet): optimized bit testing, does not use
3795         intermediate register for bit value, test directly instead with
3796         BTFSS, BTFSC, works only for single bits,
3797         * (genpic16Code): dump the name of the iCode in the asm,
3798         * src/pic16/ralloc.c (decodeOp): removed static declaration and
3799         renamed to pic16_decodeOp,
3800         * (serialRegAssign): do not allocate a temporary register for iCode
3801         sequences that test a single bit for 1/0
3802
3803 2005-01-12 Vangelis Rokas <vrokas AT otenet.gr>
3804
3805         * src/pic16/pcode.[ch]: introduced pic16_stackpnt_*,
3806         pic16_framepnt_*, pic16_stack_*, pic1_frame_* pointer variables to
3807         access stack and frame pointers. They are initially assigned to
3808         point at pic16_pc_fsr1[lh] and pic16_pc_fsr2[lh] variables and other
3809         accessing SFRs. Updated all occurences of modification of stack or
3810         frame pointer in gen.c and pcode.c,
3811         * src/pic16/ralloc.c (serialRegAssign): fixed two bugs with
3812         assigning of a literal value to pointers,
3813         * src/pic16/main.c (pic16_finiliseOptions): set pre-processor define
3814         flag STACK_MODEL_SMALL or STACK_MODEL_LARGE according to the model
3815         selected
3816
3817 2005-01-11 Vangelis Rokas <vrokas AT otenet.gr>
3818
3819         * doc/sdccman.lyx: update documentation about stack pragma, added
3820         some info for stack memory models
3821
3822 2005-01-08 Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
3823
3824         * src/pic16/gen.c (DEBUGpc): MSVC 6 does not support macro variable arguments
3825
3826 2005-01-08 Raphael Neider <rneider AT web.de>
3827
3828         * src/pic16/device.c (pic16_dump_usection): changed naming scheme for
3829           udata sections to fix bug #1097823
3830
3831 2005-01-05 Raphael Neider <rneider AT web.de>
3832
3833         * src/pic16/gen.c (genGenericShift): added handling of differently
3834           sized left operand and result
3835
3836 2005-01-04 Raphael Neider <rneider AT web.de>
3837
3838         * src/pic16/gen.c (genIfxJump): fixed inverted skips on CARRY
3839         * (genIfx): fixed (?) read from uninitialized SPIL_LOC (now assumes CARRY
3840           to hold the condition bit)
3841         * added new version of genCmp (old code available via #define)
3842         * added new version of genShiftLeft/genShiftRight in a generic
3843           way, now supports shifting by negative values
3844         * (genLeftShiftLiteral, genRightShiftLiteral): use absolute value of
3845           shiftCount (expected by genGenericShift)
3846         * src/pic16/genarith.c (genPlus): added code for adding CARRY+literal
3847         * src/pic16/pcode.c (pic16_OptimizeJumps): removed annoying statistics
3848           dump
3849         * (pic16_newpCodeOpLit): changed to cast to unsigned char (as e.g. -32766
3850           is an invalid literal too...)
3851
3852 2005-01-04 Vangelis Rokas <vrokas AT otenet.gr>
3853
3854         * src/pic16/gen.c (aopForSym, genEndFunction): applied some fixes
3855         from Raphael Neider,
3856         * src/pic16/pcode.c (pic16_newpCodeOpLit): removed casting to char
3857         for 8-bit literals. This fixes some literal operands which are sign
3858         extended to 16-bits ints when instruction needs only 8-bits.
3859
3860 2004-12-31 Paul Stoffregen <paul AT pjrc.com>
3861
3862         * device/lib/logf.c: added mcs51 assembly version
3863         * device/lib/expf.c: added mcs51 assembly version
3864         * device/lib/_logexpf.c: new shared asm code for expf and logf
3865         * device/include/math.h: add defines for assembly math library
3866         * device/lib/Makefile.in: build new _logexpf.c
3867         * device/lib/libfloat.lib: use new _logexpf.c
3868
3869 2004-12-29 Slade Rich <slade_rich AT users.sourceforge.net>
3870
3871         * src/pic/device.c
3872         * src/pic/pcode.c : adjusted internal stack and pre-allocated registers for
3873           device types which have less than 0x7f registers.
3874
3875 2004-12-29 Slade Rich <slade_rich AT users.sourceforge.net>
3876
3877         * src/pic/genarith.c : Fixed problem with subtraction where the result would not be updated when borrowing.
3878
3879 2004-12-28 Paul Stoffregen <paul AT pjrc.com>
3880
3881         * device/lib/printf_fast.c: only build on supported arch.
3882         * device/lib/printf_tiny.c: only build on supported arch.
3883         * device/lib/printf_fast_f.c: only build if asm float lib
3884         * device/lib/_fsget1arg.c: only build if asm float lib
3885         * device/lib/_fsget2args.c: only build if asm float lib
3886         * device/lib/_fsnormalize.c: only build if asm float lib
3887         * device/lib/_fsreturnval.c: only build if asm float lib
3888         * device/lib/_fsrshift.c: only build if asm float lib
3889         * device/lib/_fsswapargs.c: only build if asm float lib
3890         * device/include/stdio.h: don't provide print_fast,
3891           print_fast_f, print_tiny prototypes if --xstack used
3892
3893 2004-12-28 Maarten Brock <sourceforge.brock AT dse.nl>
3894
3895         * device/lib/sincosf.c (sincosf): don't invert bit/bool by ~
3896         * support/regression/ports/mcs51-stack-auto/spec.mk: added new _fs.. files
3897           to the SOURCES
3898
3899 2004-12-28 Paul Stoffregen <paul AT pjrc.com>
3900
3901         * device/lib/printf_fast_f.c: same as printf_fast, but
3902           with floating point enabled
3903         * device/lib/printf_fast.c: minor tweaks
3904         * device/include/stdio.h: add printf_fast_f
3905
3906 2004-12-27 Paul Stoffregen <paul AT pjrc.com>
3907
3908         * src/SDCCmain.c: make --float-reent default for mcs51
3909         * device/lib/_fsadd.c: added mcs51 assembly version
3910         * device/lib/_fssub.c: added mcs51 assembly version
3911         * device/lib/_fsmul.c: added mcs51 assembly version
3912         * device/lib/_fsdiv.c: added mcs51 assembly version
3913         * device/lib/_fseq.c: added mcs51 assembly version
3914         * device/lib/_fsneq.c: added mcs51 assembly version
3915         * device/lib/_fsgt.c: added mcs51 assembly version
3916         * device/lib/_fslt.c: added mcs51 assembly version
3917         * device/lib/_fscmp.c: shared code for fseq,fsgt,fslt,fsneq
3918         * device/lib/Makefile.in: add _fscmp to build
3919         * device/lib/libfloat.lib: add _fscmp to build
3920
3921 2004-12-27 Paul Stoffregen <paul AT pjrc.com>
3922
3923         * device/lib/_fs2slong.c: added mcs51 assembly version
3924         * device/lib/_fs2sint.c: added mcs51 assembly version
3925         * device/lib/_fs2schar.c: added mcs51 assembly version
3926         * device/lib/_fs2ulong.c: added mcs51 assembly version
3927         * device/lib/_fs2uint.c: added mcs51 assembly version
3928         * device/lib/_fs2uchar.c: added mcs51 assembly version
3929         * device/lib/_slong2fs.c: added mcs51 assembly version
3930         * device/lib/_sint2fs.c: added mcs51 assembly version
3931         * device/lib/_schar2fs.c: added mcs51 assembly version
3932         * device/lib/_ulong2fs.c: added mcs51 assembly version
3933         * device/lib/_uint2fs.c: added mcs51 assembly version
3934         * device/lib/_uchar2fs.c: added mcs51 assembly version
3935         * device/include/float.h: added #define to select asm vs c
3936
3937 2004-12-26 Paul Stoffregen <paul AT pjrc.com>
3938
3939         * device/lib/printf_fast.c: improvements to float output
3940         * device/include/float.h: add defines for assembly float library
3941         * device/lib/_fsget1arg.c: receive 1 float arg
3942         * device/lib/_fsget2args.c: receive 2 float args (reentrant)
3943         * device/lib/_fsnormalize.c: normalize a float
3944         * device/lib/_fsreturnval.c: return float, various helper routines
3945         * device/lib/_fsrshift.c: right shift a float's mantissa
3946         * device/lib/_fsswapargs.c: swap 2 floats
3947         * device/lib/Makefile.in: build these 6 new files for mcs51
3948         * device/lib/libfloat.lib: add these 6 files to the library
3949
3950 2004-12-26 Borut Razem <borut.razem AT siol.net>
3951
3952         * sim/ucsim/avr.src/arith_inst.cc: fixed bug #1088372- savr is not
3953           built by gcc 3.4.2
3954
3955 2004-12-25 Paul Stoffregen <paul AT pjrc.com>
3956
3957         * device/lib/printf_tiny.c: printf for mcs51 in only 267 bytes,
3958           and fully reentrant and register bank neutral.
3959         * device/lib/printf_fast.c: added float (not enabled by default),
3960           added compact/slower integer (also not enabled by default),
3961           improved size/speed of fast integer code, other minor changes
3962         * device/include/stdio.h, device/lib/Makefile.in,
3963           device/lib/libsdcc.lib: integrate printf_tiny into mcs51 build
3964
3965 2004-12-24 Maarten Brock <sourceforge.brock AT dse.nl>
3966
3967         * src/pic16/pcode.c: declaring variables other than at the start of a
3968           block is not supported in C by VC6.
3969
3970 2004-12-22 Vangelis Rokas <vrokas AT otenet.gr>
3971
3972         * applied a previous patch from Raphael Neider that wasn't included
3973         in the previous commits, which fixes infinite loops within jumptable
3974         improvements,
3975         * made some fixes that previous patches introduced
3976
3977 2004-12-21 Vangelis Rokas <vrokas AT otenet.gr>
3978
3979         * src/pic16/gen.c (pic16_aopGet): applied fix from Raphael Neider
3980         that fixes an issue with AOP_PCODE asmop's offset,
3981         * (pic16_popCopyReg): update instance field too,
3982         * (mov2w): modified to pic16_mov2w because it conflicts with mov2w
3983         function of pic port,
3984         * (genCmp, genAnd, genAssign),
3985         * src/pic16/genarith.c (genAddLit): some fixes from Raphael Neider,
3986
3987 2004-12-20 Vangelis Rokas <vrokas AT otenet.gr>
3988
3989         * src/SDCCast.c (gatherAutoInit): allow pic16 to emit static
3990         variables initial values to idata section,
3991         * src/SDCCicode.c (geniCodeCall): patch from ### to fix unreferenced
3992         variables in some functions. This utilizes parmBytes field of iCode
3993         structure to hold the offset of the variable in stack. (might be
3994         able to use the stack field too?)
3995         * applied patch from Raphael Neider # ### , # ###
3996         * src/pic16/glue.c (pic16emitRegularMap): fix to print static
3997         variable initial values in idata section,
3998         * src/pic16/ralloc.c (pic16_allocDirReg): don't allocate register
3999         for static variables with initial value
4000         * src/device/lib/pic16/libsdcc/float/ulong2fs.c (__ulong2fs):
4001         applied fix in while loop from Raphael Neider.
4002
4003 2004-12-19 Maarten Brock <sourceforge.brock AT dse.nl>
4004
4005         * src/ds390/gen.c (genCpl): fixed bit=~(char/bit) bugs, added warning
4006         * src/ds390/main.c (_ds390_regparm): don't pass bit params in registers
4007         * src/ds390/ralloc.c (serialRegAssign): spill bits
4008         * src/mcs51/gen.c (genCpl): fixed bit=~(char) bugs, added warning
4009         * support/Util/SDCCerr.c,
4010         * support/Util/SDCCerr.h: added warning W_COMPLEMENT for using bit=~(bit)
4011         * support/regression/tests/bitvars.c: added tests for bitwise complement(~)
4012         * support/regression/tests/bitwise.c: added test for bitwise complement(~)
4013
4014 2004-12-09 Maarten Brock <sourceforge.brock AT dse.nl>
4015
4016         * device/include/sdcc-lib.h: inserted LGPL, added includes
4017           asm/ds390/features.h and asm/mcs51/features.h
4018         * device/include/asm/default/features.h,
4019         * device/include/asm/gbz80/features.h,
4020         * device/include/asm/z80/features.h: added empty _AUTOMEM
4021           and _STATMEM
4022         * device/include/asm/ds390/features.h,
4023         * device/include/asm/mcs51/features.h: added files with defines for
4024           _AUTOMEM and _STATMEM indicating automatic and static storage class
4025         * device/lib/printf_large.c (_print_format): optimized & used _AUTOMEM
4026         * doc/sdccman.lyx: version 2.4.7, updated xstack documentation
4027         * src/SDCCicode.c (geniCodeCast),
4028         * src/SDCCsymt.c (compareType): allow cast of data-ptr to idata-ptr
4029         * src/SDCCloop.c (loopInduction): removed unused variable lr
4030         * src/SDCCopt.c (convilong, convertToFcall): moved "easy special case"
4031           to convertToFcall to include char modulo (RFE 1065037), added check
4032           if left operand is unsigned and use abs of literal value
4033         * src/SDCCpeeph.c (setFromConditionArgs): removed double quotes option
4034           as it doesn't work after conversion from peephole.def to peephole.rul
4035         * src/mcs51/gen.c (toBoolean): added check for size,
4036           (genModOneByte): optimized code for signed char modulo a literal
4037           power of 2 (thanks to Hubert Sack),
4038           (genRRC): removed unnecessary "clr c",
4039           (genRLC): replaced "add a,acc" with cheaper "rlc a"
4040         * src/mcs51/peeph.def: renamed 115 to 115.a, added rule 115.b: another
4041           jump optimization,
4042           swapped rules 256.c and 256.d,
4043           extended 256.d by using new multiple checks (thanks Erik),
4044           added rules 256.e and 256.f,
4045           updated rule 261.a and 261.b to new generated code
4046         * support/regression/tests/muldiv.c: added test div/mod by a power of 2
4047
4048 2004-12-07 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
4049
4050         * src/SDCCloop.c (basicInduction, loopInduction): fixed several
4051           induction related bugs, including first part of bug #1074377
4052
4053 2004-12-05 Vangelis Rokas <vrokas AT otenet.gr>
4054
4055         * applied patch from bug-report #1076292,
4056         * applied patches for genAnd and Goto-optimizations for Raphael
4057         Neider,
4058         * src/SDCCicode.c (printOperand): fixed !REGA source to compile and
4059         dump a less iCode information,
4060         * src/pic16/device.h (pic16_options_t): added field debgen,
4061         * src/pic16/gen.h: added macros DUMP_FUNCTION_ENTRY,
4062         DUMP_FUNCTION_EXIT, FENTRY, FENTRY2,
4063         * src/pic16/gen.c (my_powof2): renamed to pic16_my_powof2 and made
4064         puclic,
4065         * (various functions): added macros FENTRY and FENTRY2 to functions,
4066         to emit function prologue,
4067         * (various functions): fixed indentation,
4068         * (genNearPointerGet): fixed loading of FSR0,
4069         * (genPackBits): applied patch from Raphael Neider to fix updating
4070         of FSR0 and touching only the modified bits,
4071         * src/pic16/genarith.c (various functions): added macros FENTRY to
4072         emit function prologue in comments,
4073         * src/pic16/pcode.h: added functions debugf2, debugf3,
4074         * src/pic16/ralloc.c: partial fix for packForPush caused
4075         segmentation fault,
4076
4077 2004-12-04 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
4078
4079         * src/mcs51/peeph.def: added 261.a,b (16 bit rotate) by Stas Sergeev
4080           <stsp AT users.sourceforge.net> with reversed byte order
4081         * support/regression/tests/rotate.c: added (ds390 skips some tests)
4082
4083 2004-12-03 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
4084
4085         * src/z80/gen.c (genLeftShift, genRightShift): fixed second part of
4086           bug #1074377
4087         * src/hc08/gen.c (genrshFour, shiftRLong, shiftLLong),
4088         * src/mcs51/gen.c (shiftLLong): Fixed some shifting bugs Frieder found
4089
4090 2004-12-02 Slade Rich <slade_rich AT users.sourceforge.net>
4091
4092         * src/pic/pcode.c : fixed a problem where banksel was not being inserted.
4093
4094 2004-12-02 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
4095
4096         * src/SDCCpeeph.c (callFuncByName): support combined peephole rule
4097           conditions,
4098           (setFromConditionArgs): friendly operand parser for peephole rules,
4099           (operandBaseName, operandsNotRelated): new peephole condition
4100           "operandsNotRelated" -- similar to "operandsNotSame", but takes
4101           architecture specific register naming into account, handles n-way
4102           comparisons, and supports quoted literals
4103         * src/mcs51/peeph.def: restored rule 177.d with an extra condition
4104
4105 2004-12-02 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
4106
4107         * src/mcs51/peeph.def: fixed bug #1076940
4108
4109 2004-12-02 Slade Rich <slade_rich AT users.sourceforge.net>
4110
4111         * device/include/pic/pic16f877.h : added an include file for the PIC16F877 device.
4112
4113 2004-11-28 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
4114
4115         Adding support for replacing ljmps with sjmps in jumptables
4116         generated for switch statements. For now you need to set the
4117         environment variable SDCC_SJMP_JUMPTABLE to enable this.
4118         Now 4 algorithms for mcs51 jumptable generation are used:
4119         ljmp or sjmp jumptables for up to 16 cases, stack-pushing target
4120         addresses loaded pc-relative for up to 112 cases and stack-pushing
4121         target addresses loaded with offset from dptr for up to 256 cases.
4122
4123         * src/SDCCpeeph.c: added peephole conditional labelJTInRange
4124         * src/mcs51/main.c: adapted constants for switch table generation
4125         * src/mcs51/peeph.def: added 260.x for replacing ljmp with sjmp
4126
4127 2004-11-26 Maarten Brock <sourceforge.brock AT dse.nl>
4128
4129         * device/lib/printf_large.c (_print_format): fixed bug 1073386
4130         * support/regression/tests/bug1057979.c: added test for bug 1073386
4131
4132 2004-11-25 Vangelis Rokas <vrokas AT otenet.gr>
4133
4134         * src/pic16/pcode.c: fixed bug which may produce error in non-GNU
4135         compilers
4136
4137 2004-11-25 Vangelis Rokas <vrokas AT otenet.gr>
4138
4139         * src/pic16/device.h,
4140         * src/pic16/genarith.c,
4141         * src/pic16/glue.c,
4142         * src/pic16/main.c,
4143         * src/pic16/pcode.c: applied patches #1068154 and #1070213
4144
4145 2004-11-24 Vangelis Rokas <vrokas AT otenet.gr>
4146
4147         Large cummulative patch for pic16 port.
4148         * device/lib/pic16/gstack.h: NEW, user can specify its own handler
4149         to call when a stack overflow occurs,
4150         * (malloc.h): added CVS Id tag,
4151         * (pic18f{242,252,442,452}.h): added T0CONbits structure and
4152         variable,
4153         * added libc directory. The current version of LibC contains string
4154         functions, ctype functions and macros and some functions of the
4155         stdlib set (like malloc/free/atof/atoi etc...). All functions are to
4156         be extensively tested in the future. Standard disclaimer here.
4157         Library is not automatically build yet. But one can build it by
4158         invoking 'make' inside the libc directory.
4159         * added ADC library under libio. Preliminary version yet.
4160
4161         * src/pic16/gen.h: added emitTOGC macro, to toggle Carry flag,
4162         * src/pic16/gen.c (aopForRemat): asmop size is filled by
4163         aopForRemat() now and not by pic16_aopOp(),
4164         * (pic16_popGetTempReg): removed warning messgae when allocating
4165         temporary registers, its a buggy feature and will be removed,
4166         * (pic16_popGet): set register instance field in AOP_CRY,
4167         * (pic16_outBitC): fixed for results in size greater than 1,
4168         * (genUminusFloat): fixed for pic16, ported code from mcs51,
4169         * (pic16_storeForReturn): optimized return of 0,
4170         * (genCmp): experimental code for new genCmp which uses PIC18's
4171         special compare&skip instructions. Initial tests fail some times
4172         with variables grater than 1 byte in size, so new code is disabled,
4173         * (genUnpackBits, genPackBits): more optimizations in reading/writing,
4174         a single bit,
4175         * (genCast): began a fix to optimize the casting of a bit to another
4176         bit, now assigning a bitfield to another bitfield will fail, sorry,
4177         * src/pic16/main.c: disabled the use of lr-support feature,
4178         * src/pic16/pcode.h: renamed PCASMDIR to PCAD,
4179         * added some function prototypes, added function _debugf prototype,
4180         * src/pic16/pcode.c: (pic16_get_op): fixed emitting operands of register
4181         bits with offset (case PO_GPR_BIT),
4182         * (genericPrint): don't emit INFO pcode when --pcode-verbose not in
4183         command line,
4184         * (isBankInstruction): modified to return 0 for no banking instruction,
4185         and 1 for banking instruction,
4186         * (pic16_isPCinFlow): check for PCAD (assembler directives) too,
4187         caused stop processing pCodes after a inline assembly block,
4188         * (pic16_popCopyGPR2Bit): updated to match bitfields with offset,
4189         * src/pic16/pcoderegs.c: fixed a bug with eliminating some temporary
4190         registers when it shouldn't,
4191         * src/pic16/ralloc.c (allocReg): add preliminary support for
4192         supporting a limited set of temporary registers,
4193
4194 2004-11-23 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
4195
4196         * src/hc08/gen.c (genAssign, genPointerGetSetOfs, genDataPointerGet,
4197           genDataPointerSet): ensure assignments always copy in MSB to LSB
4198           order,
4199           (loadRegFromAop): recognize CLRH optimization,
4200           (genFunction): optimize RECEIVE iCodes in reentrant functions
4201
4202 2004-11-20 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
4203
4204         * src/SDCCmain.c (parseCmdLine, optionsTable[]): fixed bug with
4205           --out-fmt-s19 turning into --out-fmt-elf if s19 was already
4206           selected.
4207         * src/SDCCmain.c (linkEdit): don't define SSEG for HC08
4208         * src/hc08/main.c (_hc08_setDefaultOptions): default xdata to be
4209           contiguous with data
4210
4211 2004-11-19 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
4212
4213         * device/lib/_gptrget.c (_gptrget),
4214         * device/lib/_gptrgetc.c (_gptrgetc),
4215         * device/lib/_gptrput.c (_gptrput): _naked allows to use ret
4216           instead of sjmp to ret
4217         * src/mcs51/peeph.def: added peepholes 3.d-g and 177.g,h provided
4218           by Hubert Sack <hsack2002 AT arcor.de> in RFE #1067986, thanks
4219
4220 2004-11-18 Maarten Brock <sourceforge.brock AT dse.nl>
4221
4222         * .version: bumped version to 2.4.7
4223         * device/lib/_gptrget.c (_gptrget): is now _naked
4224         * device/lib/_gptrgetc.c (_gptrgetc): is now _naked
4225         * device/lib/_gptrput.c (_gptrput): is now _naked
4226         * src/SDCCast.c (createBlock): removed ridiculous self-assignment,
4227           (createFunction): fixed xstack
4228         * src/SDCCglue.c (emitMaps): set allocation required for bit area
4229         * src/SDCCicode.c (geniCodeCast): don't change SPEC_OCLS for literal
4230           or bit either,
4231           (geniCodeCritical): store original interrupt state in an iTemp bit
4232           var unless stack-auto
4233         * src/SDCCicode.h: added CRITICAL and ENDCRITICAL to SKIP_IC2
4234         * src/SDCCmain.c (setIncludePath): added include/target to search path
4235         * src/SDCCmem.c (allocParms): store bit vars in bit space, not overlay
4236         * src/SDCCsymt.c (checkFunction): don't check regbank for isr's against
4237           prototype,
4238           (processFuncArgs): put bit vars in bit area
4239         * src/mcs51/gen.c (saveRegisters, unsaveRegisters, genXpush, saveRBank,
4240           unsaveRBank): fixed xstack,
4241           (genFunction): bugfix: replaced (global!) reentrant with fReentrant,
4242           (genFunction, genEndFunction): fixed xstack,
4243           (genAssign): optimization don't walk backwards through mem
4244         * src/mcs51/main.c (_mcs51_regparm): don't pass bit params in registers
4245         * src/mcs51/ralloc.c (createStackSpil): spill bits to bit area
4246         * support/regression/Makefile: also make library (for stack-auto) when
4247           making "all" and added "test-mcs51-xstack-auto"
4248         * support/regression/fwk/lib/testfwk.c: added T2_isr prototype for mcs51
4249         * support/regression/ports/mcs51/T2_isr.c: added this file as a stub
4250         * support/regression/ports/mcs51/fwk.lib: added to link T2_isr stub
4251         * support/regression/ports/mcs51/spec.mk: added rules for fwk.lib
4252         * support/regression/ports/mcs51-stack-auto/spec.mk: replaced
4253           make-library by MAKE_LIBRARY
4254         * support/regression/ports/mcs51-xstack-auto/spec.mk: file added to run
4255           regression tests for xstack
4256         * support/regression/tests/bitvars.c: test for bit vars (bug 938782)
4257         * support/regression/tests/critical.c: test for critical on mcs51
4258
4259 2004-11-18 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
4260
4261         * support/regression/ports/ucz80/spec.mk: use include and lib files from
4262           built version of sdcc instead of installed version
4263
4264 2004-11-14 Maarten Brock <sourceforge.brock AT dse.nl>
4265
4266         * src/mcs51/gen.c (toBoolean): fixed bug 1065458
4267         * device/lib/Makefile.in: z80 uses printf_large.c, sprintf.c and
4268           vprintf.c now
4269         * device/lib/printf_large.c (calculate_digit): fixed bug 1057979
4270         * device/lib/z80/Makefile: don't use printf.c as it fails bug 1057979
4271           WARNING: remove device/lib/build/z80/printf.o by hand when
4272           updating from previous build!
4273         * device/lib/z80/printf.c: updated comment
4274         * support/regression/tests/bug1057979.c: test all ports now
4275         * support/regression/tests/bug1065458.c: file added
4276
4277 2004-11-12 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
4278
4279         * src/z80/gen.c (genFunction, genEndFunction): avoided generating
4280           *_start and *_end symbols for static functions
4281
4282 2004-11-11 Maarten Brock <sourceforge.brock AT dse.nl>
4283
4284         * src/SDCCmain.c (linkEdit): don't suppress crt0 if --nostdlib is used
4285           and search crt0.o in all library paths,
4286           (setIncludePath): proper handling of --nostdinc,
4287           (setLibPath): proper handling of --nostdlib
4288         * support/regression/Makefile,
4289         * support/regression/ports/ds390/spec.mk,
4290         * support/regression/ports/gbz80/spec.mk,
4291         * support/regression/ports/hc08/spec.mk,
4292         * support/regression/ports/mcs51/spec.mk,
4293         * support/regression/ports/mcs51-large/spec.mk,
4294         * support/regression/ports/mcs51-stack-auto/spec.mk,
4295         * support/regression/ports/z80/spec.mk: use include and lib files from
4296           built version of sdcc instead of installed version
4297         * doc/sdccman.lyx: fixed typo in --nostdinc
4298
4299 2004-11-10 Slade Rich <slade_rich AT users.sourceforge.net>
4300
4301         * src/pic/pcode.c,
4302         * src/pic/device.c,
4303         * src/pic/ralloc.c,
4304         * src/pic/gen.c : added support to generate code for struct bit fields.
4305
4306 2004-11-06 Maarten Brock <sourceforge.brock AT dse.nl>
4307
4308         * as/xa51/xa_version.h,
4309         * device/include/errno.h,
4310         * device/include/regc515c.h,
4311         * device/lib/_itoa.c,
4312         * device/lib/_ltoa.c,
4313         * device/lib/ser_ir_cts_rts.c,
4314         * sim/ucsim/xa.src/glob.cc,
4315         * sim/ucsim/xa.src/inst_gen.cc,
4316         * sim/ucsim/xa.src/xa_bit.cc,
4317         * sim/ucsim/xa.src/xa_sfr.cc,
4318         * sim/ucsim/z80.src/inst_dd.cc,
4319         * sim/ucsim/z80.src/inst_fdcb.cc,
4320         * support/scripts/keil2sdcc.pl,
4321         * src/pic16/pic16.dsp,
4322         * src/pic16/pic16a.dsp: corrected cvs line endings
4323         * device/lib/printf_large.c: fixed bug 1057979
4324         * src/pic16/gen.c: fixed non-C standard code
4325         * src/SDCCmain.c: made --pack-iram default, added --no-pack-iram
4326         * src/SDCCglobl.h: changed pack_iram to no_pack_iram
4327         * support/regression/ports/mcs51/support.c: reload T1 asap
4328         * doc/sdccman.lyx: updated for options --pack-iram and --no-pack-iram,
4329           pdata use and clear idata startup behaviour
4330         * support/regression/tests/bug1057979.c: added
4331
4332 2004-11-04 Maarten Brock <sourceforge.brock AT dse.nl>
4333
4334         * device/examples/ds390/ow390/ad26.h,
4335         * device/examples/ds390/ow390/cnt1d.h,
4336         * device/examples/ds390/ow390/crcutil.c,
4337         * device/examples/ds390/ow390/ownet.h,
4338         * device/examples/ds390/ow390/owsesu.c,
4339         * device/examples/ds390/ow390/swt12.h,
4340         * device/examples/ds390/ow390/swtoper.c,
4341         * device/examples/ds390/ow390/temp10.h,
4342         * device/examples/ds390/ow390/thermodl.c,
4343         * device/examples/ds390/tinitalk/tinitalk.dsp,
4344         * device/examples/ds390/tinitalk/tinitalk.dsw,
4345         * device/examples/mcs51/clock/hw.h,
4346         * device/examples/mcs51/simple2/go.bat,
4347         * device/examples/serialcomm/windows/serial.h,
4348         * device/examples/xa51/dummy.c,
4349         * device/examples/xa51/hello.c,
4350         * device/include/80c51xa.h,
4351         * device/include/at89x051.h: corrected cvs line endings
4352
4353 2004-11-04 Vangelis Rokas <vrokas AT otenet.gr>
4354
4355         * src/pic16/main.c (options): added command line --gstack, to trace
4356         stack over/under flows,
4357         * added pragma 'wparam' to allow passing first byte of function
4358         parameters via WREG, syntax is #pragma wparam my_function[, func2...]
4359         * src/pic16/gen.c (pic16_testStackOverflow): function which emits a
4360         call to __gstack_test function and sets up the symbol as extern,
4361         * (pic16_pushpCodeOp, pic16_poppCodeOp, pushw, pushaop, popaopidx,
4362         * popaop): added call to pic16_testStackOverflow,
4363         * (wParamCmp, inWparamList): NEW, test existence of a symbol in
4364         wparamList list,
4365         * (genCall, genPcall): now all parameters are passed via stack
4366         except in functions that are pass to wparam pragma in which WREG is
4367         used too,
4368         * (genPcall): REENTRANT flag is checked to see if variable prototype
4369         contains reentrant keyword, don't call a non-reentrant function, via
4370         a reentrant function pointer or vice versa, functions are never
4371         passed via WREG,
4372         * (genJumpTab): applied patch from bug #1057478 by R.Neider and
4373         D.Winkler,
4374         * src/pic16/glue.c (pic16emitRegularMap): fixed bug which caused a
4375         SIGSEGV when accessing a NULL register stucture,
4376         * (pic16_printGPointerType): modified to handle UPPER modifier for
4377         function initializers, changed prototype of function to simpler one,
4378         * (pic16_printIvalFuncPtr): check to see if function is already
4379         added in externs list,
4380         * src/pic16/pcoderegs.c (pCodeOptime2pCodes): fixed bug which
4381         optimized a move from W to SFR with a move to the same register
4382         later after a CALL,
4383         * device/lib/pic16/debug: NEW directory, contains debug features
4384         which are enabled when linking with libdebug.lib, currently command
4385         line option --gstack enables stack pointer tracing for over/under
4386         flow, corresponding sources are in debug/gstack
4387
4388 2004-10-30 Vangelis Rokas <vrokas AT otenet.gr>
4389
4390         * doc/sdccman.lyx: updated SDCC version,
4391         * (PIC16 port): update list of command line options,
4392         * src/pic16/device.h (structure pic16_options_t): added field gstack
4393         to enable stack overflow tracing on push/pops,
4394         * src/pic16/device.c (statistics structure): added statistics
4395         structure,
4396         * (pic16_dump_access, pic16_dump_usection, pic16_dump_gsection,
4397         pic16_dump_int_registers): increase statistics counters for each
4398         * variable which is encountered
4399         * (pic16_dump_usection): emit each .udata variable to its own udata
4400         section,
4401         * src/pic16/gen.c (assignResultValue, genCall, genPcall, genFunction):
4402         when macro USE_WREG_IN_FUNC_PARAMS is set to 0 pass all function
4403         parameters via stack, otherwise use old scheme,
4404         * src/pic16/glue.c (pic16_emitStatistics): dump statistics in
4405         assembler output file,
4406         * src/pic16/main.c: added command line options --gstack to enable
4407         push/pop tracing for stack overflow,
4408         * src/pic16/pcode.c (all pCodeInstruction records for PIC18F
4409         instructions): added size of each instruction,
4410         * (pic16_countInstruction): estimate size of instructions in
4411         the_pFile list, inline assembly blocks are not counted,
4412         * (pic16_FixRegisterBanking): trace previous register usage, when
4413         banksel optimizations is greater than 0, don't emit a redudant
4414         banksel directive,
4415
4416 2004-10-26 Slade Rich <slade_rich AT users.sourceforge.net>
4417
4418         * src/pic/ralloc.c : fixed inefficient code produced when compiling a complimented bit operation.
4419         * src/pic16/ralloc.c : applied same fix for pic16.
4420         * src/pic/gen.c : tidied it up a little.
4421
4422 2004-10-25 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
4423
4424         * src/mcs51/peeph.def: disabled 259.a,b for removing redundant ret,
4425         thanks to Martin Helmling for reporting (mail on sdcc-devel 2004-10-25)
4426
4427 2004-10-22 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
4428
4429         * src/SDCCast.c (reverseParms): fixed bug #1040577 (part 2)
4430
4431 2004-10-22 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
4432
4433         * device/lib/ser_ir_cts_rts.c: integer promotion caused a call to the
4434         non-reentrant function __modsint in the interrupt function (thus
4435         corrupting math operations during serial I/O)
4436         * device/lib/ser_ir.c: as above, changed buffersize
4437         * src/mcs51/peeph.def: added 259.a,b for removing redundant ret,
4438         256.c,d for zeroing
4439         * doc/Makefile: added option -t for rsync
4440
4441 2004-10-22 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
4442
4443         * src/SDCCast.h (struct ast),
4444         * src/SDCCast.c (reverseParms, copyAst): fixed bug #1040577 (part 1)
4445
4446 2004-10-20 Borut Razem <borut.razem AT siol.net>
4447
4448         * support/scripts/sdcc.nsi: added include/pic16/*.h to the setup
4449         package
4450
4451 2004-10-20 Vangelis Rokas <vrokas AT otenet.gr>
4452
4453         * device/lib/pic16/libsdcc/Makefile: added lregs directory in
4454         makefile targets,
4455         * device/lib/pic16/libsdcc/lregs/{Makefile,lrst.c,lrrest.c}: NEW
4456         support functions to replace long sequences of MOVFF's from access
4457         bank registers to stack and vice versa,
4458         * src/pic16/device.h: added new field opt_flags, where optimization
4459         flags can be set to enable certain features,
4460         * src/pic16/gen.c (pic16_emitpinfo): NEW to add PC_INFO pCode in
4461         * pBlock, (genFunction, genEndFunction): surroung loop for
4462         saving/loading used registers in stack with PC_INFO pCodes,
4463         INF_LREGS. Code in between can then be optimized by pCode optimizer
4464         to support function calls,
4465         * (genDataPointerSet): fixed bug which loaded float fields in
4466         structures with corrupt data,
4467         * src/pic16/genutils.c (debugf, _debugf): macro/function which emits
4468         in a standard way debug info on stderr. Feature used for developing
4469         and debugging only,
4470         * src/pic16/glue.c (pic16glue): reformatted, deleted some old and
4471         obsolete chunks of code,
4472         * if optimization flag OF_LR_SUPPORT was set, call pic16_OptimizeLocalRegs,
4473         * src/pic16/main.c (_pic16_parseOptions): added handler for --flr-support,
4474         * pic16/src/pcode.c (pic16_newpCodeInfo,
4475         * (pic16_newpCodeOpLocalRegs),
4476         * (pic16_convertLocalRegs2Support): NEW, to support new optimization
4477         feature,
4478         * (pic16_pCodeConstString): printing of the initial value of a
4479         symbol as a comment is inhibited since parsing was already done by
4480         copyStr and output is corrupt,
4481         * (pic16_pCode2str, genericPrint): handle PC_INFO pCode,
4482
4483 2004-10-20 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
4484
4485         * src/mcs51/ralloc.c (packRegisters): fixed bug #1044601
4486
4487 2004-10-19 Maarten Brock <sourceforge.brock AT dse.nl>
4488
4489         * as/mcs51/lkarea.c: removed old K&R style,
4490           (lnksect): changed check on boundary error,
4491           (lnksect2): changed check on boundary error,
4492           (lnksect2): extend XSTK to end of page if size = 1
4493         * as/mcs51/lkmain.c: removed old K&R style,
4494           (Areas51): create l_IRAM symbol
4495         * as/mcs51/lkmem.c (summary2): added report on PSEG and XSTK
4496         * device/lib/Makefile.in: renamed model-mcs51-reentrant to
4497           model-mcs51-stack-auto, added model-mcs51-xstack-auto
4498         * device/lib/_mullong.c: added version to be compiled with xstack
4499         * device/lib/mcs51/crtclear.asm: clear only upto --iram-size
4500         * device/lib/mcs51/crtxclear.asm: clear pdata as well
4501         * device/lib/mcs51/crtxstack.asm: fixed comment
4502         * src/SDCCglue.c: maxInterrupts defaults to 0,
4503           (emitMaps): added pdata,
4504           (createInterruptVect): (re)moved default,
4505           (glue): added pdata,
4506           (glue): moved __start__xstack to XSTK with default size 1
4507         * src/SDCCmain.c (parseCmdLine): automatically set options.intlong_rent
4508           and options.float_rent when options.stackAuto is set,
4509           (linkEdit): only write XDATA_NAME if provided on command line
4510         * src/SDCCmem.h,
4511         * src/SDCCmem.c: added pdata
4512         * src/port.h: added pdata_name to PORT
4513         * src/mcs51/gen.c (toBoolean): fixed for Acc use of aopGet,
4514           (saveRegisters, unsaveRegisters): removed usage of B,
4515           (genMinus): fixed accumulator clash,
4516           (genJumpTab): added comment, this needs another look
4517         * src/mcs51/gen.c: added check for "B in use" paranoia,
4518           added pushB() and popB()
4519         * src/mcs51/peeph.def: restart after 177.c so 177.a can get a second
4520           chance
4521         * src/avr/main.c,
4522         * src/ds390/main.c,
4523         * src/hc08/main.c,
4524         * src/mcs51/main.c,
4525         * src/pic/main.c,
4526         * src/pic16/main.c,
4527         * src/xa51/main.c,
4528         * src/z80/main.c: (reset_regparms) made void parameter explicit and
4529           added PSEG (PAG,XDATA) or NULL to port specifier
4530         * src/ds390/main.c (_ds390_genIVT): moved implemented default in here
4531         * src/mcs51/main.c (_mcs51_genIVT): moved implemented default in here,
4532           (_mcs51_genInitStartup): removed __start__xstack equ,
4533           (mcs51_port): moved xstack from XSEG (XDATA) to XSTK (PAG,XDATA)
4534         * src/pic16/device.c (pic16_dump_usection, pic16_dump_isection),
4535         * src/z80/gen.c (_rleAppend): fixed warnings
4536         * support/regression/tests/zeropad.c: added pdata test
4537         * .version: bumped to 2.4.6
4538
4539 2004-10-17 Borut Razem <borut.razem AT siol.net>
4540
4541         * support/scripts/sdcc.nsi: cross compiling of WIN32 setup.exe on Linux
4542         as a part of nightly build
4543
4544 2004-10-16 Vangelis Rokas <vrokas AT otenet.gr>
4545
4546         * src/pic16/gen.c (struct _G): added field useWreg, is set to 1 when
4547         WREG holds the first byte function parameters,
4548         * (aopForSym): take special case for symbols which are in FARSPACE
4549         but in CODESPACE too,
4550         * (assignResultValue): modified to take into account _G.useWreg,
4551         * (genCall): don't use wreg for parameter passing when function is
4552         declared as reentrant, too, added optimization INCF to stack
4553         pointer when stack parameter count is 1,
4554         * (genFunction, genEndFunction): refurnished and fixed to not using
4555         wreg for passing parameters when function has varargs or is
4556         reentrant, fixed bug with symbol name compare for generating
4557         functions in absolute address,
4558         * (pic16_storeForReturn): refurnished,
4559         * (genCmp): began writing a new version of the function, not ready
4560         yet, therefore it is disabled,
4561         * (genAssign): do not read code memory when assigning a function to
4562         a pointer function,
4563         * src/pic16/glue.c (pic16emitStaticSeg): abSym->name is defined an
4564         array of characters, not pointer,
4565         * (pic16initialComments): in debug mode emit an .ident directive for
4566         the assembler,
4567         * (_process_pragma): emit a new warning type (internal to pic16)
4568         when setting stack to default length, emit a similar warning when
4569         placing a function at absolute address and address is not word aligned
4570         * (_pic16_parseOptions): added 'return TRUE' statement,
4571         * (_pic16_linkEdit): if compiling a source, then add the source's
4572         file object, first in the list of objects to link,
4573
4574 2004-10-13 Slade Rich <slade_rich AT users.sourceforge.net>
4575
4576         * src/pic/pcoderegs.c : increased count on regUsedinRange to prevent unnecessary warning.
4577         * src/pic/main.c : removed VC warning.
4578         * src/pic/gen.c : changed comment.
4579
4580 2004-10-12 Vangelis Rokas <vrokas AT otenet.gr>
4581
4582         * device/lib/pic16/libsdcc/gptr/gptrput[234].c: an external
4583         reference to a deprecated symbol _GPTRREG was causing failure to
4584         link. Thanks G. M. Gallant for the info.
4585
4586 2004-10-12 Slade Rich <slade_rich AT users.sourceforge.net>
4587
4588         * src/pic/pcode.c : Applied a code patch supplied by Paul Ashmore in
4589         comments for Bugs item #954788.
4590
4591 2004-10-10 Vangelis Rokas <vrokas AT otenet.gr>
4592
4593         * src/pic16/device.c (pic16_dump_gsection,
4594         * pic16_groupRegistersInSection): handle symbols declared to be in
4595         access bank differently,
4596         * src/pic16/gen.c (struct _G): added field resDirect,
4597         * (aopForSym): if symbol on stack and iCode is '=' and result exists,
4598         send values read from stack directly to result and don't allocate
4599         temporary values,
4600         * (pic16_sameRegs): fixed bug that allowed MOVFF to move between
4601         same registers,
4602         * (pic16_sameRegsOfs): NEW,
4603         * (freeAsmop): if _G.resDirect is set then do not mark registers as
4604         free because they were not allocated from temporary pool,
4605         * pic16_popRegFromString): workaround to fix a problem with
4606         allocating variables twice or never,
4607         * (genGenPointerGet): using PRODL instead of FSR0H,
4608         * (genGenPointerSet): using POSTDEC1 (that is a stack location)
4609         instead of FSR0H,
4610         * (genAssign): take advantage of the _G.resDirect flag,
4611         * (genCast): around line 11844, use mov2f instead of directly
4612         MOVFF'ing between operands to account for literal values,
4613         * src/pic16/genutils.c: some new debug functions for gpsim have been
4614         added,
4615         * src/pic16/glue.c (pic16_printIvalType): fixed bug that initialized
4616         float with integer part only,
4617         * src/pic16/main.c (_process_pragma): handle pragma udata access to
4618         place variables in access bank
4619         * device/lib/pic16/libsdcc/gptr/gptr*.c: using BRA instead of GOTO,
4620         updated sources to reflect recent changes in gen.c
4621
4622 2004-10-06 Vangelis Rokas <vrokas AT otenet.gr>
4623
4624         * device/lib/pic16/libsdcc/Makefile.rules: fixed bug concerning
4625         sources that searched for headers in installation path, now the
4626         device/include/pic16 is used,
4627         * src/pic16/glue.c (pic16glue),
4628         * src/pic16/pcode.c (pCode2str, genericPrint): don't print .file or
4629         .line directives if not in debug mode, this suppresses assembler's
4630         warnings for ignored directives
4631
4632 2004-10-05 Maarten Brock <sourceforge.brock AT dse.nl>
4633
4634         * src/port.h: made reset_regparms prototype void parameter explicit.
4635         * src/SDCCsymt.c (processFuncArgs): removed argument "func".
4636         * src/mcs51/ralloc.c (packRegisters): new fix for bugs 898889 & 979599.
4637         * doc/sdccman.lyx: documented warning disabling and how to use
4638           printf_large to make it print floats.
4639         * device/include/stdbool.h: NEW
4640         * device/lib/_atof.c,
4641         * device/lib/_divuint.c,
4642         * device/lib/_divulong.c,
4643         * device/lib/expf.c,
4644         * device/lib/printf_large.c,
4645         * device/lib/sincosf.c,
4646         * device/lib/sincoshf.c: used stdbool.h, all compile with stack-auto now
4647         * device/lib/Makefile.in: added target for model-mcs51-reentrant to build
4648           a completely reentrant lib.
4649
4650 2004-10-05 Vangelis Rokas <vrokas AT otenet.gr>
4651
4652         * device/lib/pic16/libsdcc/gptr/gptr*.c: added return statements
4653         * device/include/pic16/stdio.h: fixed bug with colon
4654
4655 2004-10-03 Vangelis Rokas <vrokas AT otenet.gr>
4656
4657         * device/include/pic16/stdio.h,
4658         * device/include/pic16/stdlib.h,
4659         * device/include/pic16/math.h: NEW
4660         * device/lib/pic16/libsdcc/gptr/*.c (gptrget*, gptrput*): functions
4661         declared as _naked to reduce overhead
4662         * device/lib/Makefile.in (target port-specific-objects-pic16):
4663         changed * to *.* so to ignore the CVS directory,
4664         * src/pic16/gen.c (pic16_freeAsmop): added code to store result of
4665         stacked variables back in stack,
4666         * (genEndFunction): fixed bug reported by G.M. Gallant with stack
4667         corruption
4668
4669 2004-10-01 Vangelis Rokas <vrokas AT otenet.gr>
4670
4671         * .version: bumped version number to 2.4.5
4672         * support/Util/SDCCerr.h: added warning W_POSSBUG2.
4673         * support/Util/SDCCerr.c (messages structure): added entry for
4674         W_POSSBUG2
4675
4676         Large cumulative patch for pic16 port and libraries.
4677         * device/include/pic16/sdcc-lib.h,
4678         * device/include/pic16/stdarg.h,
4679         * device/include/asm/pic16/features.h,
4680         * device/include/lib/pic16/libsdcc/gptr/{*.c, Makefile}: NEW,
4681         * device/include/pic16/float.h: changes reentrant keyword with
4682         _FS_REENTRANT, added prototype for __fsneq, included sdcc-lib.h
4683         * device/lib/pic16/libsdcc/Makefile: added target directory gptr,
4684         updated target build-libraries to include objects from gptr,
4685         * device/lib/pic16/libsdcc/{char,int,long}/*.c: added macro
4686         _IL_REENTRANT to all function headings, included sdcc-lib.h header,
4687         * device/lib/pic16/libsdcc/float/*.c: added macro _FS_REENTRANT to
4688         all function headings,
4689         * src/SDCCmain.c: added global parameter userIncDirsSet,
4690         * (parseCmdLine): when option -I is encountered add directory to
4691         userIncDirsSet too,
4692         * src/version.awk: added space between control and long,
4693         * src/pic16/NOTES: added some notes for the port,
4694         * src/pic16/gen.c: added prototype for mov2fp function,
4695         * (fReturnpic16[]): properly named return value registers,
4696         * (_G structure): added fields stackRegSet, fregsUsed, stack_lat,
4697         * (aopForSym): added code to handle symbols with onStack flag set,
4698         symbols onStack are allocated PTRSIZE bytes,
4699         * (aopFreeAsmop): handles special case where asmops are stack objects,
4700         * (aopGet, pic16_popGet): adde cod to handle new asmop AOP_STA,
4701         * (pic16_popGetTempReg, pic16_popGetTempRegCond, pic16_popReleaseTempReg):
4702         added argument lock to trace flaws in allocating temporary registers
4703         when developing port,
4704         * (pic16_popGetLit, pic16_popGetLit2): changed lit from unsigned to signed
4705         * (pic16_popRegFromString): reenabled allocating a direct register
4706         from string,
4707         * (assignResultValue): various beautifications,
4708         * fixed bug #1037717 (patch from R. Neider & D. Wrinkler) with mistaken
4709         referenced function argument,
4710         * (genIpush): reenabled to allow stacked arguments, handles only
4711         ic->parmPush iCodes,
4712         * (genCall, genPcall): major changes to allow for variable argument
4713         functions, fixed a bug with falsely restoring stack pointer after
4714         returning from call,
4715         * (genFunction): pending code for critical function,
4716         * (shiftR1Left2ResultSigned, shiftR1Left2Result, shiftL2Left2Result,
4717         * (shiftR2Left2Result, shiftLLong) applied patch #1032155 from R.Neider,
4718         * (genNearPointerGet): fixed bug with indirect reading, was always
4719         reading from INDF0
4720         * (genGenPointerGet, genGenPointerSet): rewrote to support generic
4721         pointers,
4722         * (genAddrOf): rewrote code to take address of a stacked function parameter
4723         * (genCast): fixed casting to generic pointer type,
4724         * src/pic16/gen.h: added AOP_STA,
4725         * (struct asmop): added field stk,
4726         * src/pic16/genarith.c (pic16_AopType): handle AOP_STA,
4727         * (pic16_genPlusIncr): changed emitSKPNZ to emitSKPNZ,
4728         * (pic16_genAddLit, pic16_genPlus): applied patch #1034042 by tecodev,
4729         * (pic16_genMinus): fixed bug #1035119 with patch submitted by tecodev,
4730         * src/pic16/genutils.c (pic16_genNot): removed symbol *tlbl,
4731         * src/pic16/glue.c (pic16_printGPPointerType): fixed to support new
4732         generic pointers,
4733         * src/pic16/main.c (_pic16_initPaths): ignores default SDCC include
4734         and library paths,
4735         * (pic16_port structure): generic pointer size is set to 3,
4736         * src/pic16/pcode.c (pic16_newpCodeOpLit): correctly print literal integer,
4737         * (insertBankSwitch): cast to (char *) to prevent 64bit CPUs'
4738         compiler warning,
4739         * src/pic16/ralloc.c (allocReg): prevent allocating register when
4740         operand is an iTemp,
4741
4742 2004-09-24 Martin Helmling <mh AT octo-soft.de>
4743
4744         * debugger/mcs51/cmd.c: set PC if a symbol at pc reg is set
4745         * debugger/mcs51/simi.c: addapt new syntax of s51
4746
4747 2004-09-23 Vangelis Rokas <vrokas AT otenet.gr>
4748
4749         * src/pic16/genutils.c (pic16_genNot): fixed bug #1032265,
4750         * src/pic16/pcode.c: commented out some calls to free() in order to
4751         fix bug #989576,
4752
4753 2004-09-23 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
4754
4755         * src/SDCCicode.h,
4756         * src/SDCCicode.c (isiCodeInFunctionCall),
4757         * src/avr/ralloc.c (selectSpil),
4758         * src/pic/ralloc.c (selectSpil),
4759         * src/pic16/ralloc.c (selectSpil),
4760         * src/ds390/ralloc.c (selectSpil),
4761         * src/hc08/ralloc.c (selectSpil),
4762         * src/xa51/ralloc.c (selectSpil),
4763         * src/mcs51/ralloc.c (selectSpil): Don't use remainSpil to spill to the
4764         stack in the middle of a function call sequence (fixes bug #1020268)
4765         * src/SDCCicode.c (geniCodeJumpTable): fixed error in computing the
4766         costs associated with the minimum switch case.
4767
4768 2004-09-19 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
4769
4770         * src/SDCC.lex: fixed bug #1030549
4771
4772 2004-09-19 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
4773
4774         * src/SDCCcse.h (struct cseDef),
4775         * src/SDCCcse.c (cseBBlock, newCseDef, ifFromAddrTaken): purge CSEs
4776         over a function call if the CSE is derived from a symbol whose
4777         address has been taken (fixes bug #1029883)
4778         * support/regression/tests/bug-1029883: a new regression test for
4779         this bug
4780
4781 2004-09-18 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
4782
4783         * src/hc08/gen.c (emitinline): fixed bug #1029778
4784         * src/SDCC.y (assignment_expr): fixed the grammer so that assignment
4785         to a cast object is no longer a syntax error ("fixes" bug #1030006,
4786         and starts toward RFE #905167)
4787
4788 2004-09-17 Vangelis Rokas <vrokas AT otenet.gr>
4789
4790         * src/pic16/gen.c (mov2f): New function to move an operand to
4791         another without considering if it is a literal or a register,
4792         * (pic16_sameRegs): don't check if they are both AOP_REG,
4793         * (AccRsh): removed andmask=0 lines,
4794         * (genLeftShift): duplicated to be improved in future versions,
4795         * src/pic16/main.c (_process_pragma): emit stack default size in hex,
4796         * src/pic16/pcode.c: added POC_INFSNZW, updated inverted_op fields
4797         in POC_INCFSZ, POC_INCFSZW, POC_INFSNZ,
4798         * (pic16initMnemonics): added initialization for POC_INFSNZW,
4799         * (insertBankSwitch): fixed inserting banksel directives algorithm
4800         for instructions that follow a skip instruction, this fixes a report
4801         for broken subtraction code generation,
4802         * src/pic16/ralloc.c (deassignLRs): do not free register if current
4803         iCode is a left op, just in case result and right share the same
4804         registers
4805
4806 2004-09-16 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
4807
4808         * src/hc08/main.c,
4809         * src/hc08/gen.c (genJumpTable): more efficient jump table, supports
4810         preservation of HX
4811         * src/hc08/gen.c (pullRegs): fixed order of HX & XA pairs
4812         * src/mcs51/ralloc.c (packRegisters): removed the patch applied
4813         on 2004-09-12; it was buggy
4814
4815 2004-09-15 Bernhard Held <bernhard AT bernhardheld.de>
4816
4817         * src/SDCCsymt.h: removed RESULT_CHECK
4818         * src/SDCCast.c,
4819         * src/SDCCglue.c,
4820         * src/SDCCval.c,
4821         * src/pic/glue.c,
4822         * src/pic16/glue.c: replaced RESULT_CHECK with RESULT_TYPE_NONE
4823
4824 2004-09-15 Vangelis Rokas <vrokas AT otenet.gr>
4825
4826         * src/SDCCicode.c (piCode): applied patch from Raphael Neider,
4827         * src/pic16/device.c (pic16_assignConfigWordValues): wrong
4828         configuration values no more rejected by compiler, they are assigned
4829         to configuration registers with a warning message instead,
4830         * src/pic16/glue.c (pic16_emitConfigRegs): added +1 at top-limit of
4831         the for-loop so last conf register is emitted too,
4832         * (_pic16_initPaths): link library libsdcc.lib by default,
4833         * (_hasNativeMulFor): modified test for multiplication according to
4834         Raphael Neider's remarks. Integer multiplication is also done with
4835         support functions,
4836         * device/include/pic16/pic18fregs.h: corrected type error in while
4837         testing and including 18f6720 header file
4838
4839 2004-09-14 Vangelis Rokas <vrokas AT otenet.gr>
4840
4841         * src/pic16/device.h (pic16_options): removed field use_crt,
4842         * src/pic16/gen.c (genUnpackBits): added call to pic16_loadFSR0
4843         until an optimization to handle single bits is added,
4844         * (pic16_loadFSR0): moved before genUnpackBits,
4845         * (genAnd): some white lines removed,
4846         * src/pic16/main.c (_pic16_finaliseOptions): set omit_ivt and clear
4847         leave_reset flags in pic16_options when using crt modules,
4848
4849 2004-09-12 Maarten Brock <sourceforge.brock AT dse.nl>
4850
4851         * src/mcs51/ralloc.c (packRegisters): applied fix by Bernhard Held
4852           for bugs 898889 & 979599. Also used some safer print instructions.
4853
4854 2004-09-12 Vangelis Rokas <vrokas AT otenet.gr>
4855
4856         * src/pic16/device.h (pic16_options_t): added field use_crt,
4857         crt_name, no_crt,
4858         * src/pic16/genarith.c (pic16_genPlus): added an assert(0) line to
4859         catch a probable future bug,
4860         * src/pic16/gen.c: aopIdx function commented out,
4861         * (genAssign): commented out old code which used aopIdx,
4862         * src/pic16/glue.c (pic16glue): removed some legacy fragments of
4863         code, added if conditionals to take into account the --use-crt
4864         command line options,
4865         * src/pic16/main.c (pic16_optionsTable): added new command line
4866         options, --use-crt= and --no-crt,
4867         * (_pic16_linkEdit): now the proper crt object is added in the
4868         linker command line except than when --no-crt is specified,
4869         * src/pic16/pcode.c,
4870         * src/pic16/pcode.h: added some structures and functions for a new
4871         optimization scheme to compansate for instruction overhead between
4872         same iCodes, this scheme is currently under development and is not
4873         working in any way,
4874         * src/pic16/gen.c (genAnd): added patch provided by Aaron Collwell
4875         to && operator,
4876         * device/lib/pic16/startup/crt0i.c,
4877         * device/lib/pic16/startup/crt0iz.c: added global char variable
4878         __uflags to force the generation of an idata section
4879
4880 2004-09-12 Bernhard Held <bernhard AT bernhardheld.de>
4881
4882         * doc/Makefile,
4883         * doc/clean.mk: added support for easy creation of sdcc-doc.tar.bz2
4884         * doc/sdccman.lyx: updated sdcc version to 2.4.4
4885
4886 2004-09-10 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
4887
4888         * doc/sdccman.lyx: fixed a problem with my new index entries (thanks
4889         Frieder) and clarified the default code optimization mode
4890
4891 2004-09-10 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
4892
4893         * src/SDCC.lex (doPragma, process_pragma),
4894         * src/SDCCglobl.h (struct optimize): added pragmas "opt_code_speed",
4895         "opt_code_size", and "opt_code_balanced"
4896         * src/SDCCmain.c (optionsTable[], printOptions, scanOptionsTable):
4897         regrouped options by category, added support for category headers
4898         * src/SDCCmain.c (parseCmdLine): added options "--opt-code-speed"
4899         and "--opt-code-size"
4900         * doc/sdccman.lyx: documented these new options and pragmas
4901         * src/hc08/gen.c (AccLsh, AccRsh): take speed/size optimization
4902         preference into account
4903
4904 2004-09-08 Maarten Brock <sourceforge.brock AT dse.nl>
4905
4906         * src/SDCCicode.c (geniCodePostInc, geniCodePreInc, geniCodePostDec,
4907           geniCodePreDec): Fixed bug 904237 by generating a warning
4908         * src/SDCCerr.h,
4909         * src/SDCCerr.c: added warning W_SIZEOF_VOID
4910
4911 2004-09-09 Slade Rich <slade_rich AT users.sourceforge.net>
4912
4913         * src/pic/device.c : When no max ram set validate full memory range.
4914         * src/pic/pcode.c,
4915         * src/pic/pcodepeep.c : Copy C code comments to optimised replacement code.
4916
4917 2004-09-08 Maarten Brock <sourceforge.brock AT dse.nl>
4918
4919         * device/lib/_gptrget.c,
4920         * device/lib/_gptrput.c: updated comment
4921         * device/lib/calloc.c,
4922         * device/lib/free.c,
4923         * device/lib/malloc.c,
4924         * device/lib/realloc.c: added LGPL, made them reentrant-safe
4925         * src/SDCCcse.c (cseBBlock),
4926         * src/SDCCicode.c (printOperand, geniCodeArray),
4927         * src/SDCCicode.h (struct operand): fixed bug 868103
4928         * support/regression/tests/bug-868103.c: added
4929         * src/SDCCast.c (searchLitOp),
4930         * src/SDCCcse.h (struct cseDef),
4931         * src/SDCCglue.c (printIvalArray, spacesToUnderscores),
4932         * src/SDCCicode.h (struct operand),
4933         * src/SDCCsymt.h (struct sym_link),
4934         * src/avr/gen.c (hasInc),
4935         * src/ds390/gen.c (hasInc),
4936         * src/hc08/gen.c (genPlusIncr, hasInc),
4937         * src/mcs51/gen.c (hasInc),
4938         * src/pic16/glue.c (pic16_printIvalChar),
4939         * src/pic16/ralloc.c (regWithIdx),
4940         * src/xa51/gen.c (hasInc) : removed warnings
4941         * src/SDCCast.c (createBlock): added comment ???
4942         * src/hc08/ralloc.c: updated comments
4943
4944 2004-09-07 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
4945
4946         * doc/sdccman.lyx: updated section on switch statements, added
4947         section about semaphore locking
4948         * doc/Makefile: added option -info for latex2html
4949         * device/lib/_gptrget.c,
4950         * device/lib/_gptrput.c: __XPAGE instead of P2 in outcommented code
4951
4952 2004-09-06 Slade Rich <slade_rich AT users.sourceforge.net>
4953
4954         * src/pic/device.h,
4955         * src/pic/device.c,
4956         * src/pic/port.c : Changed PIC14 code to not set bit RP1 when
4957          maxram is less than 0x100.
4958
4959 2004-09-06 Slade Rich <slade_rich AT users.sourceforge.net>
4960
4961         * Bug fixes for PIC14 - signed RSHIFT problem. Patch supplied by Allen(agschrum).
4962
4963 2004-09-06 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
4964
4965         * src/port.h,
4966         * src/mcs51/main.c,
4967         * src/ds390/main.c,
4968         * src/z80/main.c,
4969         * src/hc08/main.c,
4970         * src/pic/main.c,
4971         * src/pic16/main.c,
4972         * src/avr/main.c,
4973         * src/xa51/main.c
4974         * src/SDCCicode.c (geniCodeJumpTable): Better logic to determine if a
4975         a jump table is the best form for a switch statement, including
4976         automatic insertion of missing cases to make the case range
4977         continuous. Developed in collaboration with Frieder Ferlemann.
4978
4979 2004-09-02 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
4980
4981         * src/hc08/ralloc.c (canDefAccResult): multi-byte shift is unsafe for
4982         accumulator result if it needs sign extension
4983
4984 2004-09-02 Maarten Brock <sourceforge.brock AT dse.nl>
4985
4986         * src/hc08/ralloc.c (canUseAccOperand): fixed comparison bug
4987
4988 2004-09-02 Maarten Brock <sourceforge.brock AT dse.nl>
4989
4990         * device/lib/gbz80/printf.c,
4991         * device/lib/z80/printf.c: removed define for NULL
4992
4993 2004-09-02 Maarten Brock <sourceforge.brock AT dse.nl>
4994
4995         * as/xa51/xa_link.c,
4996         * device/examples/ds390/ow390/ad26.c,
4997         * device/examples/ds390/ow390/cnt1d.c,
4998         * device/examples/ds390/ow390/counter.c,
4999         * device/examples/ds390/ow390/ds2480.h,
5000         * device/examples/ds390/ow390/ds2480ut.c,
5001         * device/examples/ds390/ow390/findtype.c,
5002         * device/examples/ds390/ow390/gethumd.c,
5003         * device/examples/ds390/ow390/owllu.c,
5004         * device/examples/ds390/ow390/ownetu.c,
5005         * device/examples/ds390/ow390/swt12.c,
5006         * device/examples/ds390/ow390/swtloop.c,
5007         * device/examples/ds390/ow390/temp.c,
5008         * device/examples/ds390/ow390/temp10.c,
5009         * device/examples/ds390/ow390/thermo21.c,
5010         * device/examples/ds390/ow390/tinilnk.c,
5011         * device/examples/ds390/ow390/tstfind.c,
5012         * device/examples/serialcomm/windows/serial.cpp,
5013         * device/examples/serialcomm/windows/test_serialcomm.cpp,
5014         * device/include/reg51.h: fixed line endings for cvs
5015
5016 2004-09-02 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
5017
5018         * src/hc08/ralloc.c (canDefAccResult, canUseAccOperand,
5019         packRegsForAccUse, packRegisters): new accumulator register
5020         packing algorithm
5021         * support/regression/ports/hc08/support.c (_putchar): suppress
5022         warning of unused variable
5023         * src/SDCCicode.c: added SWAP entry to codeTable
5024
5025 2004-09-01 Maarten Brock <sourceforge.brock AT dse.nl>
5026
5027         * device/lib/sprintf.c: forgot to add this file before previous commit
5028
5029 2004-09-01 Vangelis Rokas <vrokas AT otenet.gr>
5030
5031         * src/pic16/gen.c (genPackBits): added operand right in function
5032         parameters, load result directly if p_type is POINTER (that is
5033         called by genNearPointerSet)
5034         * (genUnPackBits): added operand left in function parameters,
5035         * (genNearPointerGet, genNearPointerSet): prevent the loading of
5036         FSR0 if accessing bitfields,
5037
5038 2004-08-31 Maarten Brock <sourceforge.brock AT dse.nl>
5039
5040         * device/include/stdio.h: added NULL, size_t, typedef pfn_outputchar,
5041           _print_format; updated printf, sprintf, vsprintf
5042         * device/include/asm/default/features.h: corrected comment/define
5043         * device/lib/Makefile.in: added sprintf.c
5044         * device/lib/libsdcc.lib: added sprintf module
5045         * device/lib/printf_large.c,
5046         * device/lib/vprintf.c,
5047         * device/lib/sprintf.c: totally refactored printf_large and vprintf
5048           into these 3 files
5049         * support/regression/Makefile: changed ALL_PORTS into a usefull default
5050         * support/regression/ports/mcs51-stack-auto/spec.mk: added sprintf
5051         * support/regression/tests/bug-927659.c: removed dummy putchar, enabled
5052           hc08 test
5053         * support/regression/tests/zeropad.c: define idata as data for hc08
5054
5055 2004-08-31 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
5056
5057         * src/SDCCpeeph.c (labelIsReturnOnly): support hc08 rts opcode also
5058         * src/SDCCpeeph.c (buildLabelRefCountHash): assume function entry point
5059         labels are referenced at least once (even if a reference is not found)
5060         * src/hc08/gen.c (emitcode): set isComment flag for comments
5061         * src/hc08/peeph.def: added rules 5a..5f (optimize redundant immediate
5062         loads), rules 6a..6b (optimize jumps to return)
5063
5064 2004-08-30 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
5065
5066         * device/lib/acosf.c (acosf),
5067         * device/lib/asinf.c (asinf),
5068         * device/lib/atanf.c (atanf),
5069         * device/lib/ceilf.c (ceilf),
5070         * device/lib/cosf.c (cosf),
5071         * device/lib/coshf.c (coshf),
5072         * device/lib/cotf.c (cotf),
5073         * device/lib/fabsf.c (fabsf),
5074         * device/lib/floorf.c (floorf),
5075         * device/lib/log10f.c (log10f),
5076         * device/lib/logf.c (logf),
5077         * device/lib/sinf.c (sinf),
5078         * device/lib/sinhf.c (sinhf),
5079         * device/lib/sqrtf.c (sqrtf),
5080         * device/lib/tanf.c (tanf),
5081         * device/lib/tanhf.c (tanhf),
5082         * device/include/math.h: defined _FLOAT_FUNC_REENTRANT macro and
5083         replaced all instances of "reentrant" in the library functions
5084         defined in math.h with this macro.
5085         * support/regression/tests/float_trans.c: reenabled test for hc08
5086
5087 2004-08-30 Bernhard Held <bernhard AT bernhardheld.de>
5088
5089         * device/lib/pic16/Makefile.common.in: added MODELFLAGS again, it was
5090         erroneously deleted
5091
5092 2004-08-30 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
5093
5094         * src/hc08/gen.c (loadRegFromAop): better use of clra & clrx
5095         * src/hc08/gen.c (genAnd, genOr): fixed bug with conditional when
5096         multi-byte volatile operands are used
5097         * src/hc08/gen.c (shiftRLong): fixed bug with wrong rotate direction
5098         * src/hc08/main.c (_hc08_genAssemblerPreamble): moved the built-in
5099         initialization to area GSINIT0 so that it would always precede
5100         any static initializers in GSINIT
5101         * support/regression/tests/zeropad.c: fixed idata define for hc08
5102         * support/regression/tests/bug-927659.c,
5103         * support/regression/tests/float_trans.c: disabled tests for hc08
5104         pending missing library routines
5105         * .version: increased version number to 2.4.4 - hc08 port now passes
5106         regression tests
5107
5108
5109 2004-08-29 Bernhard Held <bernhard AT bernhardheld.de>
5110
5111         * device/lib/pic16/Makefile.common.in: added $(MM) to fix `make clean`
5112         * Makefile.common.in,
5113         * as/Makefile,
5114         * as/hc08/Makefile.in,
5115         * as/mcs51/Makefile.in,
5116         * as/z80/Makefile.in,
5117         * debugger/mcs51/Makefile.in,
5118         * device/include/Makefile.in,
5119         * device/lib/Makefile.in,
5120         * doc/Makefile,
5121         * link/Makefile,
5122         * link/z80/Makefile.in,
5123         * packihx/Makefile.in,
5124         * sim/ucsim/main_in.mk,
5125         * sim/ucsim/avr.src/Makefile.in,
5126         * sim/ucsim/doc/Makefile.in,
5127         * sim/ucsim/gui.src/serio.src/Makefile.in,
5128         * sim/ucsim/hc08.src/Makefile.in,
5129         * sim/ucsim/s51.src/Makefile.in,
5130         * sim/ucsim/xa.src/Makefile.in,
5131         * sim/ucsim/z80.src/Makefile.in,
5132         * src/Makefile.in,
5133         * support/cpp2/Makefile.in,
5134         * support/librarian/Makefile,
5135         * support/makebin/Makefile: added DESTDIR to the install path proposed
5136         by "Maciej 'Agaran' Pijanka" <agaran AT pld-linux.org>
5137         * doc/sdccman.lyx: added DESTDIR documentation
5138
5139 2004-08-29 Vangelis Rokas (vrokas AT otenet.gr>
5140
5141         * src/pic16/gen.c (genFunction, genEndFunction): fixed return
5142         instruction for interrupt handlers, use fast returns when returning
5143         from high priority interrupts
5144
5145 2004-08-29 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
5146
5147         * src/hc08/gen.c (genAnd, genOr, transferAopAop, rmwWithAop): optimized
5148         code generation
5149         * src/hc08/gen.c (genrshFour, genCpl): fixed bugs
5150         * src/hc08/gen.c (genMultOneByte, genDivOneByte, genModOneByte): fixed
5151         bugs, ported much of Bernhard's code from mcs51
5152         * src/mcs51/gen.c (genSend),
5153         * src/hc08/gen.c (genSend): fixed bug with lost SEND iCodes if more
5154         than one when calling a reentrant function
5155         * device/lib/_mullong.c: defined an alternate struct layout for big
5156         endian ports (hc08)
5157
5158 2004-08-28 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
5159
5160         * src/hc08/gen.c (shiftL2Left2Result): fix for bug-500536 regression
5161         test
5162
5163 2004-08-28 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
5164
5165         * src/SDCCsymt.c (processFuncArgs): make sure parameter types
5166         are sane and complete before asking the port its prefered parameter
5167         passing method (fixes bug #1017633)
5168         * device/lib/hc08/_ret.c: added "data" storage class to _ret2
5169         and _ret3
5170
5171 2004-08-27 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
5172
5173         * src/hc08/gen.c (genPackBitsImmed, genUnpackBitsImmed): fix offset
5174         problem in bitfields >= 8 bits.
5175
5176 2004-08-27 Maarten Brock <sourceforge.brock AT dse.nl>
5177
5178         * src/SDCCsymt.c: undid changes that were not meant to be committed
5179
5180 2004-08-27 Maarten Brock <sourceforge.brock AT dse.nl>
5181
5182         * support/regression/ports/hc08spec.mk: REENTRANT must be reentrant
5183
5184 2004-08-27 Maarten Brock <sourceforge.brock AT dse.nl>
5185
5186         * src/hc08/gen.c (genUminusFloat): fixed bug where only 3 bytes were
5187           copied and wrong bit got inverted
5188
5189 2004-08-27 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
5190
5191         * src/hc08/gen.c (genPointerSet, genFarPointerSet): moved code from
5192         genFarPointerSet into genPointerSet; eliminated genFarPointerSet
5193         * src/hc08/gen.c (genPointerGet, genFarPointerGet): moved code from
5194         genFarPointerGet into genPointerGet; eliminated genFarPointerGet
5195         * src/hc08/gen.c (genPackBitsImmed): generate optimized code for
5196         assignments to bitfields at known addresses
5197         * src/hc08/gen.c (genUnpackBitsImmed): generate optimized code for
5198         reads from bitfields at known addresses
5199         * src/hc08/ralloc.c (packRegisters),
5200         * src/hc08/gen.c (genPointerGet, genUnpackBits, genUnpackBitsImmed,
5201         genhc08Code): optimize pointer get values used as conditionals
5202         * src/hc08/peeph.def: added rules 2e & 2f to optimize bit test
5203         and branch
5204
5205 2004-08-24 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
5206
5207         * src/mcs51/gen.c (genPointerGet, genNearPointerGet, genPagedPointerGet,
5208         genFarPointerGet, genCodePointerGet, genGenPointerGet, genUnpackBits),
5209         * src/mcs51/ralloc.c (packRegisters): optimize pointer get values used
5210         as conditionals
5211
5212 2004-08-22 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
5213
5214         * src/mcs51/peeph.def: peepholes 248.i-m for xdata bitfields
5215
5216 2004-08-21 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
5217
5218         * src/mcs51/ralloc.c (packRegsForOneuse): fixed bug #1012650 and some
5219         related problems
5220
5221 2004-08-21 Bernhard Held <bernhard AT bernhardheld.de>
5222
5223         * sim/ucsim/cmd.src/Makefile.in: run lex only if $(PRJDIR)/devel exists
5224
5225 2004-08-18 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
5226
5227         * src/z80/ralloc.c (packRegsForAssign): ported some bug fixes from the
5228         mcs51 port
5229
5230 2004-08-16 Slade Rich <slade_rich AT users.sourceforge.net>
5231
5232         * src/pic/gen.c: Restored fn genRet as previous fix was incorrect.
5233
5234 2004-08-14 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
5235
5236         * src/mcs51/gen.c (genJumpTab): jumptables for more than 16 switch
5237         cases use more compact code.
5238
5239 2004-08-13 Slade Rich <slade_rich AT users.sourceforge.net>
5240
5241         * src/pic/gen.c: Fixed problem with fn returning a variable bigger than a char.
5242
5243 2004-08-12 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
5244
5245         * src/SDCClrange.c (findPrevUse): fixed bug #1007371
5246
5247 2004-08-12 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
5248
5249         * src/SDCCsymt.h,
5250         * src/SDCCsymt.c (changePointer, checkDecl, addSymChain): changed
5251         parameter of changePointer() from symbol* to sym_link*
5252         * src/SDCCast.c (decorateType): call changePointer() for CAST op
5253         * src/SDCCsymt.c (compareType): void* type is castable to other
5254         pointers, but not necesarily an exact match.
5255         * src/SDCCicode.c (geniCodeCast): allow void* casting here since it
5256         is no longer blindly treated as an exact match.
5257         * src/SDCCval.c (valCastLiteral): treat missing type as cast to void
5258
5259 2004-08-12 Slade Rich <slade_rich AT users.sourceforge.net>
5260
5261         * src/pic/glue.c: Added struct initialisation fn printIvalStruct.
5262
5263 2004-08-11 Slade Rich <slade_rich AT users.sourceforge.net>
5264
5265         * src/pic/gen.c,
5266         * src/pic/pcode.c,
5267         * src/pic/ralloc.h,
5268         * src/pic/ralloc.c: Printing rIdx on internal verbose debug.
5269
5270 2004-08-10 Slade Rich <slade_rich AT users.sourceforge.net>
5271
5272         * src/pic/device.c,
5273         * src/pic/device.h,
5274         * src/pic/device.c: Will no longer exit if #pragma maxram has not been defined.
5275
5276 2004-08-06 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
5277
5278         * src/mcs51/gen.c (emitcode): fixed bug #992819
5279
5280 2004-08-05 Maarten Brock <sourceforge.brock AT dse.nl>
5281
5282         * src/pic/ralloc.c (deassignLR): allthough pic port is buggy already,
5283           there's no need to make it worse
5284
5285 2004-08-05 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
5286
5287         * src/mcs51/ralloc.c (deassignLR),
5288         * src/ds390/ralloc.c (deassignLR),
5289         * src/hc08/ralloc.c (deassignLR),
5290         * src/z80/ralloc.c (deassignLR),
5291         * src/pic/ralloc.c (deassignLR),
5292         * src/pic16/ralloc.c (deassignLR),
5293         * src/avr/ralloc.c (deassignLR),
5294         * src/SDCClrange.c (findRecursiveSucc, findRecursivePred, findPrevUse,
5295         rlivePoint): fixed another part of bug #971834
5296
5297 2004-08-04 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
5298
5299         * src/z80/main.c: enabled "critical" keyword
5300         * src/z80/mappings.i,
5301         * src/z80/gen.c (genFunction, genEndFunction): support for interrupt
5302         functions (fixes bug #979646)
5303         * doc/sdccman.lyx: added a subsection explaining z80 interrupt support
5304
5305 2004-08-04 Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
5306
5307         * src/mcs51/gen.c (genInline): Add \n for labels, not DOS/WIN dirs
5308           such as c:\mydir.
5309
5310 2004-08-03 Maarten Brock <sourceforge.brock AT dse.nl>
5311
5312         * src/SDCCloop.c (loopInvariants): fixed bug 983545, hope this
5313           doesn't disable too much optimizations
5314
5315 2004-08-02 Slade Rich <slade_rich AT users.sourceforge.net>
5316
5317         * src/pic/glue.c Disabled "WARNING: function 'main' undefined" when -S option is used.
5318
5319 2004-08-02 Maarten Brock <sourceforge.brock AT dse.nl>
5320
5321         * src/SDCClrange.c (rlivePoint): fixed bug 988568, thanks to anonymous
5322
5323 2004-08-02 Slade Rich <slade_rich AT users.sourceforge.net>
5324
5325         * src/pic/gen.c tidied up tabs
5326         * src/pic/genarith.c tidied up tabs and fixed bug with literal multiple where same register was used for hi and low byte
5327         * src/pic/main.c tidied up tabs
5328         * src/pic/pcode.c tidied up tabs and disabled verbose code generation
5329         * src/pic/pcoderegs.c tidied up tabs
5330         * src/pic/ralloc.c tidied up tabs
5331
5332 2004-07-30 Vangelis Rokas <vrokas AT otenet.gr>
5333
5334         * src/SDCCmem.c (allocGlobal): don't turn S_REGISTER storage class
5335         to S_FIXED for pic16 port and when symbol is not in level 0,
5336         allocate for S_REGISTER storage class and pic16 port, too,
5337         * src/pic16/device.h: prototype for checkSym,
5338         * src/pic16/device.c (pic16_dump_access, checkSym): NEW,
5339         * (pic16_assignConfigWordValue): test the value and the mask to
5340         validate that the value is suitable for the configuration word,
5341         * src/pic16/glue.c (pic16_printIvalFuncPtr): use 'externs' to
5342         collect extern declared symbols, don't emit symbol twice, check
5343         first if symbol is in publics set first,
5344         * src/pic16/main.c (_pic16_keywords[]): added keyword 'register',
5345         * added command line '--fstack' which enables an experimental
5346         feature for stack access, too buggy to be used yet...
5347         * src/pic16/ralloc.c (pic16_accessregWithName): NEW,
5348         * (pic16_allocDirReg): when register has storage class S_REGISTER
5349         allocate in pic16_dynAccessRegs,
5350         * device/include/pic16/pic18f????.h: modified configuration word
5351         naming convention, words started as CONFIG0H but should be CONFIG1H
5352
5353 2004-07-29 Maarten Brock <sourceforge.brock AT dse.nl>
5354
5355         * device/include/mcs51reg.h: fixed bug 970993
5356
5357 2004-07-27 Maarten Brock <sourceforge.brock AT dse.nl>
5358
5359         * added lib/calloc.c, lib/free.c, lib/realloc.c, include/stddef.h
5360         * updated lib/malloc.c, lib/libsdcc.lib, lib/Makefile.in, include/malloc.h
5361         * src/SDCC.lex (doPragma): added pragma disable_warning <nnn>
5362         * src/SDCCmain.c (parseCmdLine): added option --disable-warning <nnn>
5363         * src/ds390/gen.c (genPlusIncr): fixed bug when incrementing generic pointers
5364         * support/Util/SDCCerr.c (vwerror): suppress disabled warnings and output
5365           error/warning numbers,
5366           added function setWarningDisabled()
5367         * support/Util/SDCCerr.h: added setWarningDisabled() and MAX_ERROR_WARNING
5368         * support/regression/ports/mcs51-stack-auto/spec.mk: added dependencies
5369           _memcmp.c _memmove.c calloc.c realloc.c free.c
5370         * support/regression/tests/malloc.c: added tests for new functionality
5371         * support/regression/tests/zeropad.c: added tests for truncated initializers
5372           and initialized char arrays starting with '\x0'
5373         * src/mcs51/peeph.def: fixed regression, added peephole 177.f
5374
5375 2004-07-26 Bernhard Held <bernhard AT bernhardheld.de>
5376
5377         * support/valdiag/tests/overflow.c: fixed warning on (1 >> 40)
5378
5379 2004-07-26 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
5380
5381         * doc/sdccman.lyx: updated example in section "Absolute Addressing"
5382         * src/mcs51/peeph.def: added contributed fix for "bug" #995347 as
5383         peephole 177.e. Thanks to anonymous
5384
5385 2004-07-25 Vangelis Rokas <vrokas AT otenet.gr>
5386
5387         * src/pic16/glue.c (pic16_printIvalFuncPtr): when an extern
5388         function isn't used in the source but referenced as a
5389         variable initializer then declare it as extern in .asm file
5390
5391 2004-07-24 Vangelis Rokas <vrokas AT otenet.gr>
5392
5393         * .version: increased version number to 2.4.3
5394
5395         Adding version extension according to ChangeLog CVS revision
5396         * src/Makefile.in (target all): added dependency 'version.h'
5397         * (rule version.h): added rule to create version.h from ChangeLog,
5398         * (rule dep): added dependency version.h,
5399         * src/version.awk: AWK script to create version.h
5400         * src/SDCCdwarf2.c (dwWriteModule),
5401         * src/SDCCglue.c (initialComments),
5402         * src/SDCCmain.c (printVersionInfo): modified to write after
5403         version string the version extension number,
5404         * src/SDCCutil.c: included "version.h"
5405         * (getBuildNumber): NEW, returns SDCC's ChangeLog minor revision
5406         number,
5407         * src/SDCCutil.h: added prototype for getBuildNumber
5408
5409         * src/SDCCmain.c (parseCmdLine): when sOpt is 'I' add rest in
5410         includeDirsSet, too,
5411         * src/SDCCsymt.c (checkSClass): don't emit error when a variable,
5412         const char [] is found in function prototype...
5413
5414         * src/pic16/genarith.c (pic16_genUMult8XLit_8): optimization to omit
5415         moving to WREG with source is already in WREG,
5416         * src/pic16/gen.h: added AOP_FSR0 and AOP_FSR2 in enum,
5417         * src/pic16/gen.c (getFreePtr): updated to look for FSR0 and FSR2,
5418         * (aopForSym): stack'ed symbols are partially supported, added
5419         if-clause to support symbols in FARSPACE,
5420         * (sameRegs): added test for AOP_ACC to see if registers are same,
5421         * (pic16_freeAsmop): added case for AOP_FSR0 and AOP_FSR2,
5422         * (pic16_aopGet): added case for AOP_FSR0 and AOP_FSR2,
5423         * (pic16_popRegFromString): will not allocate a new register if it
5424         doesn't find one by name, bug may have introduced...
5425         * (pic16_popGet): added case for AOP_FSR0 and AOP_FSR2,
5426         * (genIpush): revived to use pic16 port's stack,
5427         * (genAddrOf): added incomplete case for stack'ed operand,
5428         * (genCast): optimized a pair of MOVFW,MOVWF to MOVFF
5429         * src/pic16/genutils.c (pic16_genNot): almot new vesrion for NOT,
5430         can handle multibyte operands,
5431         * src/pic16/glue.c (pic16_printIval*): some debug info added,
5432         * (pic16initialComments): added message for MPLAB compatibility
5433         mode enabled,
5434         * src/pic16/main.h: prototype for pic16_mplab_comp,
5435         * src/pic16/main.c (pic16_optionsTable): new option --mplab-comp,
5436         which enabled MPLAB compatibility mode (i.e. no #LINE/#FILE, BANKED)
5437         * (_pic16_linkEdit): NEW, handles link stage, transferred here
5438         because of increased complexity of procedure,
5439         * (_process_pragma): stack pragma changed to format 'stack pos len',
5440         emit symbol '_stack_end' to conform with gplink,
5441         * src/pic16/pcode.c (pic16_newpCodeOpBit): using pic16_regWithName
5442         to search for register,
5443         * (pic16_get_op, pic16_get_op2): added case for PO_W, PO_WREG and
5444         PO_GPR_REGISTER,
5445         * (pic16_pCode2str): when in MPLAB compatibility mode, comment out
5446         #LINE directives and replace 'B' with 'BANKED' in instruction opcodes
5447         * (pic16_getRegFromInstruction, pic16_getRegFromInstruction2): added
5448         case for PO_GPR_REGISTER,
5449         * (pic16_AnalyzeBanking): removed the old message for inc2h.pl, past
5450         dies, the new era is ahead !...
5451         * src/pic16/ralloc.c: added hash reposits pic16_dynAllocRegNames and
5452         pic16_dynInternalRegs,
5453         * (pic16_allocregWithName, pic16_procregWithName, pic16_regWithname): NEW,
5454         * (pic16_allocDirReg): minor optimizations and bug fixes,
5455         * (pic16_allocWithIdx): when searching pic16_dynProcessorRegs use fixed,
5456
5457         * device/lib/pic16/startup/crt0*.c: extern definition of stack_end,
5458         load stack and frame pointer with address of 'stack_end' symbol
5459
5460 2004-07-23 Vangelis Rokas <vrokas AT otenet.gr>
5461
5462         * src/pic16/glue.c (pic16emitStaticSeg): fixed bug with files
5463         without source code but only variable initializers
5464
5465 2004-07-20 Vangelis Rokas <vrokas AT otenet.gr>
5466
5467         * src/pic16/glue.c (pic16emitRegularMap): unused functions marked as
5468         external are not declared as extern to reduce overhead while linking
5469
5470 2004-07-20 Maarten Brock <sourceforge.brock AT dse.nl>
5471
5472         * src/SDCCast.c (decorateType): removed buggy fix for bug #979599
5473
5474 2004-07-11 Maarten Brock <sourceforge.brock AT dse.nl>
5475
5476         * src/SDCCglue.c (printIvalArray): fixed bug #984229, thanks to Phuah
5477           Yee Keat for the patch
5478         * src/SDCCast.c (decorateType): fixed bug #979599
5479         * src/ds390/gen.h: removed local fReturnSizeDS390
5480         * src/ds390/gen.c: made fReturnSizeDS390 signed short to remove a warning
5481         * src/ds390/gen.c (genAnd, genOr, genXor),
5482         * src/mcs51/gen.c (genAnd, genOr, genXor): generate better optimized code
5483
5484 2004-07-04 Vangelis Rokas <vrokas AT otenet.gr>
5485
5486         * src/SDCCmain.c (linkEdit): modifications only for pic16 port,
5487         add relFilesSet to $3, manipulate $2 to handle linking of object
5488         files without source files in command line,
5489         * device/include/pic16 (all headers): added ID location macros,
5490         * src/pic16/device.c (struct PIC16_device Pics16[]): added field
5491         entries for ID location bytes,
5492         * (pic16_assignIdByteValue): NEW,
5493         * src/pic16/device.h: new structures idRegInfo_t and idBytesInfo_t,
5494         added field dumpcalltree to pic16_options_t,
5495         * src/pic16/gen.c (genCmp): fixed bug case so a temporary register
5496         is used instead of pic16_Gstack_base_addr, check if (ifx) before
5497         emitting rFalseIfx label after check_carry label,
5498         * src/pic16/glue.c (PIC16_IS_IDLOC_ADDRESS, PIC16_IS_HWREG_ADDRESS,
5499         pic16_emitDIRegs), NEW
5500         * (pic16glue): dump .calltree file when option --calltree found,
5501         * src/pic16/main.c (OPTION _pic16_optionsTable): new option --calltree
5502         * (_pic16_genAssemblerPreamble): emit ID locations after
5503         configuration registers,
5504         * (pic16_linkCmd): modifications of the link command,
5505         * src/pic16/pcode.c (pic16_pciMOVFF): PCC_REGISTER replaces PCC_REGISTER2
5506         * (pic16_pCodeInitRegisters): don't init stack registers,
5507         * (pic16_findPrevInstruction): fixed bug,
5508         * (pic16_getRegFromInstruction, pic16_getRegFromInstruction2): fixed
5509         bug with immediate registers,
5510         * (buildCallTree): traces stack push and pop,
5511         * (pct2): dump also stack usage for each function,
5512         * src/pic16/ralloc.c (dynrIdx): registers names start from 0x00
5513         * (pic16_allocDirReg): various modifications,
5514         * (pic16_typeRegWithIdx): when searching pic16_dynProcessorRegs set
5515         fixed to 1,
5516
5517 2004-07-02 Vangelis Rokas <vrokas AT otenet.gr>
5518
5519         * src/pic16/pcode.c: removed buggy double colon
5520
5521 2004-07-01 Borut Razem <borut.razem AT siol.net>
5522
5523         * support/scripts/sdcc.nsi: added include/pic16 to setup
5524
5525 2004-06-30 Vangelis Rokas <vrokas AT otenet.gr>
5526
5527         * device/lib/Makefile.in: fixed bug in target objects-pic16,
5528         * device/lib/pic16/Makefile: prefixed with dash (-) command under
5529         target 'clean',
5530         * doc/sdccman.lyx: changed version to 2.4.2 and added some port
5531         specific command line arguments. Also added sample lkr script
5532         for placing a variable at a specific memory bank.
5533         * src/pic16/device.c (pic16_dump_gsection): NEW, to dump variables
5534         at a specific memory bank,
5535         * (pic16_dump_isection): fixed bug which caused string literals to
5536         be omitted when dumping idata section,
5537         * (pic16_groupRegistersInSection): added code to handle registers
5538         in specific memory banks,
5539         * src/pic16/gen.c: labelOffset is prefixed with pic16_ and made
5540         public, all references are renamed too,
5541         * (pic16_aopGet): removed switch cases for AOP_R0,AOP_R1,AOP_DPTR,
5542         AOP_DPTR2,
5543         * (pic16_storeForReturn): added case to handle when dest is WREG,
5544         * src/pic16/genarith.c (pic16_pCodeOpSubType): NEW,
5545         * src/pic16/glue.c (pic16emitRegularMap): when adding a register in
5546         pic16_rel_udata, check to see if that register is marked as being
5547         a member of a specific memory bank,
5548         * (pic16_printIvalCharPtr): added code to add string literals either
5549         to code or the idata sections,
5550         * src/pic16/main.c (_process_pragma): added \n to WHITE constant,
5551         also accept the 'udata' pragma,
5552         * src/pic16/main.h: new structure types sectName and sectSym
5553         * src/pic16/pcode.c: added new pCodeInstruction entry for BANKSEL
5554         * (newpCodeOpBit): added PIC_OPTYPE subt in function prototype,
5555         * (pic16_findPrevInstruction): fixed, it returned nothing,
5556         * (insertBankSwitch): fixed to emit banksel/skip and skip/banksel
5557         instruction combinations,
5558         * (pic16_FixRegisterBanking): heavily reorganised,
5559         * (pic16_AnalyzeBanking): if generating banksel directives is
5560         disabled, then don't call FixRegisterBanking at all,
5561         * src/pic16/ralloc.c (bitEQUs, aliasEQUs, allDefsOutOfRange):
5562         completely removed,
5563         * (pic16_writeUsedRegisters): added call to pic16_dump_gsection
5564
5565 2004-06-29 Bernhard Held <bernhard AT bernhardheld.de>
5566
5567         * src/SDCCglue.c (printChar): fixed bug #973350, patch provided by
5568         Phuah Yee Keat <yk.phuah AT nestac.com>
5569
5570 2004-06-28 Vangelis Rokas <vrokas AT otenet.gr>
5571
5572         * src/pic16/glue.c (pic16createInterruptVect): function now emits
5573         correctly the IVT even if it is relocated to some other location
5574
5575 2004-06-28 Vangelis Rokas <vrokas AT otenet.gr>
5576
5577         * device/include/pic16/pic18fregs.h: added case for pic18f2220.h
5578         * device/include/pic16/pic18f2220.h: NEW,
5579         * device/lib/pic16/libdev/pic18f2220.c: NEW,
5580         * device/lib/pic16/libdev/Makefile: added 18f2220 in DEVS,
5581         * src/pic16/device.c (struct Pics16): added info for 18f2220,
5582         * src/pic16/device.h (struct pic16_options): added ivt_loc and
5583         nodefaultlibs, ivt_loc is the location of the interrupt vector
5584         table, and nodefaultlibs signs that default libraries should not be
5585         linked in link stage,
5586         * src/pic16/gen.c (genFunction): relocate interrupt vector functions
5587         according to --ivt-loc argument,
5588         * src/pic16/main.c (_process_pragma): emit '_stack' as public symbol
5589         when pragma stack is found,
5590
5591 2004-06-25 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
5592
5593         * src/mcs51/peeph.def: added peepholes 182.d (return 0.0),
5594         256 (range check), 257 (do while), 258.a-f (bit banging
5595         f.e. on 3-wire SPI bus)
5596
5597 2004-06-21 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
5598
5599         * src/SDCClrange.c (findNextUseSym): fixed a live range bug with
5600         variables used exclusively within a loop
5601
5602 2004-06-21 Bernhard Held <bernhard AT bernhardheld.de>
5603
5604         * src/mcs51/gen.c (genCpl): quick fix for bug #974835
5605
5606 2004-06-21 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
5607
5608         * src/SDCClrange.c (computeClash): fixed bug #971834
5609
5610 2004-06-20 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
5611
5612         * src/mcs51/gen.c (genCmp): fixed bug #975903
5613         * src/hc08/gen.c (operandsEqu),
5614         * src/ds390/gen.c (operandsEqu),
5615         * src/z80/gen.c (operandsEqu),
5616         * src/pic/gen.c (operandsEqu),
5617         * src/pic16/gen.c (operandsEqu),
5618         * src/mcs51/gen.c (operandsEqu): fixed bug #976283
5619         * src/SDCCmain.c (parseCmdLine): report --unknown-option only once
5620
5621 2004-06-15 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
5622
5623         * src/SDCCcse.c (cseBBlock): fixed bug #966963
5624
5625 2004-06-12 Vangelis Rokas <vrokas AT otenet.gr>
5626
5627         * src/pic16/gen.c (genPointerGet): added E_INTERNAL_ERROR for
5628         default case in switch statement,
5629         * glue.c (pic16_initPointer): expr is initialised via decoarteType
5630         to eliminate problem with initialisation of pointers, but problem
5631         still exists,
5632         * (pic16_pointerTypeToGPByte): removed, no needed for pic16,
5633         * (emitStaticSegment): removed various lines emitting debug info,
5634         * src/pic16/pcode.c, src/pic16/pcode.h, src/pic16/ralloc.h:
5635         added processor registers for utilizing EEPROM,
5636         * src/pic16/pcode.c (pic16_emitDB): number of DBs emitted is not
5637         configurable and set 8
5638
5639 2004-06-08 Vangelis Rokas <vrokas AT otenet.gr>
5640
5641         * .version: increased version number to 2.4.2,
5642
5643         Cumulative patch for pic16 port
5644         * src/pic16/device.c: changed scheme to dump initial values for
5645         variables in idata segment, all print_idata* functions were removed,
5646         now the pic16_printIval* will be called,
5647         * src/pic16/glue.c: (pic16_initPointer, pic16_pointerTypeToGPByte,
5648         * _pic16_printPointerType, pic16_printPointerType,
5649         * pic16_printGPointerType, pic16_printIvalArray, pic16_printIvalStruct,
5650         * pic16_printIvalBitFields, pic16_printIvalFuncPtr, pic16_printIvalPtr:
5651         NEW, similar to the respective functions in SDCCglue.c,
5652         * src/pic16/pcode.c (pic16_emitDB, pic16_flushDB): reverted to old
5653         way, emitting hex bytes,
5654         * (pic16_emitDS): NEW, emits a string for pointer initialisation,
5655
5656 2004-06-08 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
5657
5658         * src/avr/ralloc.c (serialRegAssign),
5659         * src/xa51/ralloc.c (serialRegAssign),
5660         * src/pic/ralloc.c (serialRegAssign),
5661         * src/pic16/ralloc.c (serialRegAssign),
5662         * src/hc08/ralloc.c (serialRegAssign),
5663         * src/z80/ralloc.c (serialRegAssign),
5664         * src/ds390/ralloc.c (serialRegAssign),
5665         * src/mcs51/ralloc.c (serialRegAssign): fixed bug #964479
5666
5667 2004-06-08 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
5668
5669         * src/SDCCicode.c (geniCodeJumpTable): fixed bug #967601
5670         * src/SDCCpeeph.c (labelIsReturnOnly): fixed bug #966505
5671
5672 2004-06-07 Vangelis Rokas <vrokas AT otenet.gr>
5673
5674         Cumulative patch for pic16 port:
5675         * src/pic16/device.h (typedef PIC16_device) modified fields for
5676         defining microcontrollers,
5677         * src/pic16/device.c: added new info for all devices in Pics16 array,
5678         * src/pic16/gen.c (genPcall): fixed bug that caused the return label
5679         to be optimised out by the pCode optimiser,
5680         * src/pic16/glue.c (pic16emitRegularMap): treat implicit aggragates
5681         specially, bug reported by G.M. Gallant,
5682         * src/pic16/pcode.c (pic16_newpCodeLabelFORCE): NEW, marks a label
5683         as force'd so that cannot be optimised out by pCode optimiser,
5684         * src/pic16/pcode.c,
5685         * src/pic16/pcodepeeph.c,
5686         * src/pic16/pcoderegs.c: many modifications to re-enable peepholes,
5687         they are disabled by default, but can be enabled explicit with
5688         command argument --denable-peeps, for testing,
5689         * device/lib/pic16/startup/Makefile: added --no-peep,--pomit-config-words,
5690         --pomit-ivt in COMPILE_FLAGS
5691
5692 2004-06-06 Maarten Brock <sourceforge.brock AT dse.nl>
5693
5694         * src/pic16/pcode.c (pic16_emitDB): removed double semicolon which fails
5695           compilation on MSVC
5696
5697 2004-06-06 Maarten Brock <sourceforge.brock AT dse.nl>
5698
5699         * device/include/sab80515.h: added sfr P6, changed GPL to LGPL
5700
5701 2004-06-06 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
5702
5703         device/include/sab80515.h: fixed bug #967492, DAPR is defined at adress
5704         0xd8, but the correct adress is 0xda. Thanks to anonymous for reporting
5705
5706 2004-06-06 Vangelis Rokas <vrokas AT otenet.gr>
5707
5708         * src/pic16/device.c (pic16_assignConfigWord): fixed bug that
5709         would only assign 0x300001 register.
5710
5711 2004-06-05 Vangelis Rokas <vrokas AT otenet.gr>
5712
5713         * device/lib/pic16/startup/Makefile: added $(MODELFLAGS)
5714         in COMPILE_FLAGS. Thanks to G. Gallant for report.
5715
5716 2004-06-05 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
5717
5718         * doc/sdccman.lyx: minor changes, mentioned beta vendor support
5719         for ds80c400
5720         * src/mcs51/peeph.def: ran unexpand -a over peeph.def
5721         * src/mcs51/peeph.def: removed obsolete peephole 100.a,
5722         added peephole 254 (left shift), 255 (jump table)
5723
5724 2004-06-04 Vangelis Rokas <vrokas AT otenet.gr>
5725
5726         * device/lib/Makefile.in: removed comment line with model-pic16,
5727         * (target port-specific-objects-pic16): the libraries and objects
5728         are copied to the build directory form the device/lib/pic16/bin
5729         directory
5730
5731         Cumulative patch concerning pic16 port:
5732         * library directory has been re-organized,
5733         * added support for PIC18F1220,
5734         * added headers and library sources for chips 18f1220,18f6520,
5735         18f6620,18f6680,18f6720,18f8520,18f8620,18f8680,18f8720
5736
5737         * configuration registers setting has changed, now each supported
5738         device has a complete description of the registers it uses,
5739         * all initialisations are moved to idata sections, these section
5740         can be absolute or relocatable,
5741         * fixed initialisation of codespace variables,
5742         * fixed warning about PCLATU and gpsim,
5743         * src/pic16/gen.c (genCmp): now can handle partially iCodes with no ifx,
5744         * (genAssign): use table reads when assigning from variables in codespace,
5745         * src/pic16/glue.c (pic16emitStaticSeg): fixed to correctly initialise
5746         char/int variables placed in codespace,
5747         * (pic16_emitConfigRegs): NEW, emits a list with configuration
5748         registers set in .asm file, no need for --pomit-config-words anymore,
5749         * (pic16glue): some 8051 legacy segments are commented out
5750         (to be removed completely),
5751         * added support for alternative assembler and linker with --asm=
5752         and --link= command line arguments,
5753         * peepholes are disabled automatically in the port, no need to
5754         specify on command line,
5755         * port supports natively char/int/long multiplication, but converts
5756         all divisions to support functions,
5757         * main.c: pic16_linkCmd and pic16_asmCmd changed to force output
5758         to the file set in variable $2,
5759         * pcode.c (pic16_emitDB, pic16_flushDB): modified to print printable
5760         strings in ASCII format and not in hex,
5761         * ralloc.c (serialRegAssign): added a triplet of conditional calls
5762         to pic16_allocDirReg for IC_RESULT, IC_LEFT and IC_RIGHT so to
5763         allocate proper register if iCodes aren't temporary,
5764
5765 2004-06-02 Maarten Brock <sourceforge.brock AT dse.nl>
5766
5767         * support/regression/tests/zeropad.c: added TEST_G macro for alpha
5768
5769 2004-06-02 Vangelis Rokas <vrokas AT otenet.gr>
5770
5771         * src/pic16/gen.c (genPcall): warning about gpsim and PCLATU
5772         is commented out
5773
5774 2004-06-01 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
5775
5776         * src/hc08/gen.c (genPointerGetSetOfs): disabled optimization if
5777         computed address is reused
5778         * src/hc08/gen.c (genPackBits): fixed offsets in assignments to
5779         multi-byte bitfields
5780
5781 2004-06-01 Maarten Brock <sourceforge.brock AT dse.nl>
5782
5783         * src/z80/gen.c: (genArrayInit): must check for pointers too
5784
5785 2004-06-01 Maarten Brock <sourceforge.brock AT dse.nl>
5786
5787         * support/regression/tests/zeropad.c: never meant to commit the
5788           nestedstruct test: removed, added check for GCC version
5789
5790 2004-05-31 Maarten Brock <sourceforge.brock AT dse.nl>
5791
5792         * src/SDCCast.c (createIvalArray): fixed bug 770487 SIGSEGV
5793         * src/SDCCglue.c (emitRegularMap): fixed bug 770484 allocation problem
5794         * src/SDCCglue.c (initPointer, printIvalType, printIvalStruct,
5795           printIvalArray, printIvalFuncPtr, printIvalPtr, printIval): fixed
5796           bugs 928906 and 954082 half-empty initializers
5797         * src/SDCCsymt.h,
5798         * src/SDCCsymt.c (getAllocSize): added for above fix
5799         * src/z80/gen.c (genArrayInit): fixed bug 741044
5800         * support/regression/tests/zeropad.c: added tests
5801
5802 2004-05-30 Vangelis Rokas <vrokas AT otenet.gr>
5803
5804         * src/pic16/device.c (pic16_dump_section): corrected bug which
5805         caused some symbols of the libraries to be misplaced
5806
5807 2004-05-28 Vangelis Rokas <vrokas AT otenet.gr>
5808
5809         * src/pic16/glue.c,
5810         * src/pic16/ralloc.h,
5811         * src/pic16/ralloc.cc: prefixed IS_CONFIG_ADDRESS with PIC16_
5812         to fix conflict with pic port
5813
5814 2004-05-28 Vangelis Rokas <vrokas AT otenet.gr>
5815
5816         * src/pic16/glue.c (pic16emitStaticSeg): do not print as publics or
5817         externs configuration variables,
5818         * src/pic16/ralloc.h,
5819         * src/pic16/ralloc.cc: IS_CONFIG_ADDRESS is made public and added
5820         prototype in header, commented out some debug messages
5821
5822 2004-05-26 Vangelis Rokas <vrokas AT otenet.gr>
5823
5824         * src/pic16/glue.c,
5825         * src/pic16/main.c,
5826         * src/pic16/pcode.c: added gpasm directives #FILE/#LINE
5827         for gpasm COFF object generation. Thanks to D. Hawkins for
5828         his patch info
5829
5830 2004-05-25 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
5831
5832         * src/ds390/main.c,
5833         * src/mcs51/main.c: fixed sort order of mnemonics (thanks to Maarten
5834         Brock for spotting this)
5835         * src/ds390/gen.c (genEndFunction),
5836         * src/mcs51/gen.c (genEndFunction): always save psw if function is an
5837         interrupt handler and critical. Disable push/pop optimizations when
5838         peephole optimizations disabled.
5839
5840 2004-05-25 Vangelis Rokas <vrokas AT otenet.gr>
5841
5842         Updated pic16 library sources and headers.
5843         * device/lib/pic16/pic18f*/ ,
5844         * device/include/pic16/*.h: modified to handle structured SFR
5845         definitions
5846
5847 2004-05-25 Vangelis Rokas <vrokas AT otenet.gr>
5848
5849         * src/port.h (PORT structure): added hook initPaths, now each
5850         port can declare its own default search paths,
5851         which can been seen with the --print-search-dirs option,
5852         see pic16 port for example,
5853         * src/SDCCmain.c (setBinPaths, setIncludePaths, setLibPath,
5854         setDataPaths): test to options.printSearchDirs is ifdef'ed out,
5855         * (doPrintSearchDirs): NEW, replaces in a central manner the
5856         printing of search dirs which was split in set*Paths functions,
5857         * (main): added call to port->initPaths and doPrintSearchDirs,
5858         * src/avr/main.c,
5859         * src/ds390/main.c,
5860         * src/hc08/main.c,
5861         * src/izt/i186.c,
5862         * src/izt/tlcs900h.c,
5863         * src/mcs51/main.c,
5864         * src/pic/main.c,
5865         * src/pic16/main.c: modified port structures to reflect addition of
5866         initPaths hook,
5867
5868         * src/pic16/device.c (regCompare): registers are finally sorted by name,
5869         * (pic16_dump_section): for registers in same address reserve memory once,
5870         * src/pic16/device.h (struct PIC16_device): changed variable gen_banksel
5871         to no_banksel,
5872         * src/pic16/genarith.c (pic16_genPlus): added code to handle cases where
5873         result is greater in size than right or left,
5874         * (pic16_genUMult8X8_8): there are some cases where the result can
5875         be 16 bits size, so handle these,
5876         * src/pic16/gen.c: changed some pic16_emitpcomment to DEBUGpic16_emitcode,
5877         * (pic16_outBitC): modified to emit pcodes,
5878         * (pic16_storeForReturn): using is_LitOp to see if operand is literal
5879         or not,
5880         * (genDivOneByte): implemented algorithm to divide 8-bits,
5881         * (genCmp): uncommented goto, but issues still exist,
5882         * (genAnd): fixed a bug with variables >8bits,
5883         * (genPackBits): optimization added that uses BCF/BSF to change a
5884         single bit,
5885         * (genAssign): fixed bug when assigning floating point literals,
5886         * src/pic16/glue.c (pic16glue): added assembler directive 'code' before
5887         __sdcc_gsinit_startup label,
5888         * src/pic16/main.c (_pic16_init): removed search directory
5889         initialisations,
5890         * (_pic16_initPaths): NEW, used to initialise search directories,
5891         * (_hasNativeMulFor): support functions for all except char/int
5892         multiplication, and char division,
5893         * (PIC16_port struct): modified entry for native mul support,
5894         * src/pic16/pcode.c (insertBankSwitch): modified to support the renamed
5895         no_banksel option,
5896         * (buildCallTree): call to register_usage is ifdef'ed out,
5897
5898 2004-05-22 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
5899
5900         * device/include/string.h: applied Stas Sergeev's patch to make this
5901         header file compatible with the preprocessor -Wundef option
5902         * src/SDCCmain.c (main): abort compilation if preprocessor reports
5903         failure (fixes bug #941458)
5904
5905 2004-05-21 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
5906
5907         * src/SDCCopt.c (killDeadCode): fixed bug #907733
5908         * support/Util/SDCCerr.c: reworded E_AUTO_ASSUMED diagnostic to clarify
5909         that the variable, not the function, should be static
5910         * src/SDCCval.c (valCastLiteral): fixed bit initialization from literal
5911         to be consistent with non-literal case
5912
5913 2004-05-19 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
5914
5915         * src/SDCCast.c (isConformingBody): fixed bug #949967
5916         * src/SDCCopt.c (cnvToFcall, cnvToFloatCast, cnvFromFloatCast,
5917         convilong): fixed bug #952086
5918
5919 2004-05-18 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
5920
5921         * src/SDCCmem.c (allocVariables): fixed bug #955321
5922
5923 2004-05-18 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
5924
5925         * src/hc08/main.c (_hc08_genAssemblerEnd),
5926         * src/SDCCdwarf2.c (dwOpenFile, dwCloseFile, dwWriteFunction,
5927         dwWriteModule, dwWriteCLine, dwWriteALine, dwarf2FinalizeFile):
5928         completely eliminated the use of a temporary file
5929         * src/SDCCdwarf2.c (dwWriteAttr): fixed bug with location list offset
5930         when more than one file linked
5931         * src/SDCCloop.c (pointerAssigned): fixed bug #954163
5932
5933 2004-05-17 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
5934
5935         * src/SDCCval.c (valForArray): applied Maarten Brock's patch #947682
5936         which fixes bug #543481
5937         * support/regression/tests/bug-751703.c: fixed comments left from a
5938         cut and paste error
5939         * src/SDCCdwarf2.c (dwCloseFile): don't explicitly close a temp file
5940         * src/SDCCdwarf2.c (dwTagFromType): added bitfield support
5941         * src/SDCCdwarf2.c (dwWriteSymbolInternal): handle extern within local
5942         scopes
5943         * src/SDCCdwarf2.c (dwWriteLineNumber): line number deltas are signed
5944         * src/SDCCmain.c (processFile, parseCmdLine): non-alphanumeric chars
5945         are now changed to underscores in moduleName
5946
5947 2004-05-15 Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
5948
5949         * as/mcs51/lkmem.c: better fix for bug #954173
5950
5951 2004-05-15 Maarten Brock <sourceforge.brock AT dse.nl>
5952         committed by Frieder Ferlemann <Frieder.Ferlemann AT web.de>
5953
5954         * device/include/c8051f020.h: newly added SiLabs (Cygnal) header file
5955         * device/include/c8051f000.h,
5956         * device/include/c8051f120.h,
5957         * device/include/c8051f300.h,
5958         * device/include/c8051f310.h,
5959         * device/include/c8051f320.h: updated (added _XPAGE, CAPN, CAPP,
5960         PWM16) and detab'ed
5961
5962 2004-05-15 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
5963
5964         * doc/sdccman.lyx: mentioned sourceforge's delay between web frontend
5965         and mailing lists, doc'ed --no-peep-comments, removed reference
5966         to knoppix (newest version has no LyX/LaTeX), other minor changes
5967         * src/SDCCglue.c (glue): save 2 bytes stack space with
5968         option --main-return. The ljmp could probably be avoided too
5969
5970 2004-05-14 Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
5971
5972         * as/mcs51/lkmem.c, as/mcs51/lkaomf51: fixed bug 954173
5973
5974 2004-05-14 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
5975
5976         * src/SDCCsymt.h: added IS_AUTO(symbol) test macro
5977         * src/SDCCopt.c (isLocalWithoutDef),
5978         * src/SDCCicode.c (operandFromSymbol): use the IS_AUTO test macro
5979         which adds a !IS_EXTERN codition. Fixes bugs #877426 and #751703.
5980         (credit to Maarten Brock for patch #949363, on which this is based)
5981         * support/regression/tests/bug-751703.c: some test cases of extern used
5982         within inner scopes.
5983
5984 2004-05-14 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
5985
5986         * src/SDCCdwarf2.c (dwMatchTypes): structs must have matching
5987         SPEC_STRUCT
5988         * src/SDCCdwarf2.c (dwTagFromType): fix to handle recursive
5989         struct definitions
5990         * src/SDCCdwarf2.c (dwWriteModule, dwNewDebugSymbol, dwWriteEndFunction,
5991         dwWriteLabel): fix to create valid debugger symbols even when
5992         the module name has non-alphanumeric symbols in it
5993         * src/SDCCdwarf2.c (dwWriteSymbolInternal): better detection for
5994         when a variable's allocation has been optimized away
5995
5996
5997 2004-05-13 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
5998
5999         * src/hc08/gen.c (hc08_emitDebuggerSymbol),
6000         * src/hc08/main.c,
6001         * src/mcs51/gen.c (mcs51_emitDebuggerSymbol),
6002         * src/mcs51/main.c,
6003         * src/ds390/gen.c (ds390_emitDebuggerSymbol),
6004         * src/ds390/main.c,
6005         * src/z80/gen.c (z80_emitDebuggerSymbol),
6006         * src/z80/main.c,
6007         * src/pic/gen.c (pic14_emitDebuggerSymbol),
6008         * src/pic/main.c,
6009         * src/pic16/gen.c (pic14_emitDebuggerSymbol),
6010         * src/pic16/main.c,
6011         * src/avr/gen.c (avr_emitDebuggerSymbol),
6012         * src/avr/main.c,
6013         * src/xa51/gen.c (xa51_emitDebuggerSymbol),
6014         * src/xa51/main.c,
6015         * src/SDCCdebug.c (emitDebuggerSymbol),
6016         * src/SDCCdebug.h,
6017         * src/port.h: added a debugger struct to the port struct. Added a
6018         callback for defining debugger symbols
6019
6020         * src/SDCCast.c (createLabel),
6021         * src/SDCC.y (labeled_statement): mark all compiler generated labels
6022         with isitmp = 1
6023         * src/SDCCicode.h,
6024         * src/SDCCicode.c (geniCodeFunctionBody): added a link from the FUNCTION
6025         iCode back to the ast for the function
6026
6027         * src/hc08/ralloc.c (hc08_assignRegisters),
6028         * src/hc08/ralloc.h: define a regs struct for the stack pointer. Removed
6029         unneeded fields from the regs struct.
6030         * src/hc08/gen.c (transferRegReg, genFunction, genEndFunction): use the
6031         pushReg() & pullReg() functions instead of emitcode()
6032
6033         * src/hc08/gen.c (genLabel, genhc08Code),
6034         * src/SDCCdebug.h: Added additional debugger hooks needed for DWARF
6035
6036         * src/cdbFile.c (cdbWriteLabel, cdbWriteScope): Added stubs for unneeded
6037         debugger hooks
6038
6039         * src/hc08/gen.c (genEndFunction, genhc08Code),
6040         * src/hc08/gen.h,
6041         * src/mcs51/gen.c (genEndFunction, gen51Code),
6042         * src/mcs51/gen.h,
6043         * src/ds390/gen.c (genEndFunction, gen390Code),
6044         * src/ds390/gen.h,
6045         * src/z80/gen.c (genEndFunction, genZ80Code),
6046         * src/z80/gen.h,
6047         * src/z80/z80.h,
6048         * src/pic/gen.c (genEndFunction, genpic14Code),
6049         * src/pic/gen.h,
6050         * src/pic16/gen.c (genEndFunction, genpic16Code),
6051         * src/pic16/gen.h,
6052         * src/avr/gen.c (genEndFunction, genAVRCode),
6053         * src/avr/gen.h,
6054         * src/xa51/gen.c (genEndFunction, genXA51Code),
6055         * src/xa51/gen.h,
6056         * src/cdbFile.c (cdbWriteFunction, cdbWriteEndFunction): moved cdb
6057         specific code to cdbFile.c and out of the backend code generators
6058
6059         * as/hc08/lkmain.c (main): removed OMF51 support from link-hc08
6060         * as/hc08/lkarea.c (lnkarea): areas with NOLOAD attribute default
6061         starting address is now 0
6062
6063         * as/hc08/asm.h,
6064         * as/hc08/m08pst.c,
6065         * as/hc08/asmain.c (asmbl): implemented the .sleb128 and .uleb128
6066         assembler directive for DWARF support
6067         * as/hc08/lkelf.c (elf): only increment address when rtflg[] set
6068
6069         * src/src.dsp,
6070         * src/Makefile.in,
6071         * src/SDCCdwarf2.c: preliminary DWARF (ver 2) debugger data generator
6072
6073 2004-05-04 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
6074
6075         * src/hc08/gen.c (genJumpTab, emitcode, genhc08code): fixed stack error
6076         and inappropriate peephole optimization in jump tables
6077
6078 2004-04-30 Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
6079
6080         * as/hc08/m08pst.c,
6081         * src/SDCCglue.c: sdccopt works for the hc08 port now
6082
6083 2004-04-27 Bernhard Held <bernhard AT bernhardheld.de>
6084
6085         * src/SDCCicode.c (geniCodePreInc, geniCodePreDec): fixed bug #942130
6086
6087 2004-04-27 Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
6088
6089         * as/hc08/lkelf.c: sdccconf.h is not available in WIN32
6090
6091 2004-04-24 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
6092
6093         * src/SDCCpeeph.c (replaceRule): support empty replacement peephole
6094         rules
6095         * src/SDCCmain.c,
6096         * src/SDCCglobl.h,
6097         * src/SDCCpeeph.c (getPeepLine): new option --no-peep-comments omits
6098         comments from the peephole optimizer replacement rules
6099         * src/SDCCmem.c (printAllocInfoSeg): give actual location of spilled
6100         symbols
6101         * src/SDCCcse.c (updateSpillLocation),
6102         * src/SDCCopt.c (killDeadCode, findReqv): better tracking of register
6103         equivalents
6104         * src/hc08/ralloc.c (regTypeNum): pseudo symbols must be in DATA only
6105         * src/hc08/main.c (_hc08_finaliseOptions): made pointers to stack
6106         objects far pointers
6107
6108 2004-04-23 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
6109
6110         * src/SDCCsymt.h: a missing part of my last change
6111         * src/pic/ralloc.c (regTypeNum),
6112         * src/pic16/ralloc.c (regTypeNum): fixed statement/declaration order
6113
6114 2004-04-23 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
6115
6116         * src/SDCCicode.h,
6117         * src/SDCCicode.c (aggrToPtrDclType),
6118         * src/SDCCptropt.h,
6119         * src/SDCCptropt.c (ptrBaseRematSym, ptrPseudoSymSafe,
6120         ptrPseudoSymConvert),
6121         * src/pic/ralloc.c (regTypeNum),
6122         * src/pic16/ralloc.c (regTypeNum),
6123         * src/hc08/ralloc.c (regTypeNum),
6124         * src/ds390/ralloc.c (regTypeNum),
6125         * src/mcs51/ralloc.c (regTypeNum): check for dependancy hazards before
6126         creating pseudo symbols (fixed bugs #777768, #930484, and #933966)
6127
6128 2004-04-22 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
6129
6130         * link/z80/lkmain.c (afile),
6131         * as/hc08/lkmain.c (afile),
6132         * as/mcs51/lkmain.c (afile): fix suggested by Maarten Brock to
6133         prevent a pointer problem when a filename has no directory and
6134         no extension specified.
6135
6136 2004-04-21 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
6137
6138         * link/z80/lkmain.c (afile): allow periods in directory names
6139         * link/z80/lkmain.c (afile),
6140         * as/mcs51/lkmain.c (afile),
6141         * as/hc08/lkmain.c (afile): allow linker script file to have an
6142         extension other than ".lnk"
6143         * link/z80/lklex.c (getfid),
6144         * link/z80/lkmain.c (parse),
6145         * as/mcs51/lklex.c (getfid),
6146         * as/mcs51/lkmain.c (parse),
6147         * as/hc08/lklex.c (getfid),
6148         * as/hc08/lkmain.c (parse): Support comments in the linker script
6149         file on lines by themselves and after filenames
6150
6151 2004-04-20 Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
6152
6153         * as/link_hc08.dsp: Added as/hc08/lkelf.c to project.
6154
6155 2004-04-20 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
6156
6157         * src/z80/peeph-z80.def: removed some peephole rules that don't
6158         work with multibyte arithmetic (fixed bug #937126)
6159         * src/mcs51/peeph.def: fixed peephole rules 150-158 to apply only
6160         to registers and not global variables
6161         * src/SDCCicode.c (geniCodeAssign, ast2iCode, geniCodePostInc,
6162         geniCodePreInc, geniCodePostDec, geniCodePreDec,
6163         geniCodeLogicAndOr, geniCodeConditional): enforce strict lvalue
6164         checking for assignments not internally generated (fixed bug #931895)
6165         * src/SDCC.y (postfix_expr): ignore typedefs when looking for a
6166         structure member (fixed bug #930072)
6167
6168 2004-04-19 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
6169
6170         * src/SDCCmain.c (linkEdit),
6171         * src/hc08/main.c (_hc08_parseOptions),
6172         * as/hc08/Makefile.in,
6173         * as/hc08/aslink.h,
6174         * as/hc08/asm.h,
6175         * as/hc08/m08pst.c,
6176         * as/hc08/lkrloc.c (relr, rele),
6177         * as/hc08/lkarea.c (lnkarea)
6178         * as/hc08/lkmain.c (afile, parse),
6179         * as/hc08/lkelf.c: support for ELF output
6180         * as/hc08/lks19.c (s19),
6181         * as/hc08/lkihx.c (ihx): ignore areas with the NOLOAD attribute
6182
6183 2004-04-17 Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
6184
6185         * as/mcs51/lkihx.c: Fixed bug #899105.
6186
6187 2004-04-16 Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
6188
6189         * doc/sdccman.lyx: Added instructons on how to convert MSVC .dsw and
6190         .dsp files from Unix to DOS.
6191
6192 2004-04-16 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
6193
6194         * doc/sdccman.lyx: removed the ANSI-C noncompliance note regarding
6195         function pointers; we have been compliant for several months now.
6196         * src/mcs51/ralloc.c (serialRegAssign): enabled part of my 2004-04-13
6197         change that was accidently commented out
6198         * src/mcs51/gen.c (freeAsmop, getFreePtr, freeForBranchAsmop, genIfxJump,
6199         genCmpEq, jmpTrueOrFalse, genCmp, genAnd, genOr, genXor, genIfx): fixed
6200         bug #922319
6201
6202 2004-04-15 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
6203
6204         * src/hc08/gen.c: output of all of the internal debugging information
6205         is now controlled by the D() macro; it is disabled by default
6206
6207 2004-04-13 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
6208
6209         * src/mcs51/ralloc.c (serialRegAssign, fillGaps, allocThisReg): try
6210         harder to keep the same registers during a CAST iCode
6211         * src/SDCCopt.c (optimizeCastCast, eBBlockFromiCode): casts of char to
6212         long via int can be done in a single cast, if the signedness is
6213         correct.
6214         * support/regression/tests/bug-927659.c: fixed to avoid conflict with
6215         putchar() in tinibios.c in ds390's library
6216
6217 2004-04-12 Bernhard Held <bernhard AT bernhardheld.de>
6218
6219         * src/SDCCast.c (decorateType): fixed bug #898889,
6220         cast result of a literal complement too
6221         * src/mcs51/ralloc.c (packRegsForAssign): fixed bug #930931,
6222         fixed check for bitfields
6223
6224 2004-04-11 Bernhard Held <bernhard AT bernhardheld.de>
6225
6226         * src/SDCCicode.c (geniCodeLogic): made it static,
6227         (geniCodeLogicAndOr): added in order to fix bug #905492,
6228         (ast2iCode): fixed bug #905492
6229         * support/regression/tests/bug-905492.c: added
6230         * src/SDCCast.c (decorateType): don't decorate/process parms twice,
6231         (processParms): fixed bug #927659: don't copy parms, this will clear
6232         decorated flag
6233         * support/regression/tests/bug-927659.c: added
6234
6235 2004-03-29 Bernhard Held <bernhard AT bernhardheld.de>
6236
6237         * src/SDCCast.c (addCast): don't cast float to char
6238         * device/lib/libsdcc.lib: added _memmove
6239
6240 2004-03-28 Bernhard Held <bernhard AT bernhardheld.de>
6241
6242         * device/lib/large/Makefile: fixed parallel execution by
6243         replacing `make` by `$(MAKE)`
6244
6245 2004-03-28 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
6246
6247         * src/hc08/gen.c (genPointerGetSetOfs): correctly handle 1 byte array
6248         offsets (fixes bug #923936)
6249
6250 2004-03-26 Bernhard Held <bernhard AT bernhardheld.de>
6251
6252         * device/lib/small/Makefile: fixed parallel execution by
6253         replacing `make` by `$(MAKE)`
6254
6255 2004-03-23 Bernhard Held <bernhard AT bernhardheld.de>
6256
6257         * device/lib/vprintf.c (vsprintf): minor optimization, see bug #801101
6258
6259 2004-03-23  Scott Dattalo  <scott AT dattalo.com>
6260
6261         * src/pic/gen.c (genCpl): multi-byte complements were not working.
6262         * src/regression/Makefile: Regression test was not running.
6263
6264 2004-03-23 Bernhard Held <bernhard AT bernhardheld.de>
6265
6266         * src/SDCCast.c (resultTypePropagate, decorateType): avoid promotion to int for
6267         complement if possible
6268         * src/SDCCval.c (valComplement),
6269         * src/SDCCicode.c (operandOperation): fixed complement of literal
6270         * support/regression/tests/onebyte.c (testComplement): added
6271
6272 2004-03-22 Bernhard Held <bernhard AT bernhardheld.de>
6273
6274         * src/SDCCast.c (processParms): fixed bug #920866; decorateType() can
6275         return an optimized tree; actually replace actParm with the new tree
6276         * src/SDCCast.h: added some parantheses to remove side effects
6277         * support/regression/tests/bug-920866.c
6278
6279 2004-03-21  Scott Dattalo  <scott AT dattalo.com>
6280         * src/pic/gen.c, src/pic/gen.h, src/pic/genarith.c, src/pic/pcode.c:
6281         Bit operands were not being handled properly in the pic14 port.
6282         (now src/regression/add.c passes again).
6283
6284 2004-03-20 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
6285
6286         * src/SDCC.y (labeled_statement): case and default no longer require
6287         a following statement (RFE #893037)
6288
6289 2004-03-19 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
6290
6291         * src/mcs51/gen.c (pushSide, genSignedRightShift, genDjnz, geniPush):
6292         use MOVA macro to avoid "mov a,acc" when peephole optimizer is
6293         disabled (fixes bug #916294)
6294         * sim/ucsim/s51.src/mov.cc (inst_mov_a_addr): Throw an error on
6295         "mov a,acc"; patch provided by Lenny Story
6296         * device/include/mc68hc908gp32.h: header contibuted by Juan Gonzalez
6297
6298 2004-03-19 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
6299
6300         * src/mcs51/gen.c (genFunction): optimize RECEIVE in reentrant
6301         functions
6302         * src/ds390/gen.c (genFunction, genEndFunction),
6303         * src/ds390/ralloc.c (ds390_assignRegisters),
6304         * src/mcs51/gen.c (genFunction, genEndFunction, mcs51_assignRegisters):
6305         * src/mcs51/ralloc.c (mcs51_assignRegisters): Skip optimizing registers
6306         pushed if there are parameters passed on the stack. Also, a cleaner
6307         way to decide if r0/r1 should be pushed/popped. (Together they fix
6308         bug #918693)
6309
6310 2004-03-18 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
6311
6312         * doc/sdccman.lyx,
6313         * device/lib/mcs51/crtpagesfr.asm,
6314         * device/lib/mcs51/crtxinit.asm,
6315         * device/lib/mcs51/crtxstack.asm: Changed name of _PAGESFR to _XPAGE
6316         to avoid confusion with Si Lab's SFRPAGE register.
6317
6318 2004-03-17 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
6319
6320         * src/SDCCglue.c (emitMaps): allow public sfr variables
6321         * src/SDCCglue.c (initialComments): include compiler build date
6322         with compiler version and put the timestamp of the generated
6323         assembly file on a serperate line to be less confusing.
6324         * src/port.h: added genInitStartup hook
6325         * src/avr/main.c,
6326         * src/ds390/main.c,
6327         * src/hc08/main.c,
6328         * src/pic/main.c,
6329         * src/pic16/main.c,
6330         * src/xa51/main.c,
6331         * src/z80/main.c: genInitStartup initialize as NULL (default to
6332         historical behaviour)
6333         * src/SDCCglue.c (glue): _sdcc_gsinit_startup is now port specific.
6334         * src/mcs51/main.c: (_mcs51_genInitStartup, _mcs51_genExtraAreas,
6335         _mcs51_genXINIT, _mcs51_genRAMCLEAR): link initialization code from the
6336         library instead of hard coding it into the compiler.
6337         * support/regression/ports/mcs51-stack-auto/spec.mk,
6338         * src/SDCCmain.c (linkEdit): added mcs51.lib to the link libraries
6339         * device/lib/mcs51/Makefile,
6340         * device/lib/small/Makefile,
6341         * device/lib/large/Makefile,
6342         * device/lib/mcs51/crtpagesfr.asm,
6343         * device/lib/mcs51/crtstart.asm,
6344         * device/lib/mcs51/crtxclear.asm,
6345         * device/lib/mcs51/crtxinit.asm,
6346         * device/lib/mcs51/crtclear.asm,
6347         * device/lib/mcs51/crtxstack.asm: move most of the mcs51 C runtime
6348         startup/initialization out of src/SDCCglue.c and src/mcs51/main.c
6349         and into user configurable files.
6350         * device/lib/clean.mk: clean mcs51 directory too
6351         * support/regression/tests/longlit.c: added static to T1 declaration
6352         * doc/sdccman.lyx: documented _PAGESFR sfr for customizing pdata
6353         accesses in the initialization code
6354
6355 2004-03-14 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
6356
6357         * device/include/mc68hc908qy.h: corrected declarations of FLBPR and
6358         OSCTRIMVAL as noted in bug #916008
6359
6360 2004-03-14 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
6361
6362         * src/SDCCloop.c (basicInduction): fixed bug with loop induction
6363         in loops with multiple exits (reported as incorrect registers
6364         used by Martin Helmling in Sdcc-user list)
6365
6366 2004-03-12 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
6367
6368         * src/ds390/main.c (_ds390_genAssemblerPreamble): cosmetic change,
6369         made ds390 register extensions look less like error messages
6370
6371 2004-03-12 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
6372
6373         * src/SDCCglue.c (printIvalPtr): fixed bug with pointer initializer
6374         reported by Adam Wozniak in Sdcc-user list
6375
6376 2004-03-10 Bernhard Held <bernhard AT bernhardheld.de>
6377
6378         * src/SDCCast.c (decorateType): fixed with bug and promotion in
6379         arithmetic optimizations, added debug output
6380
6381 2004-03-09 Bernhard Held <bernhard AT bernhardheld.de>
6382
6383         * device/lib/time.c (mktime): fixed bug reported by Bert Thomas
6384         * sdcc.spec: updated and split sdcc into 3 rpms
6385         * src/SDCCast.c (decorateType): &|^ don't need addCast(); addCast() is
6386         needed for literals of LEFT_OP and '+'
6387         * src/SDCCicode.c (geniCodeLogic): I must have been braindead when I
6388         introduced RESULT_TYPE_NOPROM
6389         (geniCodeMultiply): fixed logic for decision if mul is optimized to
6390         left shift
6391         * src/SDCCsymt.c (computeType): op is int; added RESULT_TYPE_OTHER;
6392         limited promotion to int only for '*'
6393         * src/SDCCsymt.h (computeType): op is int, removed RESULT_TYPE_NOPROM
6394
6395 2004-03-09 Hans Dorn <hjdorn AT users.sourceforge.net>
6396
6397         * src/pic16/gen.c (genSkip),
6398         (genc16bit2lit), (gencjneshort): commented out
6399         (is_LitOp): new helper function, checks operand type
6400         (genCmpEq): rewritten
6401
6402 2004-03-08 Bernhard Held <bernhard AT bernhardheld.de>
6403
6404         * support/regression/tests/bug-908454.c: added
6405
6406 2004-03-07 Bernhard Held <bernhard AT bernhardheld.de>
6407
6408         * src/SDCCast.c (addCast): fixed bug #908454 by promoting bits to char
6409         * src/SDCCicode.c (usualBinaryConversions): op needs int type
6410         (geniCodeCast): cosmetic, don't preserve bit storage class
6411         (geniCodeLeftShift): added promotion
6412         (geniCodeLogic): fixed regression
6413         * src/SDCCsymt.c (computeTypeOr): accept bits too
6414         (compareType): 2nd part of fix for bug #908454, needed for bitfields
6415
6416 2004-03-07  Borut Razem <borut.razem AT siol.net>
6417
6418         * support/Util/findme.c: alloca() replaced with malloc()/free() pair
6419
6420 2004-03-06 Vangelis Rokas <vrokas AT otenet.gr>
6421
6422         * src/pic16/ralloc.c (pic16_genPackRegisters): reverted to old
6423         version of pic16_genPackRegisters which does not check if ic is a
6424         CAST operator,
6425         * src/pic16/gen.c (ifxForOp): disabled new and untested code in
6426         function cause string1.c regression test fails
6427
6428 2004-03-06 Bernhard Held <bernhard AT bernhardheld.de>
6429
6430         * sim/ucsim/configure.in,
6431         * sim/ucsim/configure,
6432         * sim/ucsim/doc/Makefile.in: use docdir
6433         * src/SDCC.y: fixed sbit atrributes
6434         * src/SDCCast.c (getResultTypeFromType): added support for bitfields
6435         * src/SDCCast.c (decorateType): |^& need special promotion handling
6436         * src/SDCCast.h,
6437         * src/SDCCsymt.h: moved definition of RESULT_TYPE
6438         * src/SDCCsymt.h (computeType),
6439         * src/SDCCicode.c: computeType() needs op
6440         * src/SDCCsymt.c (checkTypeSanity),
6441         * doc/sddman.lyx: "plain" bitfields are unsigned
6442         * src/SDCCsymt.c (computeTypeOr): added
6443         * src/SDCCsymt.c (computeType): added support for bitfields, fixed
6444         |^& ops
6445         * src/SDCCval.c (val*): computeType() needs op
6446         * src/SDCCval.c (valCastLiteral): fixed casting of bitfields
6447         * support/regression/tests/onebyte.c: added tests for |^&
6448
6449 2004-03-06 Hans Dorn <hjdorn AT users.sourceforge.net>
6450
6451         * src/pic16/gen.c: (genpic16Code) use copy of printILine's output
6452         for writing icode into asm output.
6453
6454 2004-03-05 Vangelis Rokas <vrokas AT otenet.gr>
6455
6456         * src/pic16/device.c: added some debug lines enabled
6457         with macro DEBUG_CHECK,
6458         * src/pic16/genarith.c: more debug in genPlus,
6459         * (pic16_genUMult8XLit_16, pic16_genUMult8X8_16): removed,
6460         * (pic16_genUMult16X16_16, pic16_genUMult16XLit_16): NEW,
6461         * src/pic16/gen.c: added prototypes for pic16_genMult16X16_16,
6462         * (aopForSym): onStack symbols are re-placed in data memspace,
6463         and onStack flag is cleared,
6464         * (pic16_popGetTempReg, pic16_popReleaseTempReg): modified to
6465         copy temporary pcodeop,
6466         * (genPcall): added warning for not updating PCLATU,
6467         * (genFunction): removed test with IFFUNC_CALLEESAVES, its
6468         always true for pic16 port,
6469         * (genMultOneWord): NEW, supports integer multiplication,
6470         * (genMult): modified to call genMultOneWord,
6471         * (ifxForOp): added warning when return NULL,
6472         * src/pic16/glue.c (pic16emitRegularMap): symbol implicit
6473         flag is set before call to operandFromSymbol for implicit
6474         added structures,
6475         * src/pic16/main.c (_pic16_finaliseOptions): options.float_rent,
6476         options.intlong_rent are set by default,
6477         * (_hasNativeMulFor): modified to allow port generation of integer
6478         multiplication,
6479         * src/pic16/ralloc.c (pic16_allocDirReg): commented out line which
6480         set regtype to REG_SFR for all registers, restricting seting the
6481         accessBank flag for registers 0<= r < 0x80 and 0xf80<=r<=0xfff,
6482
6483 2004-03-05 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
6484
6485         * src/mcs51/peephole.def: added 251.b and 253.x. 253.x are applied
6486         more than 500 times in the regression tests
6487
6488 2004-03-05 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
6489
6490         * support/Util/SDCCerr.h,
6491         * support/Util/SDCCerr.c,
6492         * src/SDCC.y (struct_or_union_specifier, enum_specifier,
6493         enumerator_list),
6494         * src/SDCCsymt.c (addSymChain): show location of oriignal definition
6495         for symbol conflicts.
6496         * support/valdiags/tests/enum.c,
6497         * support/valdiags/tests/tentdecl.c,
6498         * support/valdiags/tests/struct.c: expect possible error messages
6499         referring to original symbol definitions.
6500         * src/SDCC.y (struct_or_union_specifier, struct_declarator),
6501         * src/SDCCsymt.h,
6502         * src/SDCCsymt.c (promoteAnonStructs): support anonymous struct/union
6503
6504 2004-03-03 Hans Dorn <hjdorn AT users.sourceforge.net>
6505
6506         * src/pic16/gen.c (gencjne): fixed for right=REG / left=LIT
6507
6508 2004-02-03 Vangelis Rokas <vrokas AT otenet.gr>
6509
6510         * src/pic16/ralloc.c (newReg): fixed bug #908929
6511
6512 2004-03-02 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
6513
6514         * src/ds390/gen.c: added missing #include "main.h"
6515
6516 2004-03-02 Vangelis Rokas <vrokas AT otenet.gr>
6517
6518         * src/pic16/device.c (checkAddSym): NEW, adds a symbol to set while
6519         checking if symbol is already in set,
6520         * src/pic16/device.h: prototype for checkAddSym,
6521         * src/pic16/gen.c: (_G): added entry interruptvector,
6522         * (assignResultValue): removed some commented out lines,
6523         * (genFunction): check for ISR via sym->type, absolute section for
6524         interrupt code is created via a new pBlock, the goto instruction is
6525         placed now correctly at the interrupt vector position, changed all
6526         references from ivec to _G.interruptvector,
6527         * WREG,STATUS,BSR are not saved in stack upon an entry to interrupt
6528         is the interrupt is a high priority one, same for return from ISR,
6529         * src/pic16/glue.c: changed all calls of addSetHead for publics and
6530         externs to calls of checkAddSym,
6531         * src/pic16/pcode.c (pic16_pBlockConvert2*): emit warning when
6532         pic16_pcode_verbose flag is set,
6533         * src/pic16/pcode.h: extern to pic16_pcode_verbose,
6534         * src/pic16/pcoderegs.c: message about how many registers are saved
6535         will only be emitted if pic16_pcode_verbose flag is set,
6536
6537 2004-03-02 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
6538
6539         * src/ds390/ralloc.h,
6540         * src/ds390/ralloc.c (ds390_regWithIdx),
6541         * src/ds390/gen.c (emitcode),
6542         * src/ds390/main.h,
6543         * src/ds390/main.c (instructionSize, ds390newAsmLineNode, updateOpRW,
6544         ds390opcodeCompare, asmLineNodeFromLineNode, getInstructionSize,
6545         ds390operandCompare, getRegsRead, getRegsWritten,
6546         initializeAsmLineNode): customized instruction size calculation for
6547         ds390, started basis for some register optimizations
6548         * src/ds390/gen.c (gen390Code, emitcode): associate iCodes with
6549         corresponding assembly output
6550         * src/ds390/gen.c (genFunction, genEndFunction): added case to handle
6551         missing push/pop of r0/r1. Optimized push/pops
6552
6553 2004-03-01 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
6554
6555         * src/mcs51/main.c (instructionSize): fixed ACALL size
6556         * src/mcs51/main.c (updateOpRW): fixed bug with @dptr, @a+dptr operands
6557
6558 2004-03-01 Vangelis Rokas <vrokas AT otenet.gr>
6559
6560         * src/pic16/device.c (pic16_dump_section): fixed a bug that allowed
6561         the sorting of rlist with NULL elements
6562         * (print_idataType, print_idata): NEW to create idata sections
6563         * src/pic16/device.h: idataSymSet new variable
6564         * src/pic16/gen.c (genFunction): fixed some bugs in string
6565         comparing, improved the absolute section creation for ISRs,
6566         added FSR0L/FSR0H in registers that are saved in an ISR,
6567         * (genInline): fixed the processing of inline snippets,
6568         now they undergo no process by the peephole optimizer
6569         * src/pic16/glue.c (pic16emitRegularMap): symbols with initialiser
6570         are placed in idataSymSet,
6571         * (pic16emitStaticSeg): extern symbols are added in externs,
6572         * src/pic16/ralloc.c (pic16_allocDirReg): work around to reduce bank
6573         switching when aboslute variables are placed in access bank memory
6574         * (pic16_writeUsedRegs): added call to pic16_dump_idata,
6575         * (packRegsForSupport,packRegsForAccUse,packRegsForOneuse):
6576         commented out with #if,
6577         * (pic16_packRegisters): reintroduce the check for CAST because some
6578         symbols are not correctly handled,
6579         * src/pic16/pcode.h: changed the definition of pCodeAsmDir to hold a
6580         pCodeInstruction instead of pCode,
6581         * src/pic16/pcode.c (pic16_newpCodeAsmDir): modified for the new
6582         pCodeAsmDir definition,
6583         * (pic16_pCode2str, genericPrint): when an AsmDir pcode has a NULL
6584         directive, then the argument directive is emitted without the leading
6585         tab, hack for inline labels which must be in the first column,
6586         * (compareLabel,pic16_findNextInstruction),
6587         * (pic16_findPrevInstruction): added case for PO_ASMDIR,
6588         * (insertBankSwitch): modified for the new pCodeAsmDir,
6589
6590 2004-03-01 Hans-Juergen Dorn <hans.dorn AT apl-landau.de>
6591         patch applied by Vangelis Rokas <vrokas AT otenet.gr>
6592
6593         * src/pic16/gen.c (pic16_popGet): case PO_DIR, adds the offset to
6594         instance,
6595         * (pushSide): commented out with #if,
6596         * (assignResultValue): fixed some typos in saving
6597         registers,
6598         * (genPcall): FIXED and sync'ed with genCall,
6599         * (genDataPointerGet,genDataPointerSet): using offset not leoffset
6600         * (genNearPointerGet): fixed to handle some more cases,
6601         implementation scheme via table reads,
6602         * (genConstPointerGet): modified to access code memory correct,
6603         * (genCodePointerGet,genNearPointerSet,genGenPointerSet): modified
6604         and improved to handle some cases
6605         * glue.c (printIvalType,printIvalChar,emitStaticSeg): use "DB"
6606         instead of "RETLW" for init data
6607         * src/pic16/ralloc.c (pic16_allocDirReg): warning when a symbol is
6608         not IN_DIRSPACE, work around to reduce bank switching when aboslute
6609         variables are placed in access bank memory (<0x80 and >=0xf80),
6610         * src/pic16/pcode.c: added SFRs TBLPTR, TABLAT, added opcodes TBLRD,
6611         TBLRD_POSTINC,TBLRD_POSTDEC,TBLRD_PREINC,TBLWT,TBLWT_POSTINC,
6612         TBLWT_POSTDEC,TBLWT_PREINC
6613         * Fixed initialisation of BSR, set "alias" for SSAVE to "0"
6614         * (pic16_emitDB,pic16_flushDB): New functions to generate "DB"
6615         directives
6616         * (pic16_pCodeConstString): use "DB" instead of "RETLW"
6617         * src/pic16/pcode.h: added TBLRD*,TBLWT*, added pic16_emitDB,
6618         pic16_flushDB, made pic16_newpCodeAsmDir public, added TBLPTR, TABLAT
6619         * src/pic16/ralloc.h: added IDX_BSR,IDX_TBLPTR*,IDX_TABLAT
6620
6621 2004-02-29  Borut Razem <borut.razem AT siol.net>
6622
6623         * src/Makefile.in, src/SDCCutil.c, support/Util/findme.c,
6624         support/Util/findme.h, support/Util/system.h: enhance binary relative
6625         search for lib and include by using findProgramPath()
6626
6627 2004-02-28 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
6628
6629         * src/SDCCpeeph.h,
6630         * src/SDCCpeeph.c (pcDistance),
6631         * src/port.h,
6632         * src/mcs51/ralloc.h,
6633         * src/mcs51/ralloc.c (mcs51_regWithIdx),
6634         * src/mcs51/main.h,
6635         * src/mcs51/main.c (instructionSize, asmLineNode, updateOpRW,
6636         mcs51opcodeCompare, asmLineNodeFromLineNode, getInstructionSize,
6637         mcs51operandCompare, getRegsRead, getRegsWritten): made instruction
6638         size calculation port specific, started basis for some register
6639         optimizations
6640         * src/mcs51/gen.c (genFunction, genEndFunction): added case to handle
6641         missing push/pop of r0/r1. Optimized push/pops
6642         * src/mcs51/ralloc.c (packregisters): fixed bug #727095
6643         * device/lib/_modsint.c (_modsint),
6644         * device/lib/_modslong.c (_modslong): fixed sign of result in non-asm
6645         and stack version so regression tests pass
6646
6647 2004-02-26 Bernhard Held <bernhard AT bernhardheld.de>
6648
6649         * src/Makefile.in (dep): include SLIBOBJS in dependency check
6650         * src/SDCCast.c (decorateType): catch another small optimization
6651         with '?' operator
6652         * src/SDCCsymt.c (computeType): added comments and cosmetic changes
6653         * src/SDCCval.c (valMult, valDiv, valMod, valPlus, valMinus, valShift):
6654         modified to finally use computeType() all over SDCC,
6655         see Feature Request #877103
6656         * src/SDCCval.h: cosmetic
6657         * src/SDCCicode.c (operandOperation): fixed EQ_OP bug, now same as in
6658         valCompare(); regression tested in muldiv.c
6659         * support/regression/tests/muldiv.c (testMod): mod sign follows
6660         dividend only
6661
6662 2004-02-23 Bernhard Held <bernhard AT bernhardheld.de>
6663
6664         * src/SDCCast.c (decorateType): fixed bug #902362
6665         * doc/INSTALL.txt: fixed install instructions for win32
6666
6667 2004-02-21 Bernhard Held <bernhard AT bernhardheld.de>
6668
6669         * device/include/Makefile.in (install): fixed by replacing spaces
6670         by tabs
6671         * doc/README.txt,
6672         * doc/INSTALL.txt: updated for release
6673         * doc/sdccman.lyx: added warning for --xstack being buggy
6674
6675 2004-02-20 Bernhard Held <bernhard AT bernhardheld.de>
6676
6677         * src/pic16/ralloc.c (packRegsForAccUse):  disabled functions with #if
6678         to eliminate build warnings.
6679         * src/pic16/gen.c (pic16_popGet): fixed for gcc 2.95.4
6680
6681 2004-02-20 Vangelis Rokas <vrokas AT otenet.gr>
6682            Hans-Juergen Dorn <hans.dorn AT apl-landau.de>
6683
6684         * doc/sdccman.lyx: removed PIC16 from PIC16 Port Specific Options,
6685         removed -penable-stack, added comment for stack pragma, added
6686         warning for not initializing the stack/frame registers, removed
6687         comment at interrupts section
6688
6689         Stack is made permanent, there is no ability to disable stack usage.
6690         * src/pic16/device.h,
6691         * src/pic16/device.c: removed all references to USE_STACK macro,
6692         * src/pic16/device.c (pic16_dump_section): when no elements in
6693         rlist, free rlist before return,
6694         * (pic16_dump_int_registers): NEW, internal registers are a new set
6695         of general purpose registers reused by each function,
6696         * (checkAddReg): returns 1 if registers is added to set,
6697         * (pic16_groupRegistersInSection): when a registers is of type
6698         PO_GPR_TEMP add it in pic16_int_regs and not in pic16_rel_udata,
6699         * src/pic16/device.h: memRange and Assigned Memory are deleted,
6700         SRCASECMP macro is moved here from device.c
6701         * src/pic16/genarith.c (pic16_pCodeOpType): added cases for
6702         PO_PCLATU, PO_PRODL, PO_PRODH,
6703         * (pic16_pCodeOpType, genMinus,
6704         changed compares to "a" register, with AOP_ACC,
6705         * (pic16_genPlus): fixed some bugs and indented properly,
6706         * (pic16_addSign): changed size to size+offset in the MOVWF
6707         instruction,
6708         * (pic16_genUMult8XLit_8): NEW, uses processor MULLW instruction to
6709         multiply 8-bit operand by literal, result is 8-bit,
6710         * (pic16_genUMult8X8_8): NEW, uses processor MULWF instruction to
6711         multiply 2 8-bit operand, result is 8-bit,
6712         * (pic16_genMult8X8_8): modified to call genUMult8X*_8 functions and not
6713         genUMult8X*_16,
6714         * src/pic16/gen.c: changed accUse to contain WREG only,
6715         * (pic16_emitcomment): renamed to pic16_emitpcomment,
6716         * (aopForSym): allocated dir register when IN_DIRSPACE(space) is,
6717         true, do not use immediate addressing any more unless sym is a
6718         pointer in codespace,
6719         * (aopForRemat): do not use immediate addressing when symbol not in
6720         codespace and when symbol's address is requested,
6721         * (aopOp): for-loop in if(sym->accUse) is modified for the new
6722         accUse size (= 1),
6723         * (aopGet): added case for AOP_ACC and don't return "accumulator
6724         bug" but WREG instead,
6725         * (popGetTempReg): pushes contents of temporary register in stack,
6726         * (popReleaseTempReg): pops contents of temporary register from
6727         stack. Use popGetTempReg/popReleaseTempReg in aligned pairs,
6728         * (pic16_popGet): separated case AOP_ACC to return register WREG
6729         from processor registers, AOP_PCODE not checks if pcop is PO_DIR
6730         or PO_IMMEDIATE and initializes their instance/offset appropriately,
6731         * The whole issue with aopForSym,aopForRemat,popGet) is to minimize
6732         the use of immediate pointers to certain cases only.
6733
6734         * (pic16_pushpCodeOpReg, pic16_poppCodeOpReg): use pic16_popGet2p,
6735         * (pic16_loadFromReturn, pic16_storeForReturn: NEW,
6736         * (assignResultValue, genCall, genRet): modified to use the new
6737         function return value scheme with WREG,PRODL,PRODH,FSR0L and FSR0,
6738         genPcall is still broken,
6739         * (genFunction): added code to create 'A' type pBlocks when
6740         interrupt functions are generated, code not extensively tested yet,
6741         ISRs push WREG,STATUS,BSR,PRODL,PRODH,FSR0L,FSR0H registers on stack,
6742         * (genEndFunction): modified so ISRs pop stored registers from stack,
6743         * (genMultOneByte): cleanup,
6744         * (AccRsh): added flag andmask, to and result with appropriate mask,
6745         * (genUnpackBits,genPackBits): fixed and can handle bit fields,
6746         * (genDataPointerGet): fixed and reenabled its use,
6747         * (genNearDataPointerGet): bugs fixed,
6748         * (genDataPointerSet): bugs fixed,
6749         * src/pic16/genutils.c: added functions pic16_DumpValue,pic16_DumpAop,
6750         pic16_DumpSymbol, pic16_DumpOp,
6751         * src/pic16/genutils.h: function prototypes for the above functions,
6752         * src/pic16/glue.c: new flags initsfpnt, to initialize stack/frame
6753         pointers,
6754         * (pic16emitRegularMap): many many many improvements, but needs a
6755         major cleanup,
6756         * src/pic16/main.c: enable_stack in pic16_options is removed,
6757         * (_pic16_parseOptions): removed command line options -penable-stack,
6758         * (_process_pragma): emit stack symbol only when stack pragma is
6759         processed,
6760         * src/pic16/pcode.c: pic16_pc_fsr0 is removed, all operations are
6761         redirected to FSR0L/FSR0H pair,
6762         * (pic16_get_op, pic16_get_op2): modifications and improvements,
6763         * (pic16_getRegFromInstruction, pic16_getRegFromInstruction2): added
6764         cases PO_PRODL,PO_PRODH, pic16_getRegFromInstruction2 returns sane
6765         for immediates,
6766         * (insertBankSwitch): modified to handle cases like: (alfa + 1)
6767         * (dumpPicOptype): NEW,
6768         * src/pic16/pcode.h: added PO_PCLATU,PO_PRODL,PO_PRODH in enum,
6769         * src/pic16/pcoderegs.c (pCodeRegMapLiveRangesInFlow): fixed bug
6770         with movff instruction,
6771         * src/pic16/ralloc.c: renamed typeRegWithIdx to pic16_typeRegWithIdx,
6772         added pic16_int_regs, some packRegsFor* functions are commented out,
6773         because produce errors,
6774         * src/pic16/NOTES: minor modifications
6775
6776 2004-02-18  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
6777
6778         * as/mcs51/aslink.h, as/mcs51/lkarea.c, as/mcs51/lkdata.c, as/mcs51/lkmain.c,
6779         as/mcs51/lkmem.c, src/SDCCglob.h, src/SDCCmain.c: added options --stack-size and
6780         --pack-iram.
6781         * doc/sdccman.lyx: described options --stack-size and --pack-iram.
6782         * as/mcs51/lkaomf51.c: fixed bug #895763
6783
6784 2004-02-17 Bernhard Held <bernhard AT bernhardheld.de>
6785
6786         * device/include/c8051f320.h: added. Contributed by Maarten Brock.
6787
6788 2004-02-17 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
6789
6790         * doc/sdccman.lyx: added details about the HC08 storage classes and
6791         interrupts, fixed the register usage info for z80 & gbz80
6792
6793 2004-02-17 Vangelis Rokas <vrokas AT otenet.gr>
6794
6795         * doc/sdccman.lyx: added more pic16 port documentation
6796         * device/include/pic16/: added header pic18fregs.h
6797
6798 2004-02-16 Bernhard Held <bernhard AT bernhardheld.de>
6799
6800         * doc/sdccman.lyx: added Vangelis' contribution
6801
6802 2004-02-16 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
6803
6804         * src/SDCClrange.c (rlivePoint): live range of SEND operand should
6805         extend to the next CALL or PCALL, not just to the next CALL.
6806
6807 2004-02-16 Vangelis Rokas <vrokas AT otenet.gr>
6808
6809         * src/pic16/gen.c (genInline): fixed bug #896482 with inline assembly
6810
6811 2004-02-15 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
6812
6813         * src/mcs51/ralloc.c (packRegsForAssign, reassignAliasedSym): fixed
6814         bug #895752 and a better fix for bug #716790
6815
6816 2004-02-15 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
6817
6818         * src/SDCCsymt.c (processFuncArgs): fixed bug #896796
6819
6820 2004-02-14 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
6821
6822         * doc/sdccman.lyx: minor changes, minor changed
6823
6824 2004-02-13 Bernhard Held <bernhard AT bernhardheld.de>
6825
6826         * src/SDCCicode.c (usualBinaryConversions): removed pic16 from ports
6827         which can't handle SDCC_NEWONEBYTEOPS,
6828         (geniCodeMultiply): removed conversion from mult to shift for pic14
6829         and pic16
6830
6831 2004-02-12 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
6832
6833         * src/hc08/gen.h,
6834         * src/hc08/gen.c (storeRegToAop, aopOp, aopAdrStr, accopWithAop,
6835         rmwWithAop): Ported my 2003-10-02 fix for bug #663539 to the hc08,
6836         thus fixing bug #895406
6837
6838 2004-02-11 Bernhard Held <bernhard AT bernhardheld.de>
6839
6840         * device/lib/_modsint.c,
6841         * device/lib/_modslong.c: sign follows divisor only
6842         * src/hc08/gen.c (genMultOneByte): if result size is 1,
6843         signs or signedness can be ignored
6844         * src/SDCCast.c (addCast): cosmetic - added lineno to CAST
6845         * src/SDCCast.c (resultTypePropagate): added even more ops: +, - and *,
6846         added optimization for IFX,
6847         (decorateType): Mult/Div/ModOneByte ops can handle all kind of signed
6848         arguments;
6849         reenabled optimization for IFX, which was removed on 2004-01-11
6850         * src/SDCCast.h: added return type IFX
6851         * src/SDCCicode.c: Mult/Div/ModOneByte ops can handle all kind of signed
6852         arguments with 8 or 16 bit results; pic14 and pic16 ports use old
6853         promotion behaviour; env. var. SDCC_NEWONEBYTEOPS selects the new,
6854         SDCC_OLDONEBYTEOPS selects the old behaviour
6855         * src/SDCCsymt.c (computeType): type2 can be NULL (for LEFT_OP);
6856         changed again and commented promotion rule
6857         * src/SDCCval.c (valDiv): promotion no longer necessary
6858         * src/ds390/gen.c (genMultOneByte) (genDivOneByte) (genModOneByte),
6859         * src/mcs51/gen.c (genMultOneByte) (genDivOneByte) (genModOneByte):
6860         rewritten
6861         * support/regression/tests/onebyte.c: added
6862
6863 2004-02-11 Vangelis Rokas <vrokas AT otenet.gr>
6864
6865         * gen.c (genInline): reverted to old code for assemnling inline
6866         code because of bug reported James Chadd
6867
6868 2004-02-10 Vangelis Rokas <vrokas AT otenet.gr>
6869
6870         * ralloc.h: missing declarations from previous patch,
6871         seems that patch for ralloc.h was never applied, fixed
6872
6873 2004-02-10 Hans-Juergen Dorn <hans.dorn AT apl-landau.de>
6874            patch committed by Vangelis Rokas <vrokas AT otenet.gr>
6875
6876         * pcode.c,
6877         * pcode.h,
6878         * ralloc.h: added FSR0L, FSR0H and other missing PIC16 SFR's for
6879         indirect addressing. Marked FSR0 as deprecated
6880         * gen.c (pointerCode): commented out, not needed now
6881         (pic16_popGet2p): new MOVFF helper function
6882         (genGenPointerGet),
6883         (genGenPointerSet): reimplemented with MOVFF and POSTINC0
6884         (shiftRLong): removed duplicate debugging info
6885
6886 2004-02-10 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
6887
6888         * src/ds390/gen.c (genNearPointerGet),
6889         * src/mcs51/gen.c (genNearPointerGet): allow the genDataPointerGet()
6890         optimization with bits, but not bitfields.
6891         * src/ds390/ralloc.c (packRegisters),
6892         * src/mcs51/ralloc.c (packRegisters): fixed bug #884453 & #880832
6893
6894 2004-02-09 Bernhard Held <bernhard AT bernhardheld.de>
6895
6896         * src/SDCCcse.c (algebraicOpts): copy operands before modification
6897
6898 2004-02-09 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
6899
6900         * src/SDCCsymt.h,
6901         * src/SDCCicode.c (operandFromSymbol),
6902         * src/mcs51/ralloc.c (verifyRegsAssigned, serialRegAssign),
6903         * src/ds390/ralloc.c (verifyRegsAssigned, serialRegAssign),
6904         * src/z80/ralloc.c (verifyRegsAssigned, serialRegAssign),
6905         * src/hc08/ralloc.c (verifyRegsAssigned, serialRegAssign),
6906         * src/pic/ralloc.c (verifyRegsAssigned, serialRegAssign),
6907         * src/pic16/ralloc.c (verifyRegsAssigned, serialRegAssign): fixed
6908         bug #892038
6909         * src/SDCCast.c (createIvalStruct, createIvalArray, gatherAutoInit),
6910         * src/SDCCglue.c (emitRegularMap, printIvalStruct, printIvalArray,
6911         printIvalCharPtr, printIvalPtr, printIval, emitStaticSeg, emitOverlay)
6912         * src/SDCCsymt.c (newSymbol),
6913         * src/SDCC.y (struct_or_union_specifier, enum_specifier,
6914         enumerator_list),
6915         * src/SDCCval.h,
6916         * src/SDCCval.c (newiList): fixed bug #885705
6917
6918 2004-02-08  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
6919
6920         * doc/sdccman.lyx: added section 3.1.4: sdcclib.
6921         * as/mcs51/lkmem.c: report the size of the stack in .mem file.
6922
6923 2004-02-08 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
6924
6925         * device/include/c8051f120.h,
6926         * device/include/c8051f300.h,
6927         * device/include/c8051f310.h: added/updated header files for Silicon
6928         Laboratories (formerly Cygnal) CPUs. Contributed by Maarten Brock.
6929         * doc/sdccman.lyx: minor changes, recommended diff -Naur and diff -u
6930         in new section Submitting patches
6931
6932 2004-02-08 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
6933
6934         * src/mcs51/gen.c (genNearPointerGet, genPagedPointerGet,
6935         genFarPointerGet, genCodePointerGet, genGenPointerGet,
6936         genNearPointerSet, genPagedPointerSet, genFarPointerSet,
6937         genGenPointerSet),
6938         * src/ds390/gen.c (genNearPointerGet, genPagedPointerGet,
6939         genFarPointerGet, genCodePointerGet, genGenPointerGet,
6940         genNearPointerSet, genPagedPointerSet, genFarPointerSet,
6941         genGenPointerSet),
6942         * src/pic16/gen.c (genNearPointerGet, genPagedPointerGet,
6943         genFarPointerGet, genCodePointerGet, genGenPointerGet,
6944         genNearPointerSet, genPagedPointerSet, genFarPointerSet,
6945         genGenPointerSet),
6946         * src/pic/gen.c (genNearPointerGet, genPagedPointerGet,
6947         genFarPointerGet, genCodePointerGet, genGenPointerGet,
6948         genNearPointerSet, genPagedPointerSet, genFarPointerSet,
6949         genGenPointerSet): fixed bug #892400
6950         * src/pic16/gen.c (genSkipz, AccRol): disabled functions with #if 0
6951         to eliminate build warnings.
6952         * src/SDCCast.c (processParms),
6953         * src/SDCC.y (function_declarator2, declarator2_function_attributes):
6954         fixed bug 751859
6955         * support/valdiag/valdiag.py: added GCC to the list of defines active
6956         when compiling with gcc
6957
6958 2004-02-07 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
6959
6960         * support/Util/SDCCerr.h,
6961         * support/Util/SDCCerr.c,
6962         * src/SDCCast.c (decorateType, sizeofOp): complain when sizeof is used
6963         with an incomplete type (fixed bug #883734)
6964         * src/SDCCicode.c (geniCodeCast): fixed bug #890510
6965
6966 2004-02-07 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
6967
6968         * src/pic16/gen.c (genCmpEq, shiftRLong): fixed declarations
6969
6970 2004-02-06 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
6971
6972         * src/SDCCast.c (decorateType),
6973         * src/SDCCicode.c (geniCodeParms, geniCodeCall): fixed bugs in my ANSI
6974         function pointer implementation
6975         * support/regression/tests/funptrs.c: added tests to verify both forms
6976         of function pointers work correctly. Added tests to verify parameters
6977         are passed in the correct order.
6978
6979 2004-02-06  Vangelis Rokas <vrokas AT otenet.gr>
6980
6981         * device.c (regCompare): registers are sorted by ascending
6982         address and increasing size,
6983         * main.c (_pic16_finaliseOptions): removed the declaration
6984         of compiler macro MCU. Now a macro of the format pic18fxxxx
6985         will be defined from the command line
6986
6987 2004-02-06  Hans-Juergen Dorn <hans.dorn AT apl-landau.de>
6988             patch committed by Vangelis Rokas <vrokas AT otenet.gr>
6989
6990         * pcode.c (pic16initMnemonics): fixed typo in assignment to PCOP_RLNCF
6991         PCOP_RLCF was overwritten!
6992         * gen.c (genSkip): commented out calls to pic16_emitcode,
6993         * (genCmpEQ): fixed "long" compares, only high word did get compared,
6994         * (genlshTwo),
6995         * (genRRC): added debugging info,
6996         * (shiftL2Left2Result): Fixed bug, if offr > offl. Result got
6997         overwritten while shifting,
6998         * (shiftR2Left2Result): Fixed bug, if offr < offl. Result got
6999         overwritten while shifting,
7000         * (AccLsh),
7001         * (AccRsh),
7002         * (shiftLLeftOrResult),
7003         * (shiftRLeftOrResult),
7004         * (shiftRLong),
7005         * (shiftLLong): Implemented with pic16_emitpcode
7006         * (genlshFour): Replaced pic16_aopPut with pic16_emitpcode,
7007         * (genLeftShift): Fixed bug, operand for shift by variable always
7008         was "and"ed with 0x0f,
7009         * (genLeftShiftLiteral),
7010         * (genrshTwo),
7011         * (genRightShiftLiteral): added debugging info,
7012         * (genrshFour): added comment,
7013         * (genRightShift): determined signedness from operand "left"
7014         instead of "result"
7015
7016 2004-02-04 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
7017
7018         * src/SDCCicode.c (geniCodeParms),
7019         * src/SDCCast.c (decorateType, processParms): support for ANSI-style
7020         function pointers, fixed function pointer bugs #861242 and #861896
7021
7022 2004-01-31 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
7023
7024         * device/include/c8051f000.h,
7025         * device/include/c8051f120.h,
7026         * device/include/c8051f300.h: added header files for Silicon
7027         Laboratories (formerly Cygnal) CPUs. Contributed by Maarten Brock.
7028
7029 2004-01-31 Bernhard Held <bernhard AT bernhardheld.de>
7030
7031         * src/SDCCast.c (processParams): added new type flow and restructured
7032         (gatherAutoInit): added new type flow
7033         (addCast): cosmetic changes
7034         (getLeftResultType): added new type flow for array indices, patch
7035         provided by Stas, see FR #877103
7036         (decorateType): SDCC_NEWTYPEFLOW removed, new type flow is now standard;
7037         array index patch by Stas
7038         * src/SDCCast.h: added prototype getResultTypeFromType()
7039         * src/SDCCval.h,
7040         * src/SDCCval.c (resolveIvalSym) (resolveIvalSym),
7041         * src/pic/glue.c (pic14emitStaticSeg),
7042         * src/pic16/glue.c (pic16emitStaticSeg),
7043         * src/SDCCglue.c (emitRegularMap) (emitStaticSeg): added new type flow
7044         for initialization of symbols
7045         * src/SDCCicode.c (geniCodeArray): removed warning W_ARRAY_BOUND
7046         * support/Util/SDCCerr.h:
7047         * support/Util/SDCCerr.c: replaced W_ARRAY_BOUND by W_IDX_OUT_OF_BOUNDS
7048         * .version: bumped version number to 2.3.8
7049         * device/include/Makefile.in (install),
7050         * doc/Makefile (install): changed to 'rm `find ...`' construct to
7051         avoid warnings
7052
7053 2004-01-30 Bernhard Held <bernhard AT bernhardheld.de>
7054
7055         * support/regression/tests/libmullong.c: fixed for 64 bit hosts
7056         Slade Rich fixed an optimization bug
7057         * src/pic/pcodepeep.c,
7058         * src/pic/pcoderegs.c
7059         * doc/Makefile (install): added test for directory
7060
7061 2004-01-30 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
7062
7063         * src/mcs51/ralloc.c (getRegPtr, getRegGpr),
7064         * src/ds390/ralloc.c (getRegPtr, getRegGpr),
7065         * src/pic/ralloc.c (getRegPtr, getRegGpr),
7066         * src/pic16/ralloc.c (getRegPtr, getRegGpr),
7067         * src/z80/ralloc.c (getRegGpr): fixed bug #883361
7068         * as/mcs51/asexpr.c (term),
7069         * as/hc08/asexpr.c (term): fixed bug #887146
7070
7071 2004-01-29 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
7072
7073         * src/z80/gen.c (genMult): handle single byte result product
7074         * src/SDCCopt.c (killDeadCode): never convert ADDRESS_OF iCode to
7075         DUMMY_READ_VOLATILE (fixed bug #886367)
7076
7077 2004-01-27 Bernhard Held <bernhard AT bernhardheld.de>
7078
7079         * support/regression/tests/libmullong.c: fixed logic, on little endian
7080         hosts we ended without a mullong_wrapper()
7081
7082 2004-01-27 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
7083
7084         * ChangeLog: changed "@" to " AT " in hopes of reducing spam and
7085         virus/worm forged address usage.
7086
7087 2004-01-27 Bernhard Held <bernhard AT bernhardheld.de>
7088
7089         Fixed promotion, it should be done on AST level:
7090         * src/SDCCast.c (addCast): added promotion to int
7091         (decorateType): updated call to upCast()
7092         * src/SDCCicode.c (geniCodeLeftShift): removed call to
7093         usualUnaryConversions()
7094
7095 2004-01-26  Michael Hope  <michaelh AT juju.net.nz>
7096
7097         * support/regression/tests/literalop.c (mulWrapper): Added a
7098         wrapper to remove integer overflow warnings.
7099
7100         * support/regression/tests/float_trans.c: Made work on host.
7101
7102         * support/regression/ports/ucz80/spec.mk (UCZ80): Made detect the
7103         location of sz80.
7104
7105         * support/regression/generate-cases.py (main): Changed from inline
7106         to a main method.
7107
7108         * doc/Makefile (install): Changed to depth first to get rid of
7109         missing directory install warning.
7110
7111         * as/Makefile (install-doc): Made work on Mac.
7112
7113 2004-01-25 Bernhard Held <bernhard AT bernhardheld.de>
7114
7115         * src/SDCCast.c: added an additional type flow in decorateType() of
7116         opposite direction, see feature request #860006; it's enabled at runtime
7117         by setting the environment variable SDCC_NEWTYPEFLOW
7118         * src/SDCCast.h: changed prototype of decorateType()
7119         * src/SDCCglue.c (emitRegularMap): updated call of decorateType()
7120         * src/SDCCicode.c (geniCodeDivision) (geniCodeModulus): promotion from
7121         'char' to 'int' can be omitted, if both operands are 'unsigned char';
7122         see feature request #877103
7123         * src/SDCCval.c: updated call of decorateType()
7124         (valBitwise): fixed bug #882876
7125         (valMinus): added promotion
7126         (valLogicAndOr): result is unsigned
7127         (cheapestVal) (constVal): literals from 0...255 are 'unsigned char' now
7128         * src/SDCCsymt.c (computeType),
7129         * src/mcs51/gen.c (genCmpGt) (genCmpLt): literal 'unsigned char'
7130         must not cause an unsigned operation
7131         * src/pic/glue (pic14emitRegularMap),
7132         * src/pic16/glue.c (pic16emitRegularMap): updated call of decorateType()
7133
7134 2004-01-23 Bernhard Held <bernhard AT bernhardheld.de>
7135
7136         * src/pic/pcode.c (PCodeID): commented out left over debug code
7137
7138 2004-01-20 Bernhard Held <bernhard AT bernhardheld.de>
7139
7140         * support/valdiag/tests/overflow.c: added shift tests
7141         * src/pic/device.c,
7142         * src/pic/gen.c,
7143         * src/pic/gen.h,
7144         * src/pic/glue.c,
7145         * src/pic/main.c,
7146         * src/pic/pcode.c,
7147         * src/pic/pcode.h,
7148         * src/pic/pcodepeep.c,
7149         * src/pic/pcoderegs.c,
7150         * src/pic/ralloc.c,
7151         * src/pic/ralloc.h: applied patch from Slade Rich;
7152         added support for multiple code pages and multiple RAM banks on the
7153         PIC 14 port. The ASM files now no longer simply assume all the
7154         code / RAM are in the same page / bank. This means the linker can
7155         safely allocate code/RAM of separate ASM files to different pages/banks.
7156         * doc/sdccman.lyx: added Slade's tips
7157         * src/mcs51/peeph.def: fixed bug #880768
7158
7159 2004-01-20 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
7160
7161         * src/hc08/ralloc.c (rematStr): fixed bug #879282
7162         * src/SDCCast.c (decorateType): fixed bug #880197
7163
7164 2004-01-20  Michael Hope  <michaelh AT juju.net.nz>
7165
7166         * sim/ucsim/gui.src/serio.src/main.cc: Fixed unconditional use of
7167         getopt.h.
7168
7169         * debugger/mcs51/cmd.c (getValBasic): Changed strtof to strtod as
7170         strtof is not part of C89 and isn't included with Mac OS X.
7171
7172 2004-01-20 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
7173
7174         * src/hc08/gen.c (genPlusIncr, genUminus, genMinusDec, genCmp,
7175         shiftL2Left2Result): fixed bug #879326
7176         (genAnd, genOr, genXor): fixed bug when result was of type AOP_CRY
7177         (genMultOneByte): fixed bug in signed vs unsigned multiplication
7178         * sim/ucsim/hc08.src/inst.cc (inst_clr): added missing effective
7179         address fetch for clr instruction
7180         * device/lib/hc08/_mulint.c: created optimized assembly version
7181         * src/SDCCdflow.c (computeDataFlow): fixed bug #878209
7182
7183 2004-01-19 Bernhard Held <bernhard AT bernhardheld.de>
7184
7185         * src/SDCCicode.c (geniCodeArray): applied patch from Stas Sergeev
7186         proposed in FR #877103
7187
7188 2004-01-18 Bernhard Held <bernhard AT bernhardheld.de>
7189
7190         * src/SDCCval.c (cheapestVal): added missing checks
7191         * src/SDCCicode.c (usualBinaryConversions): fixed condition
7192         * src/SDCCicode.c (geniCodeAdd): fixed part of bug #877103
7193
7194 2004-01-16 Klaus Flittner <klaus_flittner AT gmx.de>
7195
7196         * src/ds390/gen.c (aopOp3): fixed the assignment of different dptrs to
7197         equal operands
7198
7199 2004-01-16 Vangelis Rokas <vrokas AT otenet.gr>
7200
7201         * src/SDCCmain.c (linkEdit): variable $3 of the linker command is
7202         loaded with the linker search paths (-L arguments) and the libraries
7203         to be linked with the current source (-l arguments). Changes
7204         currently will affect only the pic16 port.
7205         * src/pic16/main.c (_pic16_finaliseOptions): add to the linker
7206         include path the port specific paths and port specific libraries,
7207         * gplink command now contains the $3 argument,
7208         * src/pic16/device.h,
7209         * src/pic16/device.c,: structure PIC_device is made public and
7210         renamed to PIC16_device, the same for variable Pics which is renamed
7211         to Pics16. Updated all references to them.
7212         * src/pic16/glue.c (pic16glue): corrected bug with code
7213         initialization which bypassed the variable initializations block.
7214
7215         * device/lib/pic16/Makefile.rules: removed --penable-stack from
7216         COMPILE_FLAGS and added the --nostdinc option
7217
7218 2004-01-15 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
7219
7220         * device/include/mc68hc908jb8.h: Register defs for another member
7221         of the hc08 family. Contributed by Bjorn Bringert - thanks!
7222
7223 2004-01-14 Vangelis Rokas <vrokas AT otenet.gr>
7224
7225         Documenting changes from previous commits.
7226         * configure.in (version 1.56),
7227         * configure: initially I've added AC_CONFIG_SUBDIRS(device/lib/pic16)
7228         when generating output files to configure the pic16 library,
7229         but now I've commented it out, since gputils aren't installed in the
7230         SF compile farm, so library won't compile
7231
7232         * device/lib/Makefile.in (version 1.56): initially I've added in
7233         target 'all' the prerequestive 'model-pic16' so it compiled the
7234         pic16 library, but now I've commented it out for the same reasons
7235         above,
7236         * added targets 'model-pic16' and 'objects-pic16' to compile the
7237         library
7238         * added target 'port-specific-objects-pic16' to handle the
7239         generated libraries and copy them into the build/ directory
7240         * added target 'clean-intermediate-pic16' to clean intermediate
7241         files into pic16 directory
7242         * in target 'installdirs' added line to create directory pic16 in
7243         the installation path
7244
7245         * device/include/Makefile.in (version 1.11): in target 'install'
7246         added lines to copy all header files to installation path,
7247         * in target 'installdirs' added line create directory for pic16
7248         headers in the installation path
7249
7250 2004-01-13 Klaus Flittner <klaus_flittner AT gmx.de>
7251
7252         * src/ds390/gen.c (genCall): fixed a double use of acc and b after
7253          a function call
7254
7255 2004-01-13 Bernhard Held <bernhard AT bernhardheld.de>
7256
7257         * configure,
7258         * device/lib/configure.in,
7259         * device/lib/configure: fixed for autoconf 2.57
7260
7261 2004-01-13 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
7262
7263         * src/z80/main.c (_parseOptions): fixed the portmode= command line
7264         option so that it actually works. Made it specific to the z80, since
7265         the gbz80 doesn't have these kinds of I/O ports.
7266
7267 2004-01-13 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
7268
7269         * device/include/z180.h,
7270         * device/lib/_memcpy.c,
7271         * device/lib/_memmove.c,
7272         * device/lib/_mulint.c,
7273         * device/lib/ser_ir.c,
7274         * device/lib/ser_ir_cts_rts.c,
7275         * device/lib/_strcmp.c,
7276         * device/lib/_strtok.c: fixed pragmas to non-deprecated form
7277         * src/z80/main.c (_process_pragma): add support for pragmas bank and
7278         portmode; added deprecation warning for bank= and protmode= forms.
7279         Also, guard against buffer overflow.
7280         * src/z80/gen.c (aopGet): generate better code for sfr banked read
7281
7282 2004-01-13 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
7283
7284         * src/hc08/main.c (_hc08_genAssemblerPreamble): fixed bug #875487. Also
7285         changed interrupt vector table generation to only emit declared vectors.
7286         * device/include/Makefile.in: added missing backslash
7287         * device/lib/pic16/Makefile.rules: add $(MODELFLAGS) to $(CFLAGS)
7288
7289 2004-01-13 Vangelis Rokas <vrokas AT otenet.gr>
7290
7291         Mainly changes to support compilation of the device libraries
7292         * src/pic16/device.c: stack is allocated via symbol and not
7293         via literal number. The symbol is placed in the corresponding
7294         position of the data ram
7295         * (pic16_dump_section): relocatable and absolute uninitialized
7296         data are now emitted in sorted order to reduce section naming,
7297         * src/pic16/ralloc.c (newReg): fixed bug with SFR's that
7298         weren't marked as being in the access bank,
7299
7300 2004-01-13 Vangelis Rokas <vrokas AT otenet.gr>
7301
7302         Added portion of GNU PIC Library under the directory
7303         device/include/pic16 and device/lib/pic16. These files
7304         contain the declarations of SFRs for the PIC18Fxx2 devices.
7305         The directory is initialized via configure from toplevel.
7306
7307 2004-01-12 Klaus Flittner <klaus_flittner AT gmx.de>
7308
7309         * src/ds390/gen.c (operandsEqu): fixed a little typo, that prevented
7310         the spilllocations to be compared correctly
7311
7312 2004-01-12 Bernhard Held <bernhard AT bernhardheld.de>
7313
7314         * src/SDCCast.c (decorateType): fixed bug introduced today
7315
7316 2004-01-12  Borut Razem <borut.razem AT siol.net>
7317
7318         * src/SDCC.lex, support/Util/SDCCerr.h, support/Util/SDCCerr.c,
7319         doc/sdccman.lyx: upper case pragmas are deprecated
7320
7321 2004-01-12 Bernhard Held <bernhard AT bernhardheld.de>
7322
7323         * src/SDCCast.c (decorateType): replacing 'ul > 0' by  '!ul' results
7324         in simpler and even better code
7325
7326 2004-01-11 Bernhard Held <bernhard AT bernhardheld.de>
7327
7328         * src/SDCCicode.c (operandOperation): fixed bug #874819
7329         * src/SDCCast.c (decorateType): fixed
7330         char foo (unsigned long ul) { return ul > 0; }
7331
7332 2004-01-11 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
7333
7334         * doc/sdccman.lyx: Moved and added some sections, small changes
7335         all over. Telling LaTeX to be less strict with word spacing
7336         to better keep the right margin. Changed some notes about
7337         maintainance of the ports in section 3.2.1 - is it OK like this?
7338
7339 2004-01-11 Vangelis Rokas <vrokas AT otenet.gr>
7340
7341         SDCC source changes:
7342         * src/SDCCopt.c (cntToFcall, cnvToFloatCast, cnvFromFloatCast,
7343         convilong): modified to inform the pic16 port that builtin functions
7344         are external
7345
7346         PIC16 PORT specific changes:
7347         * src/pic16/device.c pic16_dump_equates() added,
7348         processor registers declared internally by the port are emitted in
7349         the translation as equates,
7350         * src/pic16/gen.c: inline code is passed unprocessed to the
7351         translation,
7352         * (pic16_popGetLit2): fnuction modified to take second operand as
7353         pCodeOp pointer and not as literal,
7354         * (popRegFromIdx): prefixed with pic16_,
7355         * (pic16_popCombine2): modified to receive already allocated pCode
7356         operands,
7357         * (pic16_pushpCodeOpReg, pic16_poppCodeOpReg): added
7358         * (genFunction): initializes local stack frame and pushes on stack
7359         all the registers used by this function,
7360         * (genEndFunction): restores all registers from stack and restores
7361         stack frame,
7362         * src/pic16/glue.c (pic16emitRegularMap): various changes and
7363         improvements,
7364         * (pic16glue): changed the program startup sequence,
7365         * added new dbName code 'A' for functions placed in absolute section
7366         * src/pic16/main.c: added function attribute _naked,
7367         * added pragma 'code' to place a fnuction at an absolute address,
7368         * added command line arguments --debug-ralloc and --pcode-verbose,
7369         * (_pic16_finiliseOptions): options.all_callee_saves is set by default
7370         * src/pic16/pcode.c (pic16_pBlockConvert2Absolute) added,
7371         * (pic16_newpCodeOpLit2): modified to take the second operand as
7372         pCodeOp pointer,
7373         * (pic16_printpBlock): modified to emit each function in a separate
7374         section,
7375         * (pic16_get_op): modified to use the gpasm modifiers LOW,HIGH and
7376         UPPER for immediate operands,
7377         * src/pic16/pcodepeeph.c: added peephole support for the LFSR
7378         instruction,
7379         * src/pic16/peeph.def: all peepholes with movff are commented out,
7380         because there is a problem in the pcode peep optimizer,
7381         * src/pic16/ralloc.c: the register allocator can now reuse local
7382         function symbols for another function. This saves register usage.
7383         * src/pic16/ralloc.h: added flag isLocal in structure regs,
7384
7385         Added file src/pic16/NOTES with information about program writing on
7386         the current port version.
7387
7388 2004-01-11 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
7389
7390         * src/mcs51/peephole.def: added peepholes 177.c,d (redundant moves)
7391         and peephole 252 (array access)
7392
7393 2004-01-09  Borut Razem <borut.razem AT siol.net>
7394
7395         * src/SDCCmain.c : fixed #872250: -l command line defined library
7396           files are scanned before standard library files
7397
7398 2004-01-10 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
7399
7400         * src/SDCCast.c (decorateType): fixed bug #874046
7401
7402 2004-01-09  Borut Razem <borut.razem AT siol.net>
7403
7404         * support/scripts/sdcc.nsi: remove previous installation
7405
7406 2004-01-09 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
7407
7408         * src/SDCCglue.c (createInterruptVect): don't append 7(5) padding
7409         bytes for last interrupt vector (mcs51)
7410         * sdcc.spec: fixed typo
7411
7412 2004-01-09 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
7413
7414         * src/mcs51/gen.c (genFunction, genEndFunction, genReceive, getTempRegs,
7415         gen51Code): more efficient parameter receive for --model-large
7416         ("bug" #845294)
7417
7418 2004-01-09 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
7419
7420         * src/ds390/main.c,
7421         * src/z80/main.c: added missed needLinkerScript flags (more than
7422         one port structure defined in these file)
7423         * src/ds390/gen.c (aopForSym, aopOp, operandsEqu, aopOp3): fixed
7424         bug #795325
7425
7426 2004-01-08 Vangelis Rokas <vrokas AT otenet.gr>
7427
7428         * src/SDCCmain.c: removed various references to DEFAULT_PORT
7429         * src/port.h: added flag needLinkerScript in port->linker
7430         structure to inform whether to create a .lnk file or not,
7431         * src/avr/main.c,
7432         * src/ds390/main.c,
7433         * src/hc08/main.c,
7434         * src/mcs51/main.c,
7435         * src/pic/main.c,
7436         * src/pic16/main.c,
7437         * src/xa51/main.c,
7438         * src/z80/main.c: changed appropriately to configure
7439         needLinkerScript flag
7440         * src/pic/gen.c,
7441         * src/pic16/gen.c (genAddrOf): fixed bug #863624
7442         * src/pic/glue.c: added variable udata_section_name to
7443         override default uninitialized data segment definition for
7444         devices only with SHAREBANK memory (reported from Erik Epetrich)
7445         * (pic14emitOverlay): modified to emit a commented overlay segment
7446         directive when no overlay data exist
7447         * (picglue): modified to emit uninitialized data segment
7448         according to udata_section_name
7449         * src/pic/main.c (_pic14_parseOptions): added command line
7450         options --udata-section-name=[name] to override default
7451         udata definition name
7452         * modified _linkCmd and _asmCmd to include compiler passed
7453         arguments via -W option
7454         * src/pic16/main.c: added $l in _asmCmd, changed extension for
7455         object file from '.rel' to '.o' in port->linker structure,
7456         changed size of fptr from 2 to 3 in port structure
7457
7458 2004-01-07  Borut Razem <borut.razem AT siol.net>
7459
7460         * support/scripts/sdcc.nsi: update PATH
7461         * support/scripts/sdcc.ico: craeted
7462
7463 2004-01-07 Bernhard Held <bernhard AT bernhardheld.de>
7464
7465         * device/include/Makefile.in: fix install
7466         * doc/Makefile: fix install
7467
7468 2004-01-07 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
7469
7470         * src/SDCCsymt.c (processFuncArgs): fixed superflous allocation noted
7471         in bug #860505
7472         * src/SDCCmem.c (printAllocInfoSeg, printAllocInfo): minor changes to
7473         how the function variable allocation summary is displayed; also
7474         include information about variables allocated to the overlay
7475         segment
7476
7477 2004-01-06  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
7478
7479         * as/mcs51/lkmain.c: Help about -Y option
7480         * as/mcs51/lkarea.c: Fixed gcc warnings
7481
7482 2004-01-06 Bernhard Held <bernhard AT bernhardheld.de>
7483
7484         * src/SDCCval.c (valShift): changed from 16 to 32 bit shift count,
7485         fixed warning
7486         * support/valdiag/tests/overflow.c: added
7487         * src/SDCCast.c (decorateType),
7488         * src/SDCCicode.c (geniCodeLeftShift): added promotion to int for
7489         LEFT_OP (left shift)
7490
7491 2004-01-06  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
7492
7493         * as/mcs51/lkmain.c: stack must be after data when option -Y is not used
7494         (default behaviour).
7495
7496 2004-01-06 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
7497
7498         A python script to validate compiler diagnostic messages. It can be
7499         used to verify that sdcc complains about bad c source code and
7500         gives a good location of the error.
7501         * support/valdiag/Makefile,
7502         * support/valdiag/valdiag.py,
7503         * support/valdiag/tests/*
7504
7505 2004-01-06 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
7506
7507         * src/SDCC.y (enum_specifier, enumerator_list, opt_assign_expr),
7508         * src/SDCCsymt.c (newEnumType),
7509         * src/SDCCsymt.h
7510         * support/Util/SDCCerr.c,
7511         * support/Util/SDCCerr.h: fixed bug #871258 and some other unreported
7512         enum related bugs.
7513         * support/regression/tests/enum.c: added test for enum values that
7514         require at least 2 bytes of storage.
7515
7516 2004-01-06 Vangelis Rokas <vrokas AT otenet.gr>
7517
7518         * src/common.h: added ifndef/define/endif macros
7519         around the header file.
7520         Bug reported from Jesus Calvino-Fraga
7521
7522 2004-01-06 Bernhard Held <bernhard AT bernhardheld.de>
7523
7524         * sdcc.spec: updated
7525         * device/include/Makefile.in: don't install CVS directories
7526         * device/lib/Makefile.in: added removal of CVS directories after install
7527         * doc/Makefile: fixed install, added local_icons
7528         * sim/ucsim/gui.src/Makefile.in: fixed an old typo
7529         * src/mcs51/gen.c (genRightShift): fixed bug #870788
7530         * src/ds390/gen.c (genRightShift): fixed bug #870788
7531         * src/SDCCast.c (decorateType): fixed bug #870781
7532
7533 2004-01-06 Vangelis Rokas <vrokas AT otenet.gr>
7534
7535         PIC16 port related changes:
7536         * device.c: removed pic16_finalMapping and pic16_finalMappingSize,
7537         added variable stackPos,
7538
7539         * gen.c: genCall, assignResultValue: added support for
7540         pushing/retrieving function parameters to/from stack,
7541         genFunction,genEndFunction: setup stack frame for the
7542         generated function,
7543         genAddrOf: will be changed according to bug 863624
7544
7545         * added files genutils.c and genutils.h which contain gen*
7546         debugged and optimised functions extracted from gen.c
7547
7548         * glue.c: added variable 'externs' which holds extern symbols,
7549         pic16emitRegularMap: is modified to properly handle relocatable
7550          symbols under the new scheme,
7551         pic16createInterruptVect: is modified
7552         pic16printPublics: is modified to emit 'global' assembler directives,
7553         added pic16_printExterns to print extern symbols,
7554         pic16glue: initializes stack/frame pointer in the beginning of
7555         the assembly output. Temporary hack, will be corrected later,
7556         because gplink yet does not support stack and SDCC does not
7557         yet support a type of crt0.o object to create the final binary.
7558
7559         * Removed many lines that contain 8051 legacy code.
7560         * The code is finally placed under a 'code' directive.
7561         * Added port specific options.
7562
7563         * _process_pragma: simplified since now we do not need *special*
7564         include file to define SFR registers. But a separate header
7565         will be needed. This will be developed later.
7566         * _pic16_parseOptions: added, parses port specific options:
7567         --pgen-banksel, --obanksel=, --pomit-config-words, --pomit-ivt,
7568         --pleave-reset-vector, --penable-stack, --pstack-model, --debug-xtra
7569         --preplace-udata-with=
7570
7571         * _pic16_setDefaultOptions: modified to initialize section names,
7572         but hack is temporarly out of order since it needs improvement.
7573         * _pic16_genAssemblerPreamble: configuration words are emitted by
7574         their address instead of their name. This part is incomplete and
7575         supports only the 18Fxx2 devices. Other devices will emit an error
7576         during assembly since they do not contain the same set of config
7577         registers
7578         * _pic16_genIVT: is modified,
7579
7580         * pcode.c: added definitions for some hardware registers that are needed
7581         for stack support
7582         * added flag is2LitOp and variable pci_magic in pCodeInstruction.
7583         All PCI entries are updated. Now LFSR is supported.
7584         * Removed pic16_pciTRIS is mentioned by mdubuc in source
7585         * added pic16_newpCodeOpLit2 to support instructions with
7586         two literal arguments
7587         * pic16_pCode2str: corrected code that emits assembler instructions
7588         with two literal operands and those that have an access bit modifier
7589         * genericPrint: now PC_ASMDIR pCodes, can emit a label if it exists,
7590         this fixes a bug which caused some labels to be lost, when an
7591         assembler directive was added, i.e. banksel,
7592         * pic16_FixRegisterBanking: improved logic that causes the insertion
7593         of bank switching,
7594         * InlineFunction: functions that are called once, are not any more
7595         inlined. This can be a port option in the future,
7596
7597         * pcode.h: added pCodeOpLit2 and added variable label in pCodeAsmDir
7598
7599         * ralloc.c: added pic16_rel_udata and pic16_fix_udata variables which
7600         hold the corresponding uninitialized symbols,
7601         * pic16_allocProcessorRegister: registers have explicit marked the
7602         accessBank field,
7603         * pic16_allocInternalRegister: registers are explicit marked as
7604         not used,
7605         * pic16_writeUsedRegs: pic16_dynDirectBitRegs was missing from the
7606         processing list, so bit registers were lost,
7607         *
7608
7609         * ralloc.h: added field 'accessBank' and original symbol operand
7610         in register definition,
7611         * removed the field isMapped from register definition,
7612
7613         ** Several functions have been removed from various sources:
7614         BanksUsedFlow2,BanksUsedFlow,FixBankFlow,InstructionRegBank,
7615         pic16_addMemRange,pic16_isREGinBank,pic16_dump_map,pic16_dump_cblock
7616         isSFR,validAddress,mapRegister,assignRegister,pic16_assignFixedRegisters
7617         pic16_assignRelocatableRegisters
7618
7619         ** others have been introduced:
7620         pic16_areRegsSame,pic16_dump_section,checkAddReg,pic16_groupRegistersInSection
7621         pic16_popGetLit2,pic16_popCombine2,pushw,pushaop
7622
7623 2004-01-05 Vangelis Rokas <vrokas AT otenet.gr>
7624
7625         * support/scripts/inc2h.pl: changed definition of BIT_AT
7626         to emit 'sbit at' instead of 'bit at'. This was a request.
7627
7628         PIC16 port related preliminary changes:
7629         * gen.c: prefixed function popRegFromString with
7630         pic16_ and all references to it corrected
7631         * pcode.c: all pic16_pc_* hardware registers prefixed
7632         with underscore (_),
7633         pic16_popCopyGPR2Bit(): function sets register wasUsed=1
7634         * ralloc.c: newReg(): when register is REG_SFR then
7635         set address to rIdx,
7636         pic16_allocProcessorRegister(): marks register wasUsed=0
7637         pic16_writeUsedRegs(): added a call to assign processor
7638         registers via pic16_assignFixedRegisters
7639
7640 2004-01-04  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
7641
7642         * as/mcs51/aslink.h, as/mcs51/lkarea.c, as/mcs51/lkdata.c,
7643         as/mcs51/lkmain.c, as/mcs51/lkmem.c: 8051 linker can now pack
7644         variables in unused register banks.  Also the SSEG is placed
7645         wherever there is enough space for it, and IDATA can be anywhere
7646         in internal RAM.  For now compile using -Wl-Y[stack_size].
7647         The mem file is different for this option as well, since it
7648         makes no sense of talking about DSEG lenght.
7649
7650 2004-01-02 Vangelis Rokas <vrokas AT otenet.gr>
7651
7652         * src/SDCClrange.c: fixed bug 869095 that caused segfault
7653         in certain cases, e.g. when ROM assignment, patch provided
7654         from Albert den Haan.
7655
7656 2004-01-01 Bernhard Held <bernhard AT bernhardheld.de>
7657
7658         Many signedness and type propagation fixes:
7659         * src/SDCCicode.c: made geniCodeCast() static
7660         replaced SPEC_ by IS_ (cosmetic)
7661         (operandOperation): fixed div and mod operation
7662         (usualBinaryConversions): added support for promotion of char
7663         (geniCodeMultiply): replaced (unsigned long) by (TYPE_UDWORD)
7664         (geniCodeDivision): replaced (unsigned long) by (TYPE_UDWORD)
7665         (geniCodeAdd): an array index will stay unsigned, even if promoted
7666         from char to int
7667         (geniCodeArray): ditto
7668         * src/SDCCicode.h: made geniCodeCast() static: removed prototype
7669         * src/SDCCsymt.c (computeType): added more support for char;
7670         promotion of char is selectable by promoteCharToInt, fixed signedness
7671         for all cases
7672         (powof2): replaced (unsigned long) by (TYPE_UDWORD)
7673         * src/SDCCsymt.h (powof2): replaced (unsigned long) by (TYPE_UDWORD)
7674         * src/SDCCval (val*): replaced signedness calculation by
7675         computeType()
7676         rearranged if-branches (cosmetic)
7677         (valShift): added warning W_SHIFT_CHANGED
7678         (valCompare): fixed problem with different types
7679         * src/hc08/rallo.c (leastUsedLR): fixed gcc 3.3 warning
7680         * support/regression/tests/literalop.c: added many cases
7681         * support/regression/tests/ast_constant_folding.c: changed finally to
7682         'unsigned int'
7683         * .version: new year, new version: 2.3.7
7684         * src/SDCCmain.c (main): applied patch #866468
7685         * debugger/mcs51/sdcdb.c (parseCmdLine): added -k for ucsim, patch
7686         provided by Scott Bronson
7687         * doc/sdccman.lyx: updated documentation for sdcdb
7688         updated and added chapter tips
7689
7690 2004-01-01 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
7691
7692         * src/SDCCsymt.h: missing from yesterday's commits
7693
7694 2003-12-31 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
7695
7696         * src/SDCC.y (struct_or_union_specifier),
7697         * support/Util/SDCCerr.c,
7698         * support/Util/SDCCerr.h: verify that struct & union tags are used
7699         as declared.
7700
7701 2003-12-29 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
7702
7703         * src/SDCCglobl.h: missing from yesterday's commits
7704
7705 2003-12-28 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
7706
7707         * src/SDCC.y (external_definition, type_specifier2, sfr_reg_bit,
7708         sft_attributes, struct_declaration, parameter_declaration,
7709         type_name, start_block, declaration_list),
7710         * src/SDCC.lex (check_type): support redefinition of typedef names
7711
7712 2003-12-22 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
7713
7714         * src/mcs51/gen.c (genPlus): added special handling for 256 byte
7715         aligned xdata arrays. Erik helped me with the if clause.
7716
7717 2003-12-20 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
7718
7719         * device/lib/ds390/tinibios.c (CpuSpeed): suppress unreachable code
7720         warning
7721
7722 2003-12-20 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
7723
7724         * src/SDCCast.h,
7725         * src/SDCCast.c (newAst_),
7726         * src/SDCCicode.h,
7727         * src/SDCCicode.c (ast2iCode, newiCode),
7728         * src/SDCCglobl.h,
7729         * src/SDCC.y (logical_and_expr, logical_or_expr, conditional_expr,
7730         expr, statement, expression_statement, selection_statement,
7731         iteration_statement, expr_opt, jump_statement): foundation for tracking
7732         sequence points
7733         * src/SDCCopt.c (killDeadCode): fixed bug #861580 (needs the sequence
7734         point code too)
7735
7736 2003-12-19 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
7737
7738         * support/Util/SDCCerr.c,
7739         * src/SDCCast.h,
7740         * src/SDCCast.c (createCase, createDefault, decorateType),
7741         * src/SDCClabel.c (labelUnreach),
7742         * src/SDCC.y (labeled_statement, jump_statement): More improvements
7743         to error messages.
7744         * support/Util/SDCCerr.c (werrorfl): fixed a non-standard declaration
7745         (with thanks to Stas Sergeev)
7746         * device/include/time.h,
7747         * device/lib/time.c (CheckTime): suppress unreachable code warning
7748
7749 2003-12-18 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
7750
7751         * src/SDCCast.c (createIvalCharPtr),
7752         * src/SDCCglue.c (printChar): fixed bug #862241 (an error in my fix for
7753         bug #753752)
7754         * support/regression/tests/nullstring.c: tests for these two bugs
7755
7756 2003-12-18 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
7757
7758         * support/Util/SDCCerr.h,
7759         * support/Util/SDCCerr.c (E_NOT_ALLOWED),
7760         * src/SDCC.y (struct_declaration, struct_or_union_specifier): complain
7761         about storage class and 'at' used inside struct or union
7762         * src/SDCCBBlock.c (iCodeFromeBBlock),
7763         * src/SDCCcse.c (ifxOptimize),
7764         * src/SDCCglue.c (emitRegularMap, initPointer, printIvalStruct,
7765         printIvalArray, printiValFuncPtr, printIvalCharPtr, printIvalPtr,
7766         printIval, emitStaticSeg, emitOverlay),
7767         * src/SDCClabel.c (deleteIfx),
7768         * src/SDCCopt.c (replaceRegEqv, eBBlockFromiCode),
7769         * src/SDCCast.c (resolveSymbols, createIvalStruct, createIvalArray,
7770         gatherAutoInit, processParms),
7771         * support/Util/SDCCerr.h,
7772         * support/Util/SDCCerr.c (werrorfl): Support for better error location
7773         reporting for post-parse errors.
7774
7775 2003-12-16 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
7776
7777         * src/SDCCval.c (valPlus, valMinus, valShift): fixed some problems with
7778         implicit casts via union; they don't work on big endian systems
7779         (possible fix for bug #861138)
7780
7781 2003-12-16 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
7782
7783         (committed by Erik Petrich <epetrich AT ivorytower.norman.ok.us> on Frieder's behalf)
7784         * src/mcs51/main.c: fixed the fix for bug #737001
7785
7786 2003-12-15  Borut Razem <borut.razem AT siol.net>
7787
7788         * support/scripts/sdcc.nsi: updated for NSIS 2.0 beta 4
7789
7790 2003-12-14 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
7791
7792         * support/makebin/makebin.c: put output in binary mode
7793
7794 2003-12-13 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
7795
7796         * src/mcs51/main.c: fixed bug #737001 for the mcs51. SDCC clears
7797         xdata and data memory on startup. Set the environment variable
7798         SDCC_NOGENRAMCLEAR to disable this.
7799         * src/mcs51/peephole.def,
7800         * src/ds390/peephole.def: using the atomic test and clear instruction jbc
7801         (allows non-interrupt and interrupt code to safely compete for a resource
7802         without the non-interrupt code having to disable interrupts)
7803
7804 2003-12-13 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
7805
7806         * src/SDCCicode.c (geniCodeAdd),
7807         * src/SDCCast.c (decorateType): fixed bug #857753 (need to be careful
7808         with valFromType if type might be a pointer and host is big endian).
7809         * src/SDCCast.c (decorateType): unary plus compatible with all arithmetic
7810         types, not just integer types.
7811         * src/SDCCsymt.c (addSymChain): clarified error message when symbol is
7812         multiply defined with mismatching "at" address.
7813
7814 2003-12-12 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
7815
7816         * src/ds390/main.c (PORT tininative_port): fixed bug #858416
7817         * src/SDCCglue.c (printChar, printIvalChar, emitStaticSeg),
7818         * src/SDCCast.c (createIvalCharPtr, stringToSymbol): handle strings
7819         with embedded nulls (fixed bug #753752)
7820
7821 2003-12-12 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
7822
7823         * src/mcs51/main.c(_mcs51_genRAMCLEAR): using r0 instead of r1/r2.
7824         Apparently this did not see much testing (endless loop)
7825
7826 2003-12-11 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
7827
7828         * src/z80/ralloc.c: set DISABLE_PACK_HL = 1 as a temporary fix to bug #855165
7829
7830 2003-12-10 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
7831
7832         * src/SDCCdebug.c (outputDebugSymbols, outputDebugStackSymbols, dumpSymInfo):
7833         gracefully handle NULL memmap pointers
7834
7835 2003-12-08 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
7836
7837         * src/SDCCopt.c (killDeadCode): change iCode type to DUMMY_READ_VOLATILE
7838         instead of deleting the iCode when an operand is volatile
7839         * src/z80/gen.c (genDummyRead),
7840         * src/mcs51/gen.c (genDummyRead),
7841         * src/ds390/gen.c (genDummyRead),
7842         * src/hc08/gen.c (genDummyRead): handle operands in IC_LEFT and/or IC_RIGHT,
7843         not just IC_RIGHT
7844         * src/SDCCicode.c (geniCodeCall): fixed bug #851607
7845         * src/SDCC.y: fixed bug #850420
7846
7847 2003-12-05 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
7848
7849         Applied z80 i/o port patch from Peter Townson and fixed some operators
7850         to better handle operands in A register.
7851         * device/include/z180.h
7852         * src/SDCC.y
7853         * src/SDCCglue.c
7854         * src/z80/gen.c
7855         * src/z80/gen.h
7856         * src/z80/main.c
7857         * src/z80/peeph-z80.def
7858         * src/z80/peeph.def
7859         * src/z80/z80.h
7860
7861 2003-12-03 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
7862
7863         * src/SDCCsymt.c (addSymChain, compareTypeExact): fixed bug #838241 again
7864
7865 2003-12-01 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
7866
7867         * device/lib/hc08/_mullong.c: Removed extra #endif
7868
7869 2003-12-01 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
7870
7871         * sim/ucsim/hc08.src/inst.cc,
7872         * sim/ucsim/hc08.src/hc08mac.h: fixed some problems with CC flag bits and
7873         carries from x to h
7874         * src/hc08/gen.c (aopAdrStr): fixed problem with 16 bit immediate
7875         * src/hc08/gen.c (XAccRsh): fixed problem with right shift
7876         * device/include/stdarg.h: fixed varargs for hc08
7877         * device/lib/Makefile.in,
7878         * device/lib/hc08/Makefile,
7879         * device/lib/hc08/_mulint.c,
7880         * device/lib/hc08/_mullong.c: fixed some endian problems
7881
7882 2003-11-28 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
7883
7884         * sdcc/src/mcs51/gen.c (genMultOneByte): help peephole 105
7885         * sdcc/src/mcs51/peeph.def: added peephole 186.e array access in code space
7886         * device/lib/_gptrget.c,
7887         * device/lib/_gptrput.c: P2 not used any more (related to #850747, #785979)
7888
7889 2003-11-27 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
7890
7891         * src/SDCClrange.c (findNextUseSym, rlivePoint): fixed bug #849795
7892         * src/SDCCast.c (astErrors): fixed bug #846007
7893         * src/SDCCsymt.c (checkFunction): fixed follow-up bug on bug #846007
7894
7895 2003-11-26 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
7896
7897         * src/SDCCast.c (decorateType): disabled a transformation I added in
7898         revision 1.188 (access to fields of a structure at an absolute address);
7899         it breaks with bitfields, extern declarations, and gcse analysis.
7900         * src/SDCCopt.c (isLocalWithoutDef): if ADDRESS_OF applied to a symbol, it
7901         could be assigned through a pointer, so don't complain.
7902         * src/SDCCast.c (astErrors),
7903         * src/SDCCast.h,
7904         * src/SDCCglue.c (emitRegularMap): fixed bug #847813
7905
7906 2003-11-26 Vangelis Rokas <vrokas AT otenet.gr>
7907
7908         * src/pic16/main.c (_pic16_genIVT): fixed interrupt vector table
7909         * src/pic16/main.c (_pic16_genAssemblerPreamble): re-enabled the
7910         output of __config directives, since gpasm now supports them
7911         * src/pic16/main.c (_pic16_finaliseOptions): define MCU
7912         pre-processor macro, i.e. -DMCU=p18f452
7913         * src/pic16/ralloc.c: renamed packRegisters to pic16_packRegisters,
7914         and modified to handle 'cast' icode similarly to '=' icode
7915         * src/pic16/device.h (typedef struct PIC_device): added field
7916         'extMIface' to indicate that chip has external memory interface
7917         * src/pic16/device.c: added chips 18F248, 18F258, 18F448, 18F458,
7918         18F6520, 18F6620, 18F6680, 18F6720, 18F8520, 18F8620, 18F8680,
7919         18F8720
7920
7921 2003-11-26 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
7922
7923         * src/SDCC.y (pointer): fixed bug #846006
7924         * support/Util/SDCCerr.c: made W_PTR_TYPE_INVALID message clearer
7925         * src/SDCCast.c (decorateType): fixed bug #846009
7926         * src/ds390/peeph.def,
7927         * src/ds390/gen.c (genAnd, genOr),
7928         * src/mcs51/peeph.def,
7929         * src/mcs51/gen.c (genAnd, genOr): fixed bug #846777
7930
7931 2003-11-25 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
7932
7933         Fixed several common-sub-expression bugs (#772861, #768380, & #755323)
7934         * src/SDCCdflow.c
7935         * src/SDCCcse.c
7936         * src/SDCCcse.h
7937         * src/SDCCBBlock.h
7938         * src/SDCCBBlock.c
7939
7940 2003-11-23 Klaus Flittner <klaus_flittner AT gmx.de>
7941
7942         fixed bug #845089
7943         * src/SDCCbitv.h,
7944         * src/SDCCbitv.c: added function to free a bitvector
7945         * src/SDCClrange.h,
7946         * src/SDCClrange.c: added function to recompute the liveranges
7947         * src/avr/ralloc.c,
7948         * src/ds390/ralloc.c,
7949         * src/hc08/ralloc.c,
7950         * src/mcs51/ralloc.c,
7951         * src/pic/ralloc.c,
7952         * src/pic16/ralloc.c,
7953         * src/xa51/ralloc.c,
7954         * src/z80/ralloc.c: recompute the liveranges after register packing
7955
7956 2003-11-21 Klaus Flittner <klaus_flittner AT gmx.de>
7957
7958         * src/SDCCloop.c (newInduction): fixed bug #845630
7959
7960 2003-11-21 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
7961
7962         * src/SDCCsymt.c (compareTypesExact): disabled debugging output
7963         inadvertantly left behind from my 2003-11-12 change
7964
7965 2003-11-20 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
7966
7967         Updated headers I neglected to commit yesterday.
7968         * src/SDCClrange.h,
7969         * src/SDCCicode.h
7970
7971 2003-11-19 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
7972
7973         * src/SDCCcse.c (algebraicOpts): fixed bug #773153
7974         * src/SDCClrange.c (rlivePoint): need to mark IC_RESULT used if POINTER_SET op
7975         * src/SDCCopt.c (eBBlockFromiCode),
7976         * src/SDCClrange.c (hashiCodeKeys, sequenceiCode, computeLiveRanges): seperated
7977         the creation of the key hash table from the sequencing so it can be used
7978         earlier (for some GCSE bug fixes still pending)
7979
7980 2003-11-15 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
7981
7982         * src/mcs51/gen.c (genPlus): generate shortcut for adding 0xab00
7983         * support/regression/tests/addsub.c: testing genPlus shortcut
7984
7985 2003-11-15  Borut Razem <borut.razem AT siol.net>
7986
7987         * src/SDCCmain.c: fixed bug #841645: -MM command line option passed to sdcpp
7988
7989 2003-11-15 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
7990
7991         * src/SDCCcse.c (cseBBlock): fixed bug #527779
7992         * src/SDCCcse.c (deleteGetPointers): rewrote so that the set
7993         ordering is immaterial.
7994         * src/SDCCdflow.c (mergeInExprs): fixed bug #587536
7995
7996 2003-11-14 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
7997
7998         * src/SDCCicode.c (geniCodeAddressOf): fixed part of bug #840381
7999         * src/SDCCopt.c (replaceRegEqv, isLocalWithoutDef): fixed other part
8000         (SIGSEV) of bug #840381
8001         * src/SDCCmain.c (linkEdit, assemble): fixed bug #841606 (don't
8002         unlink new file before rename if new and old filenames are the same)
8003
8004 2003-11-13 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
8005
8006         * src/mcs51/main.c: started fixing bug #737001 (SDCC not clearing
8007         uninitialized variables) for the mcs51. Set environment variable
8008         SDCC_GENRAMCLEAR to test.
8009         xdata initialization slightly shorter
8010
8011 2003-11-12 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
8012
8013         * src/SDCCsymt.h,
8014         * src/SDCCsymt.c (addSymTypeChain, compareTypesExact): fixed bugs
8015         #838241 & 780691 (basicly the same bug)
8016         * src/SDCCBBlock.c (iCode2eBBlock): fixed bug #840148
8017         * src/SDCCBBlock.c (iCodeFromeBBlock): fixed bug #840162
8018
8019 2003-11-11 Bernhard Held <bernhard AT bernhardheld.de>
8020
8021         * src/SDCCmain.c (linkEdit): "fix" #834252
8022
8023 2003-11-11 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
8024
8025         * src/SDCCast.c (removePostIncDecOps, removePreIncDecOps),
8026         * src/SDCCast.h,
8027         * src/SDCC.y: fixed bug #819403
8028
8029 2003-11-08 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
8030
8031         * support/regression/fwk/lib/testfwk.c: printn is recursive and thus needs
8032         the reentrant attribute.
8033         * src/hc08/gen.c (genPackBits): added missing stack readjustment
8034         * sim/ucsim/hc08.src/inst.cc (inst_mov): fixed bugs with mov instruction
8035         simulation
8036         * src/SDCCast.c (decorateType): fixed bug with storage class not being
8037         updated during pointer dereference; f.e. ~(((char *)1)*) was being
8038         erroneously reduced to a literal.
8039         * src/hc08/ralloc.c (packRegisters, rematStr),
8040         * src/hc08/gen.c (aopForRemat): allow literals to be rematerialized in
8041         some cases
8042
8043 2003-11-08 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
8044
8045         * src/mcs51/main.c: fixed bug #838385. Thanks to Josef Pavlik for finding and fixing
8046         * doc/sdccman.lyx: changed from 'article' to 'book'
8047         * doc/Makefile: readded test_suite_spec and cdbfileformat
8048
8049 2003-11-08 Bernhard Held <bernhard AT bernhardheld.de>
8050
8051         * device/include/stdlib.h: include malloc.h to comply with ANSI
8052         * support/regression/tests/malloc.c: include stdlib.h instead of malloc.h
8053
8054 2003-11-07 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
8055
8056         * doc/Makefile: sdccman.pdf should build with correct references (more info in commit msg)
8057         * doc/clean.mk: also remove *.out files
8058         * doc/sdccman.lyx: some additions, larger top/bottom margins
8059
8060 2003-11-07 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
8061
8062         * src/SDCC.y: fixed bug #837365
8063         * support/regression/tests/bitopcse.c
8064         * src/hc08/gen.c (genPointerGet): Don't assume pointer operand is
8065         a symbol (might be valop instead)
8066         * device/lib/Makefile.in: added errno.c to HC08SOURCES
8067         * device/lib/clean.mk: added hc08 to the cleaning list
8068
8069 2003-11-04  Borut Razem <borut.razem AT siol.net>
8070
8071         * configure, configure.in, sdcc_vc_in.h, sdcconf_in.h: reverted changes,
8072           made 2003-11-04
8073         * support/Util/NewAlloc.c, as/hc08/lklibr.c, as/mcs51/lklibr.c,
8074           as/z80/aslist.c, as/z80/assym.c: removed inclusion of nonstandard malloc.h;
8075           malloc is declared in standard stdlib.h
8076
8077 2003-11-06 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
8078
8079         * device/lib/hc08/Makefile: need to clean .rel not .o files
8080         * src/hc08/gen.c (genDjnz): can't use djnz with extended addressing mode
8081
8082 2003-11-06 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
8083
8084         * src/port.h,
8085         * src/hc08/main.c,
8086         * src/mcs51/main.c,
8087         * src/ds390/main.c,
8088         * src/z80/main.c,
8089         * src/avr/main.c,
8090         * src/pic/main.c,
8091         * src/pic16/main.c,
8092         * src/xa51/main.c: added hasExtBitOp & oclsExpense functions to ports
8093         * src/SDCCicode.c: changed several IS_FARSPACE tests to isOclsExpensive
8094         tests (which uses the port's oclsExpense function)
8095         * src/SDCC.y,
8096         * src/SDCCast.c,
8097         * src/SDCCicode.c,
8098         * src/hc08/gen.c,
8099         * src/ds390/gen.c,
8100         * src/mcs51/gen.c: added support for the SWAP iCode (RFE #834167)
8101
8102 2003-11-04 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
8103
8104         * src/SDCCcse.c (ifxOptimize),
8105         * src/SDCClabel.c (labelIfx, deleteIfx): When the condition to
8106         an IFX iCode is volatile, convert to DUMMY_READ_VOLATILE instead
8107         deleting the IFX iCode.
8108         * src/hc08/ralloc.c: reduced unneeded slocs
8109         * src/hc08/gen.c: fixed bug in asmopToBoolean
8110
8111 2003-11-04  Borut Razem <borut.razem AT siol.net>
8112
8113         * configure, configure.in, sdcc_vc_in.h, sdcconf_in.h,
8114           support/Util/NewAlloc.c, as/hc08/lklibr.c, as/mcs51/lklibr.c,
8115           as/z80/aslist.c, as/z80/assym.c: decision to include malloc.h
8116           transferred to configure
8117
8118 2003-11-03 Bernhard Held <bernhard AT bernhardheld.de>
8119
8120         Use headers defined in the C[++] standards:
8121         * sim/ucsim/gui.src/serio.src/fileio.cc
8122         * sim/ucsim/gui.src/serio.src/frontend.cc
8123         * sim/ucsim/gui.src/serio.src/main.cc
8124         * sim/ucsim/gui.src/serio.src/posix_signal.cc
8125         * support/Util/NewAlloc.c
8126         * as/hc08/lklibr.c
8127         * as/mcs51/lklibr.c
8128         * as/z80/aslist.c
8129         * as/z80/assym.c
8130
8131 2003-11-03  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
8132
8133         * Added MSVC projects for hc08 assembler and linker:
8134         all.dsp, config.dsp, sdcc.dsw, /as/hc08/as_hc08.dsp,
8135         /as/hc08/link_hc08.dsp
8136
8137 2003-11-03 Martin Helmling <Martin.Helmling AT octo-soft.de>
8138
8139         * debugger/mcs51/cmd.c: allows filename starting with digit(+ some debug)
8140
8141 2003-11-02 Bernhard Held <bernhard AT bernhardheld.de>
8142
8143         * src/SDCCmain.c (linkEdit): "fixed" again bug #833605
8144
8145 2003-11-01 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
8146
8147         * src/mcs51/main.c: xdata initialization is 13 bytes shorter now
8148
8149 2003-10-31  Borut Razem <borut.razem AT siol.net>
8150
8151         * support/cpp2/cpplib.h,
8152           support/cpp2/cpplib.c,
8153           support/cpp2/cpplex.c,
8154           support/cpp2/cppinit.c: introduced #pragma preproc_asm [ + | - ]
8155           to switch _asm block preprocessing on / off. Default is
8156           #pragma preproc_asm +
8157
8158 2003-10-31  Borut Razem <borut.razem AT siol.net>
8159
8160         * support/cpp2/cpplex.c: Fixed _WIN32 problem with CR-CR-LF sequences
8161           when outputting comment blocks (when executed with -C option) and
8162           _asm (SDCPP specific) blocks
8163
8164 2003-10-31 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
8165
8166         * as/hc08/lkrloc.c (relr): Fixed ihx output, fixed lastAreaIndex warning
8167
8168 2003-10-31 Klaus Flittner <klaus_flittner AT gmx.de>
8169
8170         * src/SDCCcse.c (updateSpillLocation): fixed bug #808027
8171
8172 2003-10-31 Bernhard Held <bernhard AT bernhardheld.de>
8173
8174         * src/SDCCmain.c (linkEdit): "fixed" bug #833605
8175         * src/SDCCast.c (decorateType): fixed bug #832664
8176
8177 2003-10-31  Borut Razem <borut.razem AT siol.net>
8178
8179         * support\cpp2\cpplex.c: fixed for SDCPP:
8180           comments(when executed with -C option) and _asm blocks
8181           were included even if they where in skipped #if block.
8182           Applied solution from GCC cpp 3.3.2
8183
8184 2003-10-31  Borut Razem <borut.razem AT siol.net>
8185
8186         * src/SDCC.lex: sdcc now understands both formats:
8187           '# <line_number> <file_name>' and
8188           '#line <line_number> <file_name>'
8189         * support/cpp2/cppmain.c: sdcpp now generates the standard
8190           '# <line_number> <file_name>' instead of former
8191           '#line <line_number> <file_name>'
8192
8193 2003-10-30  Borut Razem <borut.razem AT siol.net>
8194
8195         * support/cpp2/cpphash.h,
8196         * support/cpp2/cpplib.h
8197         * support/cpp2/cpplex.c,
8198         * support/cpp2/cppmain.c,
8199         * support/cpp2/cppinit.c: fixed bug #828015 - Syntax variation for _asm character constants
8200
8201 2003-10-30 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
8202
8203         Fixed a number of problems revealed by bug #827883.
8204         * src/SDCCloop.c (loopInvariants): Spill location of the
8205         result operand should be recomputed if extracted from
8206         a loop. Also, don't extract assignments of an iTemp
8207         from a literal.
8208         * src/SDCCast.c (isConformingBody): loop reversal should
8209         not occur if the control variable is involved with a
8210         relational operator.
8211
8212 2003-10-28 Bernhard Held <bernhard AT bernhardheld.de>
8213
8214         * .version: bumped to 2.3.6 to reflect the big improvements
8215         made by Erik and Klaus. Thanks!
8216
8217 2003-10-28 Klaus Flittner <klaus_flittner AT gmx.de>
8218
8219         Replaced the livrange code.
8220         * src/SDCClrange.c: added new LR code
8221         * src/SDCCloop.c,
8222         * src/SDCCBBlock.h: removed remainig parts from old LR code
8223         * src/ds390/ralloc.c,
8224         * src/ds390/gen.c: minor fixes to make it work with new code
8225
8226 2003-10-28 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
8227
8228         * as/hc08/asm.h,
8229         * as/hc08/lkrloc.c,
8230         * src/hc08/gen.c,
8231         * src/hc08/ralloc.c: Fix various warnings related to the hc08
8232         * src/SDCCicode.c (geniCodePreInc, geniCodePreDec): Fixed bug #829717
8233         (tweaked fix for bug #818696)
8234
8235 2003-10-23 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
8236
8237         * src/z80/ralloc.c (joinPushes): Fixed bug #828742
8238
8239 2003-10-23 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
8240
8241         * src/SDCCmain.c,
8242         * sdccconf_in.h: Fixed bug #828387 (--disable-hc08-port didn't work)
8243         * src/mcs51/gen.c (gencjneshort),
8244         * src/ds390/gen.c (gencjneshort): Made comparison with AOP_IMMD operand
8245         more efficient (per Scott Bronson's suggestion)
8246
8247 2003-10-22 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
8248
8249         Extended the semantics of the critical keyword to include
8250         individual statements. See RFE #827755 and #799831
8251         * src/SDCC.y
8252         * src/SDCCicode.c
8253         * src/SDCCopt.c
8254         * src/SDCCast.c
8255         * support/Util/SDCCerr.c
8256         * support/Util/SDCCerr.h
8257         * src/mcs51/gen.c
8258         * src/ds390/gen.c
8259         * src/hc08/gen.c
8260
8261 2003-10-19  Borut Razem <borut.razem AT siol.net>
8262
8263         * src/SDCC.lex: fixed bug #825944 - defined yytext_ptr to make it compile with flex 2.5.31
8264
8265 2003-10-19 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
8266
8267         * src/SDCCicode.c (geniCodePreInc, geniCodePreDec, ast2iCode):
8268         Fixed bug #818696
8269         * src/SDCCast.c (ast_print): Fixed --dumptree so that preincrement
8270         and predecrement operand is displayed
8271
8272 2003-10-13 Bernhard Held <bernhard AT bernhardheld.de>
8273
8274         * src/SDCCval.c (valMinus): fixed bug #826041
8275
8276 2003-10-15 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
8277
8278         Some hc08 related updates that I missed earlier
8279         * sim/ucsim/stypes.h
8280         * support/regression/ports/hc08/spec.mk
8281
8282 2003-10-15 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
8283
8284         New target "hc08" for the Motorola 68hc08 family of micros
8285
8286         * configure
8287         * configure.in
8288         * Makefile
8289         * src/hc08/*
8290         * src/SDCCmain.c
8291         * src/port.h
8292         * sim/ucsim/hc08.src/*
8293         * sim/ucsim/configure.in
8294         * src/ucsim/configure
8295         * sim/ucsim/packages_in.mk
8296         * as/hc08/*
8297         * as/Makefile
8298         * device/include/mc68hc908qy.h
8299         * device/lib/hc08/*
8300         * device/lib/Makefile.in
8301         * support/regression/ports/hc08/*
8302         * support/regression/Makefile
8303
8304 2003-10-14 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
8305
8306         * src/z80/gen.c: fixed bug revealed by ast_constant_folding.c
8307         regression test
8308         * src/ds390/gen.c (genCast): fixed bug #821957
8309
8310 2003-10-13 Bernhard Held <bernhard AT bernhardheld.de>
8311
8312         * device/lib/logf.c: "fixed" overlay bug
8313         * support/regression/ports/host/spec.mk: added m library
8314         * support/regression/ports/mcs51-stack-auto/spec.mk: added float funcs
8315         * support/regression/tests/float_trans: added (for Eric)
8316
8317 2003-10-12 Bernhard Held <bernhard AT bernhardheld.de>
8318
8319         * src/mcs51/gen.c (genCpl): fixed bug
8320         http://sf.net/mailarchive/message.php?msg_id=6263915
8321
8322 2003-10-10 Bernhard Held <bernhard AT bernhardheld.de>
8323
8324         * src/SDCCast.c (decorateType): added extended constant folding
8325         * src/SDCCsymt.c (computeType): cleanup
8326         * src/SDCCval.c (valShift): minor optimization
8327         * support/regression/tests/ast_constant_folding.c: added
8328
8329 2003-10-09  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
8330
8331         * src/SDCCmain.c: removed some unintended changes
8332
8333 2003-10-09  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
8334
8335         * src/SDCCmain.c (setParseWithComma): fixed bug #816685
8336         * src/z80/gen.c: fixed part of bug #817589
8337         * src/SDCCsymt.c (checkFunction): fixed bug #817895
8338
8339 2003-10-08 Bernhard Held <bernhard AT bernhardheld.de>
8340
8341         Replaced cast (void **) with (void *) to avoid gcc 3 warning:
8342         * src/SDCCcflow.c
8343         * src/SDCCcse.c
8344         * src/SDCCdflow.c
8345         * src/SDCClabel.c
8346         * src/SDCClrange.c
8347         * src/SDCCmem.c
8348         * src/SDCCopt.c
8349         * src/SDCCpeeph.c
8350         * src/SDCCset.c
8351         * src/avr/ralloc.c
8352         * src/ds390/ralloc.c
8353         * src/izt/ralloc.c
8354         * src/mcs51/ralloc.c
8355         * src/pic/ralloc.c
8356         * src/pic16/ralloc.c
8357         * src/xa51/ralloc.c
8358         * src/z80/ralloc.c
8359         * src/z80/gen.c: removed unused label "release:"
8360
8361 2003-10-06  Borut Razem <borut.razem AT siol.net>
8362
8363         * src/SDCC.lex: removed definition of unused variables
8364           save_optimize and save_options
8365
8366 2003-10-06 Bernhard Held <bernhard AT bernhardheld.de>
8367
8368         * clean.mk: removed '=' in "-maxdepth=1"
8369         * src/SDCCloop.c: replace LRKLAUS with SDCC_LRKLAUS
8370         * src/SDCClrange.c: replace LRKLAUS with SDCC_LRKLAUS
8371
8372 2003-10-06  Borut Razem <borut.razem AT siol.net>
8373
8374         * src/SDCC.lex, src/SDCC.lex: use dbuf for "_asm" definitions;
8375           my_unput() replaced by unput()
8376
8377 2003-10-05 Bernhard Held <bernhard AT bernhardheld.de>
8378
8379         * src/SDCCloop.c (assignmentsToSym, loopInduction): cast argument of
8380         setToNull() to (void *) to avoid gcc3.x's warning: "dereferencing
8381         type-punned pointer will break strict-aliasing rules"
8382         Old LR behaviour is again default; Klaus' LR can be choosen by
8383         defining the environment variable LRKLAUS
8384         * src/SDCCBBlock.h
8385         * src/SDCCloop.c
8386         * src/SDCClrange.c
8387         * src/ds390/ralloc.c (spillThis): applied Klaus' patch
8388         * clean.mk: fixed removal of files in bin/CVS/
8389         * device/lib/clean.mk: fixed removal of directories small and large
8390         * support/Util/SDCCerr.c: changed W_INT_OVL to ERROR_LEVEL_PEDANTIC
8391         * src/SDCCicode.c,
8392         * src/SDCCval.c: removed superflous test for pedantic
8393
8394 2003-10-05  Borut Razem <borut.razem AT siol.net>
8395
8396         * src/SDCC.lex, support/Util/SDCCerr.c, sdcc/support/Util/SDCCerr.h:
8397           Fixed bug #816692: introduced new ERROR_LEVEL_PEDANTIC warning
8398           message "unmatched #pragma SAVE and #pragma RESTORE"
8399
8400 2003-10-04  Frieder Ferlemann <Frieder.Ferlemann AT web.de>
8401
8402         * doc/sdccman.lyx: various additions and updates (interrupts, inline
8403           assembly, critical functions, atomic, nojtbound)
8404
8405 2003-10-04 Bernhard Held <bernhard AT bernhardheld.de>
8406
8407         Applied liferange patch from Klaus Flittner <klaus_flittner AT gmx.de>
8408         * src/SDCCBBlock.h
8409         * src/SDCCloop.c
8410         * src/SDCCloop.h
8411         * src/SDCClrange.c
8412
8413 2003-10-03  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
8414
8415         * src/z80/gen.h,
8416         * src/z80/gen.c (aopOp, aopGet, aopPut, genDummyRead),
8417         * src/mcs51/gen.h
8418         * src/mcs51/gen.c (aopOp, aopGet, aopPut, genDummyRead),
8419         * src/ds390/gen.h
8420         * src/ds390/gen.c (aopOp, aopGet, aopPut, genDummyRead),
8421         * src/SDCCicode.c (ast2iCode, geniCodeDummyRead): Fixed bug #663539
8422         * src/SDCCopt.c (killDeadCode): Fixed bugs #663539 & #816705
8423
8424 2003-10-02  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
8425
8426         * src/z80/gen.c (genRet): fixed bug #524753
8427         * src/z80/gen.c (genCast): fixed internal error on cast from
8428         pointer to long
8429         * src/z80/gen.c (_saveRegsForCall, emitCall): adapted Johan's
8430         fix for bug #477835 to the z80
8431         * src/z80/gen.c (genZ80code, _vemit2, _emit2): added support
8432         for tracking iCodes in the peephole optimizer for z80
8433
8434 2003-10-01  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
8435
8436         * src/SDCCicode.c (geniCodeJumpTable, geniCodeSwitch): fixed
8437         the other part of bug #814548
8438         * src/SDCCpeeph.c (labelInRange): fixed bug #814558
8439
8440 2003-09-30  Bernhard Held <bernhard AT bernhardheld.de>
8441
8442         * src/SDCCcse.c: fixed part of bug #814548
8443
8444 2003-09-28  Borut Razem <borut.razem AT siol.net>
8445
8446         * src/asm.c: rewrite of printILine() to use temporary file instead
8447           a pipe
8448         * src/xa51/main.c: commented out declaration of int rewinds
8449
8450 2003-09-27  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
8451
8452         * src/SDCCicode.c (geniCodeJumpTable): Fixed bug #813206
8453
8454 2003-09-26  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
8455
8456         * src/SDCCdflow.c (computeDataFlow): Fixed bug #810746
8457         * src/asm.c (printILine): Fixed bug #811015
8458
8459 2003-09-22  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
8460
8461         *link/z80/lklibr.c, as/mcs51/lklibr.c: Improved memory allocation and
8462         freeing.
8463
8464 2003-09-21  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
8465
8466         * src/z80/gen.c (setupToPreserveCarry): Fixed bug #796955
8467         * src/z80/gen.c (setupPair, genMovePairPair): Fixed setupPair
8468         to correctly handle general case of AOP_PAIRPTR
8469         * src/z80/gen.c (aopGet, aopPut): Generalized AOP_PAIRPTR handling
8470
8471 2003-09-21  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
8472
8473         * src/mcs51/ralloc.c (fillGaps),
8474         * src/ds390/ralloc.c (fillGaps): fixed bug #810093 (yet another
8475         register positioning bug)
8476
8477 2003-09-21  Bernhard Held <bernhard AT bernhardheld.de>
8478
8479         * device/lib/_fsdiv.c: replaced (1<<31) by (1ul<<31)
8480
8481 2003-09-19  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
8482
8483         * src/mcs51/gen.c (loadDptrFromOperand, genFarPointerGet,
8484         genCodePointerGet, genGenPointerGet, genFarPointerSet,
8485         genGenPointerSet): handle AOP_DPTR correctly when loading dptr
8486         (ralloc doesn't intentionally do this now, but perhaps later)
8487         * src/mcs51/ralloc.c (serialRegAssign, fillGaps),
8488         * src/ds390/ralloc.c (serialRegAssign, fillGaps): fixed some
8489         register positioning bugs (Fixed bug #762602 and #795325)
8490         * src/SDCCicode.c (geniCodeDerefPtr): Track output class correctly
8491         (Fixed bug #808779)
8492         * src/z80/gen.c: increased _vemit2's buffer[] to handle long
8493         lines that --i-code-in-asm generates
8494
8495 2003-09-18  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
8496
8497         *link/z80/lklibr.c, as/mcs51/lklibr.c: Fixed Linux segfaults when
8498         trying to fclose a FILE* that was already closed.
8499
8500 2003-09-18  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
8501
8502         * src/SDCCsymt.c (structElemType): fixed bug #808291 (members
8503         of const struct should be treated as if const themselves)
8504
8505 2003-09-18  Bernhard Held <bernhard AT bernhardheld.de>
8506
8507         * src/SDCCval.c (valPlus, valMinus): fixed bug #808337
8508
8509 2003-07-06  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
8510
8511         * support/librarian/sdcclib.c: Generate correct offsets for libraries with
8512         Unix (/n) and DOS (/r/n) line terminations.
8513
8514 2003-09-17  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
8515
8516         * src/SDCCopt.c (cnvFromFloatCast, cnvToFloatCast): fixed
8517         bug #613775
8518
8519 2003-09-16  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
8520
8521         * src/mcs51/gen.c (genFunction, genEndFunction),
8522         * src/ds390/gen.c (genFunction, genEndFunction): Moved save
8523         and restore of EA so that stack offsets to parameters are
8524         correct when using both critical and reentrant/stack-auto.
8525         * src/z80/gen.c (aopOp): removed erroneous assertion about sloc
8526         size (can be triggered in error if sloc is shared between
8527         different sized objects)
8528         * device/include/float.h: fixed macros to explicitly use
8529         unsigned long where needed
8530
8531 2003-09-15  Bernhard Held <bernhard AT bernhardheld.de>
8532
8533         Feature req. 799831: added code to allow nesting of critical functions
8534         * src/mcs51/gen.c (genFunction, genEndFunction)
8535         * src/ds390/gen.c (genFunction, genEndFunction)
8536
8537 2003-09-14  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
8538
8539         * src/SDCCsymt.c (sclsFromPtr),
8540         * src/SDCCsymt.h,
8541         * src/SDCCast.c (decorateType): fixed bug #462971. Also, better
8542         support for standard C idiom of memory mapped variables; for
8543         example, *((xdata int*)0x1234) = 1 is now internally equivalent
8544         to xdata int at 0x1234 tempvar = 1.
8545         * sim/ucsim/z80.src/inst_xd.cc: fixed bug #805483 with patch
8546         provided by Akiya ISHIDA
8547
8548 2003-09-13  Bernhard Held <bernhard AT bernhardheld.de>
8549
8550         * src/SDCCval.c (cheapestVal): reenabled to reduce int to char
8551         * src/SDCCval.c (constVal): added reduction from int to char
8552         * src/SDCCval.c (valMult, valDiv): fixed sign handling
8553         * src/SDCCval.c (valShift): fixed after change of cheapestVal()
8554         * src/SDCCval.c (valCompare): fixed EQ_OP and NE_OP; they have
8555         to ignore the sign
8556         * support/regression/tests/shifts.c: fixed
8557
8558 2003-09-13  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
8559
8560         * src/z80/gen.c (genXor): Fixed bug #805445
8561
8562 2003-09-12  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
8563
8564         Fixed bug #621531 (const & volatile confusion in the type chain).
8565         DCL_PTR_CONST, DCL_PTR_VOLATILE, & IS_PTR_CONST now exclusively
8566         refer to the const or volatile state of the pointer itself.
8567
8568         * src/SDCCast.c
8569         * src/SDCCglue.c
8570         * src/SDCCicode.c
8571         * src/SDCCsymt.c
8572         * src/SDCCval.c
8573         * src/SDCC.y
8574         * src/SDCCsymt.h
8575         * src/pic/gen.c
8576         * src/pic/ralloc.c
8577         * src/pic16/gen.c
8578         * src/pic16/ralloc.c
8579         * support/regression/tests/const.c
8580
8581 2003-09-10  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
8582
8583         When checking for duplicated modules, use absolute paths
8584         instead of relative paths.  Files changed:
8585
8586         * as/mcs51/lklib.c
8587         * link/z80/lklib.c
8588
8589 2003-09-09  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
8590
8591         * src/SDCCicode.c (geniCodeLogic): fixed bug #797572
8592
8593 2003-09-07  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
8594
8595         * device/include/string.h: added size_t typedef, changed
8596         prototypes to use size_t, eliminated separate reentrant and
8597         non-reentrant declarations, added _memmove declaration
8598         * device/lib/_memcpy.c: changed to use size_t instead of int,
8599         changed /4 to >>2 to avoid division library call
8600         * device/lib/_memcmp.c,
8601         * device/lib/_memset.c,
8602         * device/lib/_strncat.c,
8603         * device/lib/_strncpy.c,
8604         * device/lib/_strncmp.c: changed to use size_t instead of int
8605         * device/lib/_memmove.c: new file (fixed bug #772294)
8606         * device/lib/Makefile.in: added _memmove.c
8607         * device/lib/z80/asm_strings.s: fixed bug #772290
8608         * support/regression/tests/bitfields.c: attempt to fix host assertion
8609         failure on amd64-unknown-linux2.2
8610
8611 2003-09-06  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
8612
8613         * src/z80/gen.c (aopPut, spillPairReg): fixed bug #800998
8614         * src/z80/gen.c (genFunction, genEndFunction): fixed "bug" #774700
8615         * as/z80/asmain.c (main): fixed bug #801766
8616
8617 2003-09-06  Bernhard Held <bernhard AT bernhardheld.de>
8618
8619         * src/SDCCicode.c (ast2iCode): fixed differences in iCode with different
8620         compilers
8621
8622 2003-09-05  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
8623
8624         * src/SDCCast.c (isConformingBody): fixed loop reversal bug
8625         reported in bug #800609
8626
8627 2003-09-04  Vangelis Rokas <vrokas AT otenet.gr>
8628
8629         * Top header beautifications in src/pic16 directory:
8630           device.c, device.h, gen.c, gen.h, genarith.c, glue.c, pcode.c,
8631           pcodeflow.c, pcodeflow.h, pcode.h, pcodepeep.c, pcoderegs.c,
8632           pcoderegs.h, ralloc.c, ralloc.h
8633         * main.c: added top header and GPL license notice
8634         * pcode.c: fixed the if-conditional warning
8635
8636 2003-09-04  Bernhard Held <bernhard AT bernhardheld.de>
8637
8638         * device/lib/_mullong.c: replaced int by short for gcc
8639
8640 2003-08-31  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
8641
8642         * src/SDCCpeeph.c (notVolatile, notVolatileVariable): handle IFX
8643         and JUMPTABLE iCodes properly now (worked by accident before)
8644         * src/mcs51/gen.c (leftRightUseAcc),
8645         * src/ds390/gen.c (leftRightUseAcc): handle IFX and JUMPTABLE
8646         iCode properly now. Use getSize instead of nRegs since a & b
8647         aren't part of the nRegs tally.
8648
8649 2003-08-31  Vangelis Rokas <vrokas AT otenet.gr>
8650
8651         * src/pic16/main.c: corrected offsets of interrupt vectors in _pic16_genIVT()
8652         * src/pic16/pcode.c: fix to disable inserting BANKSEL directive
8653           before instructions that use the _STATUS register
8654
8655 2003-08-31  Bernhard Held <bernhard AT bernhardheld.de>
8656
8657         * src/mcs51/gen.c (freeAsmop): fixed off by one in stack offset (AOP_STK)
8658         * src/mcs51/gen.c (genNearPointerSet): added missing opcode for
8659         fetching of the pointer
8660         * src/mcs51/gen.c (genNearPointerGet): added reuse of PREG,
8661         copied from genNearPointerSet()
8662         * src/mcs51/gen.c (genNearPointerGet): don't pop r0/r1, if RESULTONSTACK
8663         * src/mcs51/gen.c: changed order of freeAsmop(left/right/result)-calls.
8664         If they pop r0/r1 they must be called in the opposite order than aopOp().
8665         * device/lib/_mullong.c: fixed for "--model-large --int-long-reent"
8666         (resp. --stack-auto), prepared for --xstack
8667
8668 2003-08-28  Frieder Ferlemann <Frieder.Ferlemann AT web.de>
8669
8670         * doc/sdccman.lyx: reverted tables to those in cvs 1.64
8671
8672 2003-08-28  Bernhard Held <bernhard AT bernhardheld.de>
8673
8674         * device/lib/_startup.c: quick & dirty fix for ds390/ds400;
8675         these ports have their own __sdcc_external_start()
8676
8677 2003-08-26  Bernhard Held <bernhard AT bernhardheld.de>
8678
8679         pic patch provided by Slade Rich <slade_rich AT yahoo.com>
8680         * src/pic/glue.c (pic14printPublics): fixed bug introduced when symbol
8681         type for bits was changed. It resulted in bit variables becoming
8682         global, which is not permitted in PIC 14 assembly output.
8683
8684 2003-08-23  Frieder Ferlemann <Frieder.Ferlemann AT web.de>
8685
8686         * doc/sdccman.lyx: various additions and updates. Rearranged sections
8687
8688 2003-08-22  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
8689
8690         Z80 and MCS51 linkers complaint if a public symbol is defined
8691         in more than one library module:
8692
8693         * as/mcs51/lklib.c
8694         * link/z80/lklib.c
8695         * as/mcs51/Makefile.in
8696
8697 2003-08-22  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
8698
8699         A few small changes that speed up the peephole optimizer.
8700
8701         * src/SDCCpeeph.c
8702
8703 2003-08-22  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
8704
8705         Try to make the peephole optimizer smarter by maintaining
8706         an association between the assembly source code and the
8707         iCodes that originated them. Put this information to use
8708         with a new peephole rule condition "notVolatile" so that
8709         the rules can be aggressive yet still safe.
8710
8711         * src/SDCCpeeph.c
8712         * src/SDCCpeeph.h
8713         * src/mcs51/gen.c
8714         * src/mcs51/peeph.def
8715
8716 2003-08-20  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
8717
8718         Fixed bug #741761
8719
8720         * src/mcs51/gen.c (aopForSym, leftRightUseAcc),
8721         * src/ds390/gen.c (aopForSym, leftRightUseAcc): preserve A and B
8722         if the left or right operand symbols have the accuse flag set.
8723
8724 2003-08-20  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
8725
8726         Changed the type of the result of the ! (NOT) operator to char;
8727         previously it returned the same type as the source. This allows
8728         us to eliminate all the genFloatNot functions (all of its target
8729         implementations were very buggy) since !float can use the same
8730         code as !long now.
8731
8732         * src/SDCCicode.c (ast2iCode): ! returns char
8733         * src/mcs51/gen.c (genNot, genNotFloat),
8734         * src/ds390/gen.c (genNot, genNotFloat),
8735         * src/z80/gen.c (genNot, genNotFloat),
8736         * src/pic/gen.c (genNot, genNotFloat),
8737         * src/pic16/gen.c (genNot, genNotFloat): eliminated genNotFloat
8738
8739 2003-08-19  Bernhard Held <bernhard AT bernhardheld.de>
8740
8741         pic patch provided by Slade Rich <slade_rich AT yahoo.com>
8742         1. Interrupt would not compile properly. Ensure PCLATH register is saved
8743            during interrupts. Ensure WSAVE is located at a shared bank address.
8744         2. Fixed page selection in some places
8745         3. Fixed BTFSS/C to where necessary use registers directly and not simply
8746            the registers name strings.
8747         4. Fixed "signed / unsigned compare" compiler warnings.
8748         5. The PIC port manages its own allocation of the general purpose
8749            registers, but makes no attempt to reuse them. As a result when
8750            compiling it soon runs out of general purpose registers. Some
8751            additional code was added to the files pcode.c and device.c to walk
8752            through the function call tree and rename the registers so that they
8753            get reused.
8754
8755         * src/pic/device.c
8756         * src/pic/gen.c
8757         * src/pic/glue.c
8758         * src/pic/pcode.c
8759         * src/pic/pcode.h
8760         * src/pic/ralloc.c
8761         * src/pic/ralloc.h
8762         * src/pic/genarith.c: Fixed problems with PIC 14 port in functions
8763         genPlus() & genMinus() when the result is the same as left or right
8764
8765 2003-08-18  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
8766
8767         * src/z80/gen.c (isUnsplitable, fetchPairLong): fixed bug #770454
8768
8769 2003-08-18  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
8770
8771         Made bitfield a distinct type from bit so that bitfields
8772         convert as per ANSI C and bits retain their traditional
8773         boolean style behaviour. Implemented bitfield support in
8774         the z80 port.
8775
8776         * src/SDCCsymt.h,
8777         * src/SDCCsymt.c,
8778         * src/SDCCast.c,
8779         * src/cdbFile.c,
8780         * src/mcs51/gen.c,
8781         * src/ds390/gen.c: bit v bitfield split
8782         * src/z80/gen.c: New support for bitfields
8783         * support/regression/tests/bitfields.c: reenabled z80,
8784         added more tests
8785
8786 2003-08-17  Frieder Ferlemann <Frieder.Ferlemann AT web.de>
8787
8788         Rules 246.x, 247.x relate to bitfields, the others speed up
8789         access to xdata mapped I/O devices.
8790
8791         * src/mcs51/peeph.def: added 26 peepholes 246.x - 248.x, 180.x
8792
8793 2003-08-16  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
8794
8795         Cleaned up genPackBits and genUnpackBits and added two helper
8796         functions, emitPtrByteGet & emitPtrByteSet. Added optimizations
8797         for literal assignments in genPackBits (thanks to Frieder for
8798         reminding me).
8799
8800         * src/mcs51/gen.c
8801         * src/ds390/gen.c
8802
8803 2003-08-16  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
8804
8805         Fixed bug #748310 (pointer to function type mishandled when the
8806         function name is omitted). Also fixed a SIGSEGV when a function
8807         attribute (reentrant, etc) is used on a non-function or on a
8808         function but misplaced before the parameter list.
8809
8810         * src/SDCC.y (abstract_declarator, abstract_declaractor2): fixed
8811         bug #748310
8812         * src/SDCC.y (declarator2_function_attributes): avoided SIGSEGV
8813         * support/Util/SDCCerr.h,
8814         * support/Util/SDCCerr.c: Added func attr misuse error msg
8815
8816 2003-08-13  Bernhard Held <bernhard AT bernhardheld.de>
8817
8818         Fixed bug #787649 by anonymous
8819         * src/SDCCglue.c (emitRegularMap): added emission of sloc for func ptr
8820         * src/ds390/gen.c (aopForSym): fixed func ptr in sloc
8821
8822 2003-08-14  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
8823
8824         Fixed numerous bitfield problems.
8825
8826         * src/SDCC.y: More bitfield related error checking
8827         * src/SDCCsymt.h,
8828         * src/SDCCsymt.c (compStructSize): fixed bitfield offset calc
8829         * support/Util/SDCCerr.h,
8830         * support/Util/SDCCerr.c: Added & edited some bitfield err msgs
8831         * src/mcs51/gen.c (genPackBits, genUnpackBits): fixed mask bugs
8832         * src/ds390/gen.c (genPackBits, genUnpackBits): fixed mask bugs
8833         * support/regression/tests/bitfields.c: tests added
8834
8835 2003-08-13  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
8836
8837         Made the constant following the "interrupt" keyword optional. If
8838         omitted, the function will not automatically be given an entry
8839         in the interrupt vector table (similar to #pragma NOIV, but
8840         less syntacticly kludgy). The interrupt number is also now
8841         range checked. Also fixed a bug in the high order bit example
8842         in the manual.
8843
8844         * src/SDCC.y
8845         * src/SDCCmem.c
8846         * src/SDCCglue.c
8847         * src/SDCCsymt.h
8848         * support/Util/SDCCerr.c
8849         * support/Util/SDCCerr.h
8850         * doc/sdccman.lyx
8851
8852 2003-08-13  Bernhard Held <bernhard AT bernhardheld.de>
8853
8854         * src/SDCCcse.c (algebraicOpts): fix bug converting op from value to type
8855         * src/SDCCicode.c (operandOperation): rewritten some ops
8856         (*, ==, unary_minus) to fix possible overflows and to accord with ANSI
8857         * src/SDCCsymt.c (computeType): literals are handled the same way as any
8858         other type
8859         * src/SDCCval.c (cheapestVal): removed, it doesn't accord with ANSI (can
8860         be re-activated by defining REDUCE_LITERALS)
8861         * src/SDCCval.c (constVal): fixed; hex and octal constants can be
8862         unsigned, but are signed by default
8863         * src/SDCCval.c (constVal): rearranged
8864         * src/SDCCval.c (valMod): preliminary fix
8865         * src/SDCCval.c (valCastLiteral): use TYPE_* types
8866         * support/regression/literalop.c: added, work in progress
8867
8868 2003-08-12  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
8869
8870         Generate warnings for useless declarations like "char data;"
8871         that don't do what new users expect.
8872
8873         * src/SDCC.y
8874         * support/Util/SDCCerr.h
8875         * support/Util/SDCCerr.c
8876
8877 2003-08-09  Bernhard Held <bernhard AT bernhardheld.de>
8878
8879         * src/SDCCval.c (valMult): fix overflow detection of negative int
8880
8881 2003-08-07  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
8882
8883         * src/z80/ralloc.c (joinPushes): made compatible with new signedness
8884
8885         Changes to support big endian targets:
8886
8887         * src/ports.h
8888         * src/SDCCglue.c
8889         * src/avr/main.c
8890         * src/ds390/main.c
8891         * src/izt/i186.c
8892         * src/mcs51/main.c
8893         * src/pic/main.c
8894         * src/pic16/main.c
8895         * src/xa51/main.c
8896         * src/z80/main.c
8897
8898 2003-08-06  Bernhard Held <bernhard AT bernhardheld.de>
8899
8900         * src/SDCCval.c (cheapestVal): changed behaviour to the same as constVal()
8901         * device/lib/time.c: fixed warning "integer overflow in expression"
8902
8903 2003-08-05  Bernhard Held <bernhard AT bernhardheld.de>
8904
8905         * src/SDCCval.c (cheapestVal, valueFromLit): use TYPE_* types
8906         * src/SDCCval.c (constVal): changed default to signed; hex and octal
8907         constants are unsigned; added recognition of "u" flag for unsigned
8908         * src/SDCCval.c (valMult): fixed signdness, added warning for overflow
8909         * src/SDCCval.c (valDiv, valMod): fixed signdness
8910         * src/SDCCicode.c (operandOperation): fixed critical typo; fixed
8911         signedness of modulo, left and right shift
8912         * support/Util/SDCCerr.c: added warning "integer overflow in expression"
8913         * support/Util/SDCCerr.h: added warning W_INT_OVL
8914         * src/SDCCast.c (decorateType): fixed gcc3.3 warning
8915         * src/SDCCast.c (ast_print): improved output of constants
8916
8917 2003-08-04  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
8918
8919         Fixed some warnings when building with MSVC:
8920
8921         * as\mcs51\asdata.c
8922         * as\z80\asdata.c
8923         * as\mcs51\asm.h
8924         * as\z80\asm.h
8925         * link\z80\aslink.h
8926         * link\z80\lkdata.c
8927         * link\z80\lkeval.c
8928         * link\z80\lkgb.c
8929         * link\z80\lkihx.c
8930         * link\z80\lks19.c
8931         * link\z80\lksym.c
8932         * support\cpp2\cpplib.c
8933         * src\ds390\gen.c
8934         * src\mcs51\gen.c
8935
8936 2003-08-03  Bernhard Held <bernhard AT bernhardheld.de>
8937
8938         * src/SDCCast.c (constExprTree): fix bug #781827 by Carl Worth <cworth AT isi.edu>
8939
8940 2003-08-01  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
8941
8942         * support\librarian\clean.mk: Do not remove Makefile.
8943         * support\librarian\Makefile: added.
8944
8945 2003-08-01  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
8946
8947         Added librarian to MSVC build:
8948         * all.dsp
8949         * sdcc.dsw
8950         * support\librarian\librarian.dsp
8951
8952         'configure' not needed for librarian, removed:
8953         * support\librarian\configure
8954         * support\librarian\configure.in
8955         * support\librarian\config_in.h
8956         * support\librarian\Makefile.in
8957
8958         Hopefully these ones built the librarian and the rest of sdcc properly:
8959         * Makefile
8960         * Makefile.common.in
8961
8962         Messed up 'configure', so revert to previous version:
8963         * configure
8964         * configure.in
8965
8966 2003-07-31  Bernhard Held <bernhard AT bernhardheld.de>
8967
8968         * src/SDCCicode.c (operandOperation): 3. fix, this time for Alpha; ULONG has 64 bits
8969         there, while the mantissa of a double is "only" 53 bits wide.
8970
8971 2003-07-31  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
8972
8973         Adding sdcclib to the build.  MSVC project coming soon.
8974         Files added/changed:
8975
8976         * support\librarian\clean.mk
8977         * support\librarian\configure
8978         * support\librarian\configure.in
8979         * support\librarian\config_in.h
8980         * support\librarian\Makefile.bcc
8981         * support\librarian\Makefile.in
8982         * support\librarian\sdcclib.c
8983         * Makefile.bcc
8984         * Makefile
8985         * Makefile.common.in
8986         * configure
8987         * configure.in
8988
8989 2003-07-29  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
8990
8991         Linker now complaints if linked modules have conflicting options, for
8992         example, one compiled using --model-large and another one compiled with
8993         --model-small.  The following files were modified:
8994
8995         * as\mcs51\asdata.c
8996         * as\mcs51\aslink.h
8997         * as\mcs51\asm.h
8998         * as\mcs51\asmain.c
8999         * as\mcs51\asout.c
9000         * as\mcs51\i51pst.c
9001         * as\mcs51\lkdata.c
9002         * as\mcs51\lklibr.c
9003         * as\mcs51\lkmain.c
9004         * as\z80\asdata.c
9005         * as\z80\asm.h
9006         * as\z80\asmain.c
9007         * as\z80\asout.c
9008         * as\z80\z80pst.c
9009         * link\z80\aslink.h
9010         * link\z80\lkdata.c
9011         * link\z80\lklibr.c
9012         * link\z80\lkmain.c
9013         * src\SDCCglue.c
9014
9015 2003-07-28  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
9016
9017         *link/z80/aslink.h, link/z80/lklibr.c, as/mcs51/aslink.h,
9018         as/mcs51/lklibr.c: Generate a warning when a library is not found.
9019
9020 2003-07-28  Bernhard Held <bernhard AT bernhardheld.de>
9021
9022         * src/z80/mappings.i: fix _mul[us][int,long] entries
9023
9024 2003-07-26  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
9025
9026         *src/SDCCmain.c: do not search for crt0.o when using --nostdlib
9027
9028 2003-07-24  Bernhard Held <bernhard AT bernhardheld.de>
9029
9030         * src/SDCCicode.c (operandOperation): really fixed problem with bitops
9031         * support/regression/tests/bitopcse.c: added
9032         fixed warning:
9033         * src/avr/gen.c:
9034         * src/pic/gen.c:
9035         * src/pic16/gen.c:
9036         * src/z80/gen.c:
9037         * src/xa51/gen.c:
9038
9039 2003-07-24  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
9040
9041         added support for new library format to z80, gbz80 linkers:
9042         *link/z80/aslink.h
9043         *link/z80/lklex.c
9044         *link/z80/lklib.c
9045         *link/z80/lklist.c
9046
9047 2003-07-24  Bernhard Held <bernhard AT bernhardheld.de>
9048
9049         * src/SDCCicode.c (operandOperation): fixed problem with bitops and 0xffffffff;
9050         after {double d = 0xffffffff; long l = d;} l will be 0x80000000 (LONG_MIN)
9051
9052 2003-07-23  Bernhard Held <bernhard AT bernhardheld.de>
9053
9054         added DUMMY_READ_VOLATILE:
9055         * src/SDCC.y:
9056         * src/avr/gen.c:
9057         * src/xa51/gen.c:
9058         * src/z80/gen.c:
9059         * src/pic/gen.c:
9060         * src/pic16/gen.c:
9061         * src/mcs51/gen.c:
9062         * src/ds390/gen.c:
9063         * src/SDCCcse.c (algebraicOpts): many improvements
9064         * src/SDCCcse.h: removed algebraicOpts()
9065         * src/SDCCicode.c (picDummyRead): added
9066
9067 2003-07-23  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
9068
9069         * as/mcs51/lkmem.c: Changed message "Insufficient DRAM memory" to
9070         "Insufficient space in data memory".
9071
9072 2003-07-20  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
9073
9074         * src/mcs51/gen.c: fixed bug #771358
9075         * src/z80/gen.c: fixed bug #759087
9076
9077 2003-07-20  Bernhard Held <bernhard AT bernhardheld.de>
9078
9079         * src/pic16/glue.c: minor cleanup by Vangelis
9080
9081 2003-07-19  Frieder Ferlemann <Frieder.Ferlemann AT web.de>
9082
9083         * device/include/regc515c.h: fixed #758477
9084         * device/lib/_gptrget.c: saving some cycles in generic pointer get
9085         * device/lib/_gptrput.c: saved a few bytes
9086         * my tab spacing is 8, yours too?)
9087         * device/lib/_ser.c: process RX bytes earlier than TX bytes
9088         * device/lib/serial.c: process RX bytes earlier than TX bytes
9089         * src/mcs51/gen.c(genGenPointerGet/Set): removed writing of type after postincrement
9090
9091 2003-07-18  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
9092
9093         * src/z80/gen.c: fixed some right shift bugs (#772726 among them)
9094
9095 2003-07-17  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
9096
9097     * link/z80/lklibr.c: fixed bug when there is a '.' in a library path.
9098
9099 2003-07-17  Bernhard Held <bernhard AT bernhardheld.de>
9100
9101         * device/lib/Makefile.in: bad fix, reverted to 1.43
9102
9103 2003-07-16  Bernhard Held <bernhard AT bernhardheld.de>
9104
9105         * device/lib/Makefile.in: added missing z80 object files
9106
9107 2003-07-14  Bernhard Held <bernhard AT bernhardheld.de>
9108
9109         * src/SDCCcse.c (algebraicOpts): CSE fun with &|^ and 0x00/0xff literals
9110         pic16 progress by Vangelis:
9111         * src/SDCCglobl.h:
9112         * src/SDCCmain.c:
9113         * src/pic/Makefile:
9114         * src/pic:
9115         * pic/Makefile:
9116         * pic16/device.c:
9117         * pic16/device.h:
9118         * pic16/gen.c:
9119         * pic16/gen.h:
9120         * pic16/genarith.c:
9121         * pic16/glue.c:
9122         * pic16/main.c:
9123         * pic16/pcode.c:
9124         * pic16/pcode.h:
9125         * pic16/pcodepeep.c:
9126         * pic16/peeph.def:
9127
9128 2003-07-13  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
9129
9130     * src/SDCCmain.c, src/SDCCglobl.h: added option --no-std-crt0
9131
9132 2003-07-12  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
9133
9134     * sdcc.dsw, all.dsp, link/z80/linkgbz80.dsp, as/z80/as-gbz80.dsp:
9135     added gbz80 build to MSVC project.
9136     * src/SDCCmain.c, src/SDCCglue.c, src/z80/main.c, src/z80/z80.dsp,
9137     link/z80/aslink.h, linkz80.dsp: cleaned up z80 and gbz80 asm files
9138     from 8051 stuff and setup so it links using a .lnk file.
9139
9140 2003-07-06  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
9141
9142     * support/librarian/sdcclib.c: sdcc librarian.
9143     * as/mcs51/aslink.h, as/mcs51/lklib.c: Support for libraries created
9144     with sdcclib.
9145
9146 2003-07-03  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
9147
9148     * as/mcs51/lkmain.c: properly handle extensions in function afile.
9149
9150 2003-07-02  Borut Razem <borut.razem AT siol.net>
9151
9152         * src/port.h, src/SDCCmain.c, src/pic/glue.h, src/pic/main.c,
9153         src/pic16/glue.h, sdcc/src/pic16/main.c, src/izt/i186.c,
9154         src/izt/tlcs900h.c, src/avr/main.c, src/ds390/main.c, src/mcs51/main.c,
9155         src/xa51/main.c, src/z80/main.c:
9156         virtualization of glue() function: each port has it's own glue function,
9157         which is accessed by do_glue function pointer in PORT.general structure
9158
9159 2003-07-01 Kevin Vigor <kevin AT vigor.nu>
9160
9161         * DS800C400 fun, improved ROM interface and tinibios.
9162
9163 2003-06-27 Kevin Vigor <kevin AT vigor.nu>
9164
9165         * More support for DS80C400. Now includes beginning of interface to ROM.
9166
9167 2003-06-25  Bernhard Held <bernhard AT bernhardheld.de>
9168
9169         * src/mcs51/gen.c (gencjneshort): fixed bug #760345
9170
9171 2003-06-20  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
9172
9173         * as/mcs51/lkaomf51.c: Make sure the size of the last procedure is correct.
9174
9175 2003-06-19  Borut Razem <borut.razem AT siol.net>
9176
9177         * src/z80/main.c: fixed Z80 port again: missing -k library paths in linker command line
9178
9179 2003-06-19  Borut Razem <borut.razem AT siol.net>
9180
9181         * src/SDCCutil.h, src/SDCCutil.c, src/SDCCglobl.h, src/SDCCmain.c, src/z80/main.c:
9182         fixed Z80 port - crt0.o: cannot open.
9183
9184 2003-06-19  Bernhard Held <bernhard AT bernhardheld.de>
9185
9186         * support/Util/MySystem.c (merge_command): revert bad fix
9187
9188 2003-06-18  Borut Razem <borut.razem AT siol.net>
9189
9190         * src/SDCC.lex, src/SDCCmain.c: fixed some warnings, introduced with changes made 15.06.1003
9191
9192 2003-06-18  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
9193
9194         * src/SDCCglobl.h, src/SDCCmain.c, doc/sdccman.lyx:
9195         option --use-stdout sends errors to stdout instead of stderr.
9196
9197 2003-06-18  Bernhard Held <bernhard AT bernhardheld.de>
9198
9199         * support/Util/MySystem.c (merge_command): quick fix for Linux segfault with \"cmd\" arg
9200
9201 2003-06-15  Borut Razem <borut.razem AT siol.net>
9202
9203         * support/cpp2/sdcc.h: HAVE_DOS_BASED_FILE_SYSTEM defined for _WIN32
9204         * src/SDCC.lex: cloneXxx and copyAndFreeXxx functions for options and optimize stack handling
9205         * src/SDCCglobl.h, src/SDCCmain.c, src/ds390/main.c, src/mcs51/main.c, src/z80/main.c:
9206         fixed width array of pointers replaced with sets;
9207         multiple include and lib paths ared transferred to preprocessor and linker
9208         * src/SDCCset.c, src/SDCCset.h: added function setFromSetNonRev() and mergeSets()
9209         * src/SDCCsymt.c: reimplemented function inCalleeSaveList() by using sets instead
9210         fixed width array of pointers
9211         * src/SDCCutil.c, src/SDCCutil.h: added functions fputStrSet(), appendStrSet(), joinStrSet();
9212         removed functions addToList(), join(), joinn(), pathCharsEquivalent(), pathCharTransform(),
9213         fixupPath(), getPathDifference()
9214         * src/ds390/gen.c, src/mcs51/gen.c: reimplemented function  inExcludeList() by using sets instead
9215         fixed width array of pointers
9216
9217 2003-06-11  Bernhard Held <bernhard AT bernhardheld.de>
9218
9219         * src/pic16/ralloc.c: fix warnings
9220         * src/pic16/pcode.c: fix warning
9221
9222 2003-06-10  Scott Dattalo  <scott AT dattalo.com>
9223
9224          Scott D. for Vangelis Rokas (vrokas AT otenet.gr). I (scott) don't
9225         know all the details, but essentially this set of changes enable
9226         the pic16 port to generate movff instructions and generate assembler
9227         directives,
9228         * src/SDCCmain.c:
9229         * src/pic16/gen.c:
9230         * src/pic16/glue.c:
9231         * src/pic16/pcode.c:
9232         * src/pic16/device.c:
9233         * src/pic16/main.c:
9234         * src/pic16/pcode.h:
9235         * src/pic16/pcoderegs.c:
9236         * src/pic16/ralloc.c:
9237         * src/pic16/ralloc.h:
9238
9239 2003-06-08  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
9240
9241         * support/Util/SDCCerr.c, src/SDCCglobl.h, src/SDCCmain.c, doc/sdccman.lyx:
9242         added option --vc, so sdcc errors and warnings are compatible with
9243         Microsoft Visual Studio.
9244
9245 2003-06-07  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
9246
9247         * device/lib/_atof.c, device/lib/Makefile.in, device/include/stdlib.h,
9248           device/lib/libfloat.lib: added atof function.
9249
9250 2003-06-04  Bernhard Held <bernhard AT bernhardheld.de>
9251
9252         * doc/sdccman.lyx: updated to Lyx 1.3
9253         * doc/cdbfileformat.lyx: updated to Lyx 1.3
9254         * doc/test_suite_spec.lyx: updated to Lyx 1.3
9255         * doc/Makefile: added fix for the \tabularnewline problem, thanks to Jesus
9256
9257 2003-06-03  Bernhard Held <bernhard AT bernhardheld.de>
9258
9259         * src/SDCCpeeph.c: separate peepRules2pCode() for pic16 by "Vangelis Rokas" <vrokas AT otenet.gr>
9260
9261 2003-06-02  Frieder Ferlemann <Frieder.Ferlemann AT web.de>
9262
9263         * doc/sdccman.lyx: cvs revision keywords, passing pdf information in latex preamble,
9264           additions to the "related tools/documentation" section
9265
9266 2003-06-02  Bernhard Held <bernhard AT bernhardheld.de>
9267
9268         * src/SDCCglue.c (tempfileandname): added check for missing TMP/TEMP/TMPDIR variable
9269
9270 2003-05-29  Bernhard Held <bernhard AT bernhardheld.de>
9271
9272         * src/pic/device.c: added 16F819, patch by "David I. Lehn" <dlehn AT vt.edu>
9273         * src/SDCCcse.c (algebraicOpts): fixed "c * 1"
9274
9275 2003-05-28  Bernhard Held <bernhard AT bernhardheld.de>
9276
9277         * doc/sdccman.lyx: fix double dash and other minor things
9278         * doc/Makefile: fix double dash
9279
9280 2003-05-28  Karl Bongers(patches from Martin Helmling)
9281         * debugger/mcs51/sdcdb.c,cmd.c,break.c and .h files. Martin adds
9282           condition and ignore commands.
9283
9284 2003-05-28  Frieder Ferlemann <Frieder.Ferlemann AT web.de>
9285
9286         * doc/sdccman.lyx: Changes all over, index improved, smaller margins. The manual
9287           is in parts still quite out of date, I did changes as far as I felt makes sense
9288           for a non-native english speaker.
9289           Please feel free to add to the manual or to correct my changes.
9290         * doc/Makefile: undid touching the date of intermediate tex files.
9291
9292 2003-05-26  Frieder Ferlemann <Frieder.Ferlemann AT web.de>
9293
9294         * doc/sdccman.lyx: Manual has an index now
9295
9296 2003-05-25  Bernhard Held <bernhard AT bernhardheld.de>
9297
9298         Finalize muluint/mulsint and mululong/mulslong merging:
9299         * device/lib/_mulint.c
9300         * device/lib/_mullong.c
9301         * device/lib/gbz80/mul.s
9302         * device/lib/gbz80/stubs.s
9303         * device/lib/z80/mul.s
9304         * device/lib/z80/stubs.s
9305         * src/SDCCsymt.c (initCSupport)
9306
9307 2003-05-25  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
9308
9309         * as/mcs51/lkaomf51.c: Address space 'z' was missing.
9310         * src/avr/avr.dsp, src/ds390/ds390.dsp, src/mcs51/mcs51.dsp,
9311           src/pic/pic.dsp, src/pic16/pic16.dsp, src/xa51/xa51.dsp,
9312           src/x80/z80.dsp: peep.rul is bigger now, so /Zm1000 is used
9313           instead of /Zm500.
9314
9315 2003-05-25  Frieder Ferlemann <Frieder.Ferlemann AT web.de>
9316
9317         * src/mcs51/peeph.def: added rules 244.x, 245.x. Although they pass
9318           the regression tests I'm not brave enough to enable 245.b, 245.c
9319         * doc/sdccman.lyx: added latex preamble for hyperref package.
9320           Using pdflatex this will give you a hyperlinked pdf file with
9321           bookmarks. (prepend '%' before /usepackage if this breaks something)
9322
9323 2003-05-24  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
9324
9325          * doc/sdccman.lyx: updated information about .adb files (fixed bug 742649)
9326
9327 2003-05-22  Bernhard Held <bernhard AT bernhardheld.de>
9328
9329         * src/pic16/pcode.c (pic16_get_op_from_instruction): fixed a gcc 3.x warning
9330
9331 2003-05-21    <johan AT balder>
9332
9333         * src/SDCCglue.c (printIval): fixed bug #739934
9334
9335 2003-05-19  Bernhard Held <bernhard AT bernhardheld.de>
9336
9337         Applied patch from bug 737905 (renamed yylineo to mylineno):
9338         * src/altlex.c
9339         * src/SDCCast.c
9340         * src/SDCglobl.h
9341         * src/SDCC.lex
9342         * src/SDCCsymt.c
9343         * src/SDCCval.c
9344         * src/pic16/pcode.c: Cleaned warnings
9345         * src/pic16/pcodeflow.c: Cleaned warnings
9346         * src/pic16/pcoderegs.c: Cleaned warnings
9347
9348 2003-05-19  Scott Dattalo  <scott AT dattalo.com>
9349
9350         * src/pic16/pcode.c: Cleaned warnings
9351         * src/pic16/pcodepeep.c: Cleaned warnings
9352         * src/pic16/ralloc.c: Cleaned warnings
9353
9354 2003-05-19  Bernhard Held <bernhard AT bernhardheld.de>
9355
9356         * doc/sdccman.lyx: fixed bug 739745
9357         * src/pic16/pcode.c (pic16_get_op): fixed warning on alpha
9358
9359 2003-05-18  Bernhard Held <bernhard AT bernhardheld.de>
9360
9361         * src/port.h: removed DEFAULT_PORT, it's not yet pic16 ;-)
9362         it can be defined with CFLAGS when running configure
9363         * src/SDCCmain.c: fixed compiling + linking with object files
9364
9365 2003-05-18  Vangelis Rokas (vrokas AT otenet.gr)
9366
9367         * configure.in: configure for pic16 port,
9368             added --disable-pic16-port
9369         * sdccconf_in.h: added macro OPT_DISABLE_PIC16
9370         * src/SDCCmain.c: linkOptions is changed to set *,
9371             added if/endif conditional macros to remove options help
9372             messages from optionsTable when a port is not configured, added
9373             support for the PIc16 port in the ports table, when executing
9374             the compiler with no port specified on command line, a default
9375             port is selected with the new macro DEFAULT_PORT which is
9376             defined in port.h, in setDefaultOptions() linkOptions is removed
9377             from initialization assignment, since now it is a set,
9378             parseCmdLine uses setParseWithComma for linkOptions, in
9379             linkEdit() linkOptions are accessed with new function indexSet()
9380             which returns the i'th item of a set variable. See SDCCset.c, in
9381             linkEdit() when calling buildCmdLine(), added linkOptions as
9382             last argument. Now users can pass arguments to gplink via the
9383             -Wl option, main() uses pic16glue() to glue up pic16 programs
9384         * src/SDCCpeeph.c: various changes to support pic16
9385         * src/SDCCset.c: added function  void *indexSet(set *, int)  to
9386             return the i'th item of the set
9387         * src/SDCCset.h: added function prototype for indexSet()
9388         * src/SDCCsymt.c: in checkSClass(), added support for PIC16
9389         * src/clean.mk: added pic16 in CLEANALLPORTS variable
9390         * src/port.h: added TARGET_ID_PIC16,TARGET_IS_PIC16 macro,
9391             added macro DEFAULT_PORT
9392         * src/pic/main.c: corrected arguments of gplnk in _linkCmd
9393         * src/pic16/gen.c: bug fix in genCpl(), now the correct code is
9394             generated
9395         * src/pic16/glue.c: commented out some error producing lines
9396         * src/pic16/main.c: __config directives are commented out to stop
9397             gpasm complaining and test the linkage with gplink, _linkCmd and
9398             _asmCmd changed to be more gplink and gpasm friendly
9399         * src/pic16/peeph.def: peep rule 3 is commented out, since it
9400             produced an error when parsed, peep rule 12 is added to utilize
9401             movff, but it is commented out since the pCode does not support
9402             yet a command with 2 address arguments
9403
9404 2003-05-18    <johan AT balder>
9405
9406         * src/ds390/gen.c (genArrayInit): removed obsolete and buggy ARRAYINIT
9407         * src/ds390/main.c (genArrayInit): removed obsolete and buggy ARRAYINIT
9408 2003-05-17  Karl Bongers(apply patches from Martin Helmling)
9409
9410         * debugger/mcs51/sdcdb.c,cmd.c,break.c and .h files.
9411   Added feature to script commands from file.
9412
9413 2003-05-14  Bernhard Held <bernhard AT bernhardheld.de>
9414
9415         * device/lib/_strtok.c: fixed bug #734355 by Lenny Story and Tim Woodall
9416         * src/SDCCutil.c: include ctype.h for win32
9417
9418 2003-05-13  Bernhard Held <bernhard AT bernhardheld.de>
9419
9420         * src/pic16/*: removed CR from many files, reported by Vangelis Rokas
9421
9422 2003-05-12  Karl Bongers(apply development patches from Martin Helmling)
9423
9424         * debugger/mcs51/sdcdb.c,simi.c,cmd.c,break.c and .h files.
9425   Fixed so you can set breakpoints prior to run, run does not stop
9426   on entry now.  Add tbreak.  Other enhancements and fixes for use
9427   with ddd.
9428
9429 2003-05-12  Borut Razem <borut.razem AT siol.net>
9430
9431         * src/SDCCmain.c: fixed the problem with searching the DATADIR as the last resort on *nix
9432
9433 2003-05-11  Borut Razem <borut.razem AT siol.net>
9434
9435         * src/SDCCutil.c: WIN32 version of getBinPath() calls GetModuleFileName() to determine
9436         the path of bin directory, so that PATH is the only env. variable, which has to be set
9437         in case of standard installation.
9438         * src/ds390/ds390.dsp: increased value of /Zm option to 1000
9439         * src/pic/main.c: add quotes to file name parameters for gplink and gpasm
9440         * src/SDCCglobl.h, src/SDCCmain.c, doc/sdccman.lyx: added --print-search-dirs command line option
9441
9442 2003-05-04  Bernhard Held <bernhard AT bernhardheld.de>
9443
9444         * src/SDCCmain.c (linkEdit): fixed buffer overflow for gbz80
9445         * support/regression/Makefile: inter-port-clean is no longer nesessary, the
9446         temp files are in the port dir; clean the gen/test directory when
9447         generating new test.c
9448         * support/regression/ports/host/spec.mk: defined OBJEXT for target clean
9449         * support/regression/tests/vaargs.c: fixed gcc 3.3 warning
9450         * support/regression/tests/zeropad.c: added
9451
9452 2003-05-09    <johan AT balder>
9453
9454         * src/SDCCglue.c: fixed bug #597940
9455
9456 2003-05-05  Karl Bongers(apply patches from Martin Helmling)
9457
9458         * debugger/mcs51/sdcdb.c,simi.c,cmd.c,symtab.c and .h files.
9459   cache sfr, optimize next,step, fix off by one sourceline,
9460   support ddd list function.
9461         * sim/ucsim/cmd.src/newcmd.cc - small fix for sdcdb use.
9462
9463 2003-05-04  Bernhard Held <bernhard AT bernhardheld.de>
9464
9465         * support/regression/HTMLgen.py: added compare_s2f()
9466         * support/regression/Makefile: redo 1.27
9467         * support/regression/generate-cases.py: redo 1.5
9468
9469 2003-04-30  Bernhard Held <bernhard AT bernhardheld.de>
9470
9471         * support/regression/tests/float.c: workaround 33 bit hex constant
9472         * support/regression/tests/simplefloat.c: fix division for host
9473
9474 2003-04-29  Scott Dattalo  <scott AT dattalo.com>
9475
9476         * src/pic/pcoderegs.c Applied patch from Jim Hawkridge <jim AT jimhawkridge.uk.eu.org>
9477         that tame's the PIC's over-aggressive optimizer.
9478
9479 2003-04-29  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
9480
9481          * src.dsw, link/z80/aslink.h, link/z80/linkz80.dsp: z80 linker
9482          support for MSVC.
9483
9484 2003-04-29  Kevin Vigor <kevin AT vigor.nu>
9485
9486         Initial support for DS80C400. "Hello world" runs on TINIm400
9487         (with polled I/O).
9488
9489 2003-04-28  Karl Bongers(apply patches for Martin Helmling)
9490
9491          * debugger/mcs51/sdcdb.c,simi.c,cmd.c,symtab.c and .h files.
9492          * Some notes on ddd usage added in debugger/README
9493          Martin Helmling adding more features and fixes for ddd GUI debugger.
9494          Code added for nexti, stepi, up, down, and other adjustments.
9495
9496 2003-04-28  Scott Dattalo  <scott AT DATTALO.COM>
9497
9498         * src/pic/pCodepeep.c non-wildcard asmops are now handled
9499         * src/pic/peeph.def Added two rules to optimize carry manipulation
9500         * src/pic/* removed debug printfs
9501
9502 2003-04-28  Bernhard Held <bernhard AT bernhardheld.de>
9503
9504         * debugger/mcs51/cmd.c: added header newalloc.h
9505
9506 2003-04-26  Bernhard Held <bernhard AT bernhardheld.de>
9507
9508         * as/Makefile: new EXEEXT
9509         * as/z80/Makefile: remove trailing slash of BUILDIR
9510         * as/z80/clean.mk: new EXEEXT
9511         * Makefile.common.in: add to CFLAGS (and others), don't replace it
9512         * support/cpp2/Makefile.in: new EXEEXT
9513         * src/pic/glue.c (pic14emitRegularMap): fixed warning
9514
9515 2003-04-24  Bernhard Held <bernhard AT bernhardheld.de>
9516
9517         Cygwin's gcc always appends .exe: 'gcc -o a a.c' creates a.exe;
9518         EXEEXT was introduced to fix all related problems with targets
9519         "clean", "install" and "uninstall"; a couple of further flaws
9520         especially with "clean" have been fixed too
9521         * as/mcs51/Makefile.in
9522         * as/mcs51/clean.mk
9523         * as/z80/Makefile
9524         * Makefile
9525         * clean.mk
9526         * debugger/mcs51/Makefile.in
9527         * debugger/mcs51/clean.mk
9528         * link/z80/Makefile
9529         * link/z80/Makefile.in
9530         * link/z80/clean.mk
9531         * link/Makefile
9532         * packihx/Makefile.in
9533         * packihx/clean.mk
9534         * sim/ucsim/Makefile
9535         * sim/ucsim/clean.mk
9536         * sim/ucsim/avr.src/Makefile.in
9537         * sim/ucsim/avr.src/clean.mk
9538         * sim/ucsim/s51.src/Makefile.in
9539         * sim/ucsim/s51.src/clean.mk
9540         * sim/ucsim/xa.src/Makefile.in
9541         * sim/ucsim/xa.src/clean.mk
9542         * sim/ucsim/z80.src/Makefile.in
9543         * sim/ucsim/z80.src/clean.mk
9544         * sim/ucsim/main_in.mk
9545         * sim/ucsim/packages_in.mk
9546         * sim/ucsim/gui.src/Makefile.in
9547         * sim/ucsim/gui.src/serio.src/Makefile.in
9548         * sim/ucsim/gui.src/serio.src/clean.mk
9549         * src/Makefile.in
9550         * src/clean.mk
9551         * support/cpp2/Makefile.in
9552         * support/cpp2/clean.mk
9553         * support/makebin/Makefile
9554         * support/makebin/clean.mk
9555         * support/scripts/sdcc_mingw32: --program-suffix no longer needed
9556         * doc/sdccman.lyx: --program-suffix no longer needed
9557
9558 2003-04-23  Karl Bongers(apply patches for Martin Helmling)
9559
9560          * debugger/mcs51/sdcdb.c,simi.c,cmd.c,..
9561          Martin Helmling added support for ddd GUI debugger.
9562          Code added to display assembly, set variables, and other commands
9563          to interface to ddd.
9564
9565 2003-04-23  Bernhard Held <bernhard AT bernhardheld.de>
9566
9567         * as/Makefile: fix target clean
9568         * as/clean.mk: fix target clean
9569         * as/z80/clean.mk: fix target clean
9570
9571 2003-04-22  Bernhard Held <bernhard AT bernhardheld.de>
9572
9573         * Makefile.common.in: added  AT EXEEXT AT
9574         * configure.in: removed all mingw32 stuff
9575         * configure: rebuilt from configure.in
9576         * doc/sdccman.lyx: updated section "installation"
9577         * support/scripts/sdcc_mingw32: adapted to configure
9578         * support/scripts/sdcc_cygwin_mingw32: added
9579
9580 2003-04-22  Scott Dattalo  <scott AT dattalo.com>
9581
9582         * src/pic Added object file support for the PIC port
9583         * src/pic Applied patch from Craig Franklin (this started the object file support)
9584         * src/regression Updated the PIC regression tests for object files
9585
9586 2003-04-20  Borut Razem <borut.razem AT siol.net>
9587
9588         * sdcc/as/mcs51/lklex.c: make getfid() more robust and fixed gcc warning:
9589           lklex.c: In function `getfid':
9590           lklex.c:203: warning: array subscript has type `char'
9591         * src/SDCCglobl.h: small change in stack handling macros, to avoid crash when compiled
9592           with MSVC with global optimization enabled (probably an cl compiler bug ;-)
9593         * support/Util/SDCCerr.c, support/Util/SDCCerr.h: added function fatal(), called from
9594           stack handling macros
9595
9596 2003-04-19  Borut Razem <borut.razem AT siol.net>
9597
9598         * "handling space characters in file path" task:
9599         * src/SDCCmacro.c: fixed bug in handlig quote at the end of line
9600         * support/Util/BuildCmd.c: define par as NULL if parameter value is invalid
9601         * support/Util/MySystem.h: make it self-sufficient
9602         * src/avr/main.c, src/ds390/main.c, src/mcs51/main.c, src/pic/main.c, src/xa51/main.c,
9603           src/z80/main.c, sdcc/as/mcs51/lklex.c:
9604           handling space characters in file path
9605         * src/SDCCmain.c: introduced setDataPaths() function, {datadir} macro
9606           (it will be used by assemblers, which have their own includes, e.g. gpasm)
9607         * support/Util/MySystem.c: handling space characters in executable's path
9608
9609 2003-04-19  Bernhard Held <bernhard AT bernhardheld.de>
9610
9611         * as/z80/Makefile: fix permanent rebuild of z80
9612         * sim/ucsim/gui.src/Makefile.in: target "install" builds the same packages as target "all"
9613         * support/regression/tests/bitfields.c: added Johan's bitfields.c
9614
9615 2003-04-18      Kevin Vigor <kevin AT vigor.nu>
9616
9617         * src/SDCCopt.c: add special case optimization to replace modulo by
9618           a power of two with a bitwise AND.
9619
9620 2003-04-18    <johan AT balder>
9621
9622         * src/mcs51/gen.c (getFreePtr): fixed bug #635354
9623
9624 2003-04-17    <johan AT balder>
9625
9626         * src/mcs51/ralloc.c (packRegsForAssign): fixed bug #716790 and removes lot's of redundant register usage around function calls
9627         * src/mcs51/ralloc.c (packRegisters): fixed bug #720667
9628
9629 2003-04-13  Borut Razem <borut.razem AT siol.net>
9630
9631         * doc/sdccman.lyx: updated info about #pragma SAVE/RESTORE nesting
9632         * configure.in, configure: fixed problems on cygwin/WinCVS environmet with ports.* line endings;
9633           fixed mingw problem in adl_NORMALIZE_PATH
9634
9635 2003-04-12  Borut Razem <borut.razem AT siol.net>
9636
9637         * fixed "#pragma SAVE/RESTORE can not be nested":
9638         * src/SDCC.lex: reworked pragma handling functions
9639         * sdcc/src/SDCCglobl.h: reworked stack handling macros
9640         * support/Util/SDCCerr.c, support/Util/SDCCerr.h: added E_STACK_VIOLATION error
9641
9642 2003-04-12  Bernhard Held <bernhard AT bernhardheld.de>
9643
9644         * src/SDCCutil.c (pathEquivalent): defined but not used
9645         * debugger/mcs51/sdcdb.c: replace SDCC_LIB_DIR
9646         * configure.in: remove sdcc_datadir, sdcc_lib_dir and sdcc_include_dir
9647         * configure: rebuilt from configure.in
9648         * sdccconf_in.h: remove SDCC_LIB_DIR and SDCC_INCLUDE_DIR
9649         * sdcc_vc_in.h: remove SDCC_LIB_DIR and SDCC_INCLUDE_DIR
9650         * device/include/Makefile.in: replace sdcc_datadir
9651         * device/lib/Makefile.in: replace sdcc_datadir
9652         * Makefile.common.in: add LDFLAGS from configure
9653         * packihx/Makefile.in: use LDFLAGS
9654         * src/Makefile.in: use LDFLAGS
9655         * support/cpp2/Makefile.in: add LDFLAGS from configure
9656         * support/makebin/Makefile: use LDFLAGS
9657         * .version: bumped version number to 2.3.5
9658
9659 2003-04-12  Borut Razem <borut.razem AT siol.net>
9660
9661         * completed "different paths" task:
9662         * src/SDCCmacro.c: fixed bug in handling quotes
9663         * src/SDCCutil.c, src/SDCCutil.c: rewritten getPrefixFromBinPath()
9664         * src/SDCCmain.c: _discoverPaths() replaced with setBinPaths(), setIncludePath() and setLibPath()
9665
9666 2003-04-12  Bernhard Held <bernhard AT bernhardheld.de>
9667
9668         * src/pic/pcoderegs.c (Remove1pcode): fix warning on alpha
9669
9670 2003-04-11 kevin Vigor <kevin AT vigor.nu>
9671
9672         * ds390/gen.c ds390/peeph.def: fix bug 706781
9673
9674 2003-04-11  Borut Razem <borut.razem AT siol.net>
9675
9676         * support/Util/dbuf.c, support/Util/dbuf.h: update to version 1.1.1 - re-added C++ stuff to make it still more portable
9677
9678 2003-04-10  Scott Dattalo  <scott AT dattalo.com>
9679
9680         * src/pic/* Applied the pointer-to-function patch from Steve Tell.
9681         * src/pic/* Fixed several pointer bugs. (PIC port broke when the ruonly bit was
9682          set - this bit used to not be set...).
9683         * src/pic/gen.c Fixed buf 609268 ==> x = (x+1) & 0xf; generated
9684           bad code in PIC Port
9685         * src/regression/and2.c added to test bug 609268
9686         * src/regression/Makefile added and2.c to regression test
9687
9688
9689 2003-04-08    <johan AT CP255758-A>
9690
9691         * src/mcs51/gen.c (gen51Code): display reg usage in --icode-in-asm
9692         * src/mcs51/ralloc.c (serialRegAssign): update the registers in use and save some slocs
9693         * src/SDCCicode.h: added riu to show the register usage in --icode-in-asm
9694
9695 2003-04-07  Bernhard Held <bernhard AT bernhardheld.de>
9696
9697         * configure.in: fully support prefix, exec_prefix, datadir, docdir;
9698         fix bug #487815
9699         * support/cpp2/Makefile.in: fix bug #487815
9700         * configure: rebuilt from configure.in
9701         * Makefile.common.in: docdir changed, new path suffixes
9702         * sdccconf_in.h: new RETSIGTYPE, and other PATHs
9703         * sdcc_vc_in.h: reflect changes from sdccconf.h
9704         * src/SDCCglobl.h: remove *SEPARATOR_CHARS, they are now in sdccconf.h
9705         * src/SDCCutil.h: remove BINDIR hack
9706         * doc/sdccman.lyx: update new path hierarchy
9707
9708 2003-04-06    Paul Stoffregen <paul AT pjrc.com>
9709
9710         * src/SDCCpeeph.c: added okToRemoveSLOC test
9711
9712 2003-04-06    Paul Stoffregen <paul AT pjrc.com>
9713
9714         * device/lib/printf_fast.c: added leading zero format ("%06d", etc)
9715
9716 2003-04-06    Paul Stoffregen <paul AT pjrc.com>
9717
9718         * src/SDCCpeeph.c: added labelIsReturnOnly test
9719         * src/mcs51/peeph.def: Peephole 244: replace ljmp to ret with ret
9720
9721 2003-04-05    <johan AT balder>
9722
9723         * src/SDCCcse.c (cseAllBlocks): fixed bug #460088
9724         * src/SDCCloop.c (DEFSETFUNC): fixed bug #460088
9725         * src/SDCCopt.c (eBBlockFromiCode): fixed bug #460088
9726         * src/SDCCast.c: fixed a warning
9727         * src/SDCCast.h: fixed a warning
9728         * src/SDCCicode.c (operandFromAst): fixed a warning
9729
9730 2003-04-04    <johan AT balder>
9731
9732         * src/SDCCloop.c (DEFSETFUNC): undid the fix for bug #519584
9733         * src/SDCCast.c (decorateType): fixed bug #715076
9734         * src/SDCC.y: fixed bug #702907
9735
9736 2003-04-03    <johan AT balder>
9737
9738         * device/lib/_mulint.c (_muluint): new #pragma LESS_PEDANTIC
9739         * src/SDCCopt.c (eBBlockFromiCode): new #pragma LESS_PEDANTIC
9740         * src/SDCCglobl.h (PRAGMA_LESSPEDANTIC): new #pragma LESS_PEDANTIC
9741         * src/SDCC.lex (doPragma): new #pragma LESS_PEDANTIC
9742         * src/SDCCmain.c (parseCmdLine): new #pragma LESS_PEDANTIC
9743
9744 2003-04-03  Bernhard Held <bernhard AT bernhardheld.de>
9745
9746         * _decdptr.c: fix return values
9747         * _gptrget.c: fix return values
9748         * _gptrgetc.c: fix return values
9749         * _gptrput.c: fix return values
9750         * _mulint.c: fix return values
9751         * as/z80/Makefile: fix 'make -j' problem
9752
9753 2003-04-02  Bernhard Held <bernhard AT bernhardheld.de>
9754
9755         * Makefile.common.in: unused PORT, SCC and SAS removed, fixed docdir
9756         * configure.in: big cleanup, updated to autoconf 2.5x
9757         * configure: rebuilt from configure.in
9758         * sdccconf_in.h: new RETSIGTYPE, and other PATHs
9759         * sdcc_vc_in.h: reflect changes from sdccconf.h
9760         * doc/Makefile: fixed a flaw in "make install"
9761
9762 2003-04-02    <johan AT balder>
9763
9764         * src/ds390/gen.c (genCmp): no comments
9765         * src/mcs51/gen.c (genCmp): no comments
9766         * src/SDCCopt.c (eBBlockFromiCode): detect missing return values
9767         * src/SDCCast.c (ast_print): fixed the function type in --dumptree
9768
9769 2003-04-01  Bernhard Held <bernhard AT bernhardheld.de>
9770
9771         * support/regression/generate-cases.py: place generated file in given sub directory
9772         * support/regression/ports/host/spec.mk: prevent removal of testfwk.o
9773         * support/regression/Makefile: improvements for 'make -j';
9774         side effect: it's simpler and faster now
9775
9776 2003-03-31  Borut Razem <borut.razem AT siol.net>
9777
9778         * src/z80/main.c: link-{port} and as-{port} defined without path
9779         * src/src.dsp: support/Util/MySystem.h and src/SDCCutil.h added to project
9780
9781 2003-03-31  Bernhard Held <bernhard AT bernhardheld.de>
9782
9783         * Makefile, src/Makefile.in: add dependencies, so that 'make -j' works
9784
9785 2003-03-30  Borut Razem <borut.razem AT siol.net>
9786
9787         * support/Util/BuildCmd.c, support/Util/BuildCmd.h: rewrite buildCmdLine(),
9788           changed type of list parameter to set
9789         * src/ds390/main.c: changed type of parameter asmOptions to set in _tininative_do_assemble()
9790         * src/port.h: changed type of do_assemble() parameter to set
9791         * src/SDCCmain.c: type of asmOptions changed to set, introduced setParseWithComma(),
9792           sdcpp defined without path, removed variable VersionString, introduced set binPathSet,
9793           definition of "cppoutfilename" macro with NULL value in preProcess()
9794         * src/SDCCglobl.h: included "SDCCset.h", added declaration of setParseWithComma()
9795         * src/SDCCglue.c: removed variable VersionString, inroduced spacesToUnderscores()
9796         * support/Util/MySystem.c, support/Util/MySystem.h: rewrite, char *ExePathList[]
9797           replaced with set *binPathSet
9798         * shash_add() deallocates the item, if allready exsists, before adding the new one
9799         * src/SDCCmacro.c: handling macros with empty or NULL values in _evalMacros()
9800
9801 2003-03-30  Scott Dattalo  <scott AT dattalo.com>
9802
9803         * src/pic/gen.c: Commit patch from Steve Tell <tell AT telltronics.org> that fixes
9804           a nested for loop bug in the PIC port
9805         * src/regression/nestfor.c: new regression test file Steve wrote to test nested
9806           for loops
9807
9808 2003-03-29  Bernhard Held <bernhard AT bernhardheld.de>
9809
9810         * support/Util/dbuf.h: remove C++ stuff to make it portable
9811
9812 2003-03-28  Borut Razem <borut.razem AT siol.net>
9813
9814         * src/SDCC.lex: Fix for bug #711240: dynamic buffer handling of C
9815           literal strings in stringLiteral()
9816         * support/Util/dbuf.c, support/Util/dbuf.h: added: dynamic buffer handling
9817         * src/Makefile.bcc, src/Makefile.in, src\src.dsp: added support/Util/dbuf.c
9818           to the project
9819
9820 2003-03-27  Paul Stoffregen <paul AT pjrc.com>
9821
9822         * src/SDCCpeeph.c (pcDistance): accurate byte distance for mcs51
9823
9824 2003-03-26    <johan AT balder>
9825
9826         * src/mcs51/gen.c (saveRegisters): catched symbol abuse
9827         * src/ds390/gen.c (saveRegisters): catched symbol abuse
9828         * src/SDCCast.c (decorateType): fixed " -v < 3"
9829
9830 2003-03-23  Bernhard Held <bernhard AT bernhardheld.de>
9831
9832         * doc/cdbfile.html: removed, replaced by cdbfileformat.lyx
9833         Added Lenny Story's debug infrastructure changes:
9834         * src/Makefile.in:  added new files cdbFile.c and SDCCdebug.c
9835         * src/Makefile.bcc: added new files cdbFile.c and SDCCdebug.c
9836         * src/cdbFile.c: added
9837         * src/SDCCdebug.c: added
9838         * src/SDCCdebug.h: added
9839         * src/SDCCast.c (createFunction)
9840         * src/SDCCglue.c (emitRegularMap, emitStaticSeg, emitOverlay, glue)
9841         * src/SDCCmain.c (parseCmdLine, main)
9842         * src/SDCCmem.c (redoStackOffsets)
9843         * src/SDCCsymt.c (cdbStructBlock, cdbTypeInfo, cdbSymbol, cdbStruct, cdbStructBlock)
9844         * src/SDCCsymt.h
9845         * src/common.h
9846         * src/avr/gen.c (genAVRCode)
9847         * src/ds390/gen.c (gen390Code)
9848         * src/mcs51/gen.c (gen51Code)
9849         * src/pic/gen.c (genpic14Code)
9850         * src/pic/glue.c (pic14emitRegularMap, pic14emitStaticSeg, pic14emitOverlay, picglue)
9851         * src/xa51/gen.c (genXA51Code)
9852         * src/SDCCast.c: fixed "void foo(void){char c; -c < 0;}"
9853
9854 2003-03-22  Frieder Ferlemann <Frieder.Ferlemann AT web.de>
9855
9856         * src/mcs51/gen.c (genCodePointerGet): quicker code for bug #700797
9857         * src/mcs51/peeph.def: added rules 177, 241.x to 243, touched 181, 182.x, 193.x
9858
9859 2003-03-22    <johan AT balder>
9860
9861         * src/SDCCicode.c (geniCodeDerefPtr): fixed bug #698231
9862
9863 2003-03-21  Bernhard Held <bernhard AT bernhardheld.de>
9864
9865         * support/scripts/sdcc_mingw32: adapted to configure from autoconf 2.54
9866         * doc/cdbfileformat.lyx: added, written by Lenny Story
9867         * doc/Makefile: added cdbfileformat.lyx
9868         * doc/clean.mk: added cdbfileformat.lyx
9869
9870 2003-03-20  Bernhard Held <bernhard AT bernhardheld.de>
9871
9872         * src/mcs51/peeph.def: fix bug #705773
9873
9874 2003-03-20    <johan AT balder>
9875
9876         An sfr/sbit can have an "at #" AND an initializer
9877         * src/SDCCsymt.c (checkSClass):
9878         * src/SDCCmem.c (allocGlobal):
9879         * src/SDCCmem.c (allocLocal):
9880         * src/SDCCast.c (createBlock):
9881
9882 2003-03-17  Bernhard Held <bernhard AT bernhardheld.de>
9883
9884         * src/ds390/peeph.def: fix bug #704878: added rule 213.b suggested by Jan Rejlek
9885
9886 2003-03-16    <johan AT balder>
9887
9888         Undid the hackup of const and volatile, the problem is much bigger
9889         * src/SDCC.y:1.65
9890         * src/SDCCast.c:1.171
9891         * src/SDCCglue.c:1.138
9892         * src/SDCCicode.c:1.146
9893         * src/SDCCsymt.c:1.150
9894         * src/SDCCval.c:1.65
9895
9896 2003-03-15  Bernhard Held <bernhard AT bernhardheld.de>
9897
9898         * src/mcs51/ralloc.c (packRegsForAssign): fixed bug #703541
9899         * src/ds390/gen.c (genAddrOf): fixed bug #704087
9900
9901 2003-03-13    <johan AT balder>
9902
9903         Hackup const and volatile modifiers in type chains a bit:
9904         * src/SDCC.y:1.63
9905         * src/SDCCast.c:1.169
9906         * src/SDCCglue.c:1.136
9907         * src/SDCCicode.c:1.143
9908         * src/SDCCsymt.c1.146
9909         * src/SDCCsymt.h1.59
9910         * src/SDCCval.c:1.63
9911
9912 2003-03-12    <johan AT balder>
9913
9914         * src/SDCCBBlock.h: more LRH debugging junk
9915         * src/SDCCcflow.h: more LRH debugging junk
9916         * src/SDCCloop.c: more LRH debugging junk
9917         * src/SDCC.y (struct_declaration): fixed bug #697590
9918         * src/SDCCsymt.[hc] (cloneSpec): NEVER EVER use this again
9919         * src/ds390/gen.c (aopForRemat): fixed bug #700031
9920         * src/SDCCglue.c (emitStaticSeg): fixed bug #700797
9921
9922 2003-03-11 Kevin Vigor <kevin AT vigor.nu>
9923         * src/SDCCpeeph.c: quit being lazy and made proper fix (peephole
9924         test function names must now match exactly).
9925         * src/SDCCcse.c: added special case in findCheaperOp to allow
9926         extending a short integer. Makes less awful code for bug 700121 test case.
9927
9928 2003-03-11  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
9929
9930         * as/mcs51/lkmain.c: Added ASlink-Warning to messages
9931         * as/mcs51/lkaomf51.c: Fixed bug when linking asmblink example
9932
9933 2003-03-11 Kevin Vigor <kevin AT vigor.nu>
9934
9935         * src/SDCCpeeph.c: fix so that operandsNotEqualX functions are
9936         actually called (operandsNotEqual() was called for all
9937         operandsNotEqualX tests).
9938
9939 2003-03-11 Kevin Vigor <kevin AT vigor.nu>
9940
9941         * src/SDCCcse.c: fix findCheaperOp to prevent replacing int types
9942         with shorter literals. Fixes bug 700121.
9943
9944 2003-03-11    <johan AT balder>
9945
9946         * src/SDCCsymt.c (compareType): a (void *) can be assigned to any pointer
9947
9948 2003-03-11  Bernhard Held <bernhard AT bernhardheld.de>
9949
9950         * src/SDCCloop.c (mergeRegions): an evil beast is dead
9951         * src/SDCCmain.c (preProcess): minor cleanup: eliminate preOutName
9952
9953 2003-03-10  Borut Razem <borut.razem AT siol.net>
9954
9955         * src/SDCCmain.c: pipe preprocessor's output
9956         * support/Util/MySystem.c, support/Util/MySystem.h: added my_popen()
9957         * sdcc_vc_in.h: define pclose as _pclose for WIN32
9958         * src/SDCCglue.c, src/SDCCglue.h: added set pipeSet, added function closePipes,
9959         which closes all pipes in pipeSet set
9960         * src/SDCCset.c: free deleted item in function deleteSetItem()
9961         * src/src.dsp, src/z80/z80.dsp: files support/Util/BuildCmd.c and support/Util/MySystem.c
9962         moved from z80 to src subproject
9963         * .version: increased version number to 2.3.4
9964
9965 2003-03-10  Bernhard Held <bernhard AT bernhardheld.de>
9966
9967         * support/regression/ports/mcs51/spec.mk: increase timeout for CF's sparc to 30s
9968         * support/regression/ports/ds390/spec.mk: increase timeout for CF's sparc to 25s
9969         * support/regression/ports/xa51/spec.mk: fix typo
9970
9971 2003-03-09  Bernhard Held <bernhard AT bernhardheld.de>
9972
9973         * src/SDCCglobl.h: PATH_MAX is already defined in mingw32 headers
9974
9975 2003-03-09  Borut Razem <borut.razem AT siol.net>
9976
9977         * src/SDCCmain.c: pipe preprocessor's output
9978         * support/Util/MySystem.c, support/Util/MySystem.h: added my_popen()
9979         * sdcc_vc_in.h: define pclose as _pclose for WIN32
9980         * src/SDCCglue.c, src/SDCCglue.h: added set pipeSet, added function closePipes,
9981         which closes all pipes in pipeSet set
9982         * src/SDCCset.c: free deleted item in function deleteSetItem()
9983         * src/src.dsp, src/z80/z80.dsp: files support/Util/BuildCmd.c and support/Util/MySystem.c
9984         moved from z80 to src subproject
9985
9986 2003-03-09  Borut Razem <borut.razem AT siol.net>
9987
9988         * src/SDCCglue.c: re-implemented tempfilename() and tempfile(): using mkstemp() if available
9989         * src/SDCCsymt.h: fixed MSVC and BORLANDC compilation (included SDCCglobl.h instead srccconf.h)
9990         * sdcc_vc_in.h: explicitly undefined HAVE_MKSTEMP which is not available on BORLANDC and MSVC
9991         * src/SDCCset.h: removed inclusion of sdccconf.h or sdcc_vc.h
9992         * src/SDCCglobl.h: unification of WIN32 native definitions
9993
9994 2003-03-09  Frieder Ferlemann <Frieder.Ferlemann AT web.de>
9995
9996         * src/mcs51/gen.c: applied in-/dec patch mentioned on sdcc-devel 2003-03-01
9997
9998 2003-03-08  Bernhard Held <bernhard AT bernhardheld.de>
9999
10000         * src/configure.in:   check for endianess (even while cross-compiling)
10001         * src/configure:      check for endianess (even while cross-compiling)
10002         * src/configure_in.h: check for endianess (even while cross-compiling)
10003         * src/avr/gen.c:        remove old endianess stuff
10004         * src/mcs51/gen.c:      remove old endianess stuff
10005         * src/ds390/gen.c:      remove old endianess stuff
10006         * src/pic/gen.c:        remove old endianess stuff
10007         * src/pic/genarith.c:   remove old endianess stuff
10008         * src/pic/glue.c:       fix endianess check
10009         * src/pic16/gen.c:      remove old endianess stuff
10010         * src/pic16/genarith.c: remove old endianess stuff
10011         * src/pic16/glue.c:     fix endianess check
10012         * src/xa51/gen.c:       remove old endianess stuff
10013         * src/z80/gen.c:        fix endianess check
10014         * src/SDCCglue.c:       fix endianess check
10015         * src/ds390/peeph.def: fix bug 700036
10016
10017 2003-03-08  Bernhard Held <bernhard AT bernhardheld.de>
10018
10019         * src/SDCCsymt.h: use appropriate data-types on host for SDCC's int and long
10020         * src/configure: find appropriate data-types on host for SDCC's int and long
10021         * src/configure.in: find appropriate data-types on host for SDCC's int and long
10022         * src/sdccconf_in.h: find appropriate data-types on host for SDCC's int and long
10023         * src/xa51/gen.c: use %d, not %ld for 4 byte variables
10024
10025 2003-03-07    <johan AT balder>
10026
10027         Just a big NOOP:
10028                 some minor cleanups before the big shot
10029                 OP_DEFS and OP_USES now use Kevin's protection
10030                 new option --nolabelopt
10031
10032         * src/SDCCBBlock.c:
10033         * src/SDCCast.c,:
10034         * src/SDCCcflow.c:
10035         * src/SDCCcse.c:
10036         * src/SDCCicode.c:
10037         * src/SDCCicode.h:
10038         * src/SDCClabel.c:
10039         * src/SDCCloop.c:
10040         * src/SDCCmain.c:
10041         * src/ds390/ralloc.c:
10042         * src/mcs51/ralloc.c:
10043         * src/pic/ralloc.c:
10044         * src/xa51/ralloc.c:
10045         * src/z80/ralloc.c:
10046
10047 2003-03-06  Bernhard Held <bernhard AT bernhardheld.de>
10048
10049         * src/pic/pcode.c (get_op): fix 64 bit warnings
10050         * src/pic/pcode.c (pCode2str): fix 64 bit warnings
10051         * src/SDCChasht.c (newHashTable): fix 64 bit warnings
10052         * src/SDCCsymt.c (checkTypeSanity): fix 64 bit warnings
10053         * support/regression/tests/malloc.c: fix 64 bit warnings
10054
10055 2003-03-04  Bernhard Held <bernhard AT bernhardheld.de>
10056
10057         * src/mcs51/gen.c (genMinus): fixed bug 696436
10058
10059 2003-03-02  Borut Razem <borut.razem AT siol.net>
10060
10061         * src/SDCCmain.c: added BORLANDC, corrected MSVC in printVersionInfo()
10062
10063 2003-02-26  Bernhard Held <bernhard AT bernhardheld.de>
10064
10065         * configure.in: test for mkstemp
10066         * sdccconf_in.h: add HAVE_MKSTEMP
10067
10068 2003-02-24  Bernhard Held <bernhard AT bernhardheld.de>
10069
10070         * device/include/ctype.h: removed warning while using --stack-auto
10071         * device/include/malloc.h: removed warning while using --stack-auto
10072         * device/include/string.h: removed warning while using --stack-auto
10073
10074 2003-02-23  Borut Razem <borut.razem AT siol.net>
10075
10076         * src/asm.h: corrected assertion in function printILine(): _pipe() was not executed on MSVC,
10077         because NDEBUG is defined (see man assert)
10078         * sdcc_vc_in.h: vsnprintf is defined as _vsnprintf on MSVC
10079
10080 2003-02-23  Frieder Ferlemann <Frieder.Ferlemann AT web.de>
10081
10082         * src/mcs51/gen.c (genUminusFloat): avoided dptr in-/decrement for xdata variables
10083         * src/mcs51/peeph.def: added rule suggested by Gernot Fink, white space/comment changes
10084
10085 2003-02-18  Frieder Ferlemann <Frieder.Ferlemann AT web.de>
10086
10087         * src/SDCCpeeph.c: added peephole conditions testing for same arguments
10088         * src/mcs51/peeph.def: added rules 238a-d which remove redundant moves
10089
10090 2003-02-18    <johan AT balder>
10091
10092         * as/mcs51/asmain.c (asmbl): module can start with a digit
10093         * as/z80/asmain.c (asmbl): module can start with a digit
10094
10095 2003-02-16  Bernhard Held <bernhard AT bernhardheld.de>
10096
10097         * sim/ucsim/mkecho: inserted #!/bin/sh for Cygwin, so that it's executable
10098         * src/asm.c: fix pipe() for Mingw32
10099
10100 2003-02-15  Bernhard Held <bernhard AT bernhardheld.de>
10101
10102         * src/SDCCglue.h: make tmpfileNameSet available for preOutName
10103         * src/SDCCmain.c (preProcess): make sure, that preOutName will be deleted;
10104         make -V work again; --c1mode reads now from stdin
10105         * doc/sdccman.lyx: added --c1mode
10106         * support/Util/SDCCerr.c: new messages for c1 mode
10107         * support/Util/SDCCerr.h: new messages for c1 mode
10108         * src/SDCC.lex (checkCurrFile): test if fullSrcFileName is NULL for c1mode
10109
10110 2003-02-15    <johan AT balder>
10111
10112         * src/asm.c: new options: --no-c-code-in-asm and --i-code-in-asm
10113
10114 2003-02-14  Bernhard Held <bernhard AT bernhardheld.de>
10115
10116         * doc/sdccman.lyx: Environment variables, -o and other minor things
10117
10118 2003-02-14    <johan AT balder>
10119
10120         * src/xa51/main.c: before anyone really tries to use it :)
10121
10122         * Install doc's in share/sdcc/doc
10123         * removed some obsolete files
10124         * Do a proper make distclean and uninstall
10125         M Makefile.common.in
10126         R sdccbuild.sh
10127         M as/Makefile
10128         M device/include/Makefile.in
10129         M device/lib/Makefile.in
10130         M doc/sdccman.lyx
10131         M link/Makefile
10132         M sim/ucsim/doc/Makefile.in
10133         M src/clean.mk
10134         R src/avr/peeph.rul
10135         R src/xa51/peeph.rul
10136         M support/cpp2/Makefile.in
10137         M support/makebin/Makefile
10138
10139
10140 2003-02-13  Bernhard Held <bernhard AT bernhardheld.de>
10141
10142         * support/regression/ports/host/spec.mk: use cc as host compiler for max osx
10143
10144 2003-02-10  Borut Razem <borut.razem AT siol.net>
10145
10146         * doc/bccinst.txt, packihx/packihx.c, sdcc_vc_in.h, src/SDCCset.h,
10147         support/cpp2/config.in: Borland C++ build doesn't depend on Cygwin configure
10148         * Bcc.ini, Makefile.bcc, as/mcs51/Makefile.bcc,
10149         device/examples/ds390/tinitalk/Makefile.bcc, packihx/Makefile.bcc,
10150         support/cpp2/Makefile.bcc, src/Makefile.bcc, src/avr/Makefile.bcc,
10151         src/ds390/Makefile.bcc, src/izt/Makefile.bcc, src/mcs51/Makefile.bcc,
10152         src/pic/Makefile.bcc, src/pic16/Makefile.bcc, src/xa15/Makefile.bcc,
10153         src/z80/Makefile.bcc: Borland Makefile cleanup
10154         * as/z80/Makefile.bcc: Added Borland Makefile
10155         * support/cpp2/borland.h: Removed
10156
10157 2003-02-10  Bernhard Held <bernhard AT bernhardheld.de>
10158
10159         * doc/sdccman.lyx: new pragma NOIV by "Johannes Stezenbach" <js AT convergence.de>
10160         * src/SDCC.lex: new pragma NOIV
10161         * src/SDCCglobl.h: new pragma NOIV
10162         * src/SDCCmem.c: new pragma NOIV
10163
10164 2003-02-09  Bernhard Held <bernhard AT bernhardheld.de>
10165
10166         * src/SDCCmain.c: signal handling is switched off by SDCC_LEAVE_SIGNALS
10167
10168 2003-02-09  Bernhard Held <bernhard AT bernhardheld.de>
10169
10170         * src/SDCCmain.c: signal handling is switched off by --debug
10171         * doc/Makefile: small fix for install; use clean.mk again
10172         * doc/clean.mk: clean *.pdf and *.html too
10173
10174 2003-02-08  Bernhard Held <bernhard AT bernhardheld.de>
10175
10176         * device/lib/_mulint.c: small fix for large/ds390 --int-long-reent resp. --stack-auto
10177         * device/lib/printfl.c: fix a ds390 bug by making it portable
10178         * src/SDCCsymt.c (initCSupport): fix compile warning on Cygwin
10179         * src/SDCCopt.c (cnvToFloatCast): fix compile warning on Cygwin
10180         * src/SDCCopt.c (cnvFromFloatCast): fix compile warning on Cygwin
10181         * debugger/mcs51/cmd.c: converted multi-line string literals
10182         * sim/ucsim/globals.cc: converted multi-line string literals
10183         * src/SDCCmain.c: introduced signal handler to remove temp files
10184         * doc/Makefile: small tweaks, implement clean
10185         * doc: removed generated files
10186
10187 2003-02-05  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
10188
10189         * as/mcs51/aslink.h, as/mcs51/lkihx.c, as/mcs51/lkrloc.c:  Applied
10190         patch from Jan Rejlek <jr AT apex-lib.cz> to fix Bug 677692: "Extended
10191         Address Record is not correctly generated for DS390."
10192
10193 2003-02-02  Borut Razem <borut.razem AT siol.net>
10194
10195         * Makefile.bcc: removed non existing cpp project and non compilable izt project from makefile
10196         * as/mcs51/asm.h: fixed compilation with Borland C
10197         * support/cpp2/Makefile.bcc: added rule to generate auto-host.h
10198         * support/cpp2/auto-host_vc_in.h: fixed compilation with Borland C
10199         * src/mcs51/mcs51a.dsp: corrected misspelled project name from msc51a to mcs51a
10200         * src/avr/Makefile.bcc, src/ds390/Makefile.bcc, src/izt/Makefile.bcc,
10201         src/mcs51/Makefile.bcc, src/pic16/Makefile.bcc, src/xa51/Makefile.bcc,
10202         src/z80/Makefile.bcc: delete $(LIB) only if exist
10203         * src/Makefile.bcc, src/pic/Makefile.bcc:  fixed compilation with Borland C
10204
10205 2003-02-02  Bernhard Held <bernhard AT bernhardheld.de>
10206
10207         * device/include/malloc.h: introduced NULL
10208         * device/include/string.h: introduced NULL
10209         * device/include/stdlib.h: introduced NULL
10210         * device/lib/_memcpy.c: removed NULL
10211         * device/lib/_strcat.c: removed NULL
10212         * device/lib/_strchr.c: removed NULL
10213         * device/lib/_strcmp.c: removed NULL
10214         * device/lib/_strcpy.c: removed NULL
10215         * device/lib/_strcspn.c: removed NULL
10216         * device/lib/_strlen.c: removed NULL
10217         * device/lib/_strncat.c: removed NULL
10218         * device/lib/_strncmp.c: removed NULL
10219         * device/lib/_strncpy.c: removed NULL
10220         * device/lib/_strpbrk.c: removed NULL
10221         * device/lib/_strrchr.c: removed NULL
10222         * device/lib/_strspn.c: removed NULL
10223         * device/lib/_strstr.c: removed NULL
10224         * device/lib/_strtok.c: removed NULL
10225         * device/lib/malloc.c: removed NULL, include own header
10226
10227 2003-02-02    <johan AT balder>
10228
10229         * 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
10230         * support/regression/fwk/lib/testfwk.c: div and mod isn't broken anymore
10231         * regressions ds390/spec.mk and mcs51/spec.mk (timeout): my good old balder isn't fast enough for some tests
10232         * src/z80/gen.c (genZ80Code): added c-lines in asm comments
10233         * as/z80/asm.h (NINPUT): increased for long c-comments in regression tests
10234         * src/z80/gen.c (genRightShiftLiteral): fixed the (char)(-3)>>8 (I think)
10235
10236 2003-02-01  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
10237
10238         * src/SDCCmain.c: Fixed bug 678574: "ds390: ASlink-Error-Stack overlaps
10239         area 'DATA'"
10240
10241 2003-02-01    <johan AT balder>
10242
10243         * src/SDCCval.c (valBitwise): fixed Karl's "2 | (1<<8)"
10244
10245 2003-01-31    <johan AT CP255758-A>
10246
10247         * src/ds390/main.c (_ds390_genAssemblerPreamble): applied Jan Rejlek's >64K startup patch
10248
10249 2003-01-30    <johan AT balder>
10250
10251         * src/SDCCBBlock.c: automatic bug detection
10252         * src/SDCCicode.c: automatic bug detection
10253
10254 2003-01-29  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
10255
10256         * src/SDCCglobl.h:   now --xram-size 0 works
10257         * src/SDCCmain.c:    now --xram-size 0 works
10258
10259 2003-01-29    <johan AT balder>
10260
10261         * src/almosteverything: changed OP_DEFS and OP_USES from macros to functions to catch symbol abuse (a hot topic in the bug list :)
10262
10263 2003-01-29  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
10264
10265         * as/mcs51/aslink.h: Added options --xram-size and --code-size
10266         * as/mcs51/lkdata.c: Added options --xram-size and --code-size
10267         * as/mcs51/lkmain.c: Added options --xram-size and --code-size
10268         * as/mcs51/lkmem.c:  Added options --xram-size and --code-size
10269         * src/SDCCglobl.h:   Added options --xram-size and --code-size
10270         * src/SDCCmain.c:    Added options --xram-size and --code-size
10271
10272 2003-01-28  Bernhard Held <bernhard AT bernhardheld.de>
10273
10274         * src/ds390/gen.c: fix deps by replacing <common.h> with "common.h"
10275         * src/SDCC.lex: rename P_OVERLAY to P_OVERLAY_ for cross-gcc 3.2 MINGW32
10276
10277 2003-01-27    <johan AT balder>
10278
10279         * src/SDCC.y: fixed bug #613764
10280
10281 2003-01-26    <johan AT balder>
10282
10283         * src/SDCClrange.c:  fixed Bernhard's "char * code ptr = &c"
10284         * src/SDCCsymt.h: fixed bug #673374
10285         * src/SDCCglue.c: fixed bug #661910
10286         * src/SDCCast.c: fixed bug #458099 and 673374
10287
10288 2003-01-26  Bernhard Held <bernhard AT bernhardheld.de>
10289
10290         * as/mcs51/strcmpi.c: added, provides Aurelien Jarno's as_strcmpi(); strcmpi() is not ANSI
10291         * as/mcs51/strcmpi.h: added
10292         * as/mcs51/asm.h: remove ugly "#define strcmpi strcmp"
10293         * as/mcs51/aslink.h: remove ugly "#define strcmpi strcmp"
10294         * as/mcs51/asmain.c: strcmpi -> as_strcmpi
10295         * as/mcs51/assym.c: strcmpi -> as_strcmpi
10296         * as/mcs51/lkmem.c: strcmpi -> as_strcmpi
10297         * as/mcs51/lknoice.c: strcmpi -> as_strcmpi
10298         * as/mcs51/lksym.c: strcmpi -> as_strcmpi
10299         * as/mcs51/Makefile.aslink: new module strcmpi
10300         * as/mcs51/Makefile.asx8051: new module strcmpi
10301         * as/mcs51/Makefil.bcc: new module strcmpi
10302         * as/mcs51/Makefile.in: new module strcmpi
10303         * sim/ucsim/s51.src/uc390.cc (get_mem_size): make RAM big enough for tinibios
10304
10305 2003-01-26    <johan AT balder>
10306
10307         * src/SDCCglue.c: reverted back to 1.124
10308         * src/SDCCast.c: reverted back to 1.156
10309         * src/mcs51/gen.c (aopGet): applied Frieder's efficiency patch
10310
10311 2003-01-25    <johan AT balder>
10312
10313         * src/SDCCglue.c: A better fix for bug #661910
10314         * src/SDCCast.c: A better fix for bug #661910
10315         * src/SDCCglue.c (emitRegularMap): That was a little too efficient
10316
10317 2003-01-24  Bernhard Held <bernhard AT bernhardheld.de>
10318
10319         * src/Makefile.in: remove spawn.o
10320         * src/SDCCmain.c: remove spawn.h
10321         * src/SDCCmain.c (printVersionInfo): report MINGW32 instead of UNIX
10322         * src/spawn.c: removed
10323         * src/spawn.h: removed
10324         * support/regression/ports/ds390/spec.mk: link with -r
10325
10326 2003-01-24    <johan AT CP255758-A>
10327
10328         * src/ds390/gen.c (aopOp): fixed bug #667458
10329         * src/SDCCglue.c (emitRegularMap): fixed bug #458099 again
10330         * src/SDCCast.c (createIvalCharPtr): fixed bug #661910
10331         (createIvalCharPtr): an ival doesn't always have a storage class anymore
10332
10333 2003-01-24  Bernhard Held <bernhard AT bernhardheld.de>
10334
10335         * src/mcs51/peeph.def: better assembler identation by Frieder
10336         * src/mcs51/gen.c: better assembler identation by Frieder
10337
10338 2003-01-22  Bernhard Held <bernhard AT bernhardheld.de>
10339
10340         * as/z80/string.h: removed for gcc 3.2
10341         * support/makebin/makebin.c: #include <string.h> for gcc 3.2
10342         * src/pic/pcode.c (get_op_from_instruction): fix concatenation of string literals with __FUNCTION__ for gcc 3.2
10343
10344 2003-01-19  Bernhard Held <bernhard AT bernhardheld.de>
10345
10346         * src/SDCCmain.c (linkEdit): rename mem and map files even in case of failure
10347         * src/SDCCpeeph.c (replaceRule): fix bug #663503
10348         * support/regression/Makefile: separate temp files for ports
10349         * support/regression/generate-cases.py: separate temp files for ports
10350         * src/mcs51/peeph.def: Frieder: removed 237 (obsolete by 236g and 105); added 237 a/b
10351         * src/ds390/peeph.def: Frieder: removed 237 (obsolete by 236g and 105); added 237 a/b
10352
10353 2003-01-19  Bernhard Held <bernhard AT bernhardheld.de>
10354
10355         * moved tinitalk to device/examples/ds390
10356
10357 2003-01-14  Bernhard Held <bernhard AT bernhardheld.de>
10358
10359         * as/mcs51/lkmem.c: rflag is for DS390
10360         * src/SDCCglobl.h: removed out_name and options stackOnData, genericPtr
10361         * src/SDCCmain.c (optionsTable, setDefaultOptions): removed --stack-after-data and --generic
10362                          (linkEdit): move mem- and map-files the same way as ihx-files
10363         * src/z80/main.c (_setDefaultOptions): removed --generic
10364         * src/SDCCmain.c (_processC1Arg, parseCmdLine, main): --c1mode works again
10365         * src/SDCCglue.c (createInterruptVect, glue): --c1mode works again
10366         * src/pic/glue.c (picglue): --c1mode works again
10367         * src/pic16/glue.c (pic16glue): --c1mode works again
10368         * src/asm.c (printCLine): fix #660034
10369
10370 2003-01-13  Bernhard Held <bernhard AT bernhardheld.de>
10371
10372         * src/ds390/peeph.def: fix #123; add 14 rules by Fiorenzo D. Ramaglia <fd.ramaglia AT tin.it>, 1 by Frieder
10373         * src/mcs51/peeph.def: fix #123; add 14 rules by Fiorenzo, 1 by Frieder
10374         * src/mcs51/gen.c (genFunction): emit r0 instead of ar0 by Fiorenzo
10375         * as/mcs51/lkmem (summary): better fix for sp problem
10376         * src/SDCCglue.c (glue): __start_stack - 1, saves 1 byte!
10377         * src/ds390/main.c (_ds390_finaliseOptions, _tininative_finaliseOptions): stack_loc = 0x400008
10378         * support/regression/ports/*/spec.mk: moving testfwk-object to port dir allow parallel execution of regression tests
10379                                               remove --stack-after-data
10380
10381 2003-01-12  Bernhard Held <bernhard AT bernhardheld.de>
10382
10383         * src/SDCCmain.c (main): port->finaliseOptions() moved for z80 linking
10384         * src/SDCCutil.c (join): ugly bug: missing '\0'
10385         * as/mcs51/lkmem.c (summary): sp on address 7 is safe
10386
10387 2003-01-11  Bernhard Held <bernhard AT bernhardheld.de>
10388
10389         * src/SDCCmain.c (assemble, linkEdit): preparations for -o
10390         * src/port.h: typo
10391         * src/pic/main.c (_asmCmd): gpasm supports -o
10392         * src/z80/main.c: more general macros
10393         * device/lib/Makefile.in: remove intermediate files
10394
10395 2003-01-11  Bernhard Held <bernhard AT bernhardheld.de>
10396
10397         * .version: Bumped version number to 2.3.3
10398         * src/SDCCBBlock.c: new option -o
10399         * src/SDCCglobl.h: new option -o
10400         * src/SDCCglue.c: new option -o
10401         * src/SDCCmain.c: new option -o
10402         * src/asm.c: new option -o
10403         * src/ds390/main.c: new option -o
10404         * src/pic/glue.c: new option -o
10405         * src/pic/pcode.c: new option -o
10406         * src/pic/ralloc.c: new option -o
10407         * src/pic16/glue.c: new option -o
10408         * src/pic16/pcode.c: new option -o
10409         * src/pic16/ralloc.c: new option -o
10410         * src/z80/main.c: new option -o
10411         * device/lib/Makefile.in: use -o
10412         * support/regression/ports/ds390/spec.mk: use -o
10413         * support/regression/ports/gbz80/spec.mk: use -o
10414         * support/regression/ports/mcs51/spec.mk: use -o
10415         * support/regression/ports/mcs51-stack-auto/spec.mk: use -o
10416         * support/regression/ports/z80/spec.mk: use -o
10417         * support/regression/ports/ucz80/spec.mk: use -o
10418         * support/regression/ports/xa51/spec.mk: use -o
10419         * support/regression/fwk/lib/timeout.c: fix usage string
10420
10421 2003-01-09  Bernhard Held <bernhard AT bernhardheld.de>
10422         * src/mcs51/gen.c (genPlus): replaced "mov b,acc" by "mov b,a" Fiorenzo D. Ramaglia <fd.ramaglia AT tin.it>
10423
10424 2003-01-07    <johan AT balder>
10425
10426         * src/SDCCast.c (decorateType): fixed bug #600035
10427
10428 2003-01-07  Bernhard Held <bernhard AT bernhardheld.de>
10429         * as/mcs51/lkmem.c: added several l-modifiers to printf to remove warnings
10430         * as/mcs51/lkaomf51.c: #include <ctype.h> to remove warnings
10431         * src/pic/main.c (_hasNativeMulFor): outcommented unused variables to remove warnings
10432         * src/pic/pcode.c: outcommented unused variable to remove warnings
10433         * src/pic/ralloc.c: outcommented unused variable to remove warnings
10434
10435 2003-01-06    <karl AT turbobit.com>
10436         * sim/ucsim/cmd.src/command.cc: fixed so "break xram r 0x7654" works again in
10437    regression tests.
10438
10439 2003-01-06    <johan AT balder>
10440
10441         * src/SDCCicode.c: fixed array add
10442
10443 2002-01-05  Bernhard Held <bernhard AT bernhardheld.de>
10444         * src/SDCCmacro.c: MAX_STRING_LENGTH increased to 2048; was too small for regression tests
10445         * support/regression/ports/host/support.c: #include <stdarg.h> for gcc 3.2
10446
10447 2003-01-04    <johan AT balder>
10448
10449         * src/SDCCval.c (getNelements): fixed the initialized array of structures
10450
10451 2002-12-29  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
10452         * as/mcs51/Makefile.bcc: fixed typo lkomf51.o -> lkaomf51.o
10453
10454 2002-12-28  Bernhard Held <bernhard AT bernhardheld.de>
10455         * src/mcs51/peeph.def: added rules 234 and 235 from Frieder Ferlemann <frieder.ferlemann AT web.de>
10456         * support/regression/tests/bug-524697.c: fit mem usage into 8032
10457
10458 2002-12-28  Bernhard Held <bernhard AT bernhardheld.de>
10459         * src/mcs51/gen.c (aopGetUsesAcc): inserted missing "return FALSE"
10460
10461 2002-12-27  Bernhard Held <bernhard AT bernhardheld.de>
10462         * as/mcs51/Makefile.in: fixed typo lkomf51.o -> lkaomf51.o
10463
10464 2002-12-26  Bernhard Held <bernhard AT bernhardheld.de>
10465         * src/mcs51/main.c: removed {bindir}{sep} from aslink
10466
10467 2002-12-10  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
10468
10469     * in \sdcc\as\mcs51\ changed these files in order to create an
10470     aomf51 file: aslink.h, lkdta.c, lklex.c, lklibr.c, lklist.c,
10471     lkmain.c.  Also added: lkmem.c and lkaomf51.c.  Changed the
10472     following files to include the previous two files: aslink.dsp,
10473     Makefile.aslink, Makefile.bcc, and Makefile.in.
10474
10475     * Changed \sdcc\src\SDCCmain.c so it creates files with extension
10476     .adb instead of .cdb
10477
10478 2002-11-09  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
10479
10480         * \sdcc\as\mcs51\lklist.c: Now reports memory usage using the
10481         value from option --iram-size.
10482
10483 2002-09-20  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
10484
10485         * \sdcc\as\mcs51\lklist.c: added boundary check before using
10486         dram[] array.
10487
10488 2002-09-18    <wiml AT hhhh.org>
10489
10490         * SDCClrange.h: exposed setFromRange() and setToRange()
10491         * mcs51/ralloc.c: fixed over-eager packRegsForSupport() and
10492           packRegsForAccUse() (bug 542397)
10493         * mcs51/gen.c: MOVA() is now a function to avoid calling aopGet()
10494           multiple times and emitting the fetch operations more than once
10495           added aopGetUsesAcc() function to allow binary operators to
10496           fetch their operands in the correct order; made genMinus() emit
10497           compact code for X = LITERAL - Y
10498
10499 2002-09-00  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
10500         * \sdcc\as\mcs51\lklist.c: Fixed incorrect number of parameters to
10501         sprintf() in line 1267.
10502
10503 2002-09-08  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
10504         * \sdcc\src\SDCCglue.c: Generate areas REG_BANK_[0-3] only for 8051
10505         like ports.
10506
10507 2002-09-04  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
10508         Changes to aslink (All the changes are marked with 'JCF'):
10509
10510         * \sdcc\as\mcs51\aslink.h: External definition of sflag and
10511         summary().
10512
10513         * \sdcc\as\mcs51\lkarea.c: Computes the size of area BSEG_BYTES from
10514         area BSEG.  Also moves, if possible, the DATA area down into the internal
10515         ram so more space is available.
10516
10517         * \sdcc\as\mcs51\lkdata.c: Definition of memory summary output flag
10518         sflag.
10519
10520         * \sdcc\as\mcs51\lklist.c: For the BSEG area report the size in bits,
10521         not bytes.  Function summary() which creates a memory usage summary
10522         file with extension .mem.  Reports of overlaping stack and small stack
10523         size.  If the space for the stack is less than 16 bytes aslink trows a
10524         warning.
10525
10526         * \sdcc\as\mcs51\lkmain.c: Creation of some of the default areas for
10527         the 8051.  Option 'y' for memory summary output file.
10528
10529         Changes to sdcc (All the changes are marked with 'JCF'):
10530
10531         * \sdcc\src\SDCCglobl.h: External definition of RegBankUsed[4].
10532
10533         * \sdcc\src\SDCCglue.c:  If a register bank is used, creates an
10534         overlaying area for it (uses RegBankUsed[4]).
10535
10536         * \sdcc\src\SDCCmain.c: Definition RegBankUsed[4]; marks register
10537         bank zero as used by default.  By default aslink locates the stack
10538         (equivalent to --stack-after-data).  Pass option 'y' to aslink for
10539         the creation of the .mem file.  Delegates the allocation of data area
10540         to aslink (it is not longer 0x30 by default).  If --stack-loc passes
10541         the begining of the stack area to aslink.
10542
10543         * \sdcc\src\SDCCmem.c:  If a register bank is used, marks it so
10544         glue() in SDCCglue.c creates an area for it.
10545
10546 2002-09-03  Borut Razem <borut.razem AT siol.net>
10547         * sdcc/src/SDCCglue.c, sdcc/src/SDCCglue.h, sdcc/src/SDCCmain.c,
10548         sdcc/src/pic/glue.c:
10549         introduced atexit() handler for teporay files removal in case of
10550         errors, assertions, ...
10551
10552 2002-08-29  Borut Razem <borut.razem AT siol.net>
10553         * sdcc/support/cpp2/auto-host_vc_in.h:
10554         re-definition of O_BINARY and other O_XXX as _O_BINARY and _O_XXX, so the problem
10555         with the returned value from read() in sdcc/support/cpp2/cppfiles.c is solved for MSC.
10556         Maybe there is a similar problem with BORLANDC? It should be checked!
10557
10558         * sdcc/src/ds390/ralloc.c, sdcc/src/mcs51/ralloc.c, sdcc/src/z80/ralloc.c:
10559         corrected improper use of assert: the assignment to clr variable was done inside the assert.
10560         In case that NDEBUG was defined, the assert macro was substituted with no-op, so the assignment
10561         was not executed, and the compiler (cl) launched a warning:
10562         ralloc.c(1442) : warning C4700: local variable 'clr' used without having been initialized
10563
10564 2002-08-28  Bernhard Held <bernhard AT bernhardheld.de>
10565         * src/SDCCglue.c (printIvalArray): iterative calculation of array length
10566
10567 2002-08-28  Jesus Calvino-Fraga and Borut Razem <borut.razem AT siol.net>
10568         * sdcc/sdcc.dsw: added sdcpp, sdcppa, yacc, conf projects
10569
10570         * sdcc/src/src.dsp, sdcc/src/avr/avr.dsp, sdcc/src/ds390/ds390.dsp,
10571           sdcc/src/mcs51/mcs51.dsp, sdcc/src/pic/pic.dsp, sdcc/src/z80/z80.dsp,
10572           sdcc/src/xa51/xa51.dsp, sdcc/src/avr/avra.dsp,
10573           sdcc/src/ds390/ds390a.dsp, sdcc/src/mcs51/mcs51a.dsp,
10574           sdcc/src/pic/pica.dsp, sdcc/src/z80/z80a.dsp,
10575           sdcc/src/xa51/xa51a.dsp, sdcc/as/as_z80.dsp,
10576           sdcc/as/aslink.dsp, sdcc/as/asx8051.dsp, sdcc/packihx/packihx.dsp:
10577         - added Release configuration in VS projects
10578         - review of compiler an linker options
10579         - VC .exe files are generated in bin_vc directory, not to interfere
10580           with binaries generated from other projects (cygwin, mingw, bcc ...)
10581
10582         * sdcc/src/yacc.dsp: added
10583
10584         * sdcc/config.dsp, sdcc/configure_vc.awk, sdcc/sdcc_vc_in.h:
10585         added - genarate sdcc_vc.h using sdcc_vc_in.h as template
10586         and insert the version number definitions from .version
10587
10588         * sdcc/support/cpp2/sdcpp.dsp: added - VC project for sdcpp
10589
10590         * sdcc/support/cpp2/sdcppa.dsp, sdcc/support/cpp2/auto-host_vc_in.h:
10591         added - genarate auto-host.h using auto-host_vc_in.h as template
10592
10593         * sdcc/sdcc_vc.h,
10594         removed from CVS, generated automatically
10595
10596 2002-08-25  Bernhard Held <bernhard AT bernhardheld.de>
10597         * support/scripts/inc2h.pl: use gputils or gpasm (from Nathan Hurst)
10598
10599 2002-08-11  Borut Razem <borut.razem AT siol.net>
10600         * support/Util/NewAlloc.c: removed unneeded #include "sdccconf.h" (suggested by Jesus Calvino-Fraga)
10601
10602 2002-08-10  Borut Razem <borut.razem AT siol.net>
10603         * src/SDCCmain.c (main):
10604         file preOutName was unlinked before closed. This seems to be OK on UNIX and cygwin
10605         platforms, but it doesn't work with Visual Studio: the opened file can not be removed.
10606         The consequence was that some temporary files were not removed.
10607
10608         * src/SDCCglue.c:
10609         unification of code in functions tempfilename() and tempfile():
10610         function tempnam() is defined in Visual Studio 6.0 and .NET
10611
10612         * sdcc/sdcc.dsw: removed project sdcpp, added project xa51a
10613
10614         * sdcc/src/src.dsp, sdcc/src/avr/avr.dsp, sdcc/src/ds390/ds390.dsp,
10615           sdcc/src/mcs51/mcs51.dsp, sdcc/src/pic/pic.dsp, sdcc/src/z80/z80.dsp:
10616         - removed compiler command line option /WX: Treats all warnings as errors
10617         - update a list of source files, included into the project
10618
10619         * sdcc/src/avr/avra.dsp, sdcc/src/ds390/ds390a.dsp, sdcc/src/mcs51/mcs51a.dsp,
10620           sdcc/src/pic/pica.dsp, sdcc/src/z80/z80a.dsp:
10621         changed project type to Generic Project so that can be correcly converted to VS.NET project
10622
10623         * sdcc/as/mcs51/asm.h: definition of PATH_MAX for MSC
10624
10625         * sdcc/src/SDCCast.c: solved MSC error in function decorateType()
10626
10627         * sdcc/src/SDCC.y: added missing ending ';' to rules to get rid of bison warnings
10628
10629         * dcc/src/ds390/ralloc.c, sdcc/src/mcs51/ralloc.c:
10630         added return 0 statements after assert() to make compiler happy
10631
10632         * sdcc/src/xa51/peeph.rul, sdcc/src/xa51/peeph.def, sdcc/src/z80/ralloc.c:
10633         added newline in the def file to keep MSC compiler satisfied
10634
10635         * sdcc/src/z80/gen.c:
10636         - function strcasecmp() is not defined in MSC (and probably also in BORLANDC),
10637           so it is replaced with STRCASECMP, which is defined as stricmp in case of MSC and BORLANDC
10638         - solved MSC error in function aopDump()
10639
10640         * sdcc_vc.h: define PREFIX as "\\sdcc"
10641
10642 2002-07-18  Bernhard Held <bernhard AT bernhardheld.de>
10643         * src/SDCCast.c (decorateType): fixed access to array of structures http://sourceforge.net/mailarchive/forum.php?thread_id=902690&forum_id=4107
10644
10645 2002-06-22  Scott Dattalo <scott AT dattalo.com>
10646         * src/pic/*: Numerous bug fixes. Flow analysis has been enhanced.
10647         - Rewrote the register banking algorithm.
10648         - Added pCode live-range analysis to registers (for now, only non-used and
10649         singly-used registers optimized away)
10650
10651         * src/pic/pcoderegs.[ch]: Added new files for pCode live-range analysis
10652
10653         * 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.
10654
10655 2002-05-10  Scott Dattalo <scott AT dattalo.com>
10656         * src/pic/*: Added support for multiplication. Fixed many,many bugs.
10657
10658 2002-04-22  Michael Hope  <michaelh AT vroom>
10659
10660         * device/lib/z80/printf.c: Changed emitter to volatile to work around a pcall bug.
10661
10662         * configure.in (DD_COPT): Added include support required for gbdk.
10663
10664         * .version: Bumped version number just to increase it.
10665
10666         * src/SDCCmain.c: Added -nostdinc to the default options.
10667
10668 2002-04-15  Michael Hope  <michaelh AT vroom>
10669
10670         * device/lib/z80/printf.c (sprintf): Added.
10671
10672         * src/z80/ralloc.c (packRegisters): Disabled pack HL use for GB as it's broken.
10673
10674         * src/z80/peeph.def: Added transpose redundent load rule.
10675
10676         * src/z80/main.c: Added force callee saves for jaune.
10677
10678         * src/port.h: Removed the i186 and tlcs-900h ports as they weren't being being developed.
10679
10680         * src/SDCCmain.c: Pulled the options definition out so that you can add port specific options without changing the main file.
10681
10682 2002-03-28  Johan Knol  <johan AT balder>
10683
10684         * src/SDCCval.c: fixed bug #532436
10685
10686 2002-03-14  Scott Dattalo <scott AT dattalo.com>
10687         * /src/port.h:
10688         Added "char *Processor" field to the port structure.
10689
10690         * /src/SDCCmain.c:
10691         Added -p option. Allows port dependent processor to be specified.
10692
10693         * all ports:
10694         Initialized the new field char *Processor field to NULL in all ports
10695
10696         * /src/pic/*:
10697         Compiler generated registers for interrupt context saving
10698         were not getting allocated.
10699
10700 2002-03-16  Sandeep Dutta  <sandeep AT ddi.com>
10701
10702         * /src/SDCCast.c:
10703         Fixed left shift. Will promote the left side of a left shift
10704         if a) left shifting more than size of operand or b) when assigned
10705         to something size > size of left side
10706
10707 2002-03-14  Scott Dattalo <scott AT dattalo.com>
10708         * src/pic/*
10709         tons of changes. Register allocation has been
10710         rewritten. Added customization for the various PICs. Flow
10711         analysis is restructured. ...
10712
10713         * src/pic/device.h:
10714         Added
10715
10716         * src/pic/device.c:
10717         Added. device.c is a PIC port hack to accomodate variations
10718         in PIC devices.
10719
10720 2002-03-13  Michael Hope  <michaelh AT vroom>
10721
10722         * src/z80/gen.c (genGenPointerGet): Fixed a bug where a pointer in HL is dereferenced into HL but HL is not spilled.  Yeah.
10723
10724 2002-03-04  johanknol  <johanknol AT manik>
10725
10726         * /src/SDCCval.c: fixed
10727
10728         const unsigned char arr[][2] = { { 0, 1 } };
10729         t18.c:1: error: Initializer element is not constant
10730
10731 2002-03-04  bela  <bela AT manik>
10732
10733         * /device/include/mcs51reg.h:
10734         ds89c420 register definition update
10735
10736 2002-03-03    <johan AT FRIJA>
10737
10738         * support/Util/SDCCerr.c: did something, but don't no why anymore
10739
10740         * support/regression/tests/bug-524691.c: made it a little less shy
10741
10742         * src/SDCCast.c (decorateType): fixed bug #524697
10743
10744         * src/SDCCast.c: made some lineno improvements
10745
10746         * src/SDCCval.c (getNelements): changed warning to error
10747
10748         * src/SDCCglue.c (printIvalArray): changed warning to error
10749
10750         * src/SDCCicode.c: fixed a warning for mingw
10751
10752         * src/SDCCast.c (decorateType): fixed the << promotion for ops
10753
10754         * src/SDCCicode.c (geniCodeDivision): divide is shift only for unsigned (bug #524685)
10755
10756 2002-03-02  Sandeep Dutta  <sandeep AT ddi.com>
10757
10758         * src/ds390/peeph.def:
10759         Added some more peephole rules
10760
10761         * src/ds390/gen.c: Various fixes & enhancements
10762
10763         * src/SDCClrange.c, src/SDCClrange.h:
10764         functions "alldefsoutofrange" and "notusedinblock" moved to SDCClrange.c
10765
10766         * src/ds390/ralloc.c:
10767         various fixes & enhancements (ds390) specific
10768
10769         * src/avr/ralloc.c, src/mcs51/ralloc.c, src/pic/ralloc.c, src/xa51/ralloc.c, src/z80/ralloc.c:
10770         Functions "allDefsOutOfRange" & "notUsedinBlock" moved to SDCClrange.c
10771         from rallocs.
10772
10773         * sdcc/src/SDCCcse.c: Better fix for bug # 514308
10774
10775 2002-03-02    <johan AT FRIJA>
10776
10777         * src/SDCCast.c (decorateType): fixed bug #524708
10778
10779         * src/SDCCval.c (floatFromVal): fixed the literal void (whatever that may be)
10780
10781         * src/SDCCicode.c (geniCodePtrPtrSubtract): fixed bug #524691
10782
10783 2002-03-01  Michael Hope  <michaelh AT vroom>
10784
10785         * src/SDCCsymt.c (initCSupport): Removed managling of support function names.
10786
10787         * src/z80/ralloc.c (packRegsForIYUse): Fixed fp bug where four byte operands were packed into IY.
10788
10789 2002-03-01    <johan AT FRIJA>
10790
10791         * src/SDCCglue.c (printIvalPtr): fixed bug #524211
10792
10793         * src/SDCCast.c (decorateType): fixed bug #524209
10794
10795         * src/SDCCval.c (valNot): fixed bug #524195
10796
10797 2002-02-26    <johan AT balder>
10798
10799         * src/xa51/gen.c: fixed a warning
10800
10801         * src/SDCCglue.c (printIvalFuncPtr): fixed bug #522534
10802
10803         * src/SDCCast.c (decorateType): fixed bug #522534
10804
10805 2002-02-23    <johan AT balder>
10806
10807         * src/SDCCdflow.c (computeDataFlow): fixed bug #460088
10808
10809 2002-02-22    <johan AT balder>
10810
10811         * src/SDCCast.c: fixed bug #514865
10812
10813         * src/SDCCy.c ("SDCC.y"): fixed bug #516625
10814
10815 2002-02-21  Sandeep Dutta  <sandeep AT ddi.com>
10816
10817         * sdcc/src/SDCCloop.c:
10818         Previous fix was not good. basic blocks that have "break" or "return" are
10819         not really partof a loop , but live ranges used in these blocks should
10820         be live thru the entire loop, so set partOfLoop but don't add them to
10821         loop region
10822
10823 2002-02-21    <johan AT FRIJA>
10824
10825         * src/SDCCcse.c: fixed bug #514308
10826
10827 2002-02-20  Sandeep Dutta  <sandeep AT ddi.com>
10828
10829         * src/SDCCloop.c:
10830         Fixed BUG #519583. If a conditional block ended in a return/break
10831         statement inside a loop, it was not being considered part of the loop.
10832
10833         * src/SDCCcflow.c: Removed fix (Fixed in SDCCloop.c)
10834
10835 2002-02-10  Karl Bongers <karl AT turbobit.com>
10836
10837         * debugger/*:
10838         Fixed up SDCDB debugger somewhat.  Updated debugger/README
10839         with lots of comments and notes.
10840
10841         * device/examples/test2.c:
10842         Fix bug, "red" variable not being initialized(compiler complained).
10843
10844         * device/examples/Makefile, examples/test3.c:
10845         Add Makefile in device/examples folder, compiles test3.c
10846         for use as a multiple module SDCDB test case.
10847
10848         * sim/ucsim/cmd.src/cmdset.cc:
10849         Took out debug printfs in ucsim "next" command.
10850
10851         * sim/ucsim/xa.src:
10852         Karl and Johan start ucsim XA support.  Most dissassembly working,
10853         about 75% emulation done(plenty of work remaining).
10854
10855         * sim/ucsim/z80.src:
10856         Add Z80 support to ucsim, add test-ucz80 regression test,
10857         notice ucsim/z80 emulation fails on examples/test3.c/itoa code.
10858         Notice z80 compiler fails on examples/test3.c/crc code.
10859
10860 2002-01-30  Sandeep Dutta  <sandeep AT ddi.com>
10861
10862         * src/mcs51/gen.c, src/mcs51/main.c, src/mcs51/ralloc.c:
10863         Added support for --parms-in-bank1
10864
10865         * src/ds390/peeph.def:
10866         added a few more peephole optimzations
10867
10868         * src/ds390/main.c:
10869         1) added __builtin_inp & __builtin_outp used to read in data of given length
10870            from a memory mapped port
10871         2) added __builtin_memcmp
10872         3) added __builtin_swapw swap bytes of a short
10873
10874         * src/ds390/gen.c, src/ds390/gen.h, src/ds390/ralloc.c:
10875         1) handle multiple send & receives from register bank1
10876         2) ralloc can now allocate DPTR1 to some liveRanges
10877
10878         * src/SDCCsymt.c, src/SDCCsymt.h:
10879         changes to handle multiple sends & receives
10880
10881         * src/SDCCptropt.h:
10882         added some pointer arithmetic optimization
10883
10884         * src/SDCCptropt.c:
10885         added some pointer arithmetic optimizations but not stable yet so not
10886         called from anywhere (will get this working shortly)
10887
10888         * src/SDCCopt.c: fixed for multiple sends & receives
10889
10890         * src/SDCCmain.c:
10891         1) added options --parms-in-bank1 (ds390/mcs51) & --protect-sp-update
10892         2) preprocessing done AFTER port->finalizeoptions . This allows ports to
10893            set preprocessor defines (depending on options)
10894
10895         * src/SDCCicode.c, src/SDCCicode.h:
10896         changes made to handle multiple sends & receives
10897
10898         * src/SDCCglobl.h:
10899         Added options --protect-sp-update (ds390) and --parms-in-bank1 (ds390/mcs51)
10900
10901         * src/SDCCcse.c, src/SDCCcse.h:
10902         added function findbackward def (to be used in upcoming optimization)
10903
10904         * src/SDCCcflow.c, src/SDCCcflow.h:
10905         added function returnAtEnd - to determine if a basic block terminates with
10906         a RETURN iCode
10907
10908         * src/SDCCast.c, src/SDCCast.h:
10909         added option parms-in-bank1
10910
10911         * device/lib/_divsint.c, device/lib/_divslong.c, device/lib/_divuint.c
10912         * device/lib/_divulong.c, device/lib/_modsint.c, device/lib/_modslong.c
10913         * device/lib/_modulong.c, device/lib/_mulint.c, device/lib/_mullong.c:
10914         adjusted for --parms-in-bank1 option
10915
10916         * device/include/string.h:
10917         donot redefine "reentrant" keyword
10918
10919         * device/include/ds80c390.h: Added some more SFRs
10920
10921 2002-01-28  Bernhard Held  <bernhard AT bernhardheld.de>
10922
10923         * sim/ucsim: Merged branch ucsim-034-pre3 to main trunk; new version 0.4
10924
10925 2002-01-26  Bernhard Held  <bernhard AT bernhardheld.de>
10926
10927         * src/SDCCast.c (funcOfType): fix usage of double --float-reent
10928
10929 2002-01-22  Bernhard Held  <bernhard AT bernhardheld.de>
10930
10931         * support/regression/fwk/lib/testfwk.c (main): Removed workaround for bug #505387
10932
10933 2002-01-18  Paul Stoffregen  <paul AT pjrc.com>
10934
10935         * Added --xram-movc option
10936
10937 2002-01-13  Bernhard Held  <bernhard AT bernhardheld.de>
10938
10939         * support/regression/Makefile: don't include test-mcs51-stack-auto in target all
10940
10941 2002-01-11  Johan Knol
10942
10943         * Added math lib of Jesus Calvino-Fraga
10944
10945 2002-01-08  Bernhard Held  <bernhard AT bernhardheld.de>
10946
10947         * src/SDCCmain.c (processFile): fix processing of ../../src.c
10948         * support/regression/Makefile: new target test-mcs51-stack-auto
10949         * support/regression/ports/mcs51-stack-auto/spec.mk: added
10950
10951 2002-01-04  Bernhard Held  <bernhard AT bernhardheld.de>
10952
10953         * src/SDCCglue.h: printIvalCharPtr(), not printIvalChar()
10954
10955 2002-01-04  Bernhard Held  <bernhard AT bernhardheld.de>
10956
10957         * support/regression/ports/mcs51/support.c: correct setup of timer / UART
10958
10959 2002-01-03  Bernhard Held  <bernhard AT bernhardheld.de>
10960
10961         * src/SDCCsymt.c (processFuncArgs): fix #498307 by Johan
10962
10963         * src/SDCCglue.h: add definition for printIvalChar()
10964
10965 2002-01-02  Bernhard Held  <bernhard AT bernhardheld.de>
10966
10967         * src/SDCCast.c: fix #498138 by Johan
10968
10969         * src/SDCCglue.c: fix #498138 by Johan
10970
10971 2002-01-02  Bernhard Held  <bernhard AT bernhardheld.de>
10972
10973         * support/regression/Makefile: fix clean
10974
10975         * support/regression/ports/ds390/support.c: fix transmission of last character
10976
10977 2001-12-29  Sandeep Dutta  <sandeep AT ddi.com>
10978
10979         * /sdcc/src/ds390/gen.c:
10980         a) improved computing address of stack variable
10981         b) took out some #if 0 code
10982         c) improved parmBytes adjustment
10983         d) improved genPlusIncr & genMinusIncr
10984         e) genCmp could generate bad code (when left assigned to DPTR)
10985         f) Fixed bug in hasInc
10986
10987         * /sdcc/src/ds390/ralloc.c:
10988         a) packRegsForSupport could mess up live information (Fixed)
10989         b) packRegsDPTRuse could be incorrect for left & right shift
10990
10991         * /sdcc/src/mcs51/ralloc.c:
10992         packRegsForSupport could mess up the live information (Fixed)
10993
10994         * /sdcc/src/mcs51/gen.c: Fixed a bug in hasInc
10995
10996         * /sdcc/src/SDCCast.c:
10997         can reverse a loop even if function call is present as long
10998         as the loop control variable is local & is not passed as parameter
10999
11000 2001-12-24  Sandeep Dutta  <sandeep AT ddi.com>
11001
11002         * /sdcc/ChangeLog: *** empty log message ***
11003
11004         * /sdcc/src/ds390/gen.c, /sdcc/src/ds390/main.c:
11005         More builtin function additions for TININative
11006
11007         * /sdcc/src/ds390/ralloc.c:
11008         Had broken the regression testsuite
11009
11010         * /sdcc/src/SDCCast.c: Fixed a bug in dumptree
11011
11012         * /sdcc/src/SDCCsymt.c, /sdcc/src/SDCCsymt.h:
11013         Added funcattr hasStackParms will be set for reentrant functions when there
11014         are paramteres on the stack, this helps in minimizing frame pointer generation
11015         typeFromStr can handle function pointers now
11016
11017         * /sdcc/doc/builtins.txt, /sdcc/doc/TININative.txt:
11018         *** empty log message ***
11019
11020 2001-12-24  Sandeep Dutta  <sandeep AT ddi.com>
11021
11022         * /src/ds390/gen.c, /src/ds390/main.c:
11023         More builtin function additions for TININative
11024
11025         * /src/ds390/ralloc.c:
11026         Had broken the regression testsuite
11027
11028         * /src/SDCCast.c: Fixed a bug in dumptree
11029
11030         * /src/SDCCsymt.c, /src/SDCCsymt.h:
11031         Added funcattr hasStackParms will be set for reentrant functions when there
11032         are paramteres on the stack, this helps in minimizing frame pointer generation
11033         typeFromStr can handle function pointers now
11034
11035         * /doc/builtins.txt, /doc/TININative.txt:
11036         *** empty log message ***
11037
11038
11039 2001-12-24  Sandeep Dutta  <sandeep AT ddi.com>
11040
11041         * /src/ds390/gen.c, /src/ds390/main.c, /src/ds390/peeph.def, /src/ds390/ralloc.c:
11042         ALPHA version for -mTININative
11043
11044         * /src/izt/i186.c, /src/izt/tlcs900h.c, /src/mcs51/main.c, /src/pic/main.c, /src/z80/main.c, /src/avr/main.c:
11045         updated to reflect changes in the port structure
11046
11047         * /src/port.h:
11048         added function do_assemble (similar to do_link) if non-null this function
11049         will be called to do assembly (-mTININative) requires a multi command
11050         assembly
11051         added function genAssemblerEnd will be called to generate assembler Epilogue
11052
11053         * /src/SDCCsymt.c:
11054         added _JavaNative to debug info printing
11055
11056         * /src/SDCCmain.c: added option --tini-libid
11057         added port->do_assemble function (-mTININative) has a multi command assemble
11058
11059         * /src/SDCCglue.c: Disabled "constExpr" check
11060         added port->genAssemblerEnd function
11061
11062         * /src/SDCCglobl.h: Added option --tini-libid value
11063
11064         * /src/SDCCast.h:
11065         tookout optimizeCompare from the header (has no external references)
11066
11067         * /src/SDCCast.c: made one more function "static"
11068
11069 2001-12-23  Michael Hope  <michaelh AT juju.net.nz>
11070
11071         * src/z80/mappings.i: Added z80asm support.
11072
11073         * src/z80/main.c: Added z80asm support on --asm=z80asm
11074
11075         * src/z80/gen.c: Fixed asm portability issues.
11076
11077         * src/asm.c (tvsprintf): Removed old code, added 'N' for function name.  For extern support.
11078
11079         * src/SDCCglue.c (printExterns): Added global/extern split.
11080
11081 2001-12-17  Bernhard Held  <bernhard AT bernhardheld.de>
11082
11083         * support/regression/Makefile: added test for mcs51 model large
11084
11085         * support/regression/ports/mcs51-large/spec.mk: added test for mcs51 model large
11086
11087         * support/regression/ports/gbz80/spec.mk: added -mgbz80
11088
11089 2001-12-05  Michael Hope  <michaelh AT juju.net.nz>
11090
11091         * src/diff.1 (Index): Many, many optmisiations.  Dhrystone up to 201.
11092
11093 1904-01-06  Michael Hope  <michaelh AT juju.net.nz>
11094
11095         * src/z80/ralloc.c (packRegsForIYUse): Fixed the case where an operand is in direct space.
11096
11097         * src/z80/gen.c (makeFreePairId): Optimised IY load by using a spare pair.
11098
11099 2001-12-02  Bernhard Held  <bernhard AT bernhardheld.de>
11100
11101         * src/mcs51/gen.c (genFunction): avoid excess "inc sp"
11102
11103         * support/regression/tests/simplefloat.c: Port to mcs51.
11104
11105 2001-11-25  Michael Hope  <michaelh AT juju.net.nz>
11106         * support/regression/tests/bug-485362.c: Added.
11107
11108         * support/regression/tests/simplefloat.c (testDivNearOne): Added.
11109
11110         * src/z80/gen.c (aopOp): Fixed case where left and result are in the same spill loc and they have different sizes.
11111
11112         * src/z80/peeph.def: Added rules for optimising two byte compares on the same thing, and to optimise two ptr assign.
11113
11114         * src/z80/gen.c (aopDump): Added a dump function.
11115
11116 2001-11-25  Bernhard Held  <bernhard AT bernhardheld.de>
11117         * sim/ucsim/s51.src/glob.cc: DS390 SFRs and bits added.
11118
11119         * sim/ucsim/s51.src/port.cc: Port 4 and 5 added.
11120
11121         * sim/ucsim/s51.src/regs51.h: DS390 SFRs added.
11122
11123         * sim/ucsim/s51.src/uc390.cc: Some details improved, CKRDY works for tinibios.
11124
11125         * sim/ucsim/s51.src/uc390cl.h: Work in progress.
11126
11127         * sim/ucsim/sim.src/uccl.h: 6 ports for DS390.
11128
11129         * support/regression/fwk/lib/testfwk.c: Run with tinibios.
11130
11131         * support/regression/ports/mcs51/spec.mk: Fine tuninig.
11132
11133         * support/regression/ports/ds390/support.c: Use tinibios.
11134
11135         * support/regression/ports/ds390/spec.mk: Fine tuning, use tinibios.
11136
11137 2001-11-23  Michael Hope  <michaelh AT juju.net.nz>support/regression/tests/bug-460010.c
11138
11139         * src/z80/ralloc.c (packRegsForHLUse3): Changed to not pack into HL if anything is in direct space.
11140         (packRegsForHLUse3): Added packing support for send, cast, and return value from a call.
11141
11142         * src/z80/peeph.def: Added rules for optimising pushes of part of a pair.
11143
11144         * src/z80/gen.c (emitCall): Changed the stack fixup to not use HL.
11145
11146 2001-11-18  Michael Hope  <michaelh AT juju.net.nz>
11147
11148         * src/z80/gen.c (genCmp): Fixed compare on unsigned.
11149
11150         * src/z80/ralloc.c (packRegsForHLUse3): Created and optimised.
11151         (packRegsForIYUse): Created and optimised.
11152
11153 2001-11-07  Michael Hope  <michaelh AT juju.net.nz>
11154
11155         * support/regression/tests/float.c (testFloatAdd): Fixed up warning.
11156 2001-11-18  Bernhard Held  <bernhard AT bernhardheld.de>
11157
11158         * sdcc/support/regression/tests/bug-460010.c: fix seg violation on host
11159
11160         * sdcc/support/regression/tests/muldiv.c: fix output on mcs51
11161
11162         * sdcc/support/regression/tests/stacks.c: fix DSEG overflow on mcs51
11163
11164 2001-11-07  Bernhard Held  <bernhard AT bernhardheld.de>
11165
11166         * sdcc/sim/device/lib/_gptrget.c: mem region 5 (idata) added
11167
11168         * sdcc/sim/device/lib/_gptrput.c: mem region 5 (idata) added
11169
11170 2001-11-07  Bernhard Held  <bernhard AT bernhardheld.de>
11171
11172         * sdcc/sim/ucsim/globals.cc: New: IXRAM.
11173
11174         * sdcc/sim/ucsim/stypes.h: New: IXRAM.
11175
11176         * sdcc/sim/ucsim/s51.src/uc390.cc: New: IXRAM.
11177
11178 2001-11-07  Michael Hope  <michaelh AT juju.net.nz>
11179
11180         * src/z80/ralloc.c (packRegsForHLUse): Banned IFXs from being packed into HL.
11181         (packRegsForHLUse): Added rule to pack address of/pointer get for itemps into HL for the Z80.
11182         (packRegsForAccUse2): Added rule to pack hbit IFXs into A.
11183
11184         * src/z80/main.c (_setDefaultOptions): Made float code re-entrant by default.
11185
11186         * src/z80/gen.c (aopGetLitWordLong): Added word support for floats.
11187         (genNotFloat): Added.
11188         (genUminusFloat): Added.
11189
11190         * device/lib/z80/Makefile: Added floating pt stubs.
11191
11192         * device/lib/Makefile.in (Z80SOURCES): Added floating pt support.
11193
11194         * src/z80/gen.c (genIpush): Fixed up a push of one byte when left is in a pair.
11195
11196         * device/lib/_fsadd.c (__fsadd): Fixed up return where the numbers are hugely different.
11197
11198 2001-11-07  Bernhard Held  <bernhard AT bernhardheld.de>
11199
11200         * sdcc/sim/ucsim/s51.src/glob.cc: Minor fix.
11201
11202         * sdcc/sim/ucsim/s51.src/regs51.h: Minor fix.
11203
11204         * sdcc/support/regression/Makefile: Add port ds390.
11205
11206         * sdcc/support/regression/ports/mcs51/spec.mk: Minor change.
11207
11208         * sdcc/support/regression/ports/z80/spec.mk: Minor change.
11209
11210         * sdcc/support/regression/ports/ds390/spec.mk: Added.
11211
11212         * sdcc/support/regression/ports/ds390/support.c: Added.
11213
11214         * sdcc/support/regression/ports/ds390/uCsim.cmd: Added.
11215
11216         * sdcc/support/regression/ports/mcs51/timeout.c: Cut.
11217
11218         * sdcc/support/regression/fwk/lib/timeout.c: Paste.
11219
11220 2001-11-04  Michael Hope  <michaelh AT juju.net.nz>
11221
11222         * device/include/malloc.h: Added z80 and gbz80 support.
11223
11224         * device/lib/gbz80/heap.s: Added.
11225
11226         * device/lib/z80/heap.s: Added.
11227
11228         * device/lib/malloc.c: Added z80 and gbz80 support.
11229
11230         * support/regression/tests/malloc.c (testMalloc): Added.
11231
11232         * src/SDCCmain.c (parseCmdLine): Added support for -Wp.
11233
11234         * support/regression/tests/bug-478094.c: Added.
11235
11236         * src/z80/gen.c (commitPair): Fixed silly gbz80/z80 commit to static bug.
11237
11238 2001-11-04  Bernhard Held  <bernhard AT bernhardheld.de>
11239
11240         * sdcc/sim/ucsim/s51.src/uc390cl.h: Improvement for ds390 to run regression tests
11241
11242         * sdcc/sim/ucsim/s51.src/uc390.h: Improvement for ds390 to run regression tests
11243
11244         * sdcc/sim/ucsim/s51.src/regs51.h: Improvement for ds390 to run regression tests
11245
11246         * sdcc/sim/ucsim/s51.src/glob.cc: Improvement for ds390 to run regression tests
11247
11248         * sdcc/support/regression/tests/bug-460010.c: Small change for ds390
11249
11250 2001-11-04  Michael Hope  <michaelh AT juju.net.nz>
11251
11252         * src/z80/peeph-gbz80.def: Removed a bad sub optimisation.
11253
11254 2001-11-03  Michael Hope  <michaelh AT juju.net.nz>
11255
11256         * support/regression/tests/bug-477927.c: Added.
11257
11258         * src/z80/peeph.def: Added minor rules.
11259
11260         * src/z80/gen.c (genPlusIncr): Added an extra plusinc rule.
11261
11262         * src/z80/peeph.def: Added jump optimisation modification.
11263
11264 2001-11-01  Michael Hope  <michaelh AT juju.net.nz>
11265
11266         * src/SDCCmain.c (linkEdit): Added runtime path detection to the mcs51 port.
11267
11268 2001-10-30  Michael Hope  <michaelh AT juju.net.nz>
11269
11270         * support/regression/tests/funptrs.c: Added.
11271
11272 2001-10-29  Michael Hope  <michaelh AT juju.net.nz>
11273
11274         * src/z80/ralloc.c (packRegsForHLUse): Fixed up bad spill due to pushing one byte via HL.
11275
11276 2001-10-28  Michael Hope  <michaelh AT juju.net.nz>
11277
11278         * src/z80/gen.c (genArrayInit): Made it work for on stack arrays.
11279
11280         * src/z80/main.c (gbz80_port =): Added rle support to the gbz80 port.
11281
11282         * src/z80/gen.c (genMinus): Fixed for where the result is one byte.
11283         (movLeft2ResultLong): Created.
11284
11285         * src/z80/ralloc.c (packRegsForHLUse): Added a couple of simple cases for the GB.
11286         (joinPushes): Added.  Joins two char pushes into a word push.
11287
11288 2001-10-27  Michael Hope  <michaelh AT juju.net.nz>
11289
11290         * support/cpp2/Makefile.in (install): Added creation of dest dir.
11291
11292         * support/makebin/Makefile (install): Added creation of dest dir.
11293
11294 2001-10-24 Karl Bongers <karl AT turbobit.com>
11295
11296         * configure.in, configure, Makefile, support/cpp: Removed cpp folder, since we have new cpp2 preprocessor code.
11297
11298 2001-10-21  Michael Hope  <michaelh AT juju.net.nz>
11299
11300         * src/z80/ralloc.c: Turned off faulty pack for one use.
11301
11302         * src/z80/peeph-gbz80.def: Removed redundent restart options.
11303
11304         * src/z80/gen.c (genMult): Added native mul for constants on the z80 and gbz80.
11305
11306 2001-10-21  Bernhard Held  <bernhard AT bernhardheld.de>
11307
11308         * support/regression/Makefile: Improved clean
11309
11310         * support/regression/ports/gbz80/spec.mk: Added clean
11311
11312         * support/regression/ports/host/spec.mk: Added clean
11313
11314         * support/regression/ports/z80/spec.mk: Added clean
11315
11316         * support/regression/ports/mcs51/spec.mk: Added clean, little improvements
11317
11318         * support/regression/ports/mcs51/timeout.c: little improvements
11319
11320 2001-10-17  Michael Hope  <michaelh AT juju.net.nz>
11321
11322         * device/lib/malloc.c (MEMHEADER): Fixed against new pedantic pointers.
11323
11324         * support/regression/fwk/include/testfwk.h: Fixed up to use function pts correctly.
11325
11326         * support/regression/generate-cases.py: Fixed up to use function pts correctly.
11327
11328 2001-10-16  Bernhard Held  <bernhard AT bernhardheld.de>
11329
11330         * support/regression/port/mcs51/spec.mk: add timeout for uCsim
11331
11332         * support/regression/port/mcs51/timeout.c: add timeout for uCsim
11333
11334 2001-10-13  Michael Hope  <michaelh AT juju.net.nz>
11335         * src/z80/gen.c (emitCall): Fixed up missing spill of HL when used to assign the result value.
11336
11337         * src/z80/ralloc.c: Turned off pack for one use as it's quite broken.
11338
11339         * src/SDCCmain.c (linkEdit): Added support for passing a legacy command line through the processor.
11340
11341         * src/mcs51/main.c (_linkCmd): Added bin path to command.
11342
11343         * src/SDCCmain.c (initValues): Added support for when it it called just to link.
11344
11345         * as/mcs51/lklibr.c (libfil;): Turned off 'library file' message.
11346
11347         * src/SDCCval.c (constVal): Fixed usage of 'L' modifier problems on ppc.
11348
11349         * support/regression/tests/longor.c: Added.
11350
11351 2001-10-11  Bernhard Held  <bernhard AT bernhardheld.de>
11352
11353         * as/mcs51/asdata.c: replaced FILENAME_MAX with PATH_MAX
11354
11355         * as/mcs51/aslink.h: define PATH_MAX
11356
11357         * as/mcs51/asm.h: define PATH_MAX
11358
11359         * as/mcs51/asmain.c: replaced FILENAME_MAX with PATH_MAX
11360
11361         * as/mcs51/asnoice.c: replaced FILENAME_MAX with PATH_MAX
11362
11363         * as/mcs51/lklex.c: replaced FILENAME_MAX with PATH_MAX
11364
11365         * as/mcs51/lkmain.c: replaced FILENAME_MAX with PATH_MAX
11366
11367         * src/SDCCglobl.h: define PATH_MAX
11368
11369         * src/SDCCmacro.c: replaced FILENAME_MAX with PATH_MAX
11370
11371         * src/SDCCmain.c: replaced FILENAME_MAX with PATH_MAX
11372
11373 2001-10-11  Michael Hope  <michaelh AT juju.net.nz>
11374
11375         * src/z80/gen.c (gencjneshort): Fixed
11376
11377         * src/z80/ralloc.c (packRegsForHLUse): Added pack into HL for cast then ipush.
11378
11379 2001-10-09  Michael Hope  <michaelh AT juju.net.nz>
11380
11381         * support/regression/tests/bug-469671.c: Added.
11382
11383         * src/z80/gen.c (shiftIntoPair): Fixed up warning.
11384
11385 2001-10-08  Michael Hope  <michaelh AT juju.net.nz>
11386
11387         * src/SDCCmain.c: Added --fommit-frame-pointer option and implemented in the z80 port.
11388
11389         * src/z80/gen.c (genPlus): Fixed to work with extended stack.  Also fixed genMinus, genCmp.  genUMinus is still left.
11390
11391 2001-10-08  Bernhar Held  <bernhard AT bernhardheld.de>
11392
11393         * src/SDCCmain.c (preProcess): added define SDCC_NOOVERLAY
11394
11395         * src/device/lib/_mulint.c  : removed hint: nooverlay bug
11396
11397         * src/device/lib/_mullong.c : removed hint: nooverlay bug
11398
11399         * src/device/lib/_divuint.c : removed hint: nooverlay bug
11400
11401         * src/device/lib/_divulong.c: removed hint: nooverlay bug
11402
11403         * src/device/lib/_moduint.c : removed hint: nooverlay bug
11404
11405         * src/device/lib/_modulong.c: removed hint: nooverlay bug
11406
11407 2001-10-07  Michael Hope  <michaelh AT juju.net.nz>
11408
11409         * 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.
11410
11411         * support/Util/NewAlloc.c (freeTrace): Changed free for the gc case to not free at all.  Fixes runtime segfault.
11412
11413         * support/regression/tests/scott-compare3.c (c_abcd): Fixed up casts.
11414
11415 2001-10-07    <johan AT FRIJA>
11416
11417         * device/lib/gets.c (gets): fixed the return value.
11418
11419 2001-10-06  Michael Hope  <michaelh AT juju.net.nz>
11420         * src/SDCCmain.c (WRITE_SEG_LOC): Fixed up to use Safe_strdup.
11421
11422         * 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.
11423
11424         * 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.
11425
11426         * src/z80/gen.c (genZ80Code): Added de-allocation via trace support.
11427
11428         * src/pic/gen.c: Removed Safe_strdup.
11429
11430         * configure.in: Added option to enable libgc support.
11431
11432         * src/SDCCbitv.c (bitVectnBitsOn): Optimised.
11433         (bitVectUnion): Optimised.
11434         (bitVectIntersect): Optimised.
11435         (bitVectBitsInCommon): Optimised.
11436         (bitVectCplAnd): Optimised.
11437
11438         * support/makebin/makebin.c (usage): Removed getopt as mingw32 doesn't have it.  Sigh.
11439
11440 2001-10-03 Bernhard Held <bernhard AT bernhardheld.de>
11441
11442         * src/SDCCmain.c: distinguish between assembler debug and plain options
11443
11444         * src/avr/main.c:   remove standard assembler options
11445
11446         * src/ds390/main.c: remove standard assembler options
11447
11448         * src/mcs51/main.c: remove standard assembler options
11449
11450         * src/port.h: removed "PENDING" comment
11451
11452 2001-10-03 Bernhard Held <bernhard AT bernhardheld.de>
11453
11454         * src/device/lib/_mulint.c  : new, with assember functions
11455
11456         * src/device/lib/_mullong.c : new, with assember functions
11457
11458         * src/device/lib/_divuint.c : with assember functions
11459
11460         * src/device/lib/_divsint.c : with assember functions
11461
11462         * src/device/lib/_divulong.c: with assember functions
11463
11464         * src/device/lib/_divslong.c: with assember functions
11465
11466         * src/device/lib/_moduint.c : with assember functions
11467
11468         * src/device/lib/_modsint.c : with assember functions
11469
11470         * src/device/lib/_modulong.c: with assember functions
11471
11472         * src/device/lib/_modslong.c: with assember functions
11473
11474         * src/device/lib/libint.lib:  replaced _muluint.c  and _mulsint.c  by _mulint.c
11475
11476         * src/device/lib/liblong.lib: replaced _mululong.c and _mulslong.c by _mullong.c
11477
11478         * src/device/lib/Makefile.in: replaced _muluint.c  and _mulsint.c  by _mulint.c
11479                                       replaced _mululong.c and _mulslong.c by _mullong.c
11480
11481 2001-10-03 Bernhard Held <bernhard AT bernhardheld.de>
11482
11483         * src/SDCCsymt.c: sequence of specifiers in pintTypeChain() corrected
11484
11485 2001-10-01 Bernhard Held <bernhard AT bernhardheld.de>
11486
11487         * src/SDCCglue.c: test, if win32api is available for MINGW
11488
11489 2001-10-01 Bernhard Held <bernhard AT bernhardheld.de>
11490
11491         * src/SDCCsymt.c: no more _modifier in printTypeChain()
11492         * support/regression/tests/driverstruct.c: REENTRANT for mcs51
11493         * support/regression/ports/gbz80/spec.mk: removed GENERIC
11494         * support/regression/ports/host/spec.mk: removed GENERIC
11495         * support/regression/ports/mcs51/spec.mk: removed GENERIC
11496         * support/regression/ports/z80/spec.mk: removed GENERIC
11497
11498 2001-10-01  Michael Hope  <michaelh AT juju.net.nz>
11499
11500         * support/regression/fwk/lib/testfwk.c (__printf): Removed GENERIC.
11501
11502         * support/regression/tests/bug-467035.c: Created.
11503
11504 2001-10-01    <johan AT FRIJA>
11505
11506         * src/SDCC.y: fixed bug #466586 part 1
11507
11508 2001-10-01  Johan Knol <johan.knol AT iduna.nl>
11509
11510         * SDCCicode.c: z80 has no generic pointers
11511         * removed -s from strip in all Makefile(.in)'s. It is not needed, but Solaris chocks on it.
11512
11513 2001-09-30  Michael Hope  <michaelh AT juju.net.nz>
11514
11515         * sim/ucsim/cmd.src/Makefile.in ($(PRJDIR)/libcmd.a): Changed all ar references to $(AR) for Solaris.
11516
11517 2001-09-29  Michael Hope  <michaelh AT juju.net.nz>
11518
11519         * Makefile (sdcc-libs): Added makebin to the list of standard targets.
11520
11521         * support/regression/ports/z80/spec.mk: Updated to use env for sdcc bin dir for automatic regression.
11522
11523 2001-09-25  Michael Hope  <michaelh AT juju.net.nz>
11524
11525         * configure.in: Fixed up so that ucsim is only configured once.
11526
11527         * support/cpp2/configure.in: Fixed to use the program transform to append the .exe for the win32 build.
11528
11529         * src/SDCCutil.c (getPrefixFromBinPath): Fixed up to work with win32 in all of its glory.
11530         (getPathDifference): As above.
11531
11532         * src/SDCCmain.c (preProcess): Changed to use a temporary file in a proper temp directory.  Fixed case where pre-processing only.
11533
11534         * src/SDCCglue.c (tempfilename): Added function for pre-processor.
11535
11536 2001-09-23  Michael Hope  <michaelh AT juju.net.nz>
11537         * .version: Updated to 2.3.1
11538
11539         * src/z80/main.c (z80_port =): Added macro based linker and assembler command line support.
11540         Added copyright header.
11541
11542         * src/SDCCmain.c: Shifted various functions into SDCCutil.c
11543         (assemble): Added support for macro based assembler commands.
11544         (linkEdit): Added support for macro based linker commands.
11545         (preProcess): Changed the pre-processor to use macros.
11546         (_setPaths): Added functionality to autodetect the include, lib and bin dir paths.
11547         (_discoverPaths): Added support for overriding the install directory using the SDCCDIR env variable.
11548
11549         * device/lib/z80/crt0.s: Added module name for debugging.
11550
11551 2001-09-20  Michael Hope  <michaelh AT juju.net.nz>
11552
11553         * src/SDCCmain.c (printVersionInfo): Added the build date to the version info.
11554
11555         * src/SDCChasht.c (hTabDeleteByKey): Fixed delete as it would delete the last item from a bucket even if it wasn't the real one.
11556
11557         * src/SDCCglue.c: Moved gc_strdup to SDCCutil.c
11558
11559         * src/Makefile.in: Added SDCCmacro and SDCCutil
11560
11561 2001-09-19  Michael Hope  <michaelh AT juju.net.nz>
11562
11563         * src/SDCCmain.c (printVersionInfo): Added the build date to the version info.
11564
11565 2001-09-16    <johan AT FRIJA>
11566
11567         * 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.
11568
11569 2001-09-15    <johan AT FRIJA>
11570
11571         * src/mcs51/ralloc.c: (findAssignToSym): fixed bug #460662 part 1
11572         * src/ds390/ralloc.c (findAssignToSym): fixed bug #460662 part 1
11573
11574 2001-09-11    <johan AT FRIJA>
11575
11576         * src/SDCCval.c (valDiv Mod Minus Plus Shift): keep litteral expressions as small as possible (bug #460010)
11577
11578 2001-09-10  Michael Hope  <michaelh AT juju.net.nz>
11579
11580         * support/regression/tests/bug-460444.c: Added test case.
11581
11582         * src/z80/gen.c (genOr): bug 460444: if (a ^ lit) was broken for &, |, and ^.
11583         (genCast): Added justification for all of the asserts.
11584
11585 2001-09-10  Bernhard Held <bernhard AT bernhardheld.de>
11586
11587         * support/regression/support.c: _xdata replaced by xdata
11588
11589         * support/regression/spec.mk: removed _generic
11590
11591 2001-09-09  Michael Hope  <michaelh AT juju.net.nz>
11592
11593         * src/pic/ralloc.c (debugLogRegType): Removed some old types to get it to compile.
11594
11595         * src/z80/gen.c (shiftR2Left2Result): Improved the case when v = v >> n for small values of n to use less code space and time.
11596         (genrshTwo): Fixed v = v >> n where v is a negative int and n is > 8: bug 460010.
11597
11598         * src/z80/peeph.def: Added a rule to optimise shift then compare.
11599
11600         * support/regression/tests/bug-460000.c (testShiftByParam): Added test case.
11601
11602         * support/regression/tests/bug-460010.c: Added test case.
11603
11604         * support/regression/Makefile (test-host): Removed a silly 'clean' target when testing against gcc.
11605
11606 2001-09-09  Bernhard Held <bernhard AT bernhardheld.de>
11607
11608         * support/regression/Makefile: inter-port-clean adjusted for mcs51
11609
11610         * support/regression/testfwk.c: removed workaround for bug #436344
11611
11612         * support/regression/tests/bp.c: use less memory with mcs51
11613
11614         * support/regression/tests/bug-441448.c: use less memory
11615
11616         * support/regression/tests/ports/mcs51/spec.mk: cleanup, use --stack-after-data
11617
11618         * support/regression/collate-results.py: typo
11619
11620 2001-09-08  Michael Hope  <michaelh AT juju.net.nz>
11621
11622         * support/regression/tests/fetchoverlap.c: Added new test case.
11623
11624         * support/regression/tests/bp.c: Added new test case.
11625
11626         * support/regression/tests/bug-448984.c: Added new test case.
11627
11628         * support/regression/tests/pow2shifts.c: Added new test case.
11629
11630         * src/z80/gen.c: Turned off the noise it normally generates for the release.
11631         (genlshTwo): Fixed right shift for count > 8.
11632
11633         * src/z80/ralloc.c: Disabled most of the ACC packing rules as they weren't getting hit and weren't at all safe.
11634
11635 2001-09-08    <johan AT FRIJA>
11636
11637         * src/SDCCicode.c (geniCodeCall): a CPOINTER can be used as a function
11638
11639 2001-09-07    <johan AT FRIJA>
11640
11641         * src/SDCCicode.c (newiCodeCondition): fixed bug #456235 (1.77)
11642
11643         * src/SDCCglue.c (emitRegularMap): only delete a symbol when it is a symbol
11644
11645 2001-09-06    <johan AT FRIJA>
11646
11647         * src/SDCC.y: this could be a fix for bug #458744 (1.37)
11648         * bernhard noted me at this: "() equals to (void)" (1.38)
11649
11650 2001-09-05    <johan AT FRIJA>
11651
11652         * src/SDCCglue.c (emitRegularMap): a fix for bug #458099/2
11653
11654 2001-09-04    <johan AT FRIJA>
11655
11656         * src/SDCCsymt.c (checkSClass): a fix for bug #458099/1
11657
11658
11659 2001-09-04  Paul Stoffregen  <paul AT pjrc.com>
11660
11661         * pragma noinduction broke memcpy on mcs51 large model.  Moved it inside z80 optimization
11662
11663 2001-09-03  Michael Hope  <michaelh AT juju.net.nz>
11664
11665         * link/z80/aslink.h: Fixed path for PATH_MAX
11666
11667 2001-09-02  Michael Hope  <michaelh AT juju.net.nz>
11668
11669         * src/z80/gen.c (fetchLitPair): Changed so that it properly caches direct space references.
11670
11671         * support/regression/tests/addsub.c: Added cases to cover all the +, - combinations.
11672
11673         * support/regression/tests/uminus.c: Added a test for the unary minus operator.
11674
11675         * 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.
11676
11677 2001-09-01  Michael Hope  <michaelh AT juju.net.nz>
11678
11679         * src/z80/gen.c: Fixed up generator to pass the regresion tests, specifically fixing loads for longs, genCmp, and turned on the map file.
11680         (genCmp): Fixed up genCmp for the GB with longs.
11681
11682         * device/lib/gbz80/Makefile: Fixed up all the libraries to pass the regression tests.
11683
11684         * support/regression/ports/host/spec.mk: Updated to compile with the new type specifiers.
11685
11686         * device/lib/Makefile.in (Z80SOURCES): Removed old _mululong, _mulslong, and unneeded _mulint.
11687
11688         * device/lib/_mullong.c (_mulslong): Changed to actually return a value :)
11689
11690 2001-08-30  Paul Stoffregen  <paul AT pjrc.com>
11691
11692         * added peepholes 223 to 231 to mcs51 port.  These improve code when using large model.
11693
11694 2001-08-30  Michael Hope  <michaelh AT juju.net.nz>
11695
11696         * 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.
11697
11698         * src/z80/gen.c (genPlus): Changed bad long add for gb to a fall through.
11699
11700 2001-08-29  Michael Hope  <michaelh AT juju.net.nz>
11701
11702         * link/z80/aslink.h: Fixed long file name support.  Is now based off PATH_MAX instead of a constant.
11703
11704         * src/z80/gen.c: Fixed add and sub for the case where left or right are in static space.
11705
11706 2001-08-30 Bernhard Held   <bernhard AT bernhardheld.de>
11707
11708   * sim/ucsim/configure:    little improvement of Cygwin-detection
11709   * sim/ucsim/configure.in: little improvement of Cygwin-detection
11710   * sim/ucsim/cmd.src/newcmdcl.h: include <sys/types.h> to define fd_set automated build
11711   * support/regression/tests/bug-221100.c: small changes for mcs51
11712   * support/regression/tests/bug-221168.c: small changes for mcs51
11713   * support/regression/tests/bug-227710.c: small changes for mcs51
11714   * support/regression/tests/staticinit.c: small changes for mcs51
11715   * as/mcs51/aslink.h: accept everything as symbol name in rel-files, bug fix ID 452601
11716   * as/mcs51/lklex.c:  accept everything as symbol name in rel-files, bug fix ID 452601
11717   * as/mcs51/lksym.c:  accept everything as symbol name in rel-files, bug fix ID 452601
11718
11719 $Revision$