* device/include/mcs51/c8051f410.h: new SiLabs mcu
[fw/sdcc] / ChangeLog
1 2006-03-07 Maarten Brock <sourceforge.brock AT dse.nl>
2
3         * device/include/mcs51/c8051f410.h: new SiLabs mcu
4         * src/ds390/peeph.def: disabled 186.d and 227.a as fix for #1434401
5         * support/regression/tests/array.c: added parenthesis, made arrays unsigned
6
7 2006-03-06 Borut Razem <borut.razem AT siol.net>
8
9         * support/regression/ports/pic16/spec.mk: link with libm18f.lib,
10           made the linker quiet
11
12 2006-03-06 Vangelis Rokas <vrokas AT users.sourceforge.net>
13
14         * src/pic16/gen.c (genPcall): fixed bug #1443644
15         * src/pic16/device.h (struct pic16_options_t): added 'int CATregs' flag
16         which dumps before the function entry point a data byte which represents
17         the number of the local variables used by the specified function, added
18         'xinst' for initial support for Extended Instruction Support,
19         * src/pic16/gen.c (aopForSym, pic16_aopGet): beautifications,
20         (pic16_testStackOverflow): do not prefix GSTACK_TEST_NAME with
21         port->fun_prefix anymore (may change later),
22         (genFunction, genEndFunction): do not store/restore local registers for
23         _main (this should take care the --main-return command line option in
24         the future),
25         (genOr): removed some legacy pic-port instructions,
26         * src/pic16/genarith.c (genAddLit): re-enabled old code because
27         performing operations with SFR's causes data to be written more than
28         once to each SFR. Perhaps SFRs should be handled in special cases...
29         * src/pic16/glue.c: macros BIG_ENDIAN and BYTE_IN_LONG are moved to
30         pcode.h
31         * src/pic16/main.c (_process_pragma): stack bound checking did not take
32         into account for stack starting position,
33         (struct OPTIONS pic16_optionsTable): added command line argument
34         --extended or -y for Extended Instruction Support,
35         * src/pic16/ralloc.c (pic16_decodeOp): added case for FUNCTION,
36         (deassignLRs): *** perhaps the most important change, old 'for' code
37         (commented out for reference), didn't account for some registers which
38         were left marked 'not free' after a pointer operation. The change
39         reduces register usage a lot in some cases
40
41 2006-03-04 Borut Razem <borut.razem AT siol.net>
42
43         * support/regression/ports/hc08/spec.mk: remove *.asm in traget
44           _clean
45         * support/regression/tests/bug-524697.c: decreased array size for
46           mcs51 to fit into the internal RAM
47         * support/regression/Makefile.in: a little bit more verbose
48
49 2006-03-03 Borut Razem <borut.razem AT siol.net>
50
51         * support/regression/fwk/lib/testfwk.c,
52           support/regression/fwk/include/testfwk.h: introduced function
53           _prints(), nonrecursive _printn(), call _initEmu() from main()
54         * support/regression/ports/gbz80/support.asm,
55           support/regression/ports/ucz80/support.asm,
56           support/regression/ports/z80/support.asm,
57           support/regression/ports/ds390/support.c,
58           support/regression/ports/hc08/support.c,
59           support/regression/ports/host/support.c,
60           support/regression/ports/mcs51/support.c,
61           support/regression/ports/xa51/support.c: added empty _initEmu()
62           function
63         * support/regression/ports/pic16/gpsim.cmd,
64           support/regression/ports/pic16/spec.mk,
65           support/regression/ports/pic16/support.c,
66           support/regression/Makefile.in: added pic16 regression test
67
68 2006-03-01 Raphael Neider <rneider AT web.de>
69
70         * src/pic16/gen.c (genPcall,pic16_derefPtr,genGenPointerGet,
71           genConstPointerGet): use safe way of generating MOVFF to cover
72             literals as well as registers, fixes bug #1440527
73         * src/pic16/glue.c (pic16_printIvalBitFields): prevent NULL pointer
74             dereference
75           (pic16_printIvalUnion,pic16_isUnion): NEW, handle initialized unions
76             more correctly, fixes bug #1232186
77           (pic16_printIval): use pic16_printIvalUnion() for initialized unions
78         * src/pic16/main.c (_pic16_linkEdit): reorder linker arguments to make
79             gplink guess the correct processor in more cases, applied patch
80             from Till Riedel attached to and fixing bug #1436552
81
82 2006-02-20 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
83
84         * support/regression/tests/array.c: added, contains check for #1434401
85         * src/mcs51/peeph.def: disabled 186.d as temporary fix for #1434401
86
87 2006-02-16 Maarten Brock <sourceforge.brock AT dse.nl>
88
89         * device/include/mcs51/at89s8253.h: new, thanks to Krzysztof Polomka
90         * device/include/mcs51/at89S8252.h: fixed, thanks to Krzysztof Polomka
91         * device/include/mcs51/c8051f326.h,
92         * device/include/mcs51/c8051f340.h: new SiLabs mcu's
93         * device/include/mcs51/c8051f000.h,
94         * device/include/mcs51/c8051f018.h,
95         * device/include/mcs51/c8051f020.h: used () with __at, renamed IDLE,STOP to
96           PCON_IDLE,PCON_STOP and added sfr16 definitions
97
98 2006-02-14 Maarten Brock <sourceforge.brock AT dse.nl>
99
100         * src/mcs51/gen.c (genPlus, genMinus, genMult, genGetAbit, genGetByte,
101           genGetWord): fixed bug 1409955
102
103 2006-02-14 Maarten Brock <sourceforge.brock AT dse.nl>
104
105         * device/include/hc08/mc68hc908gp32.h,
106         * device/include/hc08/mc68hc908jb8.h: removed AWUL, added PTA6 & PTA7
107
108 2006-02-13 Maarten Brock <sourceforge.brock AT dse.nl>
109
110         * src/SDCCast.c (constExprValue): return NULL if not a value
111         * src/SDCCglue.c (printIvalArray): fixed bug 1225568
112         * src/hc08/gen.c(genUnpackBits, genUnpackBitsImmed): fixed bug 1019480
113         * support/regression/tests/bitfields.c: enabled signed bitfield for all
114
115 2006-02-13 Borut Razem <borut.razem AT siol.net>
116
117         * src/regression/ptrarg.c: added, fails due to bug #1430967
118         * src/regression/Makefile: ptrarg.c added, ...
119
120 2006-02-12 Maarten Brock <sourceforge.brock AT dse.nl>
121
122         * src/z80/gen.c (genUnpackBits): fixed bug 1019480
123         * support/regression/tests/bitfields.c: enabled signed bitfield for z80
124
125 2006-02-11 Borut Razem <borut.razem AT siol.net>
126
127         * src/SDCCmain.c: Added "sdcc: Calling linker..." if --verbose,
128           print "Processor: xxx" message to stdout only if --verbose
129
130 2006-02-11 Maarten Brock <sourceforge.brock AT dse.nl>
131
132         * src/SDCCglue.c (printIvalStruct): fixed bug 1426356 union initializer
133         * support/regression/tests/bug1426356.c: added
134         * support/regression/tests/bitfields.c: removed 2 tests
135
136 2006-02-10 Maarten Brock <sourceforge.brock AT dse.nl>
137
138         * device/include/mcs51/at89c51snd1c.h: updated comments, see patch 1428901
139         * device/include/mcs51/c8051f330.h,
140         * device/include/mcs51/c8051f350.h: used () with __at, renamed IDLE,STOP to
141           PCON_IDLE,PCON_STOP and added sfr16 definitions
142         * device/lib/_divsint.c,
143         * device/lib/_divuint.c,
144         * device/lib/_divulong.c,
145         * device/lib/_divulong.c: renamed a,b to x,y to avoid confusion, fixed
146           register bank bug for small stackauto
147
148 2006-02-09 Maarten Brock <sourceforge.brock AT dse.nl>
149
150         * support/regression/fwk/lib/timeout.c: include <stdlib.h> for exit()
151
152 2006-02-08 Maarten Brock <sourceforge.brock AT dse.nl>
153
154         * support/regression/ports/mcs51-xstack-auto/spec.mk: forgot -I(...)/mcs51
155         * all.dsp: corrected several bin paths
156         * device/include/mcs51/c8051f120.h,
157         * device/include/mcs51/c8051f300.h,
158         * device/include/mcs51/c8051f310.h: used () with __at and renamed IDLE,STOP
159           to PCON_IDLE,PCON_STOP
160         * device/include/mcs51/c8051f320.h: see above, also added sfr16 definitions
161         * device/lib/printf_large.c (output_float): fixed bug 1388703
162         * support/regression/tests/bug1057979.c: added test for bug 1388703
163
164 2006-02-08 Raphael Neider <rneider AT web.de>
165
166         * src/pic/pcode.c (pciTRIS): fixed typo,
167           (BuildFlow,LinkFlow_pCode): added (disabled) debug output,
168           (LinkFlow): fixed handling of flows that end in a call,
169           (ReuseReg): perform safety check earlier
170         * src/pic/pcoderegs.c (pCodeRegMapLiveRangesInFlow): fixed
171             to work with flows at the beginning of a pBlock,
172             fixes #1426557 (Symbol not previously defined),
173           (pic14_ReMapLiveRanges): NEW, destroy and rebuild register
174             usage information
175           (RemoveUnusedRegisters): update register usage info
176         * src/pic/ralloc.c (newReg): prevent duplicate registers from being
177             created, reuse existing ones instead
178         * src/pic/gen.c (genPcall): fixed #1424719
179
180 2006-02-07 Bernhard Held <bernhard AT bernhardheld.de>
181
182         * link/z80/lkmain.c,
183         * link/z80/lklex.c,
184         * link/z80/lkdata.c,
185         * link/z80/aslink.h: fixed build on current cygwin:
186         replaced getline() by lk_getline()
187
188 2006-02-01 Borut Razem <borut.razem AT siol.net>
189
190         * src/regression/add.c, src/regression/add2.c, src/regression/add3.c,
191           src/regression/add4.c, src/regression/and1.c, src/regression/and2.c,
192           src/regression/arrays.c, src/regression/b.c, src/regression/bank1.c,
193           src/regression/bool1.c, src/regression/bool2.c,
194           src/regression/bool3.c, src/regression/call1.c,
195           src/regression/compare.c, src/regression/compare10.c,
196           src/regression/compare2.c, src/regression/compare3.c,
197           src/regression/compare4.c, src/regression/compare5.c,
198           src/regression/compare6.c, src/regression/compare7.c,
199           src/regression/compare8.c, src/regression/compare9.c,
200           src/regression/configword.c, src/regression/for.c,
201           src/regression/inline.c, src/regression/mult1.c,
202           src/regression/nestfor.c, src/regression/or1.c,
203           src/regression/pointer1.c, src/regression/ptrfunc.c,
204           src/regression/rotate1.c, src/regression/rotate2.c,
205           src/regression/rotate3.c, src/regression/rotate4.c,
206           src/regression/rotate5.c, src/regression/rotate6.c,
207           src/regression/rotate7.c, src/regression/string1.c,
208           src/regression/struct1.c, src/regression/sub.c,
209           src/regression/sub2.c, src/regression/switch1.c,
210           src/regression/while.c, src/regression/xor.c,
211           src/regression/create_stc, src/regression/simulate,
212           src/regression/rt.sh, src/regression/Makefile: reenabled Scott's PIC14
213           regression tests
214         * src/regression/gpsim_assert.h: added
215
216 2006-01-28 Bernhard Held <bernhard AT bernhardheld.de>
217
218         * src/ds390/gen.c (unsaveRegisters): fixed literal function pointer
219         ((void (code *) (void)) 0) ();
220         * as/hc08/aslex.c,
221         * as/hc08/aslink.h,
222         * as/hc08/asm.h,
223         * as/hc08/asmain.c,
224         * as/hc08/lkdata.c,
225         * as/hc08/lklex.c,
226         * as/hc08/lkmain.c,
227         * as/mcs51/aslex.c,
228         * as/mcs51/aslink.h,
229         * as/mcs51/asm.h,
230         * as/mcs51/asmain.c,
231         * as/mcs51/lkdata.c,
232         * as/mcs51/lklex.c,
233         * as/mcs51/lkmain.c,
234         * as/z80/aslex.c,
235         * as/z80/asm.h,
236         * as/z80/asmain.c: fixed build on current cygwin:
237         replaced getline() by as_getline()
238
239 2006-01-27 Bernhard Held <bernhard AT bernhardheld.de>
240
241         * src/SDCC.y: fixed bug #716242, exchanged pointer and function
242         declarator in the symbol chain
243         * src/SDCCsymt.h,
244         * src/SDCCsymt.c (processFuncPtrArgs): added, removes "(void)"
245         parameter list for function pointers
246         * src/SDCCast.c (decorateType): added call of processFuncPtrArgs()
247         * support/regression/tests/bug-716242.c: added
248
249 2006-01-20 Bernhard Held <bernhard AT bernhardheld.de>
250
251         * src/SDCCicode.c (geniCodeAdd, geniCodeArray): use char for array
252         offset if possible
253         * src/SDCCast.c (getLeftResultType): 255 fits in char, not 256
254
255 2006-01-18 Bernhard Held <bernhard AT bernhardheld.de>
256
257         * src/SDCCast.c (backPatchLabels): fixed bug #1408066: made it
258         inifinitely recurseable, added static
259         * support/regression/tests/bug-1408066.c: added
260
261 2006-01-17 Bernhard Held <bernhard AT bernhardheld.de>
262
263         * src/SDCCicode.h,
264         * src/SDCCicode.c (newiTempPreheaderLabel, newiTempLoopHeaderLabel):
265         renamed, added possibility to create "postLoopLbl"-labels
266         * src/SDCCBBlock.c (iCodeBreakDown): renamed newiTempPreheaderLabel to
267         newiTempLoopHeaderLabel
268         * src/SDCCloop.c (newInduction, newRegion, backEdges, insertIntoLoop,
269         isNotInBlocks, addToExitsMarkDepth, createLoop, dominatedBy,
270         addDefInExprs, assignmentsToSym, isOperandInvariant, pointerAssigned,
271         hasNonPtrUse, loopInvariants, addressTaken, findInduction,
272         findDefInRegion, mergeRegions, ifMerged, mergeInnerLoops): made static,
273         (pinduction, pregion, hasIncomingDefs, findLoopEndSeq): disabled,
274         (basicInduction): fixed bug #136564, made static,
275         (loopInduction): changed parameter of basicInduction, made static,
276         (addPostLoopBlock): added
277         * src/SDCCloop.h: removed backEdges, pregion, pinduction,
278         loopOptimizations, addressTaken, findDefInRegion, hasIncomingDefs,
279         findLoopEndSeq
280         * support/regression/tests/bug-136564.c: added
281         * support/regression/ports/mcs51-xstack-auto/spec.mk: added
282         --std-sdcc99 to LIBSDCCFLAGS
283
284 2006-01-16 Bernhard Held <bernhard AT bernhardheld.de>
285
286         * src/SDCCicode.c (geniCodeIfx): fix bug 1406131: always false
287         while loop
288         * support/regression/tests/bug-1406131.c: added
289
290 2005-12-31 Bernhard Held <bernhard AT bernhardheld.de>
291
292         * src/SDCCast.c (decorateType): fix promotion of unary minus
293         * src/SDCCsymt.c (computeType): beautified
294         * src/SDCCval.c (cheapestVal): beautified, old non-Ansi version removed,
295         (valUnaryPM, valComplement): fix sign and promotion,
296         (valNot): ANSI: result type is int (SDCC: unsigned char)
297         * support/regression/tests/uminus.c: speedup by removing superflous
298         test case 'int'
299         * support/regression/tests/onebyte.c: added promotion and signedness
300         tests for unary minus
301         * support/regressions/tests/bug-477927.c: disable warning about
302         uninitialized variables
303         * support/regression/tests/not.c: added
304
305 2005-12-28 Bernhard Held <bernhard AT bernhardheld.de>
306
307         * device/lib/Makefile.in: added --std-sdcc99 to CFLAGS
308         * src/mcs51/gen.c (gen51Code): show final register usage after
309         fillGaps in asm with --i-code-in-asm
310         * src/SDCClrange.c (sequenceiCode, setLiveFrom, setLiveTo,
311         markLiveRanges, markAlive, findNextUseSym, findNextUse, unvisitBlocks,
312         incUsed, rliveClear, adjustIChain): made static,
313         (setFromRange): excluded because it's unused,
314         (findPrevUseSym, markWholeLoop): added,
315         (findPrevUse): rewritten; fixes bug 895992; now a complete search
316         through all branches of predecessors enables sdcc to emit the warning
317         W_LOCAL_NOINIT, marking of outermost loop was incomplete,
318         (rlivePoint): made static, added parameter emitWarnings which is only
319         true during the first run out of two,
320         (findRecursiveSucc, findRecursivePred): removed,
321         (computeLiveRanges): made static, added parameter emitWarnings,
322         (dumpIcRlive): added for debugging only
323         * src/SDCClrange.h: added boolean parameter to computeLiveRanges(),
324         removed prototype of setFromRange()
325         * src/SDCCopt.c (eBBlockFromiCode): added new parameter emitWarnings
326         in call of computeLiveRanges()
327         * support/regression/tests/bug-895992.c: added
328         * support/regression/tests/bug-971834.c: added
329         * support/valdiag/tests/bug-895992.c: added
330         * support/valdiag/tests/bug-971834.c: added
331
332 2005-12-18 Raphael Neider <rneider AT web.de>
333
334         * src/pic16/gen.c: added IS_DIRECT macro for "direct" operands,
335           (genUnpackBits): improved code for direct operands,
336           (genPackBits): improved code for literal assignment to bitfields
337             and for direct destination operands (no FSR indirection),
338             prevented redundant AND, fixes #1362800,
339           (AccLsh): added parameter to disable masking of the result
340         * src/pic16/pcode.c (pic16_safepCodeUnlink): fixed to work with
341           skip instructions with side-effects (like incfsz),
342           (pic16_pCodeIsAlive): suppress verbose output unless pcode_verbose,
343         * src/pic16/pcoderegs.c (RemoveRegsFromSet): removed annoying warning
344         * device/lib/pic16/Makefile.common.in: added --asm=@GPASM@ to CC,
345           fixes #1375263
346
347 2005-12-11 Bernhard Held <bernhard AT bernhardheld.de>
348
349         * src/SDCCicode.c (geniCodeAssign): fixed bug 11369874, don't use
350         volatile variables as spill location
351
352 2005-12-10 Bernhard Held <bernhard AT bernhardheld.de>
353
354         * src/SDCCcse.c (findCheaperOp): fixed bug 1376320, copy signedness to
355         replacing literals
356         * support/regression/tests/bug-1376320.c: added
357
358 2005-12-08 Raphael Neider <rneider AT web.de>
359
360         * src/pic/device.c: renamed is_shared to pic14_is_shared
361         * src/pic/gen.c (genIfx): re-enabled handling of sbits
362         * src/pic/glue.c (emitSymbolToFile): added workaround for sbits,
363           (is_valid_identifier): added for above workaround
364
365 2005-12-07 Maarten Brock <sourceforge.brock AT dse.nl>
366
367         * device/lib/Makefile.in: fixed to enable port-specific-objects
368         * device/lib/ds390/i2c390.c (BitOutI2C): optimized by making bout unsigned
369           char, thanks Hubert Sack
370         * doc/sdccman.lyx: documented --xstack-loc,
371           elaborated a bit more on interrupts and pitfalls,
372           removed "setjmp/longjmp unsupported",
373           documented some unsupported C99 features
374         * src/SDCCmain.c (linkEdit): adapted default lib path for --stack-auto
375         * src/SDCCpeeph.c (readRules): inserted patch 1367130 for finding missing
376           if, thanks Hubert Sack
377         * src/mcs51/gen.c (genEndFunction): enabled "pop psw" for regbank 0 isr
378         * support/regression/Makefile.in: test-mcs51-stack-auto no longer needs to
379           make make_library
380         * support/regression/get_ticks.py: new, get cpu cycles and code size, so
381           regression tests can report resource usage (rfe 700441)
382         * support/regression/collate-results.py: report resource usage
383         * support/regression/ports/ds390/spec.mk,
384         * support/regression/ports/hc08/spec.mk,
385         * support/regression/ports/mcs51/spec.mk,
386         * support/regression/ports/ucz80/spec.mk: run sim output through get_ticks
387         * support/regression/ports/ds390/uCsim.cmd,
388         * support/regression/ports/hc08/uCsim.cmd,
389         * support/regression/ports/mcs51/uCsim.cmd,
390         * support/regression/ports/ucz80/uCsim.cmd: inserted "state" to report time
391         * support/regression/ports/mcs51-stack-auto/spec.mk: no need to build the
392           library, use the default one
393         * support/regression/ports/mcs51-xstack-auto/spec.mk: inserted rules for
394           building the library
395
396 2005-12-06 Maarten Brock <sourceforge.brock AT dse.nl>
397
398         * config.dsp: added dependency on .version and configure_vc.awk
399         * device/include/setjmp.h: updated for --stack-auto and --xstack
400         * device/include/mcs51/at89c51snd1c.h: corrected line endings
401         * device/include/mcs51/XC866.h: added, thanks Llewellyn van Zyl
402         * device/lib/_setjmp.c: updated for --stack-auto and --xstack
403         * device/lib/libsdcc.lib: added _setjmp
404         * src/SDCCast.c (createIvalCharPtr): fixed warnings,
405           (decorateType): fixed bug 1372851,
406           (optimizeGetHbit): fixed warning
407         * src/SDCCglue.c (printIvalChar, printIvalArray): adapted for flexible
408           array initialisation
409         * support/regression/tests/bug1057979.c: added test for bug 1358192
410         * support/regression/tests/setjmp.c: added, test for setjmp/longjmp
411
412 2005-12-03 Borut Razem <borut.razem AT siol.net>
413
414         * support/scripts/sdcc.nsi: added /SOLID option to "SetCompressor lzma"
415           command since the NSIS was upgraded to version 2.11 on CF x86-linux2
416
417 2005-11-29 Bernhard Held <bernhard AT bernhardheld.de>
418
419         * src/SDCCast.c (createIvalStruct, createIvalArray, createIvalPtr,
420         createIval): implement symbol independant "flexible array member",
421         (createIvalCharPtr): implemented flexible array initialisation with a
422         string
423         * src/SDCCsymt.c (copyStruct): removed,
424         (getSize): fixed misleading comment,
425         (getAllocSize): removed, the additional allocation size is now in
426         sym->flexArrayLength,
427         (checkStructFlexArray): new, syntax checks for flexible array members,
428         (compStructSize): added syntax checks for "flexible array members"
429         (copyStruct): removed,
430         (copyLinkChain): removed inefficient fix for bug 770487
431         * src/SDCCglue.c (emitRegularMap): getAllocSize has been removed
432         * src/SDCCsymt.h: added structdef.b_flexArrayMember and
433         symbol->flexArrayLength
434         * src/SDCCerr.c,
435         * src/SDCCerr.h: added W_INVALID_FLEXARRAY, W_C89_NO_FLEXARRAY,
436         E_FLEXARRAY_NOTATEND and E_FLEXARRAY_INEMPTYSTRCT
437         * support/regression/tests/structflexarray.c: added
438         * support/valdiag/tests/structflexiblearray.c: added
439
440 2005-11-29 Bernhard Held <bernhard AT bernhardheld.de>
441
442         * src/SDCCast.c (decorateType): fixed bug 1368489
443         * support/Util/SDCCerr.c,
444         * support/Util/SDCCerr.h: added warning W_CMP_SU_CHAR
445
446 2005-11-28 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
447
448         * device/include/mcs51/at89c51snd1c.h: added file submitted by
449           Weston T. Schmidt <schmidtw AT users.sourceforge.net>, patch #1368001
450
451 2005-11-27 Borut Razem <borut.razem AT siol.net>
452
453         * support/cpp2/cppinit.c, support/cpp2/cpplib.h, support/cpp2/mkdeps.c,
454           support/cpp2/mkdeps.h: added command line option
455           -obj-ext=<extension> to SDCPP to define object file externion, used
456           for generation of make dependencies (-M)
457         * src/SDCCmain.c: pass -obj-ext=<extension> to SDCPP
458
459 2005-11-26 Borut Razem <borut.razem AT siol.net>
460
461         * support/scripts/sdcc.nsi: added small-stack-auto libraries,
462           added missing device/lib/mcs51/crt*.asm, pic and pic16 sources,
463           added pic and pic16 libraries
464
465 2005-11-26 Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
466
467         * device/include/float.h: Corrected typo in prototype of __fsgt
468
469 2005-11-25 Borut Razem <borut.razem AT siol.net>
470
471         * sdcc/device/lib/Makefile.in, sdcc/device/lib/incl.mk:
472           added creation of model-mcs51-stack-auto libraries
473
474 2005-11-24 Bernhard Held <bernhard AT bernhardheld.de>
475
476         * src/SDCCsymt.c (copyLinkChain): fixed bug 770487, copy structdef
477         and fields-list too
478         * src/SDCCast.c (createIvalArray): removed obsolete comment
479
480 2005-11-24 Borut Razem <borut.razem AT siol.net>
481
482         * sdcc/device/lib/Makefile.in: remove all unnecessary files, 2nd try...,
483           added missing device/lib/mcs51/crt*.asm sources
484
485 2005-11-23 Bernhard Held <bernhard AT bernhardheld.de>
486
487         * src/SDCCast.c (createIvalCharPtr): fixed bug 1348271
488
489 2005-11-22 Maarten Brock <sourceforge.brock AT dse.nl>
490
491         * device/lib/_fs2schar.c,
492         * device/lib/_fs2sint.c,
493         * device/lib/_fs2slong.c: optimized inline asm
494
495 2005-11-21 Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
496
497         * device/lib/_fs2slong.c, device/lib/_fs2sint.c, device/lib/_fs2char.c:
498           Better handling of floats between -1.0 and 0.0.
499
500 2005-11-20 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
501
502         * src/mcs51/peeph.def: added missing "if"s as noted by Hubert Sack.
503           (the missing "if"s prohibited removal of redundant labels)
504
505 2005-11-19 Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
506
507         * device/lib/_fs2slong.c, device/lib/_fs2sint.c, device/lib/_fs2char.c:
508           Properly convert floats between -1.0 and 0.0 to long, int, and char
509           types (max integer value of negative floats tends to zero).
510         * device/lib/modff.c, device/lib/ceilf.c, device/lib/floorf.c:
511           Removed changes made so to work properly with floats between
512           -1.0 and 0.0, as the problem is fixed in _fs2slong.c, _fs2sint.c,
513           and _fs2char.c
514
515 2005-11-18 Bernhard Held <bernhard AT bernhardheld.de>
516
517         * src/SDCCcse.c (ReplaceOpWithCheaperOp): minor fix for debugging only
518         * src/mcs51/gen.c (genUnpackBits): better code and a fix,
519         (genCast) cosmetic change
520         * src/ds390/gen.c (genUnpackBits, ): ported from mcs51
521         * src/ds390/ralloc.c (packRegsForAssign): ported fix for bitfields
522         from mcs51
523         * support/regression/tests/bitfields (testSignedBitfields): added
524
525 2005-11-18 Borut Razem <borut.razem AT siol.net>
526
527         * sdcc/device/lib/Makefile.in: remove all unnecessary files
528         * device/lib/pic/Makefile.rules, device/lib/pic16/Makefile.subdir:
529           introduced SILENT option to make building of pic16 libraries less
530
531 2005-11-18 Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
532
533         * device/lib/modff.c, device/lib/ceilf.c, device/lib/floorf.c:
534           Now they work properly with floats between -1.0 and 0.0
535         * device/lib/printf_large.c: Removed temporary patch for bug 1358192
536
537 2005-11-18 Maarten Brock <sourceforge.brock AT dse.nl>
538
539         * src/SDCCicode.c (printOperand): added missing else
540
541 2005-11-18 Bernhard Held <bernhard AT bernhardheld.de>
542
543         * src/SDCCsymt.c (computeType): fixed bug 1358192: added missing else,
544         reformatted for better readability
545         * src/mcs51/gen.c (genUnpackBits): initial, incomplete support for
546         signed bitfields
547
548 2005-11-17 Borut Razem <borut.razem AT siol.net>
549
550         * device/lib/pic16/Makefile.rules, device/lib/pic16/Makefile.subdir:
551           introduced SILENT option to make building of pic16 libraries less
552           verbose - used for nightly snapshot build
553         * doc/sdccman.lyx: documented that SDCDB and ucSim are currently not
554           available on Win32 platforms.
555         * sdcc/device/lib/Makefile.in: added library sources for mcs51, small,
556           medium, large, pic and pic16
557
558 2005-11-16 Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
559
560         * device/lib/printf_large.c: Temporary patch for bug 1358192:
561           printf("%f"...) sets fraction to zero.
562
563 2005-11-16 Raphael Neider <rneider AT web.de>
564
565         * src/pic/pcode.c (LinkFlow): handle empty flows correctly,
566           fixes #1357221
567         * src/pic/gen.c (genIfx): implemented for CARRY bit
568         * src/pic16/gen.c (genAssign,genCast): fixed assigning/casting
569           to generic pointers, fixes #1357332,
570           (pic16_movLit2f): NEW,
571           (pic16_storeForReturn,genDataPointerSet): use pic16_movLit2f
572
573 2005-11-14 Maarten Brock <sourceforge.brock AT dse.nl>
574
575         * src/SDCCmain.c (parseCmdLine): fixed bug 1356800, thanks rsudjian
576
577 2005-11-11 Raphael Neider <rneider AT web.de>
578
579         * src/pic/gen.c: handle FPOINTERS like POINTERS everywhere
580         * src/pic16/gen.c (pic16_derefPtr): now works for non-pointers as well,
581           compute pointer's type from operand,
582           (genUnpackBits,genPackBits): handle FPOINTERS correctly, re-indented,
583           improved single bit reads, fixes bug #1353379
584
585 2005-11-09 Borut Razem <borut.razem AT siol.net>
586
587         * support/scripts/sdcc.nsi: added lib/pic to the package
588
589 2005-11-08 Maarten Brock <sourceforge.brock AT dse.nl>
590
591         * src/SDCCval.c (valUnaryPM): fixed bug 1350699
592
593 2005-11-06 Maarten Brock <sourceforge.brock AT dse.nl>
594
595         * support/regression/tests/bug1348008.c: added
596         * src/mcs51/gen.c (saveRBank, unsaveRBank): fixed bug 1348008
597         * support/regression/tests/bug1337835.c: updated comment
598
599 2005-11-06 Borut Razem <borut.razem AT siol.net>
600
601         * sim/ucsim/error.cc, sim/ucsim/errorcl.h,
602           sim/ucsim/sim.src/stack.cc, sim/ucsim/sim.src/stackcl.h,
603           sim/ucsim/sim.src/uc.cc, sim/ucsim/sim.src/uccl.h,
604           sim/ucsim/sim.src/mem.cc, sim/ucsim/sim.src/memcl.h,
605           sim/ucsim/cmd.src/set.cc, sim/ucsim/cmd.src/show.cc:
606           dynamic construction of cl_error_class and derivates - 2.nd try
607
608 2005-11-05 Borut Razem <borut.razem AT siol.net>
609
610         * sim/ucsim/sim.src/error.cc: fixed uninitialized class member variable
611           bug, which caused Bus Errors on sparc solaris
612
613 2005-11-04 Borut Razem <borut.razem AT siol.net>
614
615         * sim/ucsim/error.cc, sim/ucsim/errorcl.h,
616           sim/ucsim/sim.src/stack.cc, sim/ucsim/sim.src/stackcl.h,
617           sim/ucsim/sim.src/uc.cc, sim/ucsim/sim.src/uccl.h,
618           sim/ucsim/sim.src/mem.cc, sim/ucsim/sim.src/memcl.h,
619           sim/ucsim/cmd.src/cmdconf.cc: dynamic construction of cl_error_class
620           and derivates to resolve the initialization problem on OSX
621
622 2005-11-02 Borut Razem <borut.razem AT siol.net>
623
624         * sim/ucsim/cmd.src/cmdutil.cc, sim/ucsim/cmd.src/newcmd.cc:
625           corrected typo - #include <winsock2.h>
626
627 2005-11-02 Maarten Brock <sourceforge.brock AT dse.nl>
628
629         * src/asm.c (printILine): always close tmpFile, thanks Beau E. Cox,
630           (_asxxxx_mapping): added org directive for future enhancements
631
632 2005-11-01 Borut Razem <borut.razem AT siol.net>
633
634         * sim/ucsim/app.cc, sim/ucsim/cmd.src/cmdutil.cc, sim/ucsim/cmd.src/newcmd.cc:
635           enabled sockets on WIN32
636         * sim/ucsim/cmd.src/newcmd.cc: fixed bug with uninitialized variables
637
638 2005-10-31 Borut Razem <borut.razem AT siol.net>
639
640         * support/regression/generate-cases.py: escape backslashes in {testcase}:
641           WIN32 backslash path delimiters should be escaped when used in C strings
642         * support/regression/tests/bitfields.c: exclude failing assertions for
643           __CYGWIN32__ and __MINGW32__ hosts
644
645 2005-10-30 Borut Razem <borut.razem AT siol.net>
646
647         * src/SDCCutil.c: corrected double comparison typo
648
649 2005-10-30 Maarten Brock <sourceforge.brock AT dse.nl>
650
651         * device/lib/medium/Makefile: added for new memory model medium
652         * device/include/asm/mcs51/features.h: updated for medium/pdata
653         * device/include/mcs51/c8051f120.h: added sfr16/sfr32 definitions,
654           added Multiply & Accumulate sbit's and MAC0_PAGE define
655         * device/include/mcs51/c8051f300.h: added sfr16 definitions
656         * device/include/mcs51/c8051f310.h: added sfr16 definitions
657         * device/lib/_mullong.c: update for medium model
658         * device/lib/incl.mk: added medium model
659         * doc/sdccman.lyx: documented medium model
660         * src/SDCCast.c (isBitAndPow2): simplified using updated powof2
661         * src/SDCCicode.c (geniCodeMultiply, geniCodeDivision): use updated powof2
662         * src/SDCCmain.c (optionsTable, linkEdit): enabled medium model
663         * src/SDCCmem.c (allocIntoSeg): set iaccess for pdata symbols,
664           (allocParms): set SCLS and OCLS to pdata for medium model
665         * src/SDCCsymt.c (processFuncArgs): use default_local_map and set iaccess
666           for pdata,
667           (powof2): return <0 if not power of 2
668         * src/avr/gen.c (genBitWise): use updated powof2
669         * src/mcs51/gen.c (genMinusDec): use acc if necessary,
670           (shiftR2Left2Result): small optimization in setup, save acc when storing,
671           (shiftLLeftOrResult): use B if necessary
672         * src/mcs51/main.c (_mcs51_finaliseOptions, mcs51_port): added medium model
673         * src/mcs51/peeph.def: renamed 226 to 226.b, added 226.a
674         * src/pic/main.c (_pic14_do_link): made void parameter list explicit
675         * support/regression/Makefile.in: added test-mcs51-medium
676         * support/regression/ports/mcs51-medium/spec.mk: added to test medium model
677
678 2005-10-28 Bernhard Held <bernhard AT bernhardheld.de>
679
680         * src/SDCCsymt.c (compStructSize): make bitfields without (un)signed
681         specifier unsigned
682         * device/lib/time.c (mktime): fixed bug 1334315
683
684 2005-10-28 Raphael Neider <rneider AT web.de>
685
686         * device/include/pic/p16f_common.inc: added common declarations
687         * src/pic/ralloc.c (initStack): moved regs *r to block start for Alpha
688
689 2005-10-27 Maarten Brock <sourceforge.brock AT dse.nl>
690
691         * src/mcs51/gen.c (getTempRegs): return 0 if not enough registers found,
692           (aopPutUsesAcc): added to predict accumulator use,
693           (assignResultValue): save acc if necessary,
694           (genMinusDec): store result if indirectly addressed,
695           (genDivOneByte):  save acc if necessary,
696           (movLeft2Result): bugfix if left already in acc,
697           (genAnd, genOr, genXor, shiftL2Left2Result, shiftR2Left2Result): pay more
698             attention to accumulator use (esp. pdata),
699           (genReceive): receive pdata correctly
700         * src/SDCCicode.c (isOperandInPagedSpace): added to detect pdata operands
701         * src/SDCCicode.h: added isOperandInPagedSpace prototype
702
703 2005-10-27 Raphael Neider <rneider AT web.de>
704
705         * doc/sdccman.lyx: corrected version (should be 2.5.4 not 2.5.5)
706
707 2005-10-27 Raphael Neider <rneider AT web.de>
708
709         * .version: changed version to 2.5.4
710         * doc/sdccman.lyx: changed version to 2.5.4, added some remarks to PIC14
711         * device/lib/pic/libsdcc/{_mulint.c,_mullong.c}: use unsigned literals,
712           (_divschar.c,divuchar.c,_mulchar.c,_modschar.c,_moduchar): NEW,
713             arithmetics support routines
714         * device/lib/pic/Makefile.rules: have assembler sources preprocessed
715         * device/lib/Makefile.in: also create installdir for pic
716
717         * src/SDCCopt.c (cnvToFcall): mark support routines `extern' for
718           pic14 port as well
719         * src/pic/device.c (dump_sfr): rewritten to delegate register
720           placement to the linker (use `extern sym' rather than sym EQU addr),
721           (validAddress): fixed to check last specified address
722         * src/pic/gen.c (aopForSym): added code to deal with array (useless?),
723           (popGetLit): truncate literal value to 8 bit,
724           (popGet): moved assert to more appropriate place
725           (popGetExternal): create pCode operand from and mark the according
726             symbol as being `extern'
727           (popGetAddr): added sanity check on immediate's offset, provide
728             GPOINTER tag on demand
729           (aopPut): fixed for immediates,
730           (mov2w_op): move operand's address or contents to WREG (depending on
731             operand type), safer variant of mov2w,
732           (movwf,call_libraryfunc): NEW, handy abbreviations,
733           (get_argument_pcop,get_return_val_pcop,pass_argument,
734           get_returnvalue): interface for accessing function parameters and
735             return values,
736           (assignResultValuei,genRet): use new parameter/return value interface
737           (pic14_getDataSize): back to old version handling generic pointers,
738           (pic14_toBoolean,genNot,genCpl,genCmpEq,genOrOp): heavily rewritten,
739             provided implementation and/or fixed old one,
740           (genMultOneByte,genDivOneByte,genModOneByte): implemented as library
741             calls, removed legacy 8051 reference code
742           (AccLsh,AccRsh): rewritten and fixed to deal with signed operands
743           (loadSignToC): NEW, move the operands sign bit to CARRY,
744           (genGenericShift): NEW, replaces genLeftShift, genRightShift and
745             genRightShiftSigned, accepts negative shift counts,
746           (setup_fsr): load FSR and adjust IRP (indirect memory access),
747           (emitPtrByteGet,emitPtrByteSet): rewritten, now works with
748             generic pointers, __data pointers and __code pointers,
749           (genUnpackBits,genPackBits): rewritten to work with generic pointers
750             and signed bitfields, limit bitfields to 8 bit,
751           (genDataPointerGet): fixed number of bytes read,
752           (genGenPointerGet,genConstPointerGet): fixed bitfield access,
753           (genPointerGet,genPointerSet): fixed handling of __code pointers,
754             pointers to constant data are no longer assumed to point to __code
755             space, removed invalid pointer types,
756           (bitpatternFromVal): retrieve the PICs representation of an integer
757             or float literal,
758           (genDataPointerSet): fixed assigning to po_immediate operands,
759           (genGenPointerSet): implemented as library call,
760           (genIfx): fixed incorrect condition,
761           (genAddrOf): limit generic pointers' addresses to 2 bytes,
762             provide GPOINTER tag according to destination's storage class,
763           (genCast): added code to handle casting to generic pointers, added
764             sign-/zero extension of the result
765           (aop_isLitLike,op_isLitLike): fixed handling of immediates
766         * src/pic/gen.h: added macros to access IRP bit in STATUS register
767         * src/pic/genarith.c (genAddLit): use min(result's,left's) size, sign
768           extend the result
769         * src/pic/glue.c (is_shared_address,is_shared): check whether a given
770           address/register resides in the shared banks
771           (emitSymbolToFile): improved to handle global and `pinned' symbols,
772             put all variables into separate sections (have the linker arrange
773             them)
774           (picglue): put init code and interrupt handlers in separate sections
775         * src/pic/main.c: added port specific options table, modified to PORT
776           structure to make GPOINTERs 3 byte, added pic14_options
777           (_pic14_do_link): private linking routine (update paths to libraries,
778             add libsdcc.lib by default)
779         * src/pic/main.h: declare pic14_options
780         * src/pic/pcode.c: fixed instructions i/o relations,
781           (RegCond): reverted to correct version,
782           (newpCodeOpLit): truncate literals to 8 bit,
783           (genericPrint): added debug output,
784           (getRegFromInstruction): fixed for various operand types, simplified
785           (BuildFlow): fixed broken handling of isntructions with labels
786           (LinkFlow): start at last instruction in flow (skip trailing comments),
787             pass the flow on to the next instruction after CALL
788           (pCodeReplace): NEW, replace a pCode and move meta data to the new one
789           (insertPCodeInstruction): fixed inserting after a skip instruction,
790           (DoBankSelect): fixed for labeled instructions
791           (OptimizepBlock): honor --nopeep switch
792           (AnalyzeFlow,ReuseReg): prevent crash on source files with no function
793         * src/pic/pcodepeep.c (pCodePeepMatchRule): prevent NULL pointer accesses
794         * src/pic/pcoderegs.c (regIsLocal): NEW, check visibility of a register
795           (pCodeOptime2pCodes): allow disabling this optimization via
796             --no-pcode-opt due seldomly occuring bugs, fixed some conditions
797             but is still buggy), started implementation of a dataflow based
798             pCode optimization (CSE + dead code elimination)
799           (pCodeRegMapLiveRangesInFlow): removed bogus inCond
800         * src/pic/ralloc.c (initStack): renamed stack registers to STK%d, the new
801           names are independant of the stack location and therefore portable across
802           devices
803
804 2005-10-27 Maarten Brock <sourceforge.brock AT dse.nl>
805
806         * src/mcs51/ralloc.c (bitType): added to detect bit variables,
807           (selectSpil): fixed bug 1337835 by not spilling bit variables
808         * support/regression/tests/bug1337835.c: added test for this bug
809         * src/mcs51/peeph.def: restart after rule 3.c,
810           addded rules 263.x to optimize loading constants
811
812 2005-10-26 Raphael Neider <rneider AT web.de>
813
814         * src/SDCCsymt.c (compStructSize): allow signed bitfields for PIC ports
815         * src/pic16/gen.c (genUnpackBits): support signed bitfields,
816           (genAssign): emit warning when casting literals to generic pointer
817             type, also applies when taking the address of a fixed variable,
818           (genCast): improved casting to generic pointers
819         * src/pic16/glue.c (pic16emitStaticSeg): fixed(?) handling of fixed
820           extern variables, added verbose error message
821         * device/include/pic16/{string.h,errno.h}: added #pragma library c
822
823 2005-10-26 Bernhard Held <bernhard AT bernhardheld.de>
824
825         * src/mcs51/gen.c (genMinus): fixed bug 1270906: reverse subtraction,
826         carry must be complemented too
827         * src/mcs51/peeph.def: addded rule 262 to remove double cpl c, which
828         could be emitted by genMinus
829         * src/SDCCval.c (constVal): fixed bug 1305065
830
831 2005-10-25 Bernhard Held <bernhard AT bernhardheld.de>
832
833         * src/SDCCast.c (addCast): added promotion for bit variables
834         (decorateType): emit W_COMPLEMENT before the problem vanishes behind
835         promotion casts + optimisation
836         (optimizeGetWord): fix warning 'i' might be used uninitialized
837         * src/mcs51/gen.c (genCpl): removed W_COMPLEMENT
838         * src/ds390/gen.c (genCpl): removed W_COMPLEMENT
839
840 2005-10-24 Bernhard Held <bernhard AT bernhardheld.de>
841
842         * src/SDCCicode.c (ast2iCode): reverted to 1.224 because of regression:
843         all chars are promoted to int; promotion should be handled in SDCCast.c
844
845 2005-10-15 Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
846
847         * device/lib/_strcmp.c: Fixed bug 1326457
848
849 2005-10-11 Raphael Neider <rneider AT web.de>
850
851         * device/lib/pic16/libio/i2c.ignore: added 1320, fixes broken builds
852         * device/lib/pic16/libdev/pic18f1320.c: added 1320's device library
853
854 2005-10-05 Maarten Brock <sourceforge.brock AT dse.nl>
855
856         * src/SDCC.y (AT): fixed bug with sfr32 addresses when built with GCC
857         * support/regression/tests/sfr16.c: added test for the sfr32 bug
858
859 2005-10-04 Raphael Neider <rneider AT web.de>
860
861         * device/include/pic16/pic18fregs.h, src/pic16/devices.inc,
862           device/lib/pic16/pics.all: added pic18f1320
863         * src/pic16/pcode.c (mnem2key): fixed prototype's argument mismatch
864
865 2005-09-30 Raphael Neider <rneider AT web.de>
866
867         * src/pic16/device.c (Pics16[]): moved device descriptions to devices.inc
868         * src/pic16/devices.inc: NEW, provides device descriptions
869         * src/pic16/gen.c (genInline): fixed handling of ';'-comments
870
871 2005-09-26 Maarten Brock <sourceforge.brock AT dse.nl>
872
873         * src/SDCCicode.c (operandOperation): added GETABIT, GETBYTE, GETWORD and
874           GETHBIT
875
876 2005-09-25 Maarten Brock <sourceforge.brock AT dse.nl>
877
878         * doc/sdccman.lyx: updated Highest Order Bit documentation,
879           documented Any Order Bit, Higher Order Byte and Higher Order Word
880         * src/SDCC.y: added tokens GETABIT, GETBYTE, GETWORD
881         * src/SDCCast.c (optimizeGetHbit): updated to also accept bool=expr&(1<<n),
882           (optimizeGetAbit): new, to get any bit, not only the high bit,
883           (optimizeGetByte): new, to get a byte from a (long) int: expr>>(8*n),
884           (optimizeGetWord): new, to get a word from a long int: expr>>(8*n),
885           (isConformingBody): also check GETABIT, GETBYTE, GETWORD,
886           (decorateType): '&': also try GETABIT, GETBYTE, GETWORD optimization,
887             RIGHT_OP: also try GETBYTE, GETWORD optimization,
888             GETABIT, GETBYTE, GETWORD: decorate them,
889           (isShiftRightLitVal, isBitAndPowOf2): new helper functions,
890           (ast_print): added GETABIT, GETBYTE, GETWORD
891         * src/SDCCcse.c (isSignedOp): added GETABIT, GETBYTE, GETWORD
892         * src/SDCCicode.c (codeTable): added GETABIT, GETBYTE, GETWORD,
893           (geniCodeBinary): new generic binary icode,
894           (ast2iCode): added GETABIT, GETBYTE, GETWORD
895         * src/port.h: updated comment for PORT.hasExtBitOp
896         * src/mcs51/gen.c (genGetAbit): new, to get any single bit,
897           (genGetByte): new, to get a single byte,
898           (genGetWord): new, to get a word from a long,
899           (gen51Code): added GETABIT, GETBYTE, GETWORD
900         * src/mcs51/main.c (hasExtBitOp): added GETABIT, GETBYTE, GETWORD
901
902 2005-09-23 Raphael Neider <rneider AT web.de>
903
904         * configure.in, configure: have device/lib/pic configured
905         * device/lib/Makefile.in: added model-pic14
906         * device/lib/clean.mk: added pic/ to clean rule
907         * device/lib/pic: added rudimentary pic14 library providing support
908           functions for multiplication/division/generic pointer access
909         * src/SDCCopt.c (convilong): mark support functions as extern
910           for pic14 port as well
911         * src/pic/gen.c (genMult): added assertions,
912           (genpic14Code): emit warning on unhandled iCodes
913         * src/pic/main.c (_hasNativeMulFor): return true only for 8x8 bit
914         * src/pic/pcode.c (pCodeOpCopy),
915         * src/pic16/pcodepeep.c (pic16_pCodeOpCopy): fixed handling of various
916           pCodeOpReg-subtypes (PO_{STATUS,INTCON,PCL,PCLATH,PCLATU,BSR,
917           SFR_REGISTER}), made safe for future extensions
918         * src/pic16/pcode.c (pic16_safepCodeUnlink): allow for removal of
919           instructions even if preceeded by SKIP instructions (also remove
920           them); removed unused code
921         * src/pic16/pcode.h: added arg2 to pCodeOpLit to match pCodeOpLit2,
922           prevents leaving parts of the structure uninitialized after copying
923
924 2005-09-22 Maarten Brock <sourceforge.brock AT dse.nl>
925
926         * src/mcs51/gen.c (genMinus): fix for undetected bug introduced 3 months
927           ago by me
928         * support/regression/tests/addsub.c: added test for the bug
929
930 2005-09-21 Raphael Neider <rneider AT web.de>
931
932         * device/include/pic16/pic18f1220.h,
933           device/lib/pic16/libdev/pic18f1220.c: added ECCPAS sfr and bitfield
934         * device/lib/pic16/Makefile.rules: added missing opening paren
935         * src/pic16/gen.c (pic16_genNot,pic16_genCpl): removed as these
936           are provided in genutils.c,
937           (genUminusFloat,genUminus,genCmpEq): added asserts on different
938           operand/result sizes,
939           (genCmp): assert on NULL pointers first, then check deref'ed values
940         * src/pic16/genutils.c (pic16_genCpl): fixed for different operand/
941           result size
942
943 2005-09-18 Raphael Neider <rneider AT web.de>
944
945         * src/pic16/gen.c (genFarPointerGet,genFarPointerSet): removed
946           as these are now unused,
947           (genPointerGet,genPointerSet): handle FPOINTERs like POINTERs
948         * src/pic16/pcode.c (pic16_symIsSpecial): assume REG_TMPs to be
949           local, avoids uninitialized pointer dereference on r->name
950         * src/pic16/ralloc.c (newReg): fixed indentation
951
952 2005-09-13 Maarten Brock <sourceforge.brock AT dse.nl>
953
954         * src/SDCCval.c (constVal): fixed bug 730366
955         * support/Util/SDCCerr.c,
956         * support/Util/SDCCerr.h: added warning W_INVALID_INT_CONST
957
958 2005-09-10 Maarten Brock <sourceforge.brock AT dse.nl>
959
960         * as/mcs51/lkmem.c (summary2): fixed report for absolute areas (bug 1210220)
961
962 2005-09-09 Maarten Brock <sourceforge.brock AT dse.nl>
963
964         * src/mcs51/peeph.def (241.x): fixed bug when comparing generic pointers
965
966 2005-09-08 Maarten Brock <sourceforge.brock AT dse.nl>
967
968         * as/hc08/lkaomf51.c (OutputName): made name unsigned char,
969           (hex2dec): made hex_digit unsigned char, removed ascii dependance
970         * as/mcs51/lkaomf51.c (OutputName): made name unsigned char,
971           (hex2dec): made hex_digit unsigned char, removed ascii dependance
972         * as/mcs51/lkarea.c (lnkarea2): sort absolute areas to the front
973         * packihx/packihx.c (hexDigit): made c unsigned char
974         * as/mcs51/lklibr.c (fndsym),
975         * link/z80/lkgb.c (gb),
976         * link/z80/lklibr.c (fndsym),
977         * link/z80/lkrloc.c (relr),
978         * sim/ucsim/libltdl/ltdl.c (load_deplibs, try_dlopen),
979         * src/SDCC.lex (checkCurrFile, process_pragma),
980         * src/SDCCglue.c (spacesToUnderscores),
981         * src/SDCCmain.c (setParseWithComma, processFile),
982         * src/asm.c (tvsprintf, printCLine),
983         * src/avr/gen.c (emitcode, aopPut),
984         * src/ds390/gen.c (emitcode),
985         * src/hc08/gen.c (emitcode, emitinline),
986         * src/mcs51/gen.c (emitcode, genInline),
987         * src/pic/pcodepeep.c (cvt_extract_destination, cvt_extract_status,
988           tokenizeLineNode),
989         * src/pic/ralloc.c (debugLog),
990         * src/pic16/pcodepeep.c (cvt_extract_destination, cvt_extract_status,
991           tokenizeLineNode),
992         * src/pic16/ralloc.c (debugLog),
993         * src/z80/main.c (_process_pragma):
994            made all ctype.h function calls safe
995         * src/SDCCopt.c: include math.h for fabs
996         * src/SDCCpeeph.c: added macros ISCHARDIGIT, ISCHARSPACE and ISCHARALNUM
997           and used them throughout the code to make ctype.h function calls safe
998         * src/ds390/main.c (asmLineNodeFromLineNode),
999         * src/mcs51/main.c (asmLineNodeFromLineNode): made p unsigned char*
1000         * src/pic/gen.c (DEBUGpic14_emitcode, pic14_emitcode): made lbp
1001            unsigned char*
1002         * src/pic/pcode.c (mnem2key): made mnem unsigned char*,
1003           (newpCodeAsmDir): made ctype.h function calls safe
1004         * src/pic16/gen.c (pic16_emitpcomment, DEBUGpic16_emitcode,
1005           pic16_emitcode):  made lbp unsigned char*
1006         * src/pic16/pcode.c (mnem2key): made mnem unsigned char*,
1007           (pic16_newpCodeAsmDir): made ctype.h function calls safe
1008         * src/xa51/gen.c (emitcode),
1009         * src/z80/gen.c (_emit2): made lbp unsigned char*
1010         * support/Util/MySystem.c (split_command): made cmd_line and p unsigned
1011            char*
1012
1013 2005-09-05 Raphael Neider <rneider AT web.de>
1014
1015         * src/pic16/ralloc.c (pic16_allocDirReg): use device specific
1016           access bank splitpoint
1017
1018 2005-09-05 Raphael Neider <rneider AT web.de>
1019
1020         * device/lib/pic16/libc/Makefile: added (missing) string to SUBDIRS
1021
1022 2005-09-03 Maarten Brock <sourceforge.brock AT dse.nl>
1023
1024         * .version: changed to version 2.5.3
1025         * doc/sdccman.lyx: changed version to 2.5.3,
1026           documented --codeseg and --constseg and pragma codeseg and constseg,
1027           documented bit parameters (reentrant) and bit returning
1028         * src/SDCCicode.c (geniCodeReceive): fixed (possible) bug generating
1029            currFunc->recvSize, but is this ok for all ports?
1030           (ast2iCode): result of ~ on unsigned char must be cast to int for
1031            bool to work
1032         * src/SDCCmem.c (allocGlobal, allocLocal): don't put bit returning
1033           function pointers in bit space
1034         * src/SDCCsymt.c (checkSClass): allow bit returning function pointers,
1035           (processFuncArgs): call port.reg_parm() with reentrancy info
1036         * src/port.h,
1037         * src/avr/main.c,
1038         * src/ds390/main.c,
1039         * src/hc08/main.c,
1040         * src/pic/main.c,
1041         * src/pic16/main.c,
1042         * src/xa51/main.c,
1043         * src/z80/main.c: port.reg_parm prototype extended with
1044           "bool reentrant" parameter
1045         * src/mcs51/main.c (_mcs51_regparm): use parameter reentrant instead of
1046           options.stackAuto for allocating bit register parameters
1047         * src/mcs51/gen.c (genNot): optimized complementing direct bit,
1048           (genSend): set BitBankUsed if it is,
1049           (selectRegBank): factored out of genCall for use in genPcall,
1050           (genCall): removed redundant dtype assignmen, use selectRegBank,
1051           (genPcall): handle returning in Carry properly, save in F0 if needed,
1052           (genReceive): handle bit register parameters
1053         * src/mcs51/ralloc.c (updateRegUsage): update BitBankUsed along the way,
1054           (mcs51_assignRegisters): enable bit registers for all reentrant
1055            functions and don't set BitBankUsed unconditionally
1056         * src/mcs51/peeph.def (177.d): fixed bug if %2==%3
1057         * support/regression/tests/bitvars.c: enable tests for SDCC_STACK_AUTO
1058         * support/regression/tests/funptrs.c: added tests for BOOL and for return
1059
1060 2005-08-27 Borut Razem <borut.razem AT siol.net>
1061
1062         * device/lib/Makefile.in: cp on sparc-solaris (SunOS) and on
1063         ppc-osx (Darwin) does not support -u option. It seems that it is
1064         supported only on Linux - GNU cp
1065
1066 2005-08-25 Borut Razem <borut.razem AT siol.net>
1067
1068         * sim/ucsim/gui.src/serio.src/Makefile.in,
1069           sim/ucsim/s51.src/Makefile.in, sim/ucsim/avr.src/Makefile.in,
1070           sim/ucsim/z80.src/Makefile.in, sim/ucsim/hc08.src/Makefile.in,
1071           sim/ucsim/xa.src/Makefile.in: install -s changed to 2 steps:
1072           install and strip, since the strip at /usr/ccs/bin should be used
1073           on solaris
1074
1075 2005-08-24 Borut Razem <borut.razem AT siol.net>
1076
1077         * clean.mk, device/lib/clean.mk: find on sparc-solaris does not support -maxdepth option
1078
1079 2005-08-23 Bernhard Held <bernhard AT bernhardheld.de>
1080
1081         * src/SDCCopt.c (convertToFcall): fixed modulus with divisors 1 and
1082         ffffffffu
1083
1084 2005-08-23 Maarten Brock <sourceforge.brock AT dse.nl>
1085
1086         * as/mcs51/aslink.h: completed lkrloc.c prototypes
1087         * as/mcs51/lkmain.c (link_main): fixed warning
1088         * device/include/stdbool.h: ds390 has no advanced bit support yet
1089         * src/SDCC.y: use SPEC_SHORT and renamed _signed to b_signed
1090         * src/SDCCsymt.c: use SPEC_SHORT and renamed _signed to b_signed
1091         * src/SDCCsymt.h (struct specifier): renamed _xxx bitfields to b_xxx
1092           and updated their macros
1093         * src/SDCCval.c (constVal): updated comment for renamed b_long
1094
1095 2005-08-22 Maarten Brock <sourceforge.brock AT dse.nl>
1096
1097         * as/mcs51/asdata.c: changed ctype['['] to BINOP
1098         * as/mcs51/asexpr.c (expr): added case '[' for bit access in bdata,
1099           (term): abused bit 15 of s_addr to indicate bit-addressable bytes,
1100           (oprio): set priority for '['
1101         * as/mcs51/aslink.h: added define R_BIT, and prototypes for adb_bit
1102            and adb_24_bit
1103         * as/mcs51/asm.h: added defines R_BIT and S_BIT
1104         * as/mcs51/lkarea.c (lnksect2): use T for seg BIT_BANK and overlay it
1105         * as/mcs51/lkdata.c: changed ctype['['] to BINOP
1106         * as/mcs51/lkmain.c (Areas51): rel2 contains 12 (=C) areas now,
1107           added overlayable BIT_BANK area
1108         * as/mcs51/lkmem.c (summary): add BIT_BANK to BSEG_BYTES in the report,
1109           (summary2): explain 'T' in legenda
1110         * as/mcs51/lkrloc.c: replaced old K&R style,
1111           (relr): added R_BIT processing,
1112           (errmsg): added "Bit-addressable relocation error",
1113           (adb_bit): added for converting from byte- to bit-addressable space,
1114           (adb_24_bit): added for converting from byte- to bit-addressable space
1115         * device/include/stdbool.h: changed BOOL to __bit for mcs51 as it can be
1116            used in reentrant functions now even as return value
1117         * device/lib/_gptrput.c (_gptrput): removed obsolete code
1118         * src/SDCCast.c (resultTypePropagate): also propagate AND_OP and OR_OP,
1119           (decorateType): case '!', GETHBIT, AND_OP, OR_OP: result in bool or char
1120         * src/SDCCglobl.h: added indicator BitBankUsed
1121         * src/SDCCglue.c (glue): emit area BIT_BANK with byte 'bits' and equ's for
1122            the bit registers b0-b7
1123         * src/SDCCicode.c (operandFromSymbol): removed IS_BITVAR check,
1124           (geniCodeCast): fixed bug 1263853,
1125           (geniCodeLogicAndOr): put result in bool or char,
1126           (geniCodeReceive): added parameter func for accessing the return type,
1127           (geniCodeFunctionBody): pass func to geniCodeReceive
1128         * src/SDCCmain.c: added indicator BitBankUsed
1129         * src/SDCCmem.c (allocLocal): explicitly set sclass for V_BIT
1130         * src/SDCCsymt.c (newBoolLink): added for creating a bool/bit,
1131           (checkSClass): don't put automatic bool/bit on stack,
1132           (checkFunction): removed check on function cannot return bit
1133         * src/SDCCsymt.h: added newBoolLink prototype
1134         * src/mcs51/gen.c (rb1regs): added bit registers,
1135           (movc): created for assigning to carry,
1136           (pushReg, popReg): created for pushing registers,
1137           (sameRegs): check both AOP_REG and AOP_CRY types,
1138           (aopOp): handle bit registers,
1139           (aopPut): optimization no self-assign,
1140           (saveRegisters): push reg->base (bits) only once for bit registers,
1141            and use pushReg,
1142           (unsaveRegisters): pop reg->base only once and use popReg,
1143           (assignResultValue): added parameter func and return in carry for bits,
1144           (genIpush): optimization no reload in A if not changed,
1145           (genSend): bit parameters in reentrant functions are passed in bit
1146            registers by first assigning to bits in B, then save registers and
1147            copy B to bits,
1148           (genCall): handle returning in Carry properly, save it in F0 if needed,
1149           (genPcall): updated assignResultValue call, this is not safe yet for bit
1150            returning function !!!
1151           (genFunction): don't generate equ's for bit registers and use pushReg,
1152           (genEndFunction): take care of bit returning functions and use popReg,
1153           (genRet): return bit in Carry,
1154           (genIfx): optimize bit registers and other directly addressable bits,
1155           (genReceive): updated assignResultValue call
1156         * src/mcs51/main.c (_mcs51_reset_regparm): added regBitParmFlg,
1157           (_mcs51_regparm): allow passing of upto 8 bit parameters in bit
1158            registers when using stack-auto
1159         * src/mcs51/ralloc.c (_G): added allBitregs,
1160           (regs8051): added the bit registers,
1161           (createStackSpil): use macro IS_BIT,
1162           (getRegBit): added to allocate a bit register, else spill,
1163           (getRegBitNoSpil): added to allocate a bit register, else a gpr,
1164           (updateRegUsage): factored out to ease stepping while debugging,
1165           (serialRegAssign): use updateRegUsage, only spill bits if necessary,
1166            also allocate bit registers,
1167           (fillGaps): handle bit registers,
1168           (findAllBitregs): added to create bit vector with all bit registers,
1169           (mcs51_allBitregs): returns this bit vector,
1170           (mcs51_assignRegisters): when using stack-auto use bit registers for
1171            passing parameters and creating local variables
1172         * src/mcs51/ralloc.h: added B0_IDX..B7_IDX and prototype mcs51_allBitregs
1173
1174 2005-08-22 Borut Razem <borut.razem AT siol.net>
1175
1176         * device/lib/Makefile.in: replaced find option -or with -o
1177           to make it run on solaris
1178
1179 2005-08-22 Raphael Neider <rneider AT web.de>
1180
1181         * src/pic16/gen.c (pic16_loadFromReturn): added check for AOP_PCODE,
1182           fixes #1265442 (crash on Solaris)
1183
1184 2005-08-20 Borut Razem <borut.razem AT siol.net>
1185
1186         * configure, configure.in: added tests for libsocket and libnsl libraries,
1187           requred by sdcdb on sparc-solaris; generate support/regression/Makefile
1188           from support/regression/Makefile.in
1189         * support/regression/Makefile.in: added
1190         * device/lib/pic16/Makefile.common.in: force make to use bash shell
1191         * sim/ucsim/libtool: regenerated on sparc-solaris
1192         * sim/ucsim/avr.src/Makefile.in, sim/ucsim/hc08.src/Makefile.in,
1193           sim/ucsim/s51.src/Makefile.in, sim/ucsim/xa.src/Makefile.in,
1194           sim/ucsim/z80.src/Makefile.in: removed GNU ld specific linker options
1195           -Wl,--start-group and -Wl,--end-group to enable ucsim compilation on
1196           sparc-solaris, which doesn't use GNU ld linker
1197         * device/lib/Makefile.in: cp on sparc-solaris (SunOS) does not support -u option
1198         * as/Makefile: find on sparc-solaris does not support -maxdepth option
1199
1200 2005-08-19 Maarten Brock <sourceforge.brock AT dse.nl>
1201
1202         * src/mcs51/peeph.def: updated comments
1203
1204 2005-08-16 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
1205
1206         * device/lib/_gptrget.c,
1207         * device/lib/_gptrput.c: slightly shorter
1208         * doc/sdccman.lyx: incremented version
1209         * src/mcs51/peeph.def: moved peephole comments to the line of first
1210           change to better keep line correlation, reanimated 186.e
1211         * src/mcs51/peeph.def: renamed similar peepholes by using suffixes
1212
1213 2005-08-16 Slade Rich <slade_rich AT users.sourceforge.net>
1214
1215         * src/pic/pcode.c : Pasted ".line" assembly directives patch from
1216           David Saxton with quotes around file name.
1217
1218 2005-08-15 Borut Razem <borut.razem AT siol.net>
1219
1220         * support/regression/tests/bitfields.c, support/regression/tests/bitvars.c,
1221           support/regression/tests/bitwise.c, support/regression/tests/literalop.c,
1222           support/regression/tests/rotate.c, support/regression/tests/zeropad.c:
1223           make tests run on x86_64 platform
1224
1225 2005-08-13 Raphael Neider <rneider AT web.de>
1226
1227         * device/lib/pic16/Makefile.subdir: weakened clean-intermediate rule
1228           as it might be executed DURING a build (parallel make is wonderful)
1229
1230 2005-08-13 Raphael Neider <rneider AT web.de>
1231
1232         * device/lib/Makefile.in (port-specific-objects-pic16):
1233           revert to cp $(PORT)/bin/*.* $(PORTDIR)
1234         * device/lib/pic16/Makefile: added .PHONY targets, removed builddir
1235           dependency
1236         * device/lib/pic16/Makefile.rules: build subdirs before creating
1237           the library, removed builddir rule, create $(builddir) early in
1238           recurse rule, use empty recurse rule for leaf directories
1239         * device/lib/pic16/Makefile.subdir: added phony targets, ignore
1240           mkdir errors (race condition), removed duplicate suffix "hex"
1241           from clean rules
1242         * device/lib/pic16/libdev/Makefile: recursive make via + and $(MAKE)
1243         * device/lib/pic16/libio/Makefile: create sub-make's builddir early,
1244           prevents mkdir -p from aborting on Alpha
1245
1246 2005-08-12 Raphael Neider <rneider AT web.de>
1247
1248         * src/pic16/glue.c (pic16_print(G)PointerType): do not flush
1249           db-statements in order to allow for arrays of pointers in code
1250           sections to be placed without interspersed 0-padding, fixes
1251           bug #1256215
1252         * (emitStatistics): fixed division by zero for pic18f1220
1253         * src/pic16/pcode.c: buffer (up to) 12 DB directives to allow for
1254           unpadded writing of 8-bit, 16-bit, 24-bit and 32-bit values
1255         * (pic16_emitDS): respect DB_ITEMS_PER_LINE
1256         * (pic16_pCodeConstString): keep track of already emitted string
1257           literals to prevent "duplicate definitions of symbol _str_NR"
1258         * src/pic16/ralloc.c (pic16_allocRegByName): removed not so helpful
1259           debug message
1260         * device/lib/Makefile.in: ignore failing PIC16 library builds
1261         * device/lib/pic16/Makefile: do not build if gputils are missing
1262         * device/lib/pic16/Makefile.common.in: do not enforce MAKEFLAGS=-s
1263
1264 2005-08-10 Raphael Neider <rneider AT web.de>
1265
1266         * device/lib/Makefile.in: fixed copying pic16 libraries (broken by
1267           my last commit)
1268
1269 2005-08-10 Raphael Neider <rneider AT web.de>
1270
1271         * src/*.c, src/pic16/{gen.c,glue.c,main.c}: applied Vangelis
1272           Rokas' patch to add the new fixed point type "__fixed16x16"
1273         * device/lib/pic16/libsdcc/fixed16x16: added Vangelis' support
1274           functions for __fixed16x16 arithmetics
1275         * device/lib/pic16: reimplemented the build system to support
1276           a separate build directory, better handling of libio (create
1277           the library in a separate subdir for each architecture) and
1278           easier configuration (centralized in Makefile.common)
1279
1280 2005-08-07 Raphael Neider <rneider AT web.de>
1281
1282         * src/pic16/gen.c (genrshTwo): fixed sign extension
1283         * src/pic16/device.c: added pic18f2320, 4220 and 4320
1284         * device/include/pic16/pic18f2220.h: changed some bit definitions,
1285           added T0CONbits
1286         * device/include/pic16/pic18f4220.h: NEW, header for
1287           pic18f4220 and pic18f4320
1288         * device/include/pic16/pic18fregs.h: added new devices,
1289           embraced Nop(), ClrWdt(), Sleep() and Reset() with do {} while(0)
1290         * device/include/pic16/signal.h: resolved name clashes
1291           on bit definitions, added DEF_HANDLER2(sig1,sig2,handler)
1292           to also allow testing for interrupt enable bits, added
1293           comments on how to use the macros
1294         * device/lib/pic16/libdev/pic18f2220.c: added T0CONbits
1295         * device/lib/pic16/libdev/pic18f{2320,4220,4320}.c: NEW,
1296           register definitions for the devices
1297         * device/lib/pic16/pics.all: added new devices
1298         * device/lib/pic16/libc/stdlib/calloc.c: fixed zeroing
1299           allocated memory
1300         * device/lib/pic16/libc/stdlib/memfree: do not count
1301           the block header as free memory
1302         * device/lib/pic16/libc/stdlib/memmisc.c (_initHeap):
1303           simplified and added missing end-of-blocklist-marker
1304           (reported by Peter Onion, fixes #1252814)
1305         * (_mergeHeapBlock): fixed loop condition
1306         * device/lib/pic16/libc/stdlib/realloc.c: return NULL for
1307           len==0, restructured code
1308         * device/lib/pic16/libc/stdlib/{malloc,memfreemax}.c: cleaned
1309           up a bit, reduced bitfield accesses, prevent endless loops
1310           in case of heap corruption
1311         * device/lib/pic16/libc/stdlib/x_ftoa.c: disabled
1312           "unreferenced arguments/must return a value" warnings
1313         * device/lib/pic16/libio/usart/ubaud.c (usart_baud):
1314           replaced BAUDREG with SPBRG
1315         * device/lib/pic16/libsdcc/lregs/{lrrest.c,lrst.c},
1316           device/lib/pic16/debug/gstack/gstack.c: replaced
1317           _naked, _asm, _endasm with __naked, __asm, __endasm
1318
1319 2005-08-05 Raphael Neider <rneider AT web.de>
1320
1321         * src/pic16/gen.c (pic16_aopGet): fixed handling of offsets in
1322           AOP_PCODE operands, fixes multibyte union-bitfield-accesses
1323
1324 2005-08-05 Borut Razem <borut.razem AT siol.net>
1325
1326         * device/lib/Makefile.in: added missing ';'
1327         * configure: removed ^M characters
1328
1329 2005-08-04 Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
1330
1331         * device/include/mcs51/at89c51ed2.h, device/include/mcs51/p89v51rd2.h,
1332           device/include/mcs51/at89s53.h: changed to GNU Lesser General Public
1333           License
1334
1335 2005-08-04 Borut Razem <borut.razem AT siol.net>
1336
1337         * configure.in: pic16 libraries build 2nd try - enable running
1338           configure in device/lib/pic16
1339         * configure: regenerated from configure.in
1340         * device/lib/Makefile.in: create $(PORT)/bin directory
1341
1342 2005-08-03 Raphael Neider <rneider AT web.de>
1343
1344         * src/pic16/gen.c (pic16_derefPtr): NEW, single place
1345           to get/set values via pointers
1346         * (genUnpackBits,genPackBits): changed detection of
1347           ptr->bitfield vs. sym.bitfield, fixed access via generic
1348           pointers, removed dead (wrong) code for multibyte bitfields
1349         * (genNearPointerGet, genGenPointerGet): removed useless code,
1350           fixed bitfield detection, fixes #1250594
1351         * (genNearPointerSet): removed useless code
1352         * src/pic16/gen.h: renamed pic16_emitpcode to pic16_emitpcode_real
1353           and introduced macro pic16_emitpcode that conditionally emits
1354           the origin of the following pCode (useful for debugging SDCC)
1355         * src/pic16/pcode.c: changed (and disabled) some debug outputs
1356         * (createDefmap): fixed handling of LFSR for --optimize-df
1357
1358 2005-08-02 Borut Razem <borut.razem AT siol.net>
1359
1360         * device/lib/Makefile.in: pic16 libraries build enabled since
1361           gputils-0.13.2 are now localy installed at sourceforge's compile farm
1362
1363 2005-08-02 Raphael Neider <rneider AT web.de>
1364
1365         * src/pic16/gen.c (genPackBits): removed deprecated warning
1366         * (genGenPointerSet): fixed bitfield detection
1367
1368 2005-08-02 Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
1369
1370         * device/include/mcs51/msm8xc154s.h: Removed PT2 definition, now in 8052.h.
1371
1372 2005-07-31 Raphael Neider <rneider AT web.de>
1373
1374         * device/lib/pic16/libdev/pic18f458.c,
1375           device/include/pic16/pic18f458.h: added missing T0CONbits
1376
1377 2005-07-29 Maarten Brock <sourceforge.brock AT dse.nl>
1378
1379         * device/include/mcs51/msm8xc154s.h: added, thanks to Matthias Arndt
1380
1381 2005-07-28 Maarten Brock <sourceforge.brock AT dse.nl>
1382
1383         * src/mcs51/gen.c (operandsEqu): fixed bug 1246687
1384
1385 2005-07-23 Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
1386
1387         * device/include/mcs51/at89c51ed2.h: added.
1388
1389 2005-07-23 Raphael Neider <rneider AT web.de>
1390
1391         * src/pic/gen.h: added emitpcode macro for debugging
1392         * src/pic/gen.c (emitpcode): renamed to emitpcode_real
1393           and replace by macro adding debug information on demand
1394         * (genNot): fixed to C semantics (!0 = 1; !x = 0 iff x != 0)
1395         * (gencjne): tried to fix; replaced with correct (slower) code
1396         * (gen{Unp,P}ackBits): fixed single bit access
1397         * src/pic/pcode.c (AnalyzepCode): fixed DFPRINTF argument
1398         * src/pic/pcodepeep.c (pCodeSearchCondition): fixed finding
1399           previous instruction
1400         * src/pic/pcoderegs.c (regIsSpecial): NEW, check whether a
1401           register has to be handled with care (forbidding movement
1402           of assignments/uses, removing assignments completely, ...)
1403         * (pCodeOptime2pCodes): make use of regIsSpecial
1404         * added lots of debugging output (commented out)
1405         * src/pic/rallloc.c (deassignLRs): prevent operand registers
1406           from being reused as result UNLESS it is known to work
1407
1408 2005-07-23 Maarten Brock <sourceforge.brock AT dse.nl>
1409
1410         * support/Util/dbuf.h: include <stddef.h> for size_t
1411         * .version: changed to version 2.5.2
1412
1413 2005-07-23 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
1414
1415         * src/SDCCloop.c (loopInvariants): fixed bug #1234048
1416
1417 2005-07-22 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
1418
1419         * src/hc08/gen.c (genMinus): fixed bug #1241835,
1420           (genModOneByte): removed needless psha/pula
1421
1422 2005-07-22 Raphael Neider <rneider AT web.de>
1423
1424         * src/SDCCmain.c (linkEdit): initialized linkerScriptFileName,
1425           have PIC14 handled like PIC16, fixes broken pic14 linker calls
1426         * src/pic/gen.c (resolveIfx): do not "invent" labels
1427         * (genSkipc): changed to positive logic
1428         * (genSkipCond): removed as no longer needed
1429         * (pic14_mov2w_regOrLit,genCmp): NEW, replacement for buggy version,
1430           backport from PIC16
1431         * (genLeftShift): check operands are in different registers
1432         * src/pic/genarith.c (genPlus): replaced INCF with ADDLW as
1433           INCF does not update CARRY...
1434         * src/pic/main.c: fixed _linkCmd
1435         * src/pic/pcode.c (unlinkpCode): added inactive code
1436         * src/pic/ralloc.c (deassignLRs): keep arguments to shift operations
1437           alive (do not assign result and operand overlapping registers)
1438
1439 2005-07-22 Raphael Neider <rneider AT web.de>
1440
1441         * src/pic/device.c (dump_sfr): replaced register declaration with
1442           call to emitSymbolToFile() to avoid duplicate symbols
1443         * (assignRelocatableRegisters): do not declare external symbols
1444         * src/pic/ralloc.c (allocNewDirReg): fixed to get size of arrays
1445           right (take size of type, not etype)
1446         * (allocDirReg): fixed call to allocNewDirReg() to pass OP_SYM_TYPE
1447         * (writeUsedRegs): also dump dynDirectRegs (e.g. local variables)
1448         * (packRegsForAccUse): disabled assignment of WREG as
1449           the result reg to prevent occurence of just fixed #1235003,
1450           fixes #1242954
1451         * src/pic/glue.c (emitSymbolToFile): NEW, central place to declare
1452           symbols (avoids duplicate symbols in .asm file)
1453         * (pic14emitRegularMap): use emitSymbolToFile()
1454         * src/pic/gen.c (aopOp): fixed spillLocation handling
1455         * (gen{Unp,P}ackBits): fixed acquiring bit-operands
1456         * (genDataPointerSet): removed unneccessary variables/output
1457
1458 2005-07-22 Maarten Brock <sourceforge.brock AT dse.nl>
1459
1460         * as/mcs51/lkarea.c: enlarged codemap for banked memory
1461         * device/lib/mcs51/crtbank.asm: added # to 0x0F
1462
1463 2005-07-21 Raphael Neider <rneider AT web.de>
1464
1465         * src/pic/gen.c (aopOp): do not generate AOP_ACC operands as pic14
1466           architecture cannot handle them efficiently, fixes bug #1235003
1467         * src/pic16/device.c (pic16_dump_{u,i}section,pic16_dump_int_registers):
1468           check for empty sets before using them (fixes bug #1232190)
1469
1470 2005-07-19 Maarten Brock <sourceforge.brock AT dse.nl>
1471
1472         * as/mcs51/lkarea.c (lnkarea, lnkarea2): improved BSEG size calculation,
1473           (lnksect2): generate warnings for memory overlap
1474         * src/SDCC.lex (doPragma, process_pragma): added pragma's codeseg and
1475           constseg to set the name of these segments so you can instruct the linker
1476           to place them in banks
1477         * src/SDCCast.c (decorateType): use new macro IS_FUNCPTR()
1478         * src/SDCCglobl.h: added MODEL_HUGE to enum,
1479           added code_seg and const_seg to options
1480         * src/SDCCglue.c (emitMaps): use options.const_seg,
1481           (createInterruptVect): put interrupt vectors in segment HOME,
1482           (glue): put HOME before static segment and put the main glue in HOME,
1483           (glue): use options.code_seg
1484         * src/SDCCicode.c (geniCodeCall): use new macro IS_FUNCPTR()
1485         * src/SDCCmain.c: added option --codeseg and --constseg to set the name of
1486           these segments so you can instruct the linker to place them in banks
1487           (linkEdit): use code_loc for HOME segment which should be the first
1488           segment in code memory now
1489         * src/SDCCmem.c: fixed more stuff like bug 1238386
1490         * src/SDCCsymt.c (getSize): use generic pointer size for banked functions,
1491           (changePointer): don't change function pointers to code pointers for
1492           banked functions,
1493           (compareType): added exceptional check for banked function pointers
1494         * src/SDCCsymt.h: changed IFFUNC_ISBANKEDCALL, added IS_FUNCPTR
1495         * src/hc08/main.c (_hc08_genAssemblerPreamble): put HOME first, put CSEG
1496           after static in code memory
1497         * src/mcs51/gen.c: added aopLiteralLong prototype,
1498           (aopForSym): use getSize for functions,
1499           (genCall): generate banked calls over one trampoline __sdcc_banked_call
1500           in HOME with lsb of address in r0, msb in r1 and bank in r2, use
1501           -Wl-bBANKSEG=0xbbaaaa option to set the address (aaaa) and bank (bb) of
1502           the segment,
1503           (genPcall): use call for literal function pointers and generate banked
1504           calls over the one trampoline so there's only one place for the user to
1505           modify according to his/hers hardware,
1506           (genEndFunction): jump to __sdcc_banked_ret in HOME for banked functions,
1507           (genPlusIncr): moved check icount>4 beyond inc dptr optimization
1508         * src/mcs51/main.c: added keyword banked,
1509           (_mcs51_genExtraAreas): put HOME first followed by GSINIT, STATIC and CSEG
1510         * support/Util/SDCCerr.c,
1511         * support/Util/SDCCerr.h: added E_BANKED_WITH_CALLEESAVES, registers are
1512           needed for passing the bank and address to the trampoline
1513         * device/lib/mcs51/crtbank.asm: added for bankswitching
1514         * device/lib/mcs51/Makefile: added crtbank
1515
1516 2005-07-16 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
1517
1518         * src/SDCCcse.c (algebraicOpts): fixed loss of volatility
1519           for fields at offset 0 of a struct or union as reported
1520           on 2005-07-07 in the developer mailing list.
1521
1522 2005-07-15 Maarten Brock <sourceforge.brock AT dse.nl>
1523
1524         * src/SDCCmem.c: fixed bug 1238386
1525
1526 2005-07-12 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
1527
1528         * src/mcs51/peeph.def: added labelrefcounting for peepholes
1529           (patch #1144962), added peephole 300, enabled 259.x
1530         * doc/sdccman.lyx: removed screenshot and provided link instead
1531
1532 2005-07-05 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
1533
1534         * doc/sdccman.lyx: added section about debugging with ddd
1535         * doc/figures/ddd_example.eps: screenshot of debugging session
1536
1537 2005-07-04 Raphael Neider <rneider AT web.de>
1538
1539         * src/pic/gen.c (genPointerGet): handle pointers to CONST values
1540           like CODE pointers, fixes #1115683
1541         * src/pic/pcode.c (DoBankSelect): forget LastRegIdx during function
1542           call, fixes bugs #1232211, #1228110,
1543           fixed wrong casts to pCodeFlow from pCodeInstructions
1544
1545 2005-07-04 Raphael Neider <rneider AT web.de>
1546
1547         * src/pic/gen.c (popGet): changed assert to allow for
1548           bit operands
1549         * (popGetAddr): changed signature to provide
1550           an additional index, patched all call sites
1551         * (genCmpEq): handle literal-like operands correctly
1552         * (genAddrOf): added sanity checks on __code/__data pointers
1553         * (genAssign): added handling of symbols from __code section
1554         * (gencjne): do not generate code for comparisons whose result
1555           is neither stored nor used, fixes bug #1171114
1556         * (AccLsh, AccRsh): operate on operand instead of WREG
1557         * (shift{Left,Right}_Left2ResultLit): NEW, size independant
1558           replacement for Shift{LR}{12}Left2Result; shift (byte/int/long)
1559           by known count
1560         * rewrote complete shift-by-literal logic, commented unused
1561           functions out
1562         * (genConstPointerGet): get multiple bytes (if result size > 1),
1563           fixed handling of non-immediate addresses
1564         * (genPointerGet): handle CODE pointers like CONST pointers
1565         * (genpic14Code): insert C-SRC lines as Cource-pCodes
1566         * ({aop,op}_isLitLike): NEW, single place to decide whether an
1567           operand is to be treated as a literal or not
1568         * (mov2w,genPcall,genCmpEq),
1569           src/pic/genarith.c: use aop_isLitLike() to decide between
1570           literal/register contents
1571         * (addSign): added missing offset
1572         * src/pic/gen.h: remove newline after FENTRY/FEXIT comments,
1573           only emit comment in debug-mode,
1574           use {aop,op}_isLitLike throughout the file
1575         * src/pic/glue.c: fix initializers for pointers (work in progress)
1576         * src/pic/pcode.c (get_op): honor index on _const symbols
1577         * ({reset,dump}pCodeStatistics): NEW, estimate code size
1578         * (dumppBlock): added pCode size estimation
1579         * src/pic/ralloc.c (deassignLRs,serialRegAssign,packRegisters):
1580           check for IS_SYMOP before OP_SYMBOL'ing
1581         * fixed indentation, compacted switch-statements
1582         * (allocReg): find free register and allocate it instead of
1583           allocating new registers all the time
1584         * (deassignLRs): prevent POINTER_GET's from being assigned the same
1585           registers as its operands (necessary only for multibyte GETs)
1586
1587 2005-07-01 Raphael Neider <rneider AT web.de>
1588
1589         * src/pic/gen.h: added prototypes emitpComment, popGetAddr and
1590           debugging .asm-output macros FENTRY + FEXIT
1591         * src/pic/gen.c (Safe_vsnprintf): NEW, is there a more generic
1592           way... I wonder...
1593         * (emitpComment): NEW, printf to pCode
1594         * (popGet): added assert on too large offsets, fixed PO_IMMEDIATE's
1595           offset handling
1596         * (popGetAddr): NEW, variant of popGet to access an immediates
1597           high(er) bytes instead of the n'th byte of memory they reference,
1598           replaced popGet with popGetAddr where neccessary
1599         * (genDataPointerGet): reactivated and fixed implementation
1600         * (genNearPointerGet): enabled call to genDataPointerGet, fixes array-
1601           accesses
1602         * (genDataPointerSet): fixed multibyte assignments
1603         * (genpic14Code): fixed --i-code-in-asm handling
1604         * src/pic/genarith.c: fixed PO_IMMEDIATE issue using popGetAddr,
1605         * (genPlus): fixed index-out-of-bounds error
1606         * src/pic/pcode.c (get_op): fixed PO_IMMEDIATE's index/offset handling
1607         * src/pic/ralloc.c: added debugging output macro FENTRY2
1608         * (spillThis): fixed indentation, enbraced for-body for clarity
1609         * (rematStr): commented out as now unused
1610         * (regTypeNum): commented out special spill case (overwrites
1611           arbitrary values)
1612         * fixes bugs #1229346, #1216476 (both arrays) and #1115667 (SIGSEGV)
1613
1614 2005-06-30 Maarten Brock <sourceforge.brock AT dse.nl>
1615
1616         * doc/sdccman.lyx: documented sfr16/sfr32,
1617           added example for using storage class with function pointers
1618         * src/mcs51/gen.c (genPlusIncr): optimized small offsets from dptr
1619
1620 2005-06-28 Maarten Brock <sourceforge.brock AT dse.nl>
1621
1622         * device/lib/_gptrget.c: also push/pop _PSBANK, added # to 0x03
1623         * device/lib/_itoa.c,
1624         * device/lib/_ltoa.c: optimized codesize
1625         * src/SDCCsymt.c (checkSClass): added sanity check for sfr at addresses,
1626           but don't know how to suppress the double warning.
1627         * src/mcs51/gen.c (genPlusIncr): fixed bug when incrementing volatile int's
1628         * support/Util/SDCCerr.c,
1629         * support/Util/SDCCerr.h: added warning W_SFR_ABSRANGE for sanity check
1630
1631 2005-06-27 Maarten Brock <sourceforge.brock AT dse.nl>
1632
1633         * as/mcs51/asexpr.c (expr): disabled warning "not in .flat24 mode",
1634           fixed old K&R prototypes
1635         * as/mcs51/asout.c (outrb): always output as if generating 24bit addresses
1636         * device/lib/_gptrget.c,
1637         * device/lib/_gptrgetc.c,
1638         * device/lib/_gptrput.c: changed versions for new memory indicator values,
1639           also new versions for small generic pointers and banked generic pointers
1640         * src/port.h: added const_name
1641         * src/SDCC.lex: added keywords sfr16, __sfr16, sfr32, __sfr32
1642         * src/SDCC.y: added tokens SFR16, SFR32 and their sfr_attributes
1643         * src/SDCCcse.c (findPrevIc): check all associative operators
1644         * src/SDCCglue.c (emitMaps): use CONST_NAME if defined
1645         * src/SDCCicode.h: added macro IS_ASSOCIATIVE
1646         * src/SDCCmem.c: updated comments,
1647           set far-space to 0 for pdata, results in optimized code
1648         * src/SDCCmem.h: added macro CONST_NAME
1649         * src/SDCCsymt.h: renumerated generic pointer types GPTYPE_... thereby
1650           moving the info into the highest bits, see also gptrget/gptrput
1651         * src/src.dsp: added sdcc.ico to project files
1652         * src/avr/gen.c (genCast): fixed bug 0x%d
1653         * src/avr/main.c (avr_port): added "CONST (CODE)" for const_name
1654         * src/ds390/gen.c (aopForRemat, adjustArithmeticResult): disconnected direct
1655           relation between ptr_type and DCL_TYPE,
1656           (genCast): fixed bug 0x%d
1657         * src/ds390/main.c (ds390_port, tininative_port, ds400_port): added "CONST
1658           (CODE)" for const_name
1659         * src/hc08/gen.c (genCast): fixed bug 0x%d
1660         * src/hc08/main.c (_hc08_genAssemblerPreamble): added .area ...const_name,
1661           (hc08_port): added "CONST (CODE)" for const_name
1662         * src/mcs51/gen.c (aopForSym): optimized pushing ACC,
1663           (aopForRemat, adjustArithmeticResult): disconnected direct relation
1664           between ptr_type and DCL_TYPE,
1665           (aopGetUsesAcc, aopGet, aopPut): changed first parameter from asmop* to
1666           operand* and took AOP() inside function so sfr-ness can be checked,
1667           (all over): repaired calls to aopGetUsesAcc, aopGet, aopPut to comply with
1668           new prototype,
1669           (genFunction, genEndFunction): optimized stack setup,
1670           (genMinus): optimized for literals with ending zeroes (in bytes),
1671           (genCast): fixed bug 0x%d
1672         * src/mcs51/main.c (_mcs51_keywords): added sfr16 and sfr32,
1673           (mcs51_port): added "CONST (CODE)" for const_name
1674         * src/mcs51/peeph.def: made rule 226 more generic
1675         * src/pic/main.c (pic_port): added "CONST (CODE)" for const_name
1676         * src/pic16/main.c (pic16_port): added "CONST (CODE)" for const_name
1677         * src/xa51/main.c (xa51_port): added "CONST (CODE)" for const_name
1678         * src/z80/main.c (z80_port): added NULL for const_name,
1679           (gbz80_port): added NULL for const_name
1680         * support/regression/tests/bug663539.c,
1681         * support/regression/tests/sfr16.c: new tests
1682
1683 2005-06-25 Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
1684
1685         * device/include/mcs51/p89v51rd2.h, device/include/mcs51/at89s53.h: added.
1686
1687 2005-06-24 Raphael Neider <rneider AT web.de>
1688
1689         * device/lib/pic16/libdev/pic18f[68][567]20.c:
1690           corrected typos...
1691         * device/include/pic16/signal.h: added USBIF
1692           and SIG_USB
1693
1694 2005-06-24 Raphael Neider <rneider AT web.de>
1695
1696         * device/lib/pic16/libdev/pic18f2455.c,
1697           device/include/pic16/pic18f2455.h: NEW
1698         * device/include/pic16/pic18fregs.h,
1699           device/lib/pic16/pics.all,
1700           src/pic16/device.c: added 18f2455
1701         * device/lib/pic16/libdev/pic18f[68][567]20.c,
1702           device/include/pic16/{pic18f[68][567].h,usart.h}:
1703           replaced MULTIPLE_USARTS define with more relaible
1704           compatibility sfrs (for USART access)
1705
1706 2005-06-20 Slade Rich <slade_rich AT users.sourceforge.net>
1707
1708         * src/pic/pcode.c : Fixed problem when a string constant contains a "\r\n"
1709           and the output asm file line is printed on two lines.
1710
1711 2005-06-19 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
1712
1713         * sim/ucsim/hc08.src/inst.cc (inst_condbranch): fixed simulation of
1714           BGT, BLE, BHI, and BLS instructions
1715         * src/hc08/gen.c (outAcc, outBitC, outBitNV, genCmpLt, genCmpGt,
1716           genCmpEq): removed
1717         * src/hc08/gen.c (genCmpEQorNE, genCmp, branchopCmp, nameCmp,
1718           negatedCmp, exchangedCmp, genhc08Code): rewrite of comparison handling,
1719           fixes bug #1216342
1720         * src/hc08/peeph.def: added rules 2g - 2l for new conditional branches
1721
1722 2005-06-15 Raphael Neider <rneider AT web.de>
1723
1724         * src/pic16/NOTES: moved Vangelis from active developers to people to contact
1725         * device/include/pic16/{6520.h,8520.h}: fixed configuration bits
1726         * src/pic16/gen.c (): prevent iTemps from being considered to be in CODESPACE,
1727           fixes bug #1221120; for symbols in CODESPACE get number of bytes to read from
1728           OP_SYM_TYPE() instead of OP_SYM_ETYPE()
1729
1730 2005-06-06 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
1731
1732         * device/include/mcs51/reg764.h: Changed PB0 to PBO as requested by
1733           Marcel Telka in bug #1215704
1734
1735 2005-06-02 Slade Rich <slade_rich AT users.sourceforge.net>
1736
1737         * src/pic/pcode.c : Changed pseudo stack size to 15 to allow WSAVE to be
1738           located in shared memory bank.
1739
1740 2005-05-31 Raphael Neider <rneider AT web.de>
1741
1742         * src/pic16/{gen.c,genarith.c}: replaced sign-extension
1743           "CLRF, BTFSC <signbit>, DECF/COMF" with side-effect-free
1744           "CLRF, BTFSC <signbit>, SETF"; fixes "long>>9"
1745
1746 2005-05-27 Maarten Brock <sourceforge.brock AT dse.nl>
1747
1748         * device/lib/_strncpy.c: fixed the fix
1749
1750 2005-05-26 Raphael Neider <rneider AT web.de>
1751
1752         * src/pic16/glue.c (pic16_printIvalChar): fixed _constant_ string
1753           initializers with \0, bug #1208187
1754         * src/pic/glue.c (printIvalChar): fixed (non- and constant) string
1755           intializers with \0, bug #1208187
1756
1757 2005-05-26 Raphael Neider <rneider AT web.de>
1758
1759         * src/pic16/glue.c (pic16_printIvalChar): fixed string
1760           initializers with \0, bug #1208187
1761         * src/pic16/main.c (_process_pragma): added sanity checks
1762           for stack position and size, emit warnings when appropriate
1763
1764 2005-05-26 Maarten Brock <sourceforge.brock AT dse.nl>
1765
1766         * device/lib/_strncpy.c: fixed not filling with \0
1767
1768 2005-05-26 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
1769
1770         * src/SDCCast.c (funcOfType, funcOfTypeVarg, stringToSymbol,
1771           createFunction),
1772         * src/SDCC.y (external_definition, enumerator, parameter_declaration,
1773           compound_statement),
1774         * src/SDCCsymt.h,
1775         * src/SDCCsymt.c (addSymChain, processFuncArgs): fixed bug #1159134
1776
1777 2005-05-24 Raphael Neider <rneider AT web.de>
1778
1779         * src/pic16/glue.c (pic16_printGPointerType): fixed #1207796
1780
1781 2005-05-24 Raphael Neider <rneider AT web.de>
1782
1783         * device/include/pic16/pic18f{442,452,458}.h: fixed wrong
1784           TRISE definitions, closes bug #1162453
1785
1786 2005-05-22 Raphael Neider <rneider AT web.de>
1787
1788         * src/pic16/main.c (_process_pragma): check for missing
1789           arguments to pragmas code and udata
1790         * device/include/pic16/pic18f{2550,4331,4455,4520}.h:
1791           consistency fixes to match other headers (thanks to Jim Paris)
1792         * device/lib/pic16/libio/i2c.ignore: 18f4331 provides no I2C
1793
1794 2005-05-21 Maarten Brock <sourceforge.brock AT dse.nl>
1795
1796         * src/SDCCicode.c (isOperandEqual): fixed missing ;
1797
1798 2005-05-19 Maarten Brock <sourceforge.brock AT dse.nl>
1799
1800         * support/regression/tests/bug1198642.c: new test
1801         * src/SDCCicode.c (isOperandEqual): fixed bug 1198642
1802         * src/SDCCcse.c (findPrevIc): added comment, please have a look
1803         * support/scripts/resource.h,
1804         * support/scripts/resource.rc,
1805         * src/src.dsp: added sdcc.ico to project as icon for sdcc.exe
1806         * support/scripts/sdcc.ico: added 32x32 icon
1807
1808 2005-05-18 Raphael Neider <rneider AT web.de>
1809
1810         * device/lib/pic16/libdev/pic18f*.c,
1811         * device/include/pic16/pic18f*.h: updated "sfr" and "at X"
1812           keywords to "__sfr" and "__at (X)"
1813         * device/include/pic16/pic18fregs.h: added pic18f4520
1814         * src/pic16/pcode.c (pic16_pCode2str): fixed (?) bug
1815           #1203088 (MPLAB compatibility)
1816
1817 2005-05-17 Raphael Neider <rneider AT web.de>
1818
1819         * device/include/pic16/pic18f{2550,4331,4455,4520}.h: NEW
1820         * device/lib/pic16/libdev/pic18f{2550,4331,4455,4520}.c: NEW
1821         * device/lib/pic16/pics.all: added new devices
1822         * src/pic16/device.c: added support for pic18f4520
1823
1824 2005-05-16 Raphael Neider <rneider AT web.de>
1825         * src/pic16/gen.{c,h}: s/mov2f/pic16_mov2f made public
1826         * src/pic16/genarith.c (genAddLit): fixed bug 1202480
1827         * src/pic16/pcode.{c,h} (pic16_newpCodeOpBit_simple): NEW
1828           convenience function for bit access
1829
1830 2005-05-15 Maarten Brock <sourceforge.brock AT dse.nl>
1831
1832         * device/lib/printf_large.c: fixed bug 1193299
1833         * support/regression/tests/bug1057979.c: added test %3.3s
1834
1835 2005-05-15 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
1836
1837         * device/include/mcs51/8051.h,
1838         * device/include/mcs51/8052.h: made parseable with lint
1839         * device/include/mcs51/lint.h: added include file for (sp)lint
1840         * doc/sdccman.lyx: added doc about use of splint (syntax checking tool)
1841         * doc/cdbfileformat.lyx,
1842         * doc/test_suite_spec.lyx: hardcoded date to the date of last text change
1843
1844 2005-05-14 Raphael Neider <rneider AT web.de>
1845
1846         * device/lib/pic16/Makefile.common.in: add --optimize-df to OPT_FLAGS
1847         * device/lib/pic16/libc/stdlib/itoa.c (new)
1848         * device/lib/pic16/libc/stdlib/Makefile: have itoa.c built
1849         * device/lib/pic16/libio/Makefile: exclude subdir according to
1850           ${subdir}.ignore for certain PICs (lacking e.g. i2c)
1851         * device/lib/pic16/libio/i2c.ignore (new): pic18f1220 has no I2C support
1852         * src/pic16/gen.c (genFunction): prevent annoying warning
1853         * src/pic16/pcode.c: renamed stack_t to dynstack_t to prevent
1854           nameclashes on BeOS
1855         * support/cpp2/cppmain.c (cpp_output_string): new
1856         * support/cpp2/cpplib.c (_cpp_do__Pragma): fixed _Pragma(""),
1857           fixes bug 1116802
1858
1859 2005-05-13 Borut Razem <borut.razem AT siol.net>
1860
1861         * src/SDCCmain.c (linkEdit): fixed bug 1195202
1862
1863 2005-05-12 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
1864
1865         * .version: changed to version 2.5.1; back to bleeding edge development
1866
1867 2005-05-11 Borut Razem <borut.razem AT siol.net>
1868
1869         * doc/sdccman.lyx doc/cdbfileformat.lyx doc/test_suite_spec.lyx:
1870           generate PDF version 1.3 documents
1871
1872 2005-05-07 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
1873
1874         * .version: changed to version 2.5.0
1875
1876 2005-04-27 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
1877
1878         * doc/sdccman.lyx: updated weblinks, index and smaller updates
1879
1880 2005-04-26 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
1881
1882         * doc/sdccman.lyx: changed version 2.5.0, documented --std-c89,
1883         --std-sdcc89, --std-c99, --std-sdcc99, and the corresponding #pragmas, as
1884         well as many smaller updates.
1885         * .version: changed to version 2.5.0-pre1
1886
1887 2005-04-26 Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
1888
1889         * src/SDCCmain.c (setIncludePath): added port->target to SDCC_INCLUDE_NAME
1890
1891 2005-04-26 Maarten Brock <sourceforge.brock AT dse.nl>
1892
1893         * support/regression/tests/bug1185672.c: added
1894         * src/mcs51/gen.c (aopGetUsesAcc, genCpl, genAnd, genOr, genXor): fixed
1895           bug 1185672
1896         * src/mcs51/gen.c (genCall): added comments, made it look safer
1897         * src/mcs51/gen.c (genEndFunction): simplified
1898
1899 2005-04-25 Maarten Brock <sourceforge.brock AT dse.nl>
1900
1901         * src/mcs51/ralloc.c (serialRegAssign): fixed bug 1189609
1902
1903 2005-04-14 Borut Razem <borut.razem AT siol.net>
1904
1905         * fixed bug 1045046 - SIGSEGV with really simple code?:
1906           src/pic/pcode.c (pCodeInitRegisters)- pseudo stack size increased to 16
1907           src/pic/ralloc.c (typeRegWithIdx) - error message on pseudo stack overflow
1908
1909 2005-04-14 Borut Razem <borut.razem AT siol.net>
1910
1911         * src/pic16/gen.c (genInline), src/pic16/main.c (_process_pragma),
1912           src/pic16/device.h: temporarily disabled experimental #inline pragma
1913           for 2.5.0 release
1914
1915 2005-04-14 Maarten Brock <sourceforge.brock AT dse.nl>
1916
1917         * device/include/z80/stdio.h,
1918         * device/include/z80/string.h: removed these highly incomplete files so
1919           SDCC can use the default ones in device/include/
1920
1921 2005-04-14 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
1922
1923         * src/mcs51/gen.c (genEndFunction): removed unused variable to fix
1924         gcc warning.
1925         * device/lib/Makefile.in: default PORTINCDIR to the mcs51 subdir to
1926         fix sdcpp warnings.
1927
1928 2005-04-12 Maarten Brock <sourceforge.brock AT dse.nl>
1929
1930         * device/include/malloc.h: removed redundant __reentrant prototypes
1931         * device/lib/_mullong.c: added working xstack variant in asm (C version
1932           doesn't pass regression tests)
1933         * device/lib/bpx.c: used __data and made bpx char for mcs51
1934         * src/SDCCast.c (decorateType): removed unused GPTYPE_IDATA,
1935           (createFunction): fixed bug with xstackPtr
1936         * src/SDCCcse.c: corrected comments
1937         * src/SDCCopt.c (convertToFcall): fixed warning in MSVC,
1938           (killDeadCode, eBBlockFromiCode): removed unused code
1939         * src/SDCCsymt.h: removed unused GPTYPE_GPTR and GPTYPE_IDATA,
1940           corrected comments
1941         * src/mcs51/gen.c (aopForSym, aopPut, toBoolean, unsaveRegisters,
1942           assignResultValue, genCall, genFunction, genEndFunction, genAnd,
1943           genOr, genXor, genAddrOf): fixed several bugs concerning xstack
1944           (genModOneByte): fixed warning in MSVC
1945         * src/mcs51/main.c (): added comments
1946         * src/mcs51/peeph.def: changed 129 to 129.a, added 129.b, 129.c & 129.d
1947
1948 2005-04-12 Maarten Brock <sourceforge.brock AT dse.nl>
1949
1950         * src/SDCCmain.c (linkEdit): oops, changed one line too many
1951
1952 2005-04-11 Maarten Brock <sourceforge.brock AT dse.nl>
1953
1954         * src/SDCCmain.c (linkEdit): fixed bug with finding crt0.o for z80
1955
1956 2005-04-10 Vangelis Rokas <vrokas AT users.sourceforge.net>
1957
1958         * src/pic16/glue.c (printIvalChar): fixed bug when emitting
1959         characters arrays of larger size than the declared one.
1960
1961 2005-04-10 Borut Razem <borut.razem AT siol.net>
1962
1963         * src/pic/gen.c (genInline),
1964           src/pic/pcode.c (newpCodeAsmDir), (pCode2str),
1965           (genericPrint), (unlinkpCodeFromBranch), (compareLabel),
1966           (findNextInstruction), (findPrevInstruction),
1967           (findInstructionUsingLabel),
1968           src/pic/pcode.h: fixed bug #1164907 - Labels not being recognized
1969         * src/pic/pcode.c (findLabel): added missing '\n'
1970         * src/src.dsp: added SDCCdwarf2.c to the project
1971
1972 2005-04-09 Borut Razem <borut.razem AT siol.net>
1973
1974         * support/scripts/sdcc.nsi: added include/hc08/* h to NSIS setup
1975
1976 2005-04-08 Raphael Neider <rneider AT web.de>
1977
1978         * src/pic16/pcode.c: added helpers defmapInsertAfter (insert a new item
1979           into the chain after a given one) and mergeDefmapSymbols (combine
1980           defmap entries for each symbol per pcode)
1981         * (createDefmap): have defmap entries merged in the end
1982         * (defmapReplaceSymRef): split defmap entries covering two accesses to
1983           a symbol before replacing one access type's symbol, merge symbols in
1984           the end (replacement symbol might already have an entry)
1985         * (assignValnums): keep reference to written WREG intact
1986
1987 2005-04-08 Raphael Neider <rneider AT web.de>
1988
1989         * src/pic16/pcode.c (struct defmap_s): named anonymous union (for
1990           Alpha)
1991
1992 2005-04-08 Vangelis Rokas <vrokas AT users.sourceforge.net>
1993
1994         * src/pic16/pcode.c (pic16_get_op2): enlarged size of array b to 128
1995         bytes
1996
1997 2005-04-07 Raphael Neider <rneider AT web.de>
1998
1999         * device/include/pic16/usart.h: added compatibility defines for
2000           devices with more than one USART
2001         * device/include/pic16/pic18f[68][567]20.h: activated above defines
2002
2003 2005-04-07 Maarten Brock <sourceforge.brock AT dse.nl>
2004
2005         * device/lib/Makefile.in: updated for port specific include
2006
2007 2005-04-07 Maarten Brock <sourceforge.brock AT dse.nl>
2008
2009         * support/regression/ports/mcs51/spec.mk: added mcs51 include
2010
2011 2005-04-07 Maarten Brock <sourceforge.brock AT dse.nl>
2012
2013         * device/include/8051.h,
2014         * device/include/8052.h,
2015         * device/include/at89S8252.h,
2016         * device/include/at89c55.h,
2017         * device/include/at89x051.h,
2018         * device/include/at89x51.h,
2019         * device/include/at89x52.h,
2020         * device/include/mcs51reg.h,
2021         * device/include/reg51.h,
2022         * device/include/reg764.h,
2023         * device/include/regc515c.h,
2024         * device/include/sab80515.h: (re)moved these 12 files
2025         * device/include/mcs51/8051.h,
2026         * device/include/mcs51/8052.h,
2027         * device/include/mcs51/at89S8252.h,
2028         * device/include/mcs51/at89c55.h,
2029         * device/include/mcs51/at89x051.h,
2030         * device/include/mcs51/at89x51.h,
2031         * device/include/mcs51/at89x52.h,
2032         * device/include/mcs51/mcs51reg.h,
2033         * device/include/mcs51/reg51.h,
2034         * device/include/mcs51/reg764.h,
2035         * device/include/mcs51/regc515c.h,
2036         * device/include/mcs51/sab80515.h: and added them here
2037
2038 2005-04-06 Maarten Brock <sourceforge.brock AT dse.nl>
2039
2040         * device/include/stdarg.h: changed SDCC specific keywords to double
2041           underlined form.
2042         * device/include/stdint.h: changed intptr_t and uintptr_t for others than
2043           mcs51 and ds390.
2044         * device/include/hc08/mc68hc908gp32.h,
2045         * device/include/hc08/mc68hc908jb8.h,
2046         * device/include/hc08/mc68hc908jkjl.h,
2047         * device/include/hc08/mc68hc908qy.h: fixed comments
2048         * device/include/mcs51/README: updated
2049         * device/include/mcs51/c8051f120.h: added PINRSF
2050         * device/lib/pic16/libc/stdlib/crc16.c: fixed comments
2051         * src/pic16/pcode.c: MSVC6 doesn't accept declaring new variables
2052           amidst code. Also inline is not supported.
2053
2054 2005-04-06 Raphael Neider <rneider AT web.de>
2055
2056         * src/pic16/pcode.c (pic16_pCodeReplace): also update pcflow->end
2057         * (createDefmap): fixed CALLs to depend on FSR1 and RETLW to restore
2058           callers stack/frame pointers
2059
2060 2005-04-06 Vangelis Rokas <vrokas AT users.sourceforge.net>
2061
2062         * device/include/pic16/usart.h: added, missing in previous commit,
2063         * device/include/pic16/adc.h: fixed typo,
2064         * device/lib/pic16/libc/utils/cvtdec.S: added missing in previous
2065         commit,
2066         * device/lib/pic16/libc/stdlib/g_ftoa.S: modified to include
2067         <p18fxxx.inc>
2068         * device/lib/pic16/libc/stdio/streams.c: leave stdin, stdout
2069         uninitialized because a bug appears with gplink
2070         * device/lib/pic16/{some makefiles}: moved $(CSTD) from CFLAGS to
2071         COMPILE_FLAGS and added CPPFLAGS with -nostdinc because sdcpp
2072         complains for unrecognised option
2073
2074 2005-04-05 Raphael Neider <rneider AT web.de>
2075
2076         * src/pic16/gen.c (pic16_popCopyReg): made copying work for extended
2077           structs as well (using memcpy)
2078         * (genFunction): fixed comparison, used pCodeOpLabel to reduce warning
2079           on ISRs (GOTO has no label)
2080         * src/pic16/device.h: added OF_OPTIMIZE_DF
2081         * src/pic16/main.c: added compiler switch --optimize-df to enable the
2082           new data flow analysis/optimization
2083         * src/pic16/pcode.c: added (prototypes for and implementation of)
2084           dataflow analysis functions, fixed pCodeInstructions' inCond and
2085           outCond values, made RCALL a branch instruction
2086         * (pic16_unlinkpCode): keep C line if possible
2087         * (pic16_pCodeUnlink): removed cast on left side of assignment, have
2088           C line moved if possible
2089         * (pic16_getRegFrompCodeOp): NEW, improved version of...
2090         * (pic16_getRegFromInstruction,pic16_getRegFromInstruction2): changed
2091           to use new pic16_getRegFrompCodeOp (works for more SFRs)
2092         * (pic16_BuildFlow): fixed skip instructions with label (did not start
2093           new flow)
2094         * (pic16_getJumptabpCode): NEW, needed in...
2095         * (LinkFlow): fixed handling of jumptables, calls and conditional
2096           branches
2097         * (pic16_InsertCommentAfter): NEW
2098         * (pic16_pCodeReplace): made verbose and flow preserving
2099         * (AnalyzeFlow): added call to data flow analysis
2100         * src/pic16/pcode.h: added defmaps to pCodeFlow struct
2101         * src/pic16/pcodeflow.h: added PCC_STATUS to mean all STATUS bits
2102         * src/pic16/ralloc.c (packRegsForAssign): added return 1 in the end
2103
2104 2005-04-03 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
2105
2106         * src/SDCCast.c (decorateType): fixed bug #1105626
2107
2108 2005-04-02 Vangelis Rokas <vrokas AT users.sourceforge.net>
2109
2110         * device/include/asm/pic16/features.h,
2111         * pic18f*.h headers,
2112         * device/include/pic16/adc.h,
2113         * device/include/pic16/delay.h,
2114         * device/include/pic16/i2c.h,
2115         * device/include/pic16/malloc.h,
2116         * device/include/pic16/stdio.h,
2117         * device/include/pic16/stdlib.h,
2118         * device/include/pic16/string.h,
2119         * device/lib/pic16/libc/stdio/printf_tiny.c,
2120         * device/lib/pic16/libc/stdio/printf_small.c,
2121         * device/lib/pic16/libc/stdio/strmgpsim.c,
2122         * device/lib/pic16/libc/stdio/strmmssp.c,
2123         * device/lib/pic16/libc/stdio/strmusart.c,
2124         * device/lib/pic16/libc/stdio/vfprintf.c,
2125         * device/lib/pic16/libc/stdlib/ltoa.c,
2126         * device/lib/pic16/libc/stdlib/putchar.c,
2127         * device/lib/pic16/libc/stdlib/x_ftoa.c,
2128         * device/lib/pic16/libc/stdlib/memchrpgm.c,
2129         * device/lib/pic16/libc/stdlib/memchrram.c,
2130         * device/lib/pic16/libc/stdlib/memcpypgm2ram.c,
2131         * device/lib/pic16/libc/stdlib/memcpyram2ram.c,
2132         * device/lib/pic16/libio/adc/adcbusy.c,
2133         * device/lib/pic16/libio/adc/adcread.c,
2134         * device/lib/pic16/libio/adc/adcsetch.c,
2135         * device/lib/pic16/libio/usart/ubaud.c,
2136         * device/lib/pic16/libio/usart/ubusy.c,
2137         * device/lib/pic16/libio/usart/udrdy.c,
2138         * device/lib/pic16/libio/usart/uopen.c,
2139         * device/lib/pic16/libio/usart/uputc.c,
2140         * device/lib/pic16/libsdcc/gptr/gptrget1.c,
2141         * device/lib/pic16/libsdcc/gptr/gptrget2.c,
2142         * device/lib/pic16/libsdcc/gptr/gptrget3.c,
2143         * device/lib/pic16/libsdcc/gptr/gptrget4.c,
2144         * device/lib/pic16/libsdcc/gptr/gptrput1.c,
2145         * device/lib/pic16/libsdcc/gptr/gptrput2.c,
2146         * device/lib/pic16/libsdcc/gptr/gptrput3.c,
2147         * device/lib/pic16/libsdcc/gptr/gptrput4.c: modified all SDCC
2148         specific keywords to double underlined form,
2149         * device/lib/pic16/libc/Makefile.rules,
2150         * device/lib/pic16/libsdcc/Makefile.rules,
2151         * device/lib/pic16/libm/Makefile,
2152         * device/lib/pic16/libio/Makefile.rules: added CSTD macro in CFLAGS
2153         to compile with C standard set in Makefile.common
2154         * device/lib/pic16/libc/stdlib/Makefile: added new C sources
2155         rand.c and crc.c in compilation process,
2156         * device/lib/pic16/libsdcc/int/divuint.c,
2157         * device/lib/pic16/libsdcc/long/divulong.c: changed declaration of
2158         `c' from signed to unsigned,
2159         * device/lib/pic16/startup/crt0.c,
2160         * device/lib/pic16/startup/crt0i.c,
2161         * device/lib/pic16/startup/crt0iz.c: adopted to all SDCC specific
2162         keywords to double underlined form, bug fixes in _do_cinit function
2163         which prevented the correct initialization of the .idata segment,
2164         * src/pic16/pcoderegs.c (insideLRBlock): fixed a bug that caused the
2165         core to enter a infinite loop
2166         * device/lib/pic16/libc/stdlib/rand.c, crc.c: new files
2167
2168 2005-04-02 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
2169
2170         * src/SDCCicode.c (getArraySizePtr): fixed bug #1122171
2171
2172 2005-04-01 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
2173
2174         * device/include/Makefile.in: add support for hc08 subdirectory
2175         * device/include/hc08/: new subdirectory
2176         * device/include/hc08/mc68hc908jkjl.h: new header contributed by
2177         Lucas Loizaga, thanks!
2178         * device/include/hc08/mc68hc908qy.h,
2179         * device/include/hc08/mc68hc908gp32.h,
2180         * device/include/hc08/mc68hc908jb8.h: moved hc08 register defs to
2181         their own directory. Changed internal macro names to use the compiler
2182         reserved namespace. Changed SDCC specific keywords to double
2183         underlined form.
2184         * device/include/math.h,
2185         * device/include/malloc.h,
2186         * device/include/stdarg.h,
2187         * device/include/stdbool.h
2188         * device/include/string.h,
2189         * device/include/tinibios.h,
2190         * device/include/ds400rom.h,
2191         * device/include/8051.h,
2192         * device/include/8052.h,
2193         * device/include/80c51xa.h,
2194         * device/include/at89c55.h,
2195         * device/include/at89S8252.h,
2196         * device/include/at89x51.h,
2197         * device/include/at89x52.h,
2198         * device/include/ds80c390.h,
2199         * device/include/reg764.h,
2200         * device/include/regc515c.h,
2201         * device/include/sab80515.h,
2202         * device/include/mcs51/c8051f000.h,
2203         * device/include/mcs51/c8051f018.h,
2204         * device/include/mcs51/c8051f020.h,
2205         * device/include/mcs51/c8051f040.h,
2206         * device/include/mcs51/c8051f060.h,
2207         * device/include/mcs51/c8051f120.h,
2208         * device/include/mcs51/c8051f300.h,
2209         * device/include/mcs51/c8051f310.h,
2210         * device/include/mcs51/c8051f320.h,
2211         * device/include/mcs51/c8051f330.h,
2212         * device/include/mcs51/c8051f350.h,
2213         * device/include/z180.h: Changed SDCC specific keywords to double
2214         underlined form.
2215
2216 2005-03-31 Vangelis Rokas <vrokas AT users.sourceforge.net>
2217
2218         * src/pic16/device.c (Pics16[]): added devices 18F2550, 18F4331,
2219         18F4455,
2220         * (pic16_assignConfigWordValue): disable testing of configuration
2221         register value with config mask,
2222         * src/pic16/gen.c (pic16_testStackOverflow): prefix stack test
2223         function with port->fun_prefix,
2224         * (genFunction): when generating a naked interrupt function never
2225         create an absolute segment placed in interrupt vector address, place
2226         the actual interrupt function at IVA instead, when an interrupt
2227         function is generated with unspecified interrupt then do not create
2228         the absolute section,
2229         * (genGenPointerGet, genGenPointerSet, genPackBits): replace all
2230         code for generating a call to generic pointer get/put function with
2231         a call to function pic16_callGenericPointer(),
2232         * src/pic16/genutils.c (pic16_callGenericPointerRW): NEW, generates
2233         the call to the generic pointer get/put functions with prefixing the
2234         function name with port->fun_prefix,
2235         * src/pic16/glue.c (pic16glue): ifdef-out test of OF_LR_SUPPORT,
2236         * src/pic16/main.c (_process_pragma): prefix function with
2237         port->fun_prefix,
2238         * (_pic16_finaliseOptions): define macro __18Fxxxx macro when
2239         calling assembler, old 18Fxxxx macro is deprecated,
2240         * src/pic16/pcode.c (unlinkpCodeFromBranch): added PC_INLINE and
2241         PC_ASMDIR in while condition,
2242         * (findInstruction): add PC_ASMDIR in while condition,
2243         * (buildCallTree): prefix main with port->fun_prefix,
2244         * (pic16_pCode2str): fixed bug that didn't emit the memory access
2245         identifier for variable with banked access in instructions BTFSS,
2246         BTFSC, BCF, BSF, BTG
2247         * (AnalyzeFlow): moved call to OptimizepCode to pic16_AnalyzeBanking,
2248         * src/pic16/pcodepeep.c (pCodeOpCompare): increase size of b to 1024,
2249         * src/pic16/pcoderegs.c (pic16_pCodeRegoptimizeRegUsage): don't
2250         perform optimization when enviroment variable NO_REG_OPT is set,
2251         * (insideLRBlock): NEW, return 1 if register is inside an
2252         INF_LOCALREGS block,
2253         * (RemoveRegFromLRBlock): remove a register that is completely
2254         eliminated by register optimization, but it is still left in local
2255         register store/restore in/from stack block,
2256         * (Remove2pcodes): after removing register, check to see if it
2257         should be removed from local register store/restore in/from stack
2258         block,
2259         * src/pic16/ralloc.c (pic16_decodeOp): added decode for
2260         DUMMY_READ_VOLATILE,
2261
2262         * device/include/pic16/adc.h: minor prototype modifications and
2263         update,
2264         * device/include/pic16/malloc.h: added GPL notice various
2265         modifications,
2266         * device/include/pic16/stdint.h: NEW, standard header for ints
2267         * device/include/pic16/delay.h: NEW, header for delay functions,
2268         delay10tcy, delay100tcy, delay1ktcy, delay10ktcy, delay100ktcy,
2269         delay1mtcy,
2270         * device/include/pic16/signal.h: NEW, header providing helper macros
2271         for implementing signal handlers,
2272         * device/include/pic16/stdio.h: added prototypes for functions,
2273         printf, vprintf, sprintf, vsprintf, fprintf, vfprintf. Added
2274         prototypes for stdin and stdout, added macro PUTCHAR to
2275         automatically implement putchar function prototype,
2276         * device/include/pic16/usart.h: modified and updated USART library,
2277         * device/lib/pic16/libio/adc/,
2278         * device/lib/pic16/libio/i2c: some modifications to improve library
2279         performance,
2280         * device/lib/pic16/libc/stdio/: modifications for the new printf*
2281         family of functions,
2282         * device/lib/pic16/libc/stdlib/: various modifications in the malloc
2283         family of functions and other sources,
2284         * device/lib/pic16/libio/usart/: NEW, c sources for the usart module
2285         of the PIC18Fxx[28] devices,
2286         * device/lib/pic16/libc/delay/: NEW, c sources for the delay functions,
2287         * device/lib/pic16/libc/utils/: minor modifications in the .S sources,
2288         * device/lib/pic16/startup/{crt0i.c, crt0iz.c}: redesign of the
2289         _do_cinit function, because the previous failed when local variables
2290         where not placed in the same memory bank,
2291         * device/lib/pic16/libsdcc/char/: various modifications to improve
2292         library performance,
2293         * doc/sdccman.lyx: some reorganization of the PIC16 part, added many
2294         information on the new functions of the c library and more...
2295
2296 2005-03-28 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
2297
2298         * src/SDCCBBlock.c (iCodeBreakDown): fixed bug #1170212
2299
2300 2005-03-26 Raphael Neider <rneider AT web.de>
2301
2302         * src/pic16/gen.c (genSkipc): fixed semantics (execute branch
2303           if condition == CARRY)
2304         * (genCmp): adapted to new genSkipc semantics
2305         * src/pic16/genutils.c (pic6_genCmp_special): removed side effect
2306           on rIfx (genCmp was broken)
2307
2308 2005-03-26 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
2309
2310         * src/SDCCmain.c (setDefaultOptions, optionsTable[], parseCmdLine),
2311         * src/z80/main.c (_keywords[]),
2312         * src/SDCCglobal.h (struct options),
2313         * src/SDCC.y,
2314         * src/SDCC.lex (isTargetKeyword, doPragma, pragma_tbl[]): new pragmas
2315         to enable/disable SDCC and C99 extensions/keywords (std_c89, std_sdcc89,
2316         std_c99, std_sdcc99). Also, equivalent command line options (--std-c89,
2317         --std-sdcc89, --std-c99, --std-sdcc99). SDCC specific keywords are
2318         always available in leading double underscore form. The C99 support is
2319         mostly missing, but it's a start.
2320         * support/regression/tests/bug-227710.c: fixed nonconforming use of
2321         reserved identifier "__data".
2322
2323 2005-03-24 Maarten Brock <sourceforge.brock AT dse.nl>
2324
2325         * src/mcs51/peeph.def: fixed bug 1170013
2326
2327 2005-03-22 Maarten Brock <sourceforge.brock AT dse.nl>
2328
2329         * device/include/mcs51reg.h: fixed bug 842007
2330
2331 2005-03-21 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
2332
2333         * src/SDCCcflow.c (dfNumCompare): committed the wrong version of this
2334         last time.
2335
2336 2005-03-20 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
2337
2338         * src/port.h (struct PORT),
2339         * src/avr/ralloc.c (avr_assignRegisters),
2340         * src/avr/main.c,
2341         * src/ds390/ralloc.c (ds390_assignRegisters),
2342         * src/ds390/main.c,
2343         * src/hc08/ralloc.c (hc08_assignRegisters),
2344         * src/hc08/main.c,
2345         * src/mcs51/ralloc.c (mcs51_assignRegisters),
2346         * src/mcs51/main.c,
2347         * src/pic/ralloc.c (pic14_assignRegisters),
2348         * src/pic/main.c,
2349         * src/pic16/ralloc.c (pic16_assignRegisters),
2350         * src/pic16/main.c,
2351         * src/xa51/ralloc.c (xa51_assignRegisters),
2352         * src/xa51/main.c,
2353         * src/z80/ralloc.c (z80_assignRegisters),
2354         * src/z80/ralloc.h,
2355         * src/SDCCopt.c (eBBlockFromiCode, replaceRegEqv, killDeadCode),
2356         * src/SDCCcse.c (ifxOptimize, cseBBlock, cseAllBlocks),
2357         * src/SDCCcse.h,
2358         * src/SDCCdflow.c (computeDataFlow),
2359         * src/SDCCdflow.h,
2360         * src/SDCCloop.c (addDefInExprs, loopInvariants, loopOptimizations),
2361         * src/SDCCloop.h,
2362         * src/SDCCcflow.c (*),
2363         * src/SDCCcflow.h,
2364         * src/SDCCBBlock.c (iCodeBreakDown, dumpEbbsToFileExt, eBBWithEntryLabel),
2365         * src/SDCCBBlock.h (struct ebbIndex): new struct that keeps two copies
2366         of the eBBlock list, sorted by both bbnum and dfnum. (fixes bug with
2367         immedDom() returning wrong block; probably fixes bug #1160833)
2368
2369 2005-03-20 Borut Razem <borut.razem AT siol.net>
2370
2371         * support/scripts/inc2h.pl: WIN32 port
2372
2373 2005-03-19 Maarten Brock <sourceforge.brock AT dse.nl>
2374
2375         * device/lib/makefile.in: added abs.c and labs.c
2376
2377 2005-03-17 Maarten Brock <sourceforge.brock AT dse.nl>
2378
2379         * device/include/stdint.h: added
2380         * device/lib/abs.c: added
2381         * device/lib/labs.c: added
2382         * device/include/stdlib.h: added abs() and labs() prototypes
2383         * device/lib/libsdcc.lib: added abs and labs
2384         * device/include/float.h,
2385         * device/lib/_fsmul.c,
2386         * device/lib/printf_fast.c,
2387         * device/lib/printf_tiny.c: updated comments
2388
2389 2005-03-16 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
2390
2391         * src/SDCCicode.c (geniCodeSwitch, geniCodeJumpTable): fixed
2392         bug #1164313
2393
2394 2005-03-16 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
2395
2396         * src/SDCCcse.c (cseBBlock): retain assignment to self when volatile
2397         * src/SDCCast.c (isLoopCountable): fixed bug #1161985
2398
2399 2005-03-15 Maarten Brock <sourceforge.brock AT dse.nl>
2400
2401         * device/lib/printf_large.c: removed inline assembly for portability and
2402           readability. Use printf_fast if speed or size are more important.
2403         * src/pic16/gen.c: removed conditions around use of DEBUGpc
2404         * src/pic16/genutils.h: added define for DEBUGpc for MSVC
2405
2406 2005-03-15 Vangelis Rokas <vrokas AT users.sourceforge.net>
2407
2408         * src/pic16/genutils.c (pic16_genCmp_special): initialized offs to
2409         prevent compiler warning
2410
2411 2005-03-14 Vangelis Rokas <vrokas AT users.sourceforge.net>
2412
2413         * device/lib/pic16/startup/crt0i.c (_cinit): local variables where
2414         moved to level 0 and declared as static. Also they are explicit
2415         placed in access bank. This was necessery because some times they
2416         might cross memory bank boundaries. crt0iz.c is *NOT* updated!!!
2417         * src/pic16/device.h: added flag OPTIMIZE_CMP to enable some compare
2418         optimizations. Currently only compare to unsigned char is implemented,
2419         * src/pic16/gen.c: added fReturnIdx array,
2420         * (struct resolvedIfx) is moved to gen.h and made public,
2421         * (struct _G): added sregsAlloc and sregsAllocSet fields,
2422         * (aopForSym): added an optimization to directly store in stack of
2423         the operand of a SEND iCode,
2424         * (pic16_aopOp): don't return return registers as strings (AOP_STR)
2425         but as registers instead (AOP_REG) using the fReturnIdx array,
2426         * (pic16_freeAsmop): remove the freed register from the
2427         _G.sregsAlloc field,
2428         * (pic16_aopGet): in case AOP_STR, the compare to 'a' is changed to
2429         a compare of 'WREG',
2430         * (pic16_popGetTempRegCond): changed function prototype, now
2431         function takes also a bitVector argument v which holds the current
2432         set of registers that are allocated for stack access by aopForSym,
2433         registers allocated in aopForSym for accessing stack symbols are not
2434         any more part of the functions usedRegs field,
2435         * (genCall): some times aopOp is called for a stack variable to be
2436         send, aopForSym might perform the push, if this is true make sure
2437         that genCall doesn't push the variable twice by testing _G.resDirect,
2438         * (genFunction): changed testing for unspecified interrupt number
2439         from 256 to INTNO_UNSPEC,
2440         * modified selection scheme of frame pointer generation. Previously
2441         if function did use local registers a frame pointer was generated,
2442         now a frame pointer is generated only if function has arguments
2443         (that need PLUSW2 register access), or has stack arguments, or the
2444         compiler is not instructed to omit the frame pointer,
2445         * (genEndFunction): before restoring local registers that were saved
2446         in the function preamble, also restore the registers that *might*
2447         have been allocated for stack access,
2448         * (genRet): removed some old comments,
2449         * (genCmp, the active (RN's) version): added a call to the
2450         pic16_genCmp_special function to perform the compare with a more
2451         robust and optimized way,
2452         * (genInline): a feature has been added in inline code generation,
2453         which allows a wildcard variable substitution when writing inline
2454         assembly. Code is incomplete and experimental therefore undocumented,
2455         * (genCast): changed order of aopOp for result and right to allow
2456         aopForSym to directly load the result if possible,
2457         * src/pic16/genutils.c (selectCompareOp, pic16_genCmp_special): NEW,
2458         perform an optimized compare on some selected special occasions,
2459         * src/pic16/genutils.h: declaration of resolvedIfx structure from gen.c,
2460         * src/pic16/glue.c (pic16createInterrupVect): make sure we never
2461         generate an IVT any more,
2462         * src/pic16/main.c (pic16_optionsTable): added command line option
2463         --optimize-cmp,
2464         * (_pic16_initPaths): when calling C preprocessor define pic18fXXXX
2465         macro too, when calling assembler define pic18fXXXX *and* __18Fxxxx
2466         macros,
2467         * src/pic16/NOTES: Raphael Neider added in list of active developers
2468         * src/pic16/pcode.c (OPT_TYPE_STR): added strings jumptable_begin and
2469         jumptable_end to prevent bug #,
2470         * (pic16_pciADDWFC, ADDFWC, COMF, CLRF): added some missing flags in
2471         inCond and outCond fields,
2472         * src/pic16/pcoderegs.c (pCodeOptime2pCodes): add a fix for bug #,
2473         * src/pic16/ralloc.c (serialRegAssign): explicit set willCS to 0 to
2474         turn off register spilling,
2475         * (packRegsForOneUse): synced with other ports' versions although it
2476         is not used currently,
2477         * (pic16_packRegisters): added an optimization while reading
2478         structure bitfields, some registers may be saved (malloc code is
2479         decreased by 80 bytes)
2480
2481 2005-03-12 Vangelis Rokas <vrokas AT users.sourceforge.net>
2482
2483         * src/SDCCcse.c (cseBBlock): inside 'do operand lookup' loop test if
2484         left is a bitfield, if yes, then don't optimize assignment. Perhaps
2485         this can be optimized more?
2486
2487 2005-03-10 Raphael Neider <rneider AT web.de>
2488
2489         * src/pic16/gen.c (pic16_loadFSR0, genPackBits, genUnpackBits,
2490           genNearPointerGet): (hopefully) fixed access to bitfields via
2491           pointers (p->bitN = x; and x = p->bitN; failed)
2492
2493 2005-03-09 Paul Stoffregen <paul AT pjrc.com>
2494
2495         * device/lib/printf_fast.c: fix leading zero format, eg "%02d"
2496
2497 2005-03-09 Raphael Neider <rneider AT web.de>
2498
2499         * src/SDCCopt.c (killDeadCode): fixed bug #1156016
2500
2501 2005-03-06 Maarten Brock <sourceforge.brock AT dse.nl>
2502
2503         * src/SDCCicode.h: moved CRITICAL and ENDCRITICAL from SKIP_IC2 to SKIP_IC
2504         * src/mcs51/ralloc.c (willCauseSpill): added check for REG_BIT type,
2505           (regTypeNum): set REG_BIT type if necessary
2506         * src/mcs51/ralloc.h: added define REG_BIT, used to fix bug 1144613
2507         * support/regression/tests/critical.c: check bug 1144613
2508
2509 2005-03-02 Raphael Neider <rneider AT web.de>
2510
2511         * src/pic16/gen.c (genRightShiftLiteral): fixed bug #1154256
2512
2513 2005-02-26 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
2514
2515         * src/avr/ralloc.c (serialRegAssign),
2516         * src/ds390/ralloc.c (serialRegAssign),
2517         * src/hc08/ralloc.c (serialRegAssign),
2518         * src/mcs51/ralloc.c (serialRegAssign),
2519         * src/pic/ralloc.c (serialRegAssign),
2520         * src/pic16/ralloc.c (serialRegAssign),
2521         * src/xa51/ralloc.c (serialRegAssign),
2522         * src/z80/ralloc.c (serialRegAssign): fixed bug #1105154
2523
2524 2005-02-22 Maarten Brock <sourceforge.brock AT dse.nl>
2525
2526         * src/SDCCast.c (decorateType): fixed bug 1124787
2527
2528 2005-02-20 Hubert Sack <sack AT digiplan.de>
2529         committed by Frieder Ferlemann <Frieder.Ferlemann AT web.de>
2530
2531         * src/mcs51/peeph.def: added peepholes 3.h-k and 132.a-f from
2532         patch #1121755
2533
2534 2005-02-20 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
2535
2536         * src/SDCCpeeph.def: new keyword "labelRefCountChange" which allows peepholes
2537         to keep the correct label reference count when adding/removing references
2538         to labels. A peephole file using this is appended to patch #1144962.
2539
2540 2005-02-14 Raphael Neider <rneider AT web.de>
2541
2542         * device/lib/pic16/libc/string/memccpy.c: changed 3rd argument to char
2543         * src/SDCC.lex (process_pragma): fixed to make disable_warning work for PIC16
2544         * src/pic16/gen.c (aopForSym, calls to pic16_aopOp): prevent unneccessary
2545           retrievals of result operand's value on assignment
2546
2547 2005-02-13 Vangelis Rokas <vrokas AT otenet.gr>
2548
2549         * device/include/pic16/string.h: modified prototype for memccpy()
2550         to memccpy(void *, void *, char, size_t)
2551         * src/pic16/gen.c (genFunction, genEndFunction): reenable if-case to
2552         check whether to omit frame pointer or not,
2553         * (genInline): convert all occurences of "\n" to LF in inline
2554         assembler blocks, this helps formatting the inline text,
2555         * (pic16_loadFSR0): modified prototype,
2556         * (genNearPointerGet, genNearPointerSet): reorganization of code,
2557         removed some 8051 legacy code,
2558         * (genPackBits): enabled handling bitfields exceeding one byte in size,
2559         * src/pic16/ralloc.c (pic16_assignRegisters): clear dynrIdx variable
2560         before allocating temporary registers in functions,
2561
2562 2005-02-11 Maarten Brock <sourceforge.brock AT dse.nl>
2563
2564         * support/regression/tests/bitvars.c: corrected the "fix"
2565
2566 2005-02-10 Maarten Brock <sourceforge.brock AT dse.nl>
2567
2568         * support/regression/tests/bitvars.c,
2569         * support/regression/tests/bitwise.c,
2570         * support/regression/tests/rotate.c: "fixed" problems on Alpha
2571
2572 2005-02-10 Raphael Neider <rneider AT web.de>
2573
2574         * src/pic16/pcode.c (assignToSameBank) : fixed cast to pointer of
2575           different size for Alpha
2576         * src/pic16/gen.c (genCmpEq) : improved compare with 0
2577
2578 2005-02-09 Raphael Neider <rneider AT web.de>
2579
2580         * src/SDCC.lex(doPragma) : save and restore warning options as well
2581           (also added new stack plus clone- and copyAndFreeSDCCERRG())
2582         * have #pragma less_pedantic set the errorlevel to WARNING
2583           (fixes #1117001)
2584         * (cloneOptimize) : fixed wrong malloc's size
2585         * support/Util/SDCCerr.[ch] : made SDCCERRG globally accessible to
2586           facilitate correct handling of #pragma (save|restore)
2587
2588 2005-02-09 Maarten Brock <sourceforge.brock AT dse.nl>
2589
2590         * src/mcs51/gen.c: removed non-standard C nameless struct/union
2591
2592 2005-02-04 Slade Rich <slade_rich AT users.sourceforge.net>
2593
2594         * src/pic/gen.c : Fix for bugs #1080519 & #1115662.
2595
2596 2005-02-03 Maarten Brock <sourceforge.brock AT dse.nl>
2597
2598         * device/include/mcs51/c8051f120.h: added declarations for sbit port 2,3&4
2599
2600 2005-02-02 Raphael Neider <rneider AT web.de>
2601
2602         * src/SDCCast.c (processParms): disabled W_NONRENT_ARGS for pic16 port
2603         * src/pic16/gen.c (aopForSym): reenabled special case for function pointers
2604         * (pic16_storeForReturn): fixed to allow returning function pointers
2605         * (genPackBits): improved accessing full bytes, implemented for GPOINTERs
2606         * device/include/pic16/{stddef.h,stdbool.h}: added
2607
2608 2005-02-02 Maarten Brock <sourceforge.brock AT dse.nl>
2609
2610         * device/include/mcs51/c8051f040.h: added define CPT2_PAGE
2611
2612 2005-02-01 Slade Rich <slade_rich AT users.sourceforge.net>
2613
2614         * src/pic16/pic16.dsp : Added file graph.c to make it compile under windows
2615         * src/pic16/Makefile.bcc : Do not use this file but added file graph.c as it
2616          appeared to be required
2617
2618 2005-01-31 Borut Razem <borut.razem AT siol.net>
2619
2620         * support/scripts/sdcc.nsi: added include/asm/ds390, include/asm/mcs51,
2621           include/mcs51 and include/z80 directories to the package
2622
2623 2005-01-26 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
2624
2625         * src/hc08/gen.c (genFunction): fixed bug #1112752
2626
2627 2005-01-30 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
2628
2629         * src/mcs51/peeph.def: adapted peephole 258.x to changed gen.c (genAnd)
2630
2631 2005-01-29 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
2632
2633         * src/mcs51/gen.c (genAnd): accessing LSB/MSB by rotating acc
2634
2635 2005-01-29 Maarten Brock <sourceforge.brock AT dse.nl>
2636
2637         * device/include/Makefile.in: create/copy mcs51 and z80 include subdirs
2638
2639 2005-01-27 Maarten Brock <sourceforge.brock AT dse.nl>
2640
2641         * device/include/c8051fxxx.h: removed these 6 files
2642         * device/include/mcs51/c8051fxxx.h: added these 11 new files
2643
2644 2005-01-26 Raphael Neider <rneider AT web.de>
2645
2646         * src/pic16/gen.c (genAssign): fixed assignment from longs
2647           in codespace (were cut to three bytes)
2648         * (genDummyRead): implemented (except for CODESPACE...),
2649           fixed bug #1108575
2650         * src/pic16/glue.c (emitStatistics): beautified
2651         * device/lib/pic16/libm/Makefile: added include path
2652
2653 2005-01-26 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
2654
2655         * src/z80/gen.c (aopPut): fixed bug #1103902
2656
2657 2005-01-25 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
2658
2659         * device/lib/expf.c: fixed bug #1095792
2660
2661 2005-01-24 Vangelis Rokas <vrokas AT otenet.gr>
2662
2663         * device/lib/pic16/libm: added Math library sources
2664
2665 2005-01-24 Raphael Neider <rneider AT web.de>
2666
2667         * src/pic16/pcode.h: added second memory operand to pCodeOpReg
2668           to enable upcast to pCodeOpReg2 (there is no type tag to
2669           differenciate the two and pic16_popGet2p cast into PCOR2)
2670         * src/pic16/main.c (_process_pragma): fixed another malloc bug
2671           (sizeof(sectNames) changed to sizeof(sectName))
2672           Both patches fix segfaults under MinGW.
2673
2674 2005-01-23 Raphael Neider <rneider AT web.de>
2675
2676         * src/pic16/{device.c,pcode.c}: s/free/Safe_free/g for
2677           Safe_[mc]?alloc()'ed variables
2678         * src/pic16/gen.c (pic16_aopOp,pic16_popGet): added handling
2679           of (byte sized) temporaries (assign them to WREG for now)
2680         * src/pic16/main.c (_process_pragma): fixed nasty malloc bug
2681           (used sizeof(set *sectSyms) instead of sizeof(struct sectSym)),
2682           this might fix SIGSEGVs on MinGW...
2683         * src/SDCCopt.c (killDeadCode): restored original behaviour
2684           (volatile operands might get thrown away though)
2685
2686 2005-01-23 Vangelis Rokas <vrokas AT otenet.gr>
2687
2688         * src/pic16/gen.c: fixed bug #1106975,
2689         * src/pic16/gen.c: fixed possible bug #1102572, now during TOS
2690         pointer update, INTCON is saved, global interrupts are disabled and
2691         restored after updateing TOS.
2692         * src/SDCC.y, src/SDCC.lex, src/SDCCsymt.c, src/SDCCsymt.h:
2693         * added function attribute 'shadowregs' to take advantage of shadow
2694         registers,
2695         * added function attribute 'wparam' as an alternative to the wparam
2696         pragma,
2697         * support/Utils/SDCCerr.[ch]: added error E_SHADOWREGS_NO_ISR when
2698         user declares a non-ISR function as 'shadowregs',
2699         * doc/sdccman.lyx: updated to reflect recent changes of pic16 port
2700
2701 2005-01-22 Vangelis Rokas <vrokas AT otenet.gr>
2702
2703         * .version: bumped version number to 2.4.8
2704         * device/lib/pic16/pics.all: list of PIC18F devices supported by
2705         pic16 port,
2706         * device/lib/pic16/libio/i2c/: I2C module support library,
2707         * device/include/pic16/i2c.h: I2C support library header,
2708         * device/lib/pic16/libc/stdio/: standard IO support sources,
2709         * (printf_small.c): printf_small() source, supports float print,
2710         * (printf_tiny.c): printf_tiny() source, does not support floats,
2711         * device/lib/pic16/Makefile.common.in: added OPT_FLAGS macro to
2712         enable global optimizations for entire library source, other
2713         Makefiles in the source tree are also modified to reflect this,
2714         * device/lib/pic16/libc/stdlib/putchar.c (putchar): dummy putchar()
2715         function,
2716         * doc/sdccman.lyx: updated to reflect new changes,
2717         * src/pic16/gen.c (aopForSym): don't handle sym->iaccess in
2718         sym->onStack if-case,
2719         * src/pic16/main.c (_pic16_keywords): commented out keywords bit,
2720         sbit, idata, _idata, xdata, _xdata,
2721         * added pragma library, to link an external library, (see doc),
2722         * removed command line options, --pomit-config-words, --pomit-ivt,
2723         --pleave-reset-vector,
2724         * (pic16_finaliseOptions): when define macro SDCC_MODEL_{SMALL/LARGE}
2725         when calling assembler to reflect memory model used, also define
2726         macro STACK_MODEL_{SMALL/LARGE} when compiling and assembling to
2727         reflect stack model used,
2728         * src/pic16/ralloc.c (pic16_allocDirReg): when operand is allocated
2729         on stack return NULL,
2730
2731 2005-01-22 Daniel Winkler <post AT danielwinkler.de>
2732
2733         * src/SDCCopt.c (killDeadCode): do not throw iCodes away if one
2734           of the operands is volatile. Fixes #1020220
2735
2736 2005-01-22 Daniel Winkler <post AT danielwinkler.de>
2737
2738         * src/pic16/pcoderegs.c (pCodeOptime2pCodes): reenabled optimization
2739         * (OptimizeRegUsage): make sure that there is really no other flow where
2740           the first pCode is used
2741
2742 2005-01-22 Raphael Neider <rneider AT web.de>
2743
2744         * src/pic16/pcoderegs.c (pCodeOptime2pCodes): disabled optimization
2745           to fix #1106967 (pCode->seq are not set up correctly)
2746
2747 2005-01-22 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
2748
2749         * src/SDCCglue.c (glue): make sure code area is declared before the
2750         static initialization area.
2751
2752 2005-01-21 Raphael Neider <rneider AT web.de>
2753
2754         * device/lib/Makefile.in: fixed test for pic16 install dir
2755         * device/lib/pic16/*/Makefile*: modified compile flags to enable
2756           optimizations
2757         * doc/sdccman.lyx: updated banksel optimization, removed --flr-support and
2758           added --optimize-goto compiler switch and pragma wparam documentation
2759         * src/pic16/pcode.c (pic16_OptimizeBanksel): removed statistics dump
2760         * src/pic16/pcodepeep.c (pic16_pCodeOpCopy): fixed copying of WREG, PRODL
2761           and PRODH closing bug #1071770 (peephole optimizer)
2762
2763 2005-01-19 Raphael Neider <rneider AT web.de>
2764
2765         * src/SDCCglobl.h: ensure that PATH_MAX >= 2048 to guarantee
2766           cmdLine buffers (used when calling sdcpp...) are large enough
2767           (MAX_PATH=256 truncates arguments leading to system halts when
2768           used in MinGW...)
2769         * src/pic16/gen.c (pic16_sameRegs): relaxed size criterion
2770         * (genUminus): rewritten to for efficiency
2771         * (genNearPointer[GS]et): enforce reloading of FSR0 (was still
2772           used uninitialized in some cases)
2773         * (genCast): upcasting a 16bit int to a 24bit GPOINTER may not
2774           copy the third byte from the int -- now assumes 0x80 (data memory)
2775         * src/pic16/genarith.c (pic16_genPlus): fixed bug when swapping
2776           operands (genAddLit expects the iCode's operands to swapped as
2777           well), fixed leftover bytes (crashed for short left operands)
2778         * (pic16_genMinusDec): performance improvements, removed false
2779           PIC14 emitSKPNCs
2780         * (pic16_genMinus): fixed to cope with differently sized operands
2781         * src/pic16/glue.c (pic16_glue): added new banksel optimization
2782           for --obanksel > 1
2783         * src/pic16/pcode.c: implemented (first phase of) banksel optimization
2784         * src/pic16/graph.[ch]: implementation of directed graphs, used by
2785           new banksel optimization
2786         * src/pic16/pcoderegs.c (pCodeRegMapLiveRangesInFlow): prevented
2787           analysis for temporary registers (segfaults...)
2788         * src/pic16/peeph.def: added rule
2789
2790 2005-01-18 Vangelis Rokas <vrokas AT otenet.gr>
2791
2792         * device/lib/pic16/libc/stdlib/x_ftoa.c: it defines x_ftoa function
2793         which converts a float number to its ASCII representation
2794         * device/lib/pic16/libc/utils/cnvfrac.S,cnvint.S: support
2795         functions to convert the fractional and integer part of a float to ASCII,
2796         * device/lib/pic16/libc/stdlib/(calloc.c,free.c, malloc.c,
2797         realloc.c): added _MALLOC_SPEC to explicit place variables in data
2798         ram
2799         * device/include/asm/pic16/features.h: added _CODE, _DATA, _AUTOMEM,
2800         _STATMEM macros,
2801         * device/include/pic16/adc.h: added GPL info,
2802         * src/pic16/gen.c (genIfxpCOpJump): perform an genIfxJump but using
2803         a pCodeOp as tested operand,
2804         * (genNearPointerGet): optimized bit testing, does not use
2805         intermediate register for bit value, test directly instead with
2806         BTFSS, BTFSC, works only for single bits,
2807         * (genpic16Code): dump the name of the iCode in the asm,
2808         * src/pic16/ralloc.c (decodeOp): removed static declaration and
2809         renamed to pic16_decodeOp,
2810         * (serialRegAssign): do not allocate a temporary register for iCode
2811         sequences that test a single bit for 1/0
2812
2813 2005-01-12 Vangelis Rokas <vrokas AT otenet.gr>
2814
2815         * src/pic16/pcode.[ch]: introduced pic16_stackpnt_*,
2816         pic16_framepnt_*, pic16_stack_*, pic1_frame_* pointer variables to
2817         access stack and frame pointers. They are initially assigned to
2818         point at pic16_pc_fsr1[lh] and pic16_pc_fsr2[lh] variables and other
2819         accessing SFRs. Updated all occurences of modification of stack or
2820         frame pointer in gen.c and pcode.c,
2821         * src/pic16/ralloc.c (serialRegAssign): fixed two bugs with
2822         assigning of a literal value to pointers,
2823         * src/pic16/main.c (pic16_finiliseOptions): set pre-processor define
2824         flag STACK_MODEL_SMALL or STACK_MODEL_LARGE according to the model
2825         selected
2826
2827 2005-01-11 Vangelis Rokas <vrokas AT otenet.gr>
2828
2829         * doc/sdccman.lyx: update documentation about stack pragma, added
2830         some info for stack memory models
2831
2832 2005-01-08 Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
2833
2834         * src/pic16/gen.c (DEBUGpc): MSVC 6 does not support macro variable arguments
2835
2836 2005-01-08 Raphael Neider <rneider AT web.de>
2837
2838         * src/pic16/device.c (pic16_dump_usection): changed naming scheme for
2839           udata sections to fix bug #1097823
2840
2841 2005-01-05 Raphael Neider <rneider AT web.de>
2842
2843         * src/pic16/gen.c (genGenericShift): added handling of differently
2844           sized left operand and result
2845
2846 2005-01-04 Raphael Neider <rneider AT web.de>
2847
2848         * src/pic16/gen.c (genIfxJump): fixed inverted skips on CARRY
2849         * (genIfx): fixed (?) read from uninitialized SPIL_LOC (now assumes CARRY
2850           to hold the condition bit)
2851         * added new version of genCmp (old code available via #define)
2852         * added new version of genShiftLeft/genShiftRight in a generic
2853           way, now supports shifting by negative values
2854         * (genLeftShiftLiteral, genRightShiftLiteral): use absolute value of
2855           shiftCount (expected by genGenericShift)
2856         * src/pic16/genarith.c (genPlus): added code for adding CARRY+literal
2857         * src/pic16/pcode.c (pic16_OptimizeJumps): removed annoying statistics
2858           dump
2859         * (pic16_newpCodeOpLit): changed to cast to unsigned char (as e.g. -32766
2860           is an invalid literal too...)
2861
2862 2005-01-04 Vangelis Rokas <vrokas AT otenet.gr>
2863
2864         * src/pic16/gen.c (aopForSym, genEndFunction): applied some fixes
2865         from Raphael Neider,
2866         * src/pic16/pcode.c (pic16_newpCodeOpLit): removed casting to char
2867         for 8-bit literals. This fixes some literal operands which are sign
2868         extended to 16-bits ints when instruction needs only 8-bits.
2869
2870 2004-12-31 Paul Stoffregen <paul AT pjrc.com>
2871
2872         * device/lib/logf.c: added mcs51 assembly version
2873         * device/lib/expf.c: added mcs51 assembly version
2874         * device/lib/_logexpf.c: new shared asm code for expf and logf
2875         * device/include/math.h: add defines for assembly math library
2876         * device/lib/Makefile.in: build new _logexpf.c
2877         * device/lib/libfloat.lib: use new _logexpf.c
2878
2879 2004-12-29 Slade Rich <slade_rich AT users.sourceforge.net>
2880
2881         * src/pic/device.c
2882         * src/pic/pcode.c : adjusted internal stack and pre-allocated registers for
2883           device types which have less than 0x7f registers.
2884
2885 2004-12-29 Slade Rich <slade_rich AT users.sourceforge.net>
2886
2887         * src/pic/genarith.c : Fixed problem with subtraction where the result would not be updated when borrowing.
2888
2889 2004-12-28 Paul Stoffregen <paul AT pjrc.com>
2890
2891         * device/lib/printf_fast.c: only build on supported arch.
2892         * device/lib/printf_tiny.c: only build on supported arch.
2893         * device/lib/printf_fast_f.c: only build if asm float lib
2894         * device/lib/_fsget1arg.c: only build if asm float lib
2895         * device/lib/_fsget2args.c: only build if asm float lib
2896         * device/lib/_fsnormalize.c: only build if asm float lib
2897         * device/lib/_fsreturnval.c: only build if asm float lib
2898         * device/lib/_fsrshift.c: only build if asm float lib
2899         * device/lib/_fsswapargs.c: only build if asm float lib
2900         * device/include/stdio.h: don't provide print_fast,
2901           print_fast_f, print_tiny prototypes if --xstack used
2902
2903 2004-12-28 Maarten Brock <sourceforge.brock AT dse.nl>
2904
2905         * device/lib/sincosf.c (sincosf): don't invert bit/bool by ~
2906         * support/regression/ports/mcs51-stack-auto/spec.mk: added new _fs.. files
2907           to the SOURCES
2908
2909 2004-12-28 Paul Stoffregen <paul AT pjrc.com>
2910
2911         * device/lib/printf_fast_f.c: same as printf_fast, but
2912           with floating point enabled
2913         * device/lib/printf_fast.c: minor tweaks
2914         * device/include/stdio.h: add printf_fast_f
2915
2916 2004-12-27 Paul Stoffregen <paul AT pjrc.com>
2917
2918         * src/SDCCmain.c: make --float-reent default for mcs51
2919         * device/lib/_fsadd.c: added mcs51 assembly version
2920         * device/lib/_fssub.c: added mcs51 assembly version
2921         * device/lib/_fsmul.c: added mcs51 assembly version
2922         * device/lib/_fsdiv.c: added mcs51 assembly version
2923         * device/lib/_fseq.c: added mcs51 assembly version
2924         * device/lib/_fsneq.c: added mcs51 assembly version
2925         * device/lib/_fsgt.c: added mcs51 assembly version
2926         * device/lib/_fslt.c: added mcs51 assembly version
2927         * device/lib/_fscmp.c: shared code for fseq,fsgt,fslt,fsneq
2928         * device/lib/Makefile.in: add _fscmp to build
2929         * device/lib/libfloat.lib: add _fscmp to build
2930
2931 2004-12-27 Paul Stoffregen <paul AT pjrc.com>
2932
2933         * device/lib/_fs2slong.c: added mcs51 assembly version
2934         * device/lib/_fs2sint.c: added mcs51 assembly version
2935         * device/lib/_fs2schar.c: added mcs51 assembly version
2936         * device/lib/_fs2ulong.c: added mcs51 assembly version
2937         * device/lib/_fs2uint.c: added mcs51 assembly version
2938         * device/lib/_fs2uchar.c: added mcs51 assembly version
2939         * device/lib/_slong2fs.c: added mcs51 assembly version
2940         * device/lib/_sint2fs.c: added mcs51 assembly version
2941         * device/lib/_schar2fs.c: added mcs51 assembly version
2942         * device/lib/_ulong2fs.c: added mcs51 assembly version
2943         * device/lib/_uint2fs.c: added mcs51 assembly version
2944         * device/lib/_uchar2fs.c: added mcs51 assembly version
2945         * device/include/float.h: added #define to select asm vs c
2946
2947 2004-12-26 Paul Stoffregen <paul AT pjrc.com>
2948
2949         * device/lib/printf_fast.c: improvements to float output
2950         * device/include/float.h: add defines for assembly float library
2951         * device/lib/_fsget1arg.c: receive 1 float arg
2952         * device/lib/_fsget2args.c: receive 2 float args (reentrant)
2953         * device/lib/_fsnormalize.c: normalize a float
2954         * device/lib/_fsreturnval.c: return float, various helper routines
2955         * device/lib/_fsrshift.c: right shift a float's mantissa
2956         * device/lib/_fsswapargs.c: swap 2 floats
2957         * device/lib/Makefile.in: build these 6 new files for mcs51
2958         * device/lib/libfloat.lib: add these 6 files to the library
2959
2960 2004-12-26 Borut Razem <borut.razem AT siol.net>
2961
2962         * sim/ucsim/avr.src/arith_inst.cc: fixed bug #1088372- savr is not
2963           built by gcc 3.4.2
2964
2965 2004-12-25 Paul Stoffregen <paul AT pjrc.com>
2966
2967         * device/lib/printf_tiny.c: printf for mcs51 in only 267 bytes,
2968           and fully reentrant and register bank neutral.
2969         * device/lib/printf_fast.c: added float (not enabled by default),
2970           added compact/slower integer (also not enabled by default),
2971           improved size/speed of fast integer code, other minor changes
2972         * device/include/stdio.h, device/lib/Makefile.in,
2973           device/lib/libsdcc.lib: integrate printf_tiny into mcs51 build
2974
2975 2004-12-24 Maarten Brock <sourceforge.brock AT dse.nl>
2976
2977         * src/pic16/pcode.c: declaring variables other than at the start of a
2978           block is not supported in C by VC6.
2979
2980 2004-12-22 Vangelis Rokas <vrokas AT otenet.gr>
2981
2982         * applied a previous patch from Raphael Neider that wasn't included
2983         in the previous commits, which fixes infinite loops within jumptable
2984         improvements,
2985         * made some fixes that previous patches introduced
2986
2987 2004-12-21 Vangelis Rokas <vrokas AT otenet.gr>
2988
2989         * src/pic16/gen.c (pic16_aopGet): applied fix from Raphael Neider
2990         that fixes an issue with AOP_PCODE asmop's offset,
2991         * (pic16_popCopyReg): update instance field too,
2992         * (mov2w): modified to pic16_mov2w because it conflicts with mov2w
2993         function of pic port,
2994         * (genCmp, genAnd, genAssign),
2995         * src/pic16/genarith.c (genAddLit): some fixes from Raphael Neider,
2996
2997 2004-12-20 Vangelis Rokas <vrokas AT otenet.gr>
2998
2999         * src/SDCCast.c (gatherAutoInit): allow pic16 to emit static
3000         variables initial values to idata section,
3001         * src/SDCCicode.c (geniCodeCall): patch from ### to fix unreferenced
3002         variables in some functions. This utilizes parmBytes field of iCode
3003         structure to hold the offset of the variable in stack. (might be
3004         able to use the stack field too?)
3005         * applied patch from Raphael Neider # ### , # ###
3006         * src/pic16/glue.c (pic16emitRegularMap): fix to print static
3007         variable initial values in idata section,
3008         * src/pic16/ralloc.c (pic16_allocDirReg): don't allocate register
3009         for static variables with initial value
3010         * src/device/lib/pic16/libsdcc/float/ulong2fs.c (__ulong2fs):
3011         applied fix in while loop from Raphael Neider.
3012
3013 2004-12-19 Maarten Brock <sourceforge.brock AT dse.nl>
3014
3015         * src/ds390/gen.c (genCpl): fixed bit=~(char/bit) bugs, added warning
3016         * src/ds390/main.c (_ds390_regparm): don't pass bit params in registers
3017         * src/ds390/ralloc.c (serialRegAssign): spill bits
3018         * src/mcs51/gen.c (genCpl): fixed bit=~(char) bugs, added warning
3019         * support/Util/SDCCerr.c,
3020         * support/Util/SDCCerr.h: added warning W_COMPLEMENT for using bit=~(bit)
3021         * support/regression/tests/bitvars.c: added tests for bitwise complement(~)
3022         * support/regression/tests/bitwise.c: added test for bitwise complement(~)
3023
3024 2004-12-09 Maarten Brock <sourceforge.brock AT dse.nl>
3025
3026         * device/include/sdcc-lib.h: inserted LGPL, added includes
3027           asm/ds390/features.h and asm/mcs51/features.h
3028         * device/include/asm/default/features.h,
3029         * device/include/asm/gbz80/features.h,
3030         * device/include/asm/z80/features.h: added empty _AUTOMEM
3031           and _STATMEM
3032         * device/include/asm/ds390/features.h,
3033         * device/include/asm/mcs51/features.h: added files with defines for
3034           _AUTOMEM and _STATMEM indicating automatic and static storage class
3035         * device/lib/printf_large.c (_print_format): optimized & used _AUTOMEM
3036         * doc/sdccman.lyx: version 2.4.7, updated xstack documentation
3037         * src/SDCCicode.c (geniCodeCast),
3038         * src/SDCCsymt.c (compareType): allow cast of data-ptr to idata-ptr
3039         * src/SDCCloop.c (loopInduction): removed unused variable lr
3040         * src/SDCCopt.c (convilong, convertToFcall): moved "easy special case"
3041           to convertToFcall to include char modulo (RFE 1065037), added check
3042           if left operand is unsigned and use abs of literal value
3043         * src/SDCCpeeph.c (setFromConditionArgs): removed double quotes option
3044           as it doesn't work after conversion from peephole.def to peephole.rul
3045         * src/mcs51/gen.c (toBoolean): added check for size,
3046           (genModOneByte): optimized code for signed char modulo a literal
3047           power of 2 (thanks to Hubert Sack),
3048           (genRRC): removed unnecessary "clr c",
3049           (genRLC): replaced "add a,acc" with cheaper "rlc a"
3050         * src/mcs51/peeph.def: renamed 115 to 115.a, added rule 115.b: another
3051           jump optimization,
3052           swapped rules 256.c and 256.d,
3053           extended 256.d by using new multiple checks (thanks Erik),
3054           added rules 256.e and 256.f,
3055           updated rule 261.a and 261.b to new generated code
3056         * support/regression/tests/muldiv.c: added test div/mod by a power of 2
3057
3058 2004-12-07 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
3059
3060         * src/SDCCloop.c (basicInduction, loopInduction): fixed several
3061           induction related bugs, including first part of bug #1074377
3062
3063 2004-12-05 Vangelis Rokas <vrokas AT otenet.gr>
3064
3065         * applied patch from bug-report #1076292,
3066         * applied patches for genAnd and Goto-optimizations for Raphael
3067         Neider,
3068         * src/SDCCicode.c (printOperand): fixed !REGA source to compile and
3069         dump a less iCode information,
3070         * src/pic16/device.h (pic16_options_t): added field debgen,
3071         * src/pic16/gen.h: added macros DUMP_FUNCTION_ENTRY,
3072         DUMP_FUNCTION_EXIT, FENTRY, FENTRY2,
3073         * src/pic16/gen.c (my_powof2): renamed to pic16_my_powof2 and made
3074         puclic,
3075         * (various functions): added macros FENTRY and FENTRY2 to functions,
3076         to emit function prologue,
3077         * (various functions): fixed indentation,
3078         * (genNearPointerGet): fixed loading of FSR0,
3079         * (genPackBits): applied patch from Raphael Neider to fix updating
3080         of FSR0 and touching only the modified bits,
3081         * src/pic16/genarith.c (various functions): added macros FENTRY to
3082         emit function prologue in comments,
3083         * src/pic16/pcode.h: added functions debugf2, debugf3,
3084         * src/pic16/ralloc.c: partial fix for packForPush caused
3085         segmentation fault,
3086
3087 2004-12-04 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
3088
3089         * src/mcs51/peeph.def: added 261.a,b (16 bit rotate) by Stas Sergeev
3090           <stsp AT users.sourceforge.net> with reversed byte order
3091         * support/regression/tests/rotate.c: added (ds390 skips some tests)
3092
3093 2004-12-03 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
3094
3095         * src/z80/gen.c (genLeftShift, genRightShift): fixed second part of
3096           bug #1074377
3097         * src/hc08/gen.c (genrshFour, shiftRLong, shiftLLong),
3098         * src/mcs51/gen.c (shiftLLong): Fixed some shifting bugs Frieder found
3099
3100 2004-12-02 Slade Rich <slade_rich AT users.sourceforge.net>
3101
3102         * src/pic/pcode.c : fixed a problem where banksel was not being inserted.
3103
3104 2004-12-02 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
3105
3106         * src/SDCCpeeph.c (callFuncByName): support combined peephole rule
3107           conditions,
3108           (setFromConditionArgs): friendly operand parser for peephole rules,
3109           (operandBaseName, operandsNotRelated): new peephole condition
3110           "operandsNotRelated" -- similar to "operandsNotSame", but takes
3111           architecture specific register naming into account, handles n-way
3112           comparisons, and supports quoted literals
3113         * src/mcs51/peeph.def: restored rule 177.d with an extra condition
3114
3115 2004-12-02 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
3116
3117         * src/mcs51/peeph.def: fixed bug #1076940
3118
3119 2004-12-02 Slade Rich <slade_rich AT users.sourceforge.net>
3120
3121         * device/include/pic/pic16f877.h : added an include file for the PIC16F877 device.
3122
3123 2004-11-28 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
3124
3125         Adding support for replacing ljmps with sjmps in jumptables
3126         generated for switch statements. For now you need to set the
3127         environment variable SDCC_SJMP_JUMPTABLE to enable this.
3128         Now 4 algorithms for mcs51 jumptable generation are used:
3129         ljmp or sjmp jumptables for up to 16 cases, stack-pushing target
3130         addresses loaded pc-relative for up to 112 cases and stack-pushing
3131         target addresses loaded with offset from dptr for up to 256 cases.
3132
3133         * src/SDCCpeeph.c: added peephole conditional labelJTInRange
3134         * src/mcs51/main.c: adapted constants for switch table generation
3135         * src/mcs51/peeph.def: added 260.x for replacing ljmp with sjmp
3136
3137 2004-11-26 Maarten Brock <sourceforge.brock AT dse.nl>
3138
3139         * device/lib/printf_large.c (_print_format): fixed bug 1073386
3140         * support/regression/tests/bug1057979.c: added test for bug 1073386
3141
3142 2004-11-25 Vangelis Rokas <vrokas AT otenet.gr>
3143
3144         * src/pic16/pcode.c: fixed bug which may produce error in non-GNU
3145         compilers
3146
3147 2004-11-25 Vangelis Rokas <vrokas AT otenet.gr>
3148
3149         * src/pic16/device.h,
3150         * src/pic16/genarith.c,
3151         * src/pic16/glue.c,
3152         * src/pic16/main.c,
3153         * src/pic16/pcode.c: applied patches #1068154 and #1070213
3154
3155 2004-11-24 Vangelis Rokas <vrokas AT otenet.gr>
3156
3157         Large cummulative patch for pic16 port.
3158         * device/lib/pic16/gstack.h: NEW, user can specify its own handler
3159         to call when a stack overflow occurs,
3160         * (malloc.h): added CVS Id tag,
3161         * (pic18f{242,252,442,452}.h): added T0CONbits structure and
3162         variable,
3163         * added libc directory. The current version of LibC contains string
3164         functions, ctype functions and macros and some functions of the
3165         stdlib set (like malloc/free/atof/atoi etc...). All functions are to
3166         be extensively tested in the future. Standard disclaimer here.
3167         Library is not automatically build yet. But one can build it by
3168         invoking 'make' inside the libc directory.
3169         * added ADC library under libio. Preliminary version yet.
3170
3171         * src/pic16/gen.h: added emitTOGC macro, to toggle Carry flag,
3172         * src/pic16/gen.c (aopForRemat): asmop size is filled by
3173         aopForRemat() now and not by pic16_aopOp(),
3174         * (pic16_popGetTempReg): removed warning messgae when allocating
3175         temporary registers, its a buggy feature and will be removed,
3176         * (pic16_popGet): set register instance field in AOP_CRY,
3177         * (pic16_outBitC): fixed for results in size greater than 1,
3178         * (genUminusFloat): fixed for pic16, ported code from mcs51,
3179         * (pic16_storeForReturn): optimized return of 0,
3180         * (genCmp): experimental code for new genCmp which uses PIC18's
3181         special compare&skip instructions. Initial tests fail some times
3182         with variables grater than 1 byte in size, so new code is disabled,
3183         * (genUnpackBits, genPackBits): more optimizations in reading/writing,
3184         a single bit,
3185         * (genCast): began a fix to optimize the casting of a bit to another
3186         bit, now assigning a bitfield to another bitfield will fail, sorry,
3187         * src/pic16/main.c: disabled the use of lr-support feature,
3188         * src/pic16/pcode.h: renamed PCASMDIR to PCAD,
3189         * added some function prototypes, added function _debugf prototype,
3190         * src/pic16/pcode.c: (pic16_get_op): fixed emitting operands of register
3191         bits with offset (case PO_GPR_BIT),
3192         * (genericPrint): don't emit INFO pcode when --pcode-verbose not in
3193         command line,
3194         * (isBankInstruction): modified to return 0 for no banking instruction,
3195         and 1 for banking instruction,
3196         * (pic16_isPCinFlow): check for PCAD (assembler directives) too,
3197         caused stop processing pCodes after a inline assembly block,
3198         * (pic16_popCopyGPR2Bit): updated to match bitfields with offset,
3199         * src/pic16/pcoderegs.c: fixed a bug with eliminating some temporary
3200         registers when it shouldn't,
3201         * src/pic16/ralloc.c (allocReg): add preliminary support for
3202         supporting a limited set of temporary registers,
3203
3204 2004-11-23 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
3205
3206         * src/hc08/gen.c (genAssign, genPointerGetSetOfs, genDataPointerGet,
3207           genDataPointerSet): ensure assignments always copy in MSB to LSB
3208           order,
3209           (loadRegFromAop): recognize CLRH optimization,
3210           (genFunction): optimize RECEIVE iCodes in reentrant functions
3211
3212 2004-11-20 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
3213
3214         * src/SDCCmain.c (parseCmdLine, optionsTable[]): fixed bug with
3215           --out-fmt-s19 turning into --out-fmt-elf if s19 was already
3216           selected.
3217         * src/SDCCmain.c (linkEdit): don't define SSEG for HC08
3218         * src/hc08/main.c (_hc08_setDefaultOptions): default xdata to be
3219           contiguous with data
3220
3221 2004-11-19 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
3222
3223         * device/lib/_gptrget.c (_gptrget),
3224         * device/lib/_gptrgetc.c (_gptrgetc),
3225         * device/lib/_gptrput.c (_gptrput): _naked allows to use ret
3226           instead of sjmp to ret
3227         * src/mcs51/peeph.def: added peepholes 3.d-g and 177.g,h provided
3228           by Hubert Sack <hsack2002 AT arcor.de> in RFE #1067986, thanks
3229
3230 2004-11-18 Maarten Brock <sourceforge.brock AT dse.nl>
3231
3232         * .version: bumped version to 2.4.7
3233         * device/lib/_gptrget.c (_gptrget): is now _naked
3234         * device/lib/_gptrgetc.c (_gptrgetc): is now _naked
3235         * device/lib/_gptrput.c (_gptrput): is now _naked
3236         * src/SDCCast.c (createBlock): removed ridiculous self-assignment,
3237           (createFunction): fixed xstack
3238         * src/SDCCglue.c (emitMaps): set allocation required for bit area
3239         * src/SDCCicode.c (geniCodeCast): don't change SPEC_OCLS for literal
3240           or bit either,
3241           (geniCodeCritical): store original interrupt state in an iTemp bit
3242           var unless stack-auto
3243         * src/SDCCicode.h: added CRITICAL and ENDCRITICAL to SKIP_IC2
3244         * src/SDCCmain.c (setIncludePath): added include/target to search path
3245         * src/SDCCmem.c (allocParms): store bit vars in bit space, not overlay
3246         * src/SDCCsymt.c (checkFunction): don't check regbank for isr's against
3247           prototype,
3248           (processFuncArgs): put bit vars in bit area
3249         * src/mcs51/gen.c (saveRegisters, unsaveRegisters, genXpush, saveRBank,
3250           unsaveRBank): fixed xstack,
3251           (genFunction): bugfix: replaced (global!) reentrant with fReentrant,
3252           (genFunction, genEndFunction): fixed xstack,
3253           (genAssign): optimization don't walk backwards through mem
3254         * src/mcs51/main.c (_mcs51_regparm): don't pass bit params in registers
3255         * src/mcs51/ralloc.c (createStackSpil): spill bits to bit area
3256         * support/regression/Makefile: also make library (for stack-auto) when
3257           making "all" and added "test-mcs51-xstack-auto"
3258         * support/regression/fwk/lib/testfwk.c: added T2_isr prototype for mcs51
3259         * support/regression/ports/mcs51/T2_isr.c: added this file as a stub
3260         * support/regression/ports/mcs51/fwk.lib: added to link T2_isr stub
3261         * support/regression/ports/mcs51/spec.mk: added rules for fwk.lib
3262         * support/regression/ports/mcs51-stack-auto/spec.mk: replaced
3263           make-library by MAKE_LIBRARY
3264         * support/regression/ports/mcs51-xstack-auto/spec.mk: file added to run
3265           regression tests for xstack
3266         * support/regression/tests/bitvars.c: test for bit vars (bug 938782)
3267         * support/regression/tests/critical.c: test for critical on mcs51
3268
3269 2004-11-18 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
3270
3271         * support/regression/ports/ucz80/spec.mk: use include and lib files from
3272           built version of sdcc instead of installed version
3273
3274 2004-11-14 Maarten Brock <sourceforge.brock AT dse.nl>
3275
3276         * src/mcs51/gen.c (toBoolean): fixed bug 1065458
3277         * device/lib/Makefile.in: z80 uses printf_large.c, sprintf.c and
3278           vprintf.c now
3279         * device/lib/printf_large.c (calculate_digit): fixed bug 1057979
3280         * device/lib/z80/Makefile: don't use printf.c as it fails bug 1057979
3281           WARNING: remove device/lib/build/z80/printf.o by hand when
3282           updating from previous build!
3283         * device/lib/z80/printf.c: updated comment
3284         * support/regression/tests/bug1057979.c: test all ports now
3285         * support/regression/tests/bug1065458.c: file added
3286
3287 2004-11-12 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
3288
3289         * src/z80/gen.c (genFunction, genEndFunction): avoided generating
3290           *_start and *_end symbols for static functions
3291
3292 2004-11-11 Maarten Brock <sourceforge.brock AT dse.nl>
3293
3294         * src/SDCCmain.c (linkEdit): don't suppress crt0 if --nostdlib is used
3295           and search crt0.o in all library paths,
3296           (setIncludePath): proper handling of --nostdinc,
3297           (setLibPath): proper handling of --nostdlib
3298         * support/regression/Makefile,
3299         * support/regression/ports/ds390/spec.mk,
3300         * support/regression/ports/gbz80/spec.mk,
3301         * support/regression/ports/hc08/spec.mk,
3302         * support/regression/ports/mcs51/spec.mk,
3303         * support/regression/ports/mcs51-large/spec.mk,
3304         * support/regression/ports/mcs51-stack-auto/spec.mk,
3305         * support/regression/ports/z80/spec.mk: use include and lib files from
3306           built version of sdcc instead of installed version
3307         * doc/sdccman.lyx: fixed typo in --nostdinc
3308
3309 2004-11-10 Slade Rich <slade_rich AT users.sourceforge.net>
3310
3311         * src/pic/pcode.c,
3312         * src/pic/device.c,
3313         * src/pic/ralloc.c,
3314         * src/pic/gen.c : added support to generate code for struct bit fields.
3315
3316 2004-11-06 Maarten Brock <sourceforge.brock AT dse.nl>
3317
3318         * as/xa51/xa_version.h,
3319         * device/include/errno.h,
3320         * device/include/regc515c.h,
3321         * device/lib/_itoa.c,
3322         * device/lib/_ltoa.c,
3323         * device/lib/ser_ir_cts_rts.c,
3324         * sim/ucsim/xa.src/glob.cc,
3325         * sim/ucsim/xa.src/inst_gen.cc,
3326         * sim/ucsim/xa.src/xa_bit.cc,
3327         * sim/ucsim/xa.src/xa_sfr.cc,
3328         * sim/ucsim/z80.src/inst_dd.cc,
3329         * sim/ucsim/z80.src/inst_fdcb.cc,
3330         * support/scripts/keil2sdcc.pl,
3331         * src/pic16/pic16.dsp,
3332         * src/pic16/pic16a.dsp: corrected cvs line endings
3333         * device/lib/printf_large.c: fixed bug 1057979
3334         * src/pic16/gen.c: fixed non-C standard code
3335         * src/SDCCmain.c: made --pack-iram default, added --no-pack-iram
3336         * src/SDCCglobl.h: changed pack_iram to no_pack_iram
3337         * support/regression/ports/mcs51/support.c: reload T1 asap
3338         * doc/sdccman.lyx: updated for options --pack-iram and --no-pack-iram,
3339           pdata use and clear idata startup behaviour
3340         * support/regression/tests/bug1057979.c: added
3341
3342 2004-11-04 Maarten Brock <sourceforge.brock AT dse.nl>
3343
3344         * device/examples/ds390/ow390/ad26.h,
3345         * device/examples/ds390/ow390/cnt1d.h,
3346         * device/examples/ds390/ow390/crcutil.c,
3347         * device/examples/ds390/ow390/ownet.h,
3348         * device/examples/ds390/ow390/owsesu.c,
3349         * device/examples/ds390/ow390/swt12.h,
3350         * device/examples/ds390/ow390/swtoper.c,
3351         * device/examples/ds390/ow390/temp10.h,
3352         * device/examples/ds390/ow390/thermodl.c,
3353         * device/examples/ds390/tinitalk/tinitalk.dsp,
3354         * device/examples/ds390/tinitalk/tinitalk.dsw,
3355         * device/examples/mcs51/clock/hw.h,
3356         * device/examples/mcs51/simple2/go.bat,
3357         * device/examples/serialcomm/windows/serial.h,
3358         * device/examples/xa51/dummy.c,
3359         * device/examples/xa51/hello.c,
3360         * device/include/80c51xa.h,
3361         * device/include/at89x051.h: corrected cvs line endings
3362
3363 2004-11-04 Vangelis Rokas <vrokas AT otenet.gr>
3364
3365         * src/pic16/main.c (options): added command line --gstack, to trace
3366         stack over/under flows,
3367         * added pragma 'wparam' to allow passing first byte of function
3368         parameters via WREG, syntax is #pragma wparam my_function[, func2...]
3369         * src/pic16/gen.c (pic16_testStackOverflow): function which emits a
3370         call to __gstack_test function and sets up the symbol as extern,
3371         * (pic16_pushpCodeOp, pic16_poppCodeOp, pushw, pushaop, popaopidx,
3372         * popaop): added call to pic16_testStackOverflow,
3373         * (wParamCmp, inWparamList): NEW, test existence of a symbol in
3374         wparamList list,
3375         * (genCall, genPcall): now all parameters are passed via stack
3376         except in functions that are pass to wparam pragma in which WREG is
3377         used too,
3378         * (genPcall): REENTRANT flag is checked to see if variable prototype
3379         contains reentrant keyword, don't call a non-reentrant function, via
3380         a reentrant function pointer or vice versa, functions are never
3381         passed via WREG,
3382         * (genJumpTab): applied patch from bug #1057478 by R.Neider and
3383         D.Winkler,
3384         * src/pic16/glue.c (pic16emitRegularMap): fixed bug which caused a
3385         SIGSEGV when accessing a NULL register stucture,
3386         * (pic16_printGPointerType): modified to handle UPPER modifier for
3387         function initializers, changed prototype of function to simpler one,
3388         * (pic16_printIvalFuncPtr): check to see if function is already
3389         added in externs list,
3390         * src/pic16/pcoderegs.c (pCodeOptime2pCodes): fixed bug which
3391         optimized a move from W to SFR with a move to the same register
3392         later after a CALL,
3393         * device/lib/pic16/debug: NEW directory, contains debug features
3394         which are enabled when linking with libdebug.lib, currently command
3395         line option --gstack enables stack pointer tracing for over/under
3396         flow, corresponding sources are in debug/gstack
3397
3398 2004-10-30 Vangelis Rokas <vrokas AT otenet.gr>
3399
3400         * doc/sdccman.lyx: updated SDCC version,
3401         * (PIC16 port): update list of command line options,
3402         * src/pic16/device.h (structure pic16_options_t): added field gstack
3403         to enable stack overflow tracing on push/pops,
3404         * src/pic16/device.c (statistics structure): added statistics
3405         structure,
3406         * (pic16_dump_access, pic16_dump_usection, pic16_dump_gsection,
3407         pic16_dump_int_registers): increase statistics counters for each
3408         * variable which is encountered
3409         * (pic16_dump_usection): emit each .udata variable to its own udata
3410         section,
3411         * src/pic16/gen.c (assignResultValue, genCall, genPcall, genFunction):
3412         when macro USE_WREG_IN_FUNC_PARAMS is set to 0 pass all function
3413         parameters via stack, otherwise use old scheme,
3414         * src/pic16/glue.c (pic16_emitStatistics): dump statistics in
3415         assembler output file,
3416         * src/pic16/main.c: added command line options --gstack to enable
3417         push/pop tracing for stack overflow,
3418         * src/pic16/pcode.c (all pCodeInstruction records for PIC18F
3419         instructions): added size of each instruction,
3420         * (pic16_countInstruction): estimate size of instructions in
3421         the_pFile list, inline assembly blocks are not counted,
3422         * (pic16_FixRegisterBanking): trace previous register usage, when
3423         banksel optimizations is greater than 0, don't emit a redudant
3424         banksel directive,
3425
3426 2004-10-26 Slade Rich <slade_rich AT users.sourceforge.net>
3427
3428         * src/pic/ralloc.c : fixed inefficient code produced when compiling a complimented bit operation.
3429         * src/pic16/ralloc.c : applied same fix for pic16.
3430         * src/pic/gen.c : tidied it up a little.
3431
3432 2004-10-25 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
3433
3434         * src/mcs51/peeph.def: disabled 259.a,b for removing redundant ret,
3435         thanks to Martin Helmling for reporting (mail on sdcc-devel 2004-10-25)
3436
3437 2004-10-22 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
3438
3439         * src/SDCCast.c (reverseParms): fixed bug #1040577 (part 2)
3440
3441 2004-10-22 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
3442
3443         * device/lib/ser_ir_cts_rts.c: integer promotion caused a call to the
3444         non-reentrant function __modsint in the interrupt function (thus
3445         corrupting math operations during serial I/O)
3446         * device/lib/ser_ir.c: as above, changed buffersize
3447         * src/mcs51/peeph.def: added 259.a,b for removing redundant ret,
3448         256.c,d for zeroing
3449         * doc/Makefile: added option -t for rsync
3450
3451 2004-10-22 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
3452
3453         * src/SDCCast.h (struct ast),
3454         * src/SDCCast.c (reverseParms, copyAst): fixed bug #1040577 (part 1)
3455
3456 2004-10-20 Borut Razem <borut.razem AT siol.net>
3457
3458         * support/scripts/sdcc.nsi: added include/pic16/*.h to the setup
3459         package
3460
3461 2004-10-20 Vangelis Rokas <vrokas AT otenet.gr>
3462
3463         * device/lib/pic16/libsdcc/Makefile: added lregs directory in
3464         makefile targets,
3465         * device/lib/pic16/libsdcc/lregs/{Makefile,lrst.c,lrrest.c}: NEW
3466         support functions to replace long sequences of MOVFF's from access
3467         bank registers to stack and vice versa,
3468         * src/pic16/device.h: added new field opt_flags, where optimization
3469         flags can be set to enable certain features,
3470         * src/pic16/gen.c (pic16_emitpinfo): NEW to add PC_INFO pCode in
3471         * pBlock, (genFunction, genEndFunction): surroung loop for
3472         saving/loading used registers in stack with PC_INFO pCodes,
3473         INF_LREGS. Code in between can then be optimized by pCode optimizer
3474         to support function calls,
3475         * (genDataPointerSet): fixed bug which loaded float fields in
3476         structures with corrupt data,
3477         * src/pic16/genutils.c (debugf, _debugf): macro/function which emits
3478         in a standard way debug info on stderr. Feature used for developing
3479         and debugging only,
3480         * src/pic16/glue.c (pic16glue): reformatted, deleted some old and
3481         obsolete chunks of code,
3482         * if optimization flag OF_LR_SUPPORT was set, call pic16_OptimizeLocalRegs,
3483         * src/pic16/main.c (_pic16_parseOptions): added handler for --flr-support,
3484         * pic16/src/pcode.c (pic16_newpCodeInfo,
3485         * (pic16_newpCodeOpLocalRegs),
3486         * (pic16_convertLocalRegs2Support): NEW, to support new optimization
3487         feature,
3488         * (pic16_pCodeConstString): printing of the initial value of a
3489         symbol as a comment is inhibited since parsing was already done by
3490         copyStr and output is corrupt,
3491         * (pic16_pCode2str, genericPrint): handle PC_INFO pCode,
3492
3493 2004-10-20 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
3494
3495         * src/mcs51/ralloc.c (packRegisters): fixed bug #1044601
3496
3497 2004-10-19 Maarten Brock <sourceforge.brock AT dse.nl>
3498
3499         * as/mcs51/lkarea.c: removed old K&R style,
3500           (lnksect): changed check on boundary error,
3501           (lnksect2): changed check on boundary error,
3502           (lnksect2): extend XSTK to end of page if size = 1
3503         * as/mcs51/lkmain.c: removed old K&R style,
3504           (Areas51): create l_IRAM symbol
3505         * as/mcs51/lkmem.c (summary2): added report on PSEG and XSTK
3506         * device/lib/Makefile.in: renamed model-mcs51-reentrant to
3507           model-mcs51-stack-auto, added model-mcs51-xstack-auto
3508         * device/lib/_mullong.c: added version to be compiled with xstack
3509         * device/lib/mcs51/crtclear.asm: clear only upto --iram-size
3510         * device/lib/mcs51/crtxclear.asm: clear pdata as well
3511         * device/lib/mcs51/crtxstack.asm: fixed comment
3512         * src/SDCCglue.c: maxInterrupts defaults to 0,
3513           (emitMaps): added pdata,
3514           (createInterruptVect): (re)moved default,
3515           (glue): added pdata,
3516           (glue): moved __start__xstack to XSTK with default size 1
3517         * src/SDCCmain.c (parseCmdLine): automatically set options.intlong_rent
3518           and options.float_rent when options.stackAuto is set,
3519           (linkEdit): only write XDATA_NAME if provided on command line
3520         * src/SDCCmem.h,
3521         * src/SDCCmem.c: added pdata
3522         * src/port.h: added pdata_name to PORT
3523         * src/mcs51/gen.c (toBoolean): fixed for Acc use of aopGet,
3524           (saveRegisters, unsaveRegisters): removed usage of B,
3525           (genMinus): fixed accumulator clash,
3526           (genJumpTab): added comment, this needs another look
3527         * src/mcs51/gen.c: added check for "B in use" paranoia,
3528           added pushB() and popB()
3529         * src/mcs51/peeph.def: restart after 177.c so 177.a can get a second
3530           chance
3531         * src/avr/main.c,
3532         * src/ds390/main.c,
3533         * src/hc08/main.c,
3534         * src/mcs51/main.c,
3535         * src/pic/main.c,
3536         * src/pic16/main.c,
3537         * src/xa51/main.c,
3538         * src/z80/main.c: (reset_regparms) made void parameter explicit and
3539           added PSEG (PAG,XDATA) or NULL to port specifier
3540         * src/ds390/main.c (_ds390_genIVT): moved implemented default in here
3541         * src/mcs51/main.c (_mcs51_genIVT): moved implemented default in here,
3542           (_mcs51_genInitStartup): removed __start__xstack equ,
3543           (mcs51_port): moved xstack from XSEG (XDATA) to XSTK (PAG,XDATA)
3544         * src/pic16/device.c (pic16_dump_usection, pic16_dump_isection),
3545         * src/z80/gen.c (_rleAppend): fixed warnings
3546         * support/regression/tests/zeropad.c: added pdata test
3547         * .version: bumped to 2.4.6
3548
3549 2004-10-17 Borut Razem <borut.razem AT siol.net>
3550
3551         * support/scripts/sdcc.nsi: cross compiling of WIN32 setup.exe on Linux
3552         as a part of nightly build
3553
3554 2004-10-16 Vangelis Rokas <vrokas AT otenet.gr>
3555
3556         * src/pic16/gen.c (struct _G): added field useWreg, is set to 1 when
3557         WREG holds the first byte function parameters,
3558         * (aopForSym): take special case for symbols which are in FARSPACE
3559         but in CODESPACE too,
3560         * (assignResultValue): modified to take into account _G.useWreg,
3561         * (genCall): don't use wreg for parameter passing when function is
3562         declared as reentrant, too, added optimization INCF to stack
3563         pointer when stack parameter count is 1,
3564         * (genFunction, genEndFunction): refurnished and fixed to not using
3565         wreg for passing parameters when function has varargs or is
3566         reentrant, fixed bug with symbol name compare for generating
3567         functions in absolute address,
3568         * (pic16_storeForReturn): refurnished,
3569         * (genCmp): began writing a new version of the function, not ready
3570         yet, therefore it is disabled,
3571         * (genAssign): do not read code memory when assigning a function to
3572         a pointer function,
3573         * src/pic16/glue.c (pic16emitStaticSeg): abSym->name is defined an
3574         array of characters, not pointer,
3575         * (pic16initialComments): in debug mode emit an .ident directive for
3576         the assembler,
3577         * (_process_pragma): emit a new warning type (internal to pic16)
3578         when setting stack to default length, emit a similar warning when
3579         placing a function at absolute address and address is not word aligned
3580         * (_pic16_parseOptions): added 'return TRUE' statement,
3581         * (_pic16_linkEdit): if compiling a source, then add the source's
3582         file object, first in the list of objects to link,
3583
3584 2004-10-13 Slade Rich <slade_rich AT users.sourceforge.net>
3585
3586         * src/pic/pcoderegs.c : increased count on regUsedinRange to prevent unnecessary warning.
3587         * src/pic/main.c : removed VC warning.
3588         * src/pic/gen.c : changed comment.
3589
3590 2004-10-12 Vangelis Rokas <vrokas AT otenet.gr>
3591
3592         * device/lib/pic16/libsdcc/gptr/gptrput[234].c: an external
3593         reference to a deprecated symbol _GPTRREG was causing failure to
3594         link. Thanks G. M. Gallant for the info.
3595
3596 2004-10-12 Slade Rich <slade_rich AT users.sourceforge.net>
3597
3598         * src/pic/pcode.c : Applied a code patch supplied by Paul Ashmore in
3599         comments for Bugs item #954788.
3600
3601 2004-10-10 Vangelis Rokas <vrokas AT otenet.gr>
3602
3603         * src/pic16/device.c (pic16_dump_gsection,
3604         * pic16_groupRegistersInSection): handle symbols declared to be in
3605         access bank differently,
3606         * src/pic16/gen.c (struct _G): added field resDirect,
3607         * (aopForSym): if symbol on stack and iCode is '=' and result exists,
3608         send values read from stack directly to result and don't allocate
3609         temporary values,
3610         * (pic16_sameRegs): fixed bug that allowed MOVFF to move between
3611         same registers,
3612         * (pic16_sameRegsOfs): NEW,
3613         * (freeAsmop): if _G.resDirect is set then do not mark registers as
3614         free because they were not allocated from temporary pool,
3615         * pic16_popRegFromString): workaround to fix a problem with
3616         allocating variables twice or never,
3617         * (genGenPointerGet): using PRODL instead of FSR0H,
3618         * (genGenPointerSet): using POSTDEC1 (that is a stack location)
3619         instead of FSR0H,
3620         * (genAssign): take advantage of the _G.resDirect flag,
3621         * (genCast): around line 11844, use mov2f instead of directly
3622         MOVFF'ing between operands to account for literal values,
3623         * src/pic16/genutils.c: some new debug functions for gpsim have been
3624         added,
3625         * src/pic16/glue.c (pic16_printIvalType): fixed bug that initialized
3626         float with integer part only,
3627         * src/pic16/main.c (_process_pragma): handle pragma udata access to
3628         place variables in access bank
3629         * device/lib/pic16/libsdcc/gptr/gptr*.c: using BRA instead of GOTO,
3630         updated sources to reflect recent changes in gen.c
3631
3632 2004-10-06 Vangelis Rokas <vrokas AT otenet.gr>
3633
3634         * device/lib/pic16/libsdcc/Makefile.rules: fixed bug concerning
3635         sources that searched for headers in installation path, now the
3636         device/include/pic16 is used,
3637         * src/pic16/glue.c (pic16glue),
3638         * src/pic16/pcode.c (pCode2str, genericPrint): don't print .file or
3639         .line directives if not in debug mode, this suppresses assembler's
3640         warnings for ignored directives
3641
3642 2004-10-05 Maarten Brock <sourceforge.brock AT dse.nl>
3643
3644         * src/port.h: made reset_regparms prototype void parameter explicit.
3645         * src/SDCCsymt.c (processFuncArgs): removed argument "func".
3646         * src/mcs51/ralloc.c (packRegisters): new fix for bugs 898889 & 979599.
3647         * doc/sdccman.lyx: documented warning disabling and how to use
3648           printf_large to make it print floats.
3649         * device/include/stdbool.h: NEW
3650         * device/lib/_atof.c,
3651         * device/lib/_divuint.c,
3652         * device/lib/_divulong.c,
3653         * device/lib/expf.c,
3654         * device/lib/printf_large.c,
3655         * device/lib/sincosf.c,
3656         * device/lib/sincoshf.c: used stdbool.h, all compile with stack-auto now
3657         * device/lib/Makefile.in: added target for model-mcs51-reentrant to build
3658           a completely reentrant lib.
3659
3660 2004-10-05 Vangelis Rokas <vrokas AT otenet.gr>
3661
3662         * device/lib/pic16/libsdcc/gptr/gptr*.c: added return statements
3663         * device/include/pic16/stdio.h: fixed bug with colon
3664
3665 2004-10-03 Vangelis Rokas <vrokas AT otenet.gr>
3666
3667         * device/include/pic16/stdio.h,
3668         * device/include/pic16/stdlib.h,
3669         * device/include/pic16/math.h: NEW
3670         * device/lib/pic16/libsdcc/gptr/*.c (gptrget*, gptrput*): functions
3671         declared as _naked to reduce overhead
3672         * device/lib/Makefile.in (target port-specific-objects-pic16):
3673         changed * to *.* so to ignore the CVS directory,
3674         * src/pic16/gen.c (pic16_freeAsmop): added code to store result of
3675         stacked variables back in stack,
3676         * (genEndFunction): fixed bug reported by G.M. Gallant with stack
3677         corruption
3678
3679 2004-10-01 Vangelis Rokas <vrokas AT otenet.gr>
3680
3681         * .version: bumped version number to 2.4.5
3682         * support/Util/SDCCerr.h: added warning W_POSSBUG2.
3683         * support/Util/SDCCerr.c (messages structure): added entry for
3684         W_POSSBUG2
3685
3686         Large cumulative patch for pic16 port and libraries.
3687         * device/include/pic16/sdcc-lib.h,
3688         * device/include/pic16/stdarg.h,
3689         * device/include/asm/pic16/features.h,
3690         * device/include/lib/pic16/libsdcc/gptr/{*.c, Makefile}: NEW,
3691         * device/include/pic16/float.h: changes reentrant keyword with
3692         _FS_REENTRANT, added prototype for __fsneq, included sdcc-lib.h
3693         * device/lib/pic16/libsdcc/Makefile: added target directory gptr,
3694         updated target build-libraries to include objects from gptr,
3695         * device/lib/pic16/libsdcc/{char,int,long}/*.c: added macro
3696         _IL_REENTRANT to all function headings, included sdcc-lib.h header,
3697         * device/lib/pic16/libsdcc/float/*.c: added macro _FS_REENTRANT to
3698         all function headings,
3699         * src/SDCCmain.c: added global parameter userIncDirsSet,
3700         * (parseCmdLine): when option -I is encountered add directory to
3701         userIncDirsSet too,
3702         * src/version.awk: added space between control and long,
3703         * src/pic16/NOTES: added some notes for the port,
3704         * src/pic16/gen.c: added prototype for mov2fp function,
3705         * (fReturnpic16[]): properly named return value registers,
3706         * (_G structure): added fields stackRegSet, fregsUsed, stack_lat,
3707         * (aopForSym): added code to handle symbols with onStack flag set,
3708         symbols onStack are allocated PTRSIZE bytes,
3709         * (aopFreeAsmop): handles special case where asmops are stack objects,
3710         * (aopGet, pic16_popGet): adde cod to handle new asmop AOP_STA,
3711         * (pic16_popGetTempReg, pic16_popGetTempRegCond, pic16_popReleaseTempReg):
3712         added argument lock to trace flaws in allocating temporary registers
3713         when developing port,
3714         * (pic16_popGetLit, pic16_popGetLit2): changed lit from unsigned to signed
3715         * (pic16_popRegFromString): reenabled allocating a direct register
3716         from string,
3717         * (assignResultValue): various beautifications,
3718         * fixed bug #1037717 (patch from R. Neider & D. Wrinkler) with mistaken
3719         referenced function argument,
3720         * (genIpush): reenabled to allow stacked arguments, handles only
3721         ic->parmPush iCodes,
3722         * (genCall, genPcall): major changes to allow for variable argument
3723         functions, fixed a bug with falsely restoring stack pointer after
3724         returning from call,
3725         * (genFunction): pending code for critical function,
3726         * (shiftR1Left2ResultSigned, shiftR1Left2Result, shiftL2Left2Result,
3727         * (shiftR2Left2Result, shiftLLong) applied patch #1032155 from R.Neider,
3728         * (genNearPointerGet): fixed bug with indirect reading, was always
3729         reading from INDF0
3730         * (genGenPointerGet, genGenPointerSet): rewrote to support generic
3731         pointers,
3732         * (genAddrOf): rewrote code to take address of a stacked function parameter
3733         * (genCast): fixed casting to generic pointer type,
3734         * src/pic16/gen.h: added AOP_STA,
3735         * (struct asmop): added field stk,
3736         * src/pic16/genarith.c (pic16_AopType): handle AOP_STA,
3737         * (pic16_genPlusIncr): changed emitSKPNZ to emitSKPNZ,
3738         * (pic16_genAddLit, pic16_genPlus): applied patch #1034042 by tecodev,
3739         * (pic16_genMinus): fixed bug #1035119 with patch submitted by tecodev,
3740         * src/pic16/genutils.c (pic16_genNot): removed symbol *tlbl,
3741         * src/pic16/glue.c (pic16_printGPPointerType): fixed to support new
3742         generic pointers,
3743         * src/pic16/main.c (_pic16_initPaths): ignores default SDCC include
3744         and library paths,
3745         * (pic16_port structure): generic pointer size is set to 3,
3746         * src/pic16/pcode.c (pic16_newpCodeOpLit): correctly print literal integer,
3747         * (insertBankSwitch): cast to (char *) to prevent 64bit CPUs'
3748         compiler warning,
3749         * src/pic16/ralloc.c (allocReg): prevent allocating register when
3750         operand is an iTemp,
3751
3752 2004-09-24 Martin Helmling <mh AT octo-soft.de>
3753
3754         * debugger/mcs51/cmd.c: set PC if a symbol at pc reg is set
3755         * debugger/mcs51/simi.c: addapt new syntax of s51
3756
3757 2004-09-23 Vangelis Rokas <vrokas AT otenet.gr>
3758
3759         * src/pic16/genutils.c (pic16_genNot): fixed bug #1032265,
3760         * src/pic16/pcode.c: commented out some calls to free() in order to
3761         fix bug #989576,
3762
3763 2004-09-23 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
3764
3765         * src/SDCCicode.h,
3766         * src/SDCCicode.c (isiCodeInFunctionCall),
3767         * src/avr/ralloc.c (selectSpil),
3768         * src/pic/ralloc.c (selectSpil),
3769         * src/pic16/ralloc.c (selectSpil),
3770         * src/ds390/ralloc.c (selectSpil),
3771         * src/hc08/ralloc.c (selectSpil),
3772         * src/xa51/ralloc.c (selectSpil),
3773         * src/mcs51/ralloc.c (selectSpil): Don't use remainSpil to spill to the
3774         stack in the middle of a function call sequence (fixes bug #1020268)
3775         * src/SDCCicode.c (geniCodeJumpTable): fixed error in computing the
3776         costs associated with the minimum switch case.
3777
3778 2004-09-19 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
3779
3780         * src/SDCC.lex: fixed bug #1030549
3781
3782 2004-09-19 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
3783
3784         * src/SDCCcse.h (struct cseDef),
3785         * src/SDCCcse.c (cseBBlock, newCseDef, ifFromAddrTaken): purge CSEs
3786         over a function call if the CSE is derived from a symbol whose
3787         address has been taken (fixes bug #1029883)
3788         * support/regression/tests/bug-1029883: a new regression test for
3789         this bug
3790
3791 2004-09-18 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
3792
3793         * src/hc08/gen.c (emitinline): fixed bug #1029778
3794         * src/SDCC.y (assignment_expr): fixed the grammer so that assignment
3795         to a cast object is no longer a syntax error ("fixes" bug #1030006,
3796         and starts toward RFE #905167)
3797
3798 2004-09-17 Vangelis Rokas <vrokas AT otenet.gr>
3799
3800         * src/pic16/gen.c (mov2f): New function to move an operand to
3801         another without considering if it is a literal or a register,
3802         * (pic16_sameRegs): don't check if they are both AOP_REG,
3803         * (AccRsh): removed andmask=0 lines,
3804         * (genLeftShift): duplicated to be improved in future versions,
3805         * src/pic16/main.c (_process_pragma): emit stack default size in hex,
3806         * src/pic16/pcode.c: added POC_INFSNZW, updated inverted_op fields
3807         in POC_INCFSZ, POC_INCFSZW, POC_INFSNZ,
3808         * (pic16initMnemonics): added initialization for POC_INFSNZW,
3809         * (insertBankSwitch): fixed inserting banksel directives algorithm
3810         for instructions that follow a skip instruction, this fixes a report
3811         for broken subtraction code generation,
3812         * src/pic16/ralloc.c (deassignLRs): do not free register if current
3813         iCode is a left op, just in case result and right share the same
3814         registers
3815
3816 2004-09-16 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
3817
3818         * src/hc08/main.c,
3819         * src/hc08/gen.c (genJumpTable): more efficient jump table, supports
3820         preservation of HX
3821         * src/hc08/gen.c (pullRegs): fixed order of HX & XA pairs
3822         * src/mcs51/ralloc.c (packRegisters): removed the patch applied
3823         on 2004-09-12; it was buggy
3824
3825 2004-09-15 Bernhard Held <bernhard AT bernhardheld.de>
3826
3827         * src/SDCCsymt.h: removed RESULT_CHECK
3828         * src/SDCCast.c,
3829         * src/SDCCglue.c,
3830         * src/SDCCval.c,
3831         * src/pic/glue.c,
3832         * src/pic16/glue.c: replaced RESULT_CHECK with RESULT_TYPE_NONE
3833
3834 2004-09-15 Vangelis Rokas <vrokas AT otenet.gr>
3835
3836         * src/SDCCicode.c (piCode): applied patch from Raphael Neider,
3837         * src/pic16/device.c (pic16_assignConfigWordValues): wrong
3838         configuration values no more rejected by compiler, they are assigned
3839         to configuration registers with a warning message instead,
3840         * src/pic16/glue.c (pic16_emitConfigRegs): added +1 at top-limit of
3841         the for-loop so last conf register is emitted too,
3842         * (_pic16_initPaths): link library libsdcc.lib by default,
3843         * (_hasNativeMulFor): modified test for multiplication according to
3844         Raphael Neider's remarks. Integer multiplication is also done with
3845         support functions,
3846         * device/include/pic16/pic18fregs.h: corrected type error in while
3847         testing and including 18f6720 header file
3848
3849 2004-09-14 Vangelis Rokas <vrokas AT otenet.gr>
3850
3851         * src/pic16/device.h (pic16_options): removed field use_crt,
3852         * src/pic16/gen.c (genUnpackBits): added call to pic16_loadFSR0
3853         until an optimization to handle single bits is added,
3854         * (pic16_loadFSR0): moved before genUnpackBits,
3855         * (genAnd): some white lines removed,
3856         * src/pic16/main.c (_pic16_finaliseOptions): set omit_ivt and clear
3857         leave_reset flags in pic16_options when using crt modules,
3858
3859 2004-09-12 Maarten Brock <sourceforge.brock AT dse.nl>
3860
3861         * src/mcs51/ralloc.c (packRegisters): applied fix by Bernhard Held
3862           for bugs 898889 & 979599. Also used some safer print instructions.
3863
3864 2004-09-12 Vangelis Rokas <vrokas AT otenet.gr>
3865
3866         * src/pic16/device.h (pic16_options_t): added field use_crt,
3867         crt_name, no_crt,
3868         * src/pic16/genarith.c (pic16_genPlus): added an assert(0) line to
3869         catch a probable future bug,
3870         * src/pic16/gen.c: aopIdx function commented out,
3871         * (genAssign): commented out old code which used aopIdx,
3872         * src/pic16/glue.c (pic16glue): removed some legacy fragments of
3873         code, added if conditionals to take into account the --use-crt
3874         command line options,
3875         * src/pic16/main.c (pic16_optionsTable): added new command line
3876         options, --use-crt= and --no-crt,
3877         * (_pic16_linkEdit): now the proper crt object is added in the
3878         linker command line except than when --no-crt is specified,
3879         * src/pic16/pcode.c,
3880         * src/pic16/pcode.h: added some structures and functions for a new
3881         optimization scheme to compansate for instruction overhead between
3882         same iCodes, this scheme is currently under development and is not
3883         working in any way,
3884         * src/pic16/gen.c (genAnd): added patch provided by Aaron Collwell
3885         to && operator,
3886         * device/lib/pic16/startup/crt0i.c,
3887         * device/lib/pic16/startup/crt0iz.c: added global char variable
3888         __uflags to force the generation of an idata section
3889
3890 2004-09-12 Bernhard Held <bernhard AT bernhardheld.de>
3891
3892         * doc/Makefile,
3893         * doc/clean.mk: added support for easy creation of sdcc-doc.tar.bz2
3894         * doc/sdccman.lyx: updated sdcc version to 2.4.4
3895
3896 2004-09-10 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
3897
3898         * doc/sdccman.lyx: fixed a problem with my new index entries (thanks
3899         Frieder) and clarified the default code optimization mode
3900
3901 2004-09-10 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
3902
3903         * src/SDCC.lex (doPragma, process_pragma),
3904         * src/SDCCglobl.h (struct optimize): added pragmas "opt_code_speed",
3905         "opt_code_size", and "opt_code_balanced"
3906         * src/SDCCmain.c (optionsTable[], printOptions, scanOptionsTable):
3907         regrouped options by category, added support for category headers
3908         * src/SDCCmain.c (parseCmdLine): added options "--opt-code-speed"
3909         and "--opt-code-size"
3910         * doc/sdccman.lyx: documented these new options and pragmas
3911         * src/hc08/gen.c (AccLsh, AccRsh): take speed/size optimization
3912         preference into account
3913
3914 2004-09-08 Maarten Brock <sourceforge.brock AT dse.nl>
3915
3916         * src/SDCCicode.c (geniCodePostInc, geniCodePreInc, geniCodePostDec,
3917           geniCodePreDec): Fixed bug 904237 by generating a warning
3918         * src/SDCCerr.h,
3919         * src/SDCCerr.c: added warning W_SIZEOF_VOID
3920
3921 2004-09-09 Slade Rich <slade_rich AT users.sourceforge.net>
3922
3923         * src/pic/device.c : When no max ram set validate full memory range.
3924         * src/pic/pcode.c,
3925         * src/pic/pcodepeep.c : Copy C code comments to optimised replacement code.
3926
3927 2004-09-08 Maarten Brock <sourceforge.brock AT dse.nl>
3928
3929         * device/lib/_gptrget.c,
3930         * device/lib/_gptrput.c: updated comment
3931         * device/lib/calloc.c,
3932         * device/lib/free.c,
3933         * device/lib/malloc.c,
3934         * device/lib/realloc.c: added LGPL, made them reentrant-safe
3935         * src/SDCCcse.c (cseBBlock),
3936         * src/SDCCicode.c (printOperand, geniCodeArray),
3937         * src/SDCCicode.h (struct operand): fixed bug 868103
3938         * support/regression/tests/bug-868103.c: added
3939         * src/SDCCast.c (searchLitOp),
3940         * src/SDCCcse.h (struct cseDef),
3941         * src/SDCCglue.c (printIvalArray, spacesToUnderscores),
3942         * src/SDCCicode.h (struct operand),
3943         * src/SDCCsymt.h (struct sym_link),
3944         * src/avr/gen.c (hasInc),
3945         * src/ds390/gen.c (hasInc),
3946         * src/hc08/gen.c (genPlusIncr, hasInc),
3947         * src/mcs51/gen.c (hasInc),
3948         * src/pic16/glue.c (pic16_printIvalChar),
3949         * src/pic16/ralloc.c (regWithIdx),
3950         * src/xa51/gen.c (hasInc) : removed warnings
3951         * src/SDCCast.c (createBlock): added comment ???
3952         * src/hc08/ralloc.c: updated comments
3953
3954 2004-09-07 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
3955
3956         * doc/sdccman.lyx: updated section on switch statements, added
3957         section about semaphore locking
3958         * doc/Makefile: added option -info for latex2html
3959         * device/lib/_gptrget.c,
3960         * device/lib/_gptrput.c: __XPAGE instead of P2 in outcommented code
3961
3962 2004-09-06 Slade Rich <slade_rich AT users.sourceforge.net>
3963
3964         * src/pic/device.h,
3965         * src/pic/device.c,
3966         * src/pic/port.c : Changed PIC14 code to not set bit RP1 when
3967          maxram is less than 0x100.
3968
3969 2004-09-06 Slade Rich <slade_rich AT users.sourceforge.net>
3970
3971         * Bug fixes for PIC14 - signed RSHIFT problem. Patch supplied by Allen(agschrum).
3972
3973 2004-09-06 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
3974
3975         * src/port.h,
3976         * src/mcs51/main.c,
3977         * src/ds390/main.c,
3978         * src/z80/main.c,
3979         * src/hc08/main.c,
3980         * src/pic/main.c,
3981         * src/pic16/main.c,
3982         * src/avr/main.c,
3983         * src/xa51/main.c
3984         * src/SDCCicode.c (geniCodeJumpTable): Better logic to determine if a
3985         a jump table is the best form for a switch statement, including
3986         automatic insertion of missing cases to make the case range
3987         continuous. Developed in collaboration with Frieder Ferlemann.
3988
3989 2004-09-02 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
3990
3991         * src/hc08/ralloc.c (canDefAccResult): multi-byte shift is unsafe for
3992         accumulator result if it needs sign extension
3993
3994 2004-09-02 Maarten Brock <sourceforge.brock AT dse.nl>
3995
3996         * src/hc08/ralloc.c (canUseAccOperand): fixed comparison bug
3997
3998 2004-09-02 Maarten Brock <sourceforge.brock AT dse.nl>
3999
4000         * device/lib/gbz80/printf.c,
4001         * device/lib/z80/printf.c: removed define for NULL
4002
4003 2004-09-02 Maarten Brock <sourceforge.brock AT dse.nl>
4004
4005         * as/xa51/xa_link.c,
4006         * device/examples/ds390/ow390/ad26.c,
4007         * device/examples/ds390/ow390/cnt1d.c,
4008         * device/examples/ds390/ow390/counter.c,
4009         * device/examples/ds390/ow390/ds2480.h,
4010         * device/examples/ds390/ow390/ds2480ut.c,
4011         * device/examples/ds390/ow390/findtype.c,
4012         * device/examples/ds390/ow390/gethumd.c,
4013         * device/examples/ds390/ow390/owllu.c,
4014         * device/examples/ds390/ow390/ownetu.c,
4015         * device/examples/ds390/ow390/swt12.c,
4016         * device/examples/ds390/ow390/swtloop.c,
4017         * device/examples/ds390/ow390/temp.c,
4018         * device/examples/ds390/ow390/temp10.c,
4019         * device/examples/ds390/ow390/thermo21.c,
4020         * device/examples/ds390/ow390/tinilnk.c,
4021         * device/examples/ds390/ow390/tstfind.c,
4022         * device/examples/serialcomm/windows/serial.cpp,
4023         * device/examples/serialcomm/windows/test_serialcomm.cpp,
4024         * device/include/reg51.h: fixed line endings for cvs
4025
4026 2004-09-02 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
4027
4028         * src/hc08/ralloc.c (canDefAccResult, canUseAccOperand,
4029         packRegsForAccUse, packRegisters): new accumulator register
4030         packing algorithm
4031         * support/regression/ports/hc08/support.c (_putchar): suppress
4032         warning of unused variable
4033         * src/SDCCicode.c: added SWAP entry to codeTable
4034
4035 2004-09-01 Maarten Brock <sourceforge.brock AT dse.nl>
4036
4037         * device/lib/sprintf.c: forgot to add this file before previous commit
4038
4039 2004-09-01 Vangelis Rokas <vrokas AT otenet.gr>
4040
4041         * src/pic16/gen.c (genPackBits): added operand right in function
4042         parameters, load result directly if p_type is POINTER (that is
4043         called by genNearPointerSet)
4044         * (genUnPackBits): added operand left in function parameters,
4045         * (genNearPointerGet, genNearPointerSet): prevent the loading of
4046         FSR0 if accessing bitfields,
4047
4048 2004-08-31 Maarten Brock <sourceforge.brock AT dse.nl>
4049
4050         * device/include/stdio.h: added NULL, size_t, typedef pfn_outputchar,
4051           _print_format; updated printf, sprintf, vsprintf
4052         * device/include/asm/default/features.h: corrected comment/define
4053         * device/lib/Makefile.in: added sprintf.c
4054         * device/lib/libsdcc.lib: added sprintf module
4055         * device/lib/printf_large.c,
4056         * device/lib/vprintf.c,
4057         * device/lib/sprintf.c: totally refactored printf_large and vprintf
4058           into these 3 files
4059         * support/regression/Makefile: changed ALL_PORTS into a usefull default
4060         * support/regression/ports/mcs51-stack-auto/spec.mk: added sprintf
4061         * support/regression/tests/bug-927659.c: removed dummy putchar, enabled
4062           hc08 test
4063         * support/regression/tests/zeropad.c: define idata as data for hc08
4064
4065 2004-08-31 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
4066
4067         * src/SDCCpeeph.c (labelIsReturnOnly): support hc08 rts opcode also
4068         * src/SDCCpeeph.c (buildLabelRefCountHash): assume function entry point
4069         labels are referenced at least once (even if a reference is not found)
4070         * src/hc08/gen.c (emitcode): set isComment flag for comments
4071         * src/hc08/peeph.def: added rules 5a..5f (optimize redundant immediate
4072         loads), rules 6a..6b (optimize jumps to return)
4073
4074 2004-08-30 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
4075
4076         * device/lib/acosf.c (acosf),
4077         * device/lib/asinf.c (asinf),
4078         * device/lib/atanf.c (atanf),
4079         * device/lib/ceilf.c (ceilf),
4080         * device/lib/cosf.c (cosf),
4081         * device/lib/coshf.c (coshf),
4082         * device/lib/cotf.c (cotf),
4083         * device/lib/fabsf.c (fabsf),
4084         * device/lib/floorf.c (floorf),
4085         * device/lib/log10f.c (log10f),
4086         * device/lib/logf.c (logf),
4087         * device/lib/sinf.c (sinf),
4088         * device/lib/sinhf.c (sinhf),
4089         * device/lib/sqrtf.c (sqrtf),
4090         * device/lib/tanf.c (tanf),
4091         * device/lib/tanhf.c (tanhf),
4092         * device/include/math.h: defined _FLOAT_FUNC_REENTRANT macro and
4093         replaced all instances of "reentrant" in the library functions
4094         defined in math.h with this macro.
4095         * support/regression/tests/float_trans.c: reenabled test for hc08
4096
4097 2004-08-30 Bernhard Held <bernhard AT bernhardheld.de>
4098
4099         * device/lib/pic16/Makefile.common.in: added MODELFLAGS again, it was
4100         erroneously deleted
4101
4102 2004-08-30 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
4103
4104         * src/hc08/gen.c (loadRegFromAop): better use of clra & clrx
4105         * src/hc08/gen.c (genAnd, genOr): fixed bug with conditional when
4106         multi-byte volatile operands are used
4107         * src/hc08/gen.c (shiftRLong): fixed bug with wrong rotate direction
4108         * src/hc08/main.c (_hc08_genAssemblerPreamble): moved the built-in
4109         initialization to area GSINIT0 so that it would always precede
4110         any static initializers in GSINIT
4111         * support/regression/tests/zeropad.c: fixed idata define for hc08
4112         * support/regression/tests/bug-927659.c,
4113         * support/regression/tests/float_trans.c: disabled tests for hc08
4114         pending missing library routines
4115         * .version: increased version number to 2.4.4 - hc08 port now passes
4116         regression tests
4117
4118
4119 2004-08-29 Bernhard Held <bernhard AT bernhardheld.de>
4120
4121         * device/lib/pic16/Makefile.common.in: added $(MM) to fix `make clean`
4122         * Makefile.common.in,
4123         * as/Makefile,
4124         * as/hc08/Makefile.in,
4125         * as/mcs51/Makefile.in,
4126         * as/z80/Makefile.in,
4127         * debugger/mcs51/Makefile.in,
4128         * device/include/Makefile.in,
4129         * device/lib/Makefile.in,
4130         * doc/Makefile,
4131         * link/Makefile,
4132         * link/z80/Makefile.in,
4133         * packihx/Makefile.in,
4134         * sim/ucsim/main_in.mk,
4135         * sim/ucsim/avr.src/Makefile.in,
4136         * sim/ucsim/doc/Makefile.in,
4137         * sim/ucsim/gui.src/serio.src/Makefile.in,
4138         * sim/ucsim/hc08.src/Makefile.in,
4139         * sim/ucsim/s51.src/Makefile.in,
4140         * sim/ucsim/xa.src/Makefile.in,
4141         * sim/ucsim/z80.src/Makefile.in,
4142         * src/Makefile.in,
4143         * support/cpp2/Makefile.in,
4144         * support/librarian/Makefile,
4145         * support/makebin/Makefile: added DESTDIR to the install path proposed
4146         by "Maciej 'Agaran' Pijanka" <agaran AT pld-linux.org>
4147         * doc/sdccman.lyx: added DESTDIR documentation
4148
4149 2004-08-29 Vangelis Rokas (vrokas AT otenet.gr>
4150
4151         * src/pic16/gen.c (genFunction, genEndFunction): fixed return
4152         instruction for interrupt handlers, use fast returns when returning
4153         from high priority interrupts
4154
4155 2004-08-29 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
4156
4157         * src/hc08/gen.c (genAnd, genOr, transferAopAop, rmwWithAop): optimized
4158         code generation
4159         * src/hc08/gen.c (genrshFour, genCpl): fixed bugs
4160         * src/hc08/gen.c (genMultOneByte, genDivOneByte, genModOneByte): fixed
4161         bugs, ported much of Bernhard's code from mcs51
4162         * src/mcs51/gen.c (genSend),
4163         * src/hc08/gen.c (genSend): fixed bug with lost SEND iCodes if more
4164         than one when calling a reentrant function
4165         * device/lib/_mullong.c: defined an alternate struct layout for big
4166         endian ports (hc08)
4167
4168 2004-08-28 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
4169
4170         * src/hc08/gen.c (shiftL2Left2Result): fix for bug-500536 regression
4171         test
4172
4173 2004-08-28 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
4174
4175         * src/SDCCsymt.c (processFuncArgs): make sure parameter types
4176         are sane and complete before asking the port its prefered parameter
4177         passing method (fixes bug #1017633)
4178         * device/lib/hc08/_ret.c: added "data" storage class to _ret2
4179         and _ret3
4180
4181 2004-08-27 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
4182
4183         * src/hc08/gen.c (genPackBitsImmed, genUnpackBitsImmed): fix offset
4184         problem in bitfields >= 8 bits.
4185
4186 2004-08-27 Maarten Brock <sourceforge.brock AT dse.nl>
4187
4188         * src/SDCCsymt.c: undid changes that were not meant to be committed
4189
4190 2004-08-27 Maarten Brock <sourceforge.brock AT dse.nl>
4191
4192         * support/regression/ports/hc08spec.mk: REENTRANT must be reentrant
4193
4194 2004-08-27 Maarten Brock <sourceforge.brock AT dse.nl>
4195
4196         * src/hc08/gen.c (genUminusFloat): fixed bug where only 3 bytes were
4197           copied and wrong bit got inverted
4198
4199 2004-08-27 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
4200
4201         * src/hc08/gen.c (genPointerSet, genFarPointerSet): moved code from
4202         genFarPointerSet into genPointerSet; eliminated genFarPointerSet
4203         * src/hc08/gen.c (genPointerGet, genFarPointerGet): moved code from
4204         genFarPointerGet into genPointerGet; eliminated genFarPointerGet
4205         * src/hc08/gen.c (genPackBitsImmed): generate optimized code for
4206         assignments to bitfields at known addresses
4207         * src/hc08/gen.c (genUnpackBitsImmed): generate optimized code for
4208         reads from bitfields at known addresses
4209         * src/hc08/ralloc.c (packRegisters),
4210         * src/hc08/gen.c (genPointerGet, genUnpackBits, genUnpackBitsImmed,
4211         genhc08Code): optimize pointer get values used as conditionals
4212         * src/hc08/peeph.def: added rules 2e & 2f to optimize bit test
4213         and branch
4214
4215 2004-08-24 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
4216
4217         * src/mcs51/gen.c (genPointerGet, genNearPointerGet, genPagedPointerGet,
4218         genFarPointerGet, genCodePointerGet, genGenPointerGet, genUnpackBits),
4219         * src/mcs51/ralloc.c (packRegisters): optimize pointer get values used
4220         as conditionals
4221
4222 2004-08-22 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
4223
4224         * src/mcs51/peeph.def: peepholes 248.i-m for xdata bitfields
4225
4226 2004-08-21 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
4227
4228         * src/mcs51/ralloc.c (packRegsForOneuse): fixed bug #1012650 and some
4229         related problems
4230
4231 2004-08-21 Bernhard Held <bernhard AT bernhardheld.de>
4232
4233         * sim/ucsim/cmd.src/Makefile.in: run lex only if $(PRJDIR)/devel exists
4234
4235 2004-08-18 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
4236
4237         * src/z80/ralloc.c (packRegsForAssign): ported some bug fixes from the
4238         mcs51 port
4239
4240 2004-08-16 Slade Rich <slade_rich AT users.sourceforge.net>
4241
4242         * src/pic/gen.c: Restored fn genRet as previous fix was incorrect.
4243
4244 2004-08-14 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
4245
4246         * src/mcs51/gen.c (genJumpTab): jumptables for more than 16 switch
4247         cases use more compact code.
4248
4249 2004-08-13 Slade Rich <slade_rich AT users.sourceforge.net>
4250
4251         * src/pic/gen.c: Fixed problem with fn returning a variable bigger than a char.
4252
4253 2004-08-12 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
4254
4255         * src/SDCClrange.c (findPrevUse): fixed bug #1007371
4256
4257 2004-08-12 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
4258
4259         * src/SDCCsymt.h,
4260         * src/SDCCsymt.c (changePointer, checkDecl, addSymChain): changed
4261         parameter of changePointer() from symbol* to sym_link*
4262         * src/SDCCast.c (decorateType): call changePointer() for CAST op
4263         * src/SDCCsymt.c (compareType): void* type is castable to other
4264         pointers, but not necesarily an exact match.
4265         * src/SDCCicode.c (geniCodeCast): allow void* casting here since it
4266         is no longer blindly treated as an exact match.
4267         * src/SDCCval.c (valCastLiteral): treat missing type as cast to void
4268
4269 2004-08-12 Slade Rich <slade_rich AT users.sourceforge.net>
4270
4271         * src/pic/glue.c: Added struct initialisation fn printIvalStruct.
4272
4273 2004-08-11 Slade Rich <slade_rich AT users.sourceforge.net>
4274
4275         * src/pic/gen.c,
4276         * src/pic/pcode.c,
4277         * src/pic/ralloc.h,
4278         * src/pic/ralloc.c: Printing rIdx on internal verbose debug.
4279
4280 2004-08-10 Slade Rich <slade_rich AT users.sourceforge.net>
4281
4282         * src/pic/device.c,
4283         * src/pic/device.h,
4284         * src/pic/device.c: Will no longer exit if #pragma maxram has not been defined.
4285
4286 2004-08-06 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
4287
4288         * src/mcs51/gen.c (emitcode): fixed bug #992819
4289
4290 2004-08-05 Maarten Brock <sourceforge.brock AT dse.nl>
4291
4292         * src/pic/ralloc.c (deassignLR): allthough pic port is buggy already,
4293           there's no need to make it worse
4294
4295 2004-08-05 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
4296
4297         * src/mcs51/ralloc.c (deassignLR),
4298         * src/ds390/ralloc.c (deassignLR),
4299         * src/hc08/ralloc.c (deassignLR),
4300         * src/z80/ralloc.c (deassignLR),
4301         * src/pic/ralloc.c (deassignLR),
4302         * src/pic16/ralloc.c (deassignLR),
4303         * src/avr/ralloc.c (deassignLR),
4304         * src/SDCClrange.c (findRecursiveSucc, findRecursivePred, findPrevUse,
4305         rlivePoint): fixed another part of bug #971834
4306
4307 2004-08-04 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
4308
4309         * src/z80/main.c: enabled "critical" keyword
4310         * src/z80/mappings.i,
4311         * src/z80/gen.c (genFunction, genEndFunction): support for interrupt
4312         functions (fixes bug #979646)
4313         * doc/sdccman.lyx: added a subsection explaining z80 interrupt support
4314
4315 2004-08-04 Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
4316
4317         * src/mcs51/gen.c (genInline): Add \n for labels, not DOS/WIN dirs
4318           such as c:\mydir.
4319
4320 2004-08-03 Maarten Brock <sourceforge.brock AT dse.nl>
4321
4322         * src/SDCCloop.c (loopInvariants): fixed bug 983545, hope this
4323           doesn't disable too much optimizations
4324
4325 2004-08-02 Slade Rich <slade_rich AT users.sourceforge.net>
4326
4327         * src/pic/glue.c Disabled "WARNING: function 'main' undefined" when -S option is used.
4328
4329 2004-08-02 Maarten Brock <sourceforge.brock AT dse.nl>
4330
4331         * src/SDCClrange.c (rlivePoint): fixed bug 988568, thanks to anonymous
4332
4333 2004-08-02 Slade Rich <slade_rich AT users.sourceforge.net>
4334
4335         * src/pic/gen.c tidied up tabs
4336         * src/pic/genarith.c tidied up tabs and fixed bug with literal multiple where same register was used for hi and low byte
4337         * src/pic/main.c tidied up tabs
4338         * src/pic/pcode.c tidied up tabs and disabled verbose code generation
4339         * src/pic/pcoderegs.c tidied up tabs
4340         * src/pic/ralloc.c tidied up tabs
4341
4342 2004-07-30 Vangelis Rokas <vrokas AT otenet.gr>
4343
4344         * src/SDCCmem.c (allocGlobal): don't turn S_REGISTER storage class
4345         to S_FIXED for pic16 port and when symbol is not in level 0,
4346         allocate for S_REGISTER storage class and pic16 port, too,
4347         * src/pic16/device.h: prototype for checkSym,
4348         * src/pic16/device.c (pic16_dump_access, checkSym): NEW,
4349         * (pic16_assignConfigWordValue): test the value and the mask to
4350         validate that the value is suitable for the configuration word,
4351         * src/pic16/glue.c (pic16_printIvalFuncPtr): use 'externs' to
4352         collect extern declared symbols, don't emit symbol twice, check
4353         first if symbol is in publics set first,
4354         * src/pic16/main.c (_pic16_keywords[]): added keyword 'register',
4355         * added command line '--fstack' which enables an experimental
4356         feature for stack access, too buggy to be used yet...
4357         * src/pic16/ralloc.c (pic16_accessregWithName): NEW,
4358         * (pic16_allocDirReg): when register has storage class S_REGISTER
4359         allocate in pic16_dynAccessRegs,
4360         * device/include/pic16/pic18f????.h: modified configuration word
4361         naming convention, words started as CONFIG0H but should be CONFIG1H
4362
4363 2004-07-29 Maarten Brock <sourceforge.brock AT dse.nl>
4364
4365         * device/include/mcs51reg.h: fixed bug 970993
4366
4367 2004-07-27 Maarten Brock <sourceforge.brock AT dse.nl>
4368
4369         * added lib/calloc.c, lib/free.c, lib/realloc.c, include/stddef.h
4370         * updated lib/malloc.c, lib/libsdcc.lib, lib/Makefile.in, include/malloc.h
4371         * src/SDCC.lex (doPragma): added pragma disable_warning <nnn>
4372         * src/SDCCmain.c (parseCmdLine): added option --disable-warning <nnn>
4373         * src/ds390/gen.c (genPlusIncr): fixed bug when incrementing generic pointers
4374         * support/Util/SDCCerr.c (vwerror): suppress disabled warnings and output
4375           error/warning numbers,
4376           added function setWarningDisabled()
4377         * support/Util/SDCCerr.h: added setWarningDisabled() and MAX_ERROR_WARNING
4378         * support/regression/ports/mcs51-stack-auto/spec.mk: added dependencies
4379           _memcmp.c _memmove.c calloc.c realloc.c free.c
4380         * support/regression/tests/malloc.c: added tests for new functionality
4381         * support/regression/tests/zeropad.c: added tests for truncated initializers
4382           and initialized char arrays starting with '\x0'
4383         * src/mcs51/peeph.def: fixed regression, added peephole 177.f
4384
4385 2004-07-26 Bernhard Held <bernhard AT bernhardheld.de>
4386
4387         * support/valdiag/tests/overflow.c: fixed warning on (1 >> 40)
4388
4389 2004-07-26 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
4390
4391         * doc/sdccman.lyx: updated example in section "Absolute Addressing"
4392         * src/mcs51/peeph.def: added contributed fix for "bug" #995347 as
4393         peephole 177.e. Thanks to anonymous
4394
4395 2004-07-25 Vangelis Rokas <vrokas AT otenet.gr>
4396
4397         * src/pic16/glue.c (pic16_printIvalFuncPtr): when an extern
4398         function isn't used in the source but referenced as a
4399         variable initializer then declare it as extern in .asm file
4400
4401 2004-07-24 Vangelis Rokas <vrokas AT otenet.gr>
4402
4403         * .version: increased version number to 2.4.3
4404
4405         Adding version extension according to ChangeLog CVS revision
4406         * src/Makefile.in (target all): added dependency 'version.h'
4407         * (rule version.h): added rule to create version.h from ChangeLog,
4408         * (rule dep): added dependency version.h,
4409         * src/version.awk: AWK script to create version.h
4410         * src/SDCCdwarf2.c (dwWriteModule),
4411         * src/SDCCglue.c (initialComments),
4412         * src/SDCCmain.c (printVersionInfo): modified to write after
4413         version string the version extension number,
4414         * src/SDCCutil.c: included "version.h"
4415         * (getBuildNumber): NEW, returns SDCC's ChangeLog minor revision
4416         number,
4417         * src/SDCCutil.h: added prototype for getBuildNumber
4418
4419         * src/SDCCmain.c (parseCmdLine): when sOpt is 'I' add rest in
4420         includeDirsSet, too,
4421         * src/SDCCsymt.c (checkSClass): don't emit error when a variable,
4422         const char [] is found in function prototype...
4423
4424         * src/pic16/genarith.c (pic16_genUMult8XLit_8): optimization to omit
4425         moving to WREG with source is already in WREG,
4426         * src/pic16/gen.h: added AOP_FSR0 and AOP_FSR2 in enum,
4427         * src/pic16/gen.c (getFreePtr): updated to look for FSR0 and FSR2,
4428         * (aopForSym): stack'ed symbols are partially supported, added
4429         if-clause to support symbols in FARSPACE,
4430         * (sameRegs): added test for AOP_ACC to see if registers are same,
4431         * (pic16_freeAsmop): added case for AOP_FSR0 and AOP_FSR2,
4432         * (pic16_aopGet): added case for AOP_FSR0 and AOP_FSR2,
4433         * (pic16_popRegFromString): will not allocate a new register if it
4434         doesn't find one by name, bug may have introduced...
4435         * (pic16_popGet): added case for AOP_FSR0 and AOP_FSR2,
4436         * (genIpush): revived to use pic16 port's stack,
4437         * (genAddrOf): added incomplete case for stack'ed operand,
4438         * (genCast): optimized a pair of MOVFW,MOVWF to MOVFF
4439         * src/pic16/genutils.c (pic16_genNot): almot new vesrion for NOT,
4440         can handle multibyte operands,
4441         * src/pic16/glue.c (pic16_printIval*): some debug info added,
4442         * (pic16initialComments): added message for MPLAB compatibility
4443         mode enabled,
4444         * src/pic16/main.h: prototype for pic16_mplab_comp,
4445         * src/pic16/main.c (pic16_optionsTable): new option --mplab-comp,
4446         which enabled MPLAB compatibility mode (i.e. no #LINE/#FILE, BANKED)
4447         * (_pic16_linkEdit): NEW, handles link stage, transferred here
4448         because of increased complexity of procedure,
4449         * (_process_pragma): stack pragma changed to format 'stack pos len',
4450         emit symbol '_stack_end' to conform with gplink,
4451         * src/pic16/pcode.c (pic16_newpCodeOpBit): using pic16_regWithName
4452         to search for register,
4453         * (pic16_get_op, pic16_get_op2): added case for PO_W, PO_WREG and
4454         PO_GPR_REGISTER,
4455         * (pic16_pCode2str): when in MPLAB compatibility mode, comment out
4456         #LINE directives and replace 'B' with 'BANKED' in instruction opcodes
4457         * (pic16_getRegFromInstruction, pic16_getRegFromInstruction2): added
4458         case for PO_GPR_REGISTER,
4459         * (pic16_AnalyzeBanking): removed the old message for inc2h.pl, past
4460         dies, the new era is ahead !...
4461         * src/pic16/ralloc.c: added hash reposits pic16_dynAllocRegNames and
4462         pic16_dynInternalRegs,
4463         * (pic16_allocregWithName, pic16_procregWithName, pic16_regWithname): NEW,
4464         * (pic16_allocDirReg): minor optimizations and bug fixes,
4465         * (pic16_allocWithIdx): when searching pic16_dynProcessorRegs use fixed,
4466
4467         * device/lib/pic16/startup/crt0*.c: extern definition of stack_end,
4468         load stack and frame pointer with address of 'stack_end' symbol
4469
4470 2004-07-23 Vangelis Rokas <vrokas AT otenet.gr>
4471
4472         * src/pic16/glue.c (pic16emitStaticSeg): fixed bug with files
4473         without source code but only variable initializers
4474
4475 2004-07-20 Vangelis Rokas <vrokas AT otenet.gr>
4476
4477         * src/pic16/glue.c (pic16emitRegularMap): unused functions marked as
4478         external are not declared as extern to reduce overhead while linking
4479
4480 2004-07-20 Maarten Brock <sourceforge.brock AT dse.nl>
4481
4482         * src/SDCCast.c (decorateType): removed buggy fix for bug #979599
4483
4484 2004-07-11 Maarten Brock <sourceforge.brock AT dse.nl>
4485
4486         * src/SDCCglue.c (printIvalArray): fixed bug #984229, thanks to Phuah
4487           Yee Keat for the patch
4488         * src/SDCCast.c (decorateType): fixed bug #979599
4489         * src/ds390/gen.h: removed local fReturnSizeDS390
4490         * src/ds390/gen.c: made fReturnSizeDS390 signed short to remove a warning
4491         * src/ds390/gen.c (genAnd, genOr, genXor),
4492         * src/mcs51/gen.c (genAnd, genOr, genXor): generate better optimized code
4493
4494 2004-07-04 Vangelis Rokas <vrokas AT otenet.gr>
4495
4496         * src/SDCCmain.c (linkEdit): modifications only for pic16 port,
4497         add relFilesSet to $3, manipulate $2 to handle linking of object
4498         files without source files in command line,
4499         * device/include/pic16 (all headers): added ID location macros,
4500         * src/pic16/device.c (struct PIC16_device Pics16[]): added field
4501         entries for ID location bytes,
4502         * (pic16_assignIdByteValue): NEW,
4503         * src/pic16/device.h: new structures idRegInfo_t and idBytesInfo_t,
4504         added field dumpcalltree to pic16_options_t,
4505         * src/pic16/gen.c (genCmp): fixed bug case so a temporary register
4506         is used instead of pic16_Gstack_base_addr, check if (ifx) before
4507         emitting rFalseIfx label after check_carry label,
4508         * src/pic16/glue.c (PIC16_IS_IDLOC_ADDRESS, PIC16_IS_HWREG_ADDRESS,
4509         pic16_emitDIRegs), NEW
4510         * (pic16glue): dump .calltree file when option --calltree found,
4511         * src/pic16/main.c (OPTION _pic16_optionsTable): new option --calltree
4512         * (_pic16_genAssemblerPreamble): emit ID locations after
4513         configuration registers,
4514         * (pic16_linkCmd): modifications of the link command,
4515         * src/pic16/pcode.c (pic16_pciMOVFF): PCC_REGISTER replaces PCC_REGISTER2
4516         * (pic16_pCodeInitRegisters): don't init stack registers,
4517         * (pic16_findPrevInstruction): fixed bug,
4518         * (pic16_getRegFromInstruction, pic16_getRegFromInstruction2): fixed
4519         bug with immediate registers,
4520         * (buildCallTree): traces stack push and pop,
4521         * (pct2): dump also stack usage for each function,
4522         * src/pic16/ralloc.c (dynrIdx): registers names start from 0x00
4523         * (pic16_allocDirReg): various modifications,
4524         * (pic16_typeRegWithIdx): when searching pic16_dynProcessorRegs set
4525         fixed to 1,
4526
4527 2004-07-02 Vangelis Rokas <vrokas AT otenet.gr>
4528
4529         * src/pic16/pcode.c: removed buggy double colon
4530
4531 2004-07-01 Borut Razem <borut.razem AT siol.net>
4532
4533         * support/scripts/sdcc.nsi: added include/pic16 to setup
4534
4535 2004-06-30 Vangelis Rokas <vrokas AT otenet.gr>
4536
4537         * device/lib/Makefile.in: fixed bug in target objects-pic16,
4538         * device/lib/pic16/Makefile: prefixed with dash (-) command under
4539         target 'clean',
4540         * doc/sdccman.lyx: changed version to 2.4.2 and added some port
4541         specific command line arguments. Also added sample lkr script
4542         for placing a variable at a specific memory bank.
4543         * src/pic16/device.c (pic16_dump_gsection): NEW, to dump variables
4544         at a specific memory bank,
4545         * (pic16_dump_isection): fixed bug which caused string literals to
4546         be omitted when dumping idata section,
4547         * (pic16_groupRegistersInSection): added code to handle registers
4548         in specific memory banks,
4549         * src/pic16/gen.c: labelOffset is prefixed with pic16_ and made
4550         public, all references are renamed too,
4551         * (pic16_aopGet): removed switch cases for AOP_R0,AOP_R1,AOP_DPTR,
4552         AOP_DPTR2,
4553         * (pic16_storeForReturn): added case to handle when dest is WREG,
4554         * src/pic16/genarith.c (pic16_pCodeOpSubType): NEW,
4555         * src/pic16/glue.c (pic16emitRegularMap): when adding a register in
4556         pic16_rel_udata, check to see if that register is marked as being
4557         a member of a specific memory bank,
4558         * (pic16_printIvalCharPtr): added code to add string literals either
4559         to code or the idata sections,
4560         * src/pic16/main.c (_process_pragma): added \n to WHITE constant,
4561         also accept the 'udata' pragma,
4562         * src/pic16/main.h: new structure types sectName and sectSym
4563         * src/pic16/pcode.c: added new pCodeInstruction entry for BANKSEL
4564         * (newpCodeOpBit): added PIC_OPTYPE subt in function prototype,
4565         * (pic16_findPrevInstruction): fixed, it returned nothing,
4566         * (insertBankSwitch): fixed to emit banksel/skip and skip/banksel
4567         instruction combinations,
4568         * (pic16_FixRegisterBanking): heavily reorganised,
4569         * (pic16_AnalyzeBanking): if generating banksel directives is
4570         disabled, then don't call FixRegisterBanking at all,
4571         * src/pic16/ralloc.c (bitEQUs, aliasEQUs, allDefsOutOfRange):
4572         completely removed,
4573         * (pic16_writeUsedRegisters): added call to pic16_dump_gsection
4574
4575 2004-06-29 Bernhard Held <bernhard AT bernhardheld.de>
4576
4577         * src/SDCCglue.c (printChar): fixed bug #973350, patch provided by
4578         Phuah Yee Keat <yk.phuah AT nestac.com>
4579
4580 2004-06-28 Vangelis Rokas <vrokas AT otenet.gr>
4581
4582         * src/pic16/glue.c (pic16createInterruptVect): function now emits
4583         correctly the IVT even if it is relocated to some other location
4584
4585 2004-06-28 Vangelis Rokas <vrokas AT otenet.gr>
4586
4587         * device/include/pic16/pic18fregs.h: added case for pic18f2220.h
4588         * device/include/pic16/pic18f2220.h: NEW,
4589         * device/lib/pic16/libdev/pic18f2220.c: NEW,
4590         * device/lib/pic16/libdev/Makefile: added 18f2220 in DEVS,
4591         * src/pic16/device.c (struct Pics16): added info for 18f2220,
4592         * src/pic16/device.h (struct pic16_options): added ivt_loc and
4593         nodefaultlibs, ivt_loc is the location of the interrupt vector
4594         table, and nodefaultlibs signs that default libraries should not be
4595         linked in link stage,
4596         * src/pic16/gen.c (genFunction): relocate interrupt vector functions
4597         according to --ivt-loc argument,
4598         * src/pic16/main.c (_process_pragma): emit '_stack' as public symbol
4599         when pragma stack is found,
4600
4601 2004-06-25 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
4602
4603         * src/mcs51/peeph.def: added peepholes 182.d (return 0.0),
4604         256 (range check), 257 (do while), 258.a-f (bit banging
4605         f.e. on 3-wire SPI bus)
4606
4607 2004-06-21 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
4608
4609         * src/SDCClrange.c (findNextUseSym): fixed a live range bug with
4610         variables used exclusively within a loop
4611
4612 2004-06-21 Bernhard Held <bernhard AT bernhardheld.de>
4613
4614         * src/mcs51/gen.c (genCpl): quick fix for bug #974835
4615
4616 2004-06-21 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
4617
4618         * src/SDCClrange.c (computeClash): fixed bug #971834
4619
4620 2004-06-20 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
4621
4622         * src/mcs51/gen.c (genCmp): fixed bug #975903
4623         * src/hc08/gen.c (operandsEqu),
4624         * src/ds390/gen.c (operandsEqu),
4625         * src/z80/gen.c (operandsEqu),
4626         * src/pic/gen.c (operandsEqu),
4627         * src/pic16/gen.c (operandsEqu),
4628         * src/mcs51/gen.c (operandsEqu): fixed bug #976283
4629         * src/SDCCmain.c (parseCmdLine): report --unknown-option only once
4630
4631 2004-06-15 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
4632
4633         * src/SDCCcse.c (cseBBlock): fixed bug #966963
4634
4635 2004-06-12 Vangelis Rokas <vrokas AT otenet.gr>
4636
4637         * src/pic16/gen.c (genPointerGet): added E_INTERNAL_ERROR for
4638         default case in switch statement,
4639         * glue.c (pic16_initPointer): expr is initialised via decoarteType
4640         to eliminate problem with initialisation of pointers, but problem
4641         still exists,
4642         * (pic16_pointerTypeToGPByte): removed, no needed for pic16,
4643         * (emitStaticSegment): removed various lines emitting debug info,
4644         * src/pic16/pcode.c, src/pic16/pcode.h, src/pic16/ralloc.h:
4645         added processor registers for utilizing EEPROM,
4646         * src/pic16/pcode.c (pic16_emitDB): number of DBs emitted is not
4647         configurable and set 8
4648
4649 2004-06-08 Vangelis Rokas <vrokas AT otenet.gr>
4650
4651         * .version: increased version number to 2.4.2,
4652
4653         Cumulative patch for pic16 port
4654         * src/pic16/device.c: changed scheme to dump initial values for
4655         variables in idata segment, all print_idata* functions were removed,
4656         now the pic16_printIval* will be called,
4657         * src/pic16/glue.c: (pic16_initPointer, pic16_pointerTypeToGPByte,
4658         * _pic16_printPointerType, pic16_printPointerType,
4659         * pic16_printGPointerType, pic16_printIvalArray, pic16_printIvalStruct,
4660         * pic16_printIvalBitFields, pic16_printIvalFuncPtr, pic16_printIvalPtr:
4661         NEW, similar to the respective functions in SDCCglue.c,
4662         * src/pic16/pcode.c (pic16_emitDB, pic16_flushDB): reverted to old
4663         way, emitting hex bytes,
4664         * (pic16_emitDS): NEW, emits a string for pointer initialisation,
4665
4666 2004-06-08 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
4667
4668         * src/avr/ralloc.c (serialRegAssign),
4669         * src/xa51/ralloc.c (serialRegAssign),
4670         * src/pic/ralloc.c (serialRegAssign),
4671         * src/pic16/ralloc.c (serialRegAssign),
4672         * src/hc08/ralloc.c (serialRegAssign),
4673         * src/z80/ralloc.c (serialRegAssign),
4674         * src/ds390/ralloc.c (serialRegAssign),
4675         * src/mcs51/ralloc.c (serialRegAssign): fixed bug #964479
4676
4677 2004-06-08 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
4678
4679         * src/SDCCicode.c (geniCodeJumpTable): fixed bug #967601
4680         * src/SDCCpeeph.c (labelIsReturnOnly): fixed bug #966505
4681
4682 2004-06-07 Vangelis Rokas <vrokas AT otenet.gr>
4683
4684         Cumulative patch for pic16 port:
4685         * src/pic16/device.h (typedef PIC16_device) modified fields for
4686         defining microcontrollers,
4687         * src/pic16/device.c: added new info for all devices in Pics16 array,
4688         * src/pic16/gen.c (genPcall): fixed bug that caused the return label
4689         to be optimised out by the pCode optimiser,
4690         * src/pic16/glue.c (pic16emitRegularMap): treat implicit aggragates
4691         specially, bug reported by G.M. Gallant,
4692         * src/pic16/pcode.c (pic16_newpCodeLabelFORCE): NEW, marks a label
4693         as force'd so that cannot be optimised out by pCode optimiser,
4694         * src/pic16/pcode.c,
4695         * src/pic16/pcodepeeph.c,
4696         * src/pic16/pcoderegs.c: many modifications to re-enable peepholes,
4697         they are disabled by default, but can be enabled explicit with
4698         command argument --denable-peeps, for testing,
4699         * device/lib/pic16/startup/Makefile: added --no-peep,--pomit-config-words,
4700         --pomit-ivt in COMPILE_FLAGS
4701
4702 2004-06-06 Maarten Brock <sourceforge.brock AT dse.nl>
4703
4704         * src/pic16/pcode.c (pic16_emitDB): removed double semicolon which fails
4705           compilation on MSVC
4706
4707 2004-06-06 Maarten Brock <sourceforge.brock AT dse.nl>
4708
4709         * device/include/sab80515.h: added sfr P6, changed GPL to LGPL
4710
4711 2004-06-06 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
4712
4713         device/include/sab80515.h: fixed bug #967492, DAPR is defined at adress
4714         0xd8, but the correct adress is 0xda. Thanks to anonymous for reporting
4715
4716 2004-06-06 Vangelis Rokas <vrokas AT otenet.gr>
4717
4718         * src/pic16/device.c (pic16_assignConfigWord): fixed bug that
4719         would only assign 0x300001 register.
4720
4721 2004-06-05 Vangelis Rokas <vrokas AT otenet.gr>
4722
4723         * device/lib/pic16/startup/Makefile: added $(MODELFLAGS)
4724         in COMPILE_FLAGS. Thanks to G. Gallant for report.
4725
4726 2004-06-05 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
4727
4728         * doc/sdccman.lyx: minor changes, mentioned beta vendor support
4729         for ds80c400
4730         * src/mcs51/peeph.def: ran unexpand -a over peeph.def
4731         * src/mcs51/peeph.def: removed obsolete peephole 100.a,
4732         added peephole 254 (left shift), 255 (jump table)
4733
4734 2004-06-04 Vangelis Rokas <vrokas AT otenet.gr>
4735
4736         * device/lib/Makefile.in: removed comment line with model-pic16,
4737         * (target port-specific-objects-pic16): the libraries and objects
4738         are copied to the build directory form the device/lib/pic16/bin
4739         directory
4740
4741         Cumulative patch concerning pic16 port:
4742         * library directory has been re-organized,
4743         * added support for PIC18F1220,
4744         * added headers and library sources for chips 18f1220,18f6520,
4745         18f6620,18f6680,18f6720,18f8520,18f8620,18f8680,18f8720
4746
4747         * configuration registers setting has changed, now each supported
4748         device has a complete description of the registers it uses,
4749         * all initialisations are moved to idata sections, these section
4750         can be absolute or relocatable,
4751         * fixed initialisation of codespace variables,
4752         * fixed warning about PCLATU and gpsim,
4753         * src/pic16/gen.c (genCmp): now can handle partially iCodes with no ifx,
4754         * (genAssign): use table reads when assigning from variables in codespace,
4755         * src/pic16/glue.c (pic16emitStaticSeg): fixed to correctly initialise
4756         char/int variables placed in codespace,
4757         * (pic16_emitConfigRegs): NEW, emits a list with configuration
4758         registers set in .asm file, no need for --pomit-config-words anymore,
4759         * (pic16glue): some 8051 legacy segments are commented out
4760         (to be removed completely),
4761         * added support for alternative assembler and linker with --asm=
4762         and --link= command line arguments,
4763         * peepholes are disabled automatically in the port, no need to
4764         specify on command line,
4765         * port supports natively char/int/long multiplication, but converts
4766         all divisions to support functions,
4767         * main.c: pic16_linkCmd and pic16_asmCmd changed to force output
4768         to the file set in variable $2,
4769         * pcode.c (pic16_emitDB, pic16_flushDB): modified to print printable
4770         strings in ASCII format and not in hex,
4771         * ralloc.c (serialRegAssign): added a triplet of conditional calls
4772         to pic16_allocDirReg for IC_RESULT, IC_LEFT and IC_RIGHT so to
4773         allocate proper register if iCodes aren't temporary,
4774
4775 2004-06-02 Maarten Brock <sourceforge.brock AT dse.nl>
4776
4777         * support/regression/tests/zeropad.c: added TEST_G macro for alpha
4778
4779 2004-06-02 Vangelis Rokas <vrokas AT otenet.gr>
4780
4781         * src/pic16/gen.c (genPcall): warning about gpsim and PCLATU
4782         is commented out
4783
4784 2004-06-01 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
4785
4786         * src/hc08/gen.c (genPointerGetSetOfs): disabled optimization if
4787         computed address is reused
4788         * src/hc08/gen.c (genPackBits): fixed offsets in assignments to
4789         multi-byte bitfields
4790
4791 2004-06-01 Maarten Brock <sourceforge.brock AT dse.nl>
4792
4793         * src/z80/gen.c: (genArrayInit): must check for pointers too
4794
4795 2004-06-01 Maarten Brock <sourceforge.brock AT dse.nl>
4796
4797         * support/regression/tests/zeropad.c: never meant to commit the
4798           nestedstruct test: removed, added check for GCC version
4799
4800 2004-05-31 Maarten Brock <sourceforge.brock AT dse.nl>
4801
4802         * src/SDCCast.c (createIvalArray): fixed bug 770487 SIGSEGV
4803         * src/SDCCglue.c (emitRegularMap): fixed bug 770484 allocation problem
4804         * src/SDCCglue.c (initPointer, printIvalType, printIvalStruct,
4805           printIvalArray, printIvalFuncPtr, printIvalPtr, printIval): fixed
4806           bugs 928906 and 954082 half-empty initializers
4807         * src/SDCCsymt.h,
4808         * src/SDCCsymt.c (getAllocSize): added for above fix
4809         * src/z80/gen.c (genArrayInit): fixed bug 741044
4810         * support/regression/tests/zeropad.c: added tests
4811
4812 2004-05-30 Vangelis Rokas <vrokas AT otenet.gr>
4813
4814         * src/pic16/device.c (pic16_dump_section): corrected bug which
4815         caused some symbols of the libraries to be misplaced
4816
4817 2004-05-28 Vangelis Rokas <vrokas AT otenet.gr>
4818
4819         * src/pic16/glue.c,
4820         * src/pic16/ralloc.h,
4821         * src/pic16/ralloc.cc: prefixed IS_CONFIG_ADDRESS with PIC16_
4822         to fix conflict with pic port
4823
4824 2004-05-28 Vangelis Rokas <vrokas AT otenet.gr>
4825
4826         * src/pic16/glue.c (pic16emitStaticSeg): do not print as publics or
4827         externs configuration variables,
4828         * src/pic16/ralloc.h,
4829         * src/pic16/ralloc.cc: IS_CONFIG_ADDRESS is made public and added
4830         prototype in header, commented out some debug messages
4831
4832 2004-05-26 Vangelis Rokas <vrokas AT otenet.gr>
4833
4834         * src/pic16/glue.c,
4835         * src/pic16/main.c,
4836         * src/pic16/pcode.c: added gpasm directives #FILE/#LINE
4837         for gpasm COFF object generation. Thanks to D. Hawkins for
4838         his patch info
4839
4840 2004-05-25 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
4841
4842         * src/ds390/main.c,
4843         * src/mcs51/main.c: fixed sort order of mnemonics (thanks to Maarten
4844         Brock for spotting this)
4845         * src/ds390/gen.c (genEndFunction),
4846         * src/mcs51/gen.c (genEndFunction): always save psw if function is an
4847         interrupt handler and critical. Disable push/pop optimizations when
4848         peephole optimizations disabled.
4849
4850 2004-05-25 Vangelis Rokas <vrokas AT otenet.gr>
4851
4852         Updated pic16 library sources and headers.
4853         * device/lib/pic16/pic18f*/ ,
4854         * device/include/pic16/*.h: modified to handle structured SFR
4855         definitions
4856
4857 2004-05-25 Vangelis Rokas <vrokas AT otenet.gr>
4858
4859         * src/port.h (PORT structure): added hook initPaths, now each
4860         port can declare its own default search paths,
4861         which can been seen with the --print-search-dirs option,
4862         see pic16 port for example,
4863         * src/SDCCmain.c (setBinPaths, setIncludePaths, setLibPath,
4864         setDataPaths): test to options.printSearchDirs is ifdef'ed out,
4865         * (doPrintSearchDirs): NEW, replaces in a central manner the
4866         printing of search dirs which was split in set*Paths functions,
4867         * (main): added call to port->initPaths and doPrintSearchDirs,
4868         * src/avr/main.c,
4869         * src/ds390/main.c,
4870         * src/hc08/main.c,
4871         * src/izt/i186.c,
4872         * src/izt/tlcs900h.c,
4873         * src/mcs51/main.c,
4874         * src/pic/main.c,
4875         * src/pic16/main.c: modified port structures to reflect addition of
4876         initPaths hook,
4877
4878         * src/pic16/device.c (regCompare): registers are finally sorted by name,
4879         * (pic16_dump_section): for registers in same address reserve memory once,
4880         * src/pic16/device.h (struct PIC16_device): changed variable gen_banksel
4881         to no_banksel,
4882         * src/pic16/genarith.c (pic16_genPlus): added code to handle cases where
4883         result is greater in size than right or left,
4884         * (pic16_genUMult8X8_8): there are some cases where the result can
4885         be 16 bits size, so handle these,
4886         * src/pic16/gen.c: changed some pic16_emitpcomment to DEBUGpic16_emitcode,
4887         * (pic16_outBitC): modified to emit pcodes,
4888         * (pic16_storeForReturn): using is_LitOp to see if operand is literal
4889         or not,
4890         * (genDivOneByte): implemented algorithm to divide 8-bits,
4891         * (genCmp): uncommented goto, but issues still exist,
4892         * (genAnd): fixed a bug with variables >8bits,
4893         * (genPackBits): optimization added that uses BCF/BSF to change a
4894         single bit,
4895         * (genAssign): fixed bug when assigning floating point literals,
4896         * src/pic16/glue.c (pic16glue): added assembler directive 'code' before
4897         __sdcc_gsinit_startup label,
4898         * src/pic16/main.c (_pic16_init): removed search directory
4899         initialisations,
4900         * (_pic16_initPaths): NEW, used to initialise search directories,
4901         * (_hasNativeMulFor): support functions for all except char/int
4902         multiplication, and char division,
4903         * (PIC16_port struct): modified entry for native mul support,
4904         * src/pic16/pcode.c (insertBankSwitch): modified to support the renamed
4905         no_banksel option,
4906         * (buildCallTree): call to register_usage is ifdef'ed out,
4907
4908 2004-05-22 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
4909
4910         * device/include/string.h: applied Stas Sergeev's patch to make this
4911         header file compatible with the preprocessor -Wundef option
4912         * src/SDCCmain.c (main): abort compilation if preprocessor reports
4913         failure (fixes bug #941458)
4914
4915 2004-05-21 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
4916
4917         * src/SDCCopt.c (killDeadCode): fixed bug #907733
4918         * support/Util/SDCCerr.c: reworded E_AUTO_ASSUMED diagnostic to clarify
4919         that the variable, not the function, should be static
4920         * src/SDCCval.c (valCastLiteral): fixed bit initialization from literal
4921         to be consistent with non-literal case
4922
4923 2004-05-19 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
4924
4925         * src/SDCCast.c (isConformingBody): fixed bug #949967
4926         * src/SDCCopt.c (cnvToFcall, cnvToFloatCast, cnvFromFloatCast,
4927         convilong): fixed bug #952086
4928
4929 2004-05-18 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
4930
4931         * src/SDCCmem.c (allocVariables): fixed bug #955321
4932
4933 2004-05-18 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
4934
4935         * src/hc08/main.c (_hc08_genAssemblerEnd),
4936         * src/SDCCdwarf2.c (dwOpenFile, dwCloseFile, dwWriteFunction,
4937         dwWriteModule, dwWriteCLine, dwWriteALine, dwarf2FinalizeFile):
4938         completely eliminated the use of a temporary file
4939         * src/SDCCdwarf2.c (dwWriteAttr): fixed bug with location list offset
4940         when more than one file linked
4941         * src/SDCCloop.c (pointerAssigned): fixed bug #954163
4942
4943 2004-05-17 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
4944
4945         * src/SDCCval.c (valForArray): applied Maarten Brock's patch #947682
4946         which fixes bug #543481
4947         * support/regression/tests/bug-751703.c: fixed comments left from a
4948         cut and paste error
4949         * src/SDCCdwarf2.c (dwCloseFile): don't explicitly close a temp file
4950         * src/SDCCdwarf2.c (dwTagFromType): added bitfield support
4951         * src/SDCCdwarf2.c (dwWriteSymbolInternal): handle extern within local
4952         scopes
4953         * src/SDCCdwarf2.c (dwWriteLineNumber): line number deltas are signed
4954         * src/SDCCmain.c (processFile, parseCmdLine): non-alphanumeric chars
4955         are now changed to underscores in moduleName
4956
4957 2004-05-15 Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
4958
4959         * as/mcs51/lkmem.c: better fix for bug #954173
4960
4961 2004-05-15 Maarten Brock <sourceforge.brock AT dse.nl>
4962         committed by Frieder Ferlemann <Frieder.Ferlemann AT web.de>
4963
4964         * device/include/c8051f020.h: newly added SiLabs (Cygnal) header file
4965         * device/include/c8051f000.h,
4966         * device/include/c8051f120.h,
4967         * device/include/c8051f300.h,
4968         * device/include/c8051f310.h,
4969         * device/include/c8051f320.h: updated (added _XPAGE, CAPN, CAPP,
4970         PWM16) and detab'ed
4971
4972 2004-05-15 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
4973
4974         * doc/sdccman.lyx: mentioned sourceforge's delay between web frontend
4975         and mailing lists, doc'ed --no-peep-comments, removed reference
4976         to knoppix (newest version has no LyX/LaTeX), other minor changes
4977         * src/SDCCglue.c (glue): save 2 bytes stack space with
4978         option --main-return. The ljmp could probably be avoided too
4979
4980 2004-05-14 Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
4981
4982         * as/mcs51/lkmem.c, as/mcs51/lkaomf51: fixed bug 954173
4983
4984 2004-05-14 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
4985
4986         * src/SDCCsymt.h: added IS_AUTO(symbol) test macro
4987         * src/SDCCopt.c (isLocalWithoutDef),
4988         * src/SDCCicode.c (operandFromSymbol): use the IS_AUTO test macro
4989         which adds a !IS_EXTERN codition. Fixes bugs #877426 and #751703.
4990         (credit to Maarten Brock for patch #949363, on which this is based)
4991         * support/regression/tests/bug-751703.c: some test cases of extern used
4992         within inner scopes.
4993
4994 2004-05-14 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
4995
4996         * src/SDCCdwarf2.c (dwMatchTypes): structs must have matching
4997         SPEC_STRUCT
4998         * src/SDCCdwarf2.c (dwTagFromType): fix to handle recursive
4999         struct definitions
5000         * src/SDCCdwarf2.c (dwWriteModule, dwNewDebugSymbol, dwWriteEndFunction,
5001         dwWriteLabel): fix to create valid debugger symbols even when
5002         the module name has non-alphanumeric symbols in it
5003         * src/SDCCdwarf2.c (dwWriteSymbolInternal): better detection for
5004         when a variable's allocation has been optimized away
5005
5006
5007 2004-05-13 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
5008
5009         * src/hc08/gen.c (hc08_emitDebuggerSymbol),
5010         * src/hc08/main.c,
5011         * src/mcs51/gen.c (mcs51_emitDebuggerSymbol),
5012         * src/mcs51/main.c,
5013         * src/ds390/gen.c (ds390_emitDebuggerSymbol),
5014         * src/ds390/main.c,
5015         * src/z80/gen.c (z80_emitDebuggerSymbol),
5016         * src/z80/main.c,
5017         * src/pic/gen.c (pic14_emitDebuggerSymbol),
5018         * src/pic/main.c,
5019         * src/pic16/gen.c (pic14_emitDebuggerSymbol),
5020         * src/pic16/main.c,
5021         * src/avr/gen.c (avr_emitDebuggerSymbol),
5022         * src/avr/main.c,
5023         * src/xa51/gen.c (xa51_emitDebuggerSymbol),
5024         * src/xa51/main.c,
5025         * src/SDCCdebug.c (emitDebuggerSymbol),
5026         * src/SDCCdebug.h,
5027         * src/port.h: added a debugger struct to the port struct. Added a
5028         callback for defining debugger symbols
5029
5030         * src/SDCCast.c (createLabel),
5031         * src/SDCC.y (labeled_statement): mark all compiler generated labels
5032         with isitmp = 1
5033         * src/SDCCicode.h,
5034         * src/SDCCicode.c (geniCodeFunctionBody): added a link from the FUNCTION
5035         iCode back to the ast for the function
5036
5037         * src/hc08/ralloc.c (hc08_assignRegisters),
5038         * src/hc08/ralloc.h: define a regs struct for the stack pointer. Removed
5039         unneeded fields from the regs struct.
5040         * src/hc08/gen.c (transferRegReg, genFunction, genEndFunction): use the
5041         pushReg() & pullReg() functions instead of emitcode()
5042
5043         * src/hc08/gen.c (genLabel, genhc08Code),
5044         * src/SDCCdebug.h: Added additional debugger hooks needed for DWARF
5045
5046         * src/cdbFile.c (cdbWriteLabel, cdbWriteScope): Added stubs for unneeded
5047         debugger hooks
5048
5049         * src/hc08/gen.c (genEndFunction, genhc08Code),
5050         * src/hc08/gen.h,
5051         * src/mcs51/gen.c (genEndFunction, gen51Code),
5052         * src/mcs51/gen.h,
5053         * src/ds390/gen.c (genEndFunction, gen390Code),
5054         * src/ds390/gen.h,
5055         * src/z80/gen.c (genEndFunction, genZ80Code),
5056         * src/z80/gen.h,
5057         * src/z80/z80.h,
5058         * src/pic/gen.c (genEndFunction, genpic14Code),
5059         * src/pic/gen.h,
5060         * src/pic16/gen.c (genEndFunction, genpic16Code),
5061         * src/pic16/gen.h,
5062         * src/avr/gen.c (genEndFunction, genAVRCode),
5063         * src/avr/gen.h,
5064         * src/xa51/gen.c (genEndFunction, genXA51Code),
5065         * src/xa51/gen.h,
5066         * src/cdbFile.c (cdbWriteFunction, cdbWriteEndFunction): moved cdb
5067         specific code to cdbFile.c and out of the backend code generators
5068
5069         * as/hc08/lkmain.c (main): removed OMF51 support from link-hc08
5070         * as/hc08/lkarea.c (lnkarea): areas with NOLOAD attribute default
5071         starting address is now 0
5072
5073         * as/hc08/asm.h,
5074         * as/hc08/m08pst.c,
5075         * as/hc08/asmain.c (asmbl): implemented the .sleb128 and .uleb128
5076         assembler directive for DWARF support
5077         * as/hc08/lkelf.c (elf): only increment address when rtflg[] set
5078
5079         * src/src.dsp,
5080         * src/Makefile.in,
5081         * src/SDCCdwarf2.c: preliminary DWARF (ver 2) debugger data generator
5082
5083 2004-05-04 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
5084
5085         * src/hc08/gen.c (genJumpTab, emitcode, genhc08code): fixed stack error
5086         and inappropriate peephole optimization in jump tables
5087
5088 2004-04-30 Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
5089
5090         * as/hc08/m08pst.c,
5091         * src/SDCCglue.c: sdccopt works for the hc08 port now
5092
5093 2004-04-27 Bernhard Held <bernhard AT bernhardheld.de>
5094
5095         * src/SDCCicode.c (geniCodePreInc, geniCodePreDec): fixed bug #942130
5096
5097 2004-04-27 Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
5098
5099         * as/hc08/lkelf.c: sdccconf.h is not available in WIN32
5100
5101 2004-04-24 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
5102
5103         * src/SDCCpeeph.c (replaceRule): support empty replacement peephole
5104         rules
5105         * src/SDCCmain.c,
5106         * src/SDCCglobl.h,
5107         * src/SDCCpeeph.c (getPeepLine): new option --no-peep-comments omits
5108         comments from the peephole optimizer replacement rules
5109         * src/SDCCmem.c (printAllocInfoSeg): give actual location of spilled
5110         symbols
5111         * src/SDCCcse.c (updateSpillLocation),
5112         * src/SDCCopt.c (killDeadCode, findReqv): better tracking of register
5113         equivalents
5114         * src/hc08/ralloc.c (regTypeNum): pseudo symbols must be in DATA only
5115         * src/hc08/main.c (_hc08_finaliseOptions): made pointers to stack
5116         objects far pointers
5117
5118 2004-04-23 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
5119
5120         * src/SDCCsymt.h: a missing part of my last change
5121         * src/pic/ralloc.c (regTypeNum),
5122         * src/pic16/ralloc.c (regTypeNum): fixed statement/declaration order
5123
5124 2004-04-23 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
5125
5126         * src/SDCCicode.h,
5127         * src/SDCCicode.c (aggrToPtrDclType),
5128         * src/SDCCptropt.h,
5129         * src/SDCCptropt.c (ptrBaseRematSym, ptrPseudoSymSafe,
5130         ptrPseudoSymConvert),
5131         * src/pic/ralloc.c (regTypeNum),
5132         * src/pic16/ralloc.c (regTypeNum),
5133         * src/hc08/ralloc.c (regTypeNum),
5134         * src/ds390/ralloc.c (regTypeNum),
5135         * src/mcs51/ralloc.c (regTypeNum): check for dependancy hazards before
5136         creating pseudo symbols (fixed bugs #777768, #930484, and #933966)
5137
5138 2004-04-22 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
5139
5140         * link/z80/lkmain.c (afile),
5141         * as/hc08/lkmain.c (afile),
5142         * as/mcs51/lkmain.c (afile): fix suggested by Maarten Brock to
5143         prevent a pointer problem when a filename has no directory and
5144         no extension specified.
5145
5146 2004-04-21 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
5147
5148         * link/z80/lkmain.c (afile): allow periods in directory names
5149         * link/z80/lkmain.c (afile),
5150         * as/mcs51/lkmain.c (afile),
5151         * as/hc08/lkmain.c (afile): allow linker script file to have an
5152         extension other than ".lnk"
5153         * link/z80/lklex.c (getfid),
5154         * link/z80/lkmain.c (parse),
5155         * as/mcs51/lklex.c (getfid),
5156         * as/mcs51/lkmain.c (parse),
5157         * as/hc08/lklex.c (getfid),
5158         * as/hc08/lkmain.c (parse): Support comments in the linker script
5159         file on lines by themselves and after filenames
5160
5161 2004-04-20 Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
5162
5163         * as/link_hc08.dsp: Added as/hc08/lkelf.c to project.
5164
5165 2004-04-20 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
5166
5167         * src/z80/peeph-z80.def: removed some peephole rules that don't
5168         work with multibyte arithmetic (fixed bug #937126)
5169         * src/mcs51/peeph.def: fixed peephole rules 150-158 to apply only
5170         to registers and not global variables
5171         * src/SDCCicode.c (geniCodeAssign, ast2iCode, geniCodePostInc,
5172         geniCodePreInc, geniCodePostDec, geniCodePreDec,
5173         geniCodeLogicAndOr, geniCodeConditional): enforce strict lvalue
5174         checking for assignments not internally generated (fixed bug #931895)
5175         * src/SDCC.y (postfix_expr): ignore typedefs when looking for a
5176         structure member (fixed bug #930072)
5177
5178 2004-04-19 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
5179
5180         * src/SDCCmain.c (linkEdit),
5181         * src/hc08/main.c (_hc08_parseOptions),
5182         * as/hc08/Makefile.in,
5183         * as/hc08/aslink.h,
5184         * as/hc08/asm.h,
5185         * as/hc08/m08pst.c,
5186         * as/hc08/lkrloc.c (relr, rele),
5187         * as/hc08/lkarea.c (lnkarea)
5188         * as/hc08/lkmain.c (afile, parse),
5189         * as/hc08/lkelf.c: support for ELF output
5190         * as/hc08/lks19.c (s19),
5191         * as/hc08/lkihx.c (ihx): ignore areas with the NOLOAD attribute
5192
5193 2004-04-17 Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
5194
5195         * as/mcs51/lkihx.c: Fixed bug #899105.
5196
5197 2004-04-16 Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
5198
5199         * doc/sdccman.lyx: Added instructons on how to convert MSVC .dsw and
5200         .dsp files from Unix to DOS.
5201
5202 2004-04-16 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
5203
5204         * doc/sdccman.lyx: removed the ANSI-C noncompliance note regarding
5205         function pointers; we have been compliant for several months now.
5206         * src/mcs51/ralloc.c (serialRegAssign): enabled part of my 2004-04-13
5207         change that was accidently commented out
5208         * src/mcs51/gen.c (freeAsmop, getFreePtr, freeForBranchAsmop, genIfxJump,
5209         genCmpEq, jmpTrueOrFalse, genCmp, genAnd, genOr, genXor, genIfx): fixed
5210         bug #922319
5211
5212 2004-04-15 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
5213
5214         * src/hc08/gen.c: output of all of the internal debugging information
5215         is now controlled by the D() macro; it is disabled by default
5216
5217 2004-04-13 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
5218
5219         * src/mcs51/ralloc.c (serialRegAssign, fillGaps, allocThisReg): try
5220         harder to keep the same registers during a CAST iCode
5221         * src/SDCCopt.c (optimizeCastCast, eBBlockFromiCode): casts of char to
5222         long via int can be done in a single cast, if the signedness is
5223         correct.
5224         * support/regression/tests/bug-927659.c: fixed to avoid conflict with
5225         putchar() in tinibios.c in ds390's library
5226
5227 2004-04-12 Bernhard Held <bernhard AT bernhardheld.de>
5228
5229         * src/SDCCast.c (decorateType): fixed bug #898889,
5230         cast result of a literal complement too
5231         * src/mcs51/ralloc.c (packRegsForAssign): fixed bug #930931,
5232         fixed check for bitfields
5233
5234 2004-04-11 Bernhard Held <bernhard AT bernhardheld.de>
5235
5236         * src/SDCCicode.c (geniCodeLogic): made it static,
5237         (geniCodeLogicAndOr): added in order to fix bug #905492,
5238         (ast2iCode): fixed bug #905492
5239         * support/regression/tests/bug-905492.c: added
5240         * src/SDCCast.c (decorateType): don't decorate/process parms twice,
5241         (processParms): fixed bug #927659: don't copy parms, this will clear
5242         decorated flag
5243         * support/regression/tests/bug-927659.c: added
5244
5245 2004-03-29 Bernhard Held <bernhard AT bernhardheld.de>
5246
5247         * src/SDCCast.c (addCast): don't cast float to char
5248         * device/lib/libsdcc.lib: added _memmove
5249
5250 2004-03-28 Bernhard Held <bernhard AT bernhardheld.de>
5251
5252         * device/lib/large/Makefile: fixed parallel execution by
5253         replacing `make` by `$(MAKE)`
5254
5255 2004-03-28 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
5256
5257         * src/hc08/gen.c (genPointerGetSetOfs): correctly handle 1 byte array
5258         offsets (fixes bug #923936)
5259
5260 2004-03-26 Bernhard Held <bernhard AT bernhardheld.de>
5261
5262         * device/lib/small/Makefile: fixed parallel execution by
5263         replacing `make` by `$(MAKE)`
5264
5265 2004-03-23 Bernhard Held <bernhard AT bernhardheld.de>
5266
5267         * device/lib/vprintf.c (vsprintf): minor optimization, see bug #801101
5268
5269 2004-03-23  Scott Dattalo  <scott AT dattalo.com>
5270
5271         * src/pic/gen.c (genCpl): multi-byte complements were not working.
5272         * src/regression/Makefile: Regression test was not running.
5273
5274 2004-03-23 Bernhard Held <bernhard AT bernhardheld.de>
5275
5276         * src/SDCCast.c (resultTypePropagate, decorateType): avoid promotion to int for
5277         complement if possible
5278         * src/SDCCval.c (valComplement),
5279         * src/SDCCicode.c (operandOperation): fixed complement of literal
5280         * support/regression/tests/onebyte.c (testComplement): added
5281
5282 2004-03-22 Bernhard Held <bernhard AT bernhardheld.de>
5283
5284         * src/SDCCast.c (processParms): fixed bug #920866; decorateType() can
5285         return an optimized tree; actually replace actParm with the new tree
5286         * src/SDCCast.h: added some parantheses to remove side effects
5287         * support/regression/tests/bug-920866.c
5288
5289 2004-03-21  Scott Dattalo  <scott AT dattalo.com>
5290         * src/pic/gen.c, src/pic/gen.h, src/pic/genarith.c, src/pic/pcode.c:
5291         Bit operands were not being handled properly in the pic14 port.
5292         (now src/regression/add.c passes again).
5293
5294 2004-03-20 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
5295
5296         * src/SDCC.y (labeled_statement): case and default no longer require
5297         a following statement (RFE #893037)
5298
5299 2004-03-19 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
5300
5301         * src/mcs51/gen.c (pushSide, genSignedRightShift, genDjnz, geniPush):
5302         use MOVA macro to avoid "mov a,acc" when peephole optimizer is
5303         disabled (fixes bug #916294)
5304         * sim/ucsim/s51.src/mov.cc (inst_mov_a_addr): Throw an error on
5305         "mov a,acc"; patch provided by Lenny Story
5306         * device/include/mc68hc908gp32.h: header contibuted by Juan Gonzalez
5307
5308 2004-03-19 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
5309
5310         * src/mcs51/gen.c (genFunction): optimize RECEIVE in reentrant
5311         functions
5312         * src/ds390/gen.c (genFunction, genEndFunction),
5313         * src/ds390/ralloc.c (ds390_assignRegisters),
5314         * src/mcs51/gen.c (genFunction, genEndFunction, mcs51_assignRegisters):
5315         * src/mcs51/ralloc.c (mcs51_assignRegisters): Skip optimizing registers
5316         pushed if there are parameters passed on the stack. Also, a cleaner
5317         way to decide if r0/r1 should be pushed/popped. (Together they fix
5318         bug #918693)
5319
5320 2004-03-18 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
5321
5322         * doc/sdccman.lyx,
5323         * device/lib/mcs51/crtpagesfr.asm,
5324         * device/lib/mcs51/crtxinit.asm,
5325         * device/lib/mcs51/crtxstack.asm: Changed name of _PAGESFR to _XPAGE
5326         to avoid confusion with Si Lab's SFRPAGE register.
5327
5328 2004-03-17 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
5329
5330         * src/SDCCglue.c (emitMaps): allow public sfr variables
5331         * src/SDCCglue.c (initialComments): include compiler build date
5332         with compiler version and put the timestamp of the generated
5333         assembly file on a serperate line to be less confusing.
5334         * src/port.h: added genInitStartup hook
5335         * src/avr/main.c,
5336         * src/ds390/main.c,
5337         * src/hc08/main.c,
5338         * src/pic/main.c,
5339         * src/pic16/main.c,
5340         * src/xa51/main.c,
5341         * src/z80/main.c: genInitStartup initialize as NULL (default to
5342         historical behaviour)
5343         * src/SDCCglue.c (glue): _sdcc_gsinit_startup is now port specific.
5344         * src/mcs51/main.c: (_mcs51_genInitStartup, _mcs51_genExtraAreas,
5345         _mcs51_genXINIT, _mcs51_genRAMCLEAR): link initialization code from the
5346         library instead of hard coding it into the compiler.
5347         * support/regression/ports/mcs51-stack-auto/spec.mk,
5348         * src/SDCCmain.c (linkEdit): added mcs51.lib to the link libraries
5349         * device/lib/mcs51/Makefile,
5350         * device/lib/small/Makefile,
5351         * device/lib/large/Makefile,
5352         * device/lib/mcs51/crtpagesfr.asm,
5353         * device/lib/mcs51/crtstart.asm,
5354         * device/lib/mcs51/crtxclear.asm,
5355         * device/lib/mcs51/crtxinit.asm,
5356         * device/lib/mcs51/crtclear.asm,
5357         * device/lib/mcs51/crtxstack.asm: move most of the mcs51 C runtime
5358         startup/initialization out of src/SDCCglue.c and src/mcs51/main.c
5359         and into user configurable files.
5360         * device/lib/clean.mk: clean mcs51 directory too
5361         * support/regression/tests/longlit.c: added static to T1 declaration
5362         * doc/sdccman.lyx: documented _PAGESFR sfr for customizing pdata
5363         accesses in the initialization code
5364
5365 2004-03-14 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
5366
5367         * device/include/mc68hc908qy.h: corrected declarations of FLBPR and
5368         OSCTRIMVAL as noted in bug #916008
5369
5370 2004-03-14 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
5371
5372         * src/SDCCloop.c (basicInduction): fixed bug with loop induction
5373         in loops with multiple exits (reported as incorrect registers
5374         used by Martin Helmling in Sdcc-user list)
5375
5376 2004-03-12 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
5377
5378         * src/ds390/main.c (_ds390_genAssemblerPreamble): cosmetic change,
5379         made ds390 register extensions look less like error messages
5380
5381 2004-03-12 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
5382
5383         * src/SDCCglue.c (printIvalPtr): fixed bug with pointer initializer
5384         reported by Adam Wozniak in Sdcc-user list
5385
5386 2004-03-10 Bernhard Held <bernhard AT bernhardheld.de>
5387
5388         * src/SDCCast.c (decorateType): fixed with bug and promotion in
5389         arithmetic optimizations, added debug output
5390
5391 2004-03-09 Bernhard Held <bernhard AT bernhardheld.de>
5392
5393         * device/lib/time.c (mktime): fixed bug reported by Bert Thomas
5394         * sdcc.spec: updated and split sdcc into 3 rpms
5395         * src/SDCCast.c (decorateType): &|^ don't need addCast(); addCast() is
5396         needed for literals of LEFT_OP and '+'
5397         * src/SDCCicode.c (geniCodeLogic): I must have been braindead when I
5398         introduced RESULT_TYPE_NOPROM
5399         (geniCodeMultiply): fixed logic for decision if mul is optimized to
5400         left shift
5401         * src/SDCCsymt.c (computeType): op is int; added RESULT_TYPE_OTHER;
5402         limited promotion to int only for '*'
5403         * src/SDCCsymt.h (computeType): op is int, removed RESULT_TYPE_NOPROM
5404
5405 2004-03-09 Hans Dorn <hjdorn AT users.sourceforge.net>
5406
5407         * src/pic16/gen.c (genSkip),
5408         (genc16bit2lit), (gencjneshort): commented out
5409         (is_LitOp): new helper function, checks operand type
5410         (genCmpEq): rewritten
5411
5412 2004-03-08 Bernhard Held <bernhard AT bernhardheld.de>
5413
5414         * support/regression/tests/bug-908454.c: added
5415
5416 2004-03-07 Bernhard Held <bernhard AT bernhardheld.de>
5417
5418         * src/SDCCast.c (addCast): fixed bug #908454 by promoting bits to char
5419         * src/SDCCicode.c (usualBinaryConversions): op needs int type
5420         (geniCodeCast): cosmetic, don't preserve bit storage class
5421         (geniCodeLeftShift): added promotion
5422         (geniCodeLogic): fixed regression
5423         * src/SDCCsymt.c (computeTypeOr): accept bits too
5424         (compareType): 2nd part of fix for bug #908454, needed for bitfields
5425
5426 2004-03-07  Borut Razem <borut.razem AT siol.net>
5427
5428         * support/Util/findme.c: alloca() replaced with malloc()/free() pair
5429
5430 2004-03-06 Vangelis Rokas <vrokas AT otenet.gr>
5431
5432         * src/pic16/ralloc.c (pic16_genPackRegisters): reverted to old
5433         version of pic16_genPackRegisters which does not check if ic is a
5434         CAST operator,
5435         * src/pic16/gen.c (ifxForOp): disabled new and untested code in
5436         function cause string1.c regression test fails
5437
5438 2004-03-06 Bernhard Held <bernhard AT bernhardheld.de>
5439
5440         * sim/ucsim/configure.in,
5441         * sim/ucsim/configure,
5442         * sim/ucsim/doc/Makefile.in: use docdir
5443         * src/SDCC.y: fixed sbit atrributes
5444         * src/SDCCast.c (getResultTypeFromType): added support for bitfields
5445         * src/SDCCast.c (decorateType): |^& need special promotion handling
5446         * src/SDCCast.h,
5447         * src/SDCCsymt.h: moved definition of RESULT_TYPE
5448         * src/SDCCsymt.h (computeType),
5449         * src/SDCCicode.c: computeType() needs op
5450         * src/SDCCsymt.c (checkTypeSanity),
5451         * doc/sddman.lyx: "plain" bitfields are unsigned
5452         * src/SDCCsymt.c (computeTypeOr): added
5453         * src/SDCCsymt.c (computeType): added support for bitfields, fixed
5454         |^& ops
5455         * src/SDCCval.c (val*): computeType() needs op
5456         * src/SDCCval.c (valCastLiteral): fixed casting of bitfields
5457         * support/regression/tests/onebyte.c: added tests for |^&
5458
5459 2004-03-06 Hans Dorn <hjdorn AT users.sourceforge.net>
5460
5461         * src/pic16/gen.c: (genpic16Code) use copy of printILine's output
5462         for writing icode into asm output.
5463
5464 2004-03-05 Vangelis Rokas <vrokas AT otenet.gr>
5465
5466         * src/pic16/device.c: added some debug lines enabled
5467         with macro DEBUG_CHECK,
5468         * src/pic16/genarith.c: more debug in genPlus,
5469         * (pic16_genUMult8XLit_16, pic16_genUMult8X8_16): removed,
5470         * (pic16_genUMult16X16_16, pic16_genUMult16XLit_16): NEW,
5471         * src/pic16/gen.c: added prototypes for pic16_genMult16X16_16,
5472         * (aopForSym): onStack symbols are re-placed in data memspace,
5473         and onStack flag is cleared,
5474         * (pic16_popGetTempReg, pic16_popReleaseTempReg): modified to
5475         copy temporary pcodeop,
5476         * (genPcall): added warning for not updating PCLATU,
5477         * (genFunction): removed test with IFFUNC_CALLEESAVES, its
5478         always true for pic16 port,
5479         * (genMultOneWord): NEW, supports integer multiplication,
5480         * (genMult): modified to call genMultOneWord,
5481         * (ifxForOp): added warning when return NULL,
5482         * src/pic16/glue.c (pic16emitRegularMap): symbol implicit
5483         flag is set before call to operandFromSymbol for implicit
5484         added structures,
5485         * src/pic16/main.c (_pic16_finaliseOptions): options.float_rent,
5486         options.intlong_rent are set by default,
5487         * (_hasNativeMulFor): modified to allow port generation of integer
5488         multiplication,
5489         * src/pic16/ralloc.c (pic16_allocDirReg): commented out line which
5490         set regtype to REG_SFR for all registers, restricting seting the
5491         accessBank flag for registers 0<= r < 0x80 and 0xf80<=r<=0xfff,
5492
5493 2004-03-05 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
5494
5495         * src/mcs51/peephole.def: added 251.b and 253.x. 253.x are applied
5496         more than 500 times in the regression tests
5497
5498 2004-03-05 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
5499
5500         * support/Util/SDCCerr.h,
5501         * support/Util/SDCCerr.c,
5502         * src/SDCC.y (struct_or_union_specifier, enum_specifier,
5503         enumerator_list),
5504         * src/SDCCsymt.c (addSymChain): show location of oriignal definition
5505         for symbol conflicts.
5506         * support/valdiags/tests/enum.c,
5507         * support/valdiags/tests/tentdecl.c,
5508         * support/valdiags/tests/struct.c: expect possible error messages
5509         referring to original symbol definitions.
5510         * src/SDCC.y (struct_or_union_specifier, struct_declarator),
5511         * src/SDCCsymt.h,
5512         * src/SDCCsymt.c (promoteAnonStructs): support anonymous struct/union
5513
5514 2004-03-03 Hans Dorn <hjdorn AT users.sourceforge.net>
5515
5516         * src/pic16/gen.c (gencjne): fixed for right=REG / left=LIT
5517
5518 2004-02-03 Vangelis Rokas <vrokas AT otenet.gr>
5519
5520         * src/pic16/ralloc.c (newReg): fixed bug #908929
5521
5522 2004-03-02 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
5523
5524         * src/ds390/gen.c: added missing #include "main.h"
5525
5526 2004-03-02 Vangelis Rokas <vrokas AT otenet.gr>
5527
5528         * src/pic16/device.c (checkAddSym): NEW, adds a symbol to set while
5529         checking if symbol is already in set,
5530         * src/pic16/device.h: prototype for checkAddSym,
5531         * src/pic16/gen.c: (_G): added entry interruptvector,
5532         * (assignResultValue): removed some commented out lines,
5533         * (genFunction): check for ISR via sym->type, absolute section for
5534         interrupt code is created via a new pBlock, the goto instruction is
5535         placed now correctly at the interrupt vector position, changed all
5536         references from ivec to _G.interruptvector,
5537         * WREG,STATUS,BSR are not saved in stack upon an entry to interrupt
5538         is the interrupt is a high priority one, same for return from ISR,
5539         * src/pic16/glue.c: changed all calls of addSetHead for publics and
5540         externs to calls of checkAddSym,
5541         * src/pic16/pcode.c (pic16_pBlockConvert2*): emit warning when
5542         pic16_pcode_verbose flag is set,
5543         * src/pic16/pcode.h: extern to pic16_pcode_verbose,
5544         * src/pic16/pcoderegs.c: message about how many registers are saved
5545         will only be emitted if pic16_pcode_verbose flag is set,
5546
5547 2004-03-02 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
5548
5549         * src/ds390/ralloc.h,
5550         * src/ds390/ralloc.c (ds390_regWithIdx),
5551         * src/ds390/gen.c (emitcode),
5552         * src/ds390/main.h,
5553         * src/ds390/main.c (instructionSize, ds390newAsmLineNode, updateOpRW,
5554         ds390opcodeCompare, asmLineNodeFromLineNode, getInstructionSize,
5555         ds390operandCompare, getRegsRead, getRegsWritten,
5556         initializeAsmLineNode): customized instruction size calculation for
5557         ds390, started basis for some register optimizations
5558         * src/ds390/gen.c (gen390Code, emitcode): associate iCodes with
5559         corresponding assembly output
5560         * src/ds390/gen.c (genFunction, genEndFunction): added case to handle
5561         missing push/pop of r0/r1. Optimized push/pops
5562
5563 2004-03-01 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
5564
5565         * src/mcs51/main.c (instructionSize): fixed ACALL size
5566         * src/mcs51/main.c (updateOpRW): fixed bug with @dptr, @a+dptr operands
5567
5568 2004-03-01 Vangelis Rokas <vrokas AT otenet.gr>
5569
5570         * src/pic16/device.c (pic16_dump_section): fixed a bug that allowed
5571         the sorting of rlist with NULL elements
5572         * (print_idataType, print_idata): NEW to create idata sections
5573         * src/pic16/device.h: idataSymSet new variable
5574         * src/pic16/gen.c (genFunction): fixed some bugs in string
5575         comparing, improved the absolute section creation for ISRs,
5576         added FSR0L/FSR0H in registers that are saved in an ISR,
5577         * (genInline): fixed the processing of inline snippets,
5578         now they undergo no process by the peephole optimizer
5579         * src/pic16/glue.c (pic16emitRegularMap): symbols with initialiser
5580         are placed in idataSymSet,
5581         * (pic16emitStaticSeg): extern symbols are added in externs,
5582         * src/pic16/ralloc.c (pic16_allocDirReg): work around to reduce bank
5583         switching when aboslute variables are placed in access bank memory
5584         * (pic16_writeUsedRegs): added call to pic16_dump_idata,
5585         * (packRegsForSupport,packRegsForAccUse,packRegsForOneuse):
5586         commented out with #if,
5587         * (pic16_packRegisters): reintroduce the check for CAST because some
5588         symbols are not correctly handled,
5589         * src/pic16/pcode.h: changed the definition of pCodeAsmDir to hold a
5590         pCodeInstruction instead of pCode,
5591         * src/pic16/pcode.c (pic16_newpCodeAsmDir): modified for the new
5592         pCodeAsmDir definition,
5593         * (pic16_pCode2str, genericPrint): when an AsmDir pcode has a NULL
5594         directive, then the argument directive is emitted without the leading
5595         tab, hack for inline labels which must be in the first column,
5596         * (compareLabel,pic16_findNextInstruction),
5597         * (pic16_findPrevInstruction): added case for PO_ASMDIR,
5598         * (insertBankSwitch): modified for the new pCodeAsmDir,
5599
5600 2004-03-01 Hans-Juergen Dorn <hans.dorn AT apl-landau.de>
5601         patch applied by Vangelis Rokas <vrokas AT otenet.gr>
5602
5603         * src/pic16/gen.c (pic16_popGet): case PO_DIR, adds the offset to
5604         instance,
5605         * (pushSide): commented out with #if,
5606         * (assignResultValue): fixed some typos in saving
5607         registers,
5608         * (genPcall): FIXED and sync'ed with genCall,
5609         * (genDataPointerGet,genDataPointerSet): using offset not leoffset
5610         * (genNearPointerGet): fixed to handle some more cases,
5611         implementation scheme via table reads,
5612         * (genConstPointerGet): modified to access code memory correct,
5613         * (genCodePointerGet,genNearPointerSet,genGenPointerSet): modified
5614         and improved to handle some cases
5615         * glue.c (printIvalType,printIvalChar,emitStaticSeg): use "DB"
5616         instead of "RETLW" for init data
5617         * src/pic16/ralloc.c (pic16_allocDirReg): warning when a symbol is
5618         not IN_DIRSPACE, work around to reduce bank switching when aboslute
5619         variables are placed in access bank memory (<0x80 and >=0xf80),
5620         * src/pic16/pcode.c: added SFRs TBLPTR, TABLAT, added opcodes TBLRD,
5621         TBLRD_POSTINC,TBLRD_POSTDEC,TBLRD_PREINC,TBLWT,TBLWT_POSTINC,
5622         TBLWT_POSTDEC,TBLWT_PREINC
5623         * Fixed initialisation of BSR, set "alias" for SSAVE to "0"
5624         * (pic16_emitDB,pic16_flushDB): New functions to generate "DB"
5625         directives
5626         * (pic16_pCodeConstString): use "DB" instead of "RETLW"
5627         * src/pic16/pcode.h: added TBLRD*,TBLWT*, added pic16_emitDB,
5628         pic16_flushDB, made pic16_newpCodeAsmDir public, added TBLPTR, TABLAT
5629         * src/pic16/ralloc.h: added IDX_BSR,IDX_TBLPTR*,IDX_TABLAT
5630
5631 2004-02-29  Borut Razem <borut.razem AT siol.net>
5632
5633         * src/Makefile.in, src/SDCCutil.c, support/Util/findme.c,
5634         support/Util/findme.h, support/Util/system.h: enhance binary relative
5635         search for lib and include by using findProgramPath()
5636
5637 2004-02-28 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
5638
5639         * src/SDCCpeeph.h,
5640         * src/SDCCpeeph.c (pcDistance),
5641         * src/port.h,
5642         * src/mcs51/ralloc.h,
5643         * src/mcs51/ralloc.c (mcs51_regWithIdx),
5644         * src/mcs51/main.h,
5645         * src/mcs51/main.c (instructionSize, asmLineNode, updateOpRW,
5646         mcs51opcodeCompare, asmLineNodeFromLineNode, getInstructionSize,
5647         mcs51operandCompare, getRegsRead, getRegsWritten): made instruction
5648         size calculation port specific, started basis for some register
5649         optimizations
5650         * src/mcs51/gen.c (genFunction, genEndFunction): added case to handle
5651         missing push/pop of r0/r1. Optimized push/pops
5652         * src/mcs51/ralloc.c (packregisters): fixed bug #727095
5653         * device/lib/_modsint.c (_modsint),
5654         * device/lib/_modslong.c (_modslong): fixed sign of result in non-asm
5655         and stack version so regression tests pass
5656
5657 2004-02-26 Bernhard Held <bernhard AT bernhardheld.de>
5658
5659         * src/Makefile.in (dep): include SLIBOBJS in dependency check
5660         * src/SDCCast.c (decorateType): catch another small optimization
5661         with '?' operator
5662         * src/SDCCsymt.c (computeType): added comments and cosmetic changes
5663         * src/SDCCval.c (valMult, valDiv, valMod, valPlus, valMinus, valShift):
5664         modified to finally use computeType() all over SDCC,
5665         see Feature Request #877103
5666         * src/SDCCval.h: cosmetic
5667         * src/SDCCicode.c (operandOperation): fixed EQ_OP bug, now same as in
5668         valCompare(); regression tested in muldiv.c
5669         * support/regression/tests/muldiv.c (testMod): mod sign follows
5670         dividend only
5671
5672 2004-02-23 Bernhard Held <bernhard AT bernhardheld.de>
5673
5674         * src/SDCCast.c (decorateType): fixed bug #902362
5675         * doc/INSTALL.txt: fixed install instructions for win32
5676
5677 2004-02-21 Bernhard Held <bernhard AT bernhardheld.de>
5678
5679         * device/include/Makefile.in (install): fixed by replacing spaces
5680         by tabs
5681         * doc/README.txt,
5682         * doc/INSTALL.txt: updated for release
5683         * doc/sdccman.lyx: added warning for --xstack being buggy
5684
5685 2004-02-20 Bernhard Held <bernhard AT bernhardheld.de>
5686
5687         * src/pic16/ralloc.c (packRegsForAccUse):  disabled functions with #if
5688         to eliminate build warnings.
5689         * src/pic16/gen.c (pic16_popGet): fixed for gcc 2.95.4
5690
5691 2004-02-20 Vangelis Rokas <vrokas AT otenet.gr>
5692            Hans-Juergen Dorn <hans.dorn AT apl-landau.de>
5693
5694         * doc/sdccman.lyx: removed PIC16 from PIC16 Port Specific Options,
5695         removed -penable-stack, added comment for stack pragma, added
5696         warning for not initializing the stack/frame registers, removed
5697         comment at interrupts section
5698
5699         Stack is made permanent, there is no ability to disable stack usage.
5700         * src/pic16/device.h,
5701         * src/pic16/device.c: removed all references to USE_STACK macro,
5702         * src/pic16/device.c (pic16_dump_section): when no elements in
5703         rlist, free rlist before return,
5704         * (pic16_dump_int_registers): NEW, internal registers are a new set
5705         of general purpose registers reused by each function,
5706         * (checkAddReg): returns 1 if registers is added to set,
5707         * (pic16_groupRegistersInSection): when a registers is of type
5708         PO_GPR_TEMP add it in pic16_int_regs and not in pic16_rel_udata,
5709         * src/pic16/device.h: memRange and Assigned Memory are deleted,
5710         SRCASECMP macro is moved here from device.c
5711         * src/pic16/genarith.c (pic16_pCodeOpType): added cases for
5712         PO_PCLATU, PO_PRODL, PO_PRODH,
5713         * (pic16_pCodeOpType, genMinus,
5714         changed compares to "a" register, with AOP_ACC,
5715         * (pic16_genPlus): fixed some bugs and indented properly,
5716         * (pic16_addSign): changed size to size+offset in the MOVWF
5717         instruction,
5718         * (pic16_genUMult8XLit_8): NEW, uses processor MULLW instruction to
5719         multiply 8-bit operand by literal, result is 8-bit,
5720         * (pic16_genUMult8X8_8): NEW, uses processor MULWF instruction to
5721         multiply 2 8-bit operand, result is 8-bit,
5722         * (pic16_genMult8X8_8): modified to call genUMult8X*_8 functions and not
5723         genUMult8X*_16,
5724         * src/pic16/gen.c: changed accUse to contain WREG only,
5725         * (pic16_emitcomment): renamed to pic16_emitpcomment,
5726         * (aopForSym): allocated dir register when IN_DIRSPACE(space) is,
5727         true, do not use immediate addressing any more unless sym is a
5728         pointer in codespace,
5729         * (aopForRemat): do not use immediate addressing when symbol not in
5730         codespace and when symbol's address is requested,
5731         * (aopOp): for-loop in if(sym->accUse) is modified for the new
5732         accUse size (= 1),
5733         * (aopGet): added case for AOP_ACC and don't return "accumulator
5734         bug" but WREG instead,
5735         * (popGetTempReg): pushes contents of temporary register in stack,
5736         * (popReleaseTempReg): pops contents of temporary register from
5737         stack. Use popGetTempReg/popReleaseTempReg in aligned pairs,
5738         * (pic16_popGet): separated case AOP_ACC to return register WREG
5739         from processor registers, AOP_PCODE not checks if pcop is PO_DIR
5740         or PO_IMMEDIATE and initializes their instance/offset appropriately,
5741         * The whole issue with aopForSym,aopForRemat,popGet) is to minimize
5742         the use of immediate pointers to certain cases only.
5743
5744         * (pic16_pushpCodeOpReg, pic16_poppCodeOpReg): use pic16_popGet2p,
5745         * (pic16_loadFromReturn, pic16_storeForReturn: NEW,
5746         * (assignResultValue, genCall, genRet): modified to use the new
5747         function return value scheme with WREG,PRODL,PRODH,FSR0L and FSR0,
5748         genPcall is still broken,
5749         * (genFunction): added code to create 'A' type pBlocks when
5750         interrupt functions are generated, code not extensively tested yet,
5751         ISRs push WREG,STATUS,BSR,PRODL,PRODH,FSR0L,FSR0H registers on stack,
5752         * (genEndFunction): modified so ISRs pop stored registers from stack,
5753         * (genMultOneByte): cleanup,
5754         * (AccRsh): added flag andmask, to and result with appropriate mask,
5755         * (genUnpackBits,genPackBits): fixed and can handle bit fields,
5756         * (genDataPointerGet): fixed and reenabled its use,
5757         * (genNearDataPointerGet): bugs fixed,
5758         * (genDataPointerSet): bugs fixed,
5759         * src/pic16/genutils.c: added functions pic16_DumpValue,pic16_DumpAop,
5760         pic16_DumpSymbol, pic16_DumpOp,
5761         * src/pic16/genutils.h: function prototypes for the above functions,
5762         * src/pic16/glue.c: new flags initsfpnt, to initialize stack/frame
5763         pointers,
5764         * (pic16emitRegularMap): many many many improvements, but needs a
5765         major cleanup,
5766         * src/pic16/main.c: enable_stack in pic16_options is removed,
5767         * (_pic16_parseOptions): removed command line options -penable-stack,
5768         * (_process_pragma): emit stack symbol only when stack pragma is
5769         processed,
5770         * src/pic16/pcode.c: pic16_pc_fsr0 is removed, all operations are
5771         redirected to FSR0L/FSR0H pair,
5772         * (pic16_get_op, pic16_get_op2): modifications and improvements,
5773         * (pic16_getRegFromInstruction, pic16_getRegFromInstruction2): added
5774         cases PO_PRODL,PO_PRODH, pic16_getRegFromInstruction2 returns sane
5775         for immediates,
5776         * (insertBankSwitch): modified to handle cases like: (alfa + 1)
5777         * (dumpPicOptype): NEW,
5778         * src/pic16/pcode.h: added PO_PCLATU,PO_PRODL,PO_PRODH in enum,
5779         * src/pic16/pcoderegs.c (pCodeRegMapLiveRangesInFlow): fixed bug
5780         with movff instruction,
5781         * src/pic16/ralloc.c: renamed typeRegWithIdx to pic16_typeRegWithIdx,
5782         added pic16_int_regs, some packRegsFor* functions are commented out,
5783         because produce errors,
5784         * src/pic16/NOTES: minor modifications
5785
5786 2004-02-18  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
5787
5788         * as/mcs51/aslink.h, as/mcs51/lkarea.c, as/mcs51/lkdata.c, as/mcs51/lkmain.c,
5789         as/mcs51/lkmem.c, src/SDCCglob.h, src/SDCCmain.c: added options --stack-size and
5790         --pack-iram.
5791         * doc/sdccman.lyx: described options --stack-size and --pack-iram.
5792         * as/mcs51/lkaomf51.c: fixed bug #895763
5793
5794 2004-02-17 Bernhard Held <bernhard AT bernhardheld.de>
5795
5796         * device/include/c8051f320.h: added. Contributed by Maarten Brock.
5797
5798 2004-02-17 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
5799
5800         * doc/sdccman.lyx: added details about the HC08 storage classes and
5801         interrupts, fixed the register usage info for z80 & gbz80
5802
5803 2004-02-17 Vangelis Rokas <vrokas AT otenet.gr>
5804
5805         * doc/sdccman.lyx: added more pic16 port documentation
5806         * device/include/pic16/: added header pic18fregs.h
5807
5808 2004-02-16 Bernhard Held <bernhard AT bernhardheld.de>
5809
5810         * doc/sdccman.lyx: added Vangelis' contribution
5811
5812 2004-02-16 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
5813
5814         * src/SDCClrange.c (rlivePoint): live range of SEND operand should
5815         extend to the next CALL or PCALL, not just to the next CALL.
5816
5817 2004-02-16 Vangelis Rokas <vrokas AT otenet.gr>
5818
5819         * src/pic16/gen.c (genInline): fixed bug #896482 with inline assembly
5820
5821 2004-02-15 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
5822
5823         * src/mcs51/ralloc.c (packRegsForAssign, reassignAliasedSym): fixed
5824         bug #895752 and a better fix for bug #716790
5825
5826 2004-02-15 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
5827
5828         * src/SDCCsymt.c (processFuncArgs): fixed bug #896796
5829
5830 2004-02-14 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
5831
5832         * doc/sdccman.lyx: minor changes, minor changed
5833
5834 2004-02-13 Bernhard Held <bernhard AT bernhardheld.de>
5835
5836         * src/SDCCicode.c (usualBinaryConversions): removed pic16 from ports
5837         which can't handle SDCC_NEWONEBYTEOPS,
5838         (geniCodeMultiply): removed conversion from mult to shift for pic14
5839         and pic16
5840
5841 2004-02-12 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
5842
5843         * src/hc08/gen.h,
5844         * src/hc08/gen.c (storeRegToAop, aopOp, aopAdrStr, accopWithAop,
5845         rmwWithAop): Ported my 2003-10-02 fix for bug #663539 to the hc08,
5846         thus fixing bug #895406
5847
5848 2004-02-11 Bernhard Held <bernhard AT bernhardheld.de>
5849
5850         * device/lib/_modsint.c,
5851         * device/lib/_modslong.c: sign follows divisor only
5852         * src/hc08/gen.c (genMultOneByte): if result size is 1,
5853         signs or signedness can be ignored
5854         * src/SDCCast.c (addCast): cosmetic - added lineno to CAST
5855         * src/SDCCast.c (resultTypePropagate): added even more ops: +, - and *,
5856         added optimization for IFX,
5857         (decorateType): Mult/Div/ModOneByte ops can handle all kind of signed
5858         arguments;
5859         reenabled optimization for IFX, which was removed on 2004-01-11
5860         * src/SDCCast.h: added return type IFX
5861         * src/SDCCicode.c: Mult/Div/ModOneByte ops can handle all kind of signed
5862         arguments with 8 or 16 bit results; pic14 and pic16 ports use old
5863         promotion behaviour; env. var. SDCC_NEWONEBYTEOPS selects the new,
5864         SDCC_OLDONEBYTEOPS selects the old behaviour
5865         * src/SDCCsymt.c (computeType): type2 can be NULL (for LEFT_OP);
5866         changed again and commented promotion rule
5867         * src/SDCCval.c (valDiv): promotion no longer necessary
5868         * src/ds390/gen.c (genMultOneByte) (genDivOneByte) (genModOneByte),
5869         * src/mcs51/gen.c (genMultOneByte) (genDivOneByte) (genModOneByte):
5870         rewritten
5871         * support/regression/tests/onebyte.c: added
5872
5873 2004-02-11 Vangelis Rokas <vrokas AT otenet.gr>
5874
5875         * gen.c (genInline): reverted to old code for assemnling inline
5876         code because of bug reported James Chadd
5877
5878 2004-02-10 Vangelis Rokas <vrokas AT otenet.gr>
5879
5880         * ralloc.h: missing declarations from previous patch,
5881         seems that patch for ralloc.h was never applied, fixed
5882
5883 2004-02-10 Hans-Juergen Dorn <hans.dorn AT apl-landau.de>
5884            patch committed by Vangelis Rokas <vrokas AT otenet.gr>
5885
5886         * pcode.c,
5887         * pcode.h,
5888         * ralloc.h: added FSR0L, FSR0H and other missing PIC16 SFR's for
5889         indirect addressing. Marked FSR0 as deprecated
5890         * gen.c (pointerCode): commented out, not needed now
5891         (pic16_popGet2p): new MOVFF helper function
5892         (genGenPointerGet),
5893         (genGenPointerSet): reimplemented with MOVFF and POSTINC0
5894         (shiftRLong): removed duplicate debugging info
5895
5896 2004-02-10 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
5897
5898         * src/ds390/gen.c (genNearPointerGet),
5899         * src/mcs51/gen.c (genNearPointerGet): allow the genDataPointerGet()
5900         optimization with bits, but not bitfields.
5901         * src/ds390/ralloc.c (packRegisters),
5902         * src/mcs51/ralloc.c (packRegisters): fixed bug #884453 & #880832
5903
5904 2004-02-09 Bernhard Held <bernhard AT bernhardheld.de>
5905
5906         * src/SDCCcse.c (algebraicOpts): copy operands before modification
5907
5908 2004-02-09 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
5909
5910         * src/SDCCsymt.h,
5911         * src/SDCCicode.c (operandFromSymbol),
5912         * src/mcs51/ralloc.c (verifyRegsAssigned, serialRegAssign),
5913         * src/ds390/ralloc.c (verifyRegsAssigned, serialRegAssign),
5914         * src/z80/ralloc.c (verifyRegsAssigned, serialRegAssign),
5915         * src/hc08/ralloc.c (verifyRegsAssigned, serialRegAssign),
5916         * src/pic/ralloc.c (verifyRegsAssigned, serialRegAssign),
5917         * src/pic16/ralloc.c (verifyRegsAssigned, serialRegAssign): fixed
5918         bug #892038
5919         * src/SDCCast.c (createIvalStruct, createIvalArray, gatherAutoInit),
5920         * src/SDCCglue.c (emitRegularMap, printIvalStruct, printIvalArray,
5921         printIvalCharPtr, printIvalPtr, printIval, emitStaticSeg, emitOverlay)
5922         * src/SDCCsymt.c (newSymbol),
5923         * src/SDCC.y (struct_or_union_specifier, enum_specifier,
5924         enumerator_list),
5925         * src/SDCCval.h,
5926         * src/SDCCval.c (newiList): fixed bug #885705
5927
5928 2004-02-08  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
5929
5930         * doc/sdccman.lyx: added section 3.1.4: sdcclib.
5931         * as/mcs51/lkmem.c: report the size of the stack in .mem file.
5932
5933 2004-02-08 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
5934
5935         * device/include/c8051f120.h,
5936         * device/include/c8051f300.h,
5937         * device/include/c8051f310.h: added/updated header files for Silicon
5938         Laboratories (formerly Cygnal) CPUs. Contributed by Maarten Brock.
5939         * doc/sdccman.lyx: minor changes, recommended diff -Naur and diff -u
5940         in new section Submitting patches
5941
5942 2004-02-08 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
5943
5944         * src/mcs51/gen.c (genNearPointerGet, genPagedPointerGet,
5945         genFarPointerGet, genCodePointerGet, genGenPointerGet,
5946         genNearPointerSet, genPagedPointerSet, genFarPointerSet,
5947         genGenPointerSet),
5948         * src/ds390/gen.c (genNearPointerGet, genPagedPointerGet,
5949         genFarPointerGet, genCodePointerGet, genGenPointerGet,
5950         genNearPointerSet, genPagedPointerSet, genFarPointerSet,
5951         genGenPointerSet),
5952         * src/pic16/gen.c (genNearPointerGet, genPagedPointerGet,
5953         genFarPointerGet, genCodePointerGet, genGenPointerGet,
5954         genNearPointerSet, genPagedPointerSet, genFarPointerSet,
5955         genGenPointerSet),
5956         * src/pic/gen.c (genNearPointerGet, genPagedPointerGet,
5957         genFarPointerGet, genCodePointerGet, genGenPointerGet,
5958         genNearPointerSet, genPagedPointerSet, genFarPointerSet,
5959         genGenPointerSet): fixed bug #892400
5960         * src/pic16/gen.c (genSkipz, AccRol): disabled functions with #if 0
5961         to eliminate build warnings.
5962         * src/SDCCast.c (processParms),
5963         * src/SDCC.y (function_declarator2, declarator2_function_attributes):
5964         fixed bug 751859
5965         * support/valdiag/valdiag.py: added GCC to the list of defines active
5966         when compiling with gcc
5967
5968 2004-02-07 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
5969
5970         * support/Util/SDCCerr.h,
5971         * support/Util/SDCCerr.c,
5972         * src/SDCCast.c (decorateType, sizeofOp): complain when sizeof is used
5973         with an incomplete type (fixed bug #883734)
5974         * src/SDCCicode.c (geniCodeCast): fixed bug #890510
5975
5976 2004-02-07 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
5977
5978         * src/pic16/gen.c (genCmpEq, shiftRLong): fixed declarations
5979
5980 2004-02-06 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
5981
5982         * src/SDCCast.c (decorateType),
5983         * src/SDCCicode.c (geniCodeParms, geniCodeCall): fixed bugs in my ANSI
5984         function pointer implementation
5985         * support/regression/tests/funptrs.c: added tests to verify both forms
5986         of function pointers work correctly. Added tests to verify parameters
5987         are passed in the correct order.
5988
5989 2004-02-06  Vangelis Rokas <vrokas AT otenet.gr>
5990
5991         * device.c (regCompare): registers are sorted by ascending
5992         address and increasing size,
5993         * main.c (_pic16_finaliseOptions): removed the declaration
5994         of compiler macro MCU. Now a macro of the format pic18fxxxx
5995         will be defined from the command line
5996
5997 2004-02-06  Hans-Juergen Dorn <hans.dorn AT apl-landau.de>
5998             patch committed by Vangelis Rokas <vrokas AT otenet.gr>
5999
6000         * pcode.c (pic16initMnemonics): fixed typo in assignment to PCOP_RLNCF
6001         PCOP_RLCF was overwritten!
6002         * gen.c (genSkip): commented out calls to pic16_emitcode,
6003         * (genCmpEQ): fixed "long" compares, only high word did get compared,
6004         * (genlshTwo),
6005         * (genRRC): added debugging info,
6006         * (shiftL2Left2Result): Fixed bug, if offr > offl. Result got
6007         overwritten while shifting,
6008         * (shiftR2Left2Result): Fixed bug, if offr < offl. Result got
6009         overwritten while shifting,
6010         * (AccLsh),
6011         * (AccRsh),
6012         * (shiftLLeftOrResult),
6013         * (shiftRLeftOrResult),
6014         * (shiftRLong),
6015         * (shiftLLong): Implemented with pic16_emitpcode
6016         * (genlshFour): Replaced pic16_aopPut with pic16_emitpcode,
6017         * (genLeftShift): Fixed bug, operand for shift by variable always
6018         was "and"ed with 0x0f,
6019         * (genLeftShiftLiteral),
6020         * (genrshTwo),
6021         * (genRightShiftLiteral): added debugging info,
6022         * (genrshFour): added comment,
6023         * (genRightShift): determined signedness from operand "left"
6024         instead of "result"
6025
6026 2004-02-04 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
6027
6028         * src/SDCCicode.c (geniCodeParms),
6029         * src/SDCCast.c (decorateType, processParms): support for ANSI-style
6030         function pointers, fixed function pointer bugs #861242 and #861896
6031
6032 2004-01-31 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
6033
6034         * device/include/c8051f000.h,
6035         * device/include/c8051f120.h,
6036         * device/include/c8051f300.h: added header files for Silicon
6037         Laboratories (formerly Cygnal) CPUs. Contributed by Maarten Brock.
6038
6039 2004-01-31 Bernhard Held <bernhard AT bernhardheld.de>
6040
6041         * src/SDCCast.c (processParams): added new type flow and restructured
6042         (gatherAutoInit): added new type flow
6043         (addCast): cosmetic changes
6044         (getLeftResultType): added new type flow for array indices, patch
6045         provided by Stas, see FR #877103
6046         (decorateType): SDCC_NEWTYPEFLOW removed, new type flow is now standard;
6047         array index patch by Stas
6048         * src/SDCCast.h: added prototype getResultTypeFromType()
6049         * src/SDCCval.h,
6050         * src/SDCCval.c (resolveIvalSym) (resolveIvalSym),
6051         * src/pic/glue.c (pic14emitStaticSeg),
6052         * src/pic16/glue.c (pic16emitStaticSeg),
6053         * src/SDCCglue.c (emitRegularMap) (emitStaticSeg): added new type flow
6054         for initialization of symbols
6055         * src/SDCCicode.c (geniCodeArray): removed warning W_ARRAY_BOUND
6056         * support/Util/SDCCerr.h:
6057         * support/Util/SDCCerr.c: replaced W_ARRAY_BOUND by W_IDX_OUT_OF_BOUNDS
6058         * .version: bumped version number to 2.3.8
6059         * device/include/Makefile.in (install),
6060         * doc/Makefile (install): changed to 'rm `find ...`' construct to
6061         avoid warnings
6062
6063 2004-01-30 Bernhard Held <bernhard AT bernhardheld.de>
6064
6065         * support/regression/tests/libmullong.c: fixed for 64 bit hosts
6066         Slade Rich fixed an optimization bug
6067         * src/pic/pcodepeep.c,
6068         * src/pic/pcoderegs.c
6069         * doc/Makefile (install): added test for directory
6070
6071 2004-01-30 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
6072
6073         * src/mcs51/ralloc.c (getRegPtr, getRegGpr),
6074         * src/ds390/ralloc.c (getRegPtr, getRegGpr),
6075         * src/pic/ralloc.c (getRegPtr, getRegGpr),
6076         * src/pic16/ralloc.c (getRegPtr, getRegGpr),
6077         * src/z80/ralloc.c (getRegGpr): fixed bug #883361
6078         * as/mcs51/asexpr.c (term),
6079         * as/hc08/asexpr.c (term): fixed bug #887146
6080
6081 2004-01-29 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
6082
6083         * src/z80/gen.c (genMult): handle single byte result product
6084         * src/SDCCopt.c (killDeadCode): never convert ADDRESS_OF iCode to
6085         DUMMY_READ_VOLATILE (fixed bug #886367)
6086
6087 2004-01-27 Bernhard Held <bernhard AT bernhardheld.de>
6088
6089         * support/regression/tests/libmullong.c: fixed logic, on little endian
6090         hosts we ended without a mullong_wrapper()
6091
6092 2004-01-27 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
6093
6094         * ChangeLog: changed "@" to " AT " in hopes of reducing spam and
6095         virus/worm forged address usage.
6096
6097 2004-01-27 Bernhard Held <bernhard AT bernhardheld.de>
6098
6099         Fixed promotion, it should be done on AST level:
6100         * src/SDCCast.c (addCast): added promotion to int
6101         (decorateType): updated call to upCast()
6102         * src/SDCCicode.c (geniCodeLeftShift): removed call to
6103         usualUnaryConversions()
6104
6105 2004-01-26  Michael Hope  <michaelh AT juju.net.nz>
6106
6107         * support/regression/tests/literalop.c (mulWrapper): Added a
6108         wrapper to remove integer overflow warnings.
6109
6110         * support/regression/tests/float_trans.c: Made work on host.
6111
6112         * support/regression/ports/ucz80/spec.mk (UCZ80): Made detect the
6113         location of sz80.
6114
6115         * support/regression/generate-cases.py (main): Changed from inline
6116         to a main method.
6117
6118         * doc/Makefile (install): Changed to depth first to get rid of
6119         missing directory install warning.
6120
6121         * as/Makefile (install-doc): Made work on Mac.
6122
6123 2004-01-25 Bernhard Held <bernhard AT bernhardheld.de>
6124
6125         * src/SDCCast.c: added an additional type flow in decorateType() of
6126         opposite direction, see feature request #860006; it's enabled at runtime
6127         by setting the environment variable SDCC_NEWTYPEFLOW
6128         * src/SDCCast.h: changed prototype of decorateType()
6129         * src/SDCCglue.c (emitRegularMap): updated call of decorateType()
6130         * src/SDCCicode.c (geniCodeDivision) (geniCodeModulus): promotion from
6131         'char' to 'int' can be omitted, if both operands are 'unsigned char';
6132         see feature request #877103
6133         * src/SDCCval.c: updated call of decorateType()
6134         (valBitwise): fixed bug #882876
6135         (valMinus): added promotion
6136         (valLogicAndOr): result is unsigned
6137         (cheapestVal) (constVal): literals from 0...255 are 'unsigned char' now
6138         * src/SDCCsymt.c (computeType),
6139         * src/mcs51/gen.c (genCmpGt) (genCmpLt): literal 'unsigned char'
6140         must not cause an unsigned operation
6141         * src/pic/glue (pic14emitRegularMap),
6142         * src/pic16/glue.c (pic16emitRegularMap): updated call of decorateType()
6143
6144 2004-01-23 Bernhard Held <bernhard AT bernhardheld.de>
6145
6146         * src/pic/pcode.c (PCodeID): commented out left over debug code
6147
6148 2004-01-20 Bernhard Held <bernhard AT bernhardheld.de>
6149
6150         * support/valdiag/tests/overflow.c: added shift tests
6151         * src/pic/device.c,
6152         * src/pic/gen.c,
6153         * src/pic/gen.h,
6154         * src/pic/glue.c,
6155         * src/pic/main.c,
6156         * src/pic/pcode.c,
6157         * src/pic/pcode.h,
6158         * src/pic/pcodepeep.c,
6159         * src/pic/pcoderegs.c,
6160         * src/pic/ralloc.c,
6161         * src/pic/ralloc.h: applied patch from Slade Rich;
6162         added support for multiple code pages and multiple RAM banks on the
6163         PIC 14 port. The ASM files now no longer simply assume all the
6164         code / RAM are in the same page / bank. This means the linker can
6165         safely allocate code/RAM of separate ASM files to different pages/banks.
6166         * doc/sdccman.lyx: added Slade's tips
6167         * src/mcs51/peeph.def: fixed bug #880768
6168
6169 2004-01-20 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
6170
6171         * src/hc08/ralloc.c (rematStr): fixed bug #879282
6172         * src/SDCCast.c (decorateType): fixed bug #880197
6173
6174 2004-01-20  Michael Hope  <michaelh AT juju.net.nz>
6175
6176         * sim/ucsim/gui.src/serio.src/main.cc: Fixed unconditional use of
6177         getopt.h.
6178
6179         * debugger/mcs51/cmd.c (getValBasic): Changed strtof to strtod as
6180         strtof is not part of C89 and isn't included with Mac OS X.
6181
6182 2004-01-20 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
6183
6184         * src/hc08/gen.c (genPlusIncr, genUminus, genMinusDec, genCmp,
6185         shiftL2Left2Result): fixed bug #879326
6186         (genAnd, genOr, genXor): fixed bug when result was of type AOP_CRY
6187         (genMultOneByte): fixed bug in signed vs unsigned multiplication
6188         * sim/ucsim/hc08.src/inst.cc (inst_clr): added missing effective
6189         address fetch for clr instruction
6190         * device/lib/hc08/_mulint.c: created optimized assembly version
6191         * src/SDCCdflow.c (computeDataFlow): fixed bug #878209
6192
6193 2004-01-19 Bernhard Held <bernhard AT bernhardheld.de>
6194
6195         * src/SDCCicode.c (geniCodeArray): applied patch from Stas Sergeev
6196         proposed in FR #877103
6197
6198 2004-01-18 Bernhard Held <bernhard AT bernhardheld.de>
6199
6200         * src/SDCCval.c (cheapestVal): added missing checks
6201         * src/SDCCicode.c (usualBinaryConversions): fixed condition
6202         * src/SDCCicode.c (geniCodeAdd): fixed part of bug #877103
6203
6204 2004-01-16 Klaus Flittner <klaus_flittner AT gmx.de>
6205
6206         * src/ds390/gen.c (aopOp3): fixed the assignment of different dptrs to
6207         equal operands
6208
6209 2004-01-16 Vangelis Rokas <vrokas AT otenet.gr>
6210
6211         * src/SDCCmain.c (linkEdit): variable $3 of the linker command is
6212         loaded with the linker search paths (-L arguments) and the libraries
6213         to be linked with the current source (-l arguments). Changes
6214         currently will affect only the pic16 port.
6215         * src/pic16/main.c (_pic16_finaliseOptions): add to the linker
6216         include path the port specific paths and port specific libraries,
6217         * gplink command now contains the $3 argument,
6218         * src/pic16/device.h,
6219         * src/pic16/device.c,: structure PIC_device is made public and
6220         renamed to PIC16_device, the same for variable Pics which is renamed
6221         to Pics16. Updated all references to them.
6222         * src/pic16/glue.c (pic16glue): corrected bug with code
6223         initialization which bypassed the variable initializations block.
6224
6225         * device/lib/pic16/Makefile.rules: removed --penable-stack from
6226         COMPILE_FLAGS and added the --nostdinc option
6227
6228 2004-01-15 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
6229
6230         * device/include/mc68hc908jb8.h: Register defs for another member
6231         of the hc08 family. Contributed by Bjorn Bringert - thanks!
6232
6233 2004-01-14 Vangelis Rokas <vrokas AT otenet.gr>
6234
6235         Documenting changes from previous commits.
6236         * configure.in (version 1.56),
6237         * configure: initially I've added AC_CONFIG_SUBDIRS(device/lib/pic16)
6238         when generating output files to configure the pic16 library,
6239         but now I've commented it out, since gputils aren't installed in the
6240         SF compile farm, so library won't compile
6241
6242         * device/lib/Makefile.in (version 1.56): initially I've added in
6243         target 'all' the prerequestive 'model-pic16' so it compiled the
6244         pic16 library, but now I've commented it out for the same reasons
6245         above,
6246         * added targets 'model-pic16' and 'objects-pic16' to compile the
6247         library
6248         * added target 'port-specific-objects-pic16' to handle the
6249         generated libraries and copy them into the build/ directory
6250         * added target 'clean-intermediate-pic16' to clean intermediate
6251         files into pic16 directory
6252         * in target 'installdirs' added line to create directory pic16 in
6253         the installation path
6254
6255         * device/include/Makefile.in (version 1.11): in target 'install'
6256         added lines to copy all header files to installation path,
6257         * in target 'installdirs' added line create directory for pic16
6258         headers in the installation path
6259
6260 2004-01-13 Klaus Flittner <klaus_flittner AT gmx.de>
6261
6262         * src/ds390/gen.c (genCall): fixed a double use of acc and b after
6263          a function call
6264
6265 2004-01-13 Bernhard Held <bernhard AT bernhardheld.de>
6266
6267         * configure,
6268         * device/lib/configure.in,
6269         * device/lib/configure: fixed for autoconf 2.57
6270
6271 2004-01-13 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
6272
6273         * src/z80/main.c (_parseOptions): fixed the portmode= command line
6274         option so that it actually works. Made it specific to the z80, since
6275         the gbz80 doesn't have these kinds of I/O ports.
6276
6277 2004-01-13 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
6278
6279         * device/include/z180.h,
6280         * device/lib/_memcpy.c,
6281         * device/lib/_memmove.c,
6282         * device/lib/_mulint.c,
6283         * device/lib/ser_ir.c,
6284         * device/lib/ser_ir_cts_rts.c,
6285         * device/lib/_strcmp.c,
6286         * device/lib/_strtok.c: fixed pragmas to non-deprecated form
6287         * src/z80/main.c (_process_pragma): add support for pragmas bank and
6288         portmode; added deprecation warning for bank= and protmode= forms.
6289         Also, guard against buffer overflow.
6290         * src/z80/gen.c (aopGet): generate better code for sfr banked read
6291
6292 2004-01-13 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
6293
6294         * src/hc08/main.c (_hc08_genAssemblerPreamble): fixed bug #875487. Also
6295         changed interrupt vector table generation to only emit declared vectors.
6296         * device/include/Makefile.in: added missing backslash
6297         * device/lib/pic16/Makefile.rules: add $(MODELFLAGS) to $(CFLAGS)
6298
6299 2004-01-13 Vangelis Rokas <vrokas AT otenet.gr>
6300
6301         Mainly changes to support compilation of the device libraries
6302         * src/pic16/device.c: stack is allocated via symbol and not
6303         via literal number. The symbol is placed in the corresponding
6304         position of the data ram
6305         * (pic16_dump_section): relocatable and absolute uninitialized
6306         data are now emitted in sorted order to reduce section naming,
6307         * src/pic16/ralloc.c (newReg): fixed bug with SFR's that
6308         weren't marked as being in the access bank,
6309
6310 2004-01-13 Vangelis Rokas <vrokas AT otenet.gr>
6311
6312         Added portion of GNU PIC Library under the directory
6313         device/include/pic16 and device/lib/pic16. These files
6314         contain the declarations of SFRs for the PIC18Fxx2 devices.
6315         The directory is initialized via configure from toplevel.
6316
6317 2004-01-12 Klaus Flittner <klaus_flittner AT gmx.de>
6318
6319         * src/ds390/gen.c (operandsEqu): fixed a little typo, that prevented
6320         the spilllocations to be compared correctly
6321
6322 2004-01-12 Bernhard Held <bernhard AT bernhardheld.de>
6323
6324         * src/SDCCast.c (decorateType): fixed bug introduced today
6325
6326 2004-01-12  Borut Razem <borut.razem AT siol.net>
6327
6328         * src/SDCC.lex, support/Util/SDCCerr.h, support/Util/SDCCerr.c,
6329         doc/sdccman.lyx: upper case pragmas are deprecated
6330
6331 2004-01-12 Bernhard Held <bernhard AT bernhardheld.de>
6332
6333         * src/SDCCast.c (decorateType): replacing 'ul > 0' by  '!ul' results
6334         in simpler and even better code
6335
6336 2004-01-11 Bernhard Held <bernhard AT bernhardheld.de>
6337
6338         * src/SDCCicode.c (operandOperation): fixed bug #874819
6339         * src/SDCCast.c (decorateType): fixed
6340         char foo (unsigned long ul) { return ul > 0; }
6341
6342 2004-01-11 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
6343
6344         * doc/sdccman.lyx: Moved and added some sections, small changes
6345         all over. Telling LaTeX to be less strict with word spacing
6346         to better keep the right margin. Changed some notes about
6347         maintainance of the ports in section 3.2.1 - is it OK like this?
6348
6349 2004-01-11 Vangelis Rokas <vrokas AT otenet.gr>
6350
6351         SDCC source changes:
6352         * src/SDCCopt.c (cntToFcall, cnvToFloatCast, cnvFromFloatCast,
6353         convilong): modified to inform the pic16 port that builtin functions
6354         are external
6355
6356         PIC16 PORT specific changes:
6357         * src/pic16/device.c pic16_dump_equates() added,
6358         processor registers declared internally by the port are emitted in
6359         the translation as equates,
6360         * src/pic16/gen.c: inline code is passed unprocessed to the
6361         translation,
6362         * (pic16_popGetLit2): fnuction modified to take second operand as
6363         pCodeOp pointer and not as literal,
6364         * (popRegFromIdx): prefixed with pic16_,
6365         * (pic16_popCombine2): modified to receive already allocated pCode
6366         operands,
6367         * (pic16_pushpCodeOpReg, pic16_poppCodeOpReg): added
6368         * (genFunction): initializes local stack frame and pushes on stack
6369         all the registers used by this function,
6370         * (genEndFunction): restores all registers from stack and restores
6371         stack frame,
6372         * src/pic16/glue.c (pic16emitRegularMap): various changes and
6373         improvements,
6374         * (pic16glue): changed the program startup sequence,
6375         * added new dbName code 'A' for functions placed in absolute section
6376         * src/pic16/main.c: added function attribute _naked,
6377         * added pragma 'code' to place a fnuction at an absolute address,
6378         * added command line arguments --debug-ralloc and --pcode-verbose,
6379         * (_pic16_finiliseOptions): options.all_callee_saves is set by default
6380         * src/pic16/pcode.c (pic16_pBlockConvert2Absolute) added,
6381         * (pic16_newpCodeOpLit2): modified to take the second operand as
6382         pCodeOp pointer,
6383         * (pic16_printpBlock): modified to emit each function in a separate
6384         section,
6385         * (pic16_get_op): modified to use the gpasm modifiers LOW,HIGH and
6386         UPPER for immediate operands,
6387         * src/pic16/pcodepeeph.c: added peephole support for the LFSR
6388         instruction,
6389         * src/pic16/peeph.def: all peepholes with movff are commented out,
6390         because there is a problem in the pcode peep optimizer,
6391         * src/pic16/ralloc.c: the register allocator can now reuse local
6392         function symbols for another function. This saves register usage.
6393         * src/pic16/ralloc.h: added flag isLocal in structure regs,
6394
6395         Added file src/pic16/NOTES with information about program writing on
6396         the current port version.
6397
6398 2004-01-11 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
6399
6400         * src/mcs51/peephole.def: added peepholes 177.c,d (redundant moves)
6401         and peephole 252 (array access)
6402
6403 2004-01-09  Borut Razem <borut.razem AT siol.net>
6404
6405         * src/SDCCmain.c : fixed #872250: -l command line defined library
6406           files are scanned before standard library files
6407
6408 2004-01-10 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
6409
6410         * src/SDCCast.c (decorateType): fixed bug #874046
6411
6412 2004-01-09  Borut Razem <borut.razem AT siol.net>
6413
6414         * support/scripts/sdcc.nsi: remove previous installation
6415
6416 2004-01-09 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
6417
6418         * src/SDCCglue.c (createInterruptVect): don't append 7(5) padding
6419         bytes for last interrupt vector (mcs51)
6420         * sdcc.spec: fixed typo
6421
6422 2004-01-09 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
6423
6424         * src/mcs51/gen.c (genFunction, genEndFunction, genReceive, getTempRegs,
6425         gen51Code): more efficient parameter receive for --model-large
6426         ("bug" #845294)
6427
6428 2004-01-09 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
6429
6430         * src/ds390/main.c,
6431         * src/z80/main.c: added missed needLinkerScript flags (more than
6432         one port structure defined in these file)
6433         * src/ds390/gen.c (aopForSym, aopOp, operandsEqu, aopOp3): fixed
6434         bug #795325
6435
6436 2004-01-08 Vangelis Rokas <vrokas AT otenet.gr>
6437
6438         * src/SDCCmain.c: removed various references to DEFAULT_PORT
6439         * src/port.h: added flag needLinkerScript in port->linker
6440         structure to inform whether to create a .lnk file or not,
6441         * src/avr/main.c,
6442         * src/ds390/main.c,
6443         * src/hc08/main.c,
6444         * src/mcs51/main.c,
6445         * src/pic/main.c,
6446         * src/pic16/main.c,
6447         * src/xa51/main.c,
6448         * src/z80/main.c: changed appropriately to configure
6449         needLinkerScript flag
6450         * src/pic/gen.c,
6451         * src/pic16/gen.c (genAddrOf): fixed bug #863624
6452         * src/pic/glue.c: added variable udata_section_name to
6453         override default uninitialized data segment definition for
6454         devices only with SHAREBANK memory (reported from Erik Epetrich)
6455         * (pic14emitOverlay): modified to emit a commented overlay segment
6456         directive when no overlay data exist
6457         * (picglue): modified to emit uninitialized data segment
6458         according to udata_section_name
6459         * src/pic/main.c (_pic14_parseOptions): added command line
6460         options --udata-section-name=[name] to override default
6461         udata definition name
6462         * modified _linkCmd and _asmCmd to include compiler passed
6463         arguments via -W option
6464         * src/pic16/main.c: added $l in _asmCmd, changed extension for
6465         object file from '.rel' to '.o' in port->linker structure,
6466         changed size of fptr from 2 to 3 in port structure
6467
6468 2004-01-07  Borut Razem <borut.razem AT siol.net>
6469
6470         * support/scripts/sdcc.nsi: update PATH
6471         * support/scripts/sdcc.ico: craeted
6472
6473 2004-01-07 Bernhard Held <bernhard AT bernhardheld.de>
6474
6475         * device/include/Makefile.in: fix install
6476         * doc/Makefile: fix install
6477
6478 2004-01-07 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
6479
6480         * src/SDCCsymt.c (processFuncArgs): fixed superflous allocation noted
6481         in bug #860505
6482         * src/SDCCmem.c (printAllocInfoSeg, printAllocInfo): minor changes to
6483         how the function variable allocation summary is displayed; also
6484         include information about variables allocated to the overlay
6485         segment
6486
6487 2004-01-06  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
6488
6489         * as/mcs51/lkmain.c: Help about -Y option
6490         * as/mcs51/lkarea.c: Fixed gcc warnings
6491
6492 2004-01-06 Bernhard Held <bernhard AT bernhardheld.de>
6493
6494         * src/SDCCval.c (valShift): changed from 16 to 32 bit shift count,
6495         fixed warning
6496         * support/valdiag/tests/overflow.c: added
6497         * src/SDCCast.c (decorateType),
6498         * src/SDCCicode.c (geniCodeLeftShift): added promotion to int for
6499         LEFT_OP (left shift)
6500
6501 2004-01-06  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
6502
6503         * as/mcs51/lkmain.c: stack must be after data when option -Y is not used
6504         (default behaviour).
6505
6506 2004-01-06 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
6507
6508         A python script to validate compiler diagnostic messages. It can be
6509         used to verify that sdcc complains about bad c source code and
6510         gives a good location of the error.
6511         * support/valdiag/Makefile,
6512         * support/valdiag/valdiag.py,
6513         * support/valdiag/tests/*
6514
6515 2004-01-06 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
6516
6517         * src/SDCC.y (enum_specifier, enumerator_list, opt_assign_expr),
6518         * src/SDCCsymt.c (newEnumType),
6519         * src/SDCCsymt.h
6520         * support/Util/SDCCerr.c,
6521         * support/Util/SDCCerr.h: fixed bug #871258 and some other unreported
6522         enum related bugs.
6523         * support/regression/tests/enum.c: added test for enum values that
6524         require at least 2 bytes of storage.
6525
6526 2004-01-06 Vangelis Rokas <vrokas AT otenet.gr>
6527
6528         * src/common.h: added ifndef/define/endif macros
6529         around the header file.
6530         Bug reported from Jesus Calvino-Fraga
6531
6532 2004-01-06 Bernhard Held <bernhard AT bernhardheld.de>
6533
6534         * sdcc.spec: updated
6535         * device/include/Makefile.in: don't install CVS directories
6536         * device/lib/Makefile.in: added removal of CVS directories after install
6537         * doc/Makefile: fixed install, added local_icons
6538         * sim/ucsim/gui.src/Makefile.in: fixed an old typo
6539         * src/mcs51/gen.c (genRightShift): fixed bug #870788
6540         * src/ds390/gen.c (genRightShift): fixed bug #870788
6541         * src/SDCCast.c (decorateType): fixed bug #870781
6542
6543 2004-01-06 Vangelis Rokas <vrokas AT otenet.gr>
6544
6545         PIC16 port related changes:
6546         * device.c: removed pic16_finalMapping and pic16_finalMappingSize,
6547         added variable stackPos,
6548
6549         * gen.c: genCall, assignResultValue: added support for
6550         pushing/retrieving function parameters to/from stack,
6551         genFunction,genEndFunction: setup stack frame for the
6552         generated function,
6553         genAddrOf: will be changed according to bug 863624
6554
6555         * added files genutils.c and genutils.h which contain gen*
6556         debugged and optimised functions extracted from gen.c
6557
6558         * glue.c: added variable 'externs' which holds extern symbols,
6559         pic16emitRegularMap: is modified to properly handle relocatable
6560          symbols under the new scheme,
6561         pic16createInterruptVect: is modified
6562         pic16printPublics: is modified to emit 'global' assembler directives,
6563         added pic16_printExterns to print extern symbols,
6564         pic16glue: initializes stack/frame pointer in the beginning of
6565         the assembly output. Temporary hack, will be corrected later,
6566         because gplink yet does not support stack and SDCC does not
6567         yet support a type of crt0.o object to create the final binary.
6568
6569         * Removed many lines that contain 8051 legacy code.
6570         * The code is finally placed under a 'code' directive.
6571         * Added port specific options.
6572
6573         * _process_pragma: simplified since now we do not need *special*
6574         include file to define SFR registers. But a separate header
6575         will be needed. This will be developed later.
6576         * _pic16_parseOptions: added, parses port specific options:
6577         --pgen-banksel, --obanksel=, --pomit-config-words, --pomit-ivt,
6578         --pleave-reset-vector, --penable-stack, --pstack-model, --debug-xtra
6579         --preplace-udata-with=
6580
6581         * _pic16_setDefaultOptions: modified to initialize section names,
6582         but hack is temporarly out of order since it needs improvement.
6583         * _pic16_genAssemblerPreamble: configuration words are emitted by
6584         their address instead of their name. This part is incomplete and
6585         supports only the 18Fxx2 devices. Other devices will emit an error
6586         during assembly since they do not contain the same set of config
6587         registers
6588         * _pic16_genIVT: is modified,
6589
6590         * pcode.c: added definitions for some hardware registers that are needed
6591         for stack support
6592         * added flag is2LitOp and variable pci_magic in pCodeInstruction.
6593         All PCI entries are updated. Now LFSR is supported.
6594         * Removed pic16_pciTRIS is mentioned by mdubuc in source
6595         * added pic16_newpCodeOpLit2 to support instructions with
6596         two literal arguments
6597         * pic16_pCode2str: corrected code that emits assembler instructions
6598         with two literal operands and those that have an access bit modifier
6599         * genericPrint: now PC_ASMDIR pCodes, can emit a label if it exists,
6600         this fixes a bug which caused some labels to be lost, when an
6601         assembler directive was added, i.e. banksel,
6602         * pic16_FixRegisterBanking: improved logic that causes the insertion
6603         of bank switching,
6604         * InlineFunction: functions that are called once, are not any more
6605         inlined. This can be a port option in the future,
6606
6607         * pcode.h: added pCodeOpLit2 and added variable label in pCodeAsmDir
6608
6609         * ralloc.c: added pic16_rel_udata and pic16_fix_udata variables which
6610         hold the corresponding uninitialized symbols,
6611         * pic16_allocProcessorRegister: registers have explicit marked the
6612         accessBank field,
6613         * pic16_allocInternalRegister: registers are explicit marked as
6614         not used,
6615         * pic16_writeUsedRegs: pic16_dynDirectBitRegs was missing from the
6616         processing list, so bit registers were lost,
6617         *
6618
6619         * ralloc.h: added field 'accessBank' and original symbol operand
6620         in register definition,
6621         * removed the field isMapped from register definition,
6622
6623         ** Several functions have been removed from various sources:
6624         BanksUsedFlow2,BanksUsedFlow,FixBankFlow,InstructionRegBank,
6625         pic16_addMemRange,pic16_isREGinBank,pic16_dump_map,pic16_dump_cblock
6626         isSFR,validAddress,mapRegister,assignRegister,pic16_assignFixedRegisters
6627         pic16_assignRelocatableRegisters
6628
6629         ** others have been introduced:
6630         pic16_areRegsSame,pic16_dump_section,checkAddReg,pic16_groupRegistersInSection
6631         pic16_popGetLit2,pic16_popCombine2,pushw,pushaop
6632
6633 2004-01-05 Vangelis Rokas <vrokas AT otenet.gr>
6634
6635         * support/scripts/inc2h.pl: changed definition of BIT_AT
6636         to emit 'sbit at' instead of 'bit at'. This was a request.
6637
6638         PIC16 port related preliminary changes:
6639         * gen.c: prefixed function popRegFromString with
6640         pic16_ and all references to it corrected
6641         * pcode.c: all pic16_pc_* hardware registers prefixed
6642         with underscore (_),
6643         pic16_popCopyGPR2Bit(): function sets register wasUsed=1
6644         * ralloc.c: newReg(): when register is REG_SFR then
6645         set address to rIdx,
6646         pic16_allocProcessorRegister(): marks register wasUsed=0
6647         pic16_writeUsedRegs(): added a call to assign processor
6648         registers via pic16_assignFixedRegisters
6649
6650 2004-01-04  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
6651
6652         * as/mcs51/aslink.h, as/mcs51/lkarea.c, as/mcs51/lkdata.c,
6653         as/mcs51/lkmain.c, as/mcs51/lkmem.c: 8051 linker can now pack
6654         variables in unused register banks.  Also the SSEG is placed
6655         wherever there is enough space for it, and IDATA can be anywhere
6656         in internal RAM.  For now compile using -Wl-Y[stack_size].
6657         The mem file is different for this option as well, since it
6658         makes no sense of talking about DSEG lenght.
6659
6660 2004-01-02 Vangelis Rokas <vrokas AT otenet.gr>
6661
6662         * src/SDCClrange.c: fixed bug 869095 that caused segfault
6663         in certain cases, e.g. when ROM assignment, patch provided
6664         from Albert den Haan.
6665
6666 2004-01-01 Bernhard Held <bernhard AT bernhardheld.de>
6667
6668         Many signedness and type propagation fixes:
6669         * src/SDCCicode.c: made geniCodeCast() static
6670         replaced SPEC_ by IS_ (cosmetic)
6671         (operandOperation): fixed div and mod operation
6672         (usualBinaryConversions): added support for promotion of char
6673         (geniCodeMultiply): replaced (unsigned long) by (TYPE_UDWORD)
6674         (geniCodeDivision): replaced (unsigned long) by (TYPE_UDWORD)
6675         (geniCodeAdd): an array index will stay unsigned, even if promoted
6676         from char to int
6677         (geniCodeArray): ditto
6678         * src/SDCCicode.h: made geniCodeCast() static: removed prototype
6679         * src/SDCCsymt.c (computeType): added more support for char;
6680         promotion of char is selectable by promoteCharToInt, fixed signedness
6681         for all cases
6682         (powof2): replaced (unsigned long) by (TYPE_UDWORD)
6683         * src/SDCCsymt.h (powof2): replaced (unsigned long) by (TYPE_UDWORD)
6684         * src/SDCCval (val*): replaced signedness calculation by
6685         computeType()
6686         rearranged if-branches (cosmetic)
6687         (valShift): added warning W_SHIFT_CHANGED
6688         (valCompare): fixed problem with different types
6689         * src/hc08/rallo.c (leastUsedLR): fixed gcc 3.3 warning
6690         * support/regression/tests/literalop.c: added many cases
6691         * support/regression/tests/ast_constant_folding.c: changed finally to
6692         'unsigned int'
6693         * .version: new year, new version: 2.3.7
6694         * src/SDCCmain.c (main): applied patch #866468
6695         * debugger/mcs51/sdcdb.c (parseCmdLine): added -k for ucsim, patch
6696         provided by Scott Bronson
6697         * doc/sdccman.lyx: updated documentation for sdcdb
6698         updated and added chapter tips
6699
6700 2004-01-01 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
6701
6702         * src/SDCCsymt.h: missing from yesterday's commits
6703
6704 2003-12-31 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
6705
6706         * src/SDCC.y (struct_or_union_specifier),
6707         * support/Util/SDCCerr.c,
6708         * support/Util/SDCCerr.h: verify that struct & union tags are used
6709         as declared.
6710
6711 2003-12-29 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
6712
6713         * src/SDCCglobl.h: missing from yesterday's commits
6714
6715 2003-12-28 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
6716
6717         * src/SDCC.y (external_definition, type_specifier2, sfr_reg_bit,
6718         sft_attributes, struct_declaration, parameter_declaration,
6719         type_name, start_block, declaration_list),
6720         * src/SDCC.lex (check_type): support redefinition of typedef names
6721
6722 2003-12-22 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
6723
6724         * src/mcs51/gen.c (genPlus): added special handling for 256 byte
6725         aligned xdata arrays. Erik helped me with the if clause.
6726
6727 2003-12-20 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
6728
6729         * device/lib/ds390/tinibios.c (CpuSpeed): suppress unreachable code
6730         warning
6731
6732 2003-12-20 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
6733
6734         * src/SDCCast.h,
6735         * src/SDCCast.c (newAst_),
6736         * src/SDCCicode.h,
6737         * src/SDCCicode.c (ast2iCode, newiCode),
6738         * src/SDCCglobl.h,
6739         * src/SDCC.y (logical_and_expr, logical_or_expr, conditional_expr,
6740         expr, statement, expression_statement, selection_statement,
6741         iteration_statement, expr_opt, jump_statement): foundation for tracking
6742         sequence points
6743         * src/SDCCopt.c (killDeadCode): fixed bug #861580 (needs the sequence
6744         point code too)
6745
6746 2003-12-19 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
6747
6748         * support/Util/SDCCerr.c,
6749         * src/SDCCast.h,
6750         * src/SDCCast.c (createCase, createDefault, decorateType),
6751         * src/SDCClabel.c (labelUnreach),
6752         * src/SDCC.y (labeled_statement, jump_statement): More improvements
6753         to error messages.
6754         * support/Util/SDCCerr.c (werrorfl): fixed a non-standard declaration
6755         (with thanks to Stas Sergeev)
6756         * device/include/time.h,
6757         * device/lib/time.c (CheckTime): suppress unreachable code warning
6758
6759 2003-12-18 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
6760
6761         * src/SDCCast.c (createIvalCharPtr),
6762         * src/SDCCglue.c (printChar): fixed bug #862241 (an error in my fix for
6763         bug #753752)
6764         * support/regression/tests/nullstring.c: tests for these two bugs
6765
6766 2003-12-18 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
6767
6768         * support/Util/SDCCerr.h,
6769         * support/Util/SDCCerr.c (E_NOT_ALLOWED),
6770         * src/SDCC.y (struct_declaration, struct_or_union_specifier): complain
6771         about storage class and 'at' used inside struct or union
6772         * src/SDCCBBlock.c (iCodeFromeBBlock),
6773         * src/SDCCcse.c (ifxOptimize),
6774         * src/SDCCglue.c (emitRegularMap, initPointer, printIvalStruct,
6775         printIvalArray, printiValFuncPtr, printIvalCharPtr, printIvalPtr,
6776         printIval, emitStaticSeg, emitOverlay),
6777         * src/SDCClabel.c (deleteIfx),
6778         * src/SDCCopt.c (replaceRegEqv, eBBlockFromiCode),
6779         * src/SDCCast.c (resolveSymbols, createIvalStruct, createIvalArray,
6780         gatherAutoInit, processParms),
6781         * support/Util/SDCCerr.h,
6782         * support/Util/SDCCerr.c (werrorfl): Support for better error location
6783         reporting for post-parse errors.
6784
6785 2003-12-16 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
6786
6787         * src/SDCCval.c (valPlus, valMinus, valShift): fixed some problems with
6788         implicit casts via union; they don't work on big endian systems
6789         (possible fix for bug #861138)
6790
6791 2003-12-16 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
6792
6793         (committed by Erik Petrich <epetrich AT ivorytower.norman.ok.us> on Frieder's behalf)
6794         * src/mcs51/main.c: fixed the fix for bug #737001
6795
6796 2003-12-15  Borut Razem <borut.razem AT siol.net>
6797
6798         * support/scripts/sdcc.nsi: updated for NSIS 2.0 beta 4
6799
6800 2003-12-14 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
6801
6802         * support/makebin/makebin.c: put output in binary mode
6803
6804 2003-12-13 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
6805
6806         * src/mcs51/main.c: fixed bug #737001 for the mcs51. SDCC clears
6807         xdata and data memory on startup. Set the environment variable
6808         SDCC_NOGENRAMCLEAR to disable this.
6809         * src/mcs51/peephole.def,
6810         * src/ds390/peephole.def: using the atomic test and clear instruction jbc
6811         (allows non-interrupt and interrupt code to safely compete for a resource
6812         without the non-interrupt code having to disable interrupts)
6813
6814 2003-12-13 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
6815
6816         * src/SDCCicode.c (geniCodeAdd),
6817         * src/SDCCast.c (decorateType): fixed bug #857753 (need to be careful
6818         with valFromType if type might be a pointer and host is big endian).
6819         * src/SDCCast.c (decorateType): unary plus compatible with all arithmetic
6820         types, not just integer types.
6821         * src/SDCCsymt.c (addSymChain): clarified error message when symbol is
6822         multiply defined with mismatching "at" address.
6823
6824 2003-12-12 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
6825
6826         * src/ds390/main.c (PORT tininative_port): fixed bug #858416
6827         * src/SDCCglue.c (printChar, printIvalChar, emitStaticSeg),
6828         * src/SDCCast.c (createIvalCharPtr, stringToSymbol): handle strings
6829         with embedded nulls (fixed bug #753752)
6830
6831 2003-12-12 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
6832
6833         * src/mcs51/main.c(_mcs51_genRAMCLEAR): using r0 instead of r1/r2.
6834         Apparently this did not see much testing (endless loop)
6835
6836 2003-12-11 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
6837
6838         * src/z80/ralloc.c: set DISABLE_PACK_HL = 1 as a temporary fix to bug #855165
6839
6840 2003-12-10 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
6841
6842         * src/SDCCdebug.c (outputDebugSymbols, outputDebugStackSymbols, dumpSymInfo):
6843         gracefully handle NULL memmap pointers
6844
6845 2003-12-08 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
6846
6847         * src/SDCCopt.c (killDeadCode): change iCode type to DUMMY_READ_VOLATILE
6848         instead of deleting the iCode when an operand is volatile
6849         * src/z80/gen.c (genDummyRead),
6850         * src/mcs51/gen.c (genDummyRead),
6851         * src/ds390/gen.c (genDummyRead),
6852         * src/hc08/gen.c (genDummyRead): handle operands in IC_LEFT and/or IC_RIGHT,
6853         not just IC_RIGHT
6854         * src/SDCCicode.c (geniCodeCall): fixed bug #851607
6855         * src/SDCC.y: fixed bug #850420
6856
6857 2003-12-05 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
6858
6859         Applied z80 i/o port patch from Peter Townson and fixed some operators
6860         to better handle operands in A register.
6861         * device/include/z180.h
6862         * src/SDCC.y
6863         * src/SDCCglue.c
6864         * src/z80/gen.c
6865         * src/z80/gen.h
6866         * src/z80/main.c
6867         * src/z80/peeph-z80.def
6868         * src/z80/peeph.def
6869         * src/z80/z80.h
6870
6871 2003-12-03 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
6872
6873         * src/SDCCsymt.c (addSymChain, compareTypeExact): fixed bug #838241 again
6874
6875 2003-12-01 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
6876
6877         * device/lib/hc08/_mullong.c: Removed extra #endif
6878
6879 2003-12-01 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
6880
6881         * sim/ucsim/hc08.src/inst.cc,
6882         * sim/ucsim/hc08.src/hc08mac.h: fixed some problems with CC flag bits and
6883         carries from x to h
6884         * src/hc08/gen.c (aopAdrStr): fixed problem with 16 bit immediate
6885         * src/hc08/gen.c (XAccRsh): fixed problem with right shift
6886         * device/include/stdarg.h: fixed varargs for hc08
6887         * device/lib/Makefile.in,
6888         * device/lib/hc08/Makefile,
6889         * device/lib/hc08/_mulint.c,
6890         * device/lib/hc08/_mullong.c: fixed some endian problems
6891
6892 2003-11-28 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
6893
6894         * sdcc/src/mcs51/gen.c (genMultOneByte): help peephole 105
6895         * sdcc/src/mcs51/peeph.def: added peephole 186.e array access in code space
6896         * device/lib/_gptrget.c,
6897         * device/lib/_gptrput.c: P2 not used any more (related to #850747, #785979)
6898
6899 2003-11-27 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
6900
6901         * src/SDCClrange.c (findNextUseSym, rlivePoint): fixed bug #849795
6902         * src/SDCCast.c (astErrors): fixed bug #846007
6903         * src/SDCCsymt.c (checkFunction): fixed follow-up bug on bug #846007
6904
6905 2003-11-26 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
6906
6907         * src/SDCCast.c (decorateType): disabled a transformation I added in
6908         revision 1.188 (access to fields of a structure at an absolute address);
6909         it breaks with bitfields, extern declarations, and gcse analysis.
6910         * src/SDCCopt.c (isLocalWithoutDef): if ADDRESS_OF applied to a symbol, it
6911         could be assigned through a pointer, so don't complain.
6912         * src/SDCCast.c (astErrors),
6913         * src/SDCCast.h,
6914         * src/SDCCglue.c (emitRegularMap): fixed bug #847813
6915
6916 2003-11-26 Vangelis Rokas <vrokas AT otenet.gr>
6917
6918         * src/pic16/main.c (_pic16_genIVT): fixed interrupt vector table
6919         * src/pic16/main.c (_pic16_genAssemblerPreamble): re-enabled the
6920         output of __config directives, since gpasm now supports them
6921         * src/pic16/main.c (_pic16_finaliseOptions): define MCU
6922         pre-processor macro, i.e. -DMCU=p18f452
6923         * src/pic16/ralloc.c: renamed packRegisters to pic16_packRegisters,
6924         and modified to handle 'cast' icode similarly to '=' icode
6925         * src/pic16/device.h (typedef struct PIC_device): added field
6926         'extMIface' to indicate that chip has external memory interface
6927         * src/pic16/device.c: added chips 18F248, 18F258, 18F448, 18F458,
6928         18F6520, 18F6620, 18F6680, 18F6720, 18F8520, 18F8620, 18F8680,
6929         18F8720
6930
6931 2003-11-26 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
6932
6933         * src/SDCC.y (pointer): fixed bug #846006
6934         * support/Util/SDCCerr.c: made W_PTR_TYPE_INVALID message clearer
6935         * src/SDCCast.c (decorateType): fixed bug #846009
6936         * src/ds390/peeph.def,
6937         * src/ds390/gen.c (genAnd, genOr),
6938         * src/mcs51/peeph.def,
6939         * src/mcs51/gen.c (genAnd, genOr): fixed bug #846777
6940
6941 2003-11-25 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
6942
6943         Fixed several common-sub-expression bugs (#772861, #768380, & #755323)
6944         * src/SDCCdflow.c
6945         * src/SDCCcse.c
6946         * src/SDCCcse.h
6947         * src/SDCCBBlock.h
6948         * src/SDCCBBlock.c
6949
6950 2003-11-23 Klaus Flittner <klaus_flittner AT gmx.de>
6951
6952         fixed bug #845089
6953         * src/SDCCbitv.h,
6954         * src/SDCCbitv.c: added function to free a bitvector
6955         * src/SDCClrange.h,
6956         * src/SDCClrange.c: added function to recompute the liveranges
6957         * src/avr/ralloc.c,
6958         * src/ds390/ralloc.c,
6959         * src/hc08/ralloc.c,
6960         * src/mcs51/ralloc.c,
6961         * src/pic/ralloc.c,
6962         * src/pic16/ralloc.c,
6963         * src/xa51/ralloc.c,
6964         * src/z80/ralloc.c: recompute the liveranges after register packing
6965
6966 2003-11-21 Klaus Flittner <klaus_flittner AT gmx.de>
6967
6968         * src/SDCCloop.c (newInduction): fixed bug #845630
6969
6970 2003-11-21 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
6971
6972         * src/SDCCsymt.c (compareTypesExact): disabled debugging output
6973         inadvertantly left behind from my 2003-11-12 change
6974
6975 2003-11-20 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
6976
6977         Updated headers I neglected to commit yesterday.
6978         * src/SDCClrange.h,
6979         * src/SDCCicode.h
6980
6981 2003-11-19 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
6982
6983         * src/SDCCcse.c (algebraicOpts): fixed bug #773153
6984         * src/SDCClrange.c (rlivePoint): need to mark IC_RESULT used if POINTER_SET op
6985         * src/SDCCopt.c (eBBlockFromiCode),
6986         * src/SDCClrange.c (hashiCodeKeys, sequenceiCode, computeLiveRanges): seperated
6987         the creation of the key hash table from the sequencing so it can be used
6988         earlier (for some GCSE bug fixes still pending)
6989
6990 2003-11-15 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
6991
6992         * src/mcs51/gen.c (genPlus): generate shortcut for adding 0xab00
6993         * support/regression/tests/addsub.c: testing genPlus shortcut
6994
6995 2003-11-15  Borut Razem <borut.razem AT siol.net>
6996
6997         * src/SDCCmain.c: fixed bug #841645: -MM command line option passed to sdcpp
6998
6999 2003-11-15 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
7000
7001         * src/SDCCcse.c (cseBBlock): fixed bug #527779
7002         * src/SDCCcse.c (deleteGetPointers): rewrote so that the set
7003         ordering is immaterial.
7004         * src/SDCCdflow.c (mergeInExprs): fixed bug #587536
7005
7006 2003-11-14 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
7007
7008         * src/SDCCicode.c (geniCodeAddressOf): fixed part of bug #840381
7009         * src/SDCCopt.c (replaceRegEqv, isLocalWithoutDef): fixed other part
7010         (SIGSEV) of bug #840381
7011         * src/SDCCmain.c (linkEdit, assemble): fixed bug #841606 (don't
7012         unlink new file before rename if new and old filenames are the same)
7013
7014 2003-11-13 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
7015
7016         * src/mcs51/main.c: started fixing bug #737001 (SDCC not clearing
7017         uninitialized variables) for the mcs51. Set environment variable
7018         SDCC_GENRAMCLEAR to test.
7019         xdata initialization slightly shorter
7020
7021 2003-11-12 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
7022
7023         * src/SDCCsymt.h,
7024         * src/SDCCsymt.c (addSymTypeChain, compareTypesExact): fixed bugs
7025         #838241 & 780691 (basicly the same bug)
7026         * src/SDCCBBlock.c (iCode2eBBlock): fixed bug #840148
7027         * src/SDCCBBlock.c (iCodeFromeBBlock): fixed bug #840162
7028
7029 2003-11-11 Bernhard Held <bernhard AT bernhardheld.de>
7030
7031         * src/SDCCmain.c (linkEdit): "fix" #834252
7032
7033 2003-11-11 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
7034
7035         * src/SDCCast.c (removePostIncDecOps, removePreIncDecOps),
7036         * src/SDCCast.h,
7037         * src/SDCC.y: fixed bug #819403
7038
7039 2003-11-08 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
7040
7041         * support/regression/fwk/lib/testfwk.c: printn is recursive and thus needs
7042         the reentrant attribute.
7043         * src/hc08/gen.c (genPackBits): added missing stack readjustment
7044         * sim/ucsim/hc08.src/inst.cc (inst_mov): fixed bugs with mov instruction
7045         simulation
7046         * src/SDCCast.c (decorateType): fixed bug with storage class not being
7047         updated during pointer dereference; f.e. ~(((char *)1)*) was being
7048         erroneously reduced to a literal.
7049         * src/hc08/ralloc.c (packRegisters, rematStr),
7050         * src/hc08/gen.c (aopForRemat): allow literals to be rematerialized in
7051         some cases
7052
7053 2003-11-08 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
7054
7055         * src/mcs51/main.c: fixed bug #838385. Thanks to Josef Pavlik for finding and fixing
7056         * doc/sdccman.lyx: changed from 'article' to 'book'
7057         * doc/Makefile: readded test_suite_spec and cdbfileformat
7058
7059 2003-11-08 Bernhard Held <bernhard AT bernhardheld.de>
7060
7061         * device/include/stdlib.h: include malloc.h to comply with ANSI
7062         * support/regression/tests/malloc.c: include stdlib.h instead of malloc.h
7063
7064 2003-11-07 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
7065
7066         * doc/Makefile: sdccman.pdf should build with correct references (more info in commit msg)
7067         * doc/clean.mk: also remove *.out files
7068         * doc/sdccman.lyx: some additions, larger top/bottom margins
7069
7070 2003-11-07 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
7071
7072         * src/SDCC.y: fixed bug #837365
7073         * support/regression/tests/bitopcse.c
7074         * src/hc08/gen.c (genPointerGet): Don't assume pointer operand is
7075         a symbol (might be valop instead)
7076         * device/lib/Makefile.in: added errno.c to HC08SOURCES
7077         * device/lib/clean.mk: added hc08 to the cleaning list
7078
7079 2003-11-04  Borut Razem <borut.razem AT siol.net>
7080
7081         * configure, configure.in, sdcc_vc_in.h, sdcconf_in.h: reverted changes,
7082           made 2003-11-04
7083         * support/Util/NewAlloc.c, as/hc08/lklibr.c, as/mcs51/lklibr.c,
7084           as/z80/aslist.c, as/z80/assym.c: removed inclusion of nonstandard malloc.h;
7085           malloc is declared in standard stdlib.h
7086
7087 2003-11-06 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
7088
7089         * device/lib/hc08/Makefile: need to clean .rel not .o files
7090         * src/hc08/gen.c (genDjnz): can't use djnz with extended addressing mode
7091
7092 2003-11-06 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
7093
7094         * src/port.h,
7095         * src/hc08/main.c,
7096         * src/mcs51/main.c,
7097         * src/ds390/main.c,
7098         * src/z80/main.c,
7099         * src/avr/main.c,
7100         * src/pic/main.c,
7101         * src/pic16/main.c,
7102         * src/xa51/main.c: added hasExtBitOp & oclsExpense functions to ports
7103         * src/SDCCicode.c: changed several IS_FARSPACE tests to isOclsExpensive
7104         tests (which uses the port's oclsExpense function)
7105         * src/SDCC.y,
7106         * src/SDCCast.c,
7107         * src/SDCCicode.c,
7108         * src/hc08/gen.c,
7109         * src/ds390/gen.c,
7110         * src/mcs51/gen.c: added support for the SWAP iCode (RFE #834167)
7111
7112 2003-11-04 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
7113
7114         * src/SDCCcse.c (ifxOptimize),
7115         * src/SDCClabel.c (labelIfx, deleteIfx): When the condition to
7116         an IFX iCode is volatile, convert to DUMMY_READ_VOLATILE instead
7117         deleting the IFX iCode.
7118         * src/hc08/ralloc.c: reduced unneeded slocs
7119         * src/hc08/gen.c: fixed bug in asmopToBoolean
7120
7121 2003-11-04  Borut Razem <borut.razem AT siol.net>
7122
7123         * configure, configure.in, sdcc_vc_in.h, sdcconf_in.h,
7124           support/Util/NewAlloc.c, as/hc08/lklibr.c, as/mcs51/lklibr.c,
7125           as/z80/aslist.c, as/z80/assym.c: decision to include malloc.h
7126           transferred to configure
7127
7128 2003-11-03 Bernhard Held <bernhard AT bernhardheld.de>
7129
7130         Use headers defined in the C[++] standards:
7131         * sim/ucsim/gui.src/serio.src/fileio.cc
7132         * sim/ucsim/gui.src/serio.src/frontend.cc
7133         * sim/ucsim/gui.src/serio.src/main.cc
7134         * sim/ucsim/gui.src/serio.src/posix_signal.cc
7135         * support/Util/NewAlloc.c
7136         * as/hc08/lklibr.c
7137         * as/mcs51/lklibr.c
7138         * as/z80/aslist.c
7139         * as/z80/assym.c
7140
7141 2003-11-03  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
7142
7143         * Added MSVC projects for hc08 assembler and linker:
7144         all.dsp, config.dsp, sdcc.dsw, /as/hc08/as_hc08.dsp,
7145         /as/hc08/link_hc08.dsp
7146
7147 2003-11-03 Martin Helmling <Martin.Helmling AT octo-soft.de>
7148
7149         * debugger/mcs51/cmd.c: allows filename starting with digit(+ some debug)
7150
7151 2003-11-02 Bernhard Held <bernhard AT bernhardheld.de>
7152
7153         * src/SDCCmain.c (linkEdit): "fixed" again bug #833605
7154
7155 2003-11-01 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
7156
7157         * src/mcs51/main.c: xdata initialization is 13 bytes shorter now
7158
7159 2003-10-31  Borut Razem <borut.razem AT siol.net>
7160
7161         * support/cpp2/cpplib.h,
7162           support/cpp2/cpplib.c,
7163           support/cpp2/cpplex.c,
7164           support/cpp2/cppinit.c: introduced #pragma preproc_asm [ + | - ]
7165           to switch _asm block preprocessing on / off. Default is
7166           #pragma preproc_asm +
7167
7168 2003-10-31  Borut Razem <borut.razem AT siol.net>
7169
7170         * support/cpp2/cpplex.c: Fixed _WIN32 problem with CR-CR-LF sequences
7171           when outputting comment blocks (when executed with -C option) and
7172           _asm (SDCPP specific) blocks
7173
7174 2003-10-31 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
7175
7176         * as/hc08/lkrloc.c (relr): Fixed ihx output, fixed lastAreaIndex warning
7177
7178 2003-10-31 Klaus Flittner <klaus_flittner AT gmx.de>
7179
7180         * src/SDCCcse.c (updateSpillLocation): fixed bug #808027
7181
7182 2003-10-31 Bernhard Held <bernhard AT bernhardheld.de>
7183
7184         * src/SDCCmain.c (linkEdit): "fixed" bug #833605
7185         * src/SDCCast.c (decorateType): fixed bug #832664
7186
7187 2003-10-31  Borut Razem <borut.razem AT siol.net>
7188
7189         * support\cpp2\cpplex.c: fixed for SDCPP:
7190           comments(when executed with -C option) and _asm blocks
7191           were included even if they where in skipped #if block.
7192           Applied solution from GCC cpp 3.3.2
7193
7194 2003-10-31  Borut Razem <borut.razem AT siol.net>
7195
7196         * src/SDCC.lex: sdcc now understands both formats:
7197           '# <line_number> <file_name>' and
7198           '#line <line_number> <file_name>'
7199         * support/cpp2/cppmain.c: sdcpp now generates the standard
7200           '# <line_number> <file_name>' instead of former
7201           '#line <line_number> <file_name>'
7202
7203 2003-10-30  Borut Razem <borut.razem AT siol.net>
7204
7205         * support/cpp2/cpphash.h,
7206         * support/cpp2/cpplib.h
7207         * support/cpp2/cpplex.c,
7208         * support/cpp2/cppmain.c,
7209         * support/cpp2/cppinit.c: fixed bug #828015 - Syntax variation for _asm character constants
7210
7211 2003-10-30 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
7212
7213         Fixed a number of problems revealed by bug #827883.
7214         * src/SDCCloop.c (loopInvariants): Spill location of the
7215         result operand should be recomputed if extracted from
7216         a loop. Also, don't extract assignments of an iTemp
7217         from a literal.
7218         * src/SDCCast.c (isConformingBody): loop reversal should
7219         not occur if the control variable is involved with a
7220         relational operator.
7221
7222 2003-10-28 Bernhard Held <bernhard AT bernhardheld.de>
7223
7224         * .version: bumped to 2.3.6 to reflect the big improvements
7225         made by Erik and Klaus. Thanks!
7226
7227 2003-10-28 Klaus Flittner <klaus_flittner AT gmx.de>
7228
7229         Replaced the livrange code.
7230         * src/SDCClrange.c: added new LR code
7231         * src/SDCCloop.c,
7232         * src/SDCCBBlock.h: removed remainig parts from old LR code
7233         * src/ds390/ralloc.c,
7234         * src/ds390/gen.c: minor fixes to make it work with new code
7235
7236 2003-10-28 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
7237
7238         * as/hc08/asm.h,
7239         * as/hc08/lkrloc.c,
7240         * src/hc08/gen.c,
7241         * src/hc08/ralloc.c: Fix various warnings related to the hc08
7242         * src/SDCCicode.c (geniCodePreInc, geniCodePreDec): Fixed bug #829717
7243         (tweaked fix for bug #818696)
7244
7245 2003-10-23 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
7246
7247         * src/z80/ralloc.c (joinPushes): Fixed bug #828742
7248
7249 2003-10-23 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
7250
7251         * src/SDCCmain.c,
7252         * sdccconf_in.h: Fixed bug #828387 (--disable-hc08-port didn't work)
7253         * src/mcs51/gen.c (gencjneshort),
7254         * src/ds390/gen.c (gencjneshort): Made comparison with AOP_IMMD operand
7255         more efficient (per Scott Bronson's suggestion)
7256
7257 2003-10-22 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
7258
7259         Extended the semantics of the critical keyword to include
7260         individual statements. See RFE #827755 and #799831
7261         * src/SDCC.y
7262         * src/SDCCicode.c
7263         * src/SDCCopt.c
7264         * src/SDCCast.c
7265         * support/Util/SDCCerr.c
7266         * support/Util/SDCCerr.h
7267         * src/mcs51/gen.c
7268         * src/ds390/gen.c
7269         * src/hc08/gen.c
7270
7271 2003-10-19  Borut Razem <borut.razem AT siol.net>
7272
7273         * src/SDCC.lex: fixed bug #825944 - defined yytext_ptr to make it compile with flex 2.5.31
7274
7275 2003-10-19 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
7276
7277         * src/SDCCicode.c (geniCodePreInc, geniCodePreDec, ast2iCode):
7278         Fixed bug #818696
7279         * src/SDCCast.c (ast_print): Fixed --dumptree so that preincrement
7280         and predecrement operand is displayed
7281
7282 2003-10-13 Bernhard Held <bernhard AT bernhardheld.de>
7283
7284         * src/SDCCval.c (valMinus): fixed bug #826041
7285
7286 2003-10-15 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
7287
7288         Some hc08 related updates that I missed earlier
7289         * sim/ucsim/stypes.h
7290         * support/regression/ports/hc08/spec.mk
7291
7292 2003-10-15 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
7293
7294         New target "hc08" for the Motorola 68hc08 family of micros
7295
7296         * configure
7297         * configure.in
7298         * Makefile
7299         * src/hc08/*
7300         * src/SDCCmain.c
7301         * src/port.h
7302         * sim/ucsim/hc08.src/*
7303         * sim/ucsim/configure.in
7304         * src/ucsim/configure
7305         * sim/ucsim/packages_in.mk
7306         * as/hc08/*
7307         * as/Makefile
7308         * device/include/mc68hc908qy.h
7309         * device/lib/hc08/*
7310         * device/lib/Makefile.in
7311         * support/regression/ports/hc08/*
7312         * support/regression/Makefile
7313
7314 2003-10-14 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
7315
7316         * src/z80/gen.c: fixed bug revealed by ast_constant_folding.c
7317         regression test
7318         * src/ds390/gen.c (genCast): fixed bug #821957
7319
7320 2003-10-13 Bernhard Held <bernhard AT bernhardheld.de>
7321
7322         * device/lib/logf.c: "fixed" overlay bug
7323         * support/regression/ports/host/spec.mk: added m library
7324         * support/regression/ports/mcs51-stack-auto/spec.mk: added float funcs
7325         * support/regression/tests/float_trans: added (for Eric)
7326
7327 2003-10-12 Bernhard Held <bernhard AT bernhardheld.de>
7328
7329         * src/mcs51/gen.c (genCpl): fixed bug
7330         http://sf.net/mailarchive/message.php?msg_id=6263915
7331
7332 2003-10-10 Bernhard Held <bernhard AT bernhardheld.de>
7333
7334         * src/SDCCast.c (decorateType): added extended constant folding
7335         * src/SDCCsymt.c (computeType): cleanup
7336         * src/SDCCval.c (valShift): minor optimization
7337         * support/regression/tests/ast_constant_folding.c: added
7338
7339 2003-10-09  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
7340
7341         * src/SDCCmain.c: removed some unintended changes
7342
7343 2003-10-09  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
7344
7345         * src/SDCCmain.c (setParseWithComma): fixed bug #816685
7346         * src/z80/gen.c: fixed part of bug #817589
7347         * src/SDCCsymt.c (checkFunction): fixed bug #817895
7348
7349 2003-10-08 Bernhard Held <bernhard AT bernhardheld.de>
7350
7351         Replaced cast (void **) with (void *) to avoid gcc 3 warning:
7352         * src/SDCCcflow.c
7353         * src/SDCCcse.c
7354         * src/SDCCdflow.c
7355         * src/SDCClabel.c
7356         * src/SDCClrange.c
7357         * src/SDCCmem.c
7358         * src/SDCCopt.c
7359         * src/SDCCpeeph.c
7360         * src/SDCCset.c
7361         * src/avr/ralloc.c
7362         * src/ds390/ralloc.c
7363         * src/izt/ralloc.c
7364         * src/mcs51/ralloc.c
7365         * src/pic/ralloc.c
7366         * src/pic16/ralloc.c
7367         * src/xa51/ralloc.c
7368         * src/z80/ralloc.c
7369         * src/z80/gen.c: removed unused label "release:"
7370
7371 2003-10-06  Borut Razem <borut.razem AT siol.net>
7372
7373         * src/SDCC.lex: removed definition of unused variables
7374           save_optimize and save_options
7375
7376 2003-10-06 Bernhard Held <bernhard AT bernhardheld.de>
7377
7378         * clean.mk: removed '=' in "-maxdepth=1"
7379         * src/SDCCloop.c: replace LRKLAUS with SDCC_LRKLAUS
7380         * src/SDCClrange.c: replace LRKLAUS with SDCC_LRKLAUS
7381
7382 2003-10-06  Borut Razem <borut.razem AT siol.net>
7383
7384         * src/SDCC.lex, src/SDCC.lex: use dbuf for "_asm" definitions;
7385           my_unput() replaced by unput()
7386
7387 2003-10-05 Bernhard Held <bernhard AT bernhardheld.de>
7388
7389         * src/SDCCloop.c (assignmentsToSym, loopInduction): cast argument of
7390         setToNull() to (void *) to avoid gcc3.x's warning: "dereferencing
7391         type-punned pointer will break strict-aliasing rules"
7392         Old LR behaviour is again default; Klaus' LR can be choosen by
7393         defining the environment variable LRKLAUS
7394         * src/SDCCBBlock.h
7395         * src/SDCCloop.c
7396         * src/SDCClrange.c
7397         * src/ds390/ralloc.c (spillThis): applied Klaus' patch
7398         * clean.mk: fixed removal of files in bin/CVS/
7399         * device/lib/clean.mk: fixed removal of directories small and large
7400         * support/Util/SDCCerr.c: changed W_INT_OVL to ERROR_LEVEL_PEDANTIC
7401         * src/SDCCicode.c,
7402         * src/SDCCval.c: removed superflous test for pedantic
7403
7404 2003-10-05  Borut Razem <borut.razem AT siol.net>
7405
7406         * src/SDCC.lex, support/Util/SDCCerr.c, sdcc/support/Util/SDCCerr.h:
7407           Fixed bug #816692: introduced new ERROR_LEVEL_PEDANTIC warning
7408           message "unmatched #pragma SAVE and #pragma RESTORE"
7409
7410 2003-10-04  Frieder Ferlemann <Frieder.Ferlemann AT web.de>
7411
7412         * doc/sdccman.lyx: various additions and updates (interrupts, inline
7413           assembly, critical functions, atomic, nojtbound)
7414
7415 2003-10-04 Bernhard Held <bernhard AT bernhardheld.de>
7416
7417         Applied liferange patch from Klaus Flittner <klaus_flittner AT gmx.de>
7418         * src/SDCCBBlock.h
7419         * src/SDCCloop.c
7420         * src/SDCCloop.h
7421         * src/SDCClrange.c
7422
7423 2003-10-03  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
7424
7425         * src/z80/gen.h,
7426         * src/z80/gen.c (aopOp, aopGet, aopPut, genDummyRead),
7427         * src/mcs51/gen.h
7428         * src/mcs51/gen.c (aopOp, aopGet, aopPut, genDummyRead),
7429         * src/ds390/gen.h
7430         * src/ds390/gen.c (aopOp, aopGet, aopPut, genDummyRead),
7431         * src/SDCCicode.c (ast2iCode, geniCodeDummyRead): Fixed bug #663539
7432         * src/SDCCopt.c (killDeadCode): Fixed bugs #663539 & #816705
7433
7434 2003-10-02  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
7435
7436         * src/z80/gen.c (genRet): fixed bug #524753
7437         * src/z80/gen.c (genCast): fixed internal error on cast from
7438         pointer to long
7439         * src/z80/gen.c (_saveRegsForCall, emitCall): adapted Johan's
7440         fix for bug #477835 to the z80
7441         * src/z80/gen.c (genZ80code, _vemit2, _emit2): added support
7442         for tracking iCodes in the peephole optimizer for z80
7443
7444 2003-10-01  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
7445
7446         * src/SDCCicode.c (geniCodeJumpTable, geniCodeSwitch): fixed
7447         the other part of bug #814548
7448         * src/SDCCpeeph.c (labelInRange): fixed bug #814558
7449
7450 2003-09-30  Bernhard Held <bernhard AT bernhardheld.de>
7451
7452         * src/SDCCcse.c: fixed part of bug #814548
7453
7454 2003-09-28  Borut Razem <borut.razem AT siol.net>
7455
7456         * src/asm.c: rewrite of printILine() to use temporary file instead
7457           a pipe
7458         * src/xa51/main.c: commented out declaration of int rewinds
7459
7460 2003-09-27  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
7461
7462         * src/SDCCicode.c (geniCodeJumpTable): Fixed bug #813206
7463
7464 2003-09-26  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
7465
7466         * src/SDCCdflow.c (computeDataFlow): Fixed bug #810746
7467         * src/asm.c (printILine): Fixed bug #811015
7468
7469 2003-09-22  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
7470
7471         *link/z80/lklibr.c, as/mcs51/lklibr.c: Improved memory allocation and
7472         freeing.
7473
7474 2003-09-21  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
7475
7476         * src/z80/gen.c (setupToPreserveCarry): Fixed bug #796955
7477         * src/z80/gen.c (setupPair, genMovePairPair): Fixed setupPair
7478         to correctly handle general case of AOP_PAIRPTR
7479         * src/z80/gen.c (aopGet, aopPut): Generalized AOP_PAIRPTR handling
7480
7481 2003-09-21  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
7482
7483         * src/mcs51/ralloc.c (fillGaps),
7484         * src/ds390/ralloc.c (fillGaps): fixed bug #810093 (yet another
7485         register positioning bug)
7486
7487 2003-09-21  Bernhard Held <bernhard AT bernhardheld.de>
7488
7489         * device/lib/_fsdiv.c: replaced (1<<31) by (1ul<<31)
7490
7491 2003-09-19  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
7492
7493         * src/mcs51/gen.c (loadDptrFromOperand, genFarPointerGet,
7494         genCodePointerGet, genGenPointerGet, genFarPointerSet,
7495         genGenPointerSet): handle AOP_DPTR correctly when loading dptr
7496         (ralloc doesn't intentionally do this now, but perhaps later)
7497         * src/mcs51/ralloc.c (serialRegAssign, fillGaps),
7498         * src/ds390/ralloc.c (serialRegAssign, fillGaps): fixed some
7499         register positioning bugs (Fixed bug #762602 and #795325)
7500         * src/SDCCicode.c (geniCodeDerefPtr): Track output class correctly
7501         (Fixed bug #808779)
7502         * src/z80/gen.c: increased _vemit2's buffer[] to handle long
7503         lines that --i-code-in-asm generates
7504
7505 2003-09-18  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
7506
7507         *link/z80/lklibr.c, as/mcs51/lklibr.c: Fixed Linux segfaults when
7508         trying to fclose a FILE* that was already closed.
7509
7510 2003-09-18  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
7511
7512         * src/SDCCsymt.c (structElemType): fixed bug #808291 (members
7513         of const struct should be treated as if const themselves)
7514
7515 2003-09-18  Bernhard Held <bernhard AT bernhardheld.de>
7516
7517         * src/SDCCval.c (valPlus, valMinus): fixed bug #808337
7518
7519 2003-07-06  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
7520
7521         * support/librarian/sdcclib.c: Generate correct offsets for libraries with
7522         Unix (/n) and DOS (/r/n) line terminations.
7523
7524 2003-09-17  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
7525
7526         * src/SDCCopt.c (cnvFromFloatCast, cnvToFloatCast): fixed
7527         bug #613775
7528
7529 2003-09-16  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
7530
7531         * src/mcs51/gen.c (genFunction, genEndFunction),
7532         * src/ds390/gen.c (genFunction, genEndFunction): Moved save
7533         and restore of EA so that stack offsets to parameters are
7534         correct when using both critical and reentrant/stack-auto.
7535         * src/z80/gen.c (aopOp): removed erroneous assertion about sloc
7536         size (can be triggered in error if sloc is shared between
7537         different sized objects)
7538         * device/include/float.h: fixed macros to explicitly use
7539         unsigned long where needed
7540
7541 2003-09-15  Bernhard Held <bernhard AT bernhardheld.de>
7542
7543         Feature req. 799831: added code to allow nesting of critical functions
7544         * src/mcs51/gen.c (genFunction, genEndFunction)
7545         * src/ds390/gen.c (genFunction, genEndFunction)
7546
7547 2003-09-14  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
7548
7549         * src/SDCCsymt.c (sclsFromPtr),
7550         * src/SDCCsymt.h,
7551         * src/SDCCast.c (decorateType): fixed bug #462971. Also, better
7552         support for standard C idiom of memory mapped variables; for
7553         example, *((xdata int*)0x1234) = 1 is now internally equivalent
7554         to xdata int at 0x1234 tempvar = 1.
7555         * sim/ucsim/z80.src/inst_xd.cc: fixed bug #805483 with patch
7556         provided by Akiya ISHIDA
7557
7558 2003-09-13  Bernhard Held <bernhard AT bernhardheld.de>
7559
7560         * src/SDCCval.c (cheapestVal): reenabled to reduce int to char
7561         * src/SDCCval.c (constVal): added reduction from int to char
7562         * src/SDCCval.c (valMult, valDiv): fixed sign handling
7563         * src/SDCCval.c (valShift): fixed after change of cheapestVal()
7564         * src/SDCCval.c (valCompare): fixed EQ_OP and NE_OP; they have
7565         to ignore the sign
7566         * support/regression/tests/shifts.c: fixed
7567
7568 2003-09-13  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
7569
7570         * src/z80/gen.c (genXor): Fixed bug #805445
7571
7572 2003-09-12  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
7573
7574         Fixed bug #621531 (const & volatile confusion in the type chain).
7575         DCL_PTR_CONST, DCL_PTR_VOLATILE, & IS_PTR_CONST now exclusively
7576         refer to the const or volatile state of the pointer itself.
7577
7578         * src/SDCCast.c
7579         * src/SDCCglue.c
7580         * src/SDCCicode.c
7581         * src/SDCCsymt.c
7582         * src/SDCCval.c
7583         * src/SDCC.y
7584         * src/SDCCsymt.h
7585         * src/pic/gen.c
7586         * src/pic/ralloc.c
7587         * src/pic16/gen.c
7588         * src/pic16/ralloc.c
7589         * support/regression/tests/const.c
7590
7591 2003-09-10  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
7592
7593         When checking for duplicated modules, use absolute paths
7594         instead of relative paths.  Files changed:
7595
7596         * as/mcs51/lklib.c
7597         * link/z80/lklib.c
7598
7599 2003-09-09  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
7600
7601         * src/SDCCicode.c (geniCodeLogic): fixed bug #797572
7602
7603 2003-09-07  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
7604
7605         * device/include/string.h: added size_t typedef, changed
7606         prototypes to use size_t, eliminated separate reentrant and
7607         non-reentrant declarations, added _memmove declaration
7608         * device/lib/_memcpy.c: changed to use size_t instead of int,
7609         changed /4 to >>2 to avoid division library call
7610         * device/lib/_memcmp.c,
7611         * device/lib/_memset.c,
7612         * device/lib/_strncat.c,
7613         * device/lib/_strncpy.c,
7614         * device/lib/_strncmp.c: changed to use size_t instead of int
7615         * device/lib/_memmove.c: new file (fixed bug #772294)
7616         * device/lib/Makefile.in: added _memmove.c
7617         * device/lib/z80/asm_strings.s: fixed bug #772290
7618         * support/regression/tests/bitfields.c: attempt to fix host assertion
7619         failure on amd64-unknown-linux2.2
7620
7621 2003-09-06  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
7622
7623         * src/z80/gen.c (aopPut, spillPairReg): fixed bug #800998
7624         * src/z80/gen.c (genFunction, genEndFunction): fixed "bug" #774700
7625         * as/z80/asmain.c (main): fixed bug #801766
7626
7627 2003-09-06  Bernhard Held <bernhard AT bernhardheld.de>
7628
7629         * src/SDCCicode.c (ast2iCode): fixed differences in iCode with different
7630         compilers
7631
7632 2003-09-05  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
7633
7634         * src/SDCCast.c (isConformingBody): fixed loop reversal bug
7635         reported in bug #800609
7636
7637 2003-09-04  Vangelis Rokas <vrokas AT otenet.gr>
7638
7639         * Top header beautifications in src/pic16 directory:
7640           device.c, device.h, gen.c, gen.h, genarith.c, glue.c, pcode.c,
7641           pcodeflow.c, pcodeflow.h, pcode.h, pcodepeep.c, pcoderegs.c,
7642           pcoderegs.h, ralloc.c, ralloc.h
7643         * main.c: added top header and GPL license notice
7644         * pcode.c: fixed the if-conditional warning
7645
7646 2003-09-04  Bernhard Held <bernhard AT bernhardheld.de>
7647
7648         * device/lib/_mullong.c: replaced int by short for gcc
7649
7650 2003-08-31  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
7651
7652         * src/SDCCpeeph.c (notVolatile, notVolatileVariable): handle IFX
7653         and JUMPTABLE iCodes properly now (worked by accident before)
7654         * src/mcs51/gen.c (leftRightUseAcc),
7655         * src/ds390/gen.c (leftRightUseAcc): handle IFX and JUMPTABLE
7656         iCode properly now. Use getSize instead of nRegs since a & b
7657         aren't part of the nRegs tally.
7658
7659 2003-08-31  Vangelis Rokas <vrokas AT otenet.gr>
7660
7661         * src/pic16/main.c: corrected offsets of interrupt vectors in _pic16_genIVT()
7662         * src/pic16/pcode.c: fix to disable inserting BANKSEL directive
7663           before instructions that use the _STATUS register
7664
7665 2003-08-31  Bernhard Held <bernhard AT bernhardheld.de>
7666
7667         * src/mcs51/gen.c (freeAsmop): fixed off by one in stack offset (AOP_STK)
7668         * src/mcs51/gen.c (genNearPointerSet): added missing opcode for
7669         fetching of the pointer
7670         * src/mcs51/gen.c (genNearPointerGet): added reuse of PREG,
7671         copied from genNearPointerSet()
7672         * src/mcs51/gen.c (genNearPointerGet): don't pop r0/r1, if RESULTONSTACK
7673         * src/mcs51/gen.c: changed order of freeAsmop(left/right/result)-calls.
7674         If they pop r0/r1 they must be called in the opposite order than aopOp().
7675         * device/lib/_mullong.c: fixed for "--model-large --int-long-reent"
7676         (resp. --stack-auto), prepared for --xstack
7677
7678 2003-08-28  Frieder Ferlemann <Frieder.Ferlemann AT web.de>
7679
7680         * doc/sdccman.lyx: reverted tables to those in cvs 1.64
7681
7682 2003-08-28  Bernhard Held <bernhard AT bernhardheld.de>
7683
7684         * device/lib/_startup.c: quick & dirty fix for ds390/ds400;
7685         these ports have their own __sdcc_external_start()
7686
7687 2003-08-26  Bernhard Held <bernhard AT bernhardheld.de>
7688
7689         pic patch provided by Slade Rich <slade_rich AT yahoo.com>
7690         * src/pic/glue.c (pic14printPublics): fixed bug introduced when symbol
7691         type for bits was changed. It resulted in bit variables becoming
7692         global, which is not permitted in PIC 14 assembly output.
7693
7694 2003-08-23  Frieder Ferlemann <Frieder.Ferlemann AT web.de>
7695
7696         * doc/sdccman.lyx: various additions and updates. Rearranged sections
7697
7698 2003-08-22  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
7699
7700         Z80 and MCS51 linkers complaint if a public symbol is defined
7701         in more than one library module:
7702
7703         * as/mcs51/lklib.c
7704         * link/z80/lklib.c
7705         * as/mcs51/Makefile.in
7706
7707 2003-08-22  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
7708
7709         A few small changes that speed up the peephole optimizer.
7710
7711         * src/SDCCpeeph.c
7712
7713 2003-08-22  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
7714
7715         Try to make the peephole optimizer smarter by maintaining
7716         an association between the assembly source code and the
7717         iCodes that originated them. Put this information to use
7718         with a new peephole rule condition "notVolatile" so that
7719         the rules can be aggressive yet still safe.
7720
7721         * src/SDCCpeeph.c
7722         * src/SDCCpeeph.h
7723         * src/mcs51/gen.c
7724         * src/mcs51/peeph.def
7725
7726 2003-08-20  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
7727
7728         Fixed bug #741761
7729
7730         * src/mcs51/gen.c (aopForSym, leftRightUseAcc),
7731         * src/ds390/gen.c (aopForSym, leftRightUseAcc): preserve A and B
7732         if the left or right operand symbols have the accuse flag set.
7733
7734 2003-08-20  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
7735
7736         Changed the type of the result of the ! (NOT) operator to char;
7737         previously it returned the same type as the source. This allows
7738         us to eliminate all the genFloatNot functions (all of its target
7739         implementations were very buggy) since !float can use the same
7740         code as !long now.
7741
7742         * src/SDCCicode.c (ast2iCode): ! returns char
7743         * src/mcs51/gen.c (genNot, genNotFloat),
7744         * src/ds390/gen.c (genNot, genNotFloat),
7745         * src/z80/gen.c (genNot, genNotFloat),
7746         * src/pic/gen.c (genNot, genNotFloat),
7747         * src/pic16/gen.c (genNot, genNotFloat): eliminated genNotFloat
7748
7749 2003-08-19  Bernhard Held <bernhard AT bernhardheld.de>
7750
7751         pic patch provided by Slade Rich <slade_rich AT yahoo.com>
7752         1. Interrupt would not compile properly. Ensure PCLATH register is saved
7753            during interrupts. Ensure WSAVE is located at a shared bank address.
7754         2. Fixed page selection in some places
7755         3. Fixed BTFSS/C to where necessary use registers directly and not simply
7756            the registers name strings.
7757         4. Fixed "signed / unsigned compare" compiler warnings.
7758         5. The PIC port manages its own allocation of the general purpose
7759            registers, but makes no attempt to reuse them. As a result when
7760            compiling it soon runs out of general purpose registers. Some
7761            additional code was added to the files pcode.c and device.c to walk
7762            through the function call tree and rename the registers so that they
7763            get reused.
7764
7765         * src/pic/device.c
7766         * src/pic/gen.c
7767         * src/pic/glue.c
7768         * src/pic/pcode.c
7769         * src/pic/pcode.h
7770         * src/pic/ralloc.c
7771         * src/pic/ralloc.h
7772         * src/pic/genarith.c: Fixed problems with PIC 14 port in functions
7773         genPlus() & genMinus() when the result is the same as left or right
7774
7775 2003-08-18  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
7776
7777         * src/z80/gen.c (isUnsplitable, fetchPairLong): fixed bug #770454
7778
7779 2003-08-18  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
7780
7781         Made bitfield a distinct type from bit so that bitfields
7782         convert as per ANSI C and bits retain their traditional
7783         boolean style behaviour. Implemented bitfield support in
7784         the z80 port.
7785
7786         * src/SDCCsymt.h,
7787         * src/SDCCsymt.c,
7788         * src/SDCCast.c,
7789         * src/cdbFile.c,
7790         * src/mcs51/gen.c,
7791         * src/ds390/gen.c: bit v bitfield split
7792         * src/z80/gen.c: New support for bitfields
7793         * support/regression/tests/bitfields.c: reenabled z80,
7794         added more tests
7795
7796 2003-08-17  Frieder Ferlemann <Frieder.Ferlemann AT web.de>
7797
7798         Rules 246.x, 247.x relate to bitfields, the others speed up
7799         access to xdata mapped I/O devices.
7800
7801         * src/mcs51/peeph.def: added 26 peepholes 246.x - 248.x, 180.x
7802
7803 2003-08-16  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
7804
7805         Cleaned up genPackBits and genUnpackBits and added two helper
7806         functions, emitPtrByteGet & emitPtrByteSet. Added optimizations
7807         for literal assignments in genPackBits (thanks to Frieder for
7808         reminding me).
7809
7810         * src/mcs51/gen.c
7811         * src/ds390/gen.c
7812
7813 2003-08-16  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
7814
7815         Fixed bug #748310 (pointer to function type mishandled when the
7816         function name is omitted). Also fixed a SIGSEGV when a function
7817         attribute (reentrant, etc) is used on a non-function or on a
7818         function but misplaced before the parameter list.
7819
7820         * src/SDCC.y (abstract_declarator, abstract_declaractor2): fixed
7821         bug #748310
7822         * src/SDCC.y (declarator2_function_attributes): avoided SIGSEGV
7823         * support/Util/SDCCerr.h,
7824         * support/Util/SDCCerr.c: Added func attr misuse error msg
7825
7826 2003-08-13  Bernhard Held <bernhard AT bernhardheld.de>
7827
7828         Fixed bug #787649 by anonymous
7829         * src/SDCCglue.c (emitRegularMap): added emission of sloc for func ptr
7830         * src/ds390/gen.c (aopForSym): fixed func ptr in sloc
7831
7832 2003-08-14  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
7833
7834         Fixed numerous bitfield problems.
7835
7836         * src/SDCC.y: More bitfield related error checking
7837         * src/SDCCsymt.h,
7838         * src/SDCCsymt.c (compStructSize): fixed bitfield offset calc
7839         * support/Util/SDCCerr.h,
7840         * support/Util/SDCCerr.c: Added & edited some bitfield err msgs
7841         * src/mcs51/gen.c (genPackBits, genUnpackBits): fixed mask bugs
7842         * src/ds390/gen.c (genPackBits, genUnpackBits): fixed mask bugs
7843         * support/regression/tests/bitfields.c: tests added
7844
7845 2003-08-13  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
7846
7847         Made the constant following the "interrupt" keyword optional. If
7848         omitted, the function will not automatically be given an entry
7849         in the interrupt vector table (similar to #pragma NOIV, but
7850         less syntacticly kludgy). The interrupt number is also now
7851         range checked. Also fixed a bug in the high order bit example
7852         in the manual.
7853
7854         * src/SDCC.y
7855         * src/SDCCmem.c
7856         * src/SDCCglue.c
7857         * src/SDCCsymt.h
7858         * support/Util/SDCCerr.c
7859         * support/Util/SDCCerr.h
7860         * doc/sdccman.lyx
7861
7862 2003-08-13  Bernhard Held <bernhard AT bernhardheld.de>
7863
7864         * src/SDCCcse.c (algebraicOpts): fix bug converting op from value to type
7865         * src/SDCCicode.c (operandOperation): rewritten some ops
7866         (*, ==, unary_minus) to fix possible overflows and to accord with ANSI
7867         * src/SDCCsymt.c (computeType): literals are handled the same way as any
7868         other type
7869         * src/SDCCval.c (cheapestVal): removed, it doesn't accord with ANSI (can
7870         be re-activated by defining REDUCE_LITERALS)
7871         * src/SDCCval.c (constVal): fixed; hex and octal constants can be
7872         unsigned, but are signed by default
7873         * src/SDCCval.c (constVal): rearranged
7874         * src/SDCCval.c (valMod): preliminary fix
7875         * src/SDCCval.c (valCastLiteral): use TYPE_* types
7876         * support/regression/literalop.c: added, work in progress
7877
7878 2003-08-12  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
7879
7880         Generate warnings for useless declarations like "char data;"
7881         that don't do what new users expect.
7882
7883         * src/SDCC.y
7884         * support/Util/SDCCerr.h
7885         * support/Util/SDCCerr.c
7886
7887 2003-08-09  Bernhard Held <bernhard AT bernhardheld.de>
7888
7889         * src/SDCCval.c (valMult): fix overflow detection of negative int
7890
7891 2003-08-07  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
7892
7893         * src/z80/ralloc.c (joinPushes): made compatible with new signedness
7894
7895         Changes to support big endian targets:
7896
7897         * src/ports.h
7898         * src/SDCCglue.c
7899         * src/avr/main.c
7900         * src/ds390/main.c
7901         * src/izt/i186.c
7902         * src/mcs51/main.c
7903         * src/pic/main.c
7904         * src/pic16/main.c
7905         * src/xa51/main.c
7906         * src/z80/main.c
7907
7908 2003-08-06  Bernhard Held <bernhard AT bernhardheld.de>
7909
7910         * src/SDCCval.c (cheapestVal): changed behaviour to the same as constVal()
7911         * device/lib/time.c: fixed warning "integer overflow in expression"
7912
7913 2003-08-05  Bernhard Held <bernhard AT bernhardheld.de>
7914
7915         * src/SDCCval.c (cheapestVal, valueFromLit): use TYPE_* types
7916         * src/SDCCval.c (constVal): changed default to signed; hex and octal
7917         constants are unsigned; added recognition of "u" flag for unsigned
7918         * src/SDCCval.c (valMult): fixed signdness, added warning for overflow
7919         * src/SDCCval.c (valDiv, valMod): fixed signdness
7920         * src/SDCCicode.c (operandOperation): fixed critical typo; fixed
7921         signedness of modulo, left and right shift
7922         * support/Util/SDCCerr.c: added warning "integer overflow in expression"
7923         * support/Util/SDCCerr.h: added warning W_INT_OVL
7924         * src/SDCCast.c (decorateType): fixed gcc3.3 warning
7925         * src/SDCCast.c (ast_print): improved output of constants
7926
7927 2003-08-04  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
7928
7929         Fixed some warnings when building with MSVC:
7930
7931         * as\mcs51\asdata.c
7932         * as\z80\asdata.c
7933         * as\mcs51\asm.h
7934         * as\z80\asm.h
7935         * link\z80\aslink.h
7936         * link\z80\lkdata.c
7937         * link\z80\lkeval.c
7938         * link\z80\lkgb.c
7939         * link\z80\lkihx.c
7940         * link\z80\lks19.c
7941         * link\z80\lksym.c
7942         * support\cpp2\cpplib.c
7943         * src\ds390\gen.c
7944         * src\mcs51\gen.c
7945
7946 2003-08-03  Bernhard Held <bernhard AT bernhardheld.de>
7947
7948         * src/SDCCast.c (constExprTree): fix bug #781827 by Carl Worth <cworth AT isi.edu>
7949
7950 2003-08-01  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
7951
7952         * support\librarian\clean.mk: Do not remove Makefile.
7953         * support\librarian\Makefile: added.
7954
7955 2003-08-01  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
7956
7957         Added librarian to MSVC build:
7958         * all.dsp
7959         * sdcc.dsw
7960         * support\librarian\librarian.dsp
7961
7962         'configure' not needed for librarian, removed:
7963         * support\librarian\configure
7964         * support\librarian\configure.in
7965         * support\librarian\config_in.h
7966         * support\librarian\Makefile.in
7967
7968         Hopefully these ones built the librarian and the rest of sdcc properly:
7969         * Makefile
7970         * Makefile.common.in
7971
7972         Messed up 'configure', so revert to previous version:
7973         * configure
7974         * configure.in
7975
7976 2003-07-31  Bernhard Held <bernhard AT bernhardheld.de>
7977
7978         * src/SDCCicode.c (operandOperation): 3. fix, this time for Alpha; ULONG has 64 bits
7979         there, while the mantissa of a double is "only" 53 bits wide.
7980
7981 2003-07-31  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
7982
7983         Adding sdcclib to the build.  MSVC project coming soon.
7984         Files added/changed:
7985
7986         * support\librarian\clean.mk
7987         * support\librarian\configure
7988         * support\librarian\configure.in
7989         * support\librarian\config_in.h
7990         * support\librarian\Makefile.bcc
7991         * support\librarian\Makefile.in
7992         * support\librarian\sdcclib.c
7993         * Makefile.bcc
7994         * Makefile
7995         * Makefile.common.in
7996         * configure
7997         * configure.in
7998
7999 2003-07-29  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
8000
8001         Linker now complaints if linked modules have conflicting options, for
8002         example, one compiled using --model-large and another one compiled with
8003         --model-small.  The following files were modified:
8004
8005         * as\mcs51\asdata.c
8006         * as\mcs51\aslink.h
8007         * as\mcs51\asm.h
8008         * as\mcs51\asmain.c
8009         * as\mcs51\asout.c
8010         * as\mcs51\i51pst.c
8011         * as\mcs51\lkdata.c
8012         * as\mcs51\lklibr.c
8013         * as\mcs51\lkmain.c
8014         * as\z80\asdata.c
8015         * as\z80\asm.h
8016         * as\z80\asmain.c
8017         * as\z80\asout.c
8018         * as\z80\z80pst.c
8019         * link\z80\aslink.h
8020         * link\z80\lkdata.c
8021         * link\z80\lklibr.c
8022         * link\z80\lkmain.c
8023         * src\SDCCglue.c
8024
8025 2003-07-28  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
8026
8027         *link/z80/aslink.h, link/z80/lklibr.c, as/mcs51/aslink.h,
8028         as/mcs51/lklibr.c: Generate a warning when a library is not found.
8029
8030 2003-07-28  Bernhard Held <bernhard AT bernhardheld.de>
8031
8032         * src/z80/mappings.i: fix _mul[us][int,long] entries
8033
8034 2003-07-26  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
8035
8036         *src/SDCCmain.c: do not search for crt0.o when using --nostdlib
8037
8038 2003-07-24  Bernhard Held <bernhard AT bernhardheld.de>
8039
8040         * src/SDCCicode.c (operandOperation): really fixed problem with bitops
8041         * support/regression/tests/bitopcse.c: added
8042         fixed warning:
8043         * src/avr/gen.c:
8044         * src/pic/gen.c:
8045         * src/pic16/gen.c:
8046         * src/z80/gen.c:
8047         * src/xa51/gen.c:
8048
8049 2003-07-24  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
8050
8051         added support for new library format to z80, gbz80 linkers:
8052         *link/z80/aslink.h
8053         *link/z80/lklex.c
8054         *link/z80/lklib.c
8055         *link/z80/lklist.c
8056
8057 2003-07-24  Bernhard Held <bernhard AT bernhardheld.de>
8058
8059         * src/SDCCicode.c (operandOperation): fixed problem with bitops and 0xffffffff;
8060         after {double d = 0xffffffff; long l = d;} l will be 0x80000000 (LONG_MIN)
8061
8062 2003-07-23  Bernhard Held <bernhard AT bernhardheld.de>
8063
8064         added DUMMY_READ_VOLATILE:
8065         * src/SDCC.y:
8066         * src/avr/gen.c:
8067         * src/xa51/gen.c:
8068         * src/z80/gen.c:
8069         * src/pic/gen.c:
8070         * src/pic16/gen.c:
8071         * src/mcs51/gen.c:
8072         * src/ds390/gen.c:
8073         * src/SDCCcse.c (algebraicOpts): many improvements
8074         * src/SDCCcse.h: removed algebraicOpts()
8075         * src/SDCCicode.c (picDummyRead): added
8076
8077 2003-07-23  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
8078
8079         * as/mcs51/lkmem.c: Changed message "Insufficient DRAM memory" to
8080         "Insufficient space in data memory".
8081
8082 2003-07-20  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
8083
8084         * src/mcs51/gen.c: fixed bug #771358
8085         * src/z80/gen.c: fixed bug #759087
8086
8087 2003-07-20  Bernhard Held <bernhard AT bernhardheld.de>
8088
8089         * src/pic16/glue.c: minor cleanup by Vangelis
8090
8091 2003-07-19  Frieder Ferlemann <Frieder.Ferlemann AT web.de>
8092
8093         * device/include/regc515c.h: fixed #758477
8094         * device/lib/_gptrget.c: saving some cycles in generic pointer get
8095         * device/lib/_gptrput.c: saved a few bytes
8096         * my tab spacing is 8, yours too?)
8097         * device/lib/_ser.c: process RX bytes earlier than TX bytes
8098         * device/lib/serial.c: process RX bytes earlier than TX bytes
8099         * src/mcs51/gen.c(genGenPointerGet/Set): removed writing of type after postincrement
8100
8101 2003-07-18  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
8102
8103         * src/z80/gen.c: fixed some right shift bugs (#772726 among them)
8104
8105 2003-07-17  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
8106
8107     * link/z80/lklibr.c: fixed bug when there is a '.' in a library path.
8108
8109 2003-07-17  Bernhard Held <bernhard AT bernhardheld.de>
8110
8111         * device/lib/Makefile.in: bad fix, reverted to 1.43
8112
8113 2003-07-16  Bernhard Held <bernhard AT bernhardheld.de>
8114
8115         * device/lib/Makefile.in: added missing z80 object files
8116
8117 2003-07-14  Bernhard Held <bernhard AT bernhardheld.de>
8118
8119         * src/SDCCcse.c (algebraicOpts): CSE fun with &|^ and 0x00/0xff literals
8120         pic16 progress by Vangelis:
8121         * src/SDCCglobl.h:
8122         * src/SDCCmain.c:
8123         * src/pic/Makefile:
8124         * src/pic:
8125         * pic/Makefile:
8126         * pic16/device.c:
8127         * pic16/device.h:
8128         * pic16/gen.c:
8129         * pic16/gen.h:
8130         * pic16/genarith.c:
8131         * pic16/glue.c:
8132         * pic16/main.c:
8133         * pic16/pcode.c:
8134         * pic16/pcode.h:
8135         * pic16/pcodepeep.c:
8136         * pic16/peeph.def:
8137
8138 2003-07-13  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
8139
8140     * src/SDCCmain.c, src/SDCCglobl.h: added option --no-std-crt0
8141
8142 2003-07-12  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
8143
8144     * sdcc.dsw, all.dsp, link/z80/linkgbz80.dsp, as/z80/as-gbz80.dsp:
8145     added gbz80 build to MSVC project.
8146     * src/SDCCmain.c, src/SDCCglue.c, src/z80/main.c, src/z80/z80.dsp,
8147     link/z80/aslink.h, linkz80.dsp: cleaned up z80 and gbz80 asm files
8148     from 8051 stuff and setup so it links using a .lnk file.
8149
8150 2003-07-06  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
8151
8152     * support/librarian/sdcclib.c: sdcc librarian.
8153     * as/mcs51/aslink.h, as/mcs51/lklib.c: Support for libraries created
8154     with sdcclib.
8155
8156 2003-07-03  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
8157
8158     * as/mcs51/lkmain.c: properly handle extensions in function afile.
8159
8160 2003-07-02  Borut Razem <borut.razem AT siol.net>
8161
8162         * src/port.h, src/SDCCmain.c, src/pic/glue.h, src/pic/main.c,
8163         src/pic16/glue.h, sdcc/src/pic16/main.c, src/izt/i186.c,
8164         src/izt/tlcs900h.c, src/avr/main.c, src/ds390/main.c, src/mcs51/main.c,
8165         src/xa51/main.c, src/z80/main.c:
8166         virtualization of glue() function: each port has it's own glue function,
8167         which is accessed by do_glue function pointer in PORT.general structure
8168
8169 2003-07-01 Kevin Vigor <kevin AT vigor.nu>
8170
8171         * DS800C400 fun, improved ROM interface and tinibios.
8172
8173 2003-06-27 Kevin Vigor <kevin AT vigor.nu>
8174
8175         * More support for DS80C400. Now includes beginning of interface to ROM.
8176
8177 2003-06-25  Bernhard Held <bernhard AT bernhardheld.de>
8178
8179         * src/mcs51/gen.c (gencjneshort): fixed bug #760345
8180
8181 2003-06-20  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
8182
8183         * as/mcs51/lkaomf51.c: Make sure the size of the last procedure is correct.
8184
8185 2003-06-19  Borut Razem <borut.razem AT siol.net>
8186
8187         * src/z80/main.c: fixed Z80 port again: missing -k library paths in linker command line
8188
8189 2003-06-19  Borut Razem <borut.razem AT siol.net>
8190
8191         * src/SDCCutil.h, src/SDCCutil.c, src/SDCCglobl.h, src/SDCCmain.c, src/z80/main.c:
8192         fixed Z80 port - crt0.o: cannot open.
8193
8194 2003-06-19  Bernhard Held <bernhard AT bernhardheld.de>
8195
8196         * support/Util/MySystem.c (merge_command): revert bad fix
8197
8198 2003-06-18  Borut Razem <borut.razem AT siol.net>
8199
8200         * src/SDCC.lex, src/SDCCmain.c: fixed some warnings, introduced with changes made 15.06.1003
8201
8202 2003-06-18  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
8203
8204         * src/SDCCglobl.h, src/SDCCmain.c, doc/sdccman.lyx:
8205         option --use-stdout sends errors to stdout instead of stderr.
8206
8207 2003-06-18  Bernhard Held <bernhard AT bernhardheld.de>
8208
8209         * support/Util/MySystem.c (merge_command): quick fix for Linux segfault with \"cmd\" arg
8210
8211 2003-06-15  Borut Razem <borut.razem AT siol.net>
8212
8213         * support/cpp2/sdcc.h: HAVE_DOS_BASED_FILE_SYSTEM defined for _WIN32
8214         * src/SDCC.lex: cloneXxx and copyAndFreeXxx functions for options and optimize stack handling
8215         * src/SDCCglobl.h, src/SDCCmain.c, src/ds390/main.c, src/mcs51/main.c, src/z80/main.c:
8216         fixed width array of pointers replaced with sets;
8217         multiple include and lib paths ared transferred to preprocessor and linker
8218         * src/SDCCset.c, src/SDCCset.h: added function setFromSetNonRev() and mergeSets()
8219         * src/SDCCsymt.c: reimplemented function inCalleeSaveList() by using sets instead
8220         fixed width array of pointers
8221         * src/SDCCutil.c, src/SDCCutil.h: added functions fputStrSet(), appendStrSet(), joinStrSet();
8222         removed functions addToList(), join(), joinn(), pathCharsEquivalent(), pathCharTransform(),
8223         fixupPath(), getPathDifference()
8224         * src/ds390/gen.c, src/mcs51/gen.c: reimplemented function  inExcludeList() by using sets instead
8225         fixed width array of pointers
8226
8227 2003-06-11  Bernhard Held <bernhard AT bernhardheld.de>
8228
8229         * src/pic16/ralloc.c: fix warnings
8230         * src/pic16/pcode.c: fix warning
8231
8232 2003-06-10  Scott Dattalo  <scott AT dattalo.com>
8233
8234          Scott D. for Vangelis Rokas (vrokas AT otenet.gr). I (scott) don't
8235         know all the details, but essentially this set of changes enable
8236         the pic16 port to generate movff instructions and generate assembler
8237         directives,
8238         * src/SDCCmain.c:
8239         * src/pic16/gen.c:
8240         * src/pic16/glue.c:
8241         * src/pic16/pcode.c:
8242         * src/pic16/device.c:
8243         * src/pic16/main.c:
8244         * src/pic16/pcode.h:
8245         * src/pic16/pcoderegs.c:
8246         * src/pic16/ralloc.c:
8247         * src/pic16/ralloc.h:
8248
8249 2003-06-08  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
8250
8251         * support/Util/SDCCerr.c, src/SDCCglobl.h, src/SDCCmain.c, doc/sdccman.lyx:
8252         added option --vc, so sdcc errors and warnings are compatible with
8253         Microsoft Visual Studio.
8254
8255 2003-06-07  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
8256
8257         * device/lib/_atof.c, device/lib/Makefile.in, device/include/stdlib.h,
8258           device/lib/libfloat.lib: added atof function.
8259
8260 2003-06-04  Bernhard Held <bernhard AT bernhardheld.de>
8261
8262         * doc/sdccman.lyx: updated to Lyx 1.3
8263         * doc/cdbfileformat.lyx: updated to Lyx 1.3
8264         * doc/test_suite_spec.lyx: updated to Lyx 1.3
8265         * doc/Makefile: added fix for the \tabularnewline problem, thanks to Jesus
8266
8267 2003-06-03  Bernhard Held <bernhard AT bernhardheld.de>
8268
8269         * src/SDCCpeeph.c: separate peepRules2pCode() for pic16 by "Vangelis Rokas" <vrokas AT otenet.gr>
8270
8271 2003-06-02  Frieder Ferlemann <Frieder.Ferlemann AT web.de>
8272
8273         * doc/sdccman.lyx: cvs revision keywords, passing pdf information in latex preamble,
8274           additions to the "related tools/documentation" section
8275
8276 2003-06-02  Bernhard Held <bernhard AT bernhardheld.de>
8277
8278         * src/SDCCglue.c (tempfileandname): added check for missing TMP/TEMP/TMPDIR variable
8279
8280 2003-05-29  Bernhard Held <bernhard AT bernhardheld.de>
8281
8282         * src/pic/device.c: added 16F819, patch by "David I. Lehn" <dlehn AT vt.edu>
8283         * src/SDCCcse.c (algebraicOpts): fixed "c * 1"
8284
8285 2003-05-28  Bernhard Held <bernhard AT bernhardheld.de>
8286
8287         * doc/sdccman.lyx: fix double dash and other minor things
8288         * doc/Makefile: fix double dash
8289
8290 2003-05-28  Karl Bongers(patches from Martin Helmling)
8291         * debugger/mcs51/sdcdb.c,cmd.c,break.c and .h files. Martin adds
8292           condition and ignore commands.
8293
8294 2003-05-28  Frieder Ferlemann <Frieder.Ferlemann AT web.de>
8295
8296         * doc/sdccman.lyx: Changes all over, index improved, smaller margins. The manual
8297           is in parts still quite out of date, I did changes as far as I felt makes sense
8298           for a non-native english speaker.
8299           Please feel free to add to the manual or to correct my changes.
8300         * doc/Makefile: undid touching the date of intermediate tex files.
8301
8302 2003-05-26  Frieder Ferlemann <Frieder.Ferlemann AT web.de>
8303
8304         * doc/sdccman.lyx: Manual has an index now
8305
8306 2003-05-25  Bernhard Held <bernhard AT bernhardheld.de>
8307
8308         Finalize muluint/mulsint and mululong/mulslong merging:
8309         * device/lib/_mulint.c
8310         * device/lib/_mullong.c
8311         * device/lib/gbz80/mul.s
8312         * device/lib/gbz80/stubs.s
8313         * device/lib/z80/mul.s
8314         * device/lib/z80/stubs.s
8315         * src/SDCCsymt.c (initCSupport)
8316
8317 2003-05-25  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
8318
8319         * as/mcs51/lkaomf51.c: Address space 'z' was missing.
8320         * src/avr/avr.dsp, src/ds390/ds390.dsp, src/mcs51/mcs51.dsp,
8321           src/pic/pic.dsp, src/pic16/pic16.dsp, src/xa51/xa51.dsp,
8322           src/x80/z80.dsp: peep.rul is bigger now, so /Zm1000 is used
8323           instead of /Zm500.
8324
8325 2003-05-25  Frieder Ferlemann <Frieder.Ferlemann AT web.de>
8326
8327         * src/mcs51/peeph.def: added rules 244.x, 245.x. Although they pass
8328           the regression tests I'm not brave enough to enable 245.b, 245.c
8329         * doc/sdccman.lyx: added latex preamble for hyperref package.
8330           Using pdflatex this will give you a hyperlinked pdf file with
8331           bookmarks. (prepend '%' before /usepackage if this breaks something)
8332
8333 2003-05-24  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
8334
8335          * doc/sdccman.lyx: updated information about .adb files (fixed bug 742649)
8336
8337 2003-05-22  Bernhard Held <bernhard AT bernhardheld.de>
8338
8339         * src/pic16/pcode.c (pic16_get_op_from_instruction): fixed a gcc 3.x warning
8340
8341 2003-05-21    <johan AT balder>
8342
8343         * src/SDCCglue.c (printIval): fixed bug #739934
8344
8345 2003-05-19  Bernhard Held <bernhard AT bernhardheld.de>
8346
8347         Applied patch from bug 737905 (renamed yylineo to mylineno):
8348         * src/altlex.c
8349         * src/SDCCast.c
8350         * src/SDCglobl.h
8351         * src/SDCC.lex
8352         * src/SDCCsymt.c
8353         * src/SDCCval.c
8354         * src/pic16/pcode.c: Cleaned warnings
8355         * src/pic16/pcodeflow.c: Cleaned warnings
8356         * src/pic16/pcoderegs.c: Cleaned warnings
8357
8358 2003-05-19  Scott Dattalo  <scott AT dattalo.com>
8359
8360         * src/pic16/pcode.c: Cleaned warnings
8361         * src/pic16/pcodepeep.c: Cleaned warnings
8362         * src/pic16/ralloc.c: Cleaned warnings
8363
8364 2003-05-19  Bernhard Held <bernhard AT bernhardheld.de>
8365
8366         * doc/sdccman.lyx: fixed bug 739745
8367         * src/pic16/pcode.c (pic16_get_op): fixed warning on alpha
8368
8369 2003-05-18  Bernhard Held <bernhard AT bernhardheld.de>
8370
8371         * src/port.h: removed DEFAULT_PORT, it's not yet pic16 ;-)
8372         it can be defined with CFLAGS when running configure
8373         * src/SDCCmain.c: fixed compiling + linking with object files
8374
8375 2003-05-18  Vangelis Rokas (vrokas AT otenet.gr)
8376
8377         * configure.in: configure for pic16 port,
8378             added --disable-pic16-port
8379         * sdccconf_in.h: added macro OPT_DISABLE_PIC16
8380         * src/SDCCmain.c: linkOptions is changed to set *,
8381             added if/endif conditional macros to remove options help
8382             messages from optionsTable when a port is not configured, added
8383             support for the PIc16 port in the ports table, when executing
8384             the compiler with no port specified on command line, a default
8385             port is selected with the new macro DEFAULT_PORT which is
8386             defined in port.h, in setDefaultOptions() linkOptions is removed
8387             from initialization assignment, since now it is a set,
8388             parseCmdLine uses setParseWithComma for linkOptions, in
8389             linkEdit() linkOptions are accessed with new function indexSet()
8390             which returns the i'th item of a set variable. See SDCCset.c, in
8391             linkEdit() when calling buildCmdLine(), added linkOptions as
8392             last argument. Now users can pass arguments to gplink via the
8393             -Wl option, main() uses pic16glue() to glue up pic16 programs
8394         * src/SDCCpeeph.c: various changes to support pic16
8395         * src/SDCCset.c: added function  void *indexSet(set *, int)  to
8396             return the i'th item of the set
8397         * src/SDCCset.h: added function prototype for indexSet()
8398         * src/SDCCsymt.c: in checkSClass(), added support for PIC16
8399         * src/clean.mk: added pic16 in CLEANALLPORTS variable
8400         * src/port.h: added TARGET_ID_PIC16,TARGET_IS_PIC16 macro,
8401             added macro DEFAULT_PORT
8402         * src/pic/main.c: corrected arguments of gplnk in _linkCmd
8403         * src/pic16/gen.c: bug fix in genCpl(), now the correct code is
8404             generated
8405         * src/pic16/glue.c: commented out some error producing lines
8406         * src/pic16/main.c: __config directives are commented out to stop
8407             gpasm complaining and test the linkage with gplink, _linkCmd and
8408             _asmCmd changed to be more gplink and gpasm friendly
8409         * src/pic16/peeph.def: peep rule 3 is commented out, since it
8410             produced an error when parsed, peep rule 12 is added to utilize
8411             movff, but it is commented out since the pCode does not support
8412             yet a command with 2 address arguments
8413
8414 2003-05-18    <johan AT balder>
8415
8416         * src/ds390/gen.c (genArrayInit): removed obsolete and buggy ARRAYINIT
8417         * src/ds390/main.c (genArrayInit): removed obsolete and buggy ARRAYINIT
8418 2003-05-17  Karl Bongers(apply patches from Martin Helmling)
8419
8420         * debugger/mcs51/sdcdb.c,cmd.c,break.c and .h files.
8421   Added feature to script commands from file.
8422
8423 2003-05-14  Bernhard Held <bernhard AT bernhardheld.de>
8424
8425         * device/lib/_strtok.c: fixed bug #734355 by Lenny Story and Tim Woodall
8426         * src/SDCCutil.c: include ctype.h for win32
8427
8428 2003-05-13  Bernhard Held <bernhard AT bernhardheld.de>
8429
8430         * src/pic16/*: removed CR from many files, reported by Vangelis Rokas
8431
8432 2003-05-12  Karl Bongers(apply development patches from Martin Helmling)
8433
8434         * debugger/mcs51/sdcdb.c,simi.c,cmd.c,break.c and .h files.
8435   Fixed so you can set breakpoints prior to run, run does not stop
8436   on entry now.  Add tbreak.  Other enhancements and fixes for use
8437   with ddd.
8438
8439 2003-05-12  Borut Razem <borut.razem AT siol.net>
8440
8441         * src/SDCCmain.c: fixed the problem with searching the DATADIR as the last resort on *nix
8442
8443 2003-05-11  Borut Razem <borut.razem AT siol.net>
8444
8445         * src/SDCCutil.c: WIN32 version of getBinPath() calls GetModuleFileName() to determine
8446         the path of bin directory, so that PATH is the only env. variable, which has to be set
8447         in case of standard installation.
8448         * src/ds390/ds390.dsp: increased value of /Zm option to 1000
8449         * src/pic/main.c: add quotes to file name parameters for gplink and gpasm
8450         * src/SDCCglobl.h, src/SDCCmain.c, doc/sdccman.lyx: added --print-search-dirs command line option
8451
8452 2003-05-04  Bernhard Held <bernhard AT bernhardheld.de>
8453
8454         * src/SDCCmain.c (linkEdit): fixed buffer overflow for gbz80
8455         * support/regression/Makefile: inter-port-clean is no longer nesessary, the
8456         temp files are in the port dir; clean the gen/test directory when
8457         generating new test.c
8458         * support/regression/ports/host/spec.mk: defined OBJEXT for target clean
8459         * support/regression/tests/vaargs.c: fixed gcc 3.3 warning
8460         * support/regression/tests/zeropad.c: added
8461
8462 2003-05-09    <johan AT balder>
8463
8464         * src/SDCCglue.c: fixed bug #597940
8465
8466 2003-05-05  Karl Bongers(apply patches from Martin Helmling)
8467
8468         * debugger/mcs51/sdcdb.c,simi.c,cmd.c,symtab.c and .h files.
8469   cache sfr, optimize next,step, fix off by one sourceline,
8470   support ddd list function.
8471         * sim/ucsim/cmd.src/newcmd.cc - small fix for sdcdb use.
8472
8473 2003-05-04  Bernhard Held <bernhard AT bernhardheld.de>
8474
8475         * support/regression/HTMLgen.py: added compare_s2f()
8476         * support/regression/Makefile: redo 1.27
8477         * support/regression/generate-cases.py: redo 1.5
8478
8479 2003-04-30  Bernhard Held <bernhard AT bernhardheld.de>
8480
8481         * support/regression/tests/float.c: workaround 33 bit hex constant
8482         * support/regression/tests/simplefloat.c: fix division for host
8483
8484 2003-04-29  Scott Dattalo  <scott AT dattalo.com>
8485
8486         * src/pic/pcoderegs.c Applied patch from Jim Hawkridge <jim AT jimhawkridge.uk.eu.org>
8487         that tame's the PIC's over-aggressive optimizer.
8488
8489 2003-04-29  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
8490
8491          * src.dsw, link/z80/aslink.h, link/z80/linkz80.dsp: z80 linker
8492          support for MSVC.
8493
8494 2003-04-29  Kevin Vigor <kevin AT vigor.nu>
8495
8496         Initial support for DS80C400. "Hello world" runs on TINIm400
8497         (with polled I/O).
8498
8499 2003-04-28  Karl Bongers(apply patches for Martin Helmling)
8500
8501          * debugger/mcs51/sdcdb.c,simi.c,cmd.c,symtab.c and .h files.
8502          * Some notes on ddd usage added in debugger/README
8503          Martin Helmling adding more features and fixes for ddd GUI debugger.
8504          Code added for nexti, stepi, up, down, and other adjustments.
8505
8506 2003-04-28  Scott Dattalo  <scott AT DATTALO.COM>
8507
8508         * src/pic/pCodepeep.c non-wildcard asmops are now handled
8509         * src/pic/peeph.def Added two rules to optimize carry manipulation
8510         * src/pic/* removed debug printfs
8511
8512 2003-04-28  Bernhard Held <bernhard AT bernhardheld.de>
8513
8514         * debugger/mcs51/cmd.c: added header newalloc.h
8515
8516 2003-04-26  Bernhard Held <bernhard AT bernhardheld.de>
8517
8518         * as/Makefile: new EXEEXT
8519         * as/z80/Makefile: remove trailing slash of BUILDIR
8520         * as/z80/clean.mk: new EXEEXT
8521         * Makefile.common.in: add to CFLAGS (and others), don't replace it
8522         * support/cpp2/Makefile.in: new EXEEXT
8523         * src/pic/glue.c (pic14emitRegularMap): fixed warning
8524
8525 2003-04-24  Bernhard Held <bernhard AT bernhardheld.de>
8526
8527         Cygwin's gcc always appends .exe: 'gcc -o a a.c' creates a.exe;
8528         EXEEXT was introduced to fix all related problems with targets
8529         "clean", "install" and "uninstall"; a couple of further flaws
8530         especially with "clean" have been fixed too
8531         * as/mcs51/Makefile.in
8532         * as/mcs51/clean.mk
8533         * as/z80/Makefile
8534         * Makefile
8535         * clean.mk
8536         * debugger/mcs51/Makefile.in
8537         * debugger/mcs51/clean.mk
8538         * link/z80/Makefile
8539         * link/z80/Makefile.in
8540         * link/z80/clean.mk
8541         * link/Makefile
8542         * packihx/Makefile.in
8543         * packihx/clean.mk
8544         * sim/ucsim/Makefile
8545         * sim/ucsim/clean.mk
8546         * sim/ucsim/avr.src/Makefile.in
8547         * sim/ucsim/avr.src/clean.mk
8548         * sim/ucsim/s51.src/Makefile.in
8549         * sim/ucsim/s51.src/clean.mk
8550         * sim/ucsim/xa.src/Makefile.in
8551         * sim/ucsim/xa.src/clean.mk
8552         * sim/ucsim/z80.src/Makefile.in
8553         * sim/ucsim/z80.src/clean.mk
8554         * sim/ucsim/main_in.mk
8555         * sim/ucsim/packages_in.mk
8556         * sim/ucsim/gui.src/Makefile.in
8557         * sim/ucsim/gui.src/serio.src/Makefile.in
8558         * sim/ucsim/gui.src/serio.src/clean.mk
8559         * src/Makefile.in
8560         * src/clean.mk
8561         * support/cpp2/Makefile.in
8562         * support/cpp2/clean.mk
8563         * support/makebin/Makefile
8564         * support/makebin/clean.mk
8565         * support/scripts/sdcc_mingw32: --program-suffix no longer needed
8566         * doc/sdccman.lyx: --program-suffix no longer needed
8567
8568 2003-04-23  Karl Bongers(apply patches for Martin Helmling)
8569
8570          * debugger/mcs51/sdcdb.c,simi.c,cmd.c,..
8571          Martin Helmling added support for ddd GUI debugger.
8572          Code added to display assembly, set variables, and other commands
8573          to interface to ddd.
8574
8575 2003-04-23  Bernhard Held <bernhard AT bernhardheld.de>
8576
8577         * as/Makefile: fix target clean
8578         * as/clean.mk: fix target clean
8579         * as/z80/clean.mk: fix target clean
8580
8581 2003-04-22  Bernhard Held <bernhard AT bernhardheld.de>
8582
8583         * Makefile.common.in: added  AT EXEEXT AT
8584         * configure.in: removed all mingw32 stuff
8585         * configure: rebuilt from configure.in
8586         * doc/sdccman.lyx: updated section "installation"
8587         * support/scripts/sdcc_mingw32: adapted to configure
8588         * support/scripts/sdcc_cygwin_mingw32: added
8589
8590 2003-04-22  Scott Dattalo  <scott AT dattalo.com>
8591
8592         * src/pic Added object file support for the PIC port
8593         * src/pic Applied patch from Craig Franklin (this started the object file support)
8594         * src/regression Updated the PIC regression tests for object files
8595
8596 2003-04-20  Borut Razem <borut.razem AT siol.net>
8597
8598         * sdcc/as/mcs51/lklex.c: make getfid() more robust and fixed gcc warning:
8599           lklex.c: In function `getfid':
8600           lklex.c:203: warning: array subscript has type `char'
8601         * src/SDCCglobl.h: small change in stack handling macros, to avoid crash when compiled
8602           with MSVC with global optimization enabled (probably an cl compiler bug ;-)
8603         * support/Util/SDCCerr.c, support/Util/SDCCerr.h: added function fatal(), called from
8604           stack handling macros
8605
8606 2003-04-19  Borut Razem <borut.razem AT siol.net>
8607
8608         * "handling space characters in file path" task:
8609         * src/SDCCmacro.c: fixed bug in handlig quote at the end of line
8610         * support/Util/BuildCmd.c: define par as NULL if parameter value is invalid
8611         * support/Util/MySystem.h: make it self-sufficient
8612         * src/avr/main.c, src/ds390/main.c, src/mcs51/main.c, src/pic/main.c, src/xa51/main.c,
8613           src/z80/main.c, sdcc/as/mcs51/lklex.c:
8614           handling space characters in file path
8615         * src/SDCCmain.c: introduced setDataPaths() function, {datadir} macro
8616           (it will be used by assemblers, which have their own includes, e.g. gpasm)
8617         * support/Util/MySystem.c: handling space characters in executable's path
8618
8619 2003-04-19  Bernhard Held <bernhard AT bernhardheld.de>
8620
8621         * as/z80/Makefile: fix permanent rebuild of z80
8622         * sim/ucsim/gui.src/Makefile.in: target "install" builds the same packages as target "all"
8623         * support/regression/tests/bitfields.c: added Johan's bitfields.c
8624
8625 2003-04-18      Kevin Vigor <kevin AT vigor.nu>
8626
8627         * src/SDCCopt.c: add special case optimization to replace modulo by
8628           a power of two with a bitwise AND.
8629
8630 2003-04-18    <johan AT balder>
8631
8632         * src/mcs51/gen.c (getFreePtr): fixed bug #635354
8633
8634 2003-04-17    <johan AT balder>
8635
8636         * src/mcs51/ralloc.c (packRegsForAssign): fixed bug #716790 and removes lot's of redundant register usage around function calls
8637         * src/mcs51/ralloc.c (packRegisters): fixed bug #720667
8638
8639 2003-04-13  Borut Razem <borut.razem AT siol.net>
8640
8641         * doc/sdccman.lyx: updated info about #pragma SAVE/RESTORE nesting
8642         * configure.in, configure: fixed problems on cygwin/WinCVS environmet with ports.* line endings;
8643           fixed mingw problem in adl_NORMALIZE_PATH
8644
8645 2003-04-12  Borut Razem <borut.razem AT siol.net>
8646
8647         * fixed "#pragma SAVE/RESTORE can not be nested":
8648         * src/SDCC.lex: reworked pragma handling functions
8649         * sdcc/src/SDCCglobl.h: reworked stack handling macros
8650         * support/Util/SDCCerr.c, support/Util/SDCCerr.h: added E_STACK_VIOLATION error
8651
8652 2003-04-12  Bernhard Held <bernhard AT bernhardheld.de>
8653
8654         * src/SDCCutil.c (pathEquivalent): defined but not used
8655         * debugger/mcs51/sdcdb.c: replace SDCC_LIB_DIR
8656         * configure.in: remove sdcc_datadir, sdcc_lib_dir and sdcc_include_dir
8657         * configure: rebuilt from configure.in
8658         * sdccconf_in.h: remove SDCC_LIB_DIR and SDCC_INCLUDE_DIR
8659         * sdcc_vc_in.h: remove SDCC_LIB_DIR and SDCC_INCLUDE_DIR
8660         * device/include/Makefile.in: replace sdcc_datadir
8661         * device/lib/Makefile.in: replace sdcc_datadir
8662         * Makefile.common.in: add LDFLAGS from configure
8663         * packihx/Makefile.in: use LDFLAGS
8664         * src/Makefile.in: use LDFLAGS
8665         * support/cpp2/Makefile.in: add LDFLAGS from configure
8666         * support/makebin/Makefile: use LDFLAGS
8667         * .version: bumped version number to 2.3.5
8668
8669 2003-04-12  Borut Razem <borut.razem AT siol.net>
8670
8671         * completed "different paths" task:
8672         * src/SDCCmacro.c: fixed bug in handling quotes
8673         * src/SDCCutil.c, src/SDCCutil.c: rewritten getPrefixFromBinPath()
8674         * src/SDCCmain.c: _discoverPaths() replaced with setBinPaths(), setIncludePath() and setLibPath()
8675
8676 2003-04-12  Bernhard Held <bernhard AT bernhardheld.de>
8677
8678         * src/pic/pcoderegs.c (Remove1pcode): fix warning on alpha
8679
8680 2003-04-11 kevin Vigor <kevin AT vigor.nu>
8681
8682         * ds390/gen.c ds390/peeph.def: fix bug 706781
8683
8684 2003-04-11  Borut Razem <borut.razem AT siol.net>
8685
8686         * support/Util/dbuf.c, support/Util/dbuf.h: update to version 1.1.1 - re-added C++ stuff to make it still more portable
8687
8688 2003-04-10  Scott Dattalo  <scott AT dattalo.com>
8689
8690         * src/pic/* Applied the pointer-to-function patch from Steve Tell.
8691         * src/pic/* Fixed several pointer bugs. (PIC port broke when the ruonly bit was
8692          set - this bit used to not be set...).
8693         * src/pic/gen.c Fixed buf 609268 ==> x = (x+1) & 0xf; generated
8694           bad code in PIC Port
8695         * src/regression/and2.c added to test bug 609268
8696         * src/regression/Makefile added and2.c to regression test
8697
8698
8699 2003-04-08    <johan AT CP255758-A>
8700
8701         * src/mcs51/gen.c (gen51Code): display reg usage in --icode-in-asm
8702         * src/mcs51/ralloc.c (serialRegAssign): update the registers in use and save some slocs
8703         * src/SDCCicode.h: added riu to show the register usage in --icode-in-asm
8704
8705 2003-04-07  Bernhard Held <bernhard AT bernhardheld.de>
8706
8707         * configure.in: fully support prefix, exec_prefix, datadir, docdir;
8708         fix bug #487815
8709         * support/cpp2/Makefile.in: fix bug #487815
8710         * configure: rebuilt from configure.in
8711         * Makefile.common.in: docdir changed, new path suffixes
8712         * sdccconf_in.h: new RETSIGTYPE, and other PATHs
8713         * sdcc_vc_in.h: reflect changes from sdccconf.h
8714         * src/SDCCglobl.h: remove *SEPARATOR_CHARS, they are now in sdccconf.h
8715         * src/SDCCutil.h: remove BINDIR hack
8716         * doc/sdccman.lyx: update new path hierarchy
8717
8718 2003-04-06    Paul Stoffregen <paul AT pjrc.com>
8719
8720         * src/SDCCpeeph.c: added okToRemoveSLOC test
8721
8722 2003-04-06    Paul Stoffregen <paul AT pjrc.com>
8723
8724         * device/lib/printf_fast.c: added leading zero format ("%06d", etc)
8725
8726 2003-04-06    Paul Stoffregen <paul AT pjrc.com>
8727
8728         * src/SDCCpeeph.c: added labelIsReturnOnly test
8729         * src/mcs51/peeph.def: Peephole 244: replace ljmp to ret with ret
8730
8731 2003-04-05    <johan AT balder>
8732
8733         * src/SDCCcse.c (cseAllBlocks): fixed bug #460088
8734         * src/SDCCloop.c (DEFSETFUNC): fixed bug #460088
8735         * src/SDCCopt.c (eBBlockFromiCode): fixed bug #460088
8736         * src/SDCCast.c: fixed a warning
8737         * src/SDCCast.h: fixed a warning
8738         * src/SDCCicode.c (operandFromAst): fixed a warning
8739
8740 2003-04-04    <johan AT balder>
8741
8742         * src/SDCCloop.c (DEFSETFUNC): undid the fix for bug #519584
8743         * src/SDCCast.c (decorateType): fixed bug #715076
8744         * src/SDCC.y: fixed bug #702907
8745
8746 2003-04-03    <johan AT balder>
8747
8748         * device/lib/_mulint.c (_muluint): new #pragma LESS_PEDANTIC
8749         * src/SDCCopt.c (eBBlockFromiCode): new #pragma LESS_PEDANTIC
8750         * src/SDCCglobl.h (PRAGMA_LESSPEDANTIC): new #pragma LESS_PEDANTIC
8751         * src/SDCC.lex (doPragma): new #pragma LESS_PEDANTIC
8752         * src/SDCCmain.c (parseCmdLine): new #pragma LESS_PEDANTIC
8753
8754 2003-04-03  Bernhard Held <bernhard AT bernhardheld.de>
8755
8756         * _decdptr.c: fix return values
8757         * _gptrget.c: fix return values
8758         * _gptrgetc.c: fix return values
8759         * _gptrput.c: fix return values
8760         * _mulint.c: fix return values
8761         * as/z80/Makefile: fix 'make -j' problem
8762
8763 2003-04-02  Bernhard Held <bernhard AT bernhardheld.de>
8764
8765         * Makefile.common.in: unused PORT, SCC and SAS removed, fixed docdir
8766         * configure.in: big cleanup, updated to autoconf 2.5x
8767         * configure: rebuilt from configure.in
8768         * sdccconf_in.h: new RETSIGTYPE, and other PATHs
8769         * sdcc_vc_in.h: reflect changes from sdccconf.h
8770         * doc/Makefile: fixed a flaw in "make install"
8771
8772 2003-04-02    <johan AT balder>
8773
8774         * src/ds390/gen.c (genCmp): no comments
8775         * src/mcs51/gen.c (genCmp): no comments
8776         * src/SDCCopt.c (eBBlockFromiCode): detect missing return values
8777         * src/SDCCast.c (ast_print): fixed the function type in --dumptree
8778
8779 2003-04-01  Bernhard Held <bernhard AT bernhardheld.de>
8780
8781         * support/regression/generate-cases.py: place generated file in given sub directory
8782         * support/regression/ports/host/spec.mk: prevent removal of testfwk.o
8783         * support/regression/Makefile: improvements for 'make -j';
8784         side effect: it's simpler and faster now
8785
8786 2003-03-31  Borut Razem <borut.razem AT siol.net>
8787
8788         * src/z80/main.c: link-{port} and as-{port} defined without path
8789         * src/src.dsp: support/Util/MySystem.h and src/SDCCutil.h added to project
8790
8791 2003-03-31  Bernhard Held <bernhard AT bernhardheld.de>
8792
8793         * Makefile, src/Makefile.in: add dependencies, so that 'make -j' works
8794
8795 2003-03-30  Borut Razem <borut.razem AT siol.net>
8796
8797         * support/Util/BuildCmd.c, support/Util/BuildCmd.h: rewrite buildCmdLine(),
8798           changed type of list parameter to set
8799         * src/ds390/main.c: changed type of parameter asmOptions to set in _tininative_do_assemble()
8800         * src/port.h: changed type of do_assemble() parameter to set
8801         * src/SDCCmain.c: type of asmOptions changed to set, introduced setParseWithComma(),
8802           sdcpp defined without path, removed variable VersionString, introduced set binPathSet,
8803           definition of "cppoutfilename" macro with NULL value in preProcess()
8804         * src/SDCCglobl.h: included "SDCCset.h", added declaration of setParseWithComma()
8805         * src/SDCCglue.c: removed variable VersionString, inroduced spacesToUnderscores()
8806         * support/Util/MySystem.c, support/Util/MySystem.h: rewrite, char *ExePathList[]
8807           replaced with set *binPathSet
8808         * shash_add() deallocates the item, if allready exsists, before adding the new one
8809         * src/SDCCmacro.c: handling macros with empty or NULL values in _evalMacros()
8810
8811 2003-03-30  Scott Dattalo  <scott AT dattalo.com>
8812
8813         * src/pic/gen.c: Commit patch from Steve Tell <tell AT telltronics.org> that fixes
8814           a nested for loop bug in the PIC port
8815         * src/regression/nestfor.c: new regression test file Steve wrote to test nested
8816           for loops
8817
8818 2003-03-29  Bernhard Held <bernhard AT bernhardheld.de>
8819
8820         * support/Util/dbuf.h: remove C++ stuff to make it portable
8821
8822 2003-03-28  Borut Razem <borut.razem AT siol.net>
8823
8824         * src/SDCC.lex: Fix for bug #711240: dynamic buffer handling of C
8825           literal strings in stringLiteral()
8826         * support/Util/dbuf.c, support/Util/dbuf.h: added: dynamic buffer handling
8827         * src/Makefile.bcc, src/Makefile.in, src\src.dsp: added support/Util/dbuf.c
8828           to the project
8829
8830 2003-03-27  Paul Stoffregen <paul AT pjrc.com>
8831
8832         * src/SDCCpeeph.c (pcDistance): accurate byte distance for mcs51
8833
8834 2003-03-26    <johan AT balder>
8835
8836         * src/mcs51/gen.c (saveRegisters): catched symbol abuse
8837         * src/ds390/gen.c (saveRegisters): catched symbol abuse
8838         * src/SDCCast.c (decorateType): fixed " -v < 3"
8839
8840 2003-03-23  Bernhard Held <bernhard AT bernhardheld.de>
8841
8842         * doc/cdbfile.html: removed, replaced by cdbfileformat.lyx
8843         Added Lenny Story's debug infrastructure changes:
8844         * src/Makefile.in:  added new files cdbFile.c and SDCCdebug.c
8845         * src/Makefile.bcc: added new files cdbFile.c and SDCCdebug.c
8846         * src/cdbFile.c: added
8847         * src/SDCCdebug.c: added
8848         * src/SDCCdebug.h: added
8849         * src/SDCCast.c (createFunction)
8850         * src/SDCCglue.c (emitRegularMap, emitStaticSeg, emitOverlay, glue)
8851         * src/SDCCmain.c (parseCmdLine, main)
8852         * src/SDCCmem.c (redoStackOffsets)
8853         * src/SDCCsymt.c (cdbStructBlock, cdbTypeInfo, cdbSymbol, cdbStruct, cdbStructBlock)
8854         * src/SDCCsymt.h
8855         * src/common.h
8856         * src/avr/gen.c (genAVRCode)
8857         * src/ds390/gen.c (gen390Code)
8858         * src/mcs51/gen.c (gen51Code)
8859         * src/pic/gen.c (genpic14Code)
8860         * src/pic/glue.c (pic14emitRegularMap, pic14emitStaticSeg, pic14emitOverlay, picglue)
8861         * src/xa51/gen.c (genXA51Code)
8862         * src/SDCCast.c: fixed "void foo(void){char c; -c < 0;}"
8863
8864 2003-03-22  Frieder Ferlemann <Frieder.Ferlemann AT web.de>
8865
8866         * src/mcs51/gen.c (genCodePointerGet): quicker code for bug #700797
8867         * src/mcs51/peeph.def: added rules 177, 241.x to 243, touched 181, 182.x, 193.x
8868
8869 2003-03-22    <johan AT balder>
8870
8871         * src/SDCCicode.c (geniCodeDerefPtr): fixed bug #698231
8872
8873 2003-03-21  Bernhard Held <bernhard AT bernhardheld.de>
8874
8875         * support/scripts/sdcc_mingw32: adapted to configure from autoconf 2.54
8876         * doc/cdbfileformat.lyx: added, written by Lenny Story
8877         * doc/Makefile: added cdbfileformat.lyx
8878         * doc/clean.mk: added cdbfileformat.lyx
8879
8880 2003-03-20  Bernhard Held <bernhard AT bernhardheld.de>
8881
8882         * src/mcs51/peeph.def: fix bug #705773
8883
8884 2003-03-20    <johan AT balder>
8885
8886         An sfr/sbit can have an "at #" AND an initializer
8887         * src/SDCCsymt.c (checkSClass):
8888         * src/SDCCmem.c (allocGlobal):
8889         * src/SDCCmem.c (allocLocal):
8890         * src/SDCCast.c (createBlock):
8891
8892 2003-03-17  Bernhard Held <bernhard AT bernhardheld.de>
8893
8894         * src/ds390/peeph.def: fix bug #704878: added rule 213.b suggested by Jan Rejlek
8895
8896 2003-03-16    <johan AT balder>
8897
8898         Undid the hackup of const and volatile, the problem is much bigger
8899         * src/SDCC.y:1.65
8900         * src/SDCCast.c:1.171
8901         * src/SDCCglue.c:1.138
8902         * src/SDCCicode.c:1.146
8903         * src/SDCCsymt.c:1.150
8904         * src/SDCCval.c:1.65
8905
8906 2003-03-15  Bernhard Held <bernhard AT bernhardheld.de>
8907
8908         * src/mcs51/ralloc.c (packRegsForAssign): fixed bug #703541
8909         * src/ds390/gen.c (genAddrOf): fixed bug #704087
8910
8911 2003-03-13    <johan AT balder>
8912
8913         Hackup const and volatile modifiers in type chains a bit:
8914         * src/SDCC.y:1.63
8915         * src/SDCCast.c:1.169
8916         * src/SDCCglue.c:1.136
8917         * src/SDCCicode.c:1.143
8918         * src/SDCCsymt.c1.146
8919         * src/SDCCsymt.h1.59
8920         * src/SDCCval.c:1.63
8921
8922 2003-03-12    <johan AT balder>
8923
8924         * src/SDCCBBlock.h: more LRH debugging junk
8925         * src/SDCCcflow.h: more LRH debugging junk
8926         * src/SDCCloop.c: more LRH debugging junk
8927         * src/SDCC.y (struct_declaration): fixed bug #697590
8928         * src/SDCCsymt.[hc] (cloneSpec): NEVER EVER use this again
8929         * src/ds390/gen.c (aopForRemat): fixed bug #700031
8930         * src/SDCCglue.c (emitStaticSeg): fixed bug #700797
8931
8932 2003-03-11 Kevin Vigor <kevin AT vigor.nu>
8933         * src/SDCCpeeph.c: quit being lazy and made proper fix (peephole
8934         test function names must now match exactly).
8935         * src/SDCCcse.c: added special case in findCheaperOp to allow
8936         extending a short integer. Makes less awful code for bug 700121 test case.
8937
8938 2003-03-11  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
8939
8940         * as/mcs51/lkmain.c: Added ASlink-Warning to messages
8941         * as/mcs51/lkaomf51.c: Fixed bug when linking asmblink example
8942
8943 2003-03-11 Kevin Vigor <kevin AT vigor.nu>
8944
8945         * src/SDCCpeeph.c: fix so that operandsNotEqualX functions are
8946         actually called (operandsNotEqual() was called for all
8947         operandsNotEqualX tests).
8948
8949 2003-03-11 Kevin Vigor <kevin AT vigor.nu>
8950
8951         * src/SDCCcse.c: fix findCheaperOp to prevent replacing int types
8952         with shorter literals. Fixes bug 700121.
8953
8954 2003-03-11    <johan AT balder>
8955
8956         * src/SDCCsymt.c (compareType): a (void *) can be assigned to any pointer
8957
8958 2003-03-11  Bernhard Held <bernhard AT bernhardheld.de>
8959
8960         * src/SDCCloop.c (mergeRegions): an evil beast is dead
8961         * src/SDCCmain.c (preProcess): minor cleanup: eliminate preOutName
8962
8963 2003-03-10  Borut Razem <borut.razem AT siol.net>
8964
8965         * src/SDCCmain.c: pipe preprocessor's output
8966         * support/Util/MySystem.c, support/Util/MySystem.h: added my_popen()
8967         * sdcc_vc_in.h: define pclose as _pclose for WIN32
8968         * src/SDCCglue.c, src/SDCCglue.h: added set pipeSet, added function closePipes,
8969         which closes all pipes in pipeSet set
8970         * src/SDCCset.c: free deleted item in function deleteSetItem()
8971         * src/src.dsp, src/z80/z80.dsp: files support/Util/BuildCmd.c and support/Util/MySystem.c
8972         moved from z80 to src subproject
8973         * .version: increased version number to 2.3.4
8974
8975 2003-03-10  Bernhard Held <bernhard AT bernhardheld.de>
8976
8977         * support/regression/ports/mcs51/spec.mk: increase timeout for CF's sparc to 30s
8978         * support/regression/ports/ds390/spec.mk: increase timeout for CF's sparc to 25s
8979         * support/regression/ports/xa51/spec.mk: fix typo
8980
8981 2003-03-09  Bernhard Held <bernhard AT bernhardheld.de>
8982
8983         * src/SDCCglobl.h: PATH_MAX is already defined in mingw32 headers
8984
8985 2003-03-09  Borut Razem <borut.razem AT siol.net>
8986
8987         * src/SDCCmain.c: pipe preprocessor's output
8988         * support/Util/MySystem.c, support/Util/MySystem.h: added my_popen()
8989         * sdcc_vc_in.h: define pclose as _pclose for WIN32
8990         * src/SDCCglue.c, src/SDCCglue.h: added set pipeSet, added function closePipes,
8991         which closes all pipes in pipeSet set
8992         * src/SDCCset.c: free deleted item in function deleteSetItem()
8993         * src/src.dsp, src/z80/z80.dsp: files support/Util/BuildCmd.c and support/Util/MySystem.c
8994         moved from z80 to src subproject
8995
8996 2003-03-09  Borut Razem <borut.razem AT siol.net>
8997
8998         * src/SDCCglue.c: re-implemented tempfilename() and tempfile(): using mkstemp() if available
8999         * src/SDCCsymt.h: fixed MSVC and BORLANDC compilation (included SDCCglobl.h instead srccconf.h)
9000         * sdcc_vc_in.h: explicitly undefined HAVE_MKSTEMP which is not available on BORLANDC and MSVC
9001         * src/SDCCset.h: removed inclusion of sdccconf.h or sdcc_vc.h
9002         * src/SDCCglobl.h: unification of WIN32 native definitions
9003
9004 2003-03-09  Frieder Ferlemann <Frieder.Ferlemann AT web.de>
9005
9006         * src/mcs51/gen.c: applied in-/dec patch mentioned on sdcc-devel 2003-03-01
9007
9008 2003-03-08  Bernhard Held <bernhard AT bernhardheld.de>
9009
9010         * src/configure.in:   check for endianess (even while cross-compiling)
9011         * src/configure:      check for endianess (even while cross-compiling)
9012         * src/configure_in.h: check for endianess (even while cross-compiling)
9013         * src/avr/gen.c:        remove old endianess stuff
9014         * src/mcs51/gen.c:      remove old endianess stuff
9015         * src/ds390/gen.c:      remove old endianess stuff
9016         * src/pic/gen.c:        remove old endianess stuff
9017         * src/pic/genarith.c:   remove old endianess stuff
9018         * src/pic/glue.c:       fix endianess check
9019         * src/pic16/gen.c:      remove old endianess stuff
9020         * src/pic16/genarith.c: remove old endianess stuff
9021         * src/pic16/glue.c:     fix endianess check
9022         * src/xa51/gen.c:       remove old endianess stuff
9023         * src/z80/gen.c:        fix endianess check
9024         * src/SDCCglue.c:       fix endianess check
9025         * src/ds390/peeph.def: fix bug 700036
9026
9027 2003-03-08  Bernhard Held <bernhard AT bernhardheld.de>
9028
9029         * src/SDCCsymt.h: use appropriate data-types on host for SDCC's int and long
9030         * src/configure: find appropriate data-types on host for SDCC's int and long
9031         * src/configure.in: find appropriate data-types on host for SDCC's int and long
9032         * src/sdccconf_in.h: find appropriate data-types on host for SDCC's int and long
9033         * src/xa51/gen.c: use %d, not %ld for 4 byte variables
9034
9035 2003-03-07    <johan AT balder>
9036
9037         Just a big NOOP:
9038                 some minor cleanups before the big shot
9039                 OP_DEFS and OP_USES now use Kevin's protection
9040                 new option --nolabelopt
9041
9042         * src/SDCCBBlock.c:
9043         * src/SDCCast.c,:
9044         * src/SDCCcflow.c:
9045         * src/SDCCcse.c:
9046         * src/SDCCicode.c:
9047         * src/SDCCicode.h:
9048         * src/SDCClabel.c:
9049         * src/SDCCloop.c:
9050         * src/SDCCmain.c:
9051         * src/ds390/ralloc.c:
9052         * src/mcs51/ralloc.c:
9053         * src/pic/ralloc.c:
9054         * src/xa51/ralloc.c:
9055         * src/z80/ralloc.c:
9056
9057 2003-03-06  Bernhard Held <bernhard AT bernhardheld.de>
9058
9059         * src/pic/pcode.c (get_op): fix 64 bit warnings
9060         * src/pic/pcode.c (pCode2str): fix 64 bit warnings
9061         * src/SDCChasht.c (newHashTable): fix 64 bit warnings
9062         * src/SDCCsymt.c (checkTypeSanity): fix 64 bit warnings
9063         * support/regression/tests/malloc.c: fix 64 bit warnings
9064
9065 2003-03-04  Bernhard Held <bernhard AT bernhardheld.de>
9066
9067         * src/mcs51/gen.c (genMinus): fixed bug 696436
9068
9069 2003-03-02  Borut Razem <borut.razem AT siol.net>
9070
9071         * src/SDCCmain.c: added BORLANDC, corrected MSVC in printVersionInfo()
9072
9073 2003-02-26  Bernhard Held <bernhard AT bernhardheld.de>
9074
9075         * configure.in: test for mkstemp
9076         * sdccconf_in.h: add HAVE_MKSTEMP
9077
9078 2003-02-24  Bernhard Held <bernhard AT bernhardheld.de>
9079
9080         * device/include/ctype.h: removed warning while using --stack-auto
9081         * device/include/malloc.h: removed warning while using --stack-auto
9082         * device/include/string.h: removed warning while using --stack-auto
9083
9084 2003-02-23  Borut Razem <borut.razem AT siol.net>
9085
9086         * src/asm.h: corrected assertion in function printILine(): _pipe() was not executed on MSVC,
9087         because NDEBUG is defined (see man assert)
9088         * sdcc_vc_in.h: vsnprintf is defined as _vsnprintf on MSVC
9089
9090 2003-02-23  Frieder Ferlemann <Frieder.Ferlemann AT web.de>
9091
9092         * src/mcs51/gen.c (genUminusFloat): avoided dptr in-/decrement for xdata variables
9093         * src/mcs51/peeph.def: added rule suggested by Gernot Fink, white space/comment changes
9094
9095 2003-02-18  Frieder Ferlemann <Frieder.Ferlemann AT web.de>
9096
9097         * src/SDCCpeeph.c: added peephole conditions testing for same arguments
9098         * src/mcs51/peeph.def: added rules 238a-d which remove redundant moves
9099
9100 2003-02-18    <johan AT balder>
9101
9102         * as/mcs51/asmain.c (asmbl): module can start with a digit
9103         * as/z80/asmain.c (asmbl): module can start with a digit
9104
9105 2003-02-16  Bernhard Held <bernhard AT bernhardheld.de>
9106
9107         * sim/ucsim/mkecho: inserted #!/bin/sh for Cygwin, so that it's executable
9108         * src/asm.c: fix pipe() for Mingw32
9109
9110 2003-02-15  Bernhard Held <bernhard AT bernhardheld.de>
9111
9112         * src/SDCCglue.h: make tmpfileNameSet available for preOutName
9113         * src/SDCCmain.c (preProcess): make sure, that preOutName will be deleted;
9114         make -V work again; --c1mode reads now from stdin
9115         * doc/sdccman.lyx: added --c1mode
9116         * support/Util/SDCCerr.c: new messages for c1 mode
9117         * support/Util/SDCCerr.h: new messages for c1 mode
9118         * src/SDCC.lex (checkCurrFile): test if fullSrcFileName is NULL for c1mode
9119
9120 2003-02-15    <johan AT balder>
9121
9122         * src/asm.c: new options: --no-c-code-in-asm and --i-code-in-asm
9123
9124 2003-02-14  Bernhard Held <bernhard AT bernhardheld.de>
9125
9126         * doc/sdccman.lyx: Environment variables, -o and other minor things
9127
9128 2003-02-14    <johan AT balder>
9129
9130         * src/xa51/main.c: before anyone really tries to use it :)
9131
9132         * Install doc's in share/sdcc/doc
9133         * removed some obsolete files
9134         * Do a proper make distclean and uninstall
9135         M Makefile.common.in
9136         R sdccbuild.sh
9137         M as/Makefile
9138         M device/include/Makefile.in
9139         M device/lib/Makefile.in
9140         M doc/sdccman.lyx
9141         M link/Makefile
9142         M sim/ucsim/doc/Makefile.in
9143         M src/clean.mk
9144         R src/avr/peeph.rul
9145         R src/xa51/peeph.rul
9146         M support/cpp2/Makefile.in
9147         M support/makebin/Makefile
9148
9149
9150 2003-02-13  Bernhard Held <bernhard AT bernhardheld.de>
9151
9152         * support/regression/ports/host/spec.mk: use cc as host compiler for max osx
9153
9154 2003-02-10  Borut Razem <borut.razem AT siol.net>
9155
9156         * doc/bccinst.txt, packihx/packihx.c, sdcc_vc_in.h, src/SDCCset.h,
9157         support/cpp2/config.in: Borland C++ build doesn't depend on Cygwin configure
9158         * Bcc.ini, Makefile.bcc, as/mcs51/Makefile.bcc,
9159         device/examples/ds390/tinitalk/Makefile.bcc, packihx/Makefile.bcc,
9160         support/cpp2/Makefile.bcc, src/Makefile.bcc, src/avr/Makefile.bcc,
9161         src/ds390/Makefile.bcc, src/izt/Makefile.bcc, src/mcs51/Makefile.bcc,
9162         src/pic/Makefile.bcc, src/pic16/Makefile.bcc, src/xa15/Makefile.bcc,
9163         src/z80/Makefile.bcc: Borland Makefile cleanup
9164         * as/z80/Makefile.bcc: Added Borland Makefile
9165         * support/cpp2/borland.h: Removed
9166
9167 2003-02-10  Bernhard Held <bernhard AT bernhardheld.de>
9168
9169         * doc/sdccman.lyx: new pragma NOIV by "Johannes Stezenbach" <js AT convergence.de>
9170         * src/SDCC.lex: new pragma NOIV
9171         * src/SDCCglobl.h: new pragma NOIV
9172         * src/SDCCmem.c: new pragma NOIV
9173
9174 2003-02-09  Bernhard Held <bernhard AT bernhardheld.de>
9175
9176         * src/SDCCmain.c: signal handling is switched off by SDCC_LEAVE_SIGNALS
9177
9178 2003-02-09  Bernhard Held <bernhard AT bernhardheld.de>
9179
9180         * src/SDCCmain.c: signal handling is switched off by --debug
9181         * doc/Makefile: small fix for install; use clean.mk again
9182         * doc/clean.mk: clean *.pdf and *.html too
9183
9184 2003-02-08  Bernhard Held <bernhard AT bernhardheld.de>
9185
9186         * device/lib/_mulint.c: small fix for large/ds390 --int-long-reent resp. --stack-auto
9187         * device/lib/printfl.c: fix a ds390 bug by making it portable
9188         * src/SDCCsymt.c (initCSupport): fix compile warning on Cygwin
9189         * src/SDCCopt.c (cnvToFloatCast): fix compile warning on Cygwin
9190         * src/SDCCopt.c (cnvFromFloatCast): fix compile warning on Cygwin
9191         * debugger/mcs51/cmd.c: converted multi-line string literals
9192         * sim/ucsim/globals.cc: converted multi-line string literals
9193         * src/SDCCmain.c: introduced signal handler to remove temp files
9194         * doc/Makefile: small tweaks, implement clean
9195         * doc: removed generated files
9196
9197 2003-02-05  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
9198
9199         * as/mcs51/aslink.h, as/mcs51/lkihx.c, as/mcs51/lkrloc.c:  Applied
9200         patch from Jan Rejlek <jr AT apex-lib.cz> to fix Bug 677692: "Extended
9201         Address Record is not correctly generated for DS390."
9202
9203 2003-02-02  Borut Razem <borut.razem AT siol.net>
9204
9205         * Makefile.bcc: removed non existing cpp project and non compilable izt project from makefile
9206         * as/mcs51/asm.h: fixed compilation with Borland C
9207         * support/cpp2/Makefile.bcc: added rule to generate auto-host.h
9208         * support/cpp2/auto-host_vc_in.h: fixed compilation with Borland C
9209         * src/mcs51/mcs51a.dsp: corrected misspelled project name from msc51a to mcs51a
9210         * src/avr/Makefile.bcc, src/ds390/Makefile.bcc, src/izt/Makefile.bcc,
9211         src/mcs51/Makefile.bcc, src/pic16/Makefile.bcc, src/xa51/Makefile.bcc,
9212         src/z80/Makefile.bcc: delete $(LIB) only if exist
9213         * src/Makefile.bcc, src/pic/Makefile.bcc:  fixed compilation with Borland C
9214
9215 2003-02-02  Bernhard Held <bernhard AT bernhardheld.de>
9216
9217         * device/include/malloc.h: introduced NULL
9218         * device/include/string.h: introduced NULL
9219         * device/include/stdlib.h: introduced NULL
9220         * device/lib/_memcpy.c: removed NULL
9221         * device/lib/_strcat.c: removed NULL
9222         * device/lib/_strchr.c: removed NULL
9223         * device/lib/_strcmp.c: removed NULL
9224         * device/lib/_strcpy.c: removed NULL
9225         * device/lib/_strcspn.c: removed NULL
9226         * device/lib/_strlen.c: removed NULL
9227         * device/lib/_strncat.c: removed NULL
9228         * device/lib/_strncmp.c: removed NULL
9229         * device/lib/_strncpy.c: removed NULL
9230         * device/lib/_strpbrk.c: removed NULL
9231         * device/lib/_strrchr.c: removed NULL
9232         * device/lib/_strspn.c: removed NULL
9233         * device/lib/_strstr.c: removed NULL
9234         * device/lib/_strtok.c: removed NULL
9235         * device/lib/malloc.c: removed NULL, include own header
9236
9237 2003-02-02    <johan AT balder>
9238
9239         * 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
9240         * support/regression/fwk/lib/testfwk.c: div and mod isn't broken anymore
9241         * regressions ds390/spec.mk and mcs51/spec.mk (timeout): my good old balder isn't fast enough for some tests
9242         * src/z80/gen.c (genZ80Code): added c-lines in asm comments
9243         * as/z80/asm.h (NINPUT): increased for long c-comments in regression tests
9244         * src/z80/gen.c (genRightShiftLiteral): fixed the (char)(-3)>>8 (I think)
9245
9246 2003-02-01  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
9247
9248         * src/SDCCmain.c: Fixed bug 678574: "ds390: ASlink-Error-Stack overlaps
9249         area 'DATA'"
9250
9251 2003-02-01    <johan AT balder>
9252
9253         * src/SDCCval.c (valBitwise): fixed Karl's "2 | (1<<8)"
9254
9255 2003-01-31    <johan AT CP255758-A>
9256
9257         * src/ds390/main.c (_ds390_genAssemblerPreamble): applied Jan Rejlek's >64K startup patch
9258
9259 2003-01-30    <johan AT balder>
9260
9261         * src/SDCCBBlock.c: automatic bug detection
9262         * src/SDCCicode.c: automatic bug detection
9263
9264 2003-01-29  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
9265
9266         * src/SDCCglobl.h:   now --xram-size 0 works
9267         * src/SDCCmain.c:    now --xram-size 0 works
9268
9269 2003-01-29    <johan AT balder>
9270
9271         * src/almosteverything: changed OP_DEFS and OP_USES from macros to functions to catch symbol abuse (a hot topic in the bug list :)
9272
9273 2003-01-29  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
9274
9275         * as/mcs51/aslink.h: Added options --xram-size and --code-size
9276         * as/mcs51/lkdata.c: Added options --xram-size and --code-size
9277         * as/mcs51/lkmain.c: Added options --xram-size and --code-size
9278         * as/mcs51/lkmem.c:  Added options --xram-size and --code-size
9279         * src/SDCCglobl.h:   Added options --xram-size and --code-size
9280         * src/SDCCmain.c:    Added options --xram-size and --code-size
9281
9282 2003-01-28  Bernhard Held <bernhard AT bernhardheld.de>
9283
9284         * src/ds390/gen.c: fix deps by replacing <common.h> with "common.h"
9285         * src/SDCC.lex: rename P_OVERLAY to P_OVERLAY_ for cross-gcc 3.2 MINGW32
9286
9287 2003-01-27    <johan AT balder>
9288
9289         * src/SDCC.y: fixed bug #613764
9290
9291 2003-01-26    <johan AT balder>
9292
9293         * src/SDCClrange.c:  fixed Bernhard's "char * code ptr = &c"
9294         * src/SDCCsymt.h: fixed bug #673374
9295         * src/SDCCglue.c: fixed bug #661910
9296         * src/SDCCast.c: fixed bug #458099 and 673374
9297
9298 2003-01-26  Bernhard Held <bernhard AT bernhardheld.de>
9299
9300         * as/mcs51/strcmpi.c: added, provides Aurelien Jarno's as_strcmpi(); strcmpi() is not ANSI
9301         * as/mcs51/strcmpi.h: added
9302         * as/mcs51/asm.h: remove ugly "#define strcmpi strcmp"
9303         * as/mcs51/aslink.h: remove ugly "#define strcmpi strcmp"
9304         * as/mcs51/asmain.c: strcmpi -> as_strcmpi
9305         * as/mcs51/assym.c: strcmpi -> as_strcmpi
9306         * as/mcs51/lkmem.c: strcmpi -> as_strcmpi
9307         * as/mcs51/lknoice.c: strcmpi -> as_strcmpi
9308         * as/mcs51/lksym.c: strcmpi -> as_strcmpi
9309         * as/mcs51/Makefile.aslink: new module strcmpi
9310         * as/mcs51/Makefile.asx8051: new module strcmpi
9311         * as/mcs51/Makefil.bcc: new module strcmpi
9312         * as/mcs51/Makefile.in: new module strcmpi
9313         * sim/ucsim/s51.src/uc390.cc (get_mem_size): make RAM big enough for tinibios
9314
9315 2003-01-26    <johan AT balder>
9316
9317         * src/SDCCglue.c: reverted back to 1.124
9318         * src/SDCCast.c: reverted back to 1.156
9319         * src/mcs51/gen.c (aopGet): applied Frieder's efficiency patch
9320
9321 2003-01-25    <johan AT balder>
9322
9323         * src/SDCCglue.c: A better fix for bug #661910
9324         * src/SDCCast.c: A better fix for bug #661910
9325         * src/SDCCglue.c (emitRegularMap): That was a little too efficient
9326
9327 2003-01-24  Bernhard Held <bernhard AT bernhardheld.de>
9328
9329         * src/Makefile.in: remove spawn.o
9330         * src/SDCCmain.c: remove spawn.h
9331         * src/SDCCmain.c (printVersionInfo): report MINGW32 instead of UNIX
9332         * src/spawn.c: removed
9333         * src/spawn.h: removed
9334         * support/regression/ports/ds390/spec.mk: link with -r
9335
9336 2003-01-24    <johan AT CP255758-A>
9337
9338         * src/ds390/gen.c (aopOp): fixed bug #667458
9339         * src/SDCCglue.c (emitRegularMap): fixed bug #458099 again
9340         * src/SDCCast.c (createIvalCharPtr): fixed bug #661910
9341         (createIvalCharPtr): an ival doesn't always have a storage class anymore
9342
9343 2003-01-24  Bernhard Held <bernhard AT bernhardheld.de>
9344
9345         * src/mcs51/peeph.def: better assembler identation by Frieder
9346         * src/mcs51/gen.c: better assembler identation by Frieder
9347
9348 2003-01-22  Bernhard Held <bernhard AT bernhardheld.de>
9349
9350         * as/z80/string.h: removed for gcc 3.2
9351         * support/makebin/makebin.c: #include <string.h> for gcc 3.2
9352         * src/pic/pcode.c (get_op_from_instruction): fix concatenation of string literals with __FUNCTION__ for gcc 3.2
9353
9354 2003-01-19  Bernhard Held <bernhard AT bernhardheld.de>
9355
9356         * src/SDCCmain.c (linkEdit): rename mem and map files even in case of failure
9357         * src/SDCCpeeph.c (replaceRule): fix bug #663503
9358         * support/regression/Makefile: separate temp files for ports
9359         * support/regression/generate-cases.py: separate temp files for ports
9360         * src/mcs51/peeph.def: Frieder: removed 237 (obsolete by 236g and 105); added 237 a/b
9361         * src/ds390/peeph.def: Frieder: removed 237 (obsolete by 236g and 105); added 237 a/b
9362
9363 2003-01-19  Bernhard Held <bernhard AT bernhardheld.de>
9364
9365         * moved tinitalk to device/examples/ds390
9366
9367 2003-01-14  Bernhard Held <bernhard AT bernhardheld.de>
9368
9369         * as/mcs51/lkmem.c: rflag is for DS390
9370         * src/SDCCglobl.h: removed out_name and options stackOnData, genericPtr
9371         * src/SDCCmain.c (optionsTable, setDefaultOptions): removed --stack-after-data and --generic
9372                          (linkEdit): move mem- and map-files the same way as ihx-files
9373         * src/z80/main.c (_setDefaultOptions): removed --generic
9374         * src/SDCCmain.c (_processC1Arg, parseCmdLine, main): --c1mode works again
9375         * src/SDCCglue.c (createInterruptVect, glue): --c1mode works again
9376         * src/pic/glue.c (picglue): --c1mode works again
9377         * src/pic16/glue.c (pic16glue): --c1mode works again
9378         * src/asm.c (printCLine): fix #660034
9379
9380 2003-01-13  Bernhard Held <bernhard AT bernhardheld.de>
9381
9382         * src/ds390/peeph.def: fix #123; add 14 rules by Fiorenzo D. Ramaglia <fd.ramaglia AT tin.it>, 1 by Frieder
9383         * src/mcs51/peeph.def: fix #123; add 14 rules by Fiorenzo, 1 by Frieder
9384         * src/mcs51/gen.c (genFunction): emit r0 instead of ar0 by Fiorenzo
9385         * as/mcs51/lkmem (summary): better fix for sp problem
9386         * src/SDCCglue.c (glue): __start_stack - 1, saves 1 byte!
9387         * src/ds390/main.c (_ds390_finaliseOptions, _tininative_finaliseOptions): stack_loc = 0x400008
9388         * support/regression/ports/*/spec.mk: moving testfwk-object to port dir allow parallel execution of regression tests
9389                                               remove --stack-after-data
9390
9391 2003-01-12  Bernhard Held <bernhard AT bernhardheld.de>
9392
9393         * src/SDCCmain.c (main): port->finaliseOptions() moved for z80 linking
9394         * src/SDCCutil.c (join): ugly bug: missing '\0'
9395         * as/mcs51/lkmem.c (summary): sp on address 7 is safe
9396
9397 2003-01-11  Bernhard Held <bernhard AT bernhardheld.de>
9398
9399         * src/SDCCmain.c (assemble, linkEdit): preparations for -o
9400         * src/port.h: typo
9401         * src/pic/main.c (_asmCmd): gpasm supports -o
9402         * src/z80/main.c: more general macros
9403         * device/lib/Makefile.in: remove intermediate files
9404
9405 2003-01-11  Bernhard Held <bernhard AT bernhardheld.de>
9406
9407         * .version: Bumped version number to 2.3.3
9408         * src/SDCCBBlock.c: new option -o
9409         * src/SDCCglobl.h: new option -o
9410         * src/SDCCglue.c: new option -o
9411         * src/SDCCmain.c: new option -o
9412         * src/asm.c: new option -o
9413         * src/ds390/main.c: new option -o
9414         * src/pic/glue.c: new option -o
9415         * src/pic/pcode.c: new option -o
9416         * src/pic/ralloc.c: new option -o
9417         * src/pic16/glue.c: new option -o
9418         * src/pic16/pcode.c: new option -o
9419         * src/pic16/ralloc.c: new option -o
9420         * src/z80/main.c: new option -o
9421         * device/lib/Makefile.in: use -o
9422         * support/regression/ports/ds390/spec.mk: use -o
9423         * support/regression/ports/gbz80/spec.mk: use -o
9424         * support/regression/ports/mcs51/spec.mk: use -o
9425         * support/regression/ports/mcs51-stack-auto/spec.mk: use -o
9426         * support/regression/ports/z80/spec.mk: use -o
9427         * support/regression/ports/ucz80/spec.mk: use -o
9428         * support/regression/ports/xa51/spec.mk: use -o
9429         * support/regression/fwk/lib/timeout.c: fix usage string
9430
9431 2003-01-09  Bernhard Held <bernhard AT bernhardheld.de>
9432         * src/mcs51/gen.c (genPlus): replaced "mov b,acc" by "mov b,a" Fiorenzo D. Ramaglia <fd.ramaglia AT tin.it>
9433
9434 2003-01-07    <johan AT balder>
9435
9436         * src/SDCCast.c (decorateType): fixed bug #600035
9437
9438 2003-01-07  Bernhard Held <bernhard AT bernhardheld.de>
9439         * as/mcs51/lkmem.c: added several l-modifiers to printf to remove warnings
9440         * as/mcs51/lkaomf51.c: #include <ctype.h> to remove warnings
9441         * src/pic/main.c (_hasNativeMulFor): outcommented unused variables to remove warnings
9442         * src/pic/pcode.c: outcommented unused variable to remove warnings
9443         * src/pic/ralloc.c: outcommented unused variable to remove warnings
9444
9445 2003-01-06    <karl AT turbobit.com>
9446         * sim/ucsim/cmd.src/command.cc: fixed so "break xram r 0x7654" works again in
9447    regression tests.
9448
9449 2003-01-06    <johan AT balder>
9450
9451         * src/SDCCicode.c: fixed array add
9452
9453 2002-01-05  Bernhard Held <bernhard AT bernhardheld.de>
9454         * src/SDCCmacro.c: MAX_STRING_LENGTH increased to 2048; was too small for regression tests
9455         * support/regression/ports/host/support.c: #include <stdarg.h> for gcc 3.2
9456
9457 2003-01-04    <johan AT balder>
9458
9459         * src/SDCCval.c (getNelements): fixed the initialized array of structures
9460
9461 2002-12-29  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
9462         * as/mcs51/Makefile.bcc: fixed typo lkomf51.o -> lkaomf51.o
9463
9464 2002-12-28  Bernhard Held <bernhard AT bernhardheld.de>
9465         * src/mcs51/peeph.def: added rules 234 and 235 from Frieder Ferlemann <frieder.ferlemann AT web.de>
9466         * support/regression/tests/bug-524697.c: fit mem usage into 8032
9467
9468 2002-12-28  Bernhard Held <bernhard AT bernhardheld.de>
9469         * src/mcs51/gen.c (aopGetUsesAcc): inserted missing "return FALSE"
9470
9471 2002-12-27  Bernhard Held <bernhard AT bernhardheld.de>
9472         * as/mcs51/Makefile.in: fixed typo lkomf51.o -> lkaomf51.o
9473
9474 2002-12-26  Bernhard Held <bernhard AT bernhardheld.de>
9475         * src/mcs51/main.c: removed {bindir}{sep} from aslink
9476
9477 2002-12-10  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
9478
9479     * in \sdcc\as\mcs51\ changed these files in order to create an
9480     aomf51 file: aslink.h, lkdta.c, lklex.c, lklibr.c, lklist.c,
9481     lkmain.c.  Also added: lkmem.c and lkaomf51.c.  Changed the
9482     following files to include the previous two files: aslink.dsp,
9483     Makefile.aslink, Makefile.bcc, and Makefile.in.
9484
9485     * Changed \sdcc\src\SDCCmain.c so it creates files with extension
9486     .adb instead of .cdb
9487
9488 2002-11-09  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
9489
9490         * \sdcc\as\mcs51\lklist.c: Now reports memory usage using the
9491         value from option --iram-size.
9492
9493 2002-09-20  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
9494
9495         * \sdcc\as\mcs51\lklist.c: added boundary check before using
9496         dram[] array.
9497
9498 2002-09-18    <wiml AT hhhh.org>
9499
9500         * SDCClrange.h: exposed setFromRange() and setToRange()
9501         * mcs51/ralloc.c: fixed over-eager packRegsForSupport() and
9502           packRegsForAccUse() (bug 542397)
9503         * mcs51/gen.c: MOVA() is now a function to avoid calling aopGet()
9504           multiple times and emitting the fetch operations more than once
9505           added aopGetUsesAcc() function to allow binary operators to
9506           fetch their operands in the correct order; made genMinus() emit
9507           compact code for X = LITERAL - Y
9508
9509 2002-09-00  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
9510         * \sdcc\as\mcs51\lklist.c: Fixed incorrect number of parameters to
9511         sprintf() in line 1267.
9512
9513 2002-09-08  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
9514         * \sdcc\src\SDCCglue.c: Generate areas REG_BANK_[0-3] only for 8051
9515         like ports.
9516
9517 2002-09-04  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
9518         Changes to aslink (All the changes are marked with 'JCF'):
9519
9520         * \sdcc\as\mcs51\aslink.h: External definition of sflag and
9521         summary().
9522
9523         * \sdcc\as\mcs51\lkarea.c: Computes the size of area BSEG_BYTES from
9524         area BSEG.  Also moves, if possible, the DATA area down into the internal
9525         ram so more space is available.
9526
9527         * \sdcc\as\mcs51\lkdata.c: Definition of memory summary output flag
9528         sflag.
9529
9530         * \sdcc\as\mcs51\lklist.c: For the BSEG area report the size in bits,
9531         not bytes.  Function summary() which creates a memory usage summary
9532         file with extension .mem.  Reports of overlaping stack and small stack
9533         size.  If the space for the stack is less than 16 bytes aslink trows a
9534         warning.
9535
9536         * \sdcc\as\mcs51\lkmain.c: Creation of some of the default areas for
9537         the 8051.  Option 'y' for memory summary output file.
9538
9539         Changes to sdcc (All the changes are marked with 'JCF'):
9540
9541         * \sdcc\src\SDCCglobl.h: External definition of RegBankUsed[4].
9542
9543         * \sdcc\src\SDCCglue.c:  If a register bank is used, creates an
9544         overlaying area for it (uses RegBankUsed[4]).
9545
9546         * \sdcc\src\SDCCmain.c: Definition RegBankUsed[4]; marks register
9547         bank zero as used by default.  By default aslink locates the stack
9548         (equivalent to --stack-after-data).  Pass option 'y' to aslink for
9549         the creation of the .mem file.  Delegates the allocation of data area
9550         to aslink (it is not longer 0x30 by default).  If --stack-loc passes
9551         the begining of the stack area to aslink.
9552
9553         * \sdcc\src\SDCCmem.c:  If a register bank is used, marks it so
9554         glue() in SDCCglue.c creates an area for it.
9555
9556 2002-09-03  Borut Razem <borut.razem AT siol.net>
9557         * sdcc/src/SDCCglue.c, sdcc/src/SDCCglue.h, sdcc/src/SDCCmain.c,
9558         sdcc/src/pic/glue.c:
9559         introduced atexit() handler for teporay files removal in case of
9560         errors, assertions, ...
9561
9562 2002-08-29  Borut Razem <borut.razem AT siol.net>
9563         * sdcc/support/cpp2/auto-host_vc_in.h:
9564         re-definition of O_BINARY and other O_XXX as _O_BINARY and _O_XXX, so the problem
9565         with the returned value from read() in sdcc/support/cpp2/cppfiles.c is solved for MSC.
9566         Maybe there is a similar problem with BORLANDC? It should be checked!
9567
9568         * sdcc/src/ds390/ralloc.c, sdcc/src/mcs51/ralloc.c, sdcc/src/z80/ralloc.c:
9569         corrected improper use of assert: the assignment to clr variable was done inside the assert.
9570         In case that NDEBUG was defined, the assert macro was substituted with no-op, so the assignment
9571         was not executed, and the compiler (cl) launched a warning:
9572         ralloc.c(1442) : warning C4700: local variable 'clr' used without having been initialized
9573
9574 2002-08-28  Bernhard Held <bernhard AT bernhardheld.de>
9575         * src/SDCCglue.c (printIvalArray): iterative calculation of array length
9576
9577 2002-08-28  Jesus Calvino-Fraga and Borut Razem <borut.razem AT siol.net>
9578         * sdcc/sdcc.dsw: added sdcpp, sdcppa, yacc, conf projects
9579
9580         * sdcc/src/src.dsp, sdcc/src/avr/avr.dsp, sdcc/src/ds390/ds390.dsp,
9581           sdcc/src/mcs51/mcs51.dsp, sdcc/src/pic/pic.dsp, sdcc/src/z80/z80.dsp,
9582           sdcc/src/xa51/xa51.dsp, sdcc/src/avr/avra.dsp,
9583           sdcc/src/ds390/ds390a.dsp, sdcc/src/mcs51/mcs51a.dsp,
9584           sdcc/src/pic/pica.dsp, sdcc/src/z80/z80a.dsp,
9585           sdcc/src/xa51/xa51a.dsp, sdcc/as/as_z80.dsp,
9586           sdcc/as/aslink.dsp, sdcc/as/asx8051.dsp, sdcc/packihx/packihx.dsp:
9587         - added Release configuration in VS projects
9588         - review of compiler an linker options
9589         - VC .exe files are generated in bin_vc directory, not to interfere
9590           with binaries generated from other projects (cygwin, mingw, bcc ...)
9591
9592         * sdcc/src/yacc.dsp: added
9593
9594         * sdcc/config.dsp, sdcc/configure_vc.awk, sdcc/sdcc_vc_in.h:
9595         added - genarate sdcc_vc.h using sdcc_vc_in.h as template
9596         and insert the version number definitions from .version
9597
9598         * sdcc/support/cpp2/sdcpp.dsp: added - VC project for sdcpp
9599
9600         * sdcc/support/cpp2/sdcppa.dsp, sdcc/support/cpp2/auto-host_vc_in.h:
9601         added - genarate auto-host.h using auto-host_vc_in.h as template
9602
9603         * sdcc/sdcc_vc.h,
9604         removed from CVS, generated automatically
9605
9606 2002-08-25  Bernhard Held <bernhard AT bernhardheld.de>
9607         * support/scripts/inc2h.pl: use gputils or gpasm (from Nathan Hurst)
9608
9609 2002-08-11  Borut Razem <borut.razem AT siol.net>
9610         * support/Util/NewAlloc.c: removed unneeded #include "sdccconf.h" (suggested by Jesus Calvino-Fraga)
9611
9612 2002-08-10  Borut Razem <borut.razem AT siol.net>
9613         * src/SDCCmain.c (main):
9614         file preOutName was unlinked before closed. This seems to be OK on UNIX and cygwin
9615         platforms, but it doesn't work with Visual Studio: the opened file can not be removed.
9616         The consequence was that some temporary files were not removed.
9617
9618         * src/SDCCglue.c:
9619         unification of code in functions tempfilename() and tempfile():
9620         function tempnam() is defined in Visual Studio 6.0 and .NET
9621
9622         * sdcc/sdcc.dsw: removed project sdcpp, added project xa51a
9623
9624         * sdcc/src/src.dsp, sdcc/src/avr/avr.dsp, sdcc/src/ds390/ds390.dsp,
9625           sdcc/src/mcs51/mcs51.dsp, sdcc/src/pic/pic.dsp, sdcc/src/z80/z80.dsp:
9626         - removed compiler command line option /WX: Treats all warnings as errors
9627         - update a list of source files, included into the project
9628
9629         * sdcc/src/avr/avra.dsp, sdcc/src/ds390/ds390a.dsp, sdcc/src/mcs51/mcs51a.dsp,
9630           sdcc/src/pic/pica.dsp, sdcc/src/z80/z80a.dsp:
9631         changed project type to Generic Project so that can be correcly converted to VS.NET project
9632
9633         * sdcc/as/mcs51/asm.h: definition of PATH_MAX for MSC
9634
9635         * sdcc/src/SDCCast.c: solved MSC error in function decorateType()
9636
9637         * sdcc/src/SDCC.y: added missing ending ';' to rules to get rid of bison warnings
9638
9639         * dcc/src/ds390/ralloc.c, sdcc/src/mcs51/ralloc.c:
9640         added return 0 statements after assert() to make compiler happy
9641
9642         * sdcc/src/xa51/peeph.rul, sdcc/src/xa51/peeph.def, sdcc/src/z80/ralloc.c:
9643         added newline in the def file to keep MSC compiler satisfied
9644
9645         * sdcc/src/z80/gen.c:
9646         - function strcasecmp() is not defined in MSC (and probably also in BORLANDC),
9647           so it is replaced with STRCASECMP, which is defined as stricmp in case of MSC and BORLANDC
9648         - solved MSC error in function aopDump()
9649
9650         * sdcc_vc.h: define PREFIX as "\\sdcc"
9651
9652 2002-07-18  Bernhard Held <bernhard AT bernhardheld.de>
9653         * src/SDCCast.c (decorateType): fixed access to array of structures http://sourceforge.net/mailarchive/forum.php?thread_id=902690&forum_id=4107
9654
9655 2002-06-22  Scott Dattalo <scott AT dattalo.com>
9656         * src/pic/*: Numerous bug fixes. Flow analysis has been enhanced.
9657         - Rewrote the register banking algorithm.
9658         - Added pCode live-range analysis to registers (for now, only non-used and
9659         singly-used registers optimized away)
9660
9661         * src/pic/pcoderegs.[ch]: Added new files for pCode live-range analysis
9662
9663         * 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.
9664
9665 2002-05-10  Scott Dattalo <scott AT dattalo.com>
9666         * src/pic/*: Added support for multiplication. Fixed many,many bugs.
9667
9668 2002-04-22  Michael Hope  <michaelh AT vroom>
9669
9670         * device/lib/z80/printf.c: Changed emitter to volatile to work around a pcall bug.
9671
9672         * configure.in (DD_COPT): Added include support required for gbdk.
9673
9674         * .version: Bumped version number just to increase it.
9675
9676         * src/SDCCmain.c: Added -nostdinc to the default options.
9677
9678 2002-04-15  Michael Hope  <michaelh AT vroom>
9679
9680         * device/lib/z80/printf.c (sprintf): Added.
9681
9682         * src/z80/ralloc.c (packRegisters): Disabled pack HL use for GB as it's broken.
9683
9684         * src/z80/peeph.def: Added transpose redundent load rule.
9685
9686         * src/z80/main.c: Added force callee saves for jaune.
9687
9688         * src/port.h: Removed the i186 and tlcs-900h ports as they weren't being being developed.
9689
9690         * src/SDCCmain.c: Pulled the options definition out so that you can add port specific options without changing the main file.
9691
9692 2002-03-28  Johan Knol  <johan AT balder>
9693
9694         * src/SDCCval.c: fixed bug #532436
9695
9696 2002-03-14  Scott Dattalo <scott AT dattalo.com>
9697         * /src/port.h:
9698         Added "char *Processor" field to the port structure.
9699
9700         * /src/SDCCmain.c:
9701         Added -p option. Allows port dependent processor to be specified.
9702
9703         * all ports:
9704         Initialized the new field char *Processor field to NULL in all ports
9705
9706         * /src/pic/*:
9707         Compiler generated registers for interrupt context saving
9708         were not getting allocated.
9709
9710 2002-03-16  Sandeep Dutta  <sandeep AT ddi.com>
9711
9712         * /src/SDCCast.c:
9713         Fixed left shift. Will promote the left side of a left shift
9714         if a) left shifting more than size of operand or b) when assigned
9715         to something size > size of left side
9716
9717 2002-03-14  Scott Dattalo <scott AT dattalo.com>
9718         * src/pic/*
9719         tons of changes. Register allocation has been
9720         rewritten. Added customization for the various PICs. Flow
9721         analysis is restructured. ...
9722
9723         * src/pic/device.h:
9724         Added
9725
9726         * src/pic/device.c:
9727         Added. device.c is a PIC port hack to accomodate variations
9728         in PIC devices.
9729
9730 2002-03-13  Michael Hope  <michaelh AT vroom>
9731
9732         * src/z80/gen.c (genGenPointerGet): Fixed a bug where a pointer in HL is dereferenced into HL but HL is not spilled.  Yeah.
9733
9734 2002-03-04  johanknol  <johanknol AT manik>
9735
9736         * /src/SDCCval.c: fixed
9737
9738         const unsigned char arr[][2] = { { 0, 1 } };
9739         t18.c:1: error: Initializer element is not constant
9740
9741 2002-03-04  bela  <bela AT manik>
9742
9743         * /device/include/mcs51reg.h:
9744         ds89c420 register definition update
9745
9746 2002-03-03    <johan AT FRIJA>
9747
9748         * support/Util/SDCCerr.c: did something, but don't no why anymore
9749
9750         * support/regression/tests/bug-524691.c: made it a little less shy
9751
9752         * src/SDCCast.c (decorateType): fixed bug #524697
9753
9754         * src/SDCCast.c: made some lineno improvements
9755
9756         * src/SDCCval.c (getNelements): changed warning to error
9757
9758         * src/SDCCglue.c (printIvalArray): changed warning to error
9759
9760         * src/SDCCicode.c: fixed a warning for mingw
9761
9762         * src/SDCCast.c (decorateType): fixed the << promotion for ops
9763
9764         * src/SDCCicode.c (geniCodeDivision): divide is shift only for unsigned (bug #524685)
9765
9766 2002-03-02  Sandeep Dutta  <sandeep AT ddi.com>
9767
9768         * src/ds390/peeph.def:
9769         Added some more peephole rules
9770
9771         * src/ds390/gen.c: Various fixes & enhancements
9772
9773         * src/SDCClrange.c, src/SDCClrange.h:
9774         functions "alldefsoutofrange" and "notusedinblock" moved to SDCClrange.c
9775
9776         * src/ds390/ralloc.c:
9777         various fixes & enhancements (ds390) specific
9778
9779         * src/avr/ralloc.c, src/mcs51/ralloc.c, src/pic/ralloc.c, src/xa51/ralloc.c, src/z80/ralloc.c:
9780         Functions "allDefsOutOfRange" & "notUsedinBlock" moved to SDCClrange.c
9781         from rallocs.
9782
9783         * sdcc/src/SDCCcse.c: Better fix for bug # 514308
9784
9785 2002-03-02    <johan AT FRIJA>
9786
9787         * src/SDCCast.c (decorateType): fixed bug #524708
9788
9789         * src/SDCCval.c (floatFromVal): fixed the literal void (whatever that may be)
9790
9791         * src/SDCCicode.c (geniCodePtrPtrSubtract): fixed bug #524691
9792
9793 2002-03-01  Michael Hope  <michaelh AT vroom>
9794
9795         * src/SDCCsymt.c (initCSupport): Removed managling of support function names.
9796
9797         * src/z80/ralloc.c (packRegsForIYUse): Fixed fp bug where four byte operands were packed into IY.
9798
9799 2002-03-01    <johan AT FRIJA>
9800
9801         * src/SDCCglue.c (printIvalPtr): fixed bug #524211
9802
9803         * src/SDCCast.c (decorateType): fixed bug #524209
9804
9805         * src/SDCCval.c (valNot): fixed bug #524195
9806
9807 2002-02-26    <johan AT balder>
9808
9809         * src/xa51/gen.c: fixed a warning
9810
9811         * src/SDCCglue.c (printIvalFuncPtr): fixed bug #522534
9812
9813         * src/SDCCast.c (decorateType): fixed bug #522534
9814
9815 2002-02-23    <johan AT balder>
9816
9817         * src/SDCCdflow.c (computeDataFlow): fixed bug #460088
9818
9819 2002-02-22    <johan AT balder>
9820
9821         * src/SDCCast.c: fixed bug #514865
9822
9823         * src/SDCCy.c ("SDCC.y"): fixed bug #516625
9824
9825 2002-02-21  Sandeep Dutta  <sandeep AT ddi.com>
9826
9827         * sdcc/src/SDCCloop.c:
9828         Previous fix was not good. basic blocks that have "break" or "return" are
9829         not really partof a loop , but live ranges used in these blocks should
9830         be live thru the entire loop, so set partOfLoop but don't add them to
9831         loop region
9832
9833 2002-02-21    <johan AT FRIJA>
9834
9835         * src/SDCCcse.c: fixed bug #514308
9836
9837 2002-02-20  Sandeep Dutta  <sandeep AT ddi.com>
9838
9839         * src/SDCCloop.c:
9840         Fixed BUG #519583. If a conditional block ended in a return/break
9841         statement inside a loop, it was not being considered part of the loop.
9842
9843         * src/SDCCcflow.c: Removed fix (Fixed in SDCCloop.c)
9844
9845 2002-02-10  Karl Bongers <karl AT turbobit.com>
9846
9847         * debugger/*:
9848         Fixed up SDCDB debugger somewhat.  Updated debugger/README
9849         with lots of comments and notes.
9850
9851         * device/examples/test2.c:
9852         Fix bug, "red" variable not being initialized(compiler complained).
9853
9854         * device/examples/Makefile, examples/test3.c:
9855         Add Makefile in device/examples folder, compiles test3.c
9856         for use as a multiple module SDCDB test case.
9857
9858         * sim/ucsim/cmd.src/cmdset.cc:
9859         Took out debug printfs in ucsim "next" command.
9860
9861         * sim/ucsim/xa.src:
9862         Karl and Johan start ucsim XA support.  Most dissassembly working,
9863         about 75% emulation done(plenty of work remaining).
9864
9865         * sim/ucsim/z80.src:
9866         Add Z80 support to ucsim, add test-ucz80 regression test,
9867         notice ucsim/z80 emulation fails on examples/test3.c/itoa code.
9868         Notice z80 compiler fails on examples/test3.c/crc code.
9869
9870 2002-01-30  Sandeep Dutta  <sandeep AT ddi.com>
9871
9872         * src/mcs51/gen.c, src/mcs51/main.c, src/mcs51/ralloc.c:
9873         Added support for --parms-in-bank1
9874
9875         * src/ds390/peeph.def:
9876         added a few more peephole optimzations
9877
9878         * src/ds390/main.c:
9879         1) added __builtin_inp & __builtin_outp used to read in data of given length
9880            from a memory mapped port
9881         2) added __builtin_memcmp
9882         3) added __builtin_swapw swap bytes of a short
9883
9884         * src/ds390/gen.c, src/ds390/gen.h, src/ds390/ralloc.c:
9885         1) handle multiple send & receives from register bank1
9886         2) ralloc can now allocate DPTR1 to some liveRanges
9887
9888         * src/SDCCsymt.c, src/SDCCsymt.h:
9889         changes to handle multiple sends & receives
9890
9891         * src/SDCCptropt.h:
9892         added some pointer arithmetic optimization
9893
9894         * src/SDCCptropt.c:
9895         added some pointer arithmetic optimizations but not stable yet so not
9896         called from anywhere (will get this working shortly)
9897
9898         * src/SDCCopt.c: fixed for multiple sends & receives
9899
9900         * src/SDCCmain.c:
9901         1) added options --parms-in-bank1 (ds390/mcs51) & --protect-sp-update
9902         2) preprocessing done AFTER port->finalizeoptions . This allows ports to
9903            set preprocessor defines (depending on options)
9904
9905         * src/SDCCicode.c, src/SDCCicode.h:
9906         changes made to handle multiple sends & receives
9907
9908         * src/SDCCglobl.h:
9909         Added options --protect-sp-update (ds390) and --parms-in-bank1 (ds390/mcs51)
9910
9911         * src/SDCCcse.c, src/SDCCcse.h:
9912         added function findbackward def (to be used in upcoming optimization)
9913
9914         * src/SDCCcflow.c, src/SDCCcflow.h:
9915         added function returnAtEnd - to determine if a basic block terminates with
9916         a RETURN iCode
9917
9918         * src/SDCCast.c, src/SDCCast.h:
9919         added option parms-in-bank1
9920
9921         * device/lib/_divsint.c, device/lib/_divslong.c, device/lib/_divuint.c
9922         * device/lib/_divulong.c, device/lib/_modsint.c, device/lib/_modslong.c
9923         * device/lib/_modulong.c, device/lib/_mulint.c, device/lib/_mullong.c:
9924         adjusted for --parms-in-bank1 option
9925
9926         * device/include/string.h:
9927         donot redefine "reentrant" keyword
9928
9929         * device/include/ds80c390.h: Added some more SFRs
9930
9931 2002-01-28  Bernhard Held  <bernhard AT bernhardheld.de>
9932
9933         * sim/ucsim: Merged branch ucsim-034-pre3 to main trunk; new version 0.4
9934
9935 2002-01-26  Bernhard Held  <bernhard AT bernhardheld.de>
9936
9937         * src/SDCCast.c (funcOfType): fix usage of double --float-reent
9938
9939 2002-01-22  Bernhard Held  <bernhard AT bernhardheld.de>
9940
9941         * support/regression/fwk/lib/testfwk.c (main): Removed workaround for bug #505387
9942
9943 2002-01-18  Paul Stoffregen  <paul AT pjrc.com>
9944
9945         * Added --xram-movc option
9946
9947 2002-01-13  Bernhard Held  <bernhard AT bernhardheld.de>
9948
9949         * support/regression/Makefile: don't include test-mcs51-stack-auto in target all
9950
9951 2002-01-11  Johan Knol
9952
9953         * Added math lib of Jesus Calvino-Fraga
9954
9955 2002-01-08  Bernhard Held  <bernhard AT bernhardheld.de>
9956
9957         * src/SDCCmain.c (processFile): fix processing of ../../src.c
9958         * support/regression/Makefile: new target test-mcs51-stack-auto
9959         * support/regression/ports/mcs51-stack-auto/spec.mk: added
9960
9961 2002-01-04  Bernhard Held  <bernhard AT bernhardheld.de>
9962
9963         * src/SDCCglue.h: printIvalCharPtr(), not printIvalChar()
9964
9965 2002-01-04  Bernhard Held  <bernhard AT bernhardheld.de>
9966
9967         * support/regression/ports/mcs51/support.c: correct setup of timer / UART
9968
9969 2002-01-03  Bernhard Held  <bernhard AT bernhardheld.de>
9970
9971         * src/SDCCsymt.c (processFuncArgs): fix #498307 by Johan
9972
9973         * src/SDCCglue.h: add definition for printIvalChar()
9974
9975 2002-01-02  Bernhard Held  <bernhard AT bernhardheld.de>
9976
9977         * src/SDCCast.c: fix #498138 by Johan
9978
9979         * src/SDCCglue.c: fix #498138 by Johan
9980
9981 2002-01-02  Bernhard Held  <bernhard AT bernhardheld.de>
9982
9983         * support/regression/Makefile: fix clean
9984
9985         * support/regression/ports/ds390/support.c: fix transmission of last character
9986
9987 2001-12-29  Sandeep Dutta  <sandeep AT ddi.com>
9988
9989         * /sdcc/src/ds390/gen.c:
9990         a) improved computing address of stack variable
9991         b) took out some #if 0 code
9992         c) improved parmBytes adjustment
9993         d) improved genPlusIncr & genMinusIncr
9994         e) genCmp could generate bad code (when left assigned to DPTR)
9995         f) Fixed bug in hasInc
9996
9997         * /sdcc/src/ds390/ralloc.c:
9998         a) packRegsForSupport could mess up live information (Fixed)
9999         b) packRegsDPTRuse could be incorrect for left & right shift
10000
10001         * /sdcc/src/mcs51/ralloc.c:
10002         packRegsForSupport could mess up the live information (Fixed)
10003
10004         * /sdcc/src/mcs51/gen.c: Fixed a bug in hasInc
10005
10006         * /sdcc/src/SDCCast.c:
10007         can reverse a loop even if function call is present as long
10008         as the loop control variable is local & is not passed as parameter
10009
10010 2001-12-24  Sandeep Dutta  <sandeep AT ddi.com>
10011
10012         * /sdcc/ChangeLog: *** empty log message ***
10013
10014         * /sdcc/src/ds390/gen.c, /sdcc/src/ds390/main.c:
10015         More builtin function additions for TININative
10016
10017         * /sdcc/src/ds390/ralloc.c:
10018         Had broken the regression testsuite
10019
10020         * /sdcc/src/SDCCast.c: Fixed a bug in dumptree
10021
10022         * /sdcc/src/SDCCsymt.c, /sdcc/src/SDCCsymt.h:
10023         Added funcattr hasStackParms will be set for reentrant functions when there
10024         are paramteres on the stack, this helps in minimizing frame pointer generation
10025         typeFromStr can handle function pointers now
10026
10027         * /sdcc/doc/builtins.txt, /sdcc/doc/TININative.txt:
10028         *** empty log message ***
10029
10030 2001-12-24  Sandeep Dutta  <sandeep AT ddi.com>
10031
10032         * /src/ds390/gen.c, /src/ds390/main.c:
10033         More builtin function additions for TININative
10034
10035         * /src/ds390/ralloc.c:
10036         Had broken the regression testsuite
10037
10038         * /src/SDCCast.c: Fixed a bug in dumptree
10039
10040         * /src/SDCCsymt.c, /src/SDCCsymt.h:
10041         Added funcattr hasStackParms will be set for reentrant functions when there
10042         are paramteres on the stack, this helps in minimizing frame pointer generation
10043         typeFromStr can handle function pointers now
10044
10045         * /doc/builtins.txt, /doc/TININative.txt:
10046         *** empty log message ***
10047
10048
10049 2001-12-24  Sandeep Dutta  <sandeep AT ddi.com>
10050
10051         * /src/ds390/gen.c, /src/ds390/main.c, /src/ds390/peeph.def, /src/ds390/ralloc.c:
10052         ALPHA version for -mTININative
10053
10054         * /src/izt/i186.c, /src/izt/tlcs900h.c, /src/mcs51/main.c, /src/pic/main.c, /src/z80/main.c, /src/avr/main.c:
10055         updated to reflect changes in the port structure
10056
10057         * /src/port.h:
10058         added function do_assemble (similar to do_link) if non-null this function
10059         will be called to do assembly (-mTININative) requires a multi command
10060         assembly
10061         added function genAssemblerEnd will be called to generate assembler Epilogue
10062
10063         * /src/SDCCsymt.c:
10064         added _JavaNative to debug info printing
10065
10066         * /src/SDCCmain.c: added option --tini-libid
10067         added port->do_assemble function (-mTININative) has a multi command assemble
10068
10069         * /src/SDCCglue.c: Disabled "constExpr" check
10070         added port->genAssemblerEnd function
10071
10072         * /src/SDCCglobl.h: Added option --tini-libid value
10073
10074         * /src/SDCCast.h:
10075         tookout optimizeCompare from the header (has no external references)
10076
10077         * /src/SDCCast.c: made one more function "static"
10078
10079 2001-12-23  Michael Hope  <michaelh AT juju.net.nz>
10080
10081         * src/z80/mappings.i: Added z80asm support.
10082
10083         * src/z80/main.c: Added z80asm support on --asm=z80asm
10084
10085         * src/z80/gen.c: Fixed asm portability issues.
10086
10087         * src/asm.c (tvsprintf): Removed old code, added 'N' for function name.  For extern support.
10088
10089         * src/SDCCglue.c (printExterns): Added global/extern split.
10090
10091 2001-12-17  Bernhard Held  <bernhard AT bernhardheld.de>
10092
10093         * support/regression/Makefile: added test for mcs51 model large
10094
10095         * support/regression/ports/mcs51-large/spec.mk: added test for mcs51 model large
10096
10097         * support/regression/ports/gbz80/spec.mk: added -mgbz80
10098
10099 2001-12-05  Michael Hope  <michaelh AT juju.net.nz>
10100
10101         * src/diff.1 (Index): Many, many optmisiations.  Dhrystone up to 201.
10102
10103 1904-01-06  Michael Hope  <michaelh AT juju.net.nz>
10104
10105         * src/z80/ralloc.c (packRegsForIYUse): Fixed the case where an operand is in direct space.
10106
10107         * src/z80/gen.c (makeFreePairId): Optimised IY load by using a spare pair.
10108
10109 2001-12-02  Bernhard Held  <bernhard AT bernhardheld.de>
10110
10111         * src/mcs51/gen.c (genFunction): avoid excess "inc sp"
10112
10113         * support/regression/tests/simplefloat.c: Port to mcs51.
10114
10115 2001-11-25  Michael Hope  <michaelh AT juju.net.nz>
10116         * support/regression/tests/bug-485362.c: Added.
10117
10118         * support/regression/tests/simplefloat.c (testDivNearOne): Added.
10119
10120         * src/z80/gen.c (aopOp): Fixed case where left and result are in the same spill loc and they have different sizes.
10121
10122         * src/z80/peeph.def: Added rules for optimising two byte compares on the same thing, and to optimise two ptr assign.
10123
10124         * src/z80/gen.c (aopDump): Added a dump function.
10125
10126 2001-11-25  Bernhard Held  <bernhard AT bernhardheld.de>
10127         * sim/ucsim/s51.src/glob.cc: DS390 SFRs and bits added.
10128
10129         * sim/ucsim/s51.src/port.cc: Port 4 and 5 added.
10130
10131         * sim/ucsim/s51.src/regs51.h: DS390 SFRs added.
10132
10133         * sim/ucsim/s51.src/uc390.cc: Some details improved, CKRDY works for tinibios.
10134
10135         * sim/ucsim/s51.src/uc390cl.h: Work in progress.
10136
10137         * sim/ucsim/sim.src/uccl.h: 6 ports for DS390.
10138
10139         * support/regression/fwk/lib/testfwk.c: Run with tinibios.
10140
10141         * support/regression/ports/mcs51/spec.mk: Fine tuninig.
10142
10143         * support/regression/ports/ds390/support.c: Use tinibios.
10144
10145         * support/regression/ports/ds390/spec.mk: Fine tuning, use tinibios.
10146
10147 2001-11-23  Michael Hope  <michaelh AT juju.net.nz>support/regression/tests/bug-460010.c
10148
10149         * src/z80/ralloc.c (packRegsForHLUse3): Changed to not pack into HL if anything is in direct space.
10150         (packRegsForHLUse3): Added packing support for send, cast, and return value from a call.
10151
10152         * src/z80/peeph.def: Added rules for optimising pushes of part of a pair.
10153
10154         * src/z80/gen.c (emitCall): Changed the stack fixup to not use HL.
10155
10156 2001-11-18  Michael Hope  <michaelh AT juju.net.nz>
10157
10158         * src/z80/gen.c (genCmp): Fixed compare on unsigned.
10159
10160         * src/z80/ralloc.c (packRegsForHLUse3): Created and optimised.
10161         (packRegsForIYUse): Created and optimised.
10162
10163 2001-11-07  Michael Hope  <michaelh AT juju.net.nz>
10164
10165         * support/regression/tests/float.c (testFloatAdd): Fixed up warning.
10166 2001-11-18  Bernhard Held  <bernhard AT bernhardheld.de>
10167
10168         * sdcc/support/regression/tests/bug-460010.c: fix seg violation on host
10169
10170         * sdcc/support/regression/tests/muldiv.c: fix output on mcs51
10171
10172         * sdcc/support/regression/tests/stacks.c: fix DSEG overflow on mcs51
10173
10174 2001-11-07  Bernhard Held  <bernhard AT bernhardheld.de>
10175
10176         * sdcc/sim/device/lib/_gptrget.c: mem region 5 (idata) added
10177
10178         * sdcc/sim/device/lib/_gptrput.c: mem region 5 (idata) added
10179
10180 2001-11-07  Bernhard Held  <bernhard AT bernhardheld.de>
10181
10182         * sdcc/sim/ucsim/globals.cc: New: IXRAM.
10183
10184         * sdcc/sim/ucsim/stypes.h: New: IXRAM.
10185
10186         * sdcc/sim/ucsim/s51.src/uc390.cc: New: IXRAM.
10187
10188 2001-11-07  Michael Hope  <michaelh AT juju.net.nz>
10189
10190         * src/z80/ralloc.c (packRegsForHLUse): Banned IFXs from being packed into HL.
10191         (packRegsForHLUse): Added rule to pack address of/pointer get for itemps into HL for the Z80.
10192         (packRegsForAccUse2): Added rule to pack hbit IFXs into A.
10193
10194         * src/z80/main.c (_setDefaultOptions): Made float code re-entrant by default.
10195
10196         * src/z80/gen.c (aopGetLitWordLong): Added word support for floats.
10197         (genNotFloat): Added.
10198         (genUminusFloat): Added.
10199
10200         * device/lib/z80/Makefile: Added floating pt stubs.
10201
10202         * device/lib/Makefile.in (Z80SOURCES): Added floating pt support.
10203
10204         * src/z80/gen.c (genIpush): Fixed up a push of one byte when left is in a pair.
10205
10206         * device/lib/_fsadd.c (__fsadd): Fixed up return where the numbers are hugely different.
10207
10208 2001-11-07  Bernhard Held  <bernhard AT bernhardheld.de>
10209
10210         * sdcc/sim/ucsim/s51.src/glob.cc: Minor fix.
10211
10212         * sdcc/sim/ucsim/s51.src/regs51.h: Minor fix.
10213
10214         * sdcc/support/regression/Makefile: Add port ds390.
10215
10216         * sdcc/support/regression/ports/mcs51/spec.mk: Minor change.
10217
10218         * sdcc/support/regression/ports/z80/spec.mk: Minor change.
10219
10220         * sdcc/support/regression/ports/ds390/spec.mk: Added.
10221
10222         * sdcc/support/regression/ports/ds390/support.c: Added.
10223
10224         * sdcc/support/regression/ports/ds390/uCsim.cmd: Added.
10225
10226         * sdcc/support/regression/ports/mcs51/timeout.c: Cut.
10227
10228         * sdcc/support/regression/fwk/lib/timeout.c: Paste.
10229
10230 2001-11-04  Michael Hope  <michaelh AT juju.net.nz>
10231
10232         * device/include/malloc.h: Added z80 and gbz80 support.
10233
10234         * device/lib/gbz80/heap.s: Added.
10235
10236         * device/lib/z80/heap.s: Added.
10237
10238         * device/lib/malloc.c: Added z80 and gbz80 support.
10239
10240         * support/regression/tests/malloc.c (testMalloc): Added.
10241
10242         * src/SDCCmain.c (parseCmdLine): Added support for -Wp.
10243
10244         * support/regression/tests/bug-478094.c: Added.
10245
10246         * src/z80/gen.c (commitPair): Fixed silly gbz80/z80 commit to static bug.
10247
10248 2001-11-04  Bernhard Held  <bernhard AT bernhardheld.de>
10249
10250         * sdcc/sim/ucsim/s51.src/uc390cl.h: Improvement for ds390 to run regression tests
10251
10252         * sdcc/sim/ucsim/s51.src/uc390.h: Improvement for ds390 to run regression tests
10253
10254         * sdcc/sim/ucsim/s51.src/regs51.h: Improvement for ds390 to run regression tests
10255
10256         * sdcc/sim/ucsim/s51.src/glob.cc: Improvement for ds390 to run regression tests
10257
10258         * sdcc/support/regression/tests/bug-460010.c: Small change for ds390
10259
10260 2001-11-04  Michael Hope  <michaelh AT juju.net.nz>
10261
10262         * src/z80/peeph-gbz80.def: Removed a bad sub optimisation.
10263
10264 2001-11-03  Michael Hope  <michaelh AT juju.net.nz>
10265
10266         * support/regression/tests/bug-477927.c: Added.
10267
10268         * src/z80/peeph.def: Added minor rules.
10269
10270         * src/z80/gen.c (genPlusIncr): Added an extra plusinc rule.
10271
10272         * src/z80/peeph.def: Added jump optimisation modification.
10273
10274 2001-11-01  Michael Hope  <michaelh AT juju.net.nz>
10275
10276         * src/SDCCmain.c (linkEdit): Added runtime path detection to the mcs51 port.
10277
10278 2001-10-30  Michael Hope  <michaelh AT juju.net.nz>
10279
10280         * support/regression/tests/funptrs.c: Added.
10281
10282 2001-10-29  Michael Hope  <michaelh AT juju.net.nz>
10283
10284         * src/z80/ralloc.c (packRegsForHLUse): Fixed up bad spill due to pushing one byte via HL.
10285
10286 2001-10-28  Michael Hope  <michaelh AT juju.net.nz>
10287
10288         * src/z80/gen.c (genArrayInit): Made it work for on stack arrays.
10289
10290         * src/z80/main.c (gbz80_port =): Added rle support to the gbz80 port.
10291
10292         * src/z80/gen.c (genMinus): Fixed for where the result is one byte.
10293         (movLeft2ResultLong): Created.
10294
10295         * src/z80/ralloc.c (packRegsForHLUse): Added a couple of simple cases for the GB.
10296         (joinPushes): Added.  Joins two char pushes into a word push.
10297
10298 2001-10-27  Michael Hope  <michaelh AT juju.net.nz>
10299
10300         * support/cpp2/Makefile.in (install): Added creation of dest dir.
10301
10302         * support/makebin/Makefile (install): Added creation of dest dir.
10303
10304 2001-10-24 Karl Bongers <karl AT turbobit.com>
10305
10306         * configure.in, configure, Makefile, support/cpp: Removed cpp folder, since we have new cpp2 preprocessor code.
10307
10308 2001-10-21  Michael Hope  <michaelh AT juju.net.nz>
10309
10310         * src/z80/ralloc.c: Turned off faulty pack for one use.
10311
10312         * src/z80/peeph-gbz80.def: Removed redundent restart options.
10313
10314         * src/z80/gen.c (genMult): Added native mul for constants on the z80 and gbz80.
10315
10316 2001-10-21  Bernhard Held  <bernhard AT bernhardheld.de>
10317
10318         * support/regression/Makefile: Improved clean
10319
10320         * support/regression/ports/gbz80/spec.mk: Added clean
10321
10322         * support/regression/ports/host/spec.mk: Added clean
10323
10324         * support/regression/ports/z80/spec.mk: Added clean
10325
10326         * support/regression/ports/mcs51/spec.mk: Added clean, little improvements
10327
10328         * support/regression/ports/mcs51/timeout.c: little improvements
10329
10330 2001-10-17  Michael Hope  <michaelh AT juju.net.nz>
10331
10332         * device/lib/malloc.c (MEMHEADER): Fixed against new pedantic pointers.
10333
10334         * support/regression/fwk/include/testfwk.h: Fixed up to use function pts correctly.
10335
10336         * support/regression/generate-cases.py: Fixed up to use function pts correctly.
10337
10338 2001-10-16  Bernhard Held  <bernhard AT bernhardheld.de>
10339
10340         * support/regression/port/mcs51/spec.mk: add timeout for uCsim
10341
10342         * support/regression/port/mcs51/timeout.c: add timeout for uCsim
10343
10344 2001-10-13  Michael Hope  <michaelh AT juju.net.nz>
10345         * src/z80/gen.c (emitCall): Fixed up missing spill of HL when used to assign the result value.
10346
10347         * src/z80/ralloc.c: Turned off pack for one use as it's quite broken.
10348
10349         * src/SDCCmain.c (linkEdit): Added support for passing a legacy command line through the processor.
10350
10351         * src/mcs51/main.c (_linkCmd): Added bin path to command.
10352
10353         * src/SDCCmain.c (initValues): Added support for when it it called just to link.
10354
10355         * as/mcs51/lklibr.c (libfil;): Turned off 'library file' message.
10356
10357         * src/SDCCval.c (constVal): Fixed usage of 'L' modifier problems on ppc.
10358
10359         * support/regression/tests/longor.c: Added.
10360
10361 2001-10-11  Bernhard Held  <bernhard AT bernhardheld.de>
10362
10363         * as/mcs51/asdata.c: replaced FILENAME_MAX with PATH_MAX
10364
10365         * as/mcs51/aslink.h: define PATH_MAX
10366
10367         * as/mcs51/asm.h: define PATH_MAX
10368
10369         * as/mcs51/asmain.c: replaced FILENAME_MAX with PATH_MAX
10370
10371         * as/mcs51/asnoice.c: replaced FILENAME_MAX with PATH_MAX
10372
10373         * as/mcs51/lklex.c: replaced FILENAME_MAX with PATH_MAX
10374
10375         * as/mcs51/lkmain.c: replaced FILENAME_MAX with PATH_MAX
10376
10377         * src/SDCCglobl.h: define PATH_MAX
10378
10379         * src/SDCCmacro.c: replaced FILENAME_MAX with PATH_MAX
10380
10381         * src/SDCCmain.c: replaced FILENAME_MAX with PATH_MAX
10382
10383 2001-10-11  Michael Hope  <michaelh AT juju.net.nz>
10384
10385         * src/z80/gen.c (gencjneshort): Fixed
10386
10387         * src/z80/ralloc.c (packRegsForHLUse): Added pack into HL for cast then ipush.
10388
10389 2001-10-09  Michael Hope  <michaelh AT juju.net.nz>
10390
10391         * support/regression/tests/bug-469671.c: Added.
10392
10393         * src/z80/gen.c (shiftIntoPair): Fixed up warning.
10394
10395 2001-10-08  Michael Hope  <michaelh AT juju.net.nz>
10396
10397         * src/SDCCmain.c: Added --fommit-frame-pointer option and implemented in the z80 port.
10398
10399         * src/z80/gen.c (genPlus): Fixed to work with extended stack.  Also fixed genMinus, genCmp.  genUMinus is still left.
10400
10401 2001-10-08  Bernhar Held  <bernhard AT bernhardheld.de>
10402
10403         * src/SDCCmain.c (preProcess): added define SDCC_NOOVERLAY
10404
10405         * src/device/lib/_mulint.c  : removed hint: nooverlay bug
10406
10407         * src/device/lib/_mullong.c : removed hint: nooverlay bug
10408
10409         * src/device/lib/_divuint.c : removed hint: nooverlay bug
10410
10411         * src/device/lib/_divulong.c: removed hint: nooverlay bug
10412
10413         * src/device/lib/_moduint.c : removed hint: nooverlay bug
10414
10415         * src/device/lib/_modulong.c: removed hint: nooverlay bug
10416
10417 2001-10-07  Michael Hope  <michaelh AT juju.net.nz>
10418
10419         * 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.
10420
10421         * support/Util/NewAlloc.c (freeTrace): Changed free for the gc case to not free at all.  Fixes runtime segfault.
10422
10423         * support/regression/tests/scott-compare3.c (c_abcd): Fixed up casts.
10424
10425 2001-10-07    <johan AT FRIJA>
10426
10427         * device/lib/gets.c (gets): fixed the return value.
10428
10429 2001-10-06  Michael Hope  <michaelh AT juju.net.nz>
10430         * src/SDCCmain.c (WRITE_SEG_LOC): Fixed up to use Safe_strdup.
10431
10432         * 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.
10433
10434         * 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.
10435
10436         * src/z80/gen.c (genZ80Code): Added de-allocation via trace support.
10437
10438         * src/pic/gen.c: Removed Safe_strdup.
10439
10440         * configure.in: Added option to enable libgc support.
10441
10442         * src/SDCCbitv.c (bitVectnBitsOn): Optimised.
10443         (bitVectUnion): Optimised.
10444         (bitVectIntersect): Optimised.
10445         (bitVectBitsInCommon): Optimised.
10446         (bitVectCplAnd): Optimised.
10447
10448         * support/makebin/makebin.c (usage): Removed getopt as mingw32 doesn't have it.  Sigh.
10449
10450 2001-10-03 Bernhard Held <bernhard AT bernhardheld.de>
10451
10452         * src/SDCCmain.c: distinguish between assembler debug and plain options
10453
10454         * src/avr/main.c:   remove standard assembler options
10455
10456         * src/ds390/main.c: remove standard assembler options
10457
10458         * src/mcs51/main.c: remove standard assembler options
10459
10460         * src/port.h: removed "PENDING" comment
10461
10462 2001-10-03 Bernhard Held <bernhard AT bernhardheld.de>
10463
10464         * src/device/lib/_mulint.c  : new, with assember functions
10465
10466         * src/device/lib/_mullong.c : new, with assember functions
10467
10468         * src/device/lib/_divuint.c : with assember functions
10469
10470         * src/device/lib/_divsint.c : with assember functions
10471
10472         * src/device/lib/_divulong.c: with assember functions
10473
10474         * src/device/lib/_divslong.c: with assember functions
10475
10476         * src/device/lib/_moduint.c : with assember functions
10477
10478         * src/device/lib/_modsint.c : with assember functions
10479
10480         * src/device/lib/_modulong.c: with assember functions
10481
10482         * src/device/lib/_modslong.c: with assember functions
10483
10484         * src/device/lib/libint.lib:  replaced _muluint.c  and _mulsint.c  by _mulint.c
10485
10486         * src/device/lib/liblong.lib: replaced _mululong.c and _mulslong.c by _mullong.c
10487
10488         * src/device/lib/Makefile.in: replaced _muluint.c  and _mulsint.c  by _mulint.c
10489                                       replaced _mululong.c and _mulslong.c by _mullong.c
10490
10491 2001-10-03 Bernhard Held <bernhard AT bernhardheld.de>
10492
10493         * src/SDCCsymt.c: sequence of specifiers in pintTypeChain() corrected
10494
10495 2001-10-01 Bernhard Held <bernhard AT bernhardheld.de>
10496
10497         * src/SDCCglue.c: test, if win32api is available for MINGW
10498
10499 2001-10-01 Bernhard Held <bernhard AT bernhardheld.de>
10500
10501         * src/SDCCsymt.c: no more _modifier in printTypeChain()
10502         * support/regression/tests/driverstruct.c: REENTRANT for mcs51
10503         * support/regression/ports/gbz80/spec.mk: removed GENERIC
10504         * support/regression/ports/host/spec.mk: removed GENERIC
10505         * support/regression/ports/mcs51/spec.mk: removed GENERIC
10506         * support/regression/ports/z80/spec.mk: removed GENERIC
10507
10508 2001-10-01  Michael Hope  <michaelh AT juju.net.nz>
10509
10510         * support/regression/fwk/lib/testfwk.c (__printf): Removed GENERIC.
10511
10512         * support/regression/tests/bug-467035.c: Created.
10513
10514 2001-10-01    <johan AT FRIJA>
10515
10516         * src/SDCC.y: fixed bug #466586 part 1
10517
10518 2001-10-01  Johan Knol <johan.knol AT iduna.nl>
10519
10520         * SDCCicode.c: z80 has no generic pointers
10521         * removed -s from strip in all Makefile(.in)'s. It is not needed, but Solaris chocks on it.
10522
10523 2001-09-30  Michael Hope  <michaelh AT juju.net.nz>
10524
10525         * sim/ucsim/cmd.src/Makefile.in ($(PRJDIR)/libcmd.a): Changed all ar references to $(AR) for Solaris.
10526
10527 2001-09-29  Michael Hope  <michaelh AT juju.net.nz>
10528
10529         * Makefile (sdcc-libs): Added makebin to the list of standard targets.
10530
10531         * support/regression/ports/z80/spec.mk: Updated to use env for sdcc bin dir for automatic regression.
10532
10533 2001-09-25  Michael Hope  <michaelh AT juju.net.nz>
10534
10535         * configure.in: Fixed up so that ucsim is only configured once.
10536
10537         * support/cpp2/configure.in: Fixed to use the program transform to append the .exe for the win32 build.
10538
10539         * src/SDCCutil.c (getPrefixFromBinPath): Fixed up to work with win32 in all of its glory.
10540         (getPathDifference): As above.
10541
10542         * src/SDCCmain.c (preProcess): Changed to use a temporary file in a proper temp directory.  Fixed case where pre-processing only.
10543
10544         * src/SDCCglue.c (tempfilename): Added function for pre-processor.
10545
10546 2001-09-23  Michael Hope  <michaelh AT juju.net.nz>
10547         * .version: Updated to 2.3.1
10548
10549         * src/z80/main.c (z80_port =): Added macro based linker and assembler command line support.
10550         Added copyright header.
10551
10552         * src/SDCCmain.c: Shifted various functions into SDCCutil.c
10553         (assemble): Added support for macro based assembler commands.
10554         (linkEdit): Added support for macro based linker commands.
10555         (preProcess): Changed the pre-processor to use macros.
10556         (_setPaths): Added functionality to autodetect the include, lib and bin dir paths.
10557         (_discoverPaths): Added support for overriding the install directory using the SDCCDIR env variable.
10558
10559         * device/lib/z80/crt0.s: Added module name for debugging.
10560
10561 2001-09-20  Michael Hope  <michaelh AT juju.net.nz>
10562
10563         * src/SDCCmain.c (printVersionInfo): Added the build date to the version info.
10564
10565         * src/SDCChasht.c (hTabDeleteByKey): Fixed delete as it would delete the last item from a bucket even if it wasn't the real one.
10566
10567         * src/SDCCglue.c: Moved gc_strdup to SDCCutil.c
10568
10569         * src/Makefile.in: Added SDCCmacro and SDCCutil
10570
10571 2001-09-19  Michael Hope  <michaelh AT juju.net.nz>
10572
10573         * src/SDCCmain.c (printVersionInfo): Added the build date to the version info.
10574
10575 2001-09-16    <johan AT FRIJA>
10576
10577         * 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.
10578
10579 2001-09-15    <johan AT FRIJA>
10580
10581         * src/mcs51/ralloc.c: (findAssignToSym): fixed bug #460662 part 1
10582         * src/ds390/ralloc.c (findAssignToSym): fixed bug #460662 part 1
10583
10584 2001-09-11    <johan AT FRIJA>
10585
10586         * src/SDCCval.c (valDiv Mod Minus Plus Shift): keep litteral expressions as small as possible (bug #460010)
10587
10588 2001-09-10  Michael Hope  <michaelh AT juju.net.nz>
10589
10590         * support/regression/tests/bug-460444.c: Added test case.
10591
10592         * src/z80/gen.c (genOr): bug 460444: if (a ^ lit) was broken for &, |, and ^.
10593         (genCast): Added justification for all of the asserts.
10594
10595 2001-09-10  Bernhard Held <bernhard AT bernhardheld.de>
10596
10597         * support/regression/support.c: _xdata replaced by xdata
10598
10599         * support/regression/spec.mk: removed _generic
10600
10601 2001-09-09  Michael Hope  <michaelh AT juju.net.nz>
10602
10603         * src/pic/ralloc.c (debugLogRegType): Removed some old types to get it to compile.
10604
10605         * src/z80/gen.c (shiftR2Left2Result): Improved the case when v = v >> n for small values of n to use less code space and time.
10606         (genrshTwo): Fixed v = v >> n where v is a negative int and n is > 8: bug 460010.
10607
10608         * src/z80/peeph.def: Added a rule to optimise shift then compare.
10609
10610         * support/regression/tests/bug-460000.c (testShiftByParam): Added test case.
10611
10612         * support/regression/tests/bug-460010.c: Added test case.
10613
10614         * support/regression/Makefile (test-host): Removed a silly 'clean' target when testing against gcc.
10615
10616 2001-09-09  Bernhard Held <bernhard AT bernhardheld.de>
10617
10618         * support/regression/Makefile: inter-port-clean adjusted for mcs51
10619
10620         * support/regression/testfwk.c: removed workaround for bug #436344
10621
10622         * support/regression/tests/bp.c: use less memory with mcs51
10623
10624         * support/regression/tests/bug-441448.c: use less memory
10625
10626         * support/regression/tests/ports/mcs51/spec.mk: cleanup, use --stack-after-data
10627
10628         * support/regression/collate-results.py: typo
10629
10630 2001-09-08  Michael Hope  <michaelh AT juju.net.nz>
10631
10632         * support/regression/tests/fetchoverlap.c: Added new test case.
10633
10634         * support/regression/tests/bp.c: Added new test case.
10635
10636         * support/regression/tests/bug-448984.c: Added new test case.
10637
10638         * support/regression/tests/pow2shifts.c: Added new test case.
10639
10640         * src/z80/gen.c: Turned off the noise it normally generates for the release.
10641         (genlshTwo): Fixed right shift for count > 8.
10642
10643         * src/z80/ralloc.c: Disabled most of the ACC packing rules as they weren't getting hit and weren't at all safe.
10644
10645 2001-09-08    <johan AT FRIJA>
10646
10647         * src/SDCCicode.c (geniCodeCall): a CPOINTER can be used as a function
10648
10649 2001-09-07    <johan AT FRIJA>
10650
10651         * src/SDCCicode.c (newiCodeCondition): fixed bug #456235 (1.77)
10652
10653         * src/SDCCglue.c (emitRegularMap): only delete a symbol when it is a symbol
10654
10655 2001-09-06    <johan AT FRIJA>
10656
10657         * src/SDCC.y: this could be a fix for bug #458744 (1.37)
10658         * bernhard noted me at this: "() equals to (void)" (1.38)
10659
10660 2001-09-05    <johan AT FRIJA>
10661
10662         * src/SDCCglue.c (emitRegularMap): a fix for bug #458099/2
10663
10664 2001-09-04    <johan AT FRIJA>
10665
10666         * src/SDCCsymt.c (checkSClass): a fix for bug #458099/1
10667
10668
10669 2001-09-04  Paul Stoffregen  <paul AT pjrc.com>
10670
10671         * pragma noinduction broke memcpy on mcs51 large model.  Moved it inside z80 optimization
10672
10673 2001-09-03  Michael Hope  <michaelh AT juju.net.nz>
10674
10675         * link/z80/aslink.h: Fixed path for PATH_MAX
10676
10677 2001-09-02  Michael Hope  <michaelh AT juju.net.nz>
10678
10679         * src/z80/gen.c (fetchLitPair): Changed so that it properly caches direct space references.
10680
10681         * support/regression/tests/addsub.c: Added cases to cover all the +, - combinations.
10682
10683         * support/regression/tests/uminus.c: Added a test for the unary minus operator.
10684
10685         * 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.
10686
10687 2001-09-01  Michael Hope  <michaelh AT juju.net.nz>
10688
10689         * src/z80/gen.c: Fixed up generator to pass the regresion tests, specifically fixing loads for longs, genCmp, and turned on the map file.
10690         (genCmp): Fixed up genCmp for the GB with longs.
10691
10692         * device/lib/gbz80/Makefile: Fixed up all the libraries to pass the regression tests.
10693
10694         * support/regression/ports/host/spec.mk: Updated to compile with the new type specifiers.
10695
10696         * device/lib/Makefile.in (Z80SOURCES): Removed old _mululong, _mulslong, and unneeded _mulint.
10697
10698         * device/lib/_mullong.c (_mulslong): Changed to actually return a value :)
10699
10700 2001-08-30  Paul Stoffregen  <paul AT pjrc.com>
10701
10702         * added peepholes 223 to 231 to mcs51 port.  These improve code when using large model.
10703
10704 2001-08-30  Michael Hope  <michaelh AT juju.net.nz>
10705
10706         * 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.
10707
10708         * src/z80/gen.c (genPlus): Changed bad long add for gb to a fall through.
10709
10710 2001-08-29  Michael Hope  <michaelh AT juju.net.nz>
10711
10712         * link/z80/aslink.h: Fixed long file name support.  Is now based off PATH_MAX instead of a constant.
10713
10714         * src/z80/gen.c: Fixed add and sub for the case where left or right are in static space.
10715
10716 2001-08-30 Bernhard Held   <bernhard AT bernhardheld.de>
10717
10718   * sim/ucsim/configure:    little improvement of Cygwin-detection
10719   * sim/ucsim/configure.in: little improvement of Cygwin-detection
10720   * sim/ucsim/cmd.src/newcmdcl.h: include <sys/types.h> to define fd_set automated build
10721   * support/regression/tests/bug-221100.c: small changes for mcs51
10722   * support/regression/tests/bug-221168.c: small changes for mcs51
10723   * support/regression/tests/bug-227710.c: small changes for mcs51
10724   * support/regression/tests/staticinit.c: small changes for mcs51
10725   * as/mcs51/aslink.h: accept everything as symbol name in rel-files, bug fix ID 452601
10726   * as/mcs51/lklex.c:  accept everything as symbol name in rel-files, bug fix ID 452601
10727   * as/mcs51/lksym.c:  accept everything as symbol name in rel-files, bug fix ID 452601
10728
10729 $Revision$