* src/SDCC.y: allow using brackets here: "__interrupt (1) __using (1)"
[fw/sdcc] / ChangeLog
1 2006-04-07 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
2
3         * src/SDCC.y: allow using brackets here: "__interrupt (1) __using (1)"
4
5 2006-04-07 Maarten Brock <sourceforge.brock AT dse.nl>
6
7         * .version: bumped version to 2.5.6
8         * src/pic/ralloc.c (newReg): MSVC doesn't support __builtin_return_address
9
10 2006-04-06 Raphael Neider <rneider AT web.de>
11
12         * .version: bumped version to 2.5.6 (pic14 ABI changed)
13         * src/SDCCmain.c: add -DSDCC_PROCESSOR=<id> for pic14 port
14         * src/pic/glue.c (emitSymbolToFile,pic14_constructAbsMap,
15           pic14emitRegularMap,pic14emitMaps): moved output for absolute symbols to
16             pic14_constructAbsMap
17           (pic14printPublics): declare absolute global symbols as global
18           (pic14createInterruptVect),
19         * src/pic/ralloc.c (IS_CONFIG_ADDRESS): support second config word,
20           (newReg): assume new registers unused, use correct name in
21             hashtable (reg->name instead of name), more debugLog output
22         * src/pic/device.h (PIC_device): added fields for verbose output
23         * src/pic/device.c: moved device definition to pic14devices.txt,
24             added routines for runtime parsing of pic14devices.txt,
25             added support for second config word
26         * src/pic/main.c (_process_pragma): removed #pragma maxram,
27           (_pic14_keywords): no longer accept "bit" and "sbit" keywords
28           (_pic14_initPaths): add search paths with "pic" suffix (not "pic14")
29           (_pic14_parseOptions): moved pCodeInitRegisters here
30           (_pic14_do_link): add "pic$(ARCH).lib" to linker arguments
31         * src/pic/pcode.c (AnalyzeBanking): bail out on unset processor,
32           (pCodeInitRegisters): rewrapped comments, perpared new approach to
33             handling the pseudo stack
34         * device/lib/Makefile.in: ignore failures in objects-pic16,
35         * device/lib/pic/{configure,configure.in,Makefile}: added libdev/
36         * device/lib/pic/NEWS: document new dependency on picXXX.lib
37         * device/lib/pic/Makefile.subdir,
38         * device/lib/pic16/Makefile.subdir: improved clean rules
39         * device/lib/pic/libdev/: NEW, pic14 device libraries
40         * device/lib/pic/libsdcc/_gptr{get,put}{1,2,3,4}.S: use _X not X
41         * device/lib/pic/libsdcc/macros.inc: use _X not X, declare default SFRs
42         * device/include/Makefile.in: create subdir and install pic14 headers
43         * device/include/pic/p16f_common.inc: removed unused declarations
44         * device/include/pic/pic16*.h: added header files for 100+ 14 bit
45             PICs from inc2h.pl v1.6,
46             replaced BIT_AT macros with struct declarations
47         * device/include/pic/pic14devices.txt: definition of supported devices,
48             all above improvements contributed by Zik Saleeba, thanks
49         * support/scripts/inc2h.pl: removed BIT_AT, replaced with structs
50         * support/scripts/sdcc.nsi: also install pic14 device libraries and
51             headers
52
53 2006-04-06 Maarten Brock <sourceforge.brock AT dse.nl>
54
55         * device/include/mcs51/c8051f410.h: added interrupt numbers,
56         * device/include/mcs51/c8051f200.h: old SiLabs mcu completes the list,
57           thanks to Charles Olds
58
59 2006-04-06 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
60
61         * debugger/mcs51/cmd.c (infoRegisters): show return address on stack
62
63 2006-04-06 Maarten Brock <sourceforge.brock AT dse.nl>
64
65         * src/SDCCpeeph.c (labelIsReturnOnly): fixed bug 1464657
66         * src/mcs51/gen.c (genJumpTab): fixed bug in medium model
67         * support/regression/bug1464657.c: added, new test
68
69 2006-04-05 Maarten Brock <sourceforge.brock AT dse.nl>
70
71         * src/SDCCmain.c (preProcess): implemented RFE 1449908, define SDCC as the
72           version number
73
74 2006-04-05 Maarten Brock <sourceforge.brock AT dse.nl>
75
76         * src/SDCCpeeph.c (initPeepHole): implemented RFE 1460196, when both
77           --no-peep and --peep-file <file> are used don't use default rules but
78           do use the <file>
79
80 2006-04-05 Maarten Brock <sourceforge.brock AT dse.nl>
81
82         * src/mcs51/gen.c (genCall): fixed bug 1457608
83
84 2006-03-30 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
85
86         * doc/sdccman.lyx: reverted to version 1.129 of december as my latest
87         changes seem to cause (trigger?) problems with the build system.
88
89 2006-03-29 Maarten Brock <sourceforge.brock AT dse.nl>
90
91         * src/SDCCpeeph.c (operandsLiteral): new, added,
92           (callFuncByName): inserted operandsLiteral
93         * src/mcs51/peeph.def: reenabled 132.e, added extra check to 132.x
94
95 2006-03-28 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
96
97         * doc/sdccman.lyx: added paragraph "Use of SDCC in Education"
98         * src/mcs51/peeph.def: disabled rule 132.e fixing bug #1453093
99
100 2006-03-24 Maarten Brock <sourceforge.brock AT dse.nl>
101
102         * src/z80/gen.c (genFunction, genEndFunction): fixed bug 1160666,
103           implemented patch 1120823 Thanks to Willy De la Court (normal
104           interrupts need an interrupt number now if they are made critical),
105           and enabled nesting of critical functions though not for gbz80
106           (genCritical, genEndCritical): added functions
107           (genZ80Code): added cases for CRITICAL and ENDCRITICAL
108         * src/z80/mappings.i: added "ei" to all mappings
109
110 2006-03-20 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
111
112         * sim/ucsim/cmd.src/newcmdcl.h: applied patch fixing GCC 4.1 build
113         submitted by the Debian SDCC maintainer Aurelien Jarno:
114         "Credits goes to Martin Michlmayr, who rebuilt the whole Debian
115         archive with gcc 4.1 on mips and wrote the patch"
116
117 2006-03-16 Raphael Neider <rneider AT web.de>
118
119         * src/pic16/genarith.c (genAddLit): simplified and fixed case where
120           the left operand is shorter than the result (c* = lit-c* + int),
121           fixes bug #1450796
122         * src/pic16/gen.c (genRightShift): check IS_SYMOP before accessing
123           OP_SYMBOL
124
125 2006-03-14 Vangelis Rokas <vrokas AT users.sourceforge.net>
126
127         * src/.version: increased version number to 2.5.5
128         * src/SDCCmain.c (linkEdit): do not test for PIC16 target since, PIC16
129         linking is done manually in pic16 port's _linkEdit,
130         * src/SDCCsymt.c (compStructSize): for target PIC16 and shell variable
131         PIC16_PACKED_BITFIELDS, compact bitfield structures as much as possible,
132         * src/pic16/gen.c (aopForSym): when direct register name is WREG then
133         allocate asmop as AOP_ACC,
134         (aopForRemat): added parameter 'bool result' in function declaration,
135         (pic16_aopGet): return AOP_ACC when accessing WREG,
136         (pic16_popGetTempReg): minor modification,
137         (pic16_popRegFromIdx): first try with 'pic16_regWithIdx' then with
138         'pic16_allocWithIdx',
139         (genPcall): removed ftype, usage of OP_SYM_TYPE asserted error when
140         calling function in absolute addresses,
141         (genAssign): take into account AOP_ACC asmop,
142         * src/pic16/pcode.c (pic16_newpCodeOpReg): minor modifications,
143         * src/pic16/pcoderegs.c: some debug functions and lines added,
144         * src/pic16/ralloc.c (decodeRegType): added but commented out,
145         * (pic16_typeRegWithIdx): search 'pic16_dynInternalRegs' for given
146         register too,
147         * (pic16_findFreeReg, pic16_findFreeRegNext): allocate new register via
148         call to allocReg, not by manually allocating a new one,
149         (pic16_assignRegisters): now before going through the register
150         allocating functions mark all registers as free. This eliminates some
151         side effects resulting from peephole parser done earlier in the backbone
152
153 2006-03-13 Maarten Brock <sourceforge.brock AT dse.nl>
154
155         * src/SDCCicode.c (geniCodeLogic),
156         * src/SDCCast.c (decorateType): applied patch by Bernhard for rfe 1422617
157
158 2006-03-10 Maarten Brock <sourceforge.brock AT dse.nl>
159
160         * src/mcs51/gen.c (sameReg): new, checks if two aop regs are the same,
161           (genSend): bugfix, do not allocate and free twice,
162           (shiftRLong): handle partially overlapping aops
163         * support/regression/tests/bitopcse.c: fixed warning redefined idata
164
165 2006-03-08 Borut Razem <borut.razem AT siol.net>
166
167         * support/regression/fwk/include/testfwk.h: added defines for xdata, idata
168           for pic16
169
170 2006-03-08 Maarten Brock <sourceforge.brock AT dse.nl>
171
172         * support/regression/tests/bug1409955.c: new, added
173         * src/mcs51/gen.h: changed asmop.freed:1 to asmop.allocated for tracking
174         * src/mcs51/gen.c (newAsmop): set asmop.allocated to 1,
175           (aopForSym, aopOp): increment asmop.allocated if reused,
176           (freeAsmop): decrement asmop.allocated and check for zero instead of
177           using asmop.freed,
178           (freeForBranchAsmop): use asmop.allocated instead of asmop.freed,
179           (genNot, genCpl, genUminus, genMinus, genMult, genDiv, genMod, genCmpGt,
180            genCmpLt, genAndOp, genOrOp, genAnd, genOr, genXor, genRRC, genRLC,
181            genGetHbit, genGetAbit, genGetByte, genGetWord, genSwap,
182            genLeftShiftLiteral, genLeftShift, genRightShiftLiteral,
183            genSignedRightShift, genRightShift, genDataPointerGet,
184            genPagedPointerGet, genFarPointerGet, genCodePointerGet,
185            genGenPointerGet, genDataPointerSet, genAssign, genCast): free asmop's
186             in reverse order from allocation,
187           (genPlus, genCmpEq): free asmop's in reverse order from allocation and
188             added swappedLR to keep track
189         * support/regression/fwk/include/testfwk.h: added defines for xdata, idata,
190           pdata & code for GCC, z80, gbz80 & hc08
191         * support/regression/tests/zeropad.c: moved defines to testfwk.h
192
193 2006-03-08 Raphael Neider <rneider AT web.de>
194
195         * src/pic16/main.c (_hasNativeMulFor): fixed bug #1444425
196
197 2006-03-07 Maarten Brock <sourceforge.brock AT dse.nl>
198
199         * device/include/mcs51/c8051f410.h: new SiLabs mcu
200         * src/ds390/peeph.def: disabled 186.d and 227.a as fix for #1434401
201         * support/regression/tests/array.c: added parenthesis, made arrays unsigned
202
203 2006-03-06 Borut Razem <borut.razem AT siol.net>
204
205         * support/regression/ports/pic16/spec.mk: link with libm18f.lib,
206           made the linker quiet
207
208 2006-03-06 Vangelis Rokas <vrokas AT users.sourceforge.net>
209
210         * src/pic16/gen.c (genPcall): fixed bug #1443644
211         * src/pic16/device.h (struct pic16_options_t): added 'int CATregs' flag
212         which dumps before the function entry point a data byte which represents
213         the number of the local variables used by the specified function, added
214         'xinst' for initial support for Extended Instruction Support,
215         * src/pic16/gen.c (aopForSym, pic16_aopGet): beautifications,
216         (pic16_testStackOverflow): do not prefix GSTACK_TEST_NAME with
217         port->fun_prefix anymore (may change later),
218         (genFunction, genEndFunction): do not store/restore local registers for
219         _main (this should take care the --main-return command line option in
220         the future),
221         (genOr): removed some legacy pic-port instructions,
222         * src/pic16/genarith.c (genAddLit): re-enabled old code because
223         performing operations with SFR's causes data to be written more than
224         once to each SFR. Perhaps SFRs should be handled in special cases...
225         * src/pic16/glue.c: macros BIG_ENDIAN and BYTE_IN_LONG are moved to
226         pcode.h
227         * src/pic16/main.c (_process_pragma): stack bound checking did not take
228         into account for stack starting position,
229         (struct OPTIONS pic16_optionsTable): added command line argument
230         --extended or -y for Extended Instruction Support,
231         * src/pic16/ralloc.c (pic16_decodeOp): added case for FUNCTION,
232         (deassignLRs): *** perhaps the most important change, old 'for' code
233         (commented out for reference), didn't account for some registers which
234         were left marked 'not free' after a pointer operation. The change
235         reduces register usage a lot in some cases
236
237 2006-03-04 Borut Razem <borut.razem AT siol.net>
238
239         * support/regression/ports/hc08/spec.mk: remove *.asm in traget
240           _clean
241         * support/regression/tests/bug-524697.c: decreased array size for
242           mcs51 to fit into the internal RAM
243         * support/regression/Makefile.in: a little bit more verbose
244
245 2006-03-03 Borut Razem <borut.razem AT siol.net>
246
247         * support/regression/fwk/lib/testfwk.c,
248           support/regression/fwk/include/testfwk.h: introduced function
249           _prints(), nonrecursive _printn(), call _initEmu() from main()
250         * support/regression/ports/gbz80/support.asm,
251           support/regression/ports/ucz80/support.asm,
252           support/regression/ports/z80/support.asm,
253           support/regression/ports/ds390/support.c,
254           support/regression/ports/hc08/support.c,
255           support/regression/ports/host/support.c,
256           support/regression/ports/mcs51/support.c,
257           support/regression/ports/xa51/support.c: added empty _initEmu()
258           function
259         * support/regression/ports/pic16/gpsim.cmd,
260           support/regression/ports/pic16/spec.mk,
261           support/regression/ports/pic16/support.c,
262           support/regression/Makefile.in: added pic16 regression test
263
264 2006-03-01 Raphael Neider <rneider AT web.de>
265
266         * src/pic16/gen.c (genPcall,pic16_derefPtr,genGenPointerGet,
267           genConstPointerGet): use safe way of generating MOVFF to cover
268             literals as well as registers, fixes bug #1440527
269         * src/pic16/glue.c (pic16_printIvalBitFields): prevent NULL pointer
270             dereference
271           (pic16_printIvalUnion,pic16_isUnion): NEW, handle initialized unions
272             more correctly, fixes bug #1232186
273           (pic16_printIval): use pic16_printIvalUnion() for initialized unions
274         * src/pic16/main.c (_pic16_linkEdit): reorder linker arguments to make
275             gplink guess the correct processor in more cases, applied patch
276             from Till Riedel attached to and fixing bug #1436552
277
278 2006-02-20 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
279
280         * support/regression/tests/array.c: added, contains check for #1434401
281         * src/mcs51/peeph.def: disabled 186.d as temporary fix for #1434401
282
283 2006-02-16 Maarten Brock <sourceforge.brock AT dse.nl>
284
285         * device/include/mcs51/at89s8253.h: new, thanks to Krzysztof Polomka
286         * device/include/mcs51/at89S8252.h: fixed, thanks to Krzysztof Polomka
287         * device/include/mcs51/c8051f326.h,
288         * device/include/mcs51/c8051f340.h: new SiLabs mcu's
289         * device/include/mcs51/c8051f000.h,
290         * device/include/mcs51/c8051f018.h,
291         * device/include/mcs51/c8051f020.h: used () with __at, renamed IDLE,STOP to
292           PCON_IDLE,PCON_STOP and added sfr16 definitions
293
294 2006-02-14 Maarten Brock <sourceforge.brock AT dse.nl>
295
296         * src/mcs51/gen.c (genPlus, genMinus, genMult, genGetAbit, genGetByte,
297           genGetWord): fixed bug 1409955
298
299 2006-02-14 Maarten Brock <sourceforge.brock AT dse.nl>
300
301         * device/include/hc08/mc68hc908gp32.h,
302         * device/include/hc08/mc68hc908jb8.h: removed AWUL, added PTA6 & PTA7
303
304 2006-02-13 Maarten Brock <sourceforge.brock AT dse.nl>
305
306         * src/SDCCast.c (constExprValue): return NULL if not a value
307         * src/SDCCglue.c (printIvalArray): fixed bug 1225568
308         * src/hc08/gen.c(genUnpackBits, genUnpackBitsImmed): fixed bug 1019480
309         * support/regression/tests/bitfields.c: enabled signed bitfield for all
310
311 2006-02-13 Borut Razem <borut.razem AT siol.net>
312
313         * src/regression/ptrarg.c: added, fails due to bug #1430967
314         * src/regression/Makefile: ptrarg.c added, ...
315
316 2006-02-12 Maarten Brock <sourceforge.brock AT dse.nl>
317
318         * src/z80/gen.c (genUnpackBits): fixed bug 1019480
319         * support/regression/tests/bitfields.c: enabled signed bitfield for z80
320
321 2006-02-11 Borut Razem <borut.razem AT siol.net>
322
323         * src/SDCCmain.c: Added "sdcc: Calling linker..." if --verbose,
324           print "Processor: xxx" message to stdout only if --verbose
325
326 2006-02-11 Maarten Brock <sourceforge.brock AT dse.nl>
327
328         * src/SDCCglue.c (printIvalStruct): fixed bug 1426356 union initializer
329         * support/regression/tests/bug1426356.c: added
330         * support/regression/tests/bitfields.c: removed 2 tests
331
332 2006-02-10 Maarten Brock <sourceforge.brock AT dse.nl>
333
334         * device/include/mcs51/at89c51snd1c.h: updated comments, see patch 1428901
335         * device/include/mcs51/c8051f330.h,
336         * device/include/mcs51/c8051f350.h: used () with __at, renamed IDLE,STOP to
337           PCON_IDLE,PCON_STOP and added sfr16 definitions
338         * device/lib/_divsint.c,
339         * device/lib/_divuint.c,
340         * device/lib/_divulong.c,
341         * device/lib/_divulong.c: renamed a,b to x,y to avoid confusion, fixed
342           register bank bug for small stackauto
343
344 2006-02-09 Maarten Brock <sourceforge.brock AT dse.nl>
345
346         * support/regression/fwk/lib/timeout.c: include <stdlib.h> for exit()
347
348 2006-02-08 Maarten Brock <sourceforge.brock AT dse.nl>
349
350         * support/regression/ports/mcs51-xstack-auto/spec.mk: forgot -I(...)/mcs51
351         * all.dsp: corrected several bin paths
352         * device/include/mcs51/c8051f120.h,
353         * device/include/mcs51/c8051f300.h,
354         * device/include/mcs51/c8051f310.h: used () with __at and renamed IDLE,STOP
355           to PCON_IDLE,PCON_STOP
356         * device/include/mcs51/c8051f320.h: see above, also added sfr16 definitions
357         * device/lib/printf_large.c (output_float): fixed bug 1388703
358         * support/regression/tests/bug1057979.c: added test for bug 1388703
359
360 2006-02-08 Raphael Neider <rneider AT web.de>
361
362         * src/pic/pcode.c (pciTRIS): fixed typo,
363           (BuildFlow,LinkFlow_pCode): added (disabled) debug output,
364           (LinkFlow): fixed handling of flows that end in a call,
365           (ReuseReg): perform safety check earlier
366         * src/pic/pcoderegs.c (pCodeRegMapLiveRangesInFlow): fixed
367             to work with flows at the beginning of a pBlock,
368             fixes #1426557 (Symbol not previously defined),
369           (pic14_ReMapLiveRanges): NEW, destroy and rebuild register
370             usage information
371           (RemoveUnusedRegisters): update register usage info
372         * src/pic/ralloc.c (newReg): prevent duplicate registers from being
373             created, reuse existing ones instead
374         * src/pic/gen.c (genPcall): fixed #1424719
375
376 2006-02-07 Bernhard Held <bernhard AT bernhardheld.de>
377
378         * link/z80/lkmain.c,
379         * link/z80/lklex.c,
380         * link/z80/lkdata.c,
381         * link/z80/aslink.h: fixed build on current cygwin:
382         replaced getline() by lk_getline()
383
384 2006-02-01 Borut Razem <borut.razem AT siol.net>
385
386         * src/regression/add.c, src/regression/add2.c, src/regression/add3.c,
387           src/regression/add4.c, src/regression/and1.c, src/regression/and2.c,
388           src/regression/arrays.c, src/regression/b.c, src/regression/bank1.c,
389           src/regression/bool1.c, src/regression/bool2.c,
390           src/regression/bool3.c, src/regression/call1.c,
391           src/regression/compare.c, src/regression/compare10.c,
392           src/regression/compare2.c, src/regression/compare3.c,
393           src/regression/compare4.c, src/regression/compare5.c,
394           src/regression/compare6.c, src/regression/compare7.c,
395           src/regression/compare8.c, src/regression/compare9.c,
396           src/regression/configword.c, src/regression/for.c,
397           src/regression/inline.c, src/regression/mult1.c,
398           src/regression/nestfor.c, src/regression/or1.c,
399           src/regression/pointer1.c, src/regression/ptrfunc.c,
400           src/regression/rotate1.c, src/regression/rotate2.c,
401           src/regression/rotate3.c, src/regression/rotate4.c,
402           src/regression/rotate5.c, src/regression/rotate6.c,
403           src/regression/rotate7.c, src/regression/string1.c,
404           src/regression/struct1.c, src/regression/sub.c,
405           src/regression/sub2.c, src/regression/switch1.c,
406           src/regression/while.c, src/regression/xor.c,
407           src/regression/create_stc, src/regression/simulate,
408           src/regression/rt.sh, src/regression/Makefile: reenabled Scott's PIC14
409           regression tests
410         * src/regression/gpsim_assert.h: added
411
412 2006-01-28 Bernhard Held <bernhard AT bernhardheld.de>
413
414         * src/ds390/gen.c (unsaveRegisters): fixed literal function pointer
415         ((void (code *) (void)) 0) ();
416         * as/hc08/aslex.c,
417         * as/hc08/aslink.h,
418         * as/hc08/asm.h,
419         * as/hc08/asmain.c,
420         * as/hc08/lkdata.c,
421         * as/hc08/lklex.c,
422         * as/hc08/lkmain.c,
423         * as/mcs51/aslex.c,
424         * as/mcs51/aslink.h,
425         * as/mcs51/asm.h,
426         * as/mcs51/asmain.c,
427         * as/mcs51/lkdata.c,
428         * as/mcs51/lklex.c,
429         * as/mcs51/lkmain.c,
430         * as/z80/aslex.c,
431         * as/z80/asm.h,
432         * as/z80/asmain.c: fixed build on current cygwin:
433         replaced getline() by as_getline()
434
435 2006-01-27 Bernhard Held <bernhard AT bernhardheld.de>
436
437         * src/SDCC.y: fixed bug #716242, exchanged pointer and function
438         declarator in the symbol chain
439         * src/SDCCsymt.h,
440         * src/SDCCsymt.c (processFuncPtrArgs): added, removes "(void)"
441         parameter list for function pointers
442         * src/SDCCast.c (decorateType): added call of processFuncPtrArgs()
443         * support/regression/tests/bug-716242.c: added
444
445 2006-01-20 Bernhard Held <bernhard AT bernhardheld.de>
446
447         * src/SDCCicode.c (geniCodeAdd, geniCodeArray): use char for array
448         offset if possible
449         * src/SDCCast.c (getLeftResultType): 255 fits in char, not 256
450
451 2006-01-18 Bernhard Held <bernhard AT bernhardheld.de>
452
453         * src/SDCCast.c (backPatchLabels): fixed bug #1408066: made it
454         inifinitely recurseable, added static
455         * support/regression/tests/bug-1408066.c: added
456
457 2006-01-17 Bernhard Held <bernhard AT bernhardheld.de>
458
459         * src/SDCCicode.h,
460         * src/SDCCicode.c (newiTempPreheaderLabel, newiTempLoopHeaderLabel):
461         renamed, added possibility to create "postLoopLbl"-labels
462         * src/SDCCBBlock.c (iCodeBreakDown): renamed newiTempPreheaderLabel to
463         newiTempLoopHeaderLabel
464         * src/SDCCloop.c (newInduction, newRegion, backEdges, insertIntoLoop,
465         isNotInBlocks, addToExitsMarkDepth, createLoop, dominatedBy,
466         addDefInExprs, assignmentsToSym, isOperandInvariant, pointerAssigned,
467         hasNonPtrUse, loopInvariants, addressTaken, findInduction,
468         findDefInRegion, mergeRegions, ifMerged, mergeInnerLoops): made static,
469         (pinduction, pregion, hasIncomingDefs, findLoopEndSeq): disabled,
470         (basicInduction): fixed bug #136564, made static,
471         (loopInduction): changed parameter of basicInduction, made static,
472         (addPostLoopBlock): added
473         * src/SDCCloop.h: removed backEdges, pregion, pinduction,
474         loopOptimizations, addressTaken, findDefInRegion, hasIncomingDefs,
475         findLoopEndSeq
476         * support/regression/tests/bug-136564.c: added
477         * support/regression/ports/mcs51-xstack-auto/spec.mk: added
478         --std-sdcc99 to LIBSDCCFLAGS
479
480 2006-01-16 Bernhard Held <bernhard AT bernhardheld.de>
481
482         * src/SDCCicode.c (geniCodeIfx): fix bug 1406131: always false
483         while loop
484         * support/regression/tests/bug-1406131.c: added
485
486 2005-12-31 Bernhard Held <bernhard AT bernhardheld.de>
487
488         * src/SDCCast.c (decorateType): fix promotion of unary minus
489         * src/SDCCsymt.c (computeType): beautified
490         * src/SDCCval.c (cheapestVal): beautified, old non-Ansi version removed,
491         (valUnaryPM, valComplement): fix sign and promotion,
492         (valNot): ANSI: result type is int (SDCC: unsigned char)
493         * support/regression/tests/uminus.c: speedup by removing superflous
494         test case 'int'
495         * support/regression/tests/onebyte.c: added promotion and signedness
496         tests for unary minus
497         * support/regressions/tests/bug-477927.c: disable warning about
498         uninitialized variables
499         * support/regression/tests/not.c: added
500
501 2005-12-28 Bernhard Held <bernhard AT bernhardheld.de>
502
503         * device/lib/Makefile.in: added --std-sdcc99 to CFLAGS
504         * src/mcs51/gen.c (gen51Code): show final register usage after
505         fillGaps in asm with --i-code-in-asm
506         * src/SDCClrange.c (sequenceiCode, setLiveFrom, setLiveTo,
507         markLiveRanges, markAlive, findNextUseSym, findNextUse, unvisitBlocks,
508         incUsed, rliveClear, adjustIChain): made static,
509         (setFromRange): excluded because it's unused,
510         (findPrevUseSym, markWholeLoop): added,
511         (findPrevUse): rewritten; fixes bug 895992; now a complete search
512         through all branches of predecessors enables sdcc to emit the warning
513         W_LOCAL_NOINIT, marking of outermost loop was incomplete,
514         (rlivePoint): made static, added parameter emitWarnings which is only
515         true during the first run out of two,
516         (findRecursiveSucc, findRecursivePred): removed,
517         (computeLiveRanges): made static, added parameter emitWarnings,
518         (dumpIcRlive): added for debugging only
519         * src/SDCClrange.h: added boolean parameter to computeLiveRanges(),
520         removed prototype of setFromRange()
521         * src/SDCCopt.c (eBBlockFromiCode): added new parameter emitWarnings
522         in call of computeLiveRanges()
523         * support/regression/tests/bug-895992.c: added
524         * support/regression/tests/bug-971834.c: added
525         * support/valdiag/tests/bug-895992.c: added
526         * support/valdiag/tests/bug-971834.c: added
527
528 2005-12-18 Raphael Neider <rneider AT web.de>
529
530         * src/pic16/gen.c: added IS_DIRECT macro for "direct" operands,
531           (genUnpackBits): improved code for direct operands,
532           (genPackBits): improved code for literal assignment to bitfields
533             and for direct destination operands (no FSR indirection),
534             prevented redundant AND, fixes #1362800,
535           (AccLsh): added parameter to disable masking of the result
536         * src/pic16/pcode.c (pic16_safepCodeUnlink): fixed to work with
537           skip instructions with side-effects (like incfsz),
538           (pic16_pCodeIsAlive): suppress verbose output unless pcode_verbose,
539         * src/pic16/pcoderegs.c (RemoveRegsFromSet): removed annoying warning
540         * device/lib/pic16/Makefile.common.in: added --asm=@GPASM@ to CC,
541           fixes #1375263
542
543 2005-12-11 Bernhard Held <bernhard AT bernhardheld.de>
544
545         * src/SDCCicode.c (geniCodeAssign): fixed bug 11369874, don't use
546         volatile variables as spill location
547
548 2005-12-10 Bernhard Held <bernhard AT bernhardheld.de>
549
550         * src/SDCCcse.c (findCheaperOp): fixed bug 1376320, copy signedness to
551         replacing literals
552         * support/regression/tests/bug-1376320.c: added
553
554 2005-12-08 Raphael Neider <rneider AT web.de>
555
556         * src/pic/device.c: renamed is_shared to pic14_is_shared
557         * src/pic/gen.c (genIfx): re-enabled handling of sbits
558         * src/pic/glue.c (emitSymbolToFile): added workaround for sbits,
559           (is_valid_identifier): added for above workaround
560
561 2005-12-07 Maarten Brock <sourceforge.brock AT dse.nl>
562
563         * device/lib/Makefile.in: fixed to enable port-specific-objects
564         * device/lib/ds390/i2c390.c (BitOutI2C): optimized by making bout unsigned
565           char, thanks Hubert Sack
566         * doc/sdccman.lyx: documented --xstack-loc,
567           elaborated a bit more on interrupts and pitfalls,
568           removed "setjmp/longjmp unsupported",
569           documented some unsupported C99 features
570         * src/SDCCmain.c (linkEdit): adapted default lib path for --stack-auto
571         * src/SDCCpeeph.c (readRules): inserted patch 1367130 for finding missing
572           if, thanks Hubert Sack
573         * src/mcs51/gen.c (genEndFunction): enabled "pop psw" for regbank 0 isr
574         * support/regression/Makefile.in: test-mcs51-stack-auto no longer needs to
575           make make_library
576         * support/regression/get_ticks.py: new, get cpu cycles and code size, so
577           regression tests can report resource usage (rfe 700441)
578         * support/regression/collate-results.py: report resource usage
579         * support/regression/ports/ds390/spec.mk,
580         * support/regression/ports/hc08/spec.mk,
581         * support/regression/ports/mcs51/spec.mk,
582         * support/regression/ports/ucz80/spec.mk: run sim output through get_ticks
583         * support/regression/ports/ds390/uCsim.cmd,
584         * support/regression/ports/hc08/uCsim.cmd,
585         * support/regression/ports/mcs51/uCsim.cmd,
586         * support/regression/ports/ucz80/uCsim.cmd: inserted "state" to report time
587         * support/regression/ports/mcs51-stack-auto/spec.mk: no need to build the
588           library, use the default one
589         * support/regression/ports/mcs51-xstack-auto/spec.mk: inserted rules for
590           building the library
591
592 2005-12-06 Maarten Brock <sourceforge.brock AT dse.nl>
593
594         * config.dsp: added dependency on .version and configure_vc.awk
595         * device/include/setjmp.h: updated for --stack-auto and --xstack
596         * device/include/mcs51/at89c51snd1c.h: corrected line endings
597         * device/include/mcs51/XC866.h: added, thanks Llewellyn van Zyl
598         * device/lib/_setjmp.c: updated for --stack-auto and --xstack
599         * device/lib/libsdcc.lib: added _setjmp
600         * src/SDCCast.c (createIvalCharPtr): fixed warnings,
601           (decorateType): fixed bug 1372851,
602           (optimizeGetHbit): fixed warning
603         * src/SDCCglue.c (printIvalChar, printIvalArray): adapted for flexible
604           array initialisation
605         * support/regression/tests/bug1057979.c: added test for bug 1358192
606         * support/regression/tests/setjmp.c: added, test for setjmp/longjmp
607
608 2005-12-03 Borut Razem <borut.razem AT siol.net>
609
610         * support/scripts/sdcc.nsi: added /SOLID option to "SetCompressor lzma"
611           command since the NSIS was upgraded to version 2.11 on CF x86-linux2
612
613 2005-11-29 Bernhard Held <bernhard AT bernhardheld.de>
614
615         * src/SDCCast.c (createIvalStruct, createIvalArray, createIvalPtr,
616         createIval): implement symbol independant "flexible array member",
617         (createIvalCharPtr): implemented flexible array initialisation with a
618         string
619         * src/SDCCsymt.c (copyStruct): removed,
620         (getSize): fixed misleading comment,
621         (getAllocSize): removed, the additional allocation size is now in
622         sym->flexArrayLength,
623         (checkStructFlexArray): new, syntax checks for flexible array members,
624         (compStructSize): added syntax checks for "flexible array members"
625         (copyStruct): removed,
626         (copyLinkChain): removed inefficient fix for bug 770487
627         * src/SDCCglue.c (emitRegularMap): getAllocSize has been removed
628         * src/SDCCsymt.h: added structdef.b_flexArrayMember and
629         symbol->flexArrayLength
630         * src/SDCCerr.c,
631         * src/SDCCerr.h: added W_INVALID_FLEXARRAY, W_C89_NO_FLEXARRAY,
632         E_FLEXARRAY_NOTATEND and E_FLEXARRAY_INEMPTYSTRCT
633         * support/regression/tests/structflexarray.c: added
634         * support/valdiag/tests/structflexiblearray.c: added
635
636 2005-11-29 Bernhard Held <bernhard AT bernhardheld.de>
637
638         * src/SDCCast.c (decorateType): fixed bug 1368489
639         * support/Util/SDCCerr.c,
640         * support/Util/SDCCerr.h: added warning W_CMP_SU_CHAR
641
642 2005-11-28 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
643
644         * device/include/mcs51/at89c51snd1c.h: added file submitted by
645           Weston T. Schmidt <schmidtw AT users.sourceforge.net>, patch #1368001
646
647 2005-11-27 Borut Razem <borut.razem AT siol.net>
648
649         * support/cpp2/cppinit.c, support/cpp2/cpplib.h, support/cpp2/mkdeps.c,
650           support/cpp2/mkdeps.h: added command line option
651           -obj-ext=<extension> to SDCPP to define object file externion, used
652           for generation of make dependencies (-M)
653         * src/SDCCmain.c: pass -obj-ext=<extension> to SDCPP
654
655 2005-11-26 Borut Razem <borut.razem AT siol.net>
656
657         * support/scripts/sdcc.nsi: added small-stack-auto libraries,
658           added missing device/lib/mcs51/crt*.asm, pic and pic16 sources,
659           added pic and pic16 libraries
660
661 2005-11-26 Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
662
663         * device/include/float.h: Corrected typo in prototype of __fsgt
664
665 2005-11-25 Borut Razem <borut.razem AT siol.net>
666
667         * sdcc/device/lib/Makefile.in, sdcc/device/lib/incl.mk:
668           added creation of model-mcs51-stack-auto libraries
669
670 2005-11-24 Bernhard Held <bernhard AT bernhardheld.de>
671
672         * src/SDCCsymt.c (copyLinkChain): fixed bug 770487, copy structdef
673         and fields-list too
674         * src/SDCCast.c (createIvalArray): removed obsolete comment
675
676 2005-11-24 Borut Razem <borut.razem AT siol.net>
677
678         * sdcc/device/lib/Makefile.in: remove all unnecessary files, 2nd try...,
679           added missing device/lib/mcs51/crt*.asm sources
680
681 2005-11-23 Bernhard Held <bernhard AT bernhardheld.de>
682
683         * src/SDCCast.c (createIvalCharPtr): fixed bug 1348271
684
685 2005-11-22 Maarten Brock <sourceforge.brock AT dse.nl>
686
687         * device/lib/_fs2schar.c,
688         * device/lib/_fs2sint.c,
689         * device/lib/_fs2slong.c: optimized inline asm
690
691 2005-11-21 Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
692
693         * device/lib/_fs2slong.c, device/lib/_fs2sint.c, device/lib/_fs2char.c:
694           Better handling of floats between -1.0 and 0.0.
695
696 2005-11-20 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
697
698         * src/mcs51/peeph.def: added missing "if"s as noted by Hubert Sack.
699           (the missing "if"s prohibited removal of redundant labels)
700
701 2005-11-19 Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
702
703         * device/lib/_fs2slong.c, device/lib/_fs2sint.c, device/lib/_fs2char.c:
704           Properly convert floats between -1.0 and 0.0 to long, int, and char
705           types (max integer value of negative floats tends to zero).
706         * device/lib/modff.c, device/lib/ceilf.c, device/lib/floorf.c:
707           Removed changes made so to work properly with floats between
708           -1.0 and 0.0, as the problem is fixed in _fs2slong.c, _fs2sint.c,
709           and _fs2char.c
710
711 2005-11-18 Bernhard Held <bernhard AT bernhardheld.de>
712
713         * src/SDCCcse.c (ReplaceOpWithCheaperOp): minor fix for debugging only
714         * src/mcs51/gen.c (genUnpackBits): better code and a fix,
715         (genCast) cosmetic change
716         * src/ds390/gen.c (genUnpackBits, ): ported from mcs51
717         * src/ds390/ralloc.c (packRegsForAssign): ported fix for bitfields
718         from mcs51
719         * support/regression/tests/bitfields (testSignedBitfields): added
720
721 2005-11-18 Borut Razem <borut.razem AT siol.net>
722
723         * sdcc/device/lib/Makefile.in: remove all unnecessary files
724         * device/lib/pic/Makefile.rules, device/lib/pic16/Makefile.subdir:
725           introduced SILENT option to make building of pic16 libraries less
726
727 2005-11-18 Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
728
729         * device/lib/modff.c, device/lib/ceilf.c, device/lib/floorf.c:
730           Now they work properly with floats between -1.0 and 0.0
731         * device/lib/printf_large.c: Removed temporary patch for bug 1358192
732
733 2005-11-18 Maarten Brock <sourceforge.brock AT dse.nl>
734
735         * src/SDCCicode.c (printOperand): added missing else
736
737 2005-11-18 Bernhard Held <bernhard AT bernhardheld.de>
738
739         * src/SDCCsymt.c (computeType): fixed bug 1358192: added missing else,
740         reformatted for better readability
741         * src/mcs51/gen.c (genUnpackBits): initial, incomplete support for
742         signed bitfields
743
744 2005-11-17 Borut Razem <borut.razem AT siol.net>
745
746         * device/lib/pic16/Makefile.rules, device/lib/pic16/Makefile.subdir:
747           introduced SILENT option to make building of pic16 libraries less
748           verbose - used for nightly snapshot build
749         * doc/sdccman.lyx: documented that SDCDB and ucSim are currently not
750           available on Win32 platforms.
751         * sdcc/device/lib/Makefile.in: added library sources for mcs51, small,
752           medium, large, pic and pic16
753
754 2005-11-16 Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
755
756         * device/lib/printf_large.c: Temporary patch for bug 1358192:
757           printf("%f"...) sets fraction to zero.
758
759 2005-11-16 Raphael Neider <rneider AT web.de>
760
761         * src/pic/pcode.c (LinkFlow): handle empty flows correctly,
762           fixes #1357221
763         * src/pic/gen.c (genIfx): implemented for CARRY bit
764         * src/pic16/gen.c (genAssign,genCast): fixed assigning/casting
765           to generic pointers, fixes #1357332,
766           (pic16_movLit2f): NEW,
767           (pic16_storeForReturn,genDataPointerSet): use pic16_movLit2f
768
769 2005-11-14 Maarten Brock <sourceforge.brock AT dse.nl>
770
771         * src/SDCCmain.c (parseCmdLine): fixed bug 1356800, thanks rsudjian
772
773 2005-11-11 Raphael Neider <rneider AT web.de>
774
775         * src/pic/gen.c: handle FPOINTERS like POINTERS everywhere
776         * src/pic16/gen.c (pic16_derefPtr): now works for non-pointers as well,
777           compute pointer's type from operand,
778           (genUnpackBits,genPackBits): handle FPOINTERS correctly, re-indented,
779           improved single bit reads, fixes bug #1353379
780
781 2005-11-09 Borut Razem <borut.razem AT siol.net>
782
783         * support/scripts/sdcc.nsi: added lib/pic to the package
784
785 2005-11-08 Maarten Brock <sourceforge.brock AT dse.nl>
786
787         * src/SDCCval.c (valUnaryPM): fixed bug 1350699
788
789 2005-11-06 Maarten Brock <sourceforge.brock AT dse.nl>
790
791         * support/regression/tests/bug1348008.c: added
792         * src/mcs51/gen.c (saveRBank, unsaveRBank): fixed bug 1348008
793         * support/regression/tests/bug1337835.c: updated comment
794
795 2005-11-06 Borut Razem <borut.razem AT siol.net>
796
797         * sim/ucsim/error.cc, sim/ucsim/errorcl.h,
798           sim/ucsim/sim.src/stack.cc, sim/ucsim/sim.src/stackcl.h,
799           sim/ucsim/sim.src/uc.cc, sim/ucsim/sim.src/uccl.h,
800           sim/ucsim/sim.src/mem.cc, sim/ucsim/sim.src/memcl.h,
801           sim/ucsim/cmd.src/set.cc, sim/ucsim/cmd.src/show.cc:
802           dynamic construction of cl_error_class and derivates - 2.nd try
803
804 2005-11-05 Borut Razem <borut.razem AT siol.net>
805
806         * sim/ucsim/sim.src/error.cc: fixed uninitialized class member variable
807           bug, which caused Bus Errors on sparc solaris
808
809 2005-11-04 Borut Razem <borut.razem AT siol.net>
810
811         * sim/ucsim/error.cc, sim/ucsim/errorcl.h,
812           sim/ucsim/sim.src/stack.cc, sim/ucsim/sim.src/stackcl.h,
813           sim/ucsim/sim.src/uc.cc, sim/ucsim/sim.src/uccl.h,
814           sim/ucsim/sim.src/mem.cc, sim/ucsim/sim.src/memcl.h,
815           sim/ucsim/cmd.src/cmdconf.cc: dynamic construction of cl_error_class
816           and derivates to resolve the initialization problem on OSX
817
818 2005-11-02 Borut Razem <borut.razem AT siol.net>
819
820         * sim/ucsim/cmd.src/cmdutil.cc, sim/ucsim/cmd.src/newcmd.cc:
821           corrected typo - #include <winsock2.h>
822
823 2005-11-02 Maarten Brock <sourceforge.brock AT dse.nl>
824
825         * src/asm.c (printILine): always close tmpFile, thanks Beau E. Cox,
826           (_asxxxx_mapping): added org directive for future enhancements
827
828 2005-11-01 Borut Razem <borut.razem AT siol.net>
829
830         * sim/ucsim/app.cc, sim/ucsim/cmd.src/cmdutil.cc, sim/ucsim/cmd.src/newcmd.cc:
831           enabled sockets on WIN32
832         * sim/ucsim/cmd.src/newcmd.cc: fixed bug with uninitialized variables
833
834 2005-10-31 Borut Razem <borut.razem AT siol.net>
835
836         * support/regression/generate-cases.py: escape backslashes in {testcase}:
837           WIN32 backslash path delimiters should be escaped when used in C strings
838         * support/regression/tests/bitfields.c: exclude failing assertions for
839           __CYGWIN32__ and __MINGW32__ hosts
840
841 2005-10-30 Borut Razem <borut.razem AT siol.net>
842
843         * src/SDCCutil.c: corrected double comparison typo
844
845 2005-10-30 Maarten Brock <sourceforge.brock AT dse.nl>
846
847         * device/lib/medium/Makefile: added for new memory model medium
848         * device/include/asm/mcs51/features.h: updated for medium/pdata
849         * device/include/mcs51/c8051f120.h: added sfr16/sfr32 definitions,
850           added Multiply & Accumulate sbit's and MAC0_PAGE define
851         * device/include/mcs51/c8051f300.h: added sfr16 definitions
852         * device/include/mcs51/c8051f310.h: added sfr16 definitions
853         * device/lib/_mullong.c: update for medium model
854         * device/lib/incl.mk: added medium model
855         * doc/sdccman.lyx: documented medium model
856         * src/SDCCast.c (isBitAndPow2): simplified using updated powof2
857         * src/SDCCicode.c (geniCodeMultiply, geniCodeDivision): use updated powof2
858         * src/SDCCmain.c (optionsTable, linkEdit): enabled medium model
859         * src/SDCCmem.c (allocIntoSeg): set iaccess for pdata symbols,
860           (allocParms): set SCLS and OCLS to pdata for medium model
861         * src/SDCCsymt.c (processFuncArgs): use default_local_map and set iaccess
862           for pdata,
863           (powof2): return <0 if not power of 2
864         * src/avr/gen.c (genBitWise): use updated powof2
865         * src/mcs51/gen.c (genMinusDec): use acc if necessary,
866           (shiftR2Left2Result): small optimization in setup, save acc when storing,
867           (shiftLLeftOrResult): use B if necessary
868         * src/mcs51/main.c (_mcs51_finaliseOptions, mcs51_port): added medium model
869         * src/mcs51/peeph.def: renamed 226 to 226.b, added 226.a
870         * src/pic/main.c (_pic14_do_link): made void parameter list explicit
871         * support/regression/Makefile.in: added test-mcs51-medium
872         * support/regression/ports/mcs51-medium/spec.mk: added to test medium model
873
874 2005-10-28 Bernhard Held <bernhard AT bernhardheld.de>
875
876         * src/SDCCsymt.c (compStructSize): make bitfields without (un)signed
877         specifier unsigned
878         * device/lib/time.c (mktime): fixed bug 1334315
879
880 2005-10-28 Raphael Neider <rneider AT web.de>
881
882         * device/include/pic/p16f_common.inc: added common declarations
883         * src/pic/ralloc.c (initStack): moved regs *r to block start for Alpha
884
885 2005-10-27 Maarten Brock <sourceforge.brock AT dse.nl>
886
887         * src/mcs51/gen.c (getTempRegs): return 0 if not enough registers found,
888           (aopPutUsesAcc): added to predict accumulator use,
889           (assignResultValue): save acc if necessary,
890           (genMinusDec): store result if indirectly addressed,
891           (genDivOneByte):  save acc if necessary,
892           (movLeft2Result): bugfix if left already in acc,
893           (genAnd, genOr, genXor, shiftL2Left2Result, shiftR2Left2Result): pay more
894             attention to accumulator use (esp. pdata),
895           (genReceive): receive pdata correctly
896         * src/SDCCicode.c (isOperandInPagedSpace): added to detect pdata operands
897         * src/SDCCicode.h: added isOperandInPagedSpace prototype
898
899 2005-10-27 Raphael Neider <rneider AT web.de>
900
901         * doc/sdccman.lyx: corrected version (should be 2.5.4 not 2.5.5)
902
903 2005-10-27 Raphael Neider <rneider AT web.de>
904
905         * .version: changed version to 2.5.4
906         * doc/sdccman.lyx: changed version to 2.5.4, added some remarks to PIC14
907         * device/lib/pic/libsdcc/{_mulint.c,_mullong.c}: use unsigned literals,
908           (_divschar.c,divuchar.c,_mulchar.c,_modschar.c,_moduchar): NEW,
909             arithmetics support routines
910         * device/lib/pic/Makefile.rules: have assembler sources preprocessed
911         * device/lib/Makefile.in: also create installdir for pic
912
913         * src/SDCCopt.c (cnvToFcall): mark support routines `extern' for
914           pic14 port as well
915         * src/pic/device.c (dump_sfr): rewritten to delegate register
916           placement to the linker (use `extern sym' rather than sym EQU addr),
917           (validAddress): fixed to check last specified address
918         * src/pic/gen.c (aopForSym): added code to deal with array (useless?),
919           (popGetLit): truncate literal value to 8 bit,
920           (popGet): moved assert to more appropriate place
921           (popGetExternal): create pCode operand from and mark the according
922             symbol as being `extern'
923           (popGetAddr): added sanity check on immediate's offset, provide
924             GPOINTER tag on demand
925           (aopPut): fixed for immediates,
926           (mov2w_op): move operand's address or contents to WREG (depending on
927             operand type), safer variant of mov2w,
928           (movwf,call_libraryfunc): NEW, handy abbreviations,
929           (get_argument_pcop,get_return_val_pcop,pass_argument,
930           get_returnvalue): interface for accessing function parameters and
931             return values,
932           (assignResultValuei,genRet): use new parameter/return value interface
933           (pic14_getDataSize): back to old version handling generic pointers,
934           (pic14_toBoolean,genNot,genCpl,genCmpEq,genOrOp): heavily rewritten,
935             provided implementation and/or fixed old one,
936           (genMultOneByte,genDivOneByte,genModOneByte): implemented as library
937             calls, removed legacy 8051 reference code
938           (AccLsh,AccRsh): rewritten and fixed to deal with signed operands
939           (loadSignToC): NEW, move the operands sign bit to CARRY,
940           (genGenericShift): NEW, replaces genLeftShift, genRightShift and
941             genRightShiftSigned, accepts negative shift counts,
942           (setup_fsr): load FSR and adjust IRP (indirect memory access),
943           (emitPtrByteGet,emitPtrByteSet): rewritten, now works with
944             generic pointers, __data pointers and __code pointers,
945           (genUnpackBits,genPackBits): rewritten to work with generic pointers
946             and signed bitfields, limit bitfields to 8 bit,
947           (genDataPointerGet): fixed number of bytes read,
948           (genGenPointerGet,genConstPointerGet): fixed bitfield access,
949           (genPointerGet,genPointerSet): fixed handling of __code pointers,
950             pointers to constant data are no longer assumed to point to __code
951             space, removed invalid pointer types,
952           (bitpatternFromVal): retrieve the PICs representation of an integer
953             or float literal,
954           (genDataPointerSet): fixed assigning to po_immediate operands,
955           (genGenPointerSet): implemented as library call,
956           (genIfx): fixed incorrect condition,
957           (genAddrOf): limit generic pointers' addresses to 2 bytes,
958             provide GPOINTER tag according to destination's storage class,
959           (genCast): added code to handle casting to generic pointers, added
960             sign-/zero extension of the result
961           (aop_isLitLike,op_isLitLike): fixed handling of immediates
962         * src/pic/gen.h: added macros to access IRP bit in STATUS register
963         * src/pic/genarith.c (genAddLit): use min(result's,left's) size, sign
964           extend the result
965         * src/pic/glue.c (is_shared_address,is_shared): check whether a given
966           address/register resides in the shared banks
967           (emitSymbolToFile): improved to handle global and `pinned' symbols,
968             put all variables into separate sections (have the linker arrange
969             them)
970           (picglue): put init code and interrupt handlers in separate sections
971         * src/pic/main.c: added port specific options table, modified to PORT
972           structure to make GPOINTERs 3 byte, added pic14_options
973           (_pic14_do_link): private linking routine (update paths to libraries,
974             add libsdcc.lib by default)
975         * src/pic/main.h: declare pic14_options
976         * src/pic/pcode.c: fixed instructions i/o relations,
977           (RegCond): reverted to correct version,
978           (newpCodeOpLit): truncate literals to 8 bit,
979           (genericPrint): added debug output,
980           (getRegFromInstruction): fixed for various operand types, simplified
981           (BuildFlow): fixed broken handling of isntructions with labels
982           (LinkFlow): start at last instruction in flow (skip trailing comments),
983             pass the flow on to the next instruction after CALL
984           (pCodeReplace): NEW, replace a pCode and move meta data to the new one
985           (insertPCodeInstruction): fixed inserting after a skip instruction,
986           (DoBankSelect): fixed for labeled instructions
987           (OptimizepBlock): honor --nopeep switch
988           (AnalyzeFlow,ReuseReg): prevent crash on source files with no function
989         * src/pic/pcodepeep.c (pCodePeepMatchRule): prevent NULL pointer accesses
990         * src/pic/pcoderegs.c (regIsLocal): NEW, check visibility of a register
991           (pCodeOptime2pCodes): allow disabling this optimization via
992             --no-pcode-opt due seldomly occuring bugs, fixed some conditions
993             but is still buggy), started implementation of a dataflow based
994             pCode optimization (CSE + dead code elimination)
995           (pCodeRegMapLiveRangesInFlow): removed bogus inCond
996         * src/pic/ralloc.c (initStack): renamed stack registers to STK%d, the new
997           names are independant of the stack location and therefore portable across
998           devices
999
1000 2005-10-27 Maarten Brock <sourceforge.brock AT dse.nl>
1001
1002         * src/mcs51/ralloc.c (bitType): added to detect bit variables,
1003           (selectSpil): fixed bug 1337835 by not spilling bit variables
1004         * support/regression/tests/bug1337835.c: added test for this bug
1005         * src/mcs51/peeph.def: restart after rule 3.c,
1006           addded rules 263.x to optimize loading constants
1007
1008 2005-10-26 Raphael Neider <rneider AT web.de>
1009
1010         * src/SDCCsymt.c (compStructSize): allow signed bitfields for PIC ports
1011         * src/pic16/gen.c (genUnpackBits): support signed bitfields,
1012           (genAssign): emit warning when casting literals to generic pointer
1013             type, also applies when taking the address of a fixed variable,
1014           (genCast): improved casting to generic pointers
1015         * src/pic16/glue.c (pic16emitStaticSeg): fixed(?) handling of fixed
1016           extern variables, added verbose error message
1017         * device/include/pic16/{string.h,errno.h}: added #pragma library c
1018
1019 2005-10-26 Bernhard Held <bernhard AT bernhardheld.de>
1020
1021         * src/mcs51/gen.c (genMinus): fixed bug 1270906: reverse subtraction,
1022         carry must be complemented too
1023         * src/mcs51/peeph.def: addded rule 262 to remove double cpl c, which
1024         could be emitted by genMinus
1025         * src/SDCCval.c (constVal): fixed bug 1305065
1026
1027 2005-10-25 Bernhard Held <bernhard AT bernhardheld.de>
1028
1029         * src/SDCCast.c (addCast): added promotion for bit variables
1030         (decorateType): emit W_COMPLEMENT before the problem vanishes behind
1031         promotion casts + optimisation
1032         (optimizeGetWord): fix warning 'i' might be used uninitialized
1033         * src/mcs51/gen.c (genCpl): removed W_COMPLEMENT
1034         * src/ds390/gen.c (genCpl): removed W_COMPLEMENT
1035
1036 2005-10-24 Bernhard Held <bernhard AT bernhardheld.de>
1037
1038         * src/SDCCicode.c (ast2iCode): reverted to 1.224 because of regression:
1039         all chars are promoted to int; promotion should be handled in SDCCast.c
1040
1041 2005-10-15 Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
1042
1043         * device/lib/_strcmp.c: Fixed bug 1326457
1044
1045 2005-10-11 Raphael Neider <rneider AT web.de>
1046
1047         * device/lib/pic16/libio/i2c.ignore: added 1320, fixes broken builds
1048         * device/lib/pic16/libdev/pic18f1320.c: added 1320's device library
1049
1050 2005-10-05 Maarten Brock <sourceforge.brock AT dse.nl>
1051
1052         * src/SDCC.y (AT): fixed bug with sfr32 addresses when built with GCC
1053         * support/regression/tests/sfr16.c: added test for the sfr32 bug
1054
1055 2005-10-04 Raphael Neider <rneider AT web.de>
1056
1057         * device/include/pic16/pic18fregs.h, src/pic16/devices.inc,
1058           device/lib/pic16/pics.all: added pic18f1320
1059         * src/pic16/pcode.c (mnem2key): fixed prototype's argument mismatch
1060
1061 2005-09-30 Raphael Neider <rneider AT web.de>
1062
1063         * src/pic16/device.c (Pics16[]): moved device descriptions to devices.inc
1064         * src/pic16/devices.inc: NEW, provides device descriptions
1065         * src/pic16/gen.c (genInline): fixed handling of ';'-comments
1066
1067 2005-09-26 Maarten Brock <sourceforge.brock AT dse.nl>
1068
1069         * src/SDCCicode.c (operandOperation): added GETABIT, GETBYTE, GETWORD and
1070           GETHBIT
1071
1072 2005-09-25 Maarten Brock <sourceforge.brock AT dse.nl>
1073
1074         * doc/sdccman.lyx: updated Highest Order Bit documentation,
1075           documented Any Order Bit, Higher Order Byte and Higher Order Word
1076         * src/SDCC.y: added tokens GETABIT, GETBYTE, GETWORD
1077         * src/SDCCast.c (optimizeGetHbit): updated to also accept bool=expr&(1<<n),
1078           (optimizeGetAbit): new, to get any bit, not only the high bit,
1079           (optimizeGetByte): new, to get a byte from a (long) int: expr>>(8*n),
1080           (optimizeGetWord): new, to get a word from a long int: expr>>(8*n),
1081           (isConformingBody): also check GETABIT, GETBYTE, GETWORD,
1082           (decorateType): '&': also try GETABIT, GETBYTE, GETWORD optimization,
1083             RIGHT_OP: also try GETBYTE, GETWORD optimization,
1084             GETABIT, GETBYTE, GETWORD: decorate them,
1085           (isShiftRightLitVal, isBitAndPowOf2): new helper functions,
1086           (ast_print): added GETABIT, GETBYTE, GETWORD
1087         * src/SDCCcse.c (isSignedOp): added GETABIT, GETBYTE, GETWORD
1088         * src/SDCCicode.c (codeTable): added GETABIT, GETBYTE, GETWORD,
1089           (geniCodeBinary): new generic binary icode,
1090           (ast2iCode): added GETABIT, GETBYTE, GETWORD
1091         * src/port.h: updated comment for PORT.hasExtBitOp
1092         * src/mcs51/gen.c (genGetAbit): new, to get any single bit,
1093           (genGetByte): new, to get a single byte,
1094           (genGetWord): new, to get a word from a long,
1095           (gen51Code): added GETABIT, GETBYTE, GETWORD
1096         * src/mcs51/main.c (hasExtBitOp): added GETABIT, GETBYTE, GETWORD
1097
1098 2005-09-23 Raphael Neider <rneider AT web.de>
1099
1100         * configure.in, configure: have device/lib/pic configured
1101         * device/lib/Makefile.in: added model-pic14
1102         * device/lib/clean.mk: added pic/ to clean rule
1103         * device/lib/pic: added rudimentary pic14 library providing support
1104           functions for multiplication/division/generic pointer access
1105         * src/SDCCopt.c (convilong): mark support functions as extern
1106           for pic14 port as well
1107         * src/pic/gen.c (genMult): added assertions,
1108           (genpic14Code): emit warning on unhandled iCodes
1109         * src/pic/main.c (_hasNativeMulFor): return true only for 8x8 bit
1110         * src/pic/pcode.c (pCodeOpCopy),
1111         * src/pic16/pcodepeep.c (pic16_pCodeOpCopy): fixed handling of various
1112           pCodeOpReg-subtypes (PO_{STATUS,INTCON,PCL,PCLATH,PCLATU,BSR,
1113           SFR_REGISTER}), made safe for future extensions
1114         * src/pic16/pcode.c (pic16_safepCodeUnlink): allow for removal of
1115           instructions even if preceeded by SKIP instructions (also remove
1116           them); removed unused code
1117         * src/pic16/pcode.h: added arg2 to pCodeOpLit to match pCodeOpLit2,
1118           prevents leaving parts of the structure uninitialized after copying
1119
1120 2005-09-22 Maarten Brock <sourceforge.brock AT dse.nl>
1121
1122         * src/mcs51/gen.c (genMinus): fix for undetected bug introduced 3 months
1123           ago by me
1124         * support/regression/tests/addsub.c: added test for the bug
1125
1126 2005-09-21 Raphael Neider <rneider AT web.de>
1127
1128         * device/include/pic16/pic18f1220.h,
1129           device/lib/pic16/libdev/pic18f1220.c: added ECCPAS sfr and bitfield
1130         * device/lib/pic16/Makefile.rules: added missing opening paren
1131         * src/pic16/gen.c (pic16_genNot,pic16_genCpl): removed as these
1132           are provided in genutils.c,
1133           (genUminusFloat,genUminus,genCmpEq): added asserts on different
1134           operand/result sizes,
1135           (genCmp): assert on NULL pointers first, then check deref'ed values
1136         * src/pic16/genutils.c (pic16_genCpl): fixed for different operand/
1137           result size
1138
1139 2005-09-18 Raphael Neider <rneider AT web.de>
1140
1141         * src/pic16/gen.c (genFarPointerGet,genFarPointerSet): removed
1142           as these are now unused,
1143           (genPointerGet,genPointerSet): handle FPOINTERs like POINTERs
1144         * src/pic16/pcode.c (pic16_symIsSpecial): assume REG_TMPs to be
1145           local, avoids uninitialized pointer dereference on r->name
1146         * src/pic16/ralloc.c (newReg): fixed indentation
1147
1148 2005-09-13 Maarten Brock <sourceforge.brock AT dse.nl>
1149
1150         * src/SDCCval.c (constVal): fixed bug 730366
1151         * support/Util/SDCCerr.c,
1152         * support/Util/SDCCerr.h: added warning W_INVALID_INT_CONST
1153
1154 2005-09-10 Maarten Brock <sourceforge.brock AT dse.nl>
1155
1156         * as/mcs51/lkmem.c (summary2): fixed report for absolute areas (bug 1210220)
1157
1158 2005-09-09 Maarten Brock <sourceforge.brock AT dse.nl>
1159
1160         * src/mcs51/peeph.def (241.x): fixed bug when comparing generic pointers
1161
1162 2005-09-08 Maarten Brock <sourceforge.brock AT dse.nl>
1163
1164         * as/hc08/lkaomf51.c (OutputName): made name unsigned char,
1165           (hex2dec): made hex_digit unsigned char, removed ascii dependance
1166         * as/mcs51/lkaomf51.c (OutputName): made name unsigned char,
1167           (hex2dec): made hex_digit unsigned char, removed ascii dependance
1168         * as/mcs51/lkarea.c (lnkarea2): sort absolute areas to the front
1169         * packihx/packihx.c (hexDigit): made c unsigned char
1170         * as/mcs51/lklibr.c (fndsym),
1171         * link/z80/lkgb.c (gb),
1172         * link/z80/lklibr.c (fndsym),
1173         * link/z80/lkrloc.c (relr),
1174         * sim/ucsim/libltdl/ltdl.c (load_deplibs, try_dlopen),
1175         * src/SDCC.lex (checkCurrFile, process_pragma),
1176         * src/SDCCglue.c (spacesToUnderscores),
1177         * src/SDCCmain.c (setParseWithComma, processFile),
1178         * src/asm.c (tvsprintf, printCLine),
1179         * src/avr/gen.c (emitcode, aopPut),
1180         * src/ds390/gen.c (emitcode),
1181         * src/hc08/gen.c (emitcode, emitinline),
1182         * src/mcs51/gen.c (emitcode, genInline),
1183         * src/pic/pcodepeep.c (cvt_extract_destination, cvt_extract_status,
1184           tokenizeLineNode),
1185         * src/pic/ralloc.c (debugLog),
1186         * src/pic16/pcodepeep.c (cvt_extract_destination, cvt_extract_status,
1187           tokenizeLineNode),
1188         * src/pic16/ralloc.c (debugLog),
1189         * src/z80/main.c (_process_pragma):
1190            made all ctype.h function calls safe
1191         * src/SDCCopt.c: include math.h for fabs
1192         * src/SDCCpeeph.c: added macros ISCHARDIGIT, ISCHARSPACE and ISCHARALNUM
1193           and used them throughout the code to make ctype.h function calls safe
1194         * src/ds390/main.c (asmLineNodeFromLineNode),
1195         * src/mcs51/main.c (asmLineNodeFromLineNode): made p unsigned char*
1196         * src/pic/gen.c (DEBUGpic14_emitcode, pic14_emitcode): made lbp
1197            unsigned char*
1198         * src/pic/pcode.c (mnem2key): made mnem unsigned char*,
1199           (newpCodeAsmDir): made ctype.h function calls safe
1200         * src/pic16/gen.c (pic16_emitpcomment, DEBUGpic16_emitcode,
1201           pic16_emitcode):  made lbp unsigned char*
1202         * src/pic16/pcode.c (mnem2key): made mnem unsigned char*,
1203           (pic16_newpCodeAsmDir): made ctype.h function calls safe
1204         * src/xa51/gen.c (emitcode),
1205         * src/z80/gen.c (_emit2): made lbp unsigned char*
1206         * support/Util/MySystem.c (split_command): made cmd_line and p unsigned
1207            char*
1208
1209 2005-09-05 Raphael Neider <rneider AT web.de>
1210
1211         * src/pic16/ralloc.c (pic16_allocDirReg): use device specific
1212           access bank splitpoint
1213
1214 2005-09-05 Raphael Neider <rneider AT web.de>
1215
1216         * device/lib/pic16/libc/Makefile: added (missing) string to SUBDIRS
1217
1218 2005-09-03 Maarten Brock <sourceforge.brock AT dse.nl>
1219
1220         * .version: changed to version 2.5.3
1221         * doc/sdccman.lyx: changed version to 2.5.3,
1222           documented --codeseg and --constseg and pragma codeseg and constseg,
1223           documented bit parameters (reentrant) and bit returning
1224         * src/SDCCicode.c (geniCodeReceive): fixed (possible) bug generating
1225            currFunc->recvSize, but is this ok for all ports?
1226           (ast2iCode): result of ~ on unsigned char must be cast to int for
1227            bool to work
1228         * src/SDCCmem.c (allocGlobal, allocLocal): don't put bit returning
1229           function pointers in bit space
1230         * src/SDCCsymt.c (checkSClass): allow bit returning function pointers,
1231           (processFuncArgs): call port.reg_parm() with reentrancy info
1232         * src/port.h,
1233         * src/avr/main.c,
1234         * src/ds390/main.c,
1235         * src/hc08/main.c,
1236         * src/pic/main.c,
1237         * src/pic16/main.c,
1238         * src/xa51/main.c,
1239         * src/z80/main.c: port.reg_parm prototype extended with
1240           "bool reentrant" parameter
1241         * src/mcs51/main.c (_mcs51_regparm): use parameter reentrant instead of
1242           options.stackAuto for allocating bit register parameters
1243         * src/mcs51/gen.c (genNot): optimized complementing direct bit,
1244           (genSend): set BitBankUsed if it is,
1245           (selectRegBank): factored out of genCall for use in genPcall,
1246           (genCall): removed redundant dtype assignmen, use selectRegBank,
1247           (genPcall): handle returning in Carry properly, save in F0 if needed,
1248           (genReceive): handle bit register parameters
1249         * src/mcs51/ralloc.c (updateRegUsage): update BitBankUsed along the way,
1250           (mcs51_assignRegisters): enable bit registers for all reentrant
1251            functions and don't set BitBankUsed unconditionally
1252         * src/mcs51/peeph.def (177.d): fixed bug if %2==%3
1253         * support/regression/tests/bitvars.c: enable tests for SDCC_STACK_AUTO
1254         * support/regression/tests/funptrs.c: added tests for BOOL and for return
1255
1256 2005-08-27 Borut Razem <borut.razem AT siol.net>
1257
1258         * device/lib/Makefile.in: cp on sparc-solaris (SunOS) and on
1259         ppc-osx (Darwin) does not support -u option. It seems that it is
1260         supported only on Linux - GNU cp
1261
1262 2005-08-25 Borut Razem <borut.razem AT siol.net>
1263
1264         * sim/ucsim/gui.src/serio.src/Makefile.in,
1265           sim/ucsim/s51.src/Makefile.in, sim/ucsim/avr.src/Makefile.in,
1266           sim/ucsim/z80.src/Makefile.in, sim/ucsim/hc08.src/Makefile.in,
1267           sim/ucsim/xa.src/Makefile.in: install -s changed to 2 steps:
1268           install and strip, since the strip at /usr/ccs/bin should be used
1269           on solaris
1270
1271 2005-08-24 Borut Razem <borut.razem AT siol.net>
1272
1273         * clean.mk, device/lib/clean.mk: find on sparc-solaris does not support -maxdepth option
1274
1275 2005-08-23 Bernhard Held <bernhard AT bernhardheld.de>
1276
1277         * src/SDCCopt.c (convertToFcall): fixed modulus with divisors 1 and
1278         ffffffffu
1279
1280 2005-08-23 Maarten Brock <sourceforge.brock AT dse.nl>
1281
1282         * as/mcs51/aslink.h: completed lkrloc.c prototypes
1283         * as/mcs51/lkmain.c (link_main): fixed warning
1284         * device/include/stdbool.h: ds390 has no advanced bit support yet
1285         * src/SDCC.y: use SPEC_SHORT and renamed _signed to b_signed
1286         * src/SDCCsymt.c: use SPEC_SHORT and renamed _signed to b_signed
1287         * src/SDCCsymt.h (struct specifier): renamed _xxx bitfields to b_xxx
1288           and updated their macros
1289         * src/SDCCval.c (constVal): updated comment for renamed b_long
1290
1291 2005-08-22 Maarten Brock <sourceforge.brock AT dse.nl>
1292
1293         * as/mcs51/asdata.c: changed ctype['['] to BINOP
1294         * as/mcs51/asexpr.c (expr): added case '[' for bit access in bdata,
1295           (term): abused bit 15 of s_addr to indicate bit-addressable bytes,
1296           (oprio): set priority for '['
1297         * as/mcs51/aslink.h: added define R_BIT, and prototypes for adb_bit
1298            and adb_24_bit
1299         * as/mcs51/asm.h: added defines R_BIT and S_BIT
1300         * as/mcs51/lkarea.c (lnksect2): use T for seg BIT_BANK and overlay it
1301         * as/mcs51/lkdata.c: changed ctype['['] to BINOP
1302         * as/mcs51/lkmain.c (Areas51): rel2 contains 12 (=C) areas now,
1303           added overlayable BIT_BANK area
1304         * as/mcs51/lkmem.c (summary): add BIT_BANK to BSEG_BYTES in the report,
1305           (summary2): explain 'T' in legenda
1306         * as/mcs51/lkrloc.c: replaced old K&R style,
1307           (relr): added R_BIT processing,
1308           (errmsg): added "Bit-addressable relocation error",
1309           (adb_bit): added for converting from byte- to bit-addressable space,
1310           (adb_24_bit): added for converting from byte- to bit-addressable space
1311         * device/include/stdbool.h: changed BOOL to __bit for mcs51 as it can be
1312            used in reentrant functions now even as return value
1313         * device/lib/_gptrput.c (_gptrput): removed obsolete code
1314         * src/SDCCast.c (resultTypePropagate): also propagate AND_OP and OR_OP,
1315           (decorateType): case '!', GETHBIT, AND_OP, OR_OP: result in bool or char
1316         * src/SDCCglobl.h: added indicator BitBankUsed
1317         * src/SDCCglue.c (glue): emit area BIT_BANK with byte 'bits' and equ's for
1318            the bit registers b0-b7
1319         * src/SDCCicode.c (operandFromSymbol): removed IS_BITVAR check,
1320           (geniCodeCast): fixed bug 1263853,
1321           (geniCodeLogicAndOr): put result in bool or char,
1322           (geniCodeReceive): added parameter func for accessing the return type,
1323           (geniCodeFunctionBody): pass func to geniCodeReceive
1324         * src/SDCCmain.c: added indicator BitBankUsed
1325         * src/SDCCmem.c (allocLocal): explicitly set sclass for V_BIT
1326         * src/SDCCsymt.c (newBoolLink): added for creating a bool/bit,
1327           (checkSClass): don't put automatic bool/bit on stack,
1328           (checkFunction): removed check on function cannot return bit
1329         * src/SDCCsymt.h: added newBoolLink prototype
1330         * src/mcs51/gen.c (rb1regs): added bit registers,
1331           (movc): created for assigning to carry,
1332           (pushReg, popReg): created for pushing registers,
1333           (sameRegs): check both AOP_REG and AOP_CRY types,
1334           (aopOp): handle bit registers,
1335           (aopPut): optimization no self-assign,
1336           (saveRegisters): push reg->base (bits) only once for bit registers,
1337            and use pushReg,
1338           (unsaveRegisters): pop reg->base only once and use popReg,
1339           (assignResultValue): added parameter func and return in carry for bits,
1340           (genIpush): optimization no reload in A if not changed,
1341           (genSend): bit parameters in reentrant functions are passed in bit
1342            registers by first assigning to bits in B, then save registers and
1343            copy B to bits,
1344           (genCall): handle returning in Carry properly, save it in F0 if needed,
1345           (genPcall): updated assignResultValue call, this is not safe yet for bit
1346            returning function !!!
1347           (genFunction): don't generate equ's for bit registers and use pushReg,
1348           (genEndFunction): take care of bit returning functions and use popReg,
1349           (genRet): return bit in Carry,
1350           (genIfx): optimize bit registers and other directly addressable bits,
1351           (genReceive): updated assignResultValue call
1352         * src/mcs51/main.c (_mcs51_reset_regparm): added regBitParmFlg,
1353           (_mcs51_regparm): allow passing of upto 8 bit parameters in bit
1354            registers when using stack-auto
1355         * src/mcs51/ralloc.c (_G): added allBitregs,
1356           (regs8051): added the bit registers,
1357           (createStackSpil): use macro IS_BIT,
1358           (getRegBit): added to allocate a bit register, else spill,
1359           (getRegBitNoSpil): added to allocate a bit register, else a gpr,
1360           (updateRegUsage): factored out to ease stepping while debugging,
1361           (serialRegAssign): use updateRegUsage, only spill bits if necessary,
1362            also allocate bit registers,
1363           (fillGaps): handle bit registers,
1364           (findAllBitregs): added to create bit vector with all bit registers,
1365           (mcs51_allBitregs): returns this bit vector,
1366           (mcs51_assignRegisters): when using stack-auto use bit registers for
1367            passing parameters and creating local variables
1368         * src/mcs51/ralloc.h: added B0_IDX..B7_IDX and prototype mcs51_allBitregs
1369
1370 2005-08-22 Borut Razem <borut.razem AT siol.net>
1371
1372         * device/lib/Makefile.in: replaced find option -or with -o
1373           to make it run on solaris
1374
1375 2005-08-22 Raphael Neider <rneider AT web.de>
1376
1377         * src/pic16/gen.c (pic16_loadFromReturn): added check for AOP_PCODE,
1378           fixes #1265442 (crash on Solaris)
1379
1380 2005-08-20 Borut Razem <borut.razem AT siol.net>
1381
1382         * configure, configure.in: added tests for libsocket and libnsl libraries,
1383           requred by sdcdb on sparc-solaris; generate support/regression/Makefile
1384           from support/regression/Makefile.in
1385         * support/regression/Makefile.in: added
1386         * device/lib/pic16/Makefile.common.in: force make to use bash shell
1387         * sim/ucsim/libtool: regenerated on sparc-solaris
1388         * sim/ucsim/avr.src/Makefile.in, sim/ucsim/hc08.src/Makefile.in,
1389           sim/ucsim/s51.src/Makefile.in, sim/ucsim/xa.src/Makefile.in,
1390           sim/ucsim/z80.src/Makefile.in: removed GNU ld specific linker options
1391           -Wl,--start-group and -Wl,--end-group to enable ucsim compilation on
1392           sparc-solaris, which doesn't use GNU ld linker
1393         * device/lib/Makefile.in: cp on sparc-solaris (SunOS) does not support -u option
1394         * as/Makefile: find on sparc-solaris does not support -maxdepth option
1395
1396 2005-08-19 Maarten Brock <sourceforge.brock AT dse.nl>
1397
1398         * src/mcs51/peeph.def: updated comments
1399
1400 2005-08-16 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
1401
1402         * device/lib/_gptrget.c,
1403         * device/lib/_gptrput.c: slightly shorter
1404         * doc/sdccman.lyx: incremented version
1405         * src/mcs51/peeph.def: moved peephole comments to the line of first
1406           change to better keep line correlation, reanimated 186.e
1407         * src/mcs51/peeph.def: renamed similar peepholes by using suffixes
1408
1409 2005-08-16 Slade Rich <slade_rich AT users.sourceforge.net>
1410
1411         * src/pic/pcode.c : Pasted ".line" assembly directives patch from
1412           David Saxton with quotes around file name.
1413
1414 2005-08-15 Borut Razem <borut.razem AT siol.net>
1415
1416         * support/regression/tests/bitfields.c, support/regression/tests/bitvars.c,
1417           support/regression/tests/bitwise.c, support/regression/tests/literalop.c,
1418           support/regression/tests/rotate.c, support/regression/tests/zeropad.c:
1419           make tests run on x86_64 platform
1420
1421 2005-08-13 Raphael Neider <rneider AT web.de>
1422
1423         * device/lib/pic16/Makefile.subdir: weakened clean-intermediate rule
1424           as it might be executed DURING a build (parallel make is wonderful)
1425
1426 2005-08-13 Raphael Neider <rneider AT web.de>
1427
1428         * device/lib/Makefile.in (port-specific-objects-pic16):
1429           revert to cp $(PORT)/bin/*.* $(PORTDIR)
1430         * device/lib/pic16/Makefile: added .PHONY targets, removed builddir
1431           dependency
1432         * device/lib/pic16/Makefile.rules: build subdirs before creating
1433           the library, removed builddir rule, create $(builddir) early in
1434           recurse rule, use empty recurse rule for leaf directories
1435         * device/lib/pic16/Makefile.subdir: added phony targets, ignore
1436           mkdir errors (race condition), removed duplicate suffix "hex"
1437           from clean rules
1438         * device/lib/pic16/libdev/Makefile: recursive make via + and $(MAKE)
1439         * device/lib/pic16/libio/Makefile: create sub-make's builddir early,
1440           prevents mkdir -p from aborting on Alpha
1441
1442 2005-08-12 Raphael Neider <rneider AT web.de>
1443
1444         * src/pic16/glue.c (pic16_print(G)PointerType): do not flush
1445           db-statements in order to allow for arrays of pointers in code
1446           sections to be placed without interspersed 0-padding, fixes
1447           bug #1256215
1448         * (emitStatistics): fixed division by zero for pic18f1220
1449         * src/pic16/pcode.c: buffer (up to) 12 DB directives to allow for
1450           unpadded writing of 8-bit, 16-bit, 24-bit and 32-bit values
1451         * (pic16_emitDS): respect DB_ITEMS_PER_LINE
1452         * (pic16_pCodeConstString): keep track of already emitted string
1453           literals to prevent "duplicate definitions of symbol _str_NR"
1454         * src/pic16/ralloc.c (pic16_allocRegByName): removed not so helpful
1455           debug message
1456         * device/lib/Makefile.in: ignore failing PIC16 library builds
1457         * device/lib/pic16/Makefile: do not build if gputils are missing
1458         * device/lib/pic16/Makefile.common.in: do not enforce MAKEFLAGS=-s
1459
1460 2005-08-10 Raphael Neider <rneider AT web.de>
1461
1462         * device/lib/Makefile.in: fixed copying pic16 libraries (broken by
1463           my last commit)
1464
1465 2005-08-10 Raphael Neider <rneider AT web.de>
1466
1467         * src/*.c, src/pic16/{gen.c,glue.c,main.c}: applied Vangelis
1468           Rokas' patch to add the new fixed point type "__fixed16x16"
1469         * device/lib/pic16/libsdcc/fixed16x16: added Vangelis' support
1470           functions for __fixed16x16 arithmetics
1471         * device/lib/pic16: reimplemented the build system to support
1472           a separate build directory, better handling of libio (create
1473           the library in a separate subdir for each architecture) and
1474           easier configuration (centralized in Makefile.common)
1475
1476 2005-08-07 Raphael Neider <rneider AT web.de>
1477
1478         * src/pic16/gen.c (genrshTwo): fixed sign extension
1479         * src/pic16/device.c: added pic18f2320, 4220 and 4320
1480         * device/include/pic16/pic18f2220.h: changed some bit definitions,
1481           added T0CONbits
1482         * device/include/pic16/pic18f4220.h: NEW, header for
1483           pic18f4220 and pic18f4320
1484         * device/include/pic16/pic18fregs.h: added new devices,
1485           embraced Nop(), ClrWdt(), Sleep() and Reset() with do {} while(0)
1486         * device/include/pic16/signal.h: resolved name clashes
1487           on bit definitions, added DEF_HANDLER2(sig1,sig2,handler)
1488           to also allow testing for interrupt enable bits, added
1489           comments on how to use the macros
1490         * device/lib/pic16/libdev/pic18f2220.c: added T0CONbits
1491         * device/lib/pic16/libdev/pic18f{2320,4220,4320}.c: NEW,
1492           register definitions for the devices
1493         * device/lib/pic16/pics.all: added new devices
1494         * device/lib/pic16/libc/stdlib/calloc.c: fixed zeroing
1495           allocated memory
1496         * device/lib/pic16/libc/stdlib/memfree: do not count
1497           the block header as free memory
1498         * device/lib/pic16/libc/stdlib/memmisc.c (_initHeap):
1499           simplified and added missing end-of-blocklist-marker
1500           (reported by Peter Onion, fixes #1252814)
1501         * (_mergeHeapBlock): fixed loop condition
1502         * device/lib/pic16/libc/stdlib/realloc.c: return NULL for
1503           len==0, restructured code
1504         * device/lib/pic16/libc/stdlib/{malloc,memfreemax}.c: cleaned
1505           up a bit, reduced bitfield accesses, prevent endless loops
1506           in case of heap corruption
1507         * device/lib/pic16/libc/stdlib/x_ftoa.c: disabled
1508           "unreferenced arguments/must return a value" warnings
1509         * device/lib/pic16/libio/usart/ubaud.c (usart_baud):
1510           replaced BAUDREG with SPBRG
1511         * device/lib/pic16/libsdcc/lregs/{lrrest.c,lrst.c},
1512           device/lib/pic16/debug/gstack/gstack.c: replaced
1513           _naked, _asm, _endasm with __naked, __asm, __endasm
1514
1515 2005-08-05 Raphael Neider <rneider AT web.de>
1516
1517         * src/pic16/gen.c (pic16_aopGet): fixed handling of offsets in
1518           AOP_PCODE operands, fixes multibyte union-bitfield-accesses
1519
1520 2005-08-05 Borut Razem <borut.razem AT siol.net>
1521
1522         * device/lib/Makefile.in: added missing ';'
1523         * configure: removed ^M characters
1524
1525 2005-08-04 Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
1526
1527         * device/include/mcs51/at89c51ed2.h, device/include/mcs51/p89v51rd2.h,
1528           device/include/mcs51/at89s53.h: changed to GNU Lesser General Public
1529           License
1530
1531 2005-08-04 Borut Razem <borut.razem AT siol.net>
1532
1533         * configure.in: pic16 libraries build 2nd try - enable running
1534           configure in device/lib/pic16
1535         * configure: regenerated from configure.in
1536         * device/lib/Makefile.in: create $(PORT)/bin directory
1537
1538 2005-08-03 Raphael Neider <rneider AT web.de>
1539
1540         * src/pic16/gen.c (pic16_derefPtr): NEW, single place
1541           to get/set values via pointers
1542         * (genUnpackBits,genPackBits): changed detection of
1543           ptr->bitfield vs. sym.bitfield, fixed access via generic
1544           pointers, removed dead (wrong) code for multibyte bitfields
1545         * (genNearPointerGet, genGenPointerGet): removed useless code,
1546           fixed bitfield detection, fixes #1250594
1547         * (genNearPointerSet): removed useless code
1548         * src/pic16/gen.h: renamed pic16_emitpcode to pic16_emitpcode_real
1549           and introduced macro pic16_emitpcode that conditionally emits
1550           the origin of the following pCode (useful for debugging SDCC)
1551         * src/pic16/pcode.c: changed (and disabled) some debug outputs
1552         * (createDefmap): fixed handling of LFSR for --optimize-df
1553
1554 2005-08-02 Borut Razem <borut.razem AT siol.net>
1555
1556         * device/lib/Makefile.in: pic16 libraries build enabled since
1557           gputils-0.13.2 are now localy installed at sourceforge's compile farm
1558
1559 2005-08-02 Raphael Neider <rneider AT web.de>
1560
1561         * src/pic16/gen.c (genPackBits): removed deprecated warning
1562         * (genGenPointerSet): fixed bitfield detection
1563
1564 2005-08-02 Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
1565
1566         * device/include/mcs51/msm8xc154s.h: Removed PT2 definition, now in 8052.h.
1567
1568 2005-07-31 Raphael Neider <rneider AT web.de>
1569
1570         * device/lib/pic16/libdev/pic18f458.c,
1571           device/include/pic16/pic18f458.h: added missing T0CONbits
1572
1573 2005-07-29 Maarten Brock <sourceforge.brock AT dse.nl>
1574
1575         * device/include/mcs51/msm8xc154s.h: added, thanks to Matthias Arndt
1576
1577 2005-07-28 Maarten Brock <sourceforge.brock AT dse.nl>
1578
1579         * src/mcs51/gen.c (operandsEqu): fixed bug 1246687
1580
1581 2005-07-23 Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
1582
1583         * device/include/mcs51/at89c51ed2.h: added.
1584
1585 2005-07-23 Raphael Neider <rneider AT web.de>
1586
1587         * src/pic/gen.h: added emitpcode macro for debugging
1588         * src/pic/gen.c (emitpcode): renamed to emitpcode_real
1589           and replace by macro adding debug information on demand
1590         * (genNot): fixed to C semantics (!0 = 1; !x = 0 iff x != 0)
1591         * (gencjne): tried to fix; replaced with correct (slower) code
1592         * (gen{Unp,P}ackBits): fixed single bit access
1593         * src/pic/pcode.c (AnalyzepCode): fixed DFPRINTF argument
1594         * src/pic/pcodepeep.c (pCodeSearchCondition): fixed finding
1595           previous instruction
1596         * src/pic/pcoderegs.c (regIsSpecial): NEW, check whether a
1597           register has to be handled with care (forbidding movement
1598           of assignments/uses, removing assignments completely, ...)
1599         * (pCodeOptime2pCodes): make use of regIsSpecial
1600         * added lots of debugging output (commented out)
1601         * src/pic/rallloc.c (deassignLRs): prevent operand registers
1602           from being reused as result UNLESS it is known to work
1603
1604 2005-07-23 Maarten Brock <sourceforge.brock AT dse.nl>
1605
1606         * support/Util/dbuf.h: include <stddef.h> for size_t
1607         * .version: changed to version 2.5.2
1608
1609 2005-07-23 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
1610
1611         * src/SDCCloop.c (loopInvariants): fixed bug #1234048
1612
1613 2005-07-22 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
1614
1615         * src/hc08/gen.c (genMinus): fixed bug #1241835,
1616           (genModOneByte): removed needless psha/pula
1617
1618 2005-07-22 Raphael Neider <rneider AT web.de>
1619
1620         * src/SDCCmain.c (linkEdit): initialized linkerScriptFileName,
1621           have PIC14 handled like PIC16, fixes broken pic14 linker calls
1622         * src/pic/gen.c (resolveIfx): do not "invent" labels
1623         * (genSkipc): changed to positive logic
1624         * (genSkipCond): removed as no longer needed
1625         * (pic14_mov2w_regOrLit,genCmp): NEW, replacement for buggy version,
1626           backport from PIC16
1627         * (genLeftShift): check operands are in different registers
1628         * src/pic/genarith.c (genPlus): replaced INCF with ADDLW as
1629           INCF does not update CARRY...
1630         * src/pic/main.c: fixed _linkCmd
1631         * src/pic/pcode.c (unlinkpCode): added inactive code
1632         * src/pic/ralloc.c (deassignLRs): keep arguments to shift operations
1633           alive (do not assign result and operand overlapping registers)
1634
1635 2005-07-22 Raphael Neider <rneider AT web.de>
1636
1637         * src/pic/device.c (dump_sfr): replaced register declaration with
1638           call to emitSymbolToFile() to avoid duplicate symbols
1639         * (assignRelocatableRegisters): do not declare external symbols
1640         * src/pic/ralloc.c (allocNewDirReg): fixed to get size of arrays
1641           right (take size of type, not etype)
1642         * (allocDirReg): fixed call to allocNewDirReg() to pass OP_SYM_TYPE
1643         * (writeUsedRegs): also dump dynDirectRegs (e.g. local variables)
1644         * (packRegsForAccUse): disabled assignment of WREG as
1645           the result reg to prevent occurence of just fixed #1235003,
1646           fixes #1242954
1647         * src/pic/glue.c (emitSymbolToFile): NEW, central place to declare
1648           symbols (avoids duplicate symbols in .asm file)
1649         * (pic14emitRegularMap): use emitSymbolToFile()
1650         * src/pic/gen.c (aopOp): fixed spillLocation handling
1651         * (gen{Unp,P}ackBits): fixed acquiring bit-operands
1652         * (genDataPointerSet): removed unneccessary variables/output
1653
1654 2005-07-22 Maarten Brock <sourceforge.brock AT dse.nl>
1655
1656         * as/mcs51/lkarea.c: enlarged codemap for banked memory
1657         * device/lib/mcs51/crtbank.asm: added # to 0x0F
1658
1659 2005-07-21 Raphael Neider <rneider AT web.de>
1660
1661         * src/pic/gen.c (aopOp): do not generate AOP_ACC operands as pic14
1662           architecture cannot handle them efficiently, fixes bug #1235003
1663         * src/pic16/device.c (pic16_dump_{u,i}section,pic16_dump_int_registers):
1664           check for empty sets before using them (fixes bug #1232190)
1665
1666 2005-07-19 Maarten Brock <sourceforge.brock AT dse.nl>
1667
1668         * as/mcs51/lkarea.c (lnkarea, lnkarea2): improved BSEG size calculation,
1669           (lnksect2): generate warnings for memory overlap
1670         * src/SDCC.lex (doPragma, process_pragma): added pragma's codeseg and
1671           constseg to set the name of these segments so you can instruct the linker
1672           to place them in banks
1673         * src/SDCCast.c (decorateType): use new macro IS_FUNCPTR()
1674         * src/SDCCglobl.h: added MODEL_HUGE to enum,
1675           added code_seg and const_seg to options
1676         * src/SDCCglue.c (emitMaps): use options.const_seg,
1677           (createInterruptVect): put interrupt vectors in segment HOME,
1678           (glue): put HOME before static segment and put the main glue in HOME,
1679           (glue): use options.code_seg
1680         * src/SDCCicode.c (geniCodeCall): use new macro IS_FUNCPTR()
1681         * src/SDCCmain.c: added option --codeseg and --constseg to set the name of
1682           these segments so you can instruct the linker to place them in banks
1683           (linkEdit): use code_loc for HOME segment which should be the first
1684           segment in code memory now
1685         * src/SDCCmem.c: fixed more stuff like bug 1238386
1686         * src/SDCCsymt.c (getSize): use generic pointer size for banked functions,
1687           (changePointer): don't change function pointers to code pointers for
1688           banked functions,
1689           (compareType): added exceptional check for banked function pointers
1690         * src/SDCCsymt.h: changed IFFUNC_ISBANKEDCALL, added IS_FUNCPTR
1691         * src/hc08/main.c (_hc08_genAssemblerPreamble): put HOME first, put CSEG
1692           after static in code memory
1693         * src/mcs51/gen.c: added aopLiteralLong prototype,
1694           (aopForSym): use getSize for functions,
1695           (genCall): generate banked calls over one trampoline __sdcc_banked_call
1696           in HOME with lsb of address in r0, msb in r1 and bank in r2, use
1697           -Wl-bBANKSEG=0xbbaaaa option to set the address (aaaa) and bank (bb) of
1698           the segment,
1699           (genPcall): use call for literal function pointers and generate banked
1700           calls over the one trampoline so there's only one place for the user to
1701           modify according to his/hers hardware,
1702           (genEndFunction): jump to __sdcc_banked_ret in HOME for banked functions,
1703           (genPlusIncr): moved check icount>4 beyond inc dptr optimization
1704         * src/mcs51/main.c: added keyword banked,
1705           (_mcs51_genExtraAreas): put HOME first followed by GSINIT, STATIC and CSEG
1706         * support/Util/SDCCerr.c,
1707         * support/Util/SDCCerr.h: added E_BANKED_WITH_CALLEESAVES, registers are
1708           needed for passing the bank and address to the trampoline
1709         * device/lib/mcs51/crtbank.asm: added for bankswitching
1710         * device/lib/mcs51/Makefile: added crtbank
1711
1712 2005-07-16 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
1713
1714         * src/SDCCcse.c (algebraicOpts): fixed loss of volatility
1715           for fields at offset 0 of a struct or union as reported
1716           on 2005-07-07 in the developer mailing list.
1717
1718 2005-07-15 Maarten Brock <sourceforge.brock AT dse.nl>
1719
1720         * src/SDCCmem.c: fixed bug 1238386
1721
1722 2005-07-12 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
1723
1724         * src/mcs51/peeph.def: added labelrefcounting for peepholes
1725           (patch #1144962), added peephole 300, enabled 259.x
1726         * doc/sdccman.lyx: removed screenshot and provided link instead
1727
1728 2005-07-05 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
1729
1730         * doc/sdccman.lyx: added section about debugging with ddd
1731         * doc/figures/ddd_example.eps: screenshot of debugging session
1732
1733 2005-07-04 Raphael Neider <rneider AT web.de>
1734
1735         * src/pic/gen.c (genPointerGet): handle pointers to CONST values
1736           like CODE pointers, fixes #1115683
1737         * src/pic/pcode.c (DoBankSelect): forget LastRegIdx during function
1738           call, fixes bugs #1232211, #1228110,
1739           fixed wrong casts to pCodeFlow from pCodeInstructions
1740
1741 2005-07-04 Raphael Neider <rneider AT web.de>
1742
1743         * src/pic/gen.c (popGet): changed assert to allow for
1744           bit operands
1745         * (popGetAddr): changed signature to provide
1746           an additional index, patched all call sites
1747         * (genCmpEq): handle literal-like operands correctly
1748         * (genAddrOf): added sanity checks on __code/__data pointers
1749         * (genAssign): added handling of symbols from __code section
1750         * (gencjne): do not generate code for comparisons whose result
1751           is neither stored nor used, fixes bug #1171114
1752         * (AccLsh, AccRsh): operate on operand instead of WREG
1753         * (shift{Left,Right}_Left2ResultLit): NEW, size independant
1754           replacement for Shift{LR}{12}Left2Result; shift (byte/int/long)
1755           by known count
1756         * rewrote complete shift-by-literal logic, commented unused
1757           functions out
1758         * (genConstPointerGet): get multiple bytes (if result size > 1),
1759           fixed handling of non-immediate addresses
1760         * (genPointerGet): handle CODE pointers like CONST pointers
1761         * (genpic14Code): insert C-SRC lines as Cource-pCodes
1762         * ({aop,op}_isLitLike): NEW, single place to decide whether an
1763           operand is to be treated as a literal or not
1764         * (mov2w,genPcall,genCmpEq),
1765           src/pic/genarith.c: use aop_isLitLike() to decide between
1766           literal/register contents
1767         * (addSign): added missing offset
1768         * src/pic/gen.h: remove newline after FENTRY/FEXIT comments,
1769           only emit comment in debug-mode,
1770           use {aop,op}_isLitLike throughout the file
1771         * src/pic/glue.c: fix initializers for pointers (work in progress)
1772         * src/pic/pcode.c (get_op): honor index on _const symbols
1773         * ({reset,dump}pCodeStatistics): NEW, estimate code size
1774         * (dumppBlock): added pCode size estimation
1775         * src/pic/ralloc.c (deassignLRs,serialRegAssign,packRegisters):
1776           check for IS_SYMOP before OP_SYMBOL'ing
1777         * fixed indentation, compacted switch-statements
1778         * (allocReg): find free register and allocate it instead of
1779           allocating new registers all the time
1780         * (deassignLRs): prevent POINTER_GET's from being assigned the same
1781           registers as its operands (necessary only for multibyte GETs)
1782
1783 2005-07-01 Raphael Neider <rneider AT web.de>
1784
1785         * src/pic/gen.h: added prototypes emitpComment, popGetAddr and
1786           debugging .asm-output macros FENTRY + FEXIT
1787         * src/pic/gen.c (Safe_vsnprintf): NEW, is there a more generic
1788           way... I wonder...
1789         * (emitpComment): NEW, printf to pCode
1790         * (popGet): added assert on too large offsets, fixed PO_IMMEDIATE's
1791           offset handling
1792         * (popGetAddr): NEW, variant of popGet to access an immediates
1793           high(er) bytes instead of the n'th byte of memory they reference,
1794           replaced popGet with popGetAddr where neccessary
1795         * (genDataPointerGet): reactivated and fixed implementation
1796         * (genNearPointerGet): enabled call to genDataPointerGet, fixes array-
1797           accesses
1798         * (genDataPointerSet): fixed multibyte assignments
1799         * (genpic14Code): fixed --i-code-in-asm handling
1800         * src/pic/genarith.c: fixed PO_IMMEDIATE issue using popGetAddr,
1801         * (genPlus): fixed index-out-of-bounds error
1802         * src/pic/pcode.c (get_op): fixed PO_IMMEDIATE's index/offset handling
1803         * src/pic/ralloc.c: added debugging output macro FENTRY2
1804         * (spillThis): fixed indentation, enbraced for-body for clarity
1805         * (rematStr): commented out as now unused
1806         * (regTypeNum): commented out special spill case (overwrites
1807           arbitrary values)
1808         * fixes bugs #1229346, #1216476 (both arrays) and #1115667 (SIGSEGV)
1809
1810 2005-06-30 Maarten Brock <sourceforge.brock AT dse.nl>
1811
1812         * doc/sdccman.lyx: documented sfr16/sfr32,
1813           added example for using storage class with function pointers
1814         * src/mcs51/gen.c (genPlusIncr): optimized small offsets from dptr
1815
1816 2005-06-28 Maarten Brock <sourceforge.brock AT dse.nl>
1817
1818         * device/lib/_gptrget.c: also push/pop _PSBANK, added # to 0x03
1819         * device/lib/_itoa.c,
1820         * device/lib/_ltoa.c: optimized codesize
1821         * src/SDCCsymt.c (checkSClass): added sanity check for sfr at addresses,
1822           but don't know how to suppress the double warning.
1823         * src/mcs51/gen.c (genPlusIncr): fixed bug when incrementing volatile int's
1824         * support/Util/SDCCerr.c,
1825         * support/Util/SDCCerr.h: added warning W_SFR_ABSRANGE for sanity check
1826
1827 2005-06-27 Maarten Brock <sourceforge.brock AT dse.nl>
1828
1829         * as/mcs51/asexpr.c (expr): disabled warning "not in .flat24 mode",
1830           fixed old K&R prototypes
1831         * as/mcs51/asout.c (outrb): always output as if generating 24bit addresses
1832         * device/lib/_gptrget.c,
1833         * device/lib/_gptrgetc.c,
1834         * device/lib/_gptrput.c: changed versions for new memory indicator values,
1835           also new versions for small generic pointers and banked generic pointers
1836         * src/port.h: added const_name
1837         * src/SDCC.lex: added keywords sfr16, __sfr16, sfr32, __sfr32
1838         * src/SDCC.y: added tokens SFR16, SFR32 and their sfr_attributes
1839         * src/SDCCcse.c (findPrevIc): check all associative operators
1840         * src/SDCCglue.c (emitMaps): use CONST_NAME if defined
1841         * src/SDCCicode.h: added macro IS_ASSOCIATIVE
1842         * src/SDCCmem.c: updated comments,
1843           set far-space to 0 for pdata, results in optimized code
1844         * src/SDCCmem.h: added macro CONST_NAME
1845         * src/SDCCsymt.h: renumerated generic pointer types GPTYPE_... thereby
1846           moving the info into the highest bits, see also gptrget/gptrput
1847         * src/src.dsp: added sdcc.ico to project files
1848         * src/avr/gen.c (genCast): fixed bug 0x%d
1849         * src/avr/main.c (avr_port): added "CONST (CODE)" for const_name
1850         * src/ds390/gen.c (aopForRemat, adjustArithmeticResult): disconnected direct
1851           relation between ptr_type and DCL_TYPE,
1852           (genCast): fixed bug 0x%d
1853         * src/ds390/main.c (ds390_port, tininative_port, ds400_port): added "CONST
1854           (CODE)" for const_name
1855         * src/hc08/gen.c (genCast): fixed bug 0x%d
1856         * src/hc08/main.c (_hc08_genAssemblerPreamble): added .area ...const_name,
1857           (hc08_port): added "CONST (CODE)" for const_name
1858         * src/mcs51/gen.c (aopForSym): optimized pushing ACC,
1859           (aopForRemat, adjustArithmeticResult): disconnected direct relation
1860           between ptr_type and DCL_TYPE,
1861           (aopGetUsesAcc, aopGet, aopPut): changed first parameter from asmop* to
1862           operand* and took AOP() inside function so sfr-ness can be checked,
1863           (all over): repaired calls to aopGetUsesAcc, aopGet, aopPut to comply with
1864           new prototype,
1865           (genFunction, genEndFunction): optimized stack setup,
1866           (genMinus): optimized for literals with ending zeroes (in bytes),
1867           (genCast): fixed bug 0x%d
1868         * src/mcs51/main.c (_mcs51_keywords): added sfr16 and sfr32,
1869           (mcs51_port): added "CONST (CODE)" for const_name
1870         * src/mcs51/peeph.def: made rule 226 more generic
1871         * src/pic/main.c (pic_port): added "CONST (CODE)" for const_name
1872         * src/pic16/main.c (pic16_port): added "CONST (CODE)" for const_name
1873         * src/xa51/main.c (xa51_port): added "CONST (CODE)" for const_name
1874         * src/z80/main.c (z80_port): added NULL for const_name,
1875           (gbz80_port): added NULL for const_name
1876         * support/regression/tests/bug663539.c,
1877         * support/regression/tests/sfr16.c: new tests
1878
1879 2005-06-25 Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
1880
1881         * device/include/mcs51/p89v51rd2.h, device/include/mcs51/at89s53.h: added.
1882
1883 2005-06-24 Raphael Neider <rneider AT web.de>
1884
1885         * device/lib/pic16/libdev/pic18f[68][567]20.c:
1886           corrected typos...
1887         * device/include/pic16/signal.h: added USBIF
1888           and SIG_USB
1889
1890 2005-06-24 Raphael Neider <rneider AT web.de>
1891
1892         * device/lib/pic16/libdev/pic18f2455.c,
1893           device/include/pic16/pic18f2455.h: NEW
1894         * device/include/pic16/pic18fregs.h,
1895           device/lib/pic16/pics.all,
1896           src/pic16/device.c: added 18f2455
1897         * device/lib/pic16/libdev/pic18f[68][567]20.c,
1898           device/include/pic16/{pic18f[68][567].h,usart.h}:
1899           replaced MULTIPLE_USARTS define with more relaible
1900           compatibility sfrs (for USART access)
1901
1902 2005-06-20 Slade Rich <slade_rich AT users.sourceforge.net>
1903
1904         * src/pic/pcode.c : Fixed problem when a string constant contains a "\r\n"
1905           and the output asm file line is printed on two lines.
1906
1907 2005-06-19 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
1908
1909         * sim/ucsim/hc08.src/inst.cc (inst_condbranch): fixed simulation of
1910           BGT, BLE, BHI, and BLS instructions
1911         * src/hc08/gen.c (outAcc, outBitC, outBitNV, genCmpLt, genCmpGt,
1912           genCmpEq): removed
1913         * src/hc08/gen.c (genCmpEQorNE, genCmp, branchopCmp, nameCmp,
1914           negatedCmp, exchangedCmp, genhc08Code): rewrite of comparison handling,
1915           fixes bug #1216342
1916         * src/hc08/peeph.def: added rules 2g - 2l for new conditional branches
1917
1918 2005-06-15 Raphael Neider <rneider AT web.de>
1919
1920         * src/pic16/NOTES: moved Vangelis from active developers to people to contact
1921         * device/include/pic16/{6520.h,8520.h}: fixed configuration bits
1922         * src/pic16/gen.c (): prevent iTemps from being considered to be in CODESPACE,
1923           fixes bug #1221120; for symbols in CODESPACE get number of bytes to read from
1924           OP_SYM_TYPE() instead of OP_SYM_ETYPE()
1925
1926 2005-06-06 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
1927
1928         * device/include/mcs51/reg764.h: Changed PB0 to PBO as requested by
1929           Marcel Telka in bug #1215704
1930
1931 2005-06-02 Slade Rich <slade_rich AT users.sourceforge.net>
1932
1933         * src/pic/pcode.c : Changed pseudo stack size to 15 to allow WSAVE to be
1934           located in shared memory bank.
1935
1936 2005-05-31 Raphael Neider <rneider AT web.de>
1937
1938         * src/pic16/{gen.c,genarith.c}: replaced sign-extension
1939           "CLRF, BTFSC <signbit>, DECF/COMF" with side-effect-free
1940           "CLRF, BTFSC <signbit>, SETF"; fixes "long>>9"
1941
1942 2005-05-27 Maarten Brock <sourceforge.brock AT dse.nl>
1943
1944         * device/lib/_strncpy.c: fixed the fix
1945
1946 2005-05-26 Raphael Neider <rneider AT web.de>
1947
1948         * src/pic16/glue.c (pic16_printIvalChar): fixed _constant_ string
1949           initializers with \0, bug #1208187
1950         * src/pic/glue.c (printIvalChar): fixed (non- and constant) string
1951           intializers with \0, bug #1208187
1952
1953 2005-05-26 Raphael Neider <rneider AT web.de>
1954
1955         * src/pic16/glue.c (pic16_printIvalChar): fixed string
1956           initializers with \0, bug #1208187
1957         * src/pic16/main.c (_process_pragma): added sanity checks
1958           for stack position and size, emit warnings when appropriate
1959
1960 2005-05-26 Maarten Brock <sourceforge.brock AT dse.nl>
1961
1962         * device/lib/_strncpy.c: fixed not filling with \0
1963
1964 2005-05-26 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
1965
1966         * src/SDCCast.c (funcOfType, funcOfTypeVarg, stringToSymbol,
1967           createFunction),
1968         * src/SDCC.y (external_definition, enumerator, parameter_declaration,
1969           compound_statement),
1970         * src/SDCCsymt.h,
1971         * src/SDCCsymt.c (addSymChain, processFuncArgs): fixed bug #1159134
1972
1973 2005-05-24 Raphael Neider <rneider AT web.de>
1974
1975         * src/pic16/glue.c (pic16_printGPointerType): fixed #1207796
1976
1977 2005-05-24 Raphael Neider <rneider AT web.de>
1978
1979         * device/include/pic16/pic18f{442,452,458}.h: fixed wrong
1980           TRISE definitions, closes bug #1162453
1981
1982 2005-05-22 Raphael Neider <rneider AT web.de>
1983
1984         * src/pic16/main.c (_process_pragma): check for missing
1985           arguments to pragmas code and udata
1986         * device/include/pic16/pic18f{2550,4331,4455,4520}.h:
1987           consistency fixes to match other headers (thanks to Jim Paris)
1988         * device/lib/pic16/libio/i2c.ignore: 18f4331 provides no I2C
1989
1990 2005-05-21 Maarten Brock <sourceforge.brock AT dse.nl>
1991
1992         * src/SDCCicode.c (isOperandEqual): fixed missing ;
1993
1994 2005-05-19 Maarten Brock <sourceforge.brock AT dse.nl>
1995
1996         * support/regression/tests/bug1198642.c: new test
1997         * src/SDCCicode.c (isOperandEqual): fixed bug 1198642
1998         * src/SDCCcse.c (findPrevIc): added comment, please have a look
1999         * support/scripts/resource.h,
2000         * support/scripts/resource.rc,
2001         * src/src.dsp: added sdcc.ico to project as icon for sdcc.exe
2002         * support/scripts/sdcc.ico: added 32x32 icon
2003
2004 2005-05-18 Raphael Neider <rneider AT web.de>
2005
2006         * device/lib/pic16/libdev/pic18f*.c,
2007         * device/include/pic16/pic18f*.h: updated "sfr" and "at X"
2008           keywords to "__sfr" and "__at (X)"
2009         * device/include/pic16/pic18fregs.h: added pic18f4520
2010         * src/pic16/pcode.c (pic16_pCode2str): fixed (?) bug
2011           #1203088 (MPLAB compatibility)
2012
2013 2005-05-17 Raphael Neider <rneider AT web.de>
2014
2015         * device/include/pic16/pic18f{2550,4331,4455,4520}.h: NEW
2016         * device/lib/pic16/libdev/pic18f{2550,4331,4455,4520}.c: NEW
2017         * device/lib/pic16/pics.all: added new devices
2018         * src/pic16/device.c: added support for pic18f4520
2019
2020 2005-05-16 Raphael Neider <rneider AT web.de>
2021         * src/pic16/gen.{c,h}: s/mov2f/pic16_mov2f made public
2022         * src/pic16/genarith.c (genAddLit): fixed bug 1202480
2023         * src/pic16/pcode.{c,h} (pic16_newpCodeOpBit_simple): NEW
2024           convenience function for bit access
2025
2026 2005-05-15 Maarten Brock <sourceforge.brock AT dse.nl>
2027
2028         * device/lib/printf_large.c: fixed bug 1193299
2029         * support/regression/tests/bug1057979.c: added test %3.3s
2030
2031 2005-05-15 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
2032
2033         * device/include/mcs51/8051.h,
2034         * device/include/mcs51/8052.h: made parseable with lint
2035         * device/include/mcs51/lint.h: added include file for (sp)lint
2036         * doc/sdccman.lyx: added doc about use of splint (syntax checking tool)
2037         * doc/cdbfileformat.lyx,
2038         * doc/test_suite_spec.lyx: hardcoded date to the date of last text change
2039
2040 2005-05-14 Raphael Neider <rneider AT web.de>
2041
2042         * device/lib/pic16/Makefile.common.in: add --optimize-df to OPT_FLAGS
2043         * device/lib/pic16/libc/stdlib/itoa.c (new)
2044         * device/lib/pic16/libc/stdlib/Makefile: have itoa.c built
2045         * device/lib/pic16/libio/Makefile: exclude subdir according to
2046           ${subdir}.ignore for certain PICs (lacking e.g. i2c)
2047         * device/lib/pic16/libio/i2c.ignore (new): pic18f1220 has no I2C support
2048         * src/pic16/gen.c (genFunction): prevent annoying warning
2049         * src/pic16/pcode.c: renamed stack_t to dynstack_t to prevent
2050           nameclashes on BeOS
2051         * support/cpp2/cppmain.c (cpp_output_string): new
2052         * support/cpp2/cpplib.c (_cpp_do__Pragma): fixed _Pragma(""),
2053           fixes bug 1116802
2054
2055 2005-05-13 Borut Razem <borut.razem AT siol.net>
2056
2057         * src/SDCCmain.c (linkEdit): fixed bug 1195202
2058
2059 2005-05-12 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
2060
2061         * .version: changed to version 2.5.1; back to bleeding edge development
2062
2063 2005-05-11 Borut Razem <borut.razem AT siol.net>
2064
2065         * doc/sdccman.lyx doc/cdbfileformat.lyx doc/test_suite_spec.lyx:
2066           generate PDF version 1.3 documents
2067
2068 2005-05-07 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
2069
2070         * .version: changed to version 2.5.0
2071
2072 2005-04-27 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
2073
2074         * doc/sdccman.lyx: updated weblinks, index and smaller updates
2075
2076 2005-04-26 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
2077
2078         * doc/sdccman.lyx: changed version 2.5.0, documented --std-c89,
2079         --std-sdcc89, --std-c99, --std-sdcc99, and the corresponding #pragmas, as
2080         well as many smaller updates.
2081         * .version: changed to version 2.5.0-pre1
2082
2083 2005-04-26 Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
2084
2085         * src/SDCCmain.c (setIncludePath): added port->target to SDCC_INCLUDE_NAME
2086
2087 2005-04-26 Maarten Brock <sourceforge.brock AT dse.nl>
2088
2089         * support/regression/tests/bug1185672.c: added
2090         * src/mcs51/gen.c (aopGetUsesAcc, genCpl, genAnd, genOr, genXor): fixed
2091           bug 1185672
2092         * src/mcs51/gen.c (genCall): added comments, made it look safer
2093         * src/mcs51/gen.c (genEndFunction): simplified
2094
2095 2005-04-25 Maarten Brock <sourceforge.brock AT dse.nl>
2096
2097         * src/mcs51/ralloc.c (serialRegAssign): fixed bug 1189609
2098
2099 2005-04-14 Borut Razem <borut.razem AT siol.net>
2100
2101         * fixed bug 1045046 - SIGSEGV with really simple code?:
2102           src/pic/pcode.c (pCodeInitRegisters)- pseudo stack size increased to 16
2103           src/pic/ralloc.c (typeRegWithIdx) - error message on pseudo stack overflow
2104
2105 2005-04-14 Borut Razem <borut.razem AT siol.net>
2106
2107         * src/pic16/gen.c (genInline), src/pic16/main.c (_process_pragma),
2108           src/pic16/device.h: temporarily disabled experimental #inline pragma
2109           for 2.5.0 release
2110
2111 2005-04-14 Maarten Brock <sourceforge.brock AT dse.nl>
2112
2113         * device/include/z80/stdio.h,
2114         * device/include/z80/string.h: removed these highly incomplete files so
2115           SDCC can use the default ones in device/include/
2116
2117 2005-04-14 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
2118
2119         * src/mcs51/gen.c (genEndFunction): removed unused variable to fix
2120         gcc warning.
2121         * device/lib/Makefile.in: default PORTINCDIR to the mcs51 subdir to
2122         fix sdcpp warnings.
2123
2124 2005-04-12 Maarten Brock <sourceforge.brock AT dse.nl>
2125
2126         * device/include/malloc.h: removed redundant __reentrant prototypes
2127         * device/lib/_mullong.c: added working xstack variant in asm (C version
2128           doesn't pass regression tests)
2129         * device/lib/bpx.c: used __data and made bpx char for mcs51
2130         * src/SDCCast.c (decorateType): removed unused GPTYPE_IDATA,
2131           (createFunction): fixed bug with xstackPtr
2132         * src/SDCCcse.c: corrected comments
2133         * src/SDCCopt.c (convertToFcall): fixed warning in MSVC,
2134           (killDeadCode, eBBlockFromiCode): removed unused code
2135         * src/SDCCsymt.h: removed unused GPTYPE_GPTR and GPTYPE_IDATA,
2136           corrected comments
2137         * src/mcs51/gen.c (aopForSym, aopPut, toBoolean, unsaveRegisters,
2138           assignResultValue, genCall, genFunction, genEndFunction, genAnd,
2139           genOr, genXor, genAddrOf): fixed several bugs concerning xstack
2140           (genModOneByte): fixed warning in MSVC
2141         * src/mcs51/main.c (): added comments
2142         * src/mcs51/peeph.def: changed 129 to 129.a, added 129.b, 129.c & 129.d
2143
2144 2005-04-12 Maarten Brock <sourceforge.brock AT dse.nl>
2145
2146         * src/SDCCmain.c (linkEdit): oops, changed one line too many
2147
2148 2005-04-11 Maarten Brock <sourceforge.brock AT dse.nl>
2149
2150         * src/SDCCmain.c (linkEdit): fixed bug with finding crt0.o for z80
2151
2152 2005-04-10 Vangelis Rokas <vrokas AT users.sourceforge.net>
2153
2154         * src/pic16/glue.c (printIvalChar): fixed bug when emitting
2155         characters arrays of larger size than the declared one.
2156
2157 2005-04-10 Borut Razem <borut.razem AT siol.net>
2158
2159         * src/pic/gen.c (genInline),
2160           src/pic/pcode.c (newpCodeAsmDir), (pCode2str),
2161           (genericPrint), (unlinkpCodeFromBranch), (compareLabel),
2162           (findNextInstruction), (findPrevInstruction),
2163           (findInstructionUsingLabel),
2164           src/pic/pcode.h: fixed bug #1164907 - Labels not being recognized
2165         * src/pic/pcode.c (findLabel): added missing '\n'
2166         * src/src.dsp: added SDCCdwarf2.c to the project
2167
2168 2005-04-09 Borut Razem <borut.razem AT siol.net>
2169
2170         * support/scripts/sdcc.nsi: added include/hc08/* h to NSIS setup
2171
2172 2005-04-08 Raphael Neider <rneider AT web.de>
2173
2174         * src/pic16/pcode.c: added helpers defmapInsertAfter (insert a new item
2175           into the chain after a given one) and mergeDefmapSymbols (combine
2176           defmap entries for each symbol per pcode)
2177         * (createDefmap): have defmap entries merged in the end
2178         * (defmapReplaceSymRef): split defmap entries covering two accesses to
2179           a symbol before replacing one access type's symbol, merge symbols in
2180           the end (replacement symbol might already have an entry)
2181         * (assignValnums): keep reference to written WREG intact
2182
2183 2005-04-08 Raphael Neider <rneider AT web.de>
2184
2185         * src/pic16/pcode.c (struct defmap_s): named anonymous union (for
2186           Alpha)
2187
2188 2005-04-08 Vangelis Rokas <vrokas AT users.sourceforge.net>
2189
2190         * src/pic16/pcode.c (pic16_get_op2): enlarged size of array b to 128
2191         bytes
2192
2193 2005-04-07 Raphael Neider <rneider AT web.de>
2194
2195         * device/include/pic16/usart.h: added compatibility defines for
2196           devices with more than one USART
2197         * device/include/pic16/pic18f[68][567]20.h: activated above defines
2198
2199 2005-04-07 Maarten Brock <sourceforge.brock AT dse.nl>
2200
2201         * device/lib/Makefile.in: updated for port specific include
2202
2203 2005-04-07 Maarten Brock <sourceforge.brock AT dse.nl>
2204
2205         * support/regression/ports/mcs51/spec.mk: added mcs51 include
2206
2207 2005-04-07 Maarten Brock <sourceforge.brock AT dse.nl>
2208
2209         * device/include/8051.h,
2210         * device/include/8052.h,
2211         * device/include/at89S8252.h,
2212         * device/include/at89c55.h,
2213         * device/include/at89x051.h,
2214         * device/include/at89x51.h,
2215         * device/include/at89x52.h,
2216         * device/include/mcs51reg.h,
2217         * device/include/reg51.h,
2218         * device/include/reg764.h,
2219         * device/include/regc515c.h,
2220         * device/include/sab80515.h: (re)moved these 12 files
2221         * device/include/mcs51/8051.h,
2222         * device/include/mcs51/8052.h,
2223         * device/include/mcs51/at89S8252.h,
2224         * device/include/mcs51/at89c55.h,
2225         * device/include/mcs51/at89x051.h,
2226         * device/include/mcs51/at89x51.h,
2227         * device/include/mcs51/at89x52.h,
2228         * device/include/mcs51/mcs51reg.h,
2229         * device/include/mcs51/reg51.h,
2230         * device/include/mcs51/reg764.h,
2231         * device/include/mcs51/regc515c.h,
2232         * device/include/mcs51/sab80515.h: and added them here
2233
2234 2005-04-06 Maarten Brock <sourceforge.brock AT dse.nl>
2235
2236         * device/include/stdarg.h: changed SDCC specific keywords to double
2237           underlined form.
2238         * device/include/stdint.h: changed intptr_t and uintptr_t for others than
2239           mcs51 and ds390.
2240         * device/include/hc08/mc68hc908gp32.h,
2241         * device/include/hc08/mc68hc908jb8.h,
2242         * device/include/hc08/mc68hc908jkjl.h,
2243         * device/include/hc08/mc68hc908qy.h: fixed comments
2244         * device/include/mcs51/README: updated
2245         * device/include/mcs51/c8051f120.h: added PINRSF
2246         * device/lib/pic16/libc/stdlib/crc16.c: fixed comments
2247         * src/pic16/pcode.c: MSVC6 doesn't accept declaring new variables
2248           amidst code. Also inline is not supported.
2249
2250 2005-04-06 Raphael Neider <rneider AT web.de>
2251
2252         * src/pic16/pcode.c (pic16_pCodeReplace): also update pcflow->end
2253         * (createDefmap): fixed CALLs to depend on FSR1 and RETLW to restore
2254           callers stack/frame pointers
2255
2256 2005-04-06 Vangelis Rokas <vrokas AT users.sourceforge.net>
2257
2258         * device/include/pic16/usart.h: added, missing in previous commit,
2259         * device/include/pic16/adc.h: fixed typo,
2260         * device/lib/pic16/libc/utils/cvtdec.S: added missing in previous
2261         commit,
2262         * device/lib/pic16/libc/stdlib/g_ftoa.S: modified to include
2263         <p18fxxx.inc>
2264         * device/lib/pic16/libc/stdio/streams.c: leave stdin, stdout
2265         uninitialized because a bug appears with gplink
2266         * device/lib/pic16/{some makefiles}: moved $(CSTD) from CFLAGS to
2267         COMPILE_FLAGS and added CPPFLAGS with -nostdinc because sdcpp
2268         complains for unrecognised option
2269
2270 2005-04-05 Raphael Neider <rneider AT web.de>
2271
2272         * src/pic16/gen.c (pic16_popCopyReg): made copying work for extended
2273           structs as well (using memcpy)
2274         * (genFunction): fixed comparison, used pCodeOpLabel to reduce warning
2275           on ISRs (GOTO has no label)
2276         * src/pic16/device.h: added OF_OPTIMIZE_DF
2277         * src/pic16/main.c: added compiler switch --optimize-df to enable the
2278           new data flow analysis/optimization
2279         * src/pic16/pcode.c: added (prototypes for and implementation of)
2280           dataflow analysis functions, fixed pCodeInstructions' inCond and
2281           outCond values, made RCALL a branch instruction
2282         * (pic16_unlinkpCode): keep C line if possible
2283         * (pic16_pCodeUnlink): removed cast on left side of assignment, have
2284           C line moved if possible
2285         * (pic16_getRegFrompCodeOp): NEW, improved version of...
2286         * (pic16_getRegFromInstruction,pic16_getRegFromInstruction2): changed
2287           to use new pic16_getRegFrompCodeOp (works for more SFRs)
2288         * (pic16_BuildFlow): fixed skip instructions with label (did not start
2289           new flow)
2290         * (pic16_getJumptabpCode): NEW, needed in...
2291         * (LinkFlow): fixed handling of jumptables, calls and conditional
2292           branches
2293         * (pic16_InsertCommentAfter): NEW
2294         * (pic16_pCodeReplace): made verbose and flow preserving
2295         * (AnalyzeFlow): added call to data flow analysis
2296         * src/pic16/pcode.h: added defmaps to pCodeFlow struct
2297         * src/pic16/pcodeflow.h: added PCC_STATUS to mean all STATUS bits
2298         * src/pic16/ralloc.c (packRegsForAssign): added return 1 in the end
2299
2300 2005-04-03 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
2301
2302         * src/SDCCast.c (decorateType): fixed bug #1105626
2303
2304 2005-04-02 Vangelis Rokas <vrokas AT users.sourceforge.net>
2305
2306         * device/include/asm/pic16/features.h,
2307         * pic18f*.h headers,
2308         * device/include/pic16/adc.h,
2309         * device/include/pic16/delay.h,
2310         * device/include/pic16/i2c.h,
2311         * device/include/pic16/malloc.h,
2312         * device/include/pic16/stdio.h,
2313         * device/include/pic16/stdlib.h,
2314         * device/include/pic16/string.h,
2315         * device/lib/pic16/libc/stdio/printf_tiny.c,
2316         * device/lib/pic16/libc/stdio/printf_small.c,
2317         * device/lib/pic16/libc/stdio/strmgpsim.c,
2318         * device/lib/pic16/libc/stdio/strmmssp.c,
2319         * device/lib/pic16/libc/stdio/strmusart.c,
2320         * device/lib/pic16/libc/stdio/vfprintf.c,
2321         * device/lib/pic16/libc/stdlib/ltoa.c,
2322         * device/lib/pic16/libc/stdlib/putchar.c,
2323         * device/lib/pic16/libc/stdlib/x_ftoa.c,
2324         * device/lib/pic16/libc/stdlib/memchrpgm.c,
2325         * device/lib/pic16/libc/stdlib/memchrram.c,
2326         * device/lib/pic16/libc/stdlib/memcpypgm2ram.c,
2327         * device/lib/pic16/libc/stdlib/memcpyram2ram.c,
2328         * device/lib/pic16/libio/adc/adcbusy.c,
2329         * device/lib/pic16/libio/adc/adcread.c,
2330         * device/lib/pic16/libio/adc/adcsetch.c,
2331         * device/lib/pic16/libio/usart/ubaud.c,
2332         * device/lib/pic16/libio/usart/ubusy.c,
2333         * device/lib/pic16/libio/usart/udrdy.c,
2334         * device/lib/pic16/libio/usart/uopen.c,
2335         * device/lib/pic16/libio/usart/uputc.c,
2336         * device/lib/pic16/libsdcc/gptr/gptrget1.c,
2337         * device/lib/pic16/libsdcc/gptr/gptrget2.c,
2338         * device/lib/pic16/libsdcc/gptr/gptrget3.c,
2339         * device/lib/pic16/libsdcc/gptr/gptrget4.c,
2340         * device/lib/pic16/libsdcc/gptr/gptrput1.c,
2341         * device/lib/pic16/libsdcc/gptr/gptrput2.c,
2342         * device/lib/pic16/libsdcc/gptr/gptrput3.c,
2343         * device/lib/pic16/libsdcc/gptr/gptrput4.c: modified all SDCC
2344         specific keywords to double underlined form,
2345         * device/lib/pic16/libc/Makefile.rules,
2346         * device/lib/pic16/libsdcc/Makefile.rules,
2347         * device/lib/pic16/libm/Makefile,
2348         * device/lib/pic16/libio/Makefile.rules: added CSTD macro in CFLAGS
2349         to compile with C standard set in Makefile.common
2350         * device/lib/pic16/libc/stdlib/Makefile: added new C sources
2351         rand.c and crc.c in compilation process,
2352         * device/lib/pic16/libsdcc/int/divuint.c,
2353         * device/lib/pic16/libsdcc/long/divulong.c: changed declaration of
2354         `c' from signed to unsigned,
2355         * device/lib/pic16/startup/crt0.c,
2356         * device/lib/pic16/startup/crt0i.c,
2357         * device/lib/pic16/startup/crt0iz.c: adopted to all SDCC specific
2358         keywords to double underlined form, bug fixes in _do_cinit function
2359         which prevented the correct initialization of the .idata segment,
2360         * src/pic16/pcoderegs.c (insideLRBlock): fixed a bug that caused the
2361         core to enter a infinite loop
2362         * device/lib/pic16/libc/stdlib/rand.c, crc.c: new files
2363
2364 2005-04-02 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
2365
2366         * src/SDCCicode.c (getArraySizePtr): fixed bug #1122171
2367
2368 2005-04-01 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
2369
2370         * device/include/Makefile.in: add support for hc08 subdirectory
2371         * device/include/hc08/: new subdirectory
2372         * device/include/hc08/mc68hc908jkjl.h: new header contributed by
2373         Lucas Loizaga, thanks!
2374         * device/include/hc08/mc68hc908qy.h,
2375         * device/include/hc08/mc68hc908gp32.h,
2376         * device/include/hc08/mc68hc908jb8.h: moved hc08 register defs to
2377         their own directory. Changed internal macro names to use the compiler
2378         reserved namespace. Changed SDCC specific keywords to double
2379         underlined form.
2380         * device/include/math.h,
2381         * device/include/malloc.h,
2382         * device/include/stdarg.h,
2383         * device/include/stdbool.h
2384         * device/include/string.h,
2385         * device/include/tinibios.h,
2386         * device/include/ds400rom.h,
2387         * device/include/8051.h,
2388         * device/include/8052.h,
2389         * device/include/80c51xa.h,
2390         * device/include/at89c55.h,
2391         * device/include/at89S8252.h,
2392         * device/include/at89x51.h,
2393         * device/include/at89x52.h,
2394         * device/include/ds80c390.h,
2395         * device/include/reg764.h,
2396         * device/include/regc515c.h,
2397         * device/include/sab80515.h,
2398         * device/include/mcs51/c8051f000.h,
2399         * device/include/mcs51/c8051f018.h,
2400         * device/include/mcs51/c8051f020.h,
2401         * device/include/mcs51/c8051f040.h,
2402         * device/include/mcs51/c8051f060.h,
2403         * device/include/mcs51/c8051f120.h,
2404         * device/include/mcs51/c8051f300.h,
2405         * device/include/mcs51/c8051f310.h,
2406         * device/include/mcs51/c8051f320.h,
2407         * device/include/mcs51/c8051f330.h,
2408         * device/include/mcs51/c8051f350.h,
2409         * device/include/z180.h: Changed SDCC specific keywords to double
2410         underlined form.
2411
2412 2005-03-31 Vangelis Rokas <vrokas AT users.sourceforge.net>
2413
2414         * src/pic16/device.c (Pics16[]): added devices 18F2550, 18F4331,
2415         18F4455,
2416         * (pic16_assignConfigWordValue): disable testing of configuration
2417         register value with config mask,
2418         * src/pic16/gen.c (pic16_testStackOverflow): prefix stack test
2419         function with port->fun_prefix,
2420         * (genFunction): when generating a naked interrupt function never
2421         create an absolute segment placed in interrupt vector address, place
2422         the actual interrupt function at IVA instead, when an interrupt
2423         function is generated with unspecified interrupt then do not create
2424         the absolute section,
2425         * (genGenPointerGet, genGenPointerSet, genPackBits): replace all
2426         code for generating a call to generic pointer get/put function with
2427         a call to function pic16_callGenericPointer(),
2428         * src/pic16/genutils.c (pic16_callGenericPointerRW): NEW, generates
2429         the call to the generic pointer get/put functions with prefixing the
2430         function name with port->fun_prefix,
2431         * src/pic16/glue.c (pic16glue): ifdef-out test of OF_LR_SUPPORT,
2432         * src/pic16/main.c (_process_pragma): prefix function with
2433         port->fun_prefix,
2434         * (_pic16_finaliseOptions): define macro __18Fxxxx macro when
2435         calling assembler, old 18Fxxxx macro is deprecated,
2436         * src/pic16/pcode.c (unlinkpCodeFromBranch): added PC_INLINE and
2437         PC_ASMDIR in while condition,
2438         * (findInstruction): add PC_ASMDIR in while condition,
2439         * (buildCallTree): prefix main with port->fun_prefix,
2440         * (pic16_pCode2str): fixed bug that didn't emit the memory access
2441         identifier for variable with banked access in instructions BTFSS,
2442         BTFSC, BCF, BSF, BTG
2443         * (AnalyzeFlow): moved call to OptimizepCode to pic16_AnalyzeBanking,
2444         * src/pic16/pcodepeep.c (pCodeOpCompare): increase size of b to 1024,
2445         * src/pic16/pcoderegs.c (pic16_pCodeRegoptimizeRegUsage): don't
2446         perform optimization when enviroment variable NO_REG_OPT is set,
2447         * (insideLRBlock): NEW, return 1 if register is inside an
2448         INF_LOCALREGS block,
2449         * (RemoveRegFromLRBlock): remove a register that is completely
2450         eliminated by register optimization, but it is still left in local
2451         register store/restore in/from stack block,
2452         * (Remove2pcodes): after removing register, check to see if it
2453         should be removed from local register store/restore in/from stack
2454         block,
2455         * src/pic16/ralloc.c (pic16_decodeOp): added decode for
2456         DUMMY_READ_VOLATILE,
2457
2458         * device/include/pic16/adc.h: minor prototype modifications and
2459         update,
2460         * device/include/pic16/malloc.h: added GPL notice various
2461         modifications,
2462         * device/include/pic16/stdint.h: NEW, standard header for ints
2463         * device/include/pic16/delay.h: NEW, header for delay functions,
2464         delay10tcy, delay100tcy, delay1ktcy, delay10ktcy, delay100ktcy,
2465         delay1mtcy,
2466         * device/include/pic16/signal.h: NEW, header providing helper macros
2467         for implementing signal handlers,
2468         * device/include/pic16/stdio.h: added prototypes for functions,
2469         printf, vprintf, sprintf, vsprintf, fprintf, vfprintf. Added
2470         prototypes for stdin and stdout, added macro PUTCHAR to
2471         automatically implement putchar function prototype,
2472         * device/include/pic16/usart.h: modified and updated USART library,
2473         * device/lib/pic16/libio/adc/,
2474         * device/lib/pic16/libio/i2c: some modifications to improve library
2475         performance,
2476         * device/lib/pic16/libc/stdio/: modifications for the new printf*
2477         family of functions,
2478         * device/lib/pic16/libc/stdlib/: various modifications in the malloc
2479         family of functions and other sources,
2480         * device/lib/pic16/libio/usart/: NEW, c sources for the usart module
2481         of the PIC18Fxx[28] devices,
2482         * device/lib/pic16/libc/delay/: NEW, c sources for the delay functions,
2483         * device/lib/pic16/libc/utils/: minor modifications in the .S sources,
2484         * device/lib/pic16/startup/{crt0i.c, crt0iz.c}: redesign of the
2485         _do_cinit function, because the previous failed when local variables
2486         where not placed in the same memory bank,
2487         * device/lib/pic16/libsdcc/char/: various modifications to improve
2488         library performance,
2489         * doc/sdccman.lyx: some reorganization of the PIC16 part, added many
2490         information on the new functions of the c library and more...
2491
2492 2005-03-28 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
2493
2494         * src/SDCCBBlock.c (iCodeBreakDown): fixed bug #1170212
2495
2496 2005-03-26 Raphael Neider <rneider AT web.de>
2497
2498         * src/pic16/gen.c (genSkipc): fixed semantics (execute branch
2499           if condition == CARRY)
2500         * (genCmp): adapted to new genSkipc semantics
2501         * src/pic16/genutils.c (pic6_genCmp_special): removed side effect
2502           on rIfx (genCmp was broken)
2503
2504 2005-03-26 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
2505
2506         * src/SDCCmain.c (setDefaultOptions, optionsTable[], parseCmdLine),
2507         * src/z80/main.c (_keywords[]),
2508         * src/SDCCglobal.h (struct options),
2509         * src/SDCC.y,
2510         * src/SDCC.lex (isTargetKeyword, doPragma, pragma_tbl[]): new pragmas
2511         to enable/disable SDCC and C99 extensions/keywords (std_c89, std_sdcc89,
2512         std_c99, std_sdcc99). Also, equivalent command line options (--std-c89,
2513         --std-sdcc89, --std-c99, --std-sdcc99). SDCC specific keywords are
2514         always available in leading double underscore form. The C99 support is
2515         mostly missing, but it's a start.
2516         * support/regression/tests/bug-227710.c: fixed nonconforming use of
2517         reserved identifier "__data".
2518
2519 2005-03-24 Maarten Brock <sourceforge.brock AT dse.nl>
2520
2521         * src/mcs51/peeph.def: fixed bug 1170013
2522
2523 2005-03-22 Maarten Brock <sourceforge.brock AT dse.nl>
2524
2525         * device/include/mcs51reg.h: fixed bug 842007
2526
2527 2005-03-21 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
2528
2529         * src/SDCCcflow.c (dfNumCompare): committed the wrong version of this
2530         last time.
2531
2532 2005-03-20 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
2533
2534         * src/port.h (struct PORT),
2535         * src/avr/ralloc.c (avr_assignRegisters),
2536         * src/avr/main.c,
2537         * src/ds390/ralloc.c (ds390_assignRegisters),
2538         * src/ds390/main.c,
2539         * src/hc08/ralloc.c (hc08_assignRegisters),
2540         * src/hc08/main.c,
2541         * src/mcs51/ralloc.c (mcs51_assignRegisters),
2542         * src/mcs51/main.c,
2543         * src/pic/ralloc.c (pic14_assignRegisters),
2544         * src/pic/main.c,
2545         * src/pic16/ralloc.c (pic16_assignRegisters),
2546         * src/pic16/main.c,
2547         * src/xa51/ralloc.c (xa51_assignRegisters),
2548         * src/xa51/main.c,
2549         * src/z80/ralloc.c (z80_assignRegisters),
2550         * src/z80/ralloc.h,
2551         * src/SDCCopt.c (eBBlockFromiCode, replaceRegEqv, killDeadCode),
2552         * src/SDCCcse.c (ifxOptimize, cseBBlock, cseAllBlocks),
2553         * src/SDCCcse.h,
2554         * src/SDCCdflow.c (computeDataFlow),
2555         * src/SDCCdflow.h,
2556         * src/SDCCloop.c (addDefInExprs, loopInvariants, loopOptimizations),
2557         * src/SDCCloop.h,
2558         * src/SDCCcflow.c (*),
2559         * src/SDCCcflow.h,
2560         * src/SDCCBBlock.c (iCodeBreakDown, dumpEbbsToFileExt, eBBWithEntryLabel),
2561         * src/SDCCBBlock.h (struct ebbIndex): new struct that keeps two copies
2562         of the eBBlock list, sorted by both bbnum and dfnum. (fixes bug with
2563         immedDom() returning wrong block; probably fixes bug #1160833)
2564
2565 2005-03-20 Borut Razem <borut.razem AT siol.net>
2566
2567         * support/scripts/inc2h.pl: WIN32 port
2568
2569 2005-03-19 Maarten Brock <sourceforge.brock AT dse.nl>
2570
2571         * device/lib/makefile.in: added abs.c and labs.c
2572
2573 2005-03-17 Maarten Brock <sourceforge.brock AT dse.nl>
2574
2575         * device/include/stdint.h: added
2576         * device/lib/abs.c: added
2577         * device/lib/labs.c: added
2578         * device/include/stdlib.h: added abs() and labs() prototypes
2579         * device/lib/libsdcc.lib: added abs and labs
2580         * device/include/float.h,
2581         * device/lib/_fsmul.c,
2582         * device/lib/printf_fast.c,
2583         * device/lib/printf_tiny.c: updated comments
2584
2585 2005-03-16 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
2586
2587         * src/SDCCicode.c (geniCodeSwitch, geniCodeJumpTable): fixed
2588         bug #1164313
2589
2590 2005-03-16 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
2591
2592         * src/SDCCcse.c (cseBBlock): retain assignment to self when volatile
2593         * src/SDCCast.c (isLoopCountable): fixed bug #1161985
2594
2595 2005-03-15 Maarten Brock <sourceforge.brock AT dse.nl>
2596
2597         * device/lib/printf_large.c: removed inline assembly for portability and
2598           readability. Use printf_fast if speed or size are more important.
2599         * src/pic16/gen.c: removed conditions around use of DEBUGpc
2600         * src/pic16/genutils.h: added define for DEBUGpc for MSVC
2601
2602 2005-03-15 Vangelis Rokas <vrokas AT users.sourceforge.net>
2603
2604         * src/pic16/genutils.c (pic16_genCmp_special): initialized offs to
2605         prevent compiler warning
2606
2607 2005-03-14 Vangelis Rokas <vrokas AT users.sourceforge.net>
2608
2609         * device/lib/pic16/startup/crt0i.c (_cinit): local variables where
2610         moved to level 0 and declared as static. Also they are explicit
2611         placed in access bank. This was necessery because some times they
2612         might cross memory bank boundaries. crt0iz.c is *NOT* updated!!!
2613         * src/pic16/device.h: added flag OPTIMIZE_CMP to enable some compare
2614         optimizations. Currently only compare to unsigned char is implemented,
2615         * src/pic16/gen.c: added fReturnIdx array,
2616         * (struct resolvedIfx) is moved to gen.h and made public,
2617         * (struct _G): added sregsAlloc and sregsAllocSet fields,
2618         * (aopForSym): added an optimization to directly store in stack of
2619         the operand of a SEND iCode,
2620         * (pic16_aopOp): don't return return registers as strings (AOP_STR)
2621         but as registers instead (AOP_REG) using the fReturnIdx array,
2622         * (pic16_freeAsmop): remove the freed register from the
2623         _G.sregsAlloc field,
2624         * (pic16_aopGet): in case AOP_STR, the compare to 'a' is changed to
2625         a compare of 'WREG',
2626         * (pic16_popGetTempRegCond): changed function prototype, now
2627         function takes also a bitVector argument v which holds the current
2628         set of registers that are allocated for stack access by aopForSym,
2629         registers allocated in aopForSym for accessing stack symbols are not
2630         any more part of the functions usedRegs field,
2631         * (genCall): some times aopOp is called for a stack variable to be
2632         send, aopForSym might perform the push, if this is true make sure
2633         that genCall doesn't push the variable twice by testing _G.resDirect,
2634         * (genFunction): changed testing for unspecified interrupt number
2635         from 256 to INTNO_UNSPEC,
2636         * modified selection scheme of frame pointer generation. Previously
2637         if function did use local registers a frame pointer was generated,
2638         now a frame pointer is generated only if function has arguments
2639         (that need PLUSW2 register access), or has stack arguments, or the
2640         compiler is not instructed to omit the frame pointer,
2641         * (genEndFunction): before restoring local registers that were saved
2642         in the function preamble, also restore the registers that *might*
2643         have been allocated for stack access,
2644         * (genRet): removed some old comments,
2645         * (genCmp, the active (RN's) version): added a call to the
2646         pic16_genCmp_special function to perform the compare with a more
2647         robust and optimized way,
2648         * (genInline): a feature has been added in inline code generation,
2649         which allows a wildcard variable substitution when writing inline
2650         assembly. Code is incomplete and experimental therefore undocumented,
2651         * (genCast): changed order of aopOp for result and right to allow
2652         aopForSym to directly load the result if possible,
2653         * src/pic16/genutils.c (selectCompareOp, pic16_genCmp_special): NEW,
2654         perform an optimized compare on some selected special occasions,
2655         * src/pic16/genutils.h: declaration of resolvedIfx structure from gen.c,
2656         * src/pic16/glue.c (pic16createInterrupVect): make sure we never
2657         generate an IVT any more,
2658         * src/pic16/main.c (pic16_optionsTable): added command line option
2659         --optimize-cmp,
2660         * (_pic16_initPaths): when calling C preprocessor define pic18fXXXX
2661         macro too, when calling assembler define pic18fXXXX *and* __18Fxxxx
2662         macros,
2663         * src/pic16/NOTES: Raphael Neider added in list of active developers
2664         * src/pic16/pcode.c (OPT_TYPE_STR): added strings jumptable_begin and
2665         jumptable_end to prevent bug #,
2666         * (pic16_pciADDWFC, ADDFWC, COMF, CLRF): added some missing flags in
2667         inCond and outCond fields,
2668         * src/pic16/pcoderegs.c (pCodeOptime2pCodes): add a fix for bug #,
2669         * src/pic16/ralloc.c (serialRegAssign): explicit set willCS to 0 to
2670         turn off register spilling,
2671         * (packRegsForOneUse): synced with other ports' versions although it
2672         is not used currently,
2673         * (pic16_packRegisters): added an optimization while reading
2674         structure bitfields, some registers may be saved (malloc code is
2675         decreased by 80 bytes)
2676
2677 2005-03-12 Vangelis Rokas <vrokas AT users.sourceforge.net>
2678
2679         * src/SDCCcse.c (cseBBlock): inside 'do operand lookup' loop test if
2680         left is a bitfield, if yes, then don't optimize assignment. Perhaps
2681         this can be optimized more?
2682
2683 2005-03-10 Raphael Neider <rneider AT web.de>
2684
2685         * src/pic16/gen.c (pic16_loadFSR0, genPackBits, genUnpackBits,
2686           genNearPointerGet): (hopefully) fixed access to bitfields via
2687           pointers (p->bitN = x; and x = p->bitN; failed)
2688
2689 2005-03-09 Paul Stoffregen <paul AT pjrc.com>
2690
2691         * device/lib/printf_fast.c: fix leading zero format, eg "%02d"
2692
2693 2005-03-09 Raphael Neider <rneider AT web.de>
2694
2695         * src/SDCCopt.c (killDeadCode): fixed bug #1156016
2696
2697 2005-03-06 Maarten Brock <sourceforge.brock AT dse.nl>
2698
2699         * src/SDCCicode.h: moved CRITICAL and ENDCRITICAL from SKIP_IC2 to SKIP_IC
2700         * src/mcs51/ralloc.c (willCauseSpill): added check for REG_BIT type,
2701           (regTypeNum): set REG_BIT type if necessary
2702         * src/mcs51/ralloc.h: added define REG_BIT, used to fix bug 1144613
2703         * support/regression/tests/critical.c: check bug 1144613
2704
2705 2005-03-02 Raphael Neider <rneider AT web.de>
2706
2707         * src/pic16/gen.c (genRightShiftLiteral): fixed bug #1154256
2708
2709 2005-02-26 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
2710
2711         * src/avr/ralloc.c (serialRegAssign),
2712         * src/ds390/ralloc.c (serialRegAssign),
2713         * src/hc08/ralloc.c (serialRegAssign),
2714         * src/mcs51/ralloc.c (serialRegAssign),
2715         * src/pic/ralloc.c (serialRegAssign),
2716         * src/pic16/ralloc.c (serialRegAssign),
2717         * src/xa51/ralloc.c (serialRegAssign),
2718         * src/z80/ralloc.c (serialRegAssign): fixed bug #1105154
2719
2720 2005-02-22 Maarten Brock <sourceforge.brock AT dse.nl>
2721
2722         * src/SDCCast.c (decorateType): fixed bug 1124787
2723
2724 2005-02-20 Hubert Sack <sack AT digiplan.de>
2725         committed by Frieder Ferlemann <Frieder.Ferlemann AT web.de>
2726
2727         * src/mcs51/peeph.def: added peepholes 3.h-k and 132.a-f from
2728         patch #1121755
2729
2730 2005-02-20 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
2731
2732         * src/SDCCpeeph.def: new keyword "labelRefCountChange" which allows peepholes
2733         to keep the correct label reference count when adding/removing references
2734         to labels. A peephole file using this is appended to patch #1144962.
2735
2736 2005-02-14 Raphael Neider <rneider AT web.de>
2737
2738         * device/lib/pic16/libc/string/memccpy.c: changed 3rd argument to char
2739         * src/SDCC.lex (process_pragma): fixed to make disable_warning work for PIC16
2740         * src/pic16/gen.c (aopForSym, calls to pic16_aopOp): prevent unneccessary
2741           retrievals of result operand's value on assignment
2742
2743 2005-02-13 Vangelis Rokas <vrokas AT otenet.gr>
2744
2745         * device/include/pic16/string.h: modified prototype for memccpy()
2746         to memccpy(void *, void *, char, size_t)
2747         * src/pic16/gen.c (genFunction, genEndFunction): reenable if-case to
2748         check whether to omit frame pointer or not,
2749         * (genInline): convert all occurences of "\n" to LF in inline
2750         assembler blocks, this helps formatting the inline text,
2751         * (pic16_loadFSR0): modified prototype,
2752         * (genNearPointerGet, genNearPointerSet): reorganization of code,
2753         removed some 8051 legacy code,
2754         * (genPackBits): enabled handling bitfields exceeding one byte in size,
2755         * src/pic16/ralloc.c (pic16_assignRegisters): clear dynrIdx variable
2756         before allocating temporary registers in functions,
2757
2758 2005-02-11 Maarten Brock <sourceforge.brock AT dse.nl>
2759
2760         * support/regression/tests/bitvars.c: corrected the "fix"
2761
2762 2005-02-10 Maarten Brock <sourceforge.brock AT dse.nl>
2763
2764         * support/regression/tests/bitvars.c,
2765         * support/regression/tests/bitwise.c,
2766         * support/regression/tests/rotate.c: "fixed" problems on Alpha
2767
2768 2005-02-10 Raphael Neider <rneider AT web.de>
2769
2770         * src/pic16/pcode.c (assignToSameBank) : fixed cast to pointer of
2771           different size for Alpha
2772         * src/pic16/gen.c (genCmpEq) : improved compare with 0
2773
2774 2005-02-09 Raphael Neider <rneider AT web.de>
2775
2776         * src/SDCC.lex(doPragma) : save and restore warning options as well
2777           (also added new stack plus clone- and copyAndFreeSDCCERRG())
2778         * have #pragma less_pedantic set the errorlevel to WARNING
2779           (fixes #1117001)
2780         * (cloneOptimize) : fixed wrong malloc's size
2781         * support/Util/SDCCerr.[ch] : made SDCCERRG globally accessible to
2782           facilitate correct handling of #pragma (save|restore)
2783
2784 2005-02-09 Maarten Brock <sourceforge.brock AT dse.nl>
2785
2786         * src/mcs51/gen.c: removed non-standard C nameless struct/union
2787
2788 2005-02-04 Slade Rich <slade_rich AT users.sourceforge.net>
2789
2790         * src/pic/gen.c : Fix for bugs #1080519 & #1115662.
2791
2792 2005-02-03 Maarten Brock <sourceforge.brock AT dse.nl>
2793
2794         * device/include/mcs51/c8051f120.h: added declarations for sbit port 2,3&4
2795
2796 2005-02-02 Raphael Neider <rneider AT web.de>
2797
2798         * src/SDCCast.c (processParms): disabled W_NONRENT_ARGS for pic16 port
2799         * src/pic16/gen.c (aopForSym): reenabled special case for function pointers
2800         * (pic16_storeForReturn): fixed to allow returning function pointers
2801         * (genPackBits): improved accessing full bytes, implemented for GPOINTERs
2802         * device/include/pic16/{stddef.h,stdbool.h}: added
2803
2804 2005-02-02 Maarten Brock <sourceforge.brock AT dse.nl>
2805
2806         * device/include/mcs51/c8051f040.h: added define CPT2_PAGE
2807
2808 2005-02-01 Slade Rich <slade_rich AT users.sourceforge.net>
2809
2810         * src/pic16/pic16.dsp : Added file graph.c to make it compile under windows
2811         * src/pic16/Makefile.bcc : Do not use this file but added file graph.c as it
2812          appeared to be required
2813
2814 2005-01-31 Borut Razem <borut.razem AT siol.net>
2815
2816         * support/scripts/sdcc.nsi: added include/asm/ds390, include/asm/mcs51,
2817           include/mcs51 and include/z80 directories to the package
2818
2819 2005-01-26 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
2820
2821         * src/hc08/gen.c (genFunction): fixed bug #1112752
2822
2823 2005-01-30 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
2824
2825         * src/mcs51/peeph.def: adapted peephole 258.x to changed gen.c (genAnd)
2826
2827 2005-01-29 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
2828
2829         * src/mcs51/gen.c (genAnd): accessing LSB/MSB by rotating acc
2830
2831 2005-01-29 Maarten Brock <sourceforge.brock AT dse.nl>
2832
2833         * device/include/Makefile.in: create/copy mcs51 and z80 include subdirs
2834
2835 2005-01-27 Maarten Brock <sourceforge.brock AT dse.nl>
2836
2837         * device/include/c8051fxxx.h: removed these 6 files
2838         * device/include/mcs51/c8051fxxx.h: added these 11 new files
2839
2840 2005-01-26 Raphael Neider <rneider AT web.de>
2841
2842         * src/pic16/gen.c (genAssign): fixed assignment from longs
2843           in codespace (were cut to three bytes)
2844         * (genDummyRead): implemented (except for CODESPACE...),
2845           fixed bug #1108575
2846         * src/pic16/glue.c (emitStatistics): beautified
2847         * device/lib/pic16/libm/Makefile: added include path
2848
2849 2005-01-26 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
2850
2851         * src/z80/gen.c (aopPut): fixed bug #1103902
2852
2853 2005-01-25 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
2854
2855         * device/lib/expf.c: fixed bug #1095792
2856
2857 2005-01-24 Vangelis Rokas <vrokas AT otenet.gr>
2858
2859         * device/lib/pic16/libm: added Math library sources
2860
2861 2005-01-24 Raphael Neider <rneider AT web.de>
2862
2863         * src/pic16/pcode.h: added second memory operand to pCodeOpReg
2864           to enable upcast to pCodeOpReg2 (there is no type tag to
2865           differenciate the two and pic16_popGet2p cast into PCOR2)
2866         * src/pic16/main.c (_process_pragma): fixed another malloc bug
2867           (sizeof(sectNames) changed to sizeof(sectName))
2868           Both patches fix segfaults under MinGW.
2869
2870 2005-01-23 Raphael Neider <rneider AT web.de>
2871
2872         * src/pic16/{device.c,pcode.c}: s/free/Safe_free/g for
2873           Safe_[mc]?alloc()'ed variables
2874         * src/pic16/gen.c (pic16_aopOp,pic16_popGet): added handling
2875           of (byte sized) temporaries (assign them to WREG for now)
2876         * src/pic16/main.c (_process_pragma): fixed nasty malloc bug
2877           (used sizeof(set *sectSyms) instead of sizeof(struct sectSym)),
2878           this might fix SIGSEGVs on MinGW...
2879         * src/SDCCopt.c (killDeadCode): restored original behaviour
2880           (volatile operands might get thrown away though)
2881
2882 2005-01-23 Vangelis Rokas <vrokas AT otenet.gr>
2883
2884         * src/pic16/gen.c: fixed bug #1106975,
2885         * src/pic16/gen.c: fixed possible bug #1102572, now during TOS
2886         pointer update, INTCON is saved, global interrupts are disabled and
2887         restored after updateing TOS.
2888         * src/SDCC.y, src/SDCC.lex, src/SDCCsymt.c, src/SDCCsymt.h:
2889         * added function attribute 'shadowregs' to take advantage of shadow
2890         registers,
2891         * added function attribute 'wparam' as an alternative to the wparam
2892         pragma,
2893         * support/Utils/SDCCerr.[ch]: added error E_SHADOWREGS_NO_ISR when
2894         user declares a non-ISR function as 'shadowregs',
2895         * doc/sdccman.lyx: updated to reflect recent changes of pic16 port
2896
2897 2005-01-22 Vangelis Rokas <vrokas AT otenet.gr>
2898
2899         * .version: bumped version number to 2.4.8
2900         * device/lib/pic16/pics.all: list of PIC18F devices supported by
2901         pic16 port,
2902         * device/lib/pic16/libio/i2c/: I2C module support library,
2903         * device/include/pic16/i2c.h: I2C support library header,
2904         * device/lib/pic16/libc/stdio/: standard IO support sources,
2905         * (printf_small.c): printf_small() source, supports float print,
2906         * (printf_tiny.c): printf_tiny() source, does not support floats,
2907         * device/lib/pic16/Makefile.common.in: added OPT_FLAGS macro to
2908         enable global optimizations for entire library source, other
2909         Makefiles in the source tree are also modified to reflect this,
2910         * device/lib/pic16/libc/stdlib/putchar.c (putchar): dummy putchar()
2911         function,
2912         * doc/sdccman.lyx: updated to reflect new changes,
2913         * src/pic16/gen.c (aopForSym): don't handle sym->iaccess in
2914         sym->onStack if-case,
2915         * src/pic16/main.c (_pic16_keywords): commented out keywords bit,
2916         sbit, idata, _idata, xdata, _xdata,
2917         * added pragma library, to link an external library, (see doc),
2918         * removed command line options, --pomit-config-words, --pomit-ivt,
2919         --pleave-reset-vector,
2920         * (pic16_finaliseOptions): when define macro SDCC_MODEL_{SMALL/LARGE}
2921         when calling assembler to reflect memory model used, also define
2922         macro STACK_MODEL_{SMALL/LARGE} when compiling and assembling to
2923         reflect stack model used,
2924         * src/pic16/ralloc.c (pic16_allocDirReg): when operand is allocated
2925         on stack return NULL,
2926
2927 2005-01-22 Daniel Winkler <post AT danielwinkler.de>
2928
2929         * src/SDCCopt.c (killDeadCode): do not throw iCodes away if one
2930           of the operands is volatile. Fixes #1020220
2931
2932 2005-01-22 Daniel Winkler <post AT danielwinkler.de>
2933
2934         * src/pic16/pcoderegs.c (pCodeOptime2pCodes): reenabled optimization
2935         * (OptimizeRegUsage): make sure that there is really no other flow where
2936           the first pCode is used
2937
2938 2005-01-22 Raphael Neider <rneider AT web.de>
2939
2940         * src/pic16/pcoderegs.c (pCodeOptime2pCodes): disabled optimization
2941           to fix #1106967 (pCode->seq are not set up correctly)
2942
2943 2005-01-22 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
2944
2945         * src/SDCCglue.c (glue): make sure code area is declared before the
2946         static initialization area.
2947
2948 2005-01-21 Raphael Neider <rneider AT web.de>
2949
2950         * device/lib/Makefile.in: fixed test for pic16 install dir
2951         * device/lib/pic16/*/Makefile*: modified compile flags to enable
2952           optimizations
2953         * doc/sdccman.lyx: updated banksel optimization, removed --flr-support and
2954           added --optimize-goto compiler switch and pragma wparam documentation
2955         * src/pic16/pcode.c (pic16_OptimizeBanksel): removed statistics dump
2956         * src/pic16/pcodepeep.c (pic16_pCodeOpCopy): fixed copying of WREG, PRODL
2957           and PRODH closing bug #1071770 (peephole optimizer)
2958
2959 2005-01-19 Raphael Neider <rneider AT web.de>
2960
2961         * src/SDCCglobl.h: ensure that PATH_MAX >= 2048 to guarantee
2962           cmdLine buffers (used when calling sdcpp...) are large enough
2963           (MAX_PATH=256 truncates arguments leading to system halts when
2964           used in MinGW...)
2965         * src/pic16/gen.c (pic16_sameRegs): relaxed size criterion
2966         * (genUminus): rewritten to for efficiency
2967         * (genNearPointer[GS]et): enforce reloading of FSR0 (was still
2968           used uninitialized in some cases)
2969         * (genCast): upcasting a 16bit int to a 24bit GPOINTER may not
2970           copy the third byte from the int -- now assumes 0x80 (data memory)
2971         * src/pic16/genarith.c (pic16_genPlus): fixed bug when swapping
2972           operands (genAddLit expects the iCode's operands to swapped as
2973           well), fixed leftover bytes (crashed for short left operands)
2974         * (pic16_genMinusDec): performance improvements, removed false
2975           PIC14 emitSKPNCs
2976         * (pic16_genMinus): fixed to cope with differently sized operands
2977         * src/pic16/glue.c (pic16_glue): added new banksel optimization
2978           for --obanksel > 1
2979         * src/pic16/pcode.c: implemented (first phase of) banksel optimization
2980         * src/pic16/graph.[ch]: implementation of directed graphs, used by
2981           new banksel optimization
2982         * src/pic16/pcoderegs.c (pCodeRegMapLiveRangesInFlow): prevented
2983           analysis for temporary registers (segfaults...)
2984         * src/pic16/peeph.def: added rule
2985
2986 2005-01-18 Vangelis Rokas <vrokas AT otenet.gr>
2987
2988         * device/lib/pic16/libc/stdlib/x_ftoa.c: it defines x_ftoa function
2989         which converts a float number to its ASCII representation
2990         * device/lib/pic16/libc/utils/cnvfrac.S,cnvint.S: support
2991         functions to convert the fractional and integer part of a float to ASCII,
2992         * device/lib/pic16/libc/stdlib/(calloc.c,free.c, malloc.c,
2993         realloc.c): added _MALLOC_SPEC to explicit place variables in data
2994         ram
2995         * device/include/asm/pic16/features.h: added _CODE, _DATA, _AUTOMEM,
2996         _STATMEM macros,
2997         * device/include/pic16/adc.h: added GPL info,
2998         * src/pic16/gen.c (genIfxpCOpJump): perform an genIfxJump but using
2999         a pCodeOp as tested operand,
3000         * (genNearPointerGet): optimized bit testing, does not use
3001         intermediate register for bit value, test directly instead with
3002         BTFSS, BTFSC, works only for single bits,
3003         * (genpic16Code): dump the name of the iCode in the asm,
3004         * src/pic16/ralloc.c (decodeOp): removed static declaration and
3005         renamed to pic16_decodeOp,
3006         * (serialRegAssign): do not allocate a temporary register for iCode
3007         sequences that test a single bit for 1/0
3008
3009 2005-01-12 Vangelis Rokas <vrokas AT otenet.gr>
3010
3011         * src/pic16/pcode.[ch]: introduced pic16_stackpnt_*,
3012         pic16_framepnt_*, pic16_stack_*, pic1_frame_* pointer variables to
3013         access stack and frame pointers. They are initially assigned to
3014         point at pic16_pc_fsr1[lh] and pic16_pc_fsr2[lh] variables and other
3015         accessing SFRs. Updated all occurences of modification of stack or
3016         frame pointer in gen.c and pcode.c,
3017         * src/pic16/ralloc.c (serialRegAssign): fixed two bugs with
3018         assigning of a literal value to pointers,
3019         * src/pic16/main.c (pic16_finiliseOptions): set pre-processor define
3020         flag STACK_MODEL_SMALL or STACK_MODEL_LARGE according to the model
3021         selected
3022
3023 2005-01-11 Vangelis Rokas <vrokas AT otenet.gr>
3024
3025         * doc/sdccman.lyx: update documentation about stack pragma, added
3026         some info for stack memory models
3027
3028 2005-01-08 Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
3029
3030         * src/pic16/gen.c (DEBUGpc): MSVC 6 does not support macro variable arguments
3031
3032 2005-01-08 Raphael Neider <rneider AT web.de>
3033
3034         * src/pic16/device.c (pic16_dump_usection): changed naming scheme for
3035           udata sections to fix bug #1097823
3036
3037 2005-01-05 Raphael Neider <rneider AT web.de>
3038
3039         * src/pic16/gen.c (genGenericShift): added handling of differently
3040           sized left operand and result
3041
3042 2005-01-04 Raphael Neider <rneider AT web.de>
3043
3044         * src/pic16/gen.c (genIfxJump): fixed inverted skips on CARRY
3045         * (genIfx): fixed (?) read from uninitialized SPIL_LOC (now assumes CARRY
3046           to hold the condition bit)
3047         * added new version of genCmp (old code available via #define)
3048         * added new version of genShiftLeft/genShiftRight in a generic
3049           way, now supports shifting by negative values
3050         * (genLeftShiftLiteral, genRightShiftLiteral): use absolute value of
3051           shiftCount (expected by genGenericShift)
3052         * src/pic16/genarith.c (genPlus): added code for adding CARRY+literal
3053         * src/pic16/pcode.c (pic16_OptimizeJumps): removed annoying statistics
3054           dump
3055         * (pic16_newpCodeOpLit): changed to cast to unsigned char (as e.g. -32766
3056           is an invalid literal too...)
3057
3058 2005-01-04 Vangelis Rokas <vrokas AT otenet.gr>
3059
3060         * src/pic16/gen.c (aopForSym, genEndFunction): applied some fixes
3061         from Raphael Neider,
3062         * src/pic16/pcode.c (pic16_newpCodeOpLit): removed casting to char
3063         for 8-bit literals. This fixes some literal operands which are sign
3064         extended to 16-bits ints when instruction needs only 8-bits.
3065
3066 2004-12-31 Paul Stoffregen <paul AT pjrc.com>
3067
3068         * device/lib/logf.c: added mcs51 assembly version
3069         * device/lib/expf.c: added mcs51 assembly version
3070         * device/lib/_logexpf.c: new shared asm code for expf and logf
3071         * device/include/math.h: add defines for assembly math library
3072         * device/lib/Makefile.in: build new _logexpf.c
3073         * device/lib/libfloat.lib: use new _logexpf.c
3074
3075 2004-12-29 Slade Rich <slade_rich AT users.sourceforge.net>
3076
3077         * src/pic/device.c
3078         * src/pic/pcode.c : adjusted internal stack and pre-allocated registers for
3079           device types which have less than 0x7f registers.
3080
3081 2004-12-29 Slade Rich <slade_rich AT users.sourceforge.net>
3082
3083         * src/pic/genarith.c : Fixed problem with subtraction where the result would not be updated when borrowing.
3084
3085 2004-12-28 Paul Stoffregen <paul AT pjrc.com>
3086
3087         * device/lib/printf_fast.c: only build on supported arch.
3088         * device/lib/printf_tiny.c: only build on supported arch.
3089         * device/lib/printf_fast_f.c: only build if asm float lib
3090         * device/lib/_fsget1arg.c: only build if asm float lib
3091         * device/lib/_fsget2args.c: only build if asm float lib
3092         * device/lib/_fsnormalize.c: only build if asm float lib
3093         * device/lib/_fsreturnval.c: only build if asm float lib
3094         * device/lib/_fsrshift.c: only build if asm float lib
3095         * device/lib/_fsswapargs.c: only build if asm float lib
3096         * device/include/stdio.h: don't provide print_fast,
3097           print_fast_f, print_tiny prototypes if --xstack used
3098
3099 2004-12-28 Maarten Brock <sourceforge.brock AT dse.nl>
3100
3101         * device/lib/sincosf.c (sincosf): don't invert bit/bool by ~
3102         * support/regression/ports/mcs51-stack-auto/spec.mk: added new _fs.. files
3103           to the SOURCES
3104
3105 2004-12-28 Paul Stoffregen <paul AT pjrc.com>
3106
3107         * device/lib/printf_fast_f.c: same as printf_fast, but
3108           with floating point enabled
3109         * device/lib/printf_fast.c: minor tweaks
3110         * device/include/stdio.h: add printf_fast_f
3111
3112 2004-12-27 Paul Stoffregen <paul AT pjrc.com>
3113
3114         * src/SDCCmain.c: make --float-reent default for mcs51
3115         * device/lib/_fsadd.c: added mcs51 assembly version
3116         * device/lib/_fssub.c: added mcs51 assembly version
3117         * device/lib/_fsmul.c: added mcs51 assembly version
3118         * device/lib/_fsdiv.c: added mcs51 assembly version
3119         * device/lib/_fseq.c: added mcs51 assembly version
3120         * device/lib/_fsneq.c: added mcs51 assembly version
3121         * device/lib/_fsgt.c: added mcs51 assembly version
3122         * device/lib/_fslt.c: added mcs51 assembly version
3123         * device/lib/_fscmp.c: shared code for fseq,fsgt,fslt,fsneq
3124         * device/lib/Makefile.in: add _fscmp to build
3125         * device/lib/libfloat.lib: add _fscmp to build
3126
3127 2004-12-27 Paul Stoffregen <paul AT pjrc.com>
3128
3129         * device/lib/_fs2slong.c: added mcs51 assembly version
3130         * device/lib/_fs2sint.c: added mcs51 assembly version
3131         * device/lib/_fs2schar.c: added mcs51 assembly version
3132         * device/lib/_fs2ulong.c: added mcs51 assembly version
3133         * device/lib/_fs2uint.c: added mcs51 assembly version
3134         * device/lib/_fs2uchar.c: added mcs51 assembly version
3135         * device/lib/_slong2fs.c: added mcs51 assembly version
3136         * device/lib/_sint2fs.c: added mcs51 assembly version
3137         * device/lib/_schar2fs.c: added mcs51 assembly version
3138         * device/lib/_ulong2fs.c: added mcs51 assembly version
3139         * device/lib/_uint2fs.c: added mcs51 assembly version
3140         * device/lib/_uchar2fs.c: added mcs51 assembly version
3141         * device/include/float.h: added #define to select asm vs c
3142
3143 2004-12-26 Paul Stoffregen <paul AT pjrc.com>
3144
3145         * device/lib/printf_fast.c: improvements to float output
3146         * device/include/float.h: add defines for assembly float library
3147         * device/lib/_fsget1arg.c: receive 1 float arg
3148         * device/lib/_fsget2args.c: receive 2 float args (reentrant)
3149         * device/lib/_fsnormalize.c: normalize a float
3150         * device/lib/_fsreturnval.c: return float, various helper routines
3151         * device/lib/_fsrshift.c: right shift a float's mantissa
3152         * device/lib/_fsswapargs.c: swap 2 floats
3153         * device/lib/Makefile.in: build these 6 new files for mcs51
3154         * device/lib/libfloat.lib: add these 6 files to the library
3155
3156 2004-12-26 Borut Razem <borut.razem AT siol.net>
3157
3158         * sim/ucsim/avr.src/arith_inst.cc: fixed bug #1088372- savr is not
3159           built by gcc 3.4.2
3160
3161 2004-12-25 Paul Stoffregen <paul AT pjrc.com>
3162
3163         * device/lib/printf_tiny.c: printf for mcs51 in only 267 bytes,
3164           and fully reentrant and register bank neutral.
3165         * device/lib/printf_fast.c: added float (not enabled by default),
3166           added compact/slower integer (also not enabled by default),
3167           improved size/speed of fast integer code, other minor changes
3168         * device/include/stdio.h, device/lib/Makefile.in,
3169           device/lib/libsdcc.lib: integrate printf_tiny into mcs51 build
3170
3171 2004-12-24 Maarten Brock <sourceforge.brock AT dse.nl>
3172
3173         * src/pic16/pcode.c: declaring variables other than at the start of a
3174           block is not supported in C by VC6.
3175
3176 2004-12-22 Vangelis Rokas <vrokas AT otenet.gr>
3177
3178         * applied a previous patch from Raphael Neider that wasn't included
3179         in the previous commits, which fixes infinite loops within jumptable
3180         improvements,
3181         * made some fixes that previous patches introduced
3182
3183 2004-12-21 Vangelis Rokas <vrokas AT otenet.gr>
3184
3185         * src/pic16/gen.c (pic16_aopGet): applied fix from Raphael Neider
3186         that fixes an issue with AOP_PCODE asmop's offset,
3187         * (pic16_popCopyReg): update instance field too,
3188         * (mov2w): modified to pic16_mov2w because it conflicts with mov2w
3189         function of pic port,
3190         * (genCmp, genAnd, genAssign),
3191         * src/pic16/genarith.c (genAddLit): some fixes from Raphael Neider,
3192
3193 2004-12-20 Vangelis Rokas <vrokas AT otenet.gr>
3194
3195         * src/SDCCast.c (gatherAutoInit): allow pic16 to emit static
3196         variables initial values to idata section,
3197         * src/SDCCicode.c (geniCodeCall): patch from ### to fix unreferenced
3198         variables in some functions. This utilizes parmBytes field of iCode
3199         structure to hold the offset of the variable in stack. (might be
3200         able to use the stack field too?)
3201         * applied patch from Raphael Neider # ### , # ###
3202         * src/pic16/glue.c (pic16emitRegularMap): fix to print static
3203         variable initial values in idata section,
3204         * src/pic16/ralloc.c (pic16_allocDirReg): don't allocate register
3205         for static variables with initial value
3206         * src/device/lib/pic16/libsdcc/float/ulong2fs.c (__ulong2fs):
3207         applied fix in while loop from Raphael Neider.
3208
3209 2004-12-19 Maarten Brock <sourceforge.brock AT dse.nl>
3210
3211         * src/ds390/gen.c (genCpl): fixed bit=~(char/bit) bugs, added warning
3212         * src/ds390/main.c (_ds390_regparm): don't pass bit params in registers
3213         * src/ds390/ralloc.c (serialRegAssign): spill bits
3214         * src/mcs51/gen.c (genCpl): fixed bit=~(char) bugs, added warning
3215         * support/Util/SDCCerr.c,
3216         * support/Util/SDCCerr.h: added warning W_COMPLEMENT for using bit=~(bit)
3217         * support/regression/tests/bitvars.c: added tests for bitwise complement(~)
3218         * support/regression/tests/bitwise.c: added test for bitwise complement(~)
3219
3220 2004-12-09 Maarten Brock <sourceforge.brock AT dse.nl>
3221
3222         * device/include/sdcc-lib.h: inserted LGPL, added includes
3223           asm/ds390/features.h and asm/mcs51/features.h
3224         * device/include/asm/default/features.h,
3225         * device/include/asm/gbz80/features.h,
3226         * device/include/asm/z80/features.h: added empty _AUTOMEM
3227           and _STATMEM
3228         * device/include/asm/ds390/features.h,
3229         * device/include/asm/mcs51/features.h: added files with defines for
3230           _AUTOMEM and _STATMEM indicating automatic and static storage class
3231         * device/lib/printf_large.c (_print_format): optimized & used _AUTOMEM
3232         * doc/sdccman.lyx: version 2.4.7, updated xstack documentation
3233         * src/SDCCicode.c (geniCodeCast),
3234         * src/SDCCsymt.c (compareType): allow cast of data-ptr to idata-ptr
3235         * src/SDCCloop.c (loopInduction): removed unused variable lr
3236         * src/SDCCopt.c (convilong, convertToFcall): moved "easy special case"
3237           to convertToFcall to include char modulo (RFE 1065037), added check
3238           if left operand is unsigned and use abs of literal value
3239         * src/SDCCpeeph.c (setFromConditionArgs): removed double quotes option
3240           as it doesn't work after conversion from peephole.def to peephole.rul
3241         * src/mcs51/gen.c (toBoolean): added check for size,
3242           (genModOneByte): optimized code for signed char modulo a literal
3243           power of 2 (thanks to Hubert Sack),
3244           (genRRC): removed unnecessary "clr c",
3245           (genRLC): replaced "add a,acc" with cheaper "rlc a"
3246         * src/mcs51/peeph.def: renamed 115 to 115.a, added rule 115.b: another
3247           jump optimization,
3248           swapped rules 256.c and 256.d,
3249           extended 256.d by using new multiple checks (thanks Erik),
3250           added rules 256.e and 256.f,
3251           updated rule 261.a and 261.b to new generated code
3252         * support/regression/tests/muldiv.c: added test div/mod by a power of 2
3253
3254 2004-12-07 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
3255
3256         * src/SDCCloop.c (basicInduction, loopInduction): fixed several
3257           induction related bugs, including first part of bug #1074377
3258
3259 2004-12-05 Vangelis Rokas <vrokas AT otenet.gr>
3260
3261         * applied patch from bug-report #1076292,
3262         * applied patches for genAnd and Goto-optimizations for Raphael
3263         Neider,
3264         * src/SDCCicode.c (printOperand): fixed !REGA source to compile and
3265         dump a less iCode information,
3266         * src/pic16/device.h (pic16_options_t): added field debgen,
3267         * src/pic16/gen.h: added macros DUMP_FUNCTION_ENTRY,
3268         DUMP_FUNCTION_EXIT, FENTRY, FENTRY2,
3269         * src/pic16/gen.c (my_powof2): renamed to pic16_my_powof2 and made
3270         puclic,
3271         * (various functions): added macros FENTRY and FENTRY2 to functions,
3272         to emit function prologue,
3273         * (various functions): fixed indentation,
3274         * (genNearPointerGet): fixed loading of FSR0,
3275         * (genPackBits): applied patch from Raphael Neider to fix updating
3276         of FSR0 and touching only the modified bits,
3277         * src/pic16/genarith.c (various functions): added macros FENTRY to
3278         emit function prologue in comments,
3279         * src/pic16/pcode.h: added functions debugf2, debugf3,
3280         * src/pic16/ralloc.c: partial fix for packForPush caused
3281         segmentation fault,
3282
3283 2004-12-04 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
3284
3285         * src/mcs51/peeph.def: added 261.a,b (16 bit rotate) by Stas Sergeev
3286           <stsp AT users.sourceforge.net> with reversed byte order
3287         * support/regression/tests/rotate.c: added (ds390 skips some tests)
3288
3289 2004-12-03 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
3290
3291         * src/z80/gen.c (genLeftShift, genRightShift): fixed second part of
3292           bug #1074377
3293         * src/hc08/gen.c (genrshFour, shiftRLong, shiftLLong),
3294         * src/mcs51/gen.c (shiftLLong): Fixed some shifting bugs Frieder found
3295
3296 2004-12-02 Slade Rich <slade_rich AT users.sourceforge.net>
3297
3298         * src/pic/pcode.c : fixed a problem where banksel was not being inserted.
3299
3300 2004-12-02 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
3301
3302         * src/SDCCpeeph.c (callFuncByName): support combined peephole rule
3303           conditions,
3304           (setFromConditionArgs): friendly operand parser for peephole rules,
3305           (operandBaseName, operandsNotRelated): new peephole condition
3306           "operandsNotRelated" -- similar to "operandsNotSame", but takes
3307           architecture specific register naming into account, handles n-way
3308           comparisons, and supports quoted literals
3309         * src/mcs51/peeph.def: restored rule 177.d with an extra condition
3310
3311 2004-12-02 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
3312
3313         * src/mcs51/peeph.def: fixed bug #1076940
3314
3315 2004-12-02 Slade Rich <slade_rich AT users.sourceforge.net>
3316
3317         * device/include/pic/pic16f877.h : added an include file for the PIC16F877 device.
3318
3319 2004-11-28 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
3320
3321         Adding support for replacing ljmps with sjmps in jumptables
3322         generated for switch statements. For now you need to set the
3323         environment variable SDCC_SJMP_JUMPTABLE to enable this.
3324         Now 4 algorithms for mcs51 jumptable generation are used:
3325         ljmp or sjmp jumptables for up to 16 cases, stack-pushing target
3326         addresses loaded pc-relative for up to 112 cases and stack-pushing
3327         target addresses loaded with offset from dptr for up to 256 cases.
3328
3329         * src/SDCCpeeph.c: added peephole conditional labelJTInRange
3330         * src/mcs51/main.c: adapted constants for switch table generation
3331         * src/mcs51/peeph.def: added 260.x for replacing ljmp with sjmp
3332
3333 2004-11-26 Maarten Brock <sourceforge.brock AT dse.nl>
3334
3335         * device/lib/printf_large.c (_print_format): fixed bug 1073386
3336         * support/regression/tests/bug1057979.c: added test for bug 1073386
3337
3338 2004-11-25 Vangelis Rokas <vrokas AT otenet.gr>
3339
3340         * src/pic16/pcode.c: fixed bug which may produce error in non-GNU
3341         compilers
3342
3343 2004-11-25 Vangelis Rokas <vrokas AT otenet.gr>
3344
3345         * src/pic16/device.h,
3346         * src/pic16/genarith.c,
3347         * src/pic16/glue.c,
3348         * src/pic16/main.c,
3349         * src/pic16/pcode.c: applied patches #1068154 and #1070213
3350
3351 2004-11-24 Vangelis Rokas <vrokas AT otenet.gr>
3352
3353         Large cummulative patch for pic16 port.
3354         * device/lib/pic16/gstack.h: NEW, user can specify its own handler
3355         to call when a stack overflow occurs,
3356         * (malloc.h): added CVS Id tag,
3357         * (pic18f{242,252,442,452}.h): added T0CONbits structure and
3358         variable,
3359         * added libc directory. The current version of LibC contains string
3360         functions, ctype functions and macros and some functions of the
3361         stdlib set (like malloc/free/atof/atoi etc...). All functions are to
3362         be extensively tested in the future. Standard disclaimer here.
3363         Library is not automatically build yet. But one can build it by
3364         invoking 'make' inside the libc directory.
3365         * added ADC library under libio. Preliminary version yet.
3366
3367         * src/pic16/gen.h: added emitTOGC macro, to toggle Carry flag,
3368         * src/pic16/gen.c (aopForRemat): asmop size is filled by
3369         aopForRemat() now and not by pic16_aopOp(),
3370         * (pic16_popGetTempReg): removed warning messgae when allocating
3371         temporary registers, its a buggy feature and will be removed,
3372         * (pic16_popGet): set register instance field in AOP_CRY,
3373         * (pic16_outBitC): fixed for results in size greater than 1,
3374         * (genUminusFloat): fixed for pic16, ported code from mcs51,
3375         * (pic16_storeForReturn): optimized return of 0,
3376         * (genCmp): experimental code for new genCmp which uses PIC18's
3377         special compare&skip instructions. Initial tests fail some times
3378         with variables grater than 1 byte in size, so new code is disabled,
3379         * (genUnpackBits, genPackBits): more optimizations in reading/writing,
3380         a single bit,
3381         * (genCast): began a fix to optimize the casting of a bit to another
3382         bit, now assigning a bitfield to another bitfield will fail, sorry,
3383         * src/pic16/main.c: disabled the use of lr-support feature,
3384         * src/pic16/pcode.h: renamed PCASMDIR to PCAD,
3385         * added some function prototypes, added function _debugf prototype,
3386         * src/pic16/pcode.c: (pic16_get_op): fixed emitting operands of register
3387         bits with offset (case PO_GPR_BIT),
3388         * (genericPrint): don't emit INFO pcode when --pcode-verbose not in
3389         command line,
3390         * (isBankInstruction): modified to return 0 for no banking instruction,
3391         and 1 for banking instruction,
3392         * (pic16_isPCinFlow): check for PCAD (assembler directives) too,
3393         caused stop processing pCodes after a inline assembly block,
3394         * (pic16_popCopyGPR2Bit): updated to match bitfields with offset,
3395         * src/pic16/pcoderegs.c: fixed a bug with eliminating some temporary
3396         registers when it shouldn't,
3397         * src/pic16/ralloc.c (allocReg): add preliminary support for
3398         supporting a limited set of temporary registers,
3399
3400 2004-11-23 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
3401
3402         * src/hc08/gen.c (genAssign, genPointerGetSetOfs, genDataPointerGet,
3403           genDataPointerSet): ensure assignments always copy in MSB to LSB
3404           order,
3405           (loadRegFromAop): recognize CLRH optimization,
3406           (genFunction): optimize RECEIVE iCodes in reentrant functions
3407
3408 2004-11-20 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
3409
3410         * src/SDCCmain.c (parseCmdLine, optionsTable[]): fixed bug with
3411           --out-fmt-s19 turning into --out-fmt-elf if s19 was already
3412           selected.
3413         * src/SDCCmain.c (linkEdit): don't define SSEG for HC08
3414         * src/hc08/main.c (_hc08_setDefaultOptions): default xdata to be
3415           contiguous with data
3416
3417 2004-11-19 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
3418
3419         * device/lib/_gptrget.c (_gptrget),
3420         * device/lib/_gptrgetc.c (_gptrgetc),
3421         * device/lib/_gptrput.c (_gptrput): _naked allows to use ret
3422           instead of sjmp to ret
3423         * src/mcs51/peeph.def: added peepholes 3.d-g and 177.g,h provided
3424           by Hubert Sack <hsack2002 AT arcor.de> in RFE #1067986, thanks
3425
3426 2004-11-18 Maarten Brock <sourceforge.brock AT dse.nl>
3427
3428         * .version: bumped version to 2.4.7
3429         * device/lib/_gptrget.c (_gptrget): is now _naked
3430         * device/lib/_gptrgetc.c (_gptrgetc): is now _naked
3431         * device/lib/_gptrput.c (_gptrput): is now _naked
3432         * src/SDCCast.c (createBlock): removed ridiculous self-assignment,
3433           (createFunction): fixed xstack
3434         * src/SDCCglue.c (emitMaps): set allocation required for bit area
3435         * src/SDCCicode.c (geniCodeCast): don't change SPEC_OCLS for literal
3436           or bit either,
3437           (geniCodeCritical): store original interrupt state in an iTemp bit
3438           var unless stack-auto
3439         * src/SDCCicode.h: added CRITICAL and ENDCRITICAL to SKIP_IC2
3440         * src/SDCCmain.c (setIncludePath): added include/target to search path
3441         * src/SDCCmem.c (allocParms): store bit vars in bit space, not overlay
3442         * src/SDCCsymt.c (checkFunction): don't check regbank for isr's against
3443           prototype,
3444           (processFuncArgs): put bit vars in bit area
3445         * src/mcs51/gen.c (saveRegisters, unsaveRegisters, genXpush, saveRBank,
3446           unsaveRBank): fixed xstack,
3447           (genFunction): bugfix: replaced (global!) reentrant with fReentrant,
3448           (genFunction, genEndFunction): fixed xstack,
3449           (genAssign): optimization don't walk backwards through mem
3450         * src/mcs51/main.c (_mcs51_regparm): don't pass bit params in registers
3451         * src/mcs51/ralloc.c (createStackSpil): spill bits to bit area
3452         * support/regression/Makefile: also make library (for stack-auto) when
3453           making "all" and added "test-mcs51-xstack-auto"
3454         * support/regression/fwk/lib/testfwk.c: added T2_isr prototype for mcs51
3455         * support/regression/ports/mcs51/T2_isr.c: added this file as a stub
3456         * support/regression/ports/mcs51/fwk.lib: added to link T2_isr stub
3457         * support/regression/ports/mcs51/spec.mk: added rules for fwk.lib
3458         * support/regression/ports/mcs51-stack-auto/spec.mk: replaced
3459           make-library by MAKE_LIBRARY
3460         * support/regression/ports/mcs51-xstack-auto/spec.mk: file added to run
3461           regression tests for xstack
3462         * support/regression/tests/bitvars.c: test for bit vars (bug 938782)
3463         * support/regression/tests/critical.c: test for critical on mcs51
3464
3465 2004-11-18 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
3466
3467         * support/regression/ports/ucz80/spec.mk: use include and lib files from
3468           built version of sdcc instead of installed version
3469
3470 2004-11-14 Maarten Brock <sourceforge.brock AT dse.nl>
3471
3472         * src/mcs51/gen.c (toBoolean): fixed bug 1065458
3473         * device/lib/Makefile.in: z80 uses printf_large.c, sprintf.c and
3474           vprintf.c now
3475         * device/lib/printf_large.c (calculate_digit): fixed bug 1057979
3476         * device/lib/z80/Makefile: don't use printf.c as it fails bug 1057979
3477           WARNING: remove device/lib/build/z80/printf.o by hand when
3478           updating from previous build!
3479         * device/lib/z80/printf.c: updated comment
3480         * support/regression/tests/bug1057979.c: test all ports now
3481         * support/regression/tests/bug1065458.c: file added
3482
3483 2004-11-12 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
3484
3485         * src/z80/gen.c (genFunction, genEndFunction): avoided generating
3486           *_start and *_end symbols for static functions
3487
3488 2004-11-11 Maarten Brock <sourceforge.brock AT dse.nl>
3489
3490         * src/SDCCmain.c (linkEdit): don't suppress crt0 if --nostdlib is used
3491           and search crt0.o in all library paths,
3492           (setIncludePath): proper handling of --nostdinc,
3493           (setLibPath): proper handling of --nostdlib
3494         * support/regression/Makefile,
3495         * support/regression/ports/ds390/spec.mk,
3496         * support/regression/ports/gbz80/spec.mk,
3497         * support/regression/ports/hc08/spec.mk,
3498         * support/regression/ports/mcs51/spec.mk,
3499         * support/regression/ports/mcs51-large/spec.mk,
3500         * support/regression/ports/mcs51-stack-auto/spec.mk,
3501         * support/regression/ports/z80/spec.mk: use include and lib files from
3502           built version of sdcc instead of installed version
3503         * doc/sdccman.lyx: fixed typo in --nostdinc
3504
3505 2004-11-10 Slade Rich <slade_rich AT users.sourceforge.net>
3506
3507         * src/pic/pcode.c,
3508         * src/pic/device.c,
3509         * src/pic/ralloc.c,
3510         * src/pic/gen.c : added support to generate code for struct bit fields.
3511
3512 2004-11-06 Maarten Brock <sourceforge.brock AT dse.nl>
3513
3514         * as/xa51/xa_version.h,
3515         * device/include/errno.h,
3516         * device/include/regc515c.h,
3517         * device/lib/_itoa.c,
3518         * device/lib/_ltoa.c,
3519         * device/lib/ser_ir_cts_rts.c,
3520         * sim/ucsim/xa.src/glob.cc,
3521         * sim/ucsim/xa.src/inst_gen.cc,
3522         * sim/ucsim/xa.src/xa_bit.cc,
3523         * sim/ucsim/xa.src/xa_sfr.cc,
3524         * sim/ucsim/z80.src/inst_dd.cc,
3525         * sim/ucsim/z80.src/inst_fdcb.cc,
3526         * support/scripts/keil2sdcc.pl,
3527         * src/pic16/pic16.dsp,
3528         * src/pic16/pic16a.dsp: corrected cvs line endings
3529         * device/lib/printf_large.c: fixed bug 1057979
3530         * src/pic16/gen.c: fixed non-C standard code
3531         * src/SDCCmain.c: made --pack-iram default, added --no-pack-iram
3532         * src/SDCCglobl.h: changed pack_iram to no_pack_iram
3533         * support/regression/ports/mcs51/support.c: reload T1 asap
3534         * doc/sdccman.lyx: updated for options --pack-iram and --no-pack-iram,
3535           pdata use and clear idata startup behaviour
3536         * support/regression/tests/bug1057979.c: added
3537
3538 2004-11-04 Maarten Brock <sourceforge.brock AT dse.nl>
3539
3540         * device/examples/ds390/ow390/ad26.h,
3541         * device/examples/ds390/ow390/cnt1d.h,
3542         * device/examples/ds390/ow390/crcutil.c,
3543         * device/examples/ds390/ow390/ownet.h,
3544         * device/examples/ds390/ow390/owsesu.c,
3545         * device/examples/ds390/ow390/swt12.h,
3546         * device/examples/ds390/ow390/swtoper.c,
3547         * device/examples/ds390/ow390/temp10.h,
3548         * device/examples/ds390/ow390/thermodl.c,
3549         * device/examples/ds390/tinitalk/tinitalk.dsp,
3550         * device/examples/ds390/tinitalk/tinitalk.dsw,
3551         * device/examples/mcs51/clock/hw.h,
3552         * device/examples/mcs51/simple2/go.bat,
3553         * device/examples/serialcomm/windows/serial.h,
3554         * device/examples/xa51/dummy.c,
3555         * device/examples/xa51/hello.c,
3556         * device/include/80c51xa.h,
3557         * device/include/at89x051.h: corrected cvs line endings
3558
3559 2004-11-04 Vangelis Rokas <vrokas AT otenet.gr>
3560
3561         * src/pic16/main.c (options): added command line --gstack, to trace
3562         stack over/under flows,
3563         * added pragma 'wparam' to allow passing first byte of function
3564         parameters via WREG, syntax is #pragma wparam my_function[, func2...]
3565         * src/pic16/gen.c (pic16_testStackOverflow): function which emits a
3566         call to __gstack_test function and sets up the symbol as extern,
3567         * (pic16_pushpCodeOp, pic16_poppCodeOp, pushw, pushaop, popaopidx,
3568         * popaop): added call to pic16_testStackOverflow,
3569         * (wParamCmp, inWparamList): NEW, test existence of a symbol in
3570         wparamList list,
3571         * (genCall, genPcall): now all parameters are passed via stack
3572         except in functions that are pass to wparam pragma in which WREG is
3573         used too,
3574         * (genPcall): REENTRANT flag is checked to see if variable prototype
3575         contains reentrant keyword, don't call a non-reentrant function, via
3576         a reentrant function pointer or vice versa, functions are never
3577         passed via WREG,
3578         * (genJumpTab): applied patch from bug #1057478 by R.Neider and
3579         D.Winkler,
3580         * src/pic16/glue.c (pic16emitRegularMap): fixed bug which caused a
3581         SIGSEGV when accessing a NULL register stucture,
3582         * (pic16_printGPointerType): modified to handle UPPER modifier for
3583         function initializers, changed prototype of function to simpler one,
3584         * (pic16_printIvalFuncPtr): check to see if function is already
3585         added in externs list,
3586         * src/pic16/pcoderegs.c (pCodeOptime2pCodes): fixed bug which
3587         optimized a move from W to SFR with a move to the same register
3588         later after a CALL,
3589         * device/lib/pic16/debug: NEW directory, contains debug features
3590         which are enabled when linking with libdebug.lib, currently command
3591         line option --gstack enables stack pointer tracing for over/under
3592         flow, corresponding sources are in debug/gstack
3593
3594 2004-10-30 Vangelis Rokas <vrokas AT otenet.gr>
3595
3596         * doc/sdccman.lyx: updated SDCC version,
3597         * (PIC16 port): update list of command line options,
3598         * src/pic16/device.h (structure pic16_options_t): added field gstack
3599         to enable stack overflow tracing on push/pops,
3600         * src/pic16/device.c (statistics structure): added statistics
3601         structure,
3602         * (pic16_dump_access, pic16_dump_usection, pic16_dump_gsection,
3603         pic16_dump_int_registers): increase statistics counters for each
3604         * variable which is encountered
3605         * (pic16_dump_usection): emit each .udata variable to its own udata
3606         section,
3607         * src/pic16/gen.c (assignResultValue, genCall, genPcall, genFunction):
3608         when macro USE_WREG_IN_FUNC_PARAMS is set to 0 pass all function
3609         parameters via stack, otherwise use old scheme,
3610         * src/pic16/glue.c (pic16_emitStatistics): dump statistics in
3611         assembler output file,
3612         * src/pic16/main.c: added command line options --gstack to enable
3613         push/pop tracing for stack overflow,
3614         * src/pic16/pcode.c (all pCodeInstruction records for PIC18F
3615         instructions): added size of each instruction,
3616         * (pic16_countInstruction): estimate size of instructions in
3617         the_pFile list, inline assembly blocks are not counted,
3618         * (pic16_FixRegisterBanking): trace previous register usage, when
3619         banksel optimizations is greater than 0, don't emit a redudant
3620         banksel directive,
3621
3622 2004-10-26 Slade Rich <slade_rich AT users.sourceforge.net>
3623
3624         * src/pic/ralloc.c : fixed inefficient code produced when compiling a complimented bit operation.
3625         * src/pic16/ralloc.c : applied same fix for pic16.
3626         * src/pic/gen.c : tidied it up a little.
3627
3628 2004-10-25 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
3629
3630         * src/mcs51/peeph.def: disabled 259.a,b for removing redundant ret,
3631         thanks to Martin Helmling for reporting (mail on sdcc-devel 2004-10-25)
3632
3633 2004-10-22 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
3634
3635         * src/SDCCast.c (reverseParms): fixed bug #1040577 (part 2)
3636
3637 2004-10-22 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
3638
3639         * device/lib/ser_ir_cts_rts.c: integer promotion caused a call to the
3640         non-reentrant function __modsint in the interrupt function (thus
3641         corrupting math operations during serial I/O)
3642         * device/lib/ser_ir.c: as above, changed buffersize
3643         * src/mcs51/peeph.def: added 259.a,b for removing redundant ret,
3644         256.c,d for zeroing
3645         * doc/Makefile: added option -t for rsync
3646
3647 2004-10-22 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
3648
3649         * src/SDCCast.h (struct ast),
3650         * src/SDCCast.c (reverseParms, copyAst): fixed bug #1040577 (part 1)
3651
3652 2004-10-20 Borut Razem <borut.razem AT siol.net>
3653
3654         * support/scripts/sdcc.nsi: added include/pic16/*.h to the setup
3655         package
3656
3657 2004-10-20 Vangelis Rokas <vrokas AT otenet.gr>
3658
3659         * device/lib/pic16/libsdcc/Makefile: added lregs directory in
3660         makefile targets,
3661         * device/lib/pic16/libsdcc/lregs/{Makefile,lrst.c,lrrest.c}: NEW
3662         support functions to replace long sequences of MOVFF's from access
3663         bank registers to stack and vice versa,
3664         * src/pic16/device.h: added new field opt_flags, where optimization
3665         flags can be set to enable certain features,
3666         * src/pic16/gen.c (pic16_emitpinfo): NEW to add PC_INFO pCode in
3667         * pBlock, (genFunction, genEndFunction): surroung loop for
3668         saving/loading used registers in stack with PC_INFO pCodes,
3669         INF_LREGS. Code in between can then be optimized by pCode optimizer
3670         to support function calls,
3671         * (genDataPointerSet): fixed bug which loaded float fields in
3672         structures with corrupt data,
3673         * src/pic16/genutils.c (debugf, _debugf): macro/function which emits
3674         in a standard way debug info on stderr. Feature used for developing
3675         and debugging only,
3676         * src/pic16/glue.c (pic16glue): reformatted, deleted some old and
3677         obsolete chunks of code,
3678         * if optimization flag OF_LR_SUPPORT was set, call pic16_OptimizeLocalRegs,
3679         * src/pic16/main.c (_pic16_parseOptions): added handler for --flr-support,
3680         * pic16/src/pcode.c (pic16_newpCodeInfo,
3681         * (pic16_newpCodeOpLocalRegs),
3682         * (pic16_convertLocalRegs2Support): NEW, to support new optimization
3683         feature,
3684         * (pic16_pCodeConstString): printing of the initial value of a
3685         symbol as a comment is inhibited since parsing was already done by
3686         copyStr and output is corrupt,
3687         * (pic16_pCode2str, genericPrint): handle PC_INFO pCode,
3688
3689 2004-10-20 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
3690
3691         * src/mcs51/ralloc.c (packRegisters): fixed bug #1044601
3692
3693 2004-10-19 Maarten Brock <sourceforge.brock AT dse.nl>
3694
3695         * as/mcs51/lkarea.c: removed old K&R style,
3696           (lnksect): changed check on boundary error,
3697           (lnksect2): changed check on boundary error,
3698           (lnksect2): extend XSTK to end of page if size = 1
3699         * as/mcs51/lkmain.c: removed old K&R style,
3700           (Areas51): create l_IRAM symbol
3701         * as/mcs51/lkmem.c (summary2): added report on PSEG and XSTK
3702         * device/lib/Makefile.in: renamed model-mcs51-reentrant to
3703           model-mcs51-stack-auto, added model-mcs51-xstack-auto
3704         * device/lib/_mullong.c: added version to be compiled with xstack
3705         * device/lib/mcs51/crtclear.asm: clear only upto --iram-size
3706         * device/lib/mcs51/crtxclear.asm: clear pdata as well
3707         * device/lib/mcs51/crtxstack.asm: fixed comment
3708         * src/SDCCglue.c: maxInterrupts defaults to 0,
3709           (emitMaps): added pdata,
3710           (createInterruptVect): (re)moved default,
3711           (glue): added pdata,
3712           (glue): moved __start__xstack to XSTK with default size 1
3713         * src/SDCCmain.c (parseCmdLine): automatically set options.intlong_rent
3714           and options.float_rent when options.stackAuto is set,
3715           (linkEdit): only write XDATA_NAME if provided on command line
3716         * src/SDCCmem.h,
3717         * src/SDCCmem.c: added pdata
3718         * src/port.h: added pdata_name to PORT
3719         * src/mcs51/gen.c (toBoolean): fixed for Acc use of aopGet,
3720           (saveRegisters, unsaveRegisters): removed usage of B,
3721           (genMinus): fixed accumulator clash,
3722           (genJumpTab): added comment, this needs another look
3723         * src/mcs51/gen.c: added check for "B in use" paranoia,
3724           added pushB() and popB()
3725         * src/mcs51/peeph.def: restart after 177.c so 177.a can get a second
3726           chance
3727         * src/avr/main.c,
3728         * src/ds390/main.c,
3729         * src/hc08/main.c,
3730         * src/mcs51/main.c,
3731         * src/pic/main.c,
3732         * src/pic16/main.c,
3733         * src/xa51/main.c,
3734         * src/z80/main.c: (reset_regparms) made void parameter explicit and
3735           added PSEG (PAG,XDATA) or NULL to port specifier
3736         * src/ds390/main.c (_ds390_genIVT): moved implemented default in here
3737         * src/mcs51/main.c (_mcs51_genIVT): moved implemented default in here,
3738           (_mcs51_genInitStartup): removed __start__xstack equ,
3739           (mcs51_port): moved xstack from XSEG (XDATA) to XSTK (PAG,XDATA)
3740         * src/pic16/device.c (pic16_dump_usection, pic16_dump_isection),
3741         * src/z80/gen.c (_rleAppend): fixed warnings
3742         * support/regression/tests/zeropad.c: added pdata test
3743         * .version: bumped to 2.4.6
3744
3745 2004-10-17 Borut Razem <borut.razem AT siol.net>
3746
3747         * support/scripts/sdcc.nsi: cross compiling of WIN32 setup.exe on Linux
3748         as a part of nightly build
3749
3750 2004-10-16 Vangelis Rokas <vrokas AT otenet.gr>
3751
3752         * src/pic16/gen.c (struct _G): added field useWreg, is set to 1 when
3753         WREG holds the first byte function parameters,
3754         * (aopForSym): take special case for symbols which are in FARSPACE
3755         but in CODESPACE too,
3756         * (assignResultValue): modified to take into account _G.useWreg,
3757         * (genCall): don't use wreg for parameter passing when function is
3758         declared as reentrant, too, added optimization INCF to stack
3759         pointer when stack parameter count is 1,
3760         * (genFunction, genEndFunction): refurnished and fixed to not using
3761         wreg for passing parameters when function has varargs or is
3762         reentrant, fixed bug with symbol name compare for generating
3763         functions in absolute address,
3764         * (pic16_storeForReturn): refurnished,
3765         * (genCmp): began writing a new version of the function, not ready
3766         yet, therefore it is disabled,
3767         * (genAssign): do not read code memory when assigning a function to
3768         a pointer function,
3769         * src/pic16/glue.c (pic16emitStaticSeg): abSym->name is defined an
3770         array of characters, not pointer,
3771         * (pic16initialComments): in debug mode emit an .ident directive for
3772         the assembler,
3773         * (_process_pragma): emit a new warning type (internal to pic16)
3774         when setting stack to default length, emit a similar warning when
3775         placing a function at absolute address and address is not word aligned
3776         * (_pic16_parseOptions): added 'return TRUE' statement,
3777         * (_pic16_linkEdit): if compiling a source, then add the source's
3778         file object, first in the list of objects to link,
3779
3780 2004-10-13 Slade Rich <slade_rich AT users.sourceforge.net>
3781
3782         * src/pic/pcoderegs.c : increased count on regUsedinRange to prevent unnecessary warning.
3783         * src/pic/main.c : removed VC warning.
3784         * src/pic/gen.c : changed comment.
3785
3786 2004-10-12 Vangelis Rokas <vrokas AT otenet.gr>
3787
3788         * device/lib/pic16/libsdcc/gptr/gptrput[234].c: an external
3789         reference to a deprecated symbol _GPTRREG was causing failure to
3790         link. Thanks G. M. Gallant for the info.
3791
3792 2004-10-12 Slade Rich <slade_rich AT users.sourceforge.net>
3793
3794         * src/pic/pcode.c : Applied a code patch supplied by Paul Ashmore in
3795         comments for Bugs item #954788.
3796
3797 2004-10-10 Vangelis Rokas <vrokas AT otenet.gr>
3798
3799         * src/pic16/device.c (pic16_dump_gsection,
3800         * pic16_groupRegistersInSection): handle symbols declared to be in
3801         access bank differently,
3802         * src/pic16/gen.c (struct _G): added field resDirect,
3803         * (aopForSym): if symbol on stack and iCode is '=' and result exists,
3804         send values read from stack directly to result and don't allocate
3805         temporary values,
3806         * (pic16_sameRegs): fixed bug that allowed MOVFF to move between
3807         same registers,
3808         * (pic16_sameRegsOfs): NEW,
3809         * (freeAsmop): if _G.resDirect is set then do not mark registers as
3810         free because they were not allocated from temporary pool,
3811         * pic16_popRegFromString): workaround to fix a problem with
3812         allocating variables twice or never,
3813         * (genGenPointerGet): using PRODL instead of FSR0H,
3814         * (genGenPointerSet): using POSTDEC1 (that is a stack location)
3815         instead of FSR0H,
3816         * (genAssign): take advantage of the _G.resDirect flag,
3817         * (genCast): around line 11844, use mov2f instead of directly
3818         MOVFF'ing between operands to account for literal values,
3819         * src/pic16/genutils.c: some new debug functions for gpsim have been
3820         added,
3821         * src/pic16/glue.c (pic16_printIvalType): fixed bug that initialized
3822         float with integer part only,
3823         * src/pic16/main.c (_process_pragma): handle pragma udata access to
3824         place variables in access bank
3825         * device/lib/pic16/libsdcc/gptr/gptr*.c: using BRA instead of GOTO,
3826         updated sources to reflect recent changes in gen.c
3827
3828 2004-10-06 Vangelis Rokas <vrokas AT otenet.gr>
3829
3830         * device/lib/pic16/libsdcc/Makefile.rules: fixed bug concerning
3831         sources that searched for headers in installation path, now the
3832         device/include/pic16 is used,
3833         * src/pic16/glue.c (pic16glue),
3834         * src/pic16/pcode.c (pCode2str, genericPrint): don't print .file or
3835         .line directives if not in debug mode, this suppresses assembler's
3836         warnings for ignored directives
3837
3838 2004-10-05 Maarten Brock <sourceforge.brock AT dse.nl>
3839
3840         * src/port.h: made reset_regparms prototype void parameter explicit.
3841         * src/SDCCsymt.c (processFuncArgs): removed argument "func".
3842         * src/mcs51/ralloc.c (packRegisters): new fix for bugs 898889 & 979599.
3843         * doc/sdccman.lyx: documented warning disabling and how to use
3844           printf_large to make it print floats.
3845         * device/include/stdbool.h: NEW
3846         * device/lib/_atof.c,
3847         * device/lib/_divuint.c,
3848         * device/lib/_divulong.c,
3849         * device/lib/expf.c,
3850         * device/lib/printf_large.c,
3851         * device/lib/sincosf.c,
3852         * device/lib/sincoshf.c: used stdbool.h, all compile with stack-auto now
3853         * device/lib/Makefile.in: added target for model-mcs51-reentrant to build
3854           a completely reentrant lib.
3855
3856 2004-10-05 Vangelis Rokas <vrokas AT otenet.gr>
3857
3858         * device/lib/pic16/libsdcc/gptr/gptr*.c: added return statements
3859         * device/include/pic16/stdio.h: fixed bug with colon
3860
3861 2004-10-03 Vangelis Rokas <vrokas AT otenet.gr>
3862
3863         * device/include/pic16/stdio.h,
3864         * device/include/pic16/stdlib.h,
3865         * device/include/pic16/math.h: NEW
3866         * device/lib/pic16/libsdcc/gptr/*.c (gptrget*, gptrput*): functions
3867         declared as _naked to reduce overhead
3868         * device/lib/Makefile.in (target port-specific-objects-pic16):
3869         changed * to *.* so to ignore the CVS directory,
3870         * src/pic16/gen.c (pic16_freeAsmop): added code to store result of
3871         stacked variables back in stack,
3872         * (genEndFunction): fixed bug reported by G.M. Gallant with stack
3873         corruption
3874
3875 2004-10-01 Vangelis Rokas <vrokas AT otenet.gr>
3876
3877         * .version: bumped version number to 2.4.5
3878         * support/Util/SDCCerr.h: added warning W_POSSBUG2.
3879         * support/Util/SDCCerr.c (messages structure): added entry for
3880         W_POSSBUG2
3881
3882         Large cumulative patch for pic16 port and libraries.
3883         * device/include/pic16/sdcc-lib.h,
3884         * device/include/pic16/stdarg.h,
3885         * device/include/asm/pic16/features.h,
3886         * device/include/lib/pic16/libsdcc/gptr/{*.c, Makefile}: NEW,
3887         * device/include/pic16/float.h: changes reentrant keyword with
3888         _FS_REENTRANT, added prototype for __fsneq, included sdcc-lib.h
3889         * device/lib/pic16/libsdcc/Makefile: added target directory gptr,
3890         updated target build-libraries to include objects from gptr,
3891         * device/lib/pic16/libsdcc/{char,int,long}/*.c: added macro
3892         _IL_REENTRANT to all function headings, included sdcc-lib.h header,
3893         * device/lib/pic16/libsdcc/float/*.c: added macro _FS_REENTRANT to
3894         all function headings,
3895         * src/SDCCmain.c: added global parameter userIncDirsSet,
3896         * (parseCmdLine): when option -I is encountered add directory to
3897         userIncDirsSet too,
3898         * src/version.awk: added space between control and long,
3899         * src/pic16/NOTES: added some notes for the port,
3900         * src/pic16/gen.c: added prototype for mov2fp function,
3901         * (fReturnpic16[]): properly named return value registers,
3902         * (_G structure): added fields stackRegSet, fregsUsed, stack_lat,
3903         * (aopForSym): added code to handle symbols with onStack flag set,
3904         symbols onStack are allocated PTRSIZE bytes,
3905         * (aopFreeAsmop): handles special case where asmops are stack objects,
3906         * (aopGet, pic16_popGet): adde cod to handle new asmop AOP_STA,
3907         * (pic16_popGetTempReg, pic16_popGetTempRegCond, pic16_popReleaseTempReg):
3908         added argument lock to trace flaws in allocating temporary registers
3909         when developing port,
3910         * (pic16_popGetLit, pic16_popGetLit2): changed lit from unsigned to signed
3911         * (pic16_popRegFromString): reenabled allocating a direct register
3912         from string,
3913         * (assignResultValue): various beautifications,
3914         * fixed bug #1037717 (patch from R. Neider & D. Wrinkler) with mistaken
3915         referenced function argument,
3916         * (genIpush): reenabled to allow stacked arguments, handles only
3917         ic->parmPush iCodes,
3918         * (genCall, genPcall): major changes to allow for variable argument
3919         functions, fixed a bug with falsely restoring stack pointer after
3920         returning from call,
3921         * (genFunction): pending code for critical function,
3922         * (shiftR1Left2ResultSigned, shiftR1Left2Result, shiftL2Left2Result,
3923         * (shiftR2Left2Result, shiftLLong) applied patch #1032155 from R.Neider,
3924         * (genNearPointerGet): fixed bug with indirect reading, was always
3925         reading from INDF0
3926         * (genGenPointerGet, genGenPointerSet): rewrote to support generic
3927         pointers,
3928         * (genAddrOf): rewrote code to take address of a stacked function parameter
3929         * (genCast): fixed casting to generic pointer type,
3930         * src/pic16/gen.h: added AOP_STA,
3931         * (struct asmop): added field stk,
3932         * src/pic16/genarith.c (pic16_AopType): handle AOP_STA,
3933         * (pic16_genPlusIncr): changed emitSKPNZ to emitSKPNZ,
3934         * (pic16_genAddLit, pic16_genPlus): applied patch #1034042 by tecodev,
3935         * (pic16_genMinus): fixed bug #1035119 with patch submitted by tecodev,
3936         * src/pic16/genutils.c (pic16_genNot): removed symbol *tlbl,
3937         * src/pic16/glue.c (pic16_printGPPointerType): fixed to support new
3938         generic pointers,
3939         * src/pic16/main.c (_pic16_initPaths): ignores default SDCC include
3940         and library paths,
3941         * (pic16_port structure): generic pointer size is set to 3,
3942         * src/pic16/pcode.c (pic16_newpCodeOpLit): correctly print literal integer,
3943         * (insertBankSwitch): cast to (char *) to prevent 64bit CPUs'
3944         compiler warning,
3945         * src/pic16/ralloc.c (allocReg): prevent allocating register when
3946         operand is an iTemp,
3947
3948 2004-09-24 Martin Helmling <mh AT octo-soft.de>
3949
3950         * debugger/mcs51/cmd.c: set PC if a symbol at pc reg is set
3951         * debugger/mcs51/simi.c: addapt new syntax of s51
3952
3953 2004-09-23 Vangelis Rokas <vrokas AT otenet.gr>
3954
3955         * src/pic16/genutils.c (pic16_genNot): fixed bug #1032265,
3956         * src/pic16/pcode.c: commented out some calls to free() in order to
3957         fix bug #989576,
3958
3959 2004-09-23 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
3960
3961         * src/SDCCicode.h,
3962         * src/SDCCicode.c (isiCodeInFunctionCall),
3963         * src/avr/ralloc.c (selectSpil),
3964         * src/pic/ralloc.c (selectSpil),
3965         * src/pic16/ralloc.c (selectSpil),
3966         * src/ds390/ralloc.c (selectSpil),
3967         * src/hc08/ralloc.c (selectSpil),
3968         * src/xa51/ralloc.c (selectSpil),
3969         * src/mcs51/ralloc.c (selectSpil): Don't use remainSpil to spill to the
3970         stack in the middle of a function call sequence (fixes bug #1020268)
3971         * src/SDCCicode.c (geniCodeJumpTable): fixed error in computing the
3972         costs associated with the minimum switch case.
3973
3974 2004-09-19 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
3975
3976         * src/SDCC.lex: fixed bug #1030549
3977
3978 2004-09-19 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
3979
3980         * src/SDCCcse.h (struct cseDef),
3981         * src/SDCCcse.c (cseBBlock, newCseDef, ifFromAddrTaken): purge CSEs
3982         over a function call if the CSE is derived from a symbol whose
3983         address has been taken (fixes bug #1029883)
3984         * support/regression/tests/bug-1029883: a new regression test for
3985         this bug
3986
3987 2004-09-18 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
3988
3989         * src/hc08/gen.c (emitinline): fixed bug #1029778
3990         * src/SDCC.y (assignment_expr): fixed the grammer so that assignment
3991         to a cast object is no longer a syntax error ("fixes" bug #1030006,
3992         and starts toward RFE #905167)
3993
3994 2004-09-17 Vangelis Rokas <vrokas AT otenet.gr>
3995
3996         * src/pic16/gen.c (mov2f): New function to move an operand to
3997         another without considering if it is a literal or a register,
3998         * (pic16_sameRegs): don't check if they are both AOP_REG,
3999         * (AccRsh): removed andmask=0 lines,
4000         * (genLeftShift): duplicated to be improved in future versions,
4001         * src/pic16/main.c (_process_pragma): emit stack default size in hex,
4002         * src/pic16/pcode.c: added POC_INFSNZW, updated inverted_op fields
4003         in POC_INCFSZ, POC_INCFSZW, POC_INFSNZ,
4004         * (pic16initMnemonics): added initialization for POC_INFSNZW,
4005         * (insertBankSwitch): fixed inserting banksel directives algorithm
4006         for instructions that follow a skip instruction, this fixes a report
4007         for broken subtraction code generation,
4008         * src/pic16/ralloc.c (deassignLRs): do not free register if current
4009         iCode is a left op, just in case result and right share the same
4010         registers
4011
4012 2004-09-16 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
4013
4014         * src/hc08/main.c,
4015         * src/hc08/gen.c (genJumpTable): more efficient jump table, supports
4016         preservation of HX
4017         * src/hc08/gen.c (pullRegs): fixed order of HX & XA pairs
4018         * src/mcs51/ralloc.c (packRegisters): removed the patch applied
4019         on 2004-09-12; it was buggy
4020
4021 2004-09-15 Bernhard Held <bernhard AT bernhardheld.de>
4022
4023         * src/SDCCsymt.h: removed RESULT_CHECK
4024         * src/SDCCast.c,
4025         * src/SDCCglue.c,
4026         * src/SDCCval.c,
4027         * src/pic/glue.c,
4028         * src/pic16/glue.c: replaced RESULT_CHECK with RESULT_TYPE_NONE
4029
4030 2004-09-15 Vangelis Rokas <vrokas AT otenet.gr>
4031
4032         * src/SDCCicode.c (piCode): applied patch from Raphael Neider,
4033         * src/pic16/device.c (pic16_assignConfigWordValues): wrong
4034         configuration values no more rejected by compiler, they are assigned
4035         to configuration registers with a warning message instead,
4036         * src/pic16/glue.c (pic16_emitConfigRegs): added +1 at top-limit of
4037         the for-loop so last conf register is emitted too,
4038         * (_pic16_initPaths): link library libsdcc.lib by default,
4039         * (_hasNativeMulFor): modified test for multiplication according to
4040         Raphael Neider's remarks. Integer multiplication is also done with
4041         support functions,
4042         * device/include/pic16/pic18fregs.h: corrected type error in while
4043         testing and including 18f6720 header file
4044
4045 2004-09-14 Vangelis Rokas <vrokas AT otenet.gr>
4046
4047         * src/pic16/device.h (pic16_options): removed field use_crt,
4048         * src/pic16/gen.c (genUnpackBits): added call to pic16_loadFSR0
4049         until an optimization to handle single bits is added,
4050         * (pic16_loadFSR0): moved before genUnpackBits,
4051         * (genAnd): some white lines removed,
4052         * src/pic16/main.c (_pic16_finaliseOptions): set omit_ivt and clear
4053         leave_reset flags in pic16_options when using crt modules,
4054
4055 2004-09-12 Maarten Brock <sourceforge.brock AT dse.nl>
4056
4057         * src/mcs51/ralloc.c (packRegisters): applied fix by Bernhard Held
4058           for bugs 898889 & 979599. Also used some safer print instructions.
4059
4060 2004-09-12 Vangelis Rokas <vrokas AT otenet.gr>
4061
4062         * src/pic16/device.h (pic16_options_t): added field use_crt,
4063         crt_name, no_crt,
4064         * src/pic16/genarith.c (pic16_genPlus): added an assert(0) line to
4065         catch a probable future bug,
4066         * src/pic16/gen.c: aopIdx function commented out,
4067         * (genAssign): commented out old code which used aopIdx,
4068         * src/pic16/glue.c (pic16glue): removed some legacy fragments of
4069         code, added if conditionals to take into account the --use-crt
4070         command line options,
4071         * src/pic16/main.c (pic16_optionsTable): added new command line
4072         options, --use-crt= and --no-crt,
4073         * (_pic16_linkEdit): now the proper crt object is added in the
4074         linker command line except than when --no-crt is specified,
4075         * src/pic16/pcode.c,
4076         * src/pic16/pcode.h: added some structures and functions for a new
4077         optimization scheme to compansate for instruction overhead between
4078         same iCodes, this scheme is currently under development and is not
4079         working in any way,
4080         * src/pic16/gen.c (genAnd): added patch provided by Aaron Collwell
4081         to && operator,
4082         * device/lib/pic16/startup/crt0i.c,
4083         * device/lib/pic16/startup/crt0iz.c: added global char variable
4084         __uflags to force the generation of an idata section
4085
4086 2004-09-12 Bernhard Held <bernhard AT bernhardheld.de>
4087
4088         * doc/Makefile,
4089         * doc/clean.mk: added support for easy creation of sdcc-doc.tar.bz2
4090         * doc/sdccman.lyx: updated sdcc version to 2.4.4
4091
4092 2004-09-10 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
4093
4094         * doc/sdccman.lyx: fixed a problem with my new index entries (thanks
4095         Frieder) and clarified the default code optimization mode
4096
4097 2004-09-10 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
4098
4099         * src/SDCC.lex (doPragma, process_pragma),
4100         * src/SDCCglobl.h (struct optimize): added pragmas "opt_code_speed",
4101         "opt_code_size", and "opt_code_balanced"
4102         * src/SDCCmain.c (optionsTable[], printOptions, scanOptionsTable):
4103         regrouped options by category, added support for category headers
4104         * src/SDCCmain.c (parseCmdLine): added options "--opt-code-speed"
4105         and "--opt-code-size"
4106         * doc/sdccman.lyx: documented these new options and pragmas
4107         * src/hc08/gen.c (AccLsh, AccRsh): take speed/size optimization
4108         preference into account
4109
4110 2004-09-08 Maarten Brock <sourceforge.brock AT dse.nl>
4111
4112         * src/SDCCicode.c (geniCodePostInc, geniCodePreInc, geniCodePostDec,
4113           geniCodePreDec): Fixed bug 904237 by generating a warning
4114         * src/SDCCerr.h,
4115         * src/SDCCerr.c: added warning W_SIZEOF_VOID
4116
4117 2004-09-09 Slade Rich <slade_rich AT users.sourceforge.net>
4118
4119         * src/pic/device.c : When no max ram set validate full memory range.
4120         * src/pic/pcode.c,
4121         * src/pic/pcodepeep.c : Copy C code comments to optimised replacement code.
4122
4123 2004-09-08 Maarten Brock <sourceforge.brock AT dse.nl>
4124
4125         * device/lib/_gptrget.c,
4126         * device/lib/_gptrput.c: updated comment
4127         * device/lib/calloc.c,
4128         * device/lib/free.c,
4129         * device/lib/malloc.c,
4130         * device/lib/realloc.c: added LGPL, made them reentrant-safe
4131         * src/SDCCcse.c (cseBBlock),
4132         * src/SDCCicode.c (printOperand, geniCodeArray),
4133         * src/SDCCicode.h (struct operand): fixed bug 868103
4134         * support/regression/tests/bug-868103.c: added
4135         * src/SDCCast.c (searchLitOp),
4136         * src/SDCCcse.h (struct cseDef),
4137         * src/SDCCglue.c (printIvalArray, spacesToUnderscores),
4138         * src/SDCCicode.h (struct operand),
4139         * src/SDCCsymt.h (struct sym_link),
4140         * src/avr/gen.c (hasInc),
4141         * src/ds390/gen.c (hasInc),
4142         * src/hc08/gen.c (genPlusIncr, hasInc),
4143         * src/mcs51/gen.c (hasInc),
4144         * src/pic16/glue.c (pic16_printIvalChar),
4145         * src/pic16/ralloc.c (regWithIdx),
4146         * src/xa51/gen.c (hasInc) : removed warnings
4147         * src/SDCCast.c (createBlock): added comment ???
4148         * src/hc08/ralloc.c: updated comments
4149
4150 2004-09-07 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
4151
4152         * doc/sdccman.lyx: updated section on switch statements, added
4153         section about semaphore locking
4154         * doc/Makefile: added option -info for latex2html
4155         * device/lib/_gptrget.c,
4156         * device/lib/_gptrput.c: __XPAGE instead of P2 in outcommented code
4157
4158 2004-09-06 Slade Rich <slade_rich AT users.sourceforge.net>
4159
4160         * src/pic/device.h,
4161         * src/pic/device.c,
4162         * src/pic/port.c : Changed PIC14 code to not set bit RP1 when
4163          maxram is less than 0x100.
4164
4165 2004-09-06 Slade Rich <slade_rich AT users.sourceforge.net>
4166
4167         * Bug fixes for PIC14 - signed RSHIFT problem. Patch supplied by Allen(agschrum).
4168
4169 2004-09-06 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
4170
4171         * src/port.h,
4172         * src/mcs51/main.c,
4173         * src/ds390/main.c,
4174         * src/z80/main.c,
4175         * src/hc08/main.c,
4176         * src/pic/main.c,
4177         * src/pic16/main.c,
4178         * src/avr/main.c,
4179         * src/xa51/main.c
4180         * src/SDCCicode.c (geniCodeJumpTable): Better logic to determine if a
4181         a jump table is the best form for a switch statement, including
4182         automatic insertion of missing cases to make the case range
4183         continuous. Developed in collaboration with Frieder Ferlemann.
4184
4185 2004-09-02 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
4186
4187         * src/hc08/ralloc.c (canDefAccResult): multi-byte shift is unsafe for
4188         accumulator result if it needs sign extension
4189
4190 2004-09-02 Maarten Brock <sourceforge.brock AT dse.nl>
4191
4192         * src/hc08/ralloc.c (canUseAccOperand): fixed comparison bug
4193
4194 2004-09-02 Maarten Brock <sourceforge.brock AT dse.nl>
4195
4196         * device/lib/gbz80/printf.c,
4197         * device/lib/z80/printf.c: removed define for NULL
4198
4199 2004-09-02 Maarten Brock <sourceforge.brock AT dse.nl>
4200
4201         * as/xa51/xa_link.c,
4202         * device/examples/ds390/ow390/ad26.c,
4203         * device/examples/ds390/ow390/cnt1d.c,
4204         * device/examples/ds390/ow390/counter.c,
4205         * device/examples/ds390/ow390/ds2480.h,
4206         * device/examples/ds390/ow390/ds2480ut.c,
4207         * device/examples/ds390/ow390/findtype.c,
4208         * device/examples/ds390/ow390/gethumd.c,
4209         * device/examples/ds390/ow390/owllu.c,
4210         * device/examples/ds390/ow390/ownetu.c,
4211         * device/examples/ds390/ow390/swt12.c,
4212         * device/examples/ds390/ow390/swtloop.c,
4213         * device/examples/ds390/ow390/temp.c,
4214         * device/examples/ds390/ow390/temp10.c,
4215         * device/examples/ds390/ow390/thermo21.c,
4216         * device/examples/ds390/ow390/tinilnk.c,
4217         * device/examples/ds390/ow390/tstfind.c,
4218         * device/examples/serialcomm/windows/serial.cpp,
4219         * device/examples/serialcomm/windows/test_serialcomm.cpp,
4220         * device/include/reg51.h: fixed line endings for cvs
4221
4222 2004-09-02 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
4223
4224         * src/hc08/ralloc.c (canDefAccResult, canUseAccOperand,
4225         packRegsForAccUse, packRegisters): new accumulator register
4226         packing algorithm
4227         * support/regression/ports/hc08/support.c (_putchar): suppress
4228         warning of unused variable
4229         * src/SDCCicode.c: added SWAP entry to codeTable
4230
4231 2004-09-01 Maarten Brock <sourceforge.brock AT dse.nl>
4232
4233         * device/lib/sprintf.c: forgot to add this file before previous commit
4234
4235 2004-09-01 Vangelis Rokas <vrokas AT otenet.gr>
4236
4237         * src/pic16/gen.c (genPackBits): added operand right in function
4238         parameters, load result directly if p_type is POINTER (that is
4239         called by genNearPointerSet)
4240         * (genUnPackBits): added operand left in function parameters,
4241         * (genNearPointerGet, genNearPointerSet): prevent the loading of
4242         FSR0 if accessing bitfields,
4243
4244 2004-08-31 Maarten Brock <sourceforge.brock AT dse.nl>
4245
4246         * device/include/stdio.h: added NULL, size_t, typedef pfn_outputchar,
4247           _print_format; updated printf, sprintf, vsprintf
4248         * device/include/asm/default/features.h: corrected comment/define
4249         * device/lib/Makefile.in: added sprintf.c
4250         * device/lib/libsdcc.lib: added sprintf module
4251         * device/lib/printf_large.c,
4252         * device/lib/vprintf.c,
4253         * device/lib/sprintf.c: totally refactored printf_large and vprintf
4254           into these 3 files
4255         * support/regression/Makefile: changed ALL_PORTS into a usefull default
4256         * support/regression/ports/mcs51-stack-auto/spec.mk: added sprintf
4257         * support/regression/tests/bug-927659.c: removed dummy putchar, enabled
4258           hc08 test
4259         * support/regression/tests/zeropad.c: define idata as data for hc08
4260
4261 2004-08-31 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
4262
4263         * src/SDCCpeeph.c (labelIsReturnOnly): support hc08 rts opcode also
4264         * src/SDCCpeeph.c (buildLabelRefCountHash): assume function entry point
4265         labels are referenced at least once (even if a reference is not found)
4266         * src/hc08/gen.c (emitcode): set isComment flag for comments
4267         * src/hc08/peeph.def: added rules 5a..5f (optimize redundant immediate
4268         loads), rules 6a..6b (optimize jumps to return)
4269
4270 2004-08-30 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
4271
4272         * device/lib/acosf.c (acosf),
4273         * device/lib/asinf.c (asinf),
4274         * device/lib/atanf.c (atanf),
4275         * device/lib/ceilf.c (ceilf),
4276         * device/lib/cosf.c (cosf),
4277         * device/lib/coshf.c (coshf),
4278         * device/lib/cotf.c (cotf),
4279         * device/lib/fabsf.c (fabsf),
4280         * device/lib/floorf.c (floorf),
4281         * device/lib/log10f.c (log10f),
4282         * device/lib/logf.c (logf),
4283         * device/lib/sinf.c (sinf),
4284         * device/lib/sinhf.c (sinhf),
4285         * device/lib/sqrtf.c (sqrtf),
4286         * device/lib/tanf.c (tanf),
4287         * device/lib/tanhf.c (tanhf),
4288         * device/include/math.h: defined _FLOAT_FUNC_REENTRANT macro and
4289         replaced all instances of "reentrant" in the library functions
4290         defined in math.h with this macro.
4291         * support/regression/tests/float_trans.c: reenabled test for hc08
4292
4293 2004-08-30 Bernhard Held <bernhard AT bernhardheld.de>
4294
4295         * device/lib/pic16/Makefile.common.in: added MODELFLAGS again, it was
4296         erroneously deleted
4297
4298 2004-08-30 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
4299
4300         * src/hc08/gen.c (loadRegFromAop): better use of clra & clrx
4301         * src/hc08/gen.c (genAnd, genOr): fixed bug with conditional when
4302         multi-byte volatile operands are used
4303         * src/hc08/gen.c (shiftRLong): fixed bug with wrong rotate direction
4304         * src/hc08/main.c (_hc08_genAssemblerPreamble): moved the built-in
4305         initialization to area GSINIT0 so that it would always precede
4306         any static initializers in GSINIT
4307         * support/regression/tests/zeropad.c: fixed idata define for hc08
4308         * support/regression/tests/bug-927659.c,
4309         * support/regression/tests/float_trans.c: disabled tests for hc08
4310         pending missing library routines
4311         * .version: increased version number to 2.4.4 - hc08 port now passes
4312         regression tests
4313
4314
4315 2004-08-29 Bernhard Held <bernhard AT bernhardheld.de>
4316
4317         * device/lib/pic16/Makefile.common.in: added $(MM) to fix `make clean`
4318         * Makefile.common.in,
4319         * as/Makefile,
4320         * as/hc08/Makefile.in,
4321         * as/mcs51/Makefile.in,
4322         * as/z80/Makefile.in,
4323         * debugger/mcs51/Makefile.in,
4324         * device/include/Makefile.in,
4325         * device/lib/Makefile.in,
4326         * doc/Makefile,
4327         * link/Makefile,
4328         * link/z80/Makefile.in,
4329         * packihx/Makefile.in,
4330         * sim/ucsim/main_in.mk,
4331         * sim/ucsim/avr.src/Makefile.in,
4332         * sim/ucsim/doc/Makefile.in,
4333         * sim/ucsim/gui.src/serio.src/Makefile.in,
4334         * sim/ucsim/hc08.src/Makefile.in,
4335         * sim/ucsim/s51.src/Makefile.in,
4336         * sim/ucsim/xa.src/Makefile.in,
4337         * sim/ucsim/z80.src/Makefile.in,
4338         * src/Makefile.in,
4339         * support/cpp2/Makefile.in,
4340         * support/librarian/Makefile,
4341         * support/makebin/Makefile: added DESTDIR to the install path proposed
4342         by "Maciej 'Agaran' Pijanka" <agaran AT pld-linux.org>
4343         * doc/sdccman.lyx: added DESTDIR documentation
4344
4345 2004-08-29 Vangelis Rokas (vrokas AT otenet.gr>
4346
4347         * src/pic16/gen.c (genFunction, genEndFunction): fixed return
4348         instruction for interrupt handlers, use fast returns when returning
4349         from high priority interrupts
4350
4351 2004-08-29 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
4352
4353         * src/hc08/gen.c (genAnd, genOr, transferAopAop, rmwWithAop): optimized
4354         code generation
4355         * src/hc08/gen.c (genrshFour, genCpl): fixed bugs
4356         * src/hc08/gen.c (genMultOneByte, genDivOneByte, genModOneByte): fixed
4357         bugs, ported much of Bernhard's code from mcs51
4358         * src/mcs51/gen.c (genSend),
4359         * src/hc08/gen.c (genSend): fixed bug with lost SEND iCodes if more
4360         than one when calling a reentrant function
4361         * device/lib/_mullong.c: defined an alternate struct layout for big
4362         endian ports (hc08)
4363
4364 2004-08-28 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
4365
4366         * src/hc08/gen.c (shiftL2Left2Result): fix for bug-500536 regression
4367         test
4368
4369 2004-08-28 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
4370
4371         * src/SDCCsymt.c (processFuncArgs): make sure parameter types
4372         are sane and complete before asking the port its prefered parameter
4373         passing method (fixes bug #1017633)
4374         * device/lib/hc08/_ret.c: added "data" storage class to _ret2
4375         and _ret3
4376
4377 2004-08-27 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
4378
4379         * src/hc08/gen.c (genPackBitsImmed, genUnpackBitsImmed): fix offset
4380         problem in bitfields >= 8 bits.
4381
4382 2004-08-27 Maarten Brock <sourceforge.brock AT dse.nl>
4383
4384         * src/SDCCsymt.c: undid changes that were not meant to be committed
4385
4386 2004-08-27 Maarten Brock <sourceforge.brock AT dse.nl>
4387
4388         * support/regression/ports/hc08spec.mk: REENTRANT must be reentrant
4389
4390 2004-08-27 Maarten Brock <sourceforge.brock AT dse.nl>
4391
4392         * src/hc08/gen.c (genUminusFloat): fixed bug where only 3 bytes were
4393           copied and wrong bit got inverted
4394
4395 2004-08-27 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
4396
4397         * src/hc08/gen.c (genPointerSet, genFarPointerSet): moved code from
4398         genFarPointerSet into genPointerSet; eliminated genFarPointerSet
4399         * src/hc08/gen.c (genPointerGet, genFarPointerGet): moved code from
4400         genFarPointerGet into genPointerGet; eliminated genFarPointerGet
4401         * src/hc08/gen.c (genPackBitsImmed): generate optimized code for
4402         assignments to bitfields at known addresses
4403         * src/hc08/gen.c (genUnpackBitsImmed): generate optimized code for
4404         reads from bitfields at known addresses
4405         * src/hc08/ralloc.c (packRegisters),
4406         * src/hc08/gen.c (genPointerGet, genUnpackBits, genUnpackBitsImmed,
4407         genhc08Code): optimize pointer get values used as conditionals
4408         * src/hc08/peeph.def: added rules 2e & 2f to optimize bit test
4409         and branch
4410
4411 2004-08-24 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
4412
4413         * src/mcs51/gen.c (genPointerGet, genNearPointerGet, genPagedPointerGet,
4414         genFarPointerGet, genCodePointerGet, genGenPointerGet, genUnpackBits),
4415         * src/mcs51/ralloc.c (packRegisters): optimize pointer get values used
4416         as conditionals
4417
4418 2004-08-22 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
4419
4420         * src/mcs51/peeph.def: peepholes 248.i-m for xdata bitfields
4421
4422 2004-08-21 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
4423
4424         * src/mcs51/ralloc.c (packRegsForOneuse): fixed bug #1012650 and some
4425         related problems
4426
4427 2004-08-21 Bernhard Held <bernhard AT bernhardheld.de>
4428
4429         * sim/ucsim/cmd.src/Makefile.in: run lex only if $(PRJDIR)/devel exists
4430
4431 2004-08-18 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
4432
4433         * src/z80/ralloc.c (packRegsForAssign): ported some bug fixes from the
4434         mcs51 port
4435
4436 2004-08-16 Slade Rich <slade_rich AT users.sourceforge.net>
4437
4438         * src/pic/gen.c: Restored fn genRet as previous fix was incorrect.
4439
4440 2004-08-14 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
4441
4442         * src/mcs51/gen.c (genJumpTab): jumptables for more than 16 switch
4443         cases use more compact code.
4444
4445 2004-08-13 Slade Rich <slade_rich AT users.sourceforge.net>
4446
4447         * src/pic/gen.c: Fixed problem with fn returning a variable bigger than a char.
4448
4449 2004-08-12 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
4450
4451         * src/SDCClrange.c (findPrevUse): fixed bug #1007371
4452
4453 2004-08-12 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
4454
4455         * src/SDCCsymt.h,
4456         * src/SDCCsymt.c (changePointer, checkDecl, addSymChain): changed
4457         parameter of changePointer() from symbol* to sym_link*
4458         * src/SDCCast.c (decorateType): call changePointer() for CAST op
4459         * src/SDCCsymt.c (compareType): void* type is castable to other
4460         pointers, but not necesarily an exact match.
4461         * src/SDCCicode.c (geniCodeCast): allow void* casting here since it
4462         is no longer blindly treated as an exact match.
4463         * src/SDCCval.c (valCastLiteral): treat missing type as cast to void
4464
4465 2004-08-12 Slade Rich <slade_rich AT users.sourceforge.net>
4466
4467         * src/pic/glue.c: Added struct initialisation fn printIvalStruct.
4468
4469 2004-08-11 Slade Rich <slade_rich AT users.sourceforge.net>
4470
4471         * src/pic/gen.c,
4472         * src/pic/pcode.c,
4473         * src/pic/ralloc.h,
4474         * src/pic/ralloc.c: Printing rIdx on internal verbose debug.
4475
4476 2004-08-10 Slade Rich <slade_rich AT users.sourceforge.net>
4477
4478         * src/pic/device.c,
4479         * src/pic/device.h,
4480         * src/pic/device.c: Will no longer exit if #pragma maxram has not been defined.
4481
4482 2004-08-06 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
4483
4484         * src/mcs51/gen.c (emitcode): fixed bug #992819
4485
4486 2004-08-05 Maarten Brock <sourceforge.brock AT dse.nl>
4487
4488         * src/pic/ralloc.c (deassignLR): allthough pic port is buggy already,
4489           there's no need to make it worse
4490
4491 2004-08-05 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
4492
4493         * src/mcs51/ralloc.c (deassignLR),
4494         * src/ds390/ralloc.c (deassignLR),
4495         * src/hc08/ralloc.c (deassignLR),
4496         * src/z80/ralloc.c (deassignLR),
4497         * src/pic/ralloc.c (deassignLR),
4498         * src/pic16/ralloc.c (deassignLR),
4499         * src/avr/ralloc.c (deassignLR),
4500         * src/SDCClrange.c (findRecursiveSucc, findRecursivePred, findPrevUse,
4501         rlivePoint): fixed another part of bug #971834
4502
4503 2004-08-04 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
4504
4505         * src/z80/main.c: enabled "critical" keyword
4506         * src/z80/mappings.i,
4507         * src/z80/gen.c (genFunction, genEndFunction): support for interrupt
4508         functions (fixes bug #979646)
4509         * doc/sdccman.lyx: added a subsection explaining z80 interrupt support
4510
4511 2004-08-04 Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
4512
4513         * src/mcs51/gen.c (genInline): Add \n for labels, not DOS/WIN dirs
4514           such as c:\mydir.
4515
4516 2004-08-03 Maarten Brock <sourceforge.brock AT dse.nl>
4517
4518         * src/SDCCloop.c (loopInvariants): fixed bug 983545, hope this
4519           doesn't disable too much optimizations
4520
4521 2004-08-02 Slade Rich <slade_rich AT users.sourceforge.net>
4522
4523         * src/pic/glue.c Disabled "WARNING: function 'main' undefined" when -S option is used.
4524
4525 2004-08-02 Maarten Brock <sourceforge.brock AT dse.nl>
4526
4527         * src/SDCClrange.c (rlivePoint): fixed bug 988568, thanks to anonymous
4528
4529 2004-08-02 Slade Rich <slade_rich AT users.sourceforge.net>
4530
4531         * src/pic/gen.c tidied up tabs
4532         * src/pic/genarith.c tidied up tabs and fixed bug with literal multiple where same register was used for hi and low byte
4533         * src/pic/main.c tidied up tabs
4534         * src/pic/pcode.c tidied up tabs and disabled verbose code generation
4535         * src/pic/pcoderegs.c tidied up tabs
4536         * src/pic/ralloc.c tidied up tabs
4537
4538 2004-07-30 Vangelis Rokas <vrokas AT otenet.gr>
4539
4540         * src/SDCCmem.c (allocGlobal): don't turn S_REGISTER storage class
4541         to S_FIXED for pic16 port and when symbol is not in level 0,
4542         allocate for S_REGISTER storage class and pic16 port, too,
4543         * src/pic16/device.h: prototype for checkSym,
4544         * src/pic16/device.c (pic16_dump_access, checkSym): NEW,
4545         * (pic16_assignConfigWordValue): test the value and the mask to
4546         validate that the value is suitable for the configuration word,
4547         * src/pic16/glue.c (pic16_printIvalFuncPtr): use 'externs' to
4548         collect extern declared symbols, don't emit symbol twice, check
4549         first if symbol is in publics set first,
4550         * src/pic16/main.c (_pic16_keywords[]): added keyword 'register',
4551         * added command line '--fstack' which enables an experimental
4552         feature for stack access, too buggy to be used yet...
4553         * src/pic16/ralloc.c (pic16_accessregWithName): NEW,
4554         * (pic16_allocDirReg): when register has storage class S_REGISTER
4555         allocate in pic16_dynAccessRegs,
4556         * device/include/pic16/pic18f????.h: modified configuration word
4557         naming convention, words started as CONFIG0H but should be CONFIG1H
4558
4559 2004-07-29 Maarten Brock <sourceforge.brock AT dse.nl>
4560
4561         * device/include/mcs51reg.h: fixed bug 970993
4562
4563 2004-07-27 Maarten Brock <sourceforge.brock AT dse.nl>
4564
4565         * added lib/calloc.c, lib/free.c, lib/realloc.c, include/stddef.h
4566         * updated lib/malloc.c, lib/libsdcc.lib, lib/Makefile.in, include/malloc.h
4567         * src/SDCC.lex (doPragma): added pragma disable_warning <nnn>
4568         * src/SDCCmain.c (parseCmdLine): added option --disable-warning <nnn>
4569         * src/ds390/gen.c (genPlusIncr): fixed bug when incrementing generic pointers
4570         * support/Util/SDCCerr.c (vwerror): suppress disabled warnings and output
4571           error/warning numbers,
4572           added function setWarningDisabled()
4573         * support/Util/SDCCerr.h: added setWarningDisabled() and MAX_ERROR_WARNING
4574         * support/regression/ports/mcs51-stack-auto/spec.mk: added dependencies
4575           _memcmp.c _memmove.c calloc.c realloc.c free.c
4576         * support/regression/tests/malloc.c: added tests for new functionality
4577         * support/regression/tests/zeropad.c: added tests for truncated initializers
4578           and initialized char arrays starting with '\x0'
4579         * src/mcs51/peeph.def: fixed regression, added peephole 177.f
4580
4581 2004-07-26 Bernhard Held <bernhard AT bernhardheld.de>
4582
4583         * support/valdiag/tests/overflow.c: fixed warning on (1 >> 40)
4584
4585 2004-07-26 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
4586
4587         * doc/sdccman.lyx: updated example in section "Absolute Addressing"
4588         * src/mcs51/peeph.def: added contributed fix for "bug" #995347 as
4589         peephole 177.e. Thanks to anonymous
4590
4591 2004-07-25 Vangelis Rokas <vrokas AT otenet.gr>
4592
4593         * src/pic16/glue.c (pic16_printIvalFuncPtr): when an extern
4594         function isn't used in the source but referenced as a
4595         variable initializer then declare it as extern in .asm file
4596
4597 2004-07-24 Vangelis Rokas <vrokas AT otenet.gr>
4598
4599         * .version: increased version number to 2.4.3
4600
4601         Adding version extension according to ChangeLog CVS revision
4602         * src/Makefile.in (target all): added dependency 'version.h'
4603         * (rule version.h): added rule to create version.h from ChangeLog,
4604         * (rule dep): added dependency version.h,
4605         * src/version.awk: AWK script to create version.h
4606         * src/SDCCdwarf2.c (dwWriteModule),
4607         * src/SDCCglue.c (initialComments),
4608         * src/SDCCmain.c (printVersionInfo): modified to write after
4609         version string the version extension number,
4610         * src/SDCCutil.c: included "version.h"
4611         * (getBuildNumber): NEW, returns SDCC's ChangeLog minor revision
4612         number,
4613         * src/SDCCutil.h: added prototype for getBuildNumber
4614
4615         * src/SDCCmain.c (parseCmdLine): when sOpt is 'I' add rest in
4616         includeDirsSet, too,
4617         * src/SDCCsymt.c (checkSClass): don't emit error when a variable,
4618         const char [] is found in function prototype...
4619
4620         * src/pic16/genarith.c (pic16_genUMult8XLit_8): optimization to omit
4621         moving to WREG with source is already in WREG,
4622         * src/pic16/gen.h: added AOP_FSR0 and AOP_FSR2 in enum,
4623         * src/pic16/gen.c (getFreePtr): updated to look for FSR0 and FSR2,
4624         * (aopForSym): stack'ed symbols are partially supported, added
4625         if-clause to support symbols in FARSPACE,
4626         * (sameRegs): added test for AOP_ACC to see if registers are same,
4627         * (pic16_freeAsmop): added case for AOP_FSR0 and AOP_FSR2,
4628         * (pic16_aopGet): added case for AOP_FSR0 and AOP_FSR2,
4629         * (pic16_popRegFromString): will not allocate a new register if it
4630         doesn't find one by name, bug may have introduced...
4631         * (pic16_popGet): added case for AOP_FSR0 and AOP_FSR2,
4632         * (genIpush): revived to use pic16 port's stack,
4633         * (genAddrOf): added incomplete case for stack'ed operand,
4634         * (genCast): optimized a pair of MOVFW,MOVWF to MOVFF
4635         * src/pic16/genutils.c (pic16_genNot): almot new vesrion for NOT,
4636         can handle multibyte operands,
4637         * src/pic16/glue.c (pic16_printIval*): some debug info added,
4638         * (pic16initialComments): added message for MPLAB compatibility
4639         mode enabled,
4640         * src/pic16/main.h: prototype for pic16_mplab_comp,
4641         * src/pic16/main.c (pic16_optionsTable): new option --mplab-comp,
4642         which enabled MPLAB compatibility mode (i.e. no #LINE/#FILE, BANKED)
4643         * (_pic16_linkEdit): NEW, handles link stage, transferred here
4644         because of increased complexity of procedure,
4645         * (_process_pragma): stack pragma changed to format 'stack pos len',
4646         emit symbol '_stack_end' to conform with gplink,
4647         * src/pic16/pcode.c (pic16_newpCodeOpBit): using pic16_regWithName
4648         to search for register,
4649         * (pic16_get_op, pic16_get_op2): added case for PO_W, PO_WREG and
4650         PO_GPR_REGISTER,
4651         * (pic16_pCode2str): when in MPLAB compatibility mode, comment out
4652         #LINE directives and replace 'B' with 'BANKED' in instruction opcodes
4653         * (pic16_getRegFromInstruction, pic16_getRegFromInstruction2): added
4654         case for PO_GPR_REGISTER,
4655         * (pic16_AnalyzeBanking): removed the old message for inc2h.pl, past
4656         dies, the new era is ahead !...
4657         * src/pic16/ralloc.c: added hash reposits pic16_dynAllocRegNames and
4658         pic16_dynInternalRegs,
4659         * (pic16_allocregWithName, pic16_procregWithName, pic16_regWithname): NEW,
4660         * (pic16_allocDirReg): minor optimizations and bug fixes,
4661         * (pic16_allocWithIdx): when searching pic16_dynProcessorRegs use fixed,
4662
4663         * device/lib/pic16/startup/crt0*.c: extern definition of stack_end,
4664         load stack and frame pointer with address of 'stack_end' symbol
4665
4666 2004-07-23 Vangelis Rokas <vrokas AT otenet.gr>
4667
4668         * src/pic16/glue.c (pic16emitStaticSeg): fixed bug with files
4669         without source code but only variable initializers
4670
4671 2004-07-20 Vangelis Rokas <vrokas AT otenet.gr>
4672
4673         * src/pic16/glue.c (pic16emitRegularMap): unused functions marked as
4674         external are not declared as extern to reduce overhead while linking
4675
4676 2004-07-20 Maarten Brock <sourceforge.brock AT dse.nl>
4677
4678         * src/SDCCast.c (decorateType): removed buggy fix for bug #979599
4679
4680 2004-07-11 Maarten Brock <sourceforge.brock AT dse.nl>
4681
4682         * src/SDCCglue.c (printIvalArray): fixed bug #984229, thanks to Phuah
4683           Yee Keat for the patch
4684         * src/SDCCast.c (decorateType): fixed bug #979599
4685         * src/ds390/gen.h: removed local fReturnSizeDS390
4686         * src/ds390/gen.c: made fReturnSizeDS390 signed short to remove a warning
4687         * src/ds390/gen.c (genAnd, genOr, genXor),
4688         * src/mcs51/gen.c (genAnd, genOr, genXor): generate better optimized code
4689
4690 2004-07-04 Vangelis Rokas <vrokas AT otenet.gr>
4691
4692         * src/SDCCmain.c (linkEdit): modifications only for pic16 port,
4693         add relFilesSet to $3, manipulate $2 to handle linking of object
4694         files without source files in command line,
4695         * device/include/pic16 (all headers): added ID location macros,
4696         * src/pic16/device.c (struct PIC16_device Pics16[]): added field
4697         entries for ID location bytes,
4698         * (pic16_assignIdByteValue): NEW,
4699         * src/pic16/device.h: new structures idRegInfo_t and idBytesInfo_t,
4700         added field dumpcalltree to pic16_options_t,
4701         * src/pic16/gen.c (genCmp): fixed bug case so a temporary register
4702         is used instead of pic16_Gstack_base_addr, check if (ifx) before
4703         emitting rFalseIfx label after check_carry label,
4704         * src/pic16/glue.c (PIC16_IS_IDLOC_ADDRESS, PIC16_IS_HWREG_ADDRESS,
4705         pic16_emitDIRegs), NEW
4706         * (pic16glue): dump .calltree file when option --calltree found,
4707         * src/pic16/main.c (OPTION _pic16_optionsTable): new option --calltree
4708         * (_pic16_genAssemblerPreamble): emit ID locations after
4709         configuration registers,
4710         * (pic16_linkCmd): modifications of the link command,
4711         * src/pic16/pcode.c (pic16_pciMOVFF): PCC_REGISTER replaces PCC_REGISTER2
4712         * (pic16_pCodeInitRegisters): don't init stack registers,
4713         * (pic16_findPrevInstruction): fixed bug,
4714         * (pic16_getRegFromInstruction, pic16_getRegFromInstruction2): fixed
4715         bug with immediate registers,
4716         * (buildCallTree): traces stack push and pop,
4717         * (pct2): dump also stack usage for each function,
4718         * src/pic16/ralloc.c (dynrIdx): registers names start from 0x00
4719         * (pic16_allocDirReg): various modifications,
4720         * (pic16_typeRegWithIdx): when searching pic16_dynProcessorRegs set
4721         fixed to 1,
4722
4723 2004-07-02 Vangelis Rokas <vrokas AT otenet.gr>
4724
4725         * src/pic16/pcode.c: removed buggy double colon
4726
4727 2004-07-01 Borut Razem <borut.razem AT siol.net>
4728
4729         * support/scripts/sdcc.nsi: added include/pic16 to setup
4730
4731 2004-06-30 Vangelis Rokas <vrokas AT otenet.gr>
4732
4733         * device/lib/Makefile.in: fixed bug in target objects-pic16,
4734         * device/lib/pic16/Makefile: prefixed with dash (-) command under
4735         target 'clean',
4736         * doc/sdccman.lyx: changed version to 2.4.2 and added some port
4737         specific command line arguments. Also added sample lkr script
4738         for placing a variable at a specific memory bank.
4739         * src/pic16/device.c (pic16_dump_gsection): NEW, to dump variables
4740         at a specific memory bank,
4741         * (pic16_dump_isection): fixed bug which caused string literals to
4742         be omitted when dumping idata section,
4743         * (pic16_groupRegistersInSection): added code to handle registers
4744         in specific memory banks,
4745         * src/pic16/gen.c: labelOffset is prefixed with pic16_ and made
4746         public, all references are renamed too,
4747         * (pic16_aopGet): removed switch cases for AOP_R0,AOP_R1,AOP_DPTR,
4748         AOP_DPTR2,
4749         * (pic16_storeForReturn): added case to handle when dest is WREG,
4750         * src/pic16/genarith.c (pic16_pCodeOpSubType): NEW,
4751         * src/pic16/glue.c (pic16emitRegularMap): when adding a register in
4752         pic16_rel_udata, check to see if that register is marked as being
4753         a member of a specific memory bank,
4754         * (pic16_printIvalCharPtr): added code to add string literals either
4755         to code or the idata sections,
4756         * src/pic16/main.c (_process_pragma): added \n to WHITE constant,
4757         also accept the 'udata' pragma,
4758         * src/pic16/main.h: new structure types sectName and sectSym
4759         * src/pic16/pcode.c: added new pCodeInstruction entry for BANKSEL
4760         * (newpCodeOpBit): added PIC_OPTYPE subt in function prototype,
4761         * (pic16_findPrevInstruction): fixed, it returned nothing,
4762         * (insertBankSwitch): fixed to emit banksel/skip and skip/banksel
4763         instruction combinations,
4764         * (pic16_FixRegisterBanking): heavily reorganised,
4765         * (pic16_AnalyzeBanking): if generating banksel directives is
4766         disabled, then don't call FixRegisterBanking at all,
4767         * src/pic16/ralloc.c (bitEQUs, aliasEQUs, allDefsOutOfRange):
4768         completely removed,
4769         * (pic16_writeUsedRegisters): added call to pic16_dump_gsection
4770
4771 2004-06-29 Bernhard Held <bernhard AT bernhardheld.de>
4772
4773         * src/SDCCglue.c (printChar): fixed bug #973350, patch provided by
4774         Phuah Yee Keat <yk.phuah AT nestac.com>
4775
4776 2004-06-28 Vangelis Rokas <vrokas AT otenet.gr>
4777
4778         * src/pic16/glue.c (pic16createInterruptVect): function now emits
4779         correctly the IVT even if it is relocated to some other location
4780
4781 2004-06-28 Vangelis Rokas <vrokas AT otenet.gr>
4782
4783         * device/include/pic16/pic18fregs.h: added case for pic18f2220.h
4784         * device/include/pic16/pic18f2220.h: NEW,
4785         * device/lib/pic16/libdev/pic18f2220.c: NEW,
4786         * device/lib/pic16/libdev/Makefile: added 18f2220 in DEVS,
4787         * src/pic16/device.c (struct Pics16): added info for 18f2220,
4788         * src/pic16/device.h (struct pic16_options): added ivt_loc and
4789         nodefaultlibs, ivt_loc is the location of the interrupt vector
4790         table, and nodefaultlibs signs that default libraries should not be
4791         linked in link stage,
4792         * src/pic16/gen.c (genFunction): relocate interrupt vector functions
4793         according to --ivt-loc argument,
4794         * src/pic16/main.c (_process_pragma): emit '_stack' as public symbol
4795         when pragma stack is found,
4796
4797 2004-06-25 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
4798
4799         * src/mcs51/peeph.def: added peepholes 182.d (return 0.0),
4800         256 (range check), 257 (do while), 258.a-f (bit banging
4801         f.e. on 3-wire SPI bus)
4802
4803 2004-06-21 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
4804
4805         * src/SDCClrange.c (findNextUseSym): fixed a live range bug with
4806         variables used exclusively within a loop
4807
4808 2004-06-21 Bernhard Held <bernhard AT bernhardheld.de>
4809
4810         * src/mcs51/gen.c (genCpl): quick fix for bug #974835
4811
4812 2004-06-21 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
4813
4814         * src/SDCClrange.c (computeClash): fixed bug #971834
4815
4816 2004-06-20 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
4817
4818         * src/mcs51/gen.c (genCmp): fixed bug #975903
4819         * src/hc08/gen.c (operandsEqu),
4820         * src/ds390/gen.c (operandsEqu),
4821         * src/z80/gen.c (operandsEqu),
4822         * src/pic/gen.c (operandsEqu),
4823         * src/pic16/gen.c (operandsEqu),
4824         * src/mcs51/gen.c (operandsEqu): fixed bug #976283
4825         * src/SDCCmain.c (parseCmdLine): report --unknown-option only once
4826
4827 2004-06-15 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
4828
4829         * src/SDCCcse.c (cseBBlock): fixed bug #966963
4830
4831 2004-06-12 Vangelis Rokas <vrokas AT otenet.gr>
4832
4833         * src/pic16/gen.c (genPointerGet): added E_INTERNAL_ERROR for
4834         default case in switch statement,
4835         * glue.c (pic16_initPointer): expr is initialised via decoarteType
4836         to eliminate problem with initialisation of pointers, but problem
4837         still exists,
4838         * (pic16_pointerTypeToGPByte): removed, no needed for pic16,
4839         * (emitStaticSegment): removed various lines emitting debug info,
4840         * src/pic16/pcode.c, src/pic16/pcode.h, src/pic16/ralloc.h:
4841         added processor registers for utilizing EEPROM,
4842         * src/pic16/pcode.c (pic16_emitDB): number of DBs emitted is not
4843         configurable and set 8
4844
4845 2004-06-08 Vangelis Rokas <vrokas AT otenet.gr>
4846
4847         * .version: increased version number to 2.4.2,
4848
4849         Cumulative patch for pic16 port
4850         * src/pic16/device.c: changed scheme to dump initial values for
4851         variables in idata segment, all print_idata* functions were removed,
4852         now the pic16_printIval* will be called,
4853         * src/pic16/glue.c: (pic16_initPointer, pic16_pointerTypeToGPByte,
4854         * _pic16_printPointerType, pic16_printPointerType,
4855         * pic16_printGPointerType, pic16_printIvalArray, pic16_printIvalStruct,
4856         * pic16_printIvalBitFields, pic16_printIvalFuncPtr, pic16_printIvalPtr:
4857         NEW, similar to the respective functions in SDCCglue.c,
4858         * src/pic16/pcode.c (pic16_emitDB, pic16_flushDB): reverted to old
4859         way, emitting hex bytes,
4860         * (pic16_emitDS): NEW, emits a string for pointer initialisation,
4861
4862 2004-06-08 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
4863
4864         * src/avr/ralloc.c (serialRegAssign),
4865         * src/xa51/ralloc.c (serialRegAssign),
4866         * src/pic/ralloc.c (serialRegAssign),
4867         * src/pic16/ralloc.c (serialRegAssign),
4868         * src/hc08/ralloc.c (serialRegAssign),
4869         * src/z80/ralloc.c (serialRegAssign),
4870         * src/ds390/ralloc.c (serialRegAssign),
4871         * src/mcs51/ralloc.c (serialRegAssign): fixed bug #964479
4872
4873 2004-06-08 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
4874
4875         * src/SDCCicode.c (geniCodeJumpTable): fixed bug #967601
4876         * src/SDCCpeeph.c (labelIsReturnOnly): fixed bug #966505
4877
4878 2004-06-07 Vangelis Rokas <vrokas AT otenet.gr>
4879
4880         Cumulative patch for pic16 port:
4881         * src/pic16/device.h (typedef PIC16_device) modified fields for
4882         defining microcontrollers,
4883         * src/pic16/device.c: added new info for all devices in Pics16 array,
4884         * src/pic16/gen.c (genPcall): fixed bug that caused the return label
4885         to be optimised out by the pCode optimiser,
4886         * src/pic16/glue.c (pic16emitRegularMap): treat implicit aggragates
4887         specially, bug reported by G.M. Gallant,
4888         * src/pic16/pcode.c (pic16_newpCodeLabelFORCE): NEW, marks a label
4889         as force'd so that cannot be optimised out by pCode optimiser,
4890         * src/pic16/pcode.c,
4891         * src/pic16/pcodepeeph.c,
4892         * src/pic16/pcoderegs.c: many modifications to re-enable peepholes,
4893         they are disabled by default, but can be enabled explicit with
4894         command argument --denable-peeps, for testing,
4895         * device/lib/pic16/startup/Makefile: added --no-peep,--pomit-config-words,
4896         --pomit-ivt in COMPILE_FLAGS
4897
4898 2004-06-06 Maarten Brock <sourceforge.brock AT dse.nl>
4899
4900         * src/pic16/pcode.c (pic16_emitDB): removed double semicolon which fails
4901           compilation on MSVC
4902
4903 2004-06-06 Maarten Brock <sourceforge.brock AT dse.nl>
4904
4905         * device/include/sab80515.h: added sfr P6, changed GPL to LGPL
4906
4907 2004-06-06 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
4908
4909         device/include/sab80515.h: fixed bug #967492, DAPR is defined at adress
4910         0xd8, but the correct adress is 0xda. Thanks to anonymous for reporting
4911
4912 2004-06-06 Vangelis Rokas <vrokas AT otenet.gr>
4913
4914         * src/pic16/device.c (pic16_assignConfigWord): fixed bug that
4915         would only assign 0x300001 register.
4916
4917 2004-06-05 Vangelis Rokas <vrokas AT otenet.gr>
4918
4919         * device/lib/pic16/startup/Makefile: added $(MODELFLAGS)
4920         in COMPILE_FLAGS. Thanks to G. Gallant for report.
4921
4922 2004-06-05 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
4923
4924         * doc/sdccman.lyx: minor changes, mentioned beta vendor support
4925         for ds80c400
4926         * src/mcs51/peeph.def: ran unexpand -a over peeph.def
4927         * src/mcs51/peeph.def: removed obsolete peephole 100.a,
4928         added peephole 254 (left shift), 255 (jump table)
4929
4930 2004-06-04 Vangelis Rokas <vrokas AT otenet.gr>
4931
4932         * device/lib/Makefile.in: removed comment line with model-pic16,
4933         * (target port-specific-objects-pic16): the libraries and objects
4934         are copied to the build directory form the device/lib/pic16/bin
4935         directory
4936
4937         Cumulative patch concerning pic16 port:
4938         * library directory has been re-organized,
4939         * added support for PIC18F1220,
4940         * added headers and library sources for chips 18f1220,18f6520,
4941         18f6620,18f6680,18f6720,18f8520,18f8620,18f8680,18f8720
4942
4943         * configuration registers setting has changed, now each supported
4944         device has a complete description of the registers it uses,
4945         * all initialisations are moved to idata sections, these section
4946         can be absolute or relocatable,
4947         * fixed initialisation of codespace variables,
4948         * fixed warning about PCLATU and gpsim,
4949         * src/pic16/gen.c (genCmp): now can handle partially iCodes with no ifx,
4950         * (genAssign): use table reads when assigning from variables in codespace,
4951         * src/pic16/glue.c (pic16emitStaticSeg): fixed to correctly initialise
4952         char/int variables placed in codespace,
4953         * (pic16_emitConfigRegs): NEW, emits a list with configuration
4954         registers set in .asm file, no need for --pomit-config-words anymore,
4955         * (pic16glue): some 8051 legacy segments are commented out
4956         (to be removed completely),
4957         * added support for alternative assembler and linker with --asm=
4958         and --link= command line arguments,
4959         * peepholes are disabled automatically in the port, no need to
4960         specify on command line,
4961         * port supports natively char/int/long multiplication, but converts
4962         all divisions to support functions,
4963         * main.c: pic16_linkCmd and pic16_asmCmd changed to force output
4964         to the file set in variable $2,
4965         * pcode.c (pic16_emitDB, pic16_flushDB): modified to print printable
4966         strings in ASCII format and not in hex,
4967         * ralloc.c (serialRegAssign): added a triplet of conditional calls
4968         to pic16_allocDirReg for IC_RESULT, IC_LEFT and IC_RIGHT so to
4969         allocate proper register if iCodes aren't temporary,
4970
4971 2004-06-02 Maarten Brock <sourceforge.brock AT dse.nl>
4972
4973         * support/regression/tests/zeropad.c: added TEST_G macro for alpha
4974
4975 2004-06-02 Vangelis Rokas <vrokas AT otenet.gr>
4976
4977         * src/pic16/gen.c (genPcall): warning about gpsim and PCLATU
4978         is commented out
4979
4980 2004-06-01 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
4981
4982         * src/hc08/gen.c (genPointerGetSetOfs): disabled optimization if
4983         computed address is reused
4984         * src/hc08/gen.c (genPackBits): fixed offsets in assignments to
4985         multi-byte bitfields
4986
4987 2004-06-01 Maarten Brock <sourceforge.brock AT dse.nl>
4988
4989         * src/z80/gen.c: (genArrayInit): must check for pointers too
4990
4991 2004-06-01 Maarten Brock <sourceforge.brock AT dse.nl>
4992
4993         * support/regression/tests/zeropad.c: never meant to commit the
4994           nestedstruct test: removed, added check for GCC version
4995
4996 2004-05-31 Maarten Brock <sourceforge.brock AT dse.nl>
4997
4998         * src/SDCCast.c (createIvalArray): fixed bug 770487 SIGSEGV
4999         * src/SDCCglue.c (emitRegularMap): fixed bug 770484 allocation problem
5000         * src/SDCCglue.c (initPointer, printIvalType, printIvalStruct,
5001           printIvalArray, printIvalFuncPtr, printIvalPtr, printIval): fixed
5002           bugs 928906 and 954082 half-empty initializers
5003         * src/SDCCsymt.h,
5004         * src/SDCCsymt.c (getAllocSize): added for above fix
5005         * src/z80/gen.c (genArrayInit): fixed bug 741044
5006         * support/regression/tests/zeropad.c: added tests
5007
5008 2004-05-30 Vangelis Rokas <vrokas AT otenet.gr>
5009
5010         * src/pic16/device.c (pic16_dump_section): corrected bug which
5011         caused some symbols of the libraries to be misplaced
5012
5013 2004-05-28 Vangelis Rokas <vrokas AT otenet.gr>
5014
5015         * src/pic16/glue.c,
5016         * src/pic16/ralloc.h,
5017         * src/pic16/ralloc.cc: prefixed IS_CONFIG_ADDRESS with PIC16_
5018         to fix conflict with pic port
5019
5020 2004-05-28 Vangelis Rokas <vrokas AT otenet.gr>
5021
5022         * src/pic16/glue.c (pic16emitStaticSeg): do not print as publics or
5023         externs configuration variables,
5024         * src/pic16/ralloc.h,
5025         * src/pic16/ralloc.cc: IS_CONFIG_ADDRESS is made public and added
5026         prototype in header, commented out some debug messages
5027
5028 2004-05-26 Vangelis Rokas <vrokas AT otenet.gr>
5029
5030         * src/pic16/glue.c,
5031         * src/pic16/main.c,
5032         * src/pic16/pcode.c: added gpasm directives #FILE/#LINE
5033         for gpasm COFF object generation. Thanks to D. Hawkins for
5034         his patch info
5035
5036 2004-05-25 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
5037
5038         * src/ds390/main.c,
5039         * src/mcs51/main.c: fixed sort order of mnemonics (thanks to Maarten
5040         Brock for spotting this)
5041         * src/ds390/gen.c (genEndFunction),
5042         * src/mcs51/gen.c (genEndFunction): always save psw if function is an
5043         interrupt handler and critical. Disable push/pop optimizations when
5044         peephole optimizations disabled.
5045
5046 2004-05-25 Vangelis Rokas <vrokas AT otenet.gr>
5047
5048         Updated pic16 library sources and headers.
5049         * device/lib/pic16/pic18f*/ ,
5050         * device/include/pic16/*.h: modified to handle structured SFR
5051         definitions
5052
5053 2004-05-25 Vangelis Rokas <vrokas AT otenet.gr>
5054
5055         * src/port.h (PORT structure): added hook initPaths, now each
5056         port can declare its own default search paths,
5057         which can been seen with the --print-search-dirs option,
5058         see pic16 port for example,
5059         * src/SDCCmain.c (setBinPaths, setIncludePaths, setLibPath,
5060         setDataPaths): test to options.printSearchDirs is ifdef'ed out,
5061         * (doPrintSearchDirs): NEW, replaces in a central manner the
5062         printing of search dirs which was split in set*Paths functions,
5063         * (main): added call to port->initPaths and doPrintSearchDirs,
5064         * src/avr/main.c,
5065         * src/ds390/main.c,
5066         * src/hc08/main.c,
5067         * src/izt/i186.c,
5068         * src/izt/tlcs900h.c,
5069         * src/mcs51/main.c,
5070         * src/pic/main.c,
5071         * src/pic16/main.c: modified port structures to reflect addition of
5072         initPaths hook,
5073
5074         * src/pic16/device.c (regCompare): registers are finally sorted by name,
5075         * (pic16_dump_section): for registers in same address reserve memory once,
5076         * src/pic16/device.h (struct PIC16_device): changed variable gen_banksel
5077         to no_banksel,
5078         * src/pic16/genarith.c (pic16_genPlus): added code to handle cases where
5079         result is greater in size than right or left,
5080         * (pic16_genUMult8X8_8): there are some cases where the result can
5081         be 16 bits size, so handle these,
5082         * src/pic16/gen.c: changed some pic16_emitpcomment to DEBUGpic16_emitcode,
5083         * (pic16_outBitC): modified to emit pcodes,
5084         * (pic16_storeForReturn): using is_LitOp to see if operand is literal
5085         or not,
5086         * (genDivOneByte): implemented algorithm to divide 8-bits,
5087         * (genCmp): uncommented goto, but issues still exist,
5088         * (genAnd): fixed a bug with variables >8bits,
5089         * (genPackBits): optimization added that uses BCF/BSF to change a
5090         single bit,
5091         * (genAssign): fixed bug when assigning floating point literals,
5092         * src/pic16/glue.c (pic16glue): added assembler directive 'code' before
5093         __sdcc_gsinit_startup label,
5094         * src/pic16/main.c (_pic16_init): removed search directory
5095         initialisations,
5096         * (_pic16_initPaths): NEW, used to initialise search directories,
5097         * (_hasNativeMulFor): support functions for all except char/int
5098         multiplication, and char division,
5099         * (PIC16_port struct): modified entry for native mul support,
5100         * src/pic16/pcode.c (insertBankSwitch): modified to support the renamed
5101         no_banksel option,
5102         * (buildCallTree): call to register_usage is ifdef'ed out,
5103
5104 2004-05-22 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
5105
5106         * device/include/string.h: applied Stas Sergeev's patch to make this
5107         header file compatible with the preprocessor -Wundef option
5108         * src/SDCCmain.c (main): abort compilation if preprocessor reports
5109         failure (fixes bug #941458)
5110
5111 2004-05-21 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
5112
5113         * src/SDCCopt.c (killDeadCode): fixed bug #907733
5114         * support/Util/SDCCerr.c: reworded E_AUTO_ASSUMED diagnostic to clarify
5115         that the variable, not the function, should be static
5116         * src/SDCCval.c (valCastLiteral): fixed bit initialization from literal
5117         to be consistent with non-literal case
5118
5119 2004-05-19 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
5120
5121         * src/SDCCast.c (isConformingBody): fixed bug #949967
5122         * src/SDCCopt.c (cnvToFcall, cnvToFloatCast, cnvFromFloatCast,
5123         convilong): fixed bug #952086
5124
5125 2004-05-18 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
5126
5127         * src/SDCCmem.c (allocVariables): fixed bug #955321
5128
5129 2004-05-18 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
5130
5131         * src/hc08/main.c (_hc08_genAssemblerEnd),
5132         * src/SDCCdwarf2.c (dwOpenFile, dwCloseFile, dwWriteFunction,
5133         dwWriteModule, dwWriteCLine, dwWriteALine, dwarf2FinalizeFile):
5134         completely eliminated the use of a temporary file
5135         * src/SDCCdwarf2.c (dwWriteAttr): fixed bug with location list offset
5136         when more than one file linked
5137         * src/SDCCloop.c (pointerAssigned): fixed bug #954163
5138
5139 2004-05-17 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
5140
5141         * src/SDCCval.c (valForArray): applied Maarten Brock's patch #947682
5142         which fixes bug #543481
5143         * support/regression/tests/bug-751703.c: fixed comments left from a
5144         cut and paste error
5145         * src/SDCCdwarf2.c (dwCloseFile): don't explicitly close a temp file
5146         * src/SDCCdwarf2.c (dwTagFromType): added bitfield support
5147         * src/SDCCdwarf2.c (dwWriteSymbolInternal): handle extern within local
5148         scopes
5149         * src/SDCCdwarf2.c (dwWriteLineNumber): line number deltas are signed
5150         * src/SDCCmain.c (processFile, parseCmdLine): non-alphanumeric chars
5151         are now changed to underscores in moduleName
5152
5153 2004-05-15 Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
5154
5155         * as/mcs51/lkmem.c: better fix for bug #954173
5156
5157 2004-05-15 Maarten Brock <sourceforge.brock AT dse.nl>
5158         committed by Frieder Ferlemann <Frieder.Ferlemann AT web.de>
5159
5160         * device/include/c8051f020.h: newly added SiLabs (Cygnal) header file
5161         * device/include/c8051f000.h,
5162         * device/include/c8051f120.h,
5163         * device/include/c8051f300.h,
5164         * device/include/c8051f310.h,
5165         * device/include/c8051f320.h: updated (added _XPAGE, CAPN, CAPP,
5166         PWM16) and detab'ed
5167
5168 2004-05-15 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
5169
5170         * doc/sdccman.lyx: mentioned sourceforge's delay between web frontend
5171         and mailing lists, doc'ed --no-peep-comments, removed reference
5172         to knoppix (newest version has no LyX/LaTeX), other minor changes
5173         * src/SDCCglue.c (glue): save 2 bytes stack space with
5174         option --main-return. The ljmp could probably be avoided too
5175
5176 2004-05-14 Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
5177
5178         * as/mcs51/lkmem.c, as/mcs51/lkaomf51: fixed bug 954173
5179
5180 2004-05-14 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
5181
5182         * src/SDCCsymt.h: added IS_AUTO(symbol) test macro
5183         * src/SDCCopt.c (isLocalWithoutDef),
5184         * src/SDCCicode.c (operandFromSymbol): use the IS_AUTO test macro
5185         which adds a !IS_EXTERN codition. Fixes bugs #877426 and #751703.
5186         (credit to Maarten Brock for patch #949363, on which this is based)
5187         * support/regression/tests/bug-751703.c: some test cases of extern used
5188         within inner scopes.
5189
5190 2004-05-14 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
5191
5192         * src/SDCCdwarf2.c (dwMatchTypes): structs must have matching
5193         SPEC_STRUCT
5194         * src/SDCCdwarf2.c (dwTagFromType): fix to handle recursive
5195         struct definitions
5196         * src/SDCCdwarf2.c (dwWriteModule, dwNewDebugSymbol, dwWriteEndFunction,
5197         dwWriteLabel): fix to create valid debugger symbols even when
5198         the module name has non-alphanumeric symbols in it
5199         * src/SDCCdwarf2.c (dwWriteSymbolInternal): better detection for
5200         when a variable's allocation has been optimized away
5201
5202
5203 2004-05-13 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
5204
5205         * src/hc08/gen.c (hc08_emitDebuggerSymbol),
5206         * src/hc08/main.c,
5207         * src/mcs51/gen.c (mcs51_emitDebuggerSymbol),
5208         * src/mcs51/main.c,
5209         * src/ds390/gen.c (ds390_emitDebuggerSymbol),
5210         * src/ds390/main.c,
5211         * src/z80/gen.c (z80_emitDebuggerSymbol),
5212         * src/z80/main.c,
5213         * src/pic/gen.c (pic14_emitDebuggerSymbol),
5214         * src/pic/main.c,
5215         * src/pic16/gen.c (pic14_emitDebuggerSymbol),
5216         * src/pic16/main.c,
5217         * src/avr/gen.c (avr_emitDebuggerSymbol),
5218         * src/avr/main.c,
5219         * src/xa51/gen.c (xa51_emitDebuggerSymbol),
5220         * src/xa51/main.c,
5221         * src/SDCCdebug.c (emitDebuggerSymbol),
5222         * src/SDCCdebug.h,
5223         * src/port.h: added a debugger struct to the port struct. Added a
5224         callback for defining debugger symbols
5225
5226         * src/SDCCast.c (createLabel),
5227         * src/SDCC.y (labeled_statement): mark all compiler generated labels
5228         with isitmp = 1
5229         * src/SDCCicode.h,
5230         * src/SDCCicode.c (geniCodeFunctionBody): added a link from the FUNCTION
5231         iCode back to the ast for the function
5232
5233         * src/hc08/ralloc.c (hc08_assignRegisters),
5234         * src/hc08/ralloc.h: define a regs struct for the stack pointer. Removed
5235         unneeded fields from the regs struct.
5236         * src/hc08/gen.c (transferRegReg, genFunction, genEndFunction): use the
5237         pushReg() & pullReg() functions instead of emitcode()
5238
5239         * src/hc08/gen.c (genLabel, genhc08Code),
5240         * src/SDCCdebug.h: Added additional debugger hooks needed for DWARF
5241
5242         * src/cdbFile.c (cdbWriteLabel, cdbWriteScope): Added stubs for unneeded
5243         debugger hooks
5244
5245         * src/hc08/gen.c (genEndFunction, genhc08Code),
5246         * src/hc08/gen.h,
5247         * src/mcs51/gen.c (genEndFunction, gen51Code),
5248         * src/mcs51/gen.h,
5249         * src/ds390/gen.c (genEndFunction, gen390Code),
5250         * src/ds390/gen.h,
5251         * src/z80/gen.c (genEndFunction, genZ80Code),
5252         * src/z80/gen.h,
5253         * src/z80/z80.h,
5254         * src/pic/gen.c (genEndFunction, genpic14Code),
5255         * src/pic/gen.h,
5256         * src/pic16/gen.c (genEndFunction, genpic16Code),
5257         * src/pic16/gen.h,
5258         * src/avr/gen.c (genEndFunction, genAVRCode),
5259         * src/avr/gen.h,
5260         * src/xa51/gen.c (genEndFunction, genXA51Code),
5261         * src/xa51/gen.h,
5262         * src/cdbFile.c (cdbWriteFunction, cdbWriteEndFunction): moved cdb
5263         specific code to cdbFile.c and out of the backend code generators
5264
5265         * as/hc08/lkmain.c (main): removed OMF51 support from link-hc08
5266         * as/hc08/lkarea.c (lnkarea): areas with NOLOAD attribute default
5267         starting address is now 0
5268
5269         * as/hc08/asm.h,
5270         * as/hc08/m08pst.c,
5271         * as/hc08/asmain.c (asmbl): implemented the .sleb128 and .uleb128
5272         assembler directive for DWARF support
5273         * as/hc08/lkelf.c (elf): only increment address when rtflg[] set
5274
5275         * src/src.dsp,
5276         * src/Makefile.in,
5277         * src/SDCCdwarf2.c: preliminary DWARF (ver 2) debugger data generator
5278
5279 2004-05-04 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
5280
5281         * src/hc08/gen.c (genJumpTab, emitcode, genhc08code): fixed stack error
5282         and inappropriate peephole optimization in jump tables
5283
5284 2004-04-30 Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
5285
5286         * as/hc08/m08pst.c,
5287         * src/SDCCglue.c: sdccopt works for the hc08 port now
5288
5289 2004-04-27 Bernhard Held <bernhard AT bernhardheld.de>
5290
5291         * src/SDCCicode.c (geniCodePreInc, geniCodePreDec): fixed bug #942130
5292
5293 2004-04-27 Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
5294
5295         * as/hc08/lkelf.c: sdccconf.h is not available in WIN32
5296
5297 2004-04-24 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
5298
5299         * src/SDCCpeeph.c (replaceRule): support empty replacement peephole
5300         rules
5301         * src/SDCCmain.c,
5302         * src/SDCCglobl.h,
5303         * src/SDCCpeeph.c (getPeepLine): new option --no-peep-comments omits
5304         comments from the peephole optimizer replacement rules
5305         * src/SDCCmem.c (printAllocInfoSeg): give actual location of spilled
5306         symbols
5307         * src/SDCCcse.c (updateSpillLocation),
5308         * src/SDCCopt.c (killDeadCode, findReqv): better tracking of register
5309         equivalents
5310         * src/hc08/ralloc.c (regTypeNum): pseudo symbols must be in DATA only
5311         * src/hc08/main.c (_hc08_finaliseOptions): made pointers to stack
5312         objects far pointers
5313
5314 2004-04-23 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
5315
5316         * src/SDCCsymt.h: a missing part of my last change
5317         * src/pic/ralloc.c (regTypeNum),
5318         * src/pic16/ralloc.c (regTypeNum): fixed statement/declaration order
5319
5320 2004-04-23 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
5321
5322         * src/SDCCicode.h,
5323         * src/SDCCicode.c (aggrToPtrDclType),
5324         * src/SDCCptropt.h,
5325         * src/SDCCptropt.c (ptrBaseRematSym, ptrPseudoSymSafe,
5326         ptrPseudoSymConvert),
5327         * src/pic/ralloc.c (regTypeNum),
5328         * src/pic16/ralloc.c (regTypeNum),
5329         * src/hc08/ralloc.c (regTypeNum),
5330         * src/ds390/ralloc.c (regTypeNum),
5331         * src/mcs51/ralloc.c (regTypeNum): check for dependancy hazards before
5332         creating pseudo symbols (fixed bugs #777768, #930484, and #933966)
5333
5334 2004-04-22 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
5335
5336         * link/z80/lkmain.c (afile),
5337         * as/hc08/lkmain.c (afile),
5338         * as/mcs51/lkmain.c (afile): fix suggested by Maarten Brock to
5339         prevent a pointer problem when a filename has no directory and
5340         no extension specified.
5341
5342 2004-04-21 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
5343
5344         * link/z80/lkmain.c (afile): allow periods in directory names
5345         * link/z80/lkmain.c (afile),
5346         * as/mcs51/lkmain.c (afile),
5347         * as/hc08/lkmain.c (afile): allow linker script file to have an
5348         extension other than ".lnk"
5349         * link/z80/lklex.c (getfid),
5350         * link/z80/lkmain.c (parse),
5351         * as/mcs51/lklex.c (getfid),
5352         * as/mcs51/lkmain.c (parse),
5353         * as/hc08/lklex.c (getfid),
5354         * as/hc08/lkmain.c (parse): Support comments in the linker script
5355         file on lines by themselves and after filenames
5356
5357 2004-04-20 Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
5358
5359         * as/link_hc08.dsp: Added as/hc08/lkelf.c to project.
5360
5361 2004-04-20 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
5362
5363         * src/z80/peeph-z80.def: removed some peephole rules that don't
5364         work with multibyte arithmetic (fixed bug #937126)
5365         * src/mcs51/peeph.def: fixed peephole rules 150-158 to apply only
5366         to registers and not global variables
5367         * src/SDCCicode.c (geniCodeAssign, ast2iCode, geniCodePostInc,
5368         geniCodePreInc, geniCodePostDec, geniCodePreDec,
5369         geniCodeLogicAndOr, geniCodeConditional): enforce strict lvalue
5370         checking for assignments not internally generated (fixed bug #931895)
5371         * src/SDCC.y (postfix_expr): ignore typedefs when looking for a
5372         structure member (fixed bug #930072)
5373
5374 2004-04-19 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
5375
5376         * src/SDCCmain.c (linkEdit),
5377         * src/hc08/main.c (_hc08_parseOptions),
5378         * as/hc08/Makefile.in,
5379         * as/hc08/aslink.h,
5380         * as/hc08/asm.h,
5381         * as/hc08/m08pst.c,
5382         * as/hc08/lkrloc.c (relr, rele),
5383         * as/hc08/lkarea.c (lnkarea)
5384         * as/hc08/lkmain.c (afile, parse),
5385         * as/hc08/lkelf.c: support for ELF output
5386         * as/hc08/lks19.c (s19),
5387         * as/hc08/lkihx.c (ihx): ignore areas with the NOLOAD attribute
5388
5389 2004-04-17 Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
5390
5391         * as/mcs51/lkihx.c: Fixed bug #899105.
5392
5393 2004-04-16 Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
5394
5395         * doc/sdccman.lyx: Added instructons on how to convert MSVC .dsw and
5396         .dsp files from Unix to DOS.
5397
5398 2004-04-16 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
5399
5400         * doc/sdccman.lyx: removed the ANSI-C noncompliance note regarding
5401         function pointers; we have been compliant for several months now.
5402         * src/mcs51/ralloc.c (serialRegAssign): enabled part of my 2004-04-13
5403         change that was accidently commented out
5404         * src/mcs51/gen.c (freeAsmop, getFreePtr, freeForBranchAsmop, genIfxJump,
5405         genCmpEq, jmpTrueOrFalse, genCmp, genAnd, genOr, genXor, genIfx): fixed
5406         bug #922319
5407
5408 2004-04-15 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
5409
5410         * src/hc08/gen.c: output of all of the internal debugging information
5411         is now controlled by the D() macro; it is disabled by default
5412
5413 2004-04-13 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
5414
5415         * src/mcs51/ralloc.c (serialRegAssign, fillGaps, allocThisReg): try
5416         harder to keep the same registers during a CAST iCode
5417         * src/SDCCopt.c (optimizeCastCast, eBBlockFromiCode): casts of char to
5418         long via int can be done in a single cast, if the signedness is
5419         correct.
5420         * support/regression/tests/bug-927659.c: fixed to avoid conflict with
5421         putchar() in tinibios.c in ds390's library
5422
5423 2004-04-12 Bernhard Held <bernhard AT bernhardheld.de>
5424
5425         * src/SDCCast.c (decorateType): fixed bug #898889,
5426         cast result of a literal complement too
5427         * src/mcs51/ralloc.c (packRegsForAssign): fixed bug #930931,
5428         fixed check for bitfields
5429
5430 2004-04-11 Bernhard Held <bernhard AT bernhardheld.de>
5431
5432         * src/SDCCicode.c (geniCodeLogic): made it static,
5433         (geniCodeLogicAndOr): added in order to fix bug #905492,
5434         (ast2iCode): fixed bug #905492
5435         * support/regression/tests/bug-905492.c: added
5436         * src/SDCCast.c (decorateType): don't decorate/process parms twice,
5437         (processParms): fixed bug #927659: don't copy parms, this will clear
5438         decorated flag
5439         * support/regression/tests/bug-927659.c: added
5440
5441 2004-03-29 Bernhard Held <bernhard AT bernhardheld.de>
5442
5443         * src/SDCCast.c (addCast): don't cast float to char
5444         * device/lib/libsdcc.lib: added _memmove
5445
5446 2004-03-28 Bernhard Held <bernhard AT bernhardheld.de>
5447
5448         * device/lib/large/Makefile: fixed parallel execution by
5449         replacing `make` by `$(MAKE)`
5450
5451 2004-03-28 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
5452
5453         * src/hc08/gen.c (genPointerGetSetOfs): correctly handle 1 byte array
5454         offsets (fixes bug #923936)
5455
5456 2004-03-26 Bernhard Held <bernhard AT bernhardheld.de>
5457
5458         * device/lib/small/Makefile: fixed parallel execution by
5459         replacing `make` by `$(MAKE)`
5460
5461 2004-03-23 Bernhard Held <bernhard AT bernhardheld.de>
5462
5463         * device/lib/vprintf.c (vsprintf): minor optimization, see bug #801101
5464
5465 2004-03-23  Scott Dattalo  <scott AT dattalo.com>
5466
5467         * src/pic/gen.c (genCpl): multi-byte complements were not working.
5468         * src/regression/Makefile: Regression test was not running.
5469
5470 2004-03-23 Bernhard Held <bernhard AT bernhardheld.de>
5471
5472         * src/SDCCast.c (resultTypePropagate, decorateType): avoid promotion to int for
5473         complement if possible
5474         * src/SDCCval.c (valComplement),
5475         * src/SDCCicode.c (operandOperation): fixed complement of literal
5476         * support/regression/tests/onebyte.c (testComplement): added
5477
5478 2004-03-22 Bernhard Held <bernhard AT bernhardheld.de>
5479
5480         * src/SDCCast.c (processParms): fixed bug #920866; decorateType() can
5481         return an optimized tree; actually replace actParm with the new tree
5482         * src/SDCCast.h: added some parantheses to remove side effects
5483         * support/regression/tests/bug-920866.c
5484
5485 2004-03-21  Scott Dattalo  <scott AT dattalo.com>
5486         * src/pic/gen.c, src/pic/gen.h, src/pic/genarith.c, src/pic/pcode.c:
5487         Bit operands were not being handled properly in the pic14 port.
5488         (now src/regression/add.c passes again).
5489
5490 2004-03-20 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
5491
5492         * src/SDCC.y (labeled_statement): case and default no longer require
5493         a following statement (RFE #893037)
5494
5495 2004-03-19 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
5496
5497         * src/mcs51/gen.c (pushSide, genSignedRightShift, genDjnz, geniPush):
5498         use MOVA macro to avoid "mov a,acc" when peephole optimizer is
5499         disabled (fixes bug #916294)
5500         * sim/ucsim/s51.src/mov.cc (inst_mov_a_addr): Throw an error on
5501         "mov a,acc"; patch provided by Lenny Story
5502         * device/include/mc68hc908gp32.h: header contibuted by Juan Gonzalez
5503
5504 2004-03-19 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
5505
5506         * src/mcs51/gen.c (genFunction): optimize RECEIVE in reentrant
5507         functions
5508         * src/ds390/gen.c (genFunction, genEndFunction),
5509         * src/ds390/ralloc.c (ds390_assignRegisters),
5510         * src/mcs51/gen.c (genFunction, genEndFunction, mcs51_assignRegisters):
5511         * src/mcs51/ralloc.c (mcs51_assignRegisters): Skip optimizing registers
5512         pushed if there are parameters passed on the stack. Also, a cleaner
5513         way to decide if r0/r1 should be pushed/popped. (Together they fix
5514         bug #918693)
5515
5516 2004-03-18 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
5517
5518         * doc/sdccman.lyx,
5519         * device/lib/mcs51/crtpagesfr.asm,
5520         * device/lib/mcs51/crtxinit.asm,
5521         * device/lib/mcs51/crtxstack.asm: Changed name of _PAGESFR to _XPAGE
5522         to avoid confusion with Si Lab's SFRPAGE register.
5523
5524 2004-03-17 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
5525
5526         * src/SDCCglue.c (emitMaps): allow public sfr variables
5527         * src/SDCCglue.c (initialComments): include compiler build date
5528         with compiler version and put the timestamp of the generated
5529         assembly file on a serperate line to be less confusing.
5530         * src/port.h: added genInitStartup hook
5531         * src/avr/main.c,
5532         * src/ds390/main.c,
5533         * src/hc08/main.c,
5534         * src/pic/main.c,
5535         * src/pic16/main.c,
5536         * src/xa51/main.c,
5537         * src/z80/main.c: genInitStartup initialize as NULL (default to
5538         historical behaviour)
5539         * src/SDCCglue.c (glue): _sdcc_gsinit_startup is now port specific.
5540         * src/mcs51/main.c: (_mcs51_genInitStartup, _mcs51_genExtraAreas,
5541         _mcs51_genXINIT, _mcs51_genRAMCLEAR): link initialization code from the
5542         library instead of hard coding it into the compiler.
5543         * support/regression/ports/mcs51-stack-auto/spec.mk,
5544         * src/SDCCmain.c (linkEdit): added mcs51.lib to the link libraries
5545         * device/lib/mcs51/Makefile,
5546         * device/lib/small/Makefile,
5547         * device/lib/large/Makefile,
5548         * device/lib/mcs51/crtpagesfr.asm,
5549         * device/lib/mcs51/crtstart.asm,
5550         * device/lib/mcs51/crtxclear.asm,
5551         * device/lib/mcs51/crtxinit.asm,
5552         * device/lib/mcs51/crtclear.asm,
5553         * device/lib/mcs51/crtxstack.asm: move most of the mcs51 C runtime
5554         startup/initialization out of src/SDCCglue.c and src/mcs51/main.c
5555         and into user configurable files.
5556         * device/lib/clean.mk: clean mcs51 directory too
5557         * support/regression/tests/longlit.c: added static to T1 declaration
5558         * doc/sdccman.lyx: documented _PAGESFR sfr for customizing pdata
5559         accesses in the initialization code
5560
5561 2004-03-14 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
5562
5563         * device/include/mc68hc908qy.h: corrected declarations of FLBPR and
5564         OSCTRIMVAL as noted in bug #916008
5565
5566 2004-03-14 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
5567
5568         * src/SDCCloop.c (basicInduction): fixed bug with loop induction
5569         in loops with multiple exits (reported as incorrect registers
5570         used by Martin Helmling in Sdcc-user list)
5571
5572 2004-03-12 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
5573
5574         * src/ds390/main.c (_ds390_genAssemblerPreamble): cosmetic change,
5575         made ds390 register extensions look less like error messages
5576
5577 2004-03-12 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
5578
5579         * src/SDCCglue.c (printIvalPtr): fixed bug with pointer initializer
5580         reported by Adam Wozniak in Sdcc-user list
5581
5582 2004-03-10 Bernhard Held <bernhard AT bernhardheld.de>
5583
5584         * src/SDCCast.c (decorateType): fixed with bug and promotion in
5585         arithmetic optimizations, added debug output
5586
5587 2004-03-09 Bernhard Held <bernhard AT bernhardheld.de>
5588
5589         * device/lib/time.c (mktime): fixed bug reported by Bert Thomas
5590         * sdcc.spec: updated and split sdcc into 3 rpms
5591         * src/SDCCast.c (decorateType): &|^ don't need addCast(); addCast() is
5592         needed for literals of LEFT_OP and '+'
5593         * src/SDCCicode.c (geniCodeLogic): I must have been braindead when I
5594         introduced RESULT_TYPE_NOPROM
5595         (geniCodeMultiply): fixed logic for decision if mul is optimized to
5596         left shift
5597         * src/SDCCsymt.c (computeType): op is int; added RESULT_TYPE_OTHER;
5598         limited promotion to int only for '*'
5599         * src/SDCCsymt.h (computeType): op is int, removed RESULT_TYPE_NOPROM
5600
5601 2004-03-09 Hans Dorn <hjdorn AT users.sourceforge.net>
5602
5603         * src/pic16/gen.c (genSkip),
5604         (genc16bit2lit), (gencjneshort): commented out
5605         (is_LitOp): new helper function, checks operand type
5606         (genCmpEq): rewritten
5607
5608 2004-03-08 Bernhard Held <bernhard AT bernhardheld.de>
5609
5610         * support/regression/tests/bug-908454.c: added
5611
5612 2004-03-07 Bernhard Held <bernhard AT bernhardheld.de>
5613
5614         * src/SDCCast.c (addCast): fixed bug #908454 by promoting bits to char
5615         * src/SDCCicode.c (usualBinaryConversions): op needs int type
5616         (geniCodeCast): cosmetic, don't preserve bit storage class
5617         (geniCodeLeftShift): added promotion
5618         (geniCodeLogic): fixed regression
5619         * src/SDCCsymt.c (computeTypeOr): accept bits too
5620         (compareType): 2nd part of fix for bug #908454, needed for bitfields
5621
5622 2004-03-07  Borut Razem <borut.razem AT siol.net>
5623
5624         * support/Util/findme.c: alloca() replaced with malloc()/free() pair
5625
5626 2004-03-06 Vangelis Rokas <vrokas AT otenet.gr>
5627
5628         * src/pic16/ralloc.c (pic16_genPackRegisters): reverted to old
5629         version of pic16_genPackRegisters which does not check if ic is a
5630         CAST operator,
5631         * src/pic16/gen.c (ifxForOp): disabled new and untested code in
5632         function cause string1.c regression test fails
5633
5634 2004-03-06 Bernhard Held <bernhard AT bernhardheld.de>
5635
5636         * sim/ucsim/configure.in,
5637         * sim/ucsim/configure,
5638         * sim/ucsim/doc/Makefile.in: use docdir
5639         * src/SDCC.y: fixed sbit atrributes
5640         * src/SDCCast.c (getResultTypeFromType): added support for bitfields
5641         * src/SDCCast.c (decorateType): |^& need special promotion handling
5642         * src/SDCCast.h,
5643         * src/SDCCsymt.h: moved definition of RESULT_TYPE
5644         * src/SDCCsymt.h (computeType),
5645         * src/SDCCicode.c: computeType() needs op
5646         * src/SDCCsymt.c (checkTypeSanity),
5647         * doc/sddman.lyx: "plain" bitfields are unsigned
5648         * src/SDCCsymt.c (computeTypeOr): added
5649         * src/SDCCsymt.c (computeType): added support for bitfields, fixed
5650         |^& ops
5651         * src/SDCCval.c (val*): computeType() needs op
5652         * src/SDCCval.c (valCastLiteral): fixed casting of bitfields
5653         * support/regression/tests/onebyte.c: added tests for |^&
5654
5655 2004-03-06 Hans Dorn <hjdorn AT users.sourceforge.net>
5656
5657         * src/pic16/gen.c: (genpic16Code) use copy of printILine's output
5658         for writing icode into asm output.
5659
5660 2004-03-05 Vangelis Rokas <vrokas AT otenet.gr>
5661
5662         * src/pic16/device.c: added some debug lines enabled
5663         with macro DEBUG_CHECK,
5664         * src/pic16/genarith.c: more debug in genPlus,
5665         * (pic16_genUMult8XLit_16, pic16_genUMult8X8_16): removed,
5666         * (pic16_genUMult16X16_16, pic16_genUMult16XLit_16): NEW,
5667         * src/pic16/gen.c: added prototypes for pic16_genMult16X16_16,
5668         * (aopForSym): onStack symbols are re-placed in data memspace,
5669         and onStack flag is cleared,
5670         * (pic16_popGetTempReg, pic16_popReleaseTempReg): modified to
5671         copy temporary pcodeop,
5672         * (genPcall): added warning for not updating PCLATU,
5673         * (genFunction): removed test with IFFUNC_CALLEESAVES, its
5674         always true for pic16 port,
5675         * (genMultOneWord): NEW, supports integer multiplication,
5676         * (genMult): modified to call genMultOneWord,
5677         * (ifxForOp): added warning when return NULL,
5678         * src/pic16/glue.c (pic16emitRegularMap): symbol implicit
5679         flag is set before call to operandFromSymbol for implicit
5680         added structures,
5681         * src/pic16/main.c (_pic16_finaliseOptions): options.float_rent,
5682         options.intlong_rent are set by default,
5683         * (_hasNativeMulFor): modified to allow port generation of integer
5684         multiplication,
5685         * src/pic16/ralloc.c (pic16_allocDirReg): commented out line which
5686         set regtype to REG_SFR for all registers, restricting seting the
5687         accessBank flag for registers 0<= r < 0x80 and 0xf80<=r<=0xfff,
5688
5689 2004-03-05 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
5690
5691         * src/mcs51/peephole.def: added 251.b and 253.x. 253.x are applied
5692         more than 500 times in the regression tests
5693
5694 2004-03-05 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
5695
5696         * support/Util/SDCCerr.h,
5697         * support/Util/SDCCerr.c,
5698         * src/SDCC.y (struct_or_union_specifier, enum_specifier,
5699         enumerator_list),
5700         * src/SDCCsymt.c (addSymChain): show location of oriignal definition
5701         for symbol conflicts.
5702         * support/valdiags/tests/enum.c,
5703         * support/valdiags/tests/tentdecl.c,
5704         * support/valdiags/tests/struct.c: expect possible error messages
5705         referring to original symbol definitions.
5706         * src/SDCC.y (struct_or_union_specifier, struct_declarator),
5707         * src/SDCCsymt.h,
5708         * src/SDCCsymt.c (promoteAnonStructs): support anonymous struct/union
5709
5710 2004-03-03 Hans Dorn <hjdorn AT users.sourceforge.net>
5711
5712         * src/pic16/gen.c (gencjne): fixed for right=REG / left=LIT
5713
5714 2004-02-03 Vangelis Rokas <vrokas AT otenet.gr>
5715
5716         * src/pic16/ralloc.c (newReg): fixed bug #908929
5717
5718 2004-03-02 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
5719
5720         * src/ds390/gen.c: added missing #include "main.h"
5721
5722 2004-03-02 Vangelis Rokas <vrokas AT otenet.gr>
5723
5724         * src/pic16/device.c (checkAddSym): NEW, adds a symbol to set while
5725         checking if symbol is already in set,
5726         * src/pic16/device.h: prototype for checkAddSym,
5727         * src/pic16/gen.c: (_G): added entry interruptvector,
5728         * (assignResultValue): removed some commented out lines,
5729         * (genFunction): check for ISR via sym->type, absolute section for
5730         interrupt code is created via a new pBlock, the goto instruction is
5731         placed now correctly at the interrupt vector position, changed all
5732         references from ivec to _G.interruptvector,
5733         * WREG,STATUS,BSR are not saved in stack upon an entry to interrupt
5734         is the interrupt is a high priority one, same for return from ISR,
5735         * src/pic16/glue.c: changed all calls of addSetHead for publics and
5736         externs to calls of checkAddSym,
5737         * src/pic16/pcode.c (pic16_pBlockConvert2*): emit warning when
5738         pic16_pcode_verbose flag is set,
5739         * src/pic16/pcode.h: extern to pic16_pcode_verbose,
5740         * src/pic16/pcoderegs.c: message about how many registers are saved
5741         will only be emitted if pic16_pcode_verbose flag is set,
5742
5743 2004-03-02 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
5744
5745         * src/ds390/ralloc.h,
5746         * src/ds390/ralloc.c (ds390_regWithIdx),
5747         * src/ds390/gen.c (emitcode),
5748         * src/ds390/main.h,
5749         * src/ds390/main.c (instructionSize, ds390newAsmLineNode, updateOpRW,
5750         ds390opcodeCompare, asmLineNodeFromLineNode, getInstructionSize,
5751         ds390operandCompare, getRegsRead, getRegsWritten,
5752         initializeAsmLineNode): customized instruction size calculation for
5753         ds390, started basis for some register optimizations
5754         * src/ds390/gen.c (gen390Code, emitcode): associate iCodes with
5755         corresponding assembly output
5756         * src/ds390/gen.c (genFunction, genEndFunction): added case to handle
5757         missing push/pop of r0/r1. Optimized push/pops
5758
5759 2004-03-01 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
5760
5761         * src/mcs51/main.c (instructionSize): fixed ACALL size
5762         * src/mcs51/main.c (updateOpRW): fixed bug with @dptr, @a+dptr operands
5763
5764 2004-03-01 Vangelis Rokas <vrokas AT otenet.gr>
5765
5766         * src/pic16/device.c (pic16_dump_section): fixed a bug that allowed
5767         the sorting of rlist with NULL elements
5768         * (print_idataType, print_idata): NEW to create idata sections
5769         * src/pic16/device.h: idataSymSet new variable
5770         * src/pic16/gen.c (genFunction): fixed some bugs in string
5771         comparing, improved the absolute section creation for ISRs,
5772         added FSR0L/FSR0H in registers that are saved in an ISR,
5773         * (genInline): fixed the processing of inline snippets,
5774         now they undergo no process by the peephole optimizer
5775         * src/pic16/glue.c (pic16emitRegularMap): symbols with initialiser
5776         are placed in idataSymSet,
5777         * (pic16emitStaticSeg): extern symbols are added in externs,
5778         * src/pic16/ralloc.c (pic16_allocDirReg): work around to reduce bank
5779         switching when aboslute variables are placed in access bank memory
5780         * (pic16_writeUsedRegs): added call to pic16_dump_idata,
5781         * (packRegsForSupport,packRegsForAccUse,packRegsForOneuse):
5782         commented out with #if,
5783         * (pic16_packRegisters): reintroduce the check for CAST because some
5784         symbols are not correctly handled,
5785         * src/pic16/pcode.h: changed the definition of pCodeAsmDir to hold a
5786         pCodeInstruction instead of pCode,
5787         * src/pic16/pcode.c (pic16_newpCodeAsmDir): modified for the new
5788         pCodeAsmDir definition,
5789         * (pic16_pCode2str, genericPrint): when an AsmDir pcode has a NULL
5790         directive, then the argument directive is emitted without the leading
5791         tab, hack for inline labels which must be in the first column,
5792         * (compareLabel,pic16_findNextInstruction),
5793         * (pic16_findPrevInstruction): added case for PO_ASMDIR,
5794         * (insertBankSwitch): modified for the new pCodeAsmDir,
5795
5796 2004-03-01 Hans-Juergen Dorn <hans.dorn AT apl-landau.de>
5797         patch applied by Vangelis Rokas <vrokas AT otenet.gr>
5798
5799         * src/pic16/gen.c (pic16_popGet): case PO_DIR, adds the offset to
5800         instance,
5801         * (pushSide): commented out with #if,
5802         * (assignResultValue): fixed some typos in saving
5803         registers,
5804         * (genPcall): FIXED and sync'ed with genCall,
5805         * (genDataPointerGet,genDataPointerSet): using offset not leoffset
5806         * (genNearPointerGet): fixed to handle some more cases,
5807         implementation scheme via table reads,
5808         * (genConstPointerGet): modified to access code memory correct,
5809         * (genCodePointerGet,genNearPointerSet,genGenPointerSet): modified
5810         and improved to handle some cases
5811         * glue.c (printIvalType,printIvalChar,emitStaticSeg): use "DB"
5812         instead of "RETLW" for init data
5813         * src/pic16/ralloc.c (pic16_allocDirReg): warning when a symbol is
5814         not IN_DIRSPACE, work around to reduce bank switching when aboslute
5815         variables are placed in access bank memory (<0x80 and >=0xf80),
5816         * src/pic16/pcode.c: added SFRs TBLPTR, TABLAT, added opcodes TBLRD,
5817         TBLRD_POSTINC,TBLRD_POSTDEC,TBLRD_PREINC,TBLWT,TBLWT_POSTINC,
5818         TBLWT_POSTDEC,TBLWT_PREINC
5819         * Fixed initialisation of BSR, set "alias" for SSAVE to "0"
5820         * (pic16_emitDB,pic16_flushDB): New functions to generate "DB"
5821         directives
5822         * (pic16_pCodeConstString): use "DB" instead of "RETLW"
5823         * src/pic16/pcode.h: added TBLRD*,TBLWT*, added pic16_emitDB,
5824         pic16_flushDB, made pic16_newpCodeAsmDir public, added TBLPTR, TABLAT
5825         * src/pic16/ralloc.h: added IDX_BSR,IDX_TBLPTR*,IDX_TABLAT
5826
5827 2004-02-29  Borut Razem <borut.razem AT siol.net>
5828
5829         * src/Makefile.in, src/SDCCutil.c, support/Util/findme.c,
5830         support/Util/findme.h, support/Util/system.h: enhance binary relative
5831         search for lib and include by using findProgramPath()
5832
5833 2004-02-28 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
5834
5835         * src/SDCCpeeph.h,
5836         * src/SDCCpeeph.c (pcDistance),
5837         * src/port.h,
5838         * src/mcs51/ralloc.h,
5839         * src/mcs51/ralloc.c (mcs51_regWithIdx),
5840         * src/mcs51/main.h,
5841         * src/mcs51/main.c (instructionSize, asmLineNode, updateOpRW,
5842         mcs51opcodeCompare, asmLineNodeFromLineNode, getInstructionSize,
5843         mcs51operandCompare, getRegsRead, getRegsWritten): made instruction
5844         size calculation port specific, started basis for some register
5845         optimizations
5846         * src/mcs51/gen.c (genFunction, genEndFunction): added case to handle
5847         missing push/pop of r0/r1. Optimized push/pops
5848         * src/mcs51/ralloc.c (packregisters): fixed bug #727095
5849         * device/lib/_modsint.c (_modsint),
5850         * device/lib/_modslong.c (_modslong): fixed sign of result in non-asm
5851         and stack version so regression tests pass
5852
5853 2004-02-26 Bernhard Held <bernhard AT bernhardheld.de>
5854
5855         * src/Makefile.in (dep): include SLIBOBJS in dependency check
5856         * src/SDCCast.c (decorateType): catch another small optimization
5857         with '?' operator
5858         * src/SDCCsymt.c (computeType): added comments and cosmetic changes
5859         * src/SDCCval.c (valMult, valDiv, valMod, valPlus, valMinus, valShift):
5860         modified to finally use computeType() all over SDCC,
5861         see Feature Request #877103
5862         * src/SDCCval.h: cosmetic
5863         * src/SDCCicode.c (operandOperation): fixed EQ_OP bug, now same as in
5864         valCompare(); regression tested in muldiv.c
5865         * support/regression/tests/muldiv.c (testMod): mod sign follows
5866         dividend only
5867
5868 2004-02-23 Bernhard Held <bernhard AT bernhardheld.de>
5869
5870         * src/SDCCast.c (decorateType): fixed bug #902362
5871         * doc/INSTALL.txt: fixed install instructions for win32
5872
5873 2004-02-21 Bernhard Held <bernhard AT bernhardheld.de>
5874
5875         * device/include/Makefile.in (install): fixed by replacing spaces
5876         by tabs
5877         * doc/README.txt,
5878         * doc/INSTALL.txt: updated for release
5879         * doc/sdccman.lyx: added warning for --xstack being buggy
5880
5881 2004-02-20 Bernhard Held <bernhard AT bernhardheld.de>
5882
5883         * src/pic16/ralloc.c (packRegsForAccUse):  disabled functions with #if
5884         to eliminate build warnings.
5885         * src/pic16/gen.c (pic16_popGet): fixed for gcc 2.95.4
5886
5887 2004-02-20 Vangelis Rokas <vrokas AT otenet.gr>
5888            Hans-Juergen Dorn <hans.dorn AT apl-landau.de>
5889
5890         * doc/sdccman.lyx: removed PIC16 from PIC16 Port Specific Options,
5891         removed -penable-stack, added comment for stack pragma, added
5892         warning for not initializing the stack/frame registers, removed
5893         comment at interrupts section
5894
5895         Stack is made permanent, there is no ability to disable stack usage.
5896         * src/pic16/device.h,
5897         * src/pic16/device.c: removed all references to USE_STACK macro,
5898         * src/pic16/device.c (pic16_dump_section): when no elements in
5899         rlist, free rlist before return,
5900         * (pic16_dump_int_registers): NEW, internal registers are a new set
5901         of general purpose registers reused by each function,
5902         * (checkAddReg): returns 1 if registers is added to set,
5903         * (pic16_groupRegistersInSection): when a registers is of type
5904         PO_GPR_TEMP add it in pic16_int_regs and not in pic16_rel_udata,
5905         * src/pic16/device.h: memRange and Assigned Memory are deleted,
5906         SRCASECMP macro is moved here from device.c
5907         * src/pic16/genarith.c (pic16_pCodeOpType): added cases for
5908         PO_PCLATU, PO_PRODL, PO_PRODH,
5909         * (pic16_pCodeOpType, genMinus,
5910         changed compares to "a" register, with AOP_ACC,
5911         * (pic16_genPlus): fixed some bugs and indented properly,
5912         * (pic16_addSign): changed size to size+offset in the MOVWF
5913         instruction,
5914         * (pic16_genUMult8XLit_8): NEW, uses processor MULLW instruction to
5915         multiply 8-bit operand by literal, result is 8-bit,
5916         * (pic16_genUMult8X8_8): NEW, uses processor MULWF instruction to
5917         multiply 2 8-bit operand, result is 8-bit,
5918         * (pic16_genMult8X8_8): modified to call genUMult8X*_8 functions and not
5919         genUMult8X*_16,
5920         * src/pic16/gen.c: changed accUse to contain WREG only,
5921         * (pic16_emitcomment): renamed to pic16_emitpcomment,
5922         * (aopForSym): allocated dir register when IN_DIRSPACE(space) is,
5923         true, do not use immediate addressing any more unless sym is a
5924         pointer in codespace,
5925         * (aopForRemat): do not use immediate addressing when symbol not in
5926         codespace and when symbol's address is requested,
5927         * (aopOp): for-loop in if(sym->accUse) is modified for the new
5928         accUse size (= 1),
5929         * (aopGet): added case for AOP_ACC and don't return "accumulator
5930         bug" but WREG instead,
5931         * (popGetTempReg): pushes contents of temporary register in stack,
5932         * (popReleaseTempReg): pops contents of temporary register from
5933         stack. Use popGetTempReg/popReleaseTempReg in aligned pairs,
5934         * (pic16_popGet): separated case AOP_ACC to return register WREG
5935         from processor registers, AOP_PCODE not checks if pcop is PO_DIR
5936         or PO_IMMEDIATE and initializes their instance/offset appropriately,
5937         * The whole issue with aopForSym,aopForRemat,popGet) is to minimize
5938         the use of immediate pointers to certain cases only.
5939
5940         * (pic16_pushpCodeOpReg, pic16_poppCodeOpReg): use pic16_popGet2p,
5941         * (pic16_loadFromReturn, pic16_storeForReturn: NEW,
5942         * (assignResultValue, genCall, genRet): modified to use the new
5943         function return value scheme with WREG,PRODL,PRODH,FSR0L and FSR0,
5944         genPcall is still broken,
5945         * (genFunction): added code to create 'A' type pBlocks when
5946         interrupt functions are generated, code not extensively tested yet,
5947         ISRs push WREG,STATUS,BSR,PRODL,PRODH,FSR0L,FSR0H registers on stack,
5948         * (genEndFunction): modified so ISRs pop stored registers from stack,
5949         * (genMultOneByte): cleanup,
5950         * (AccRsh): added flag andmask, to and result with appropriate mask,
5951         * (genUnpackBits,genPackBits): fixed and can handle bit fields,
5952         * (genDataPointerGet): fixed and reenabled its use,
5953         * (genNearDataPointerGet): bugs fixed,
5954         * (genDataPointerSet): bugs fixed,
5955         * src/pic16/genutils.c: added functions pic16_DumpValue,pic16_DumpAop,
5956         pic16_DumpSymbol, pic16_DumpOp,
5957         * src/pic16/genutils.h: function prototypes for the above functions,
5958         * src/pic16/glue.c: new flags initsfpnt, to initialize stack/frame
5959         pointers,
5960         * (pic16emitRegularMap): many many many improvements, but needs a
5961         major cleanup,
5962         * src/pic16/main.c: enable_stack in pic16_options is removed,
5963         * (_pic16_parseOptions): removed command line options -penable-stack,
5964         * (_process_pragma): emit stack symbol only when stack pragma is
5965         processed,
5966         * src/pic16/pcode.c: pic16_pc_fsr0 is removed, all operations are
5967         redirected to FSR0L/FSR0H pair,
5968         * (pic16_get_op, pic16_get_op2): modifications and improvements,
5969         * (pic16_getRegFromInstruction, pic16_getRegFromInstruction2): added
5970         cases PO_PRODL,PO_PRODH, pic16_getRegFromInstruction2 returns sane
5971         for immediates,
5972         * (insertBankSwitch): modified to handle cases like: (alfa + 1)
5973         * (dumpPicOptype): NEW,
5974         * src/pic16/pcode.h: added PO_PCLATU,PO_PRODL,PO_PRODH in enum,
5975         * src/pic16/pcoderegs.c (pCodeRegMapLiveRangesInFlow): fixed bug
5976         with movff instruction,
5977         * src/pic16/ralloc.c: renamed typeRegWithIdx to pic16_typeRegWithIdx,
5978         added pic16_int_regs, some packRegsFor* functions are commented out,
5979         because produce errors,
5980         * src/pic16/NOTES: minor modifications
5981
5982 2004-02-18  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
5983
5984         * as/mcs51/aslink.h, as/mcs51/lkarea.c, as/mcs51/lkdata.c, as/mcs51/lkmain.c,
5985         as/mcs51/lkmem.c, src/SDCCglob.h, src/SDCCmain.c: added options --stack-size and
5986         --pack-iram.
5987         * doc/sdccman.lyx: described options --stack-size and --pack-iram.
5988         * as/mcs51/lkaomf51.c: fixed bug #895763
5989
5990 2004-02-17 Bernhard Held <bernhard AT bernhardheld.de>
5991
5992         * device/include/c8051f320.h: added. Contributed by Maarten Brock.
5993
5994 2004-02-17 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
5995
5996         * doc/sdccman.lyx: added details about the HC08 storage classes and
5997         interrupts, fixed the register usage info for z80 & gbz80
5998
5999 2004-02-17 Vangelis Rokas <vrokas AT otenet.gr>
6000
6001         * doc/sdccman.lyx: added more pic16 port documentation
6002         * device/include/pic16/: added header pic18fregs.h
6003
6004 2004-02-16 Bernhard Held <bernhard AT bernhardheld.de>
6005
6006         * doc/sdccman.lyx: added Vangelis' contribution
6007
6008 2004-02-16 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
6009
6010         * src/SDCClrange.c (rlivePoint): live range of SEND operand should
6011         extend to the next CALL or PCALL, not just to the next CALL.
6012
6013 2004-02-16 Vangelis Rokas <vrokas AT otenet.gr>
6014
6015         * src/pic16/gen.c (genInline): fixed bug #896482 with inline assembly
6016
6017 2004-02-15 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
6018
6019         * src/mcs51/ralloc.c (packRegsForAssign, reassignAliasedSym): fixed
6020         bug #895752 and a better fix for bug #716790
6021
6022 2004-02-15 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
6023
6024         * src/SDCCsymt.c (processFuncArgs): fixed bug #896796
6025
6026 2004-02-14 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
6027
6028         * doc/sdccman.lyx: minor changes, minor changed
6029
6030 2004-02-13 Bernhard Held <bernhard AT bernhardheld.de>
6031
6032         * src/SDCCicode.c (usualBinaryConversions): removed pic16 from ports
6033         which can't handle SDCC_NEWONEBYTEOPS,
6034         (geniCodeMultiply): removed conversion from mult to shift for pic14
6035         and pic16
6036
6037 2004-02-12 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
6038
6039         * src/hc08/gen.h,
6040         * src/hc08/gen.c (storeRegToAop, aopOp, aopAdrStr, accopWithAop,
6041         rmwWithAop): Ported my 2003-10-02 fix for bug #663539 to the hc08,
6042         thus fixing bug #895406
6043
6044 2004-02-11 Bernhard Held <bernhard AT bernhardheld.de>
6045
6046         * device/lib/_modsint.c,
6047         * device/lib/_modslong.c: sign follows divisor only
6048         * src/hc08/gen.c (genMultOneByte): if result size is 1,
6049         signs or signedness can be ignored
6050         * src/SDCCast.c (addCast): cosmetic - added lineno to CAST
6051         * src/SDCCast.c (resultTypePropagate): added even more ops: +, - and *,
6052         added optimization for IFX,
6053         (decorateType): Mult/Div/ModOneByte ops can handle all kind of signed
6054         arguments;
6055         reenabled optimization for IFX, which was removed on 2004-01-11
6056         * src/SDCCast.h: added return type IFX
6057         * src/SDCCicode.c: Mult/Div/ModOneByte ops can handle all kind of signed
6058         arguments with 8 or 16 bit results; pic14 and pic16 ports use old
6059         promotion behaviour; env. var. SDCC_NEWONEBYTEOPS selects the new,
6060         SDCC_OLDONEBYTEOPS selects the old behaviour
6061         * src/SDCCsymt.c (computeType): type2 can be NULL (for LEFT_OP);
6062         changed again and commented promotion rule
6063         * src/SDCCval.c (valDiv): promotion no longer necessary
6064         * src/ds390/gen.c (genMultOneByte) (genDivOneByte) (genModOneByte),
6065         * src/mcs51/gen.c (genMultOneByte) (genDivOneByte) (genModOneByte):
6066         rewritten
6067         * support/regression/tests/onebyte.c: added
6068
6069 2004-02-11 Vangelis Rokas <vrokas AT otenet.gr>
6070
6071         * gen.c (genInline): reverted to old code for assemnling inline
6072         code because of bug reported James Chadd
6073
6074 2004-02-10 Vangelis Rokas <vrokas AT otenet.gr>
6075
6076         * ralloc.h: missing declarations from previous patch,
6077         seems that patch for ralloc.h was never applied, fixed
6078
6079 2004-02-10 Hans-Juergen Dorn <hans.dorn AT apl-landau.de>
6080            patch committed by Vangelis Rokas <vrokas AT otenet.gr>
6081
6082         * pcode.c,
6083         * pcode.h,
6084         * ralloc.h: added FSR0L, FSR0H and other missing PIC16 SFR's for
6085         indirect addressing. Marked FSR0 as deprecated
6086         * gen.c (pointerCode): commented out, not needed now
6087         (pic16_popGet2p): new MOVFF helper function
6088         (genGenPointerGet),
6089         (genGenPointerSet): reimplemented with MOVFF and POSTINC0
6090         (shiftRLong): removed duplicate debugging info
6091
6092 2004-02-10 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
6093
6094         * src/ds390/gen.c (genNearPointerGet),
6095         * src/mcs51/gen.c (genNearPointerGet): allow the genDataPointerGet()
6096         optimization with bits, but not bitfields.
6097         * src/ds390/ralloc.c (packRegisters),
6098         * src/mcs51/ralloc.c (packRegisters): fixed bug #884453 & #880832
6099
6100 2004-02-09 Bernhard Held <bernhard AT bernhardheld.de>
6101
6102         * src/SDCCcse.c (algebraicOpts): copy operands before modification
6103
6104 2004-02-09 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
6105
6106         * src/SDCCsymt.h,
6107         * src/SDCCicode.c (operandFromSymbol),
6108         * src/mcs51/ralloc.c (verifyRegsAssigned, serialRegAssign),
6109         * src/ds390/ralloc.c (verifyRegsAssigned, serialRegAssign),
6110         * src/z80/ralloc.c (verifyRegsAssigned, serialRegAssign),
6111         * src/hc08/ralloc.c (verifyRegsAssigned, serialRegAssign),
6112         * src/pic/ralloc.c (verifyRegsAssigned, serialRegAssign),
6113         * src/pic16/ralloc.c (verifyRegsAssigned, serialRegAssign): fixed
6114         bug #892038
6115         * src/SDCCast.c (createIvalStruct, createIvalArray, gatherAutoInit),
6116         * src/SDCCglue.c (emitRegularMap, printIvalStruct, printIvalArray,
6117         printIvalCharPtr, printIvalPtr, printIval, emitStaticSeg, emitOverlay)
6118         * src/SDCCsymt.c (newSymbol),
6119         * src/SDCC.y (struct_or_union_specifier, enum_specifier,
6120         enumerator_list),
6121         * src/SDCCval.h,
6122         * src/SDCCval.c (newiList): fixed bug #885705
6123
6124 2004-02-08  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
6125
6126         * doc/sdccman.lyx: added section 3.1.4: sdcclib.
6127         * as/mcs51/lkmem.c: report the size of the stack in .mem file.
6128
6129 2004-02-08 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
6130
6131         * device/include/c8051f120.h,
6132         * device/include/c8051f300.h,
6133         * device/include/c8051f310.h: added/updated header files for Silicon
6134         Laboratories (formerly Cygnal) CPUs. Contributed by Maarten Brock.
6135         * doc/sdccman.lyx: minor changes, recommended diff -Naur and diff -u
6136         in new section Submitting patches
6137
6138 2004-02-08 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
6139
6140         * src/mcs51/gen.c (genNearPointerGet, genPagedPointerGet,
6141         genFarPointerGet, genCodePointerGet, genGenPointerGet,
6142         genNearPointerSet, genPagedPointerSet, genFarPointerSet,
6143         genGenPointerSet),
6144         * src/ds390/gen.c (genNearPointerGet, genPagedPointerGet,
6145         genFarPointerGet, genCodePointerGet, genGenPointerGet,
6146         genNearPointerSet, genPagedPointerSet, genFarPointerSet,
6147         genGenPointerSet),
6148         * src/pic16/gen.c (genNearPointerGet, genPagedPointerGet,
6149         genFarPointerGet, genCodePointerGet, genGenPointerGet,
6150         genNearPointerSet, genPagedPointerSet, genFarPointerSet,
6151         genGenPointerSet),
6152         * src/pic/gen.c (genNearPointerGet, genPagedPointerGet,
6153         genFarPointerGet, genCodePointerGet, genGenPointerGet,
6154         genNearPointerSet, genPagedPointerSet, genFarPointerSet,
6155         genGenPointerSet): fixed bug #892400
6156         * src/pic16/gen.c (genSkipz, AccRol): disabled functions with #if 0
6157         to eliminate build warnings.
6158         * src/SDCCast.c (processParms),
6159         * src/SDCC.y (function_declarator2, declarator2_function_attributes):
6160         fixed bug 751859
6161         * support/valdiag/valdiag.py: added GCC to the list of defines active
6162         when compiling with gcc
6163
6164 2004-02-07 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
6165
6166         * support/Util/SDCCerr.h,
6167         * support/Util/SDCCerr.c,
6168         * src/SDCCast.c (decorateType, sizeofOp): complain when sizeof is used
6169         with an incomplete type (fixed bug #883734)
6170         * src/SDCCicode.c (geniCodeCast): fixed bug #890510
6171
6172 2004-02-07 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
6173
6174         * src/pic16/gen.c (genCmpEq, shiftRLong): fixed declarations
6175
6176 2004-02-06 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
6177
6178         * src/SDCCast.c (decorateType),
6179         * src/SDCCicode.c (geniCodeParms, geniCodeCall): fixed bugs in my ANSI
6180         function pointer implementation
6181         * support/regression/tests/funptrs.c: added tests to verify both forms
6182         of function pointers work correctly. Added tests to verify parameters
6183         are passed in the correct order.
6184
6185 2004-02-06  Vangelis Rokas <vrokas AT otenet.gr>
6186
6187         * device.c (regCompare): registers are sorted by ascending
6188         address and increasing size,
6189         * main.c (_pic16_finaliseOptions): removed the declaration
6190         of compiler macro MCU. Now a macro of the format pic18fxxxx
6191         will be defined from the command line
6192
6193 2004-02-06  Hans-Juergen Dorn <hans.dorn AT apl-landau.de>
6194             patch committed by Vangelis Rokas <vrokas AT otenet.gr>
6195
6196         * pcode.c (pic16initMnemonics): fixed typo in assignment to PCOP_RLNCF
6197         PCOP_RLCF was overwritten!
6198         * gen.c (genSkip): commented out calls to pic16_emitcode,
6199         * (genCmpEQ): fixed "long" compares, only high word did get compared,
6200         * (genlshTwo),
6201         * (genRRC): added debugging info,
6202         * (shiftL2Left2Result): Fixed bug, if offr > offl. Result got
6203         overwritten while shifting,
6204         * (shiftR2Left2Result): Fixed bug, if offr < offl. Result got
6205         overwritten while shifting,
6206         * (AccLsh),
6207         * (AccRsh),
6208         * (shiftLLeftOrResult),
6209         * (shiftRLeftOrResult),
6210         * (shiftRLong),
6211         * (shiftLLong): Implemented with pic16_emitpcode
6212         * (genlshFour): Replaced pic16_aopPut with pic16_emitpcode,
6213         * (genLeftShift): Fixed bug, operand for shift by variable always
6214         was "and"ed with 0x0f,
6215         * (genLeftShiftLiteral),
6216         * (genrshTwo),
6217         * (genRightShiftLiteral): added debugging info,
6218         * (genrshFour): added comment,
6219         * (genRightShift): determined signedness from operand "left"
6220         instead of "result"
6221
6222 2004-02-04 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
6223
6224         * src/SDCCicode.c (geniCodeParms),
6225         * src/SDCCast.c (decorateType, processParms): support for ANSI-style
6226         function pointers, fixed function pointer bugs #861242 and #861896
6227
6228 2004-01-31 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
6229
6230         * device/include/c8051f000.h,
6231         * device/include/c8051f120.h,
6232         * device/include/c8051f300.h: added header files for Silicon
6233         Laboratories (formerly Cygnal) CPUs. Contributed by Maarten Brock.
6234
6235 2004-01-31 Bernhard Held <bernhard AT bernhardheld.de>
6236
6237         * src/SDCCast.c (processParams): added new type flow and restructured
6238         (gatherAutoInit): added new type flow
6239         (addCast): cosmetic changes
6240         (getLeftResultType): added new type flow for array indices, patch
6241         provided by Stas, see FR #877103
6242         (decorateType): SDCC_NEWTYPEFLOW removed, new type flow is now standard;
6243         array index patch by Stas
6244         * src/SDCCast.h: added prototype getResultTypeFromType()
6245         * src/SDCCval.h,
6246         * src/SDCCval.c (resolveIvalSym) (resolveIvalSym),
6247         * src/pic/glue.c (pic14emitStaticSeg),
6248         * src/pic16/glue.c (pic16emitStaticSeg),
6249         * src/SDCCglue.c (emitRegularMap) (emitStaticSeg): added new type flow
6250         for initialization of symbols
6251         * src/SDCCicode.c (geniCodeArray): removed warning W_ARRAY_BOUND
6252         * support/Util/SDCCerr.h:
6253         * support/Util/SDCCerr.c: replaced W_ARRAY_BOUND by W_IDX_OUT_OF_BOUNDS
6254         * .version: bumped version number to 2.3.8
6255         * device/include/Makefile.in (install),
6256         * doc/Makefile (install): changed to 'rm `find ...`' construct to
6257         avoid warnings
6258
6259 2004-01-30 Bernhard Held <bernhard AT bernhardheld.de>
6260
6261         * support/regression/tests/libmullong.c: fixed for 64 bit hosts
6262         Slade Rich fixed an optimization bug
6263         * src/pic/pcodepeep.c,
6264         * src/pic/pcoderegs.c
6265         * doc/Makefile (install): added test for directory
6266
6267 2004-01-30 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
6268
6269         * src/mcs51/ralloc.c (getRegPtr, getRegGpr),
6270         * src/ds390/ralloc.c (getRegPtr, getRegGpr),
6271         * src/pic/ralloc.c (getRegPtr, getRegGpr),
6272         * src/pic16/ralloc.c (getRegPtr, getRegGpr),
6273         * src/z80/ralloc.c (getRegGpr): fixed bug #883361
6274         * as/mcs51/asexpr.c (term),
6275         * as/hc08/asexpr.c (term): fixed bug #887146
6276
6277 2004-01-29 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
6278
6279         * src/z80/gen.c (genMult): handle single byte result product
6280         * src/SDCCopt.c (killDeadCode): never convert ADDRESS_OF iCode to
6281         DUMMY_READ_VOLATILE (fixed bug #886367)
6282
6283 2004-01-27 Bernhard Held <bernhard AT bernhardheld.de>
6284
6285         * support/regression/tests/libmullong.c: fixed logic, on little endian
6286         hosts we ended without a mullong_wrapper()
6287
6288 2004-01-27 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
6289
6290         * ChangeLog: changed "@" to " AT " in hopes of reducing spam and
6291         virus/worm forged address usage.
6292
6293 2004-01-27 Bernhard Held <bernhard AT bernhardheld.de>
6294
6295         Fixed promotion, it should be done on AST level:
6296         * src/SDCCast.c (addCast): added promotion to int
6297         (decorateType): updated call to upCast()
6298         * src/SDCCicode.c (geniCodeLeftShift): removed call to
6299         usualUnaryConversions()
6300
6301 2004-01-26  Michael Hope  <michaelh AT juju.net.nz>
6302
6303         * support/regression/tests/literalop.c (mulWrapper): Added a
6304         wrapper to remove integer overflow warnings.
6305
6306         * support/regression/tests/float_trans.c: Made work on host.
6307
6308         * support/regression/ports/ucz80/spec.mk (UCZ80): Made detect the
6309         location of sz80.
6310
6311         * support/regression/generate-cases.py (main): Changed from inline
6312         to a main method.
6313
6314         * doc/Makefile (install): Changed to depth first to get rid of
6315         missing directory install warning.
6316
6317         * as/Makefile (install-doc): Made work on Mac.
6318
6319 2004-01-25 Bernhard Held <bernhard AT bernhardheld.de>
6320
6321         * src/SDCCast.c: added an additional type flow in decorateType() of
6322         opposite direction, see feature request #860006; it's enabled at runtime
6323         by setting the environment variable SDCC_NEWTYPEFLOW
6324         * src/SDCCast.h: changed prototype of decorateType()
6325         * src/SDCCglue.c (emitRegularMap): updated call of decorateType()
6326         * src/SDCCicode.c (geniCodeDivision) (geniCodeModulus): promotion from
6327         'char' to 'int' can be omitted, if both operands are 'unsigned char';
6328         see feature request #877103
6329         * src/SDCCval.c: updated call of decorateType()
6330         (valBitwise): fixed bug #882876
6331         (valMinus): added promotion
6332         (valLogicAndOr): result is unsigned
6333         (cheapestVal) (constVal): literals from 0...255 are 'unsigned char' now
6334         * src/SDCCsymt.c (computeType),
6335         * src/mcs51/gen.c (genCmpGt) (genCmpLt): literal 'unsigned char'
6336         must not cause an unsigned operation
6337         * src/pic/glue (pic14emitRegularMap),
6338         * src/pic16/glue.c (pic16emitRegularMap): updated call of decorateType()
6339
6340 2004-01-23 Bernhard Held <bernhard AT bernhardheld.de>
6341
6342         * src/pic/pcode.c (PCodeID): commented out left over debug code
6343
6344 2004-01-20 Bernhard Held <bernhard AT bernhardheld.de>
6345
6346         * support/valdiag/tests/overflow.c: added shift tests
6347         * src/pic/device.c,
6348         * src/pic/gen.c,
6349         * src/pic/gen.h,
6350         * src/pic/glue.c,
6351         * src/pic/main.c,
6352         * src/pic/pcode.c,
6353         * src/pic/pcode.h,
6354         * src/pic/pcodepeep.c,
6355         * src/pic/pcoderegs.c,
6356         * src/pic/ralloc.c,
6357         * src/pic/ralloc.h: applied patch from Slade Rich;
6358         added support for multiple code pages and multiple RAM banks on the
6359         PIC 14 port. The ASM files now no longer simply assume all the
6360         code / RAM are in the same page / bank. This means the linker can
6361         safely allocate code/RAM of separate ASM files to different pages/banks.
6362         * doc/sdccman.lyx: added Slade's tips
6363         * src/mcs51/peeph.def: fixed bug #880768
6364
6365 2004-01-20 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
6366
6367         * src/hc08/ralloc.c (rematStr): fixed bug #879282
6368         * src/SDCCast.c (decorateType): fixed bug #880197
6369
6370 2004-01-20  Michael Hope  <michaelh AT juju.net.nz>
6371
6372         * sim/ucsim/gui.src/serio.src/main.cc: Fixed unconditional use of
6373         getopt.h.
6374
6375         * debugger/mcs51/cmd.c (getValBasic): Changed strtof to strtod as
6376         strtof is not part of C89 and isn't included with Mac OS X.
6377
6378 2004-01-20 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
6379
6380         * src/hc08/gen.c (genPlusIncr, genUminus, genMinusDec, genCmp,
6381         shiftL2Left2Result): fixed bug #879326
6382         (genAnd, genOr, genXor): fixed bug when result was of type AOP_CRY
6383         (genMultOneByte): fixed bug in signed vs unsigned multiplication
6384         * sim/ucsim/hc08.src/inst.cc (inst_clr): added missing effective
6385         address fetch for clr instruction
6386         * device/lib/hc08/_mulint.c: created optimized assembly version
6387         * src/SDCCdflow.c (computeDataFlow): fixed bug #878209
6388
6389 2004-01-19 Bernhard Held <bernhard AT bernhardheld.de>
6390
6391         * src/SDCCicode.c (geniCodeArray): applied patch from Stas Sergeev
6392         proposed in FR #877103
6393
6394 2004-01-18 Bernhard Held <bernhard AT bernhardheld.de>
6395
6396         * src/SDCCval.c (cheapestVal): added missing checks
6397         * src/SDCCicode.c (usualBinaryConversions): fixed condition
6398         * src/SDCCicode.c (geniCodeAdd): fixed part of bug #877103
6399
6400 2004-01-16 Klaus Flittner <klaus_flittner AT gmx.de>
6401
6402         * src/ds390/gen.c (aopOp3): fixed the assignment of different dptrs to
6403         equal operands
6404
6405 2004-01-16 Vangelis Rokas <vrokas AT otenet.gr>
6406
6407         * src/SDCCmain.c (linkEdit): variable $3 of the linker command is
6408         loaded with the linker search paths (-L arguments) and the libraries
6409         to be linked with the current source (-l arguments). Changes
6410         currently will affect only the pic16 port.
6411         * src/pic16/main.c (_pic16_finaliseOptions): add to the linker
6412         include path the port specific paths and port specific libraries,
6413         * gplink command now contains the $3 argument,
6414         * src/pic16/device.h,
6415         * src/pic16/device.c,: structure PIC_device is made public and
6416         renamed to PIC16_device, the same for variable Pics which is renamed
6417         to Pics16. Updated all references to them.
6418         * src/pic16/glue.c (pic16glue): corrected bug with code
6419         initialization which bypassed the variable initializations block.
6420
6421         * device/lib/pic16/Makefile.rules: removed --penable-stack from
6422         COMPILE_FLAGS and added the --nostdinc option
6423
6424 2004-01-15 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
6425
6426         * device/include/mc68hc908jb8.h: Register defs for another member
6427         of the hc08 family. Contributed by Bjorn Bringert - thanks!
6428
6429 2004-01-14 Vangelis Rokas <vrokas AT otenet.gr>
6430
6431         Documenting changes from previous commits.
6432         * configure.in (version 1.56),
6433         * configure: initially I've added AC_CONFIG_SUBDIRS(device/lib/pic16)
6434         when generating output files to configure the pic16 library,
6435         but now I've commented it out, since gputils aren't installed in the
6436         SF compile farm, so library won't compile
6437
6438         * device/lib/Makefile.in (version 1.56): initially I've added in
6439         target 'all' the prerequestive 'model-pic16' so it compiled the
6440         pic16 library, but now I've commented it out for the same reasons
6441         above,
6442         * added targets 'model-pic16' and 'objects-pic16' to compile the
6443         library
6444         * added target 'port-specific-objects-pic16' to handle the
6445         generated libraries and copy them into the build/ directory
6446         * added target 'clean-intermediate-pic16' to clean intermediate
6447         files into pic16 directory
6448         * in target 'installdirs' added line to create directory pic16 in
6449         the installation path
6450
6451         * device/include/Makefile.in (version 1.11): in target 'install'
6452         added lines to copy all header files to installation path,
6453         * in target 'installdirs' added line create directory for pic16
6454         headers in the installation path
6455
6456 2004-01-13 Klaus Flittner <klaus_flittner AT gmx.de>
6457
6458         * src/ds390/gen.c (genCall): fixed a double use of acc and b after
6459          a function call
6460
6461 2004-01-13 Bernhard Held <bernhard AT bernhardheld.de>
6462
6463         * configure,
6464         * device/lib/configure.in,
6465         * device/lib/configure: fixed for autoconf 2.57
6466
6467 2004-01-13 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
6468
6469         * src/z80/main.c (_parseOptions): fixed the portmode= command line
6470         option so that it actually works. Made it specific to the z80, since
6471         the gbz80 doesn't have these kinds of I/O ports.
6472
6473 2004-01-13 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
6474
6475         * device/include/z180.h,
6476         * device/lib/_memcpy.c,
6477         * device/lib/_memmove.c,
6478         * device/lib/_mulint.c,
6479         * device/lib/ser_ir.c,
6480         * device/lib/ser_ir_cts_rts.c,
6481         * device/lib/_strcmp.c,
6482         * device/lib/_strtok.c: fixed pragmas to non-deprecated form
6483         * src/z80/main.c (_process_pragma): add support for pragmas bank and
6484         portmode; added deprecation warning for bank= and protmode= forms.
6485         Also, guard against buffer overflow.
6486         * src/z80/gen.c (aopGet): generate better code for sfr banked read
6487
6488 2004-01-13 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
6489
6490         * src/hc08/main.c (_hc08_genAssemblerPreamble): fixed bug #875487. Also
6491         changed interrupt vector table generation to only emit declared vectors.
6492         * device/include/Makefile.in: added missing backslash
6493         * device/lib/pic16/Makefile.rules: add $(MODELFLAGS) to $(CFLAGS)
6494
6495 2004-01-13 Vangelis Rokas <vrokas AT otenet.gr>
6496
6497         Mainly changes to support compilation of the device libraries
6498         * src/pic16/device.c: stack is allocated via symbol and not
6499         via literal number. The symbol is placed in the corresponding
6500         position of the data ram
6501         * (pic16_dump_section): relocatable and absolute uninitialized
6502         data are now emitted in sorted order to reduce section naming,
6503         * src/pic16/ralloc.c (newReg): fixed bug with SFR's that
6504         weren't marked as being in the access bank,
6505
6506 2004-01-13 Vangelis Rokas <vrokas AT otenet.gr>
6507
6508         Added portion of GNU PIC Library under the directory
6509         device/include/pic16 and device/lib/pic16. These files
6510         contain the declarations of SFRs for the PIC18Fxx2 devices.
6511         The directory is initialized via configure from toplevel.
6512
6513 2004-01-12 Klaus Flittner <klaus_flittner AT gmx.de>
6514
6515         * src/ds390/gen.c (operandsEqu): fixed a little typo, that prevented
6516         the spilllocations to be compared correctly
6517
6518 2004-01-12 Bernhard Held <bernhard AT bernhardheld.de>
6519
6520         * src/SDCCast.c (decorateType): fixed bug introduced today
6521
6522 2004-01-12  Borut Razem <borut.razem AT siol.net>
6523
6524         * src/SDCC.lex, support/Util/SDCCerr.h, support/Util/SDCCerr.c,
6525         doc/sdccman.lyx: upper case pragmas are deprecated
6526
6527 2004-01-12 Bernhard Held <bernhard AT bernhardheld.de>
6528
6529         * src/SDCCast.c (decorateType): replacing 'ul > 0' by  '!ul' results
6530         in simpler and even better code
6531
6532 2004-01-11 Bernhard Held <bernhard AT bernhardheld.de>
6533
6534         * src/SDCCicode.c (operandOperation): fixed bug #874819
6535         * src/SDCCast.c (decorateType): fixed
6536         char foo (unsigned long ul) { return ul > 0; }
6537
6538 2004-01-11 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
6539
6540         * doc/sdccman.lyx: Moved and added some sections, small changes
6541         all over. Telling LaTeX to be less strict with word spacing
6542         to better keep the right margin. Changed some notes about
6543         maintainance of the ports in section 3.2.1 - is it OK like this?
6544
6545 2004-01-11 Vangelis Rokas <vrokas AT otenet.gr>
6546
6547         SDCC source changes:
6548         * src/SDCCopt.c (cntToFcall, cnvToFloatCast, cnvFromFloatCast,
6549         convilong): modified to inform the pic16 port that builtin functions
6550         are external
6551
6552         PIC16 PORT specific changes:
6553         * src/pic16/device.c pic16_dump_equates() added,
6554         processor registers declared internally by the port are emitted in
6555         the translation as equates,
6556         * src/pic16/gen.c: inline code is passed unprocessed to the
6557         translation,
6558         * (pic16_popGetLit2): fnuction modified to take second operand as
6559         pCodeOp pointer and not as literal,
6560         * (popRegFromIdx): prefixed with pic16_,
6561         * (pic16_popCombine2): modified to receive already allocated pCode
6562         operands,
6563         * (pic16_pushpCodeOpReg, pic16_poppCodeOpReg): added
6564         * (genFunction): initializes local stack frame and pushes on stack
6565         all the registers used by this function,
6566         * (genEndFunction): restores all registers from stack and restores
6567         stack frame,
6568         * src/pic16/glue.c (pic16emitRegularMap): various changes and
6569         improvements,
6570         * (pic16glue): changed the program startup sequence,
6571         * added new dbName code 'A' for functions placed in absolute section
6572         * src/pic16/main.c: added function attribute _naked,
6573         * added pragma 'code' to place a fnuction at an absolute address,
6574         * added command line arguments --debug-ralloc and --pcode-verbose,
6575         * (_pic16_finiliseOptions): options.all_callee_saves is set by default
6576         * src/pic16/pcode.c (pic16_pBlockConvert2Absolute) added,
6577         * (pic16_newpCodeOpLit2): modified to take the second operand as
6578         pCodeOp pointer,
6579         * (pic16_printpBlock): modified to emit each function in a separate
6580         section,
6581         * (pic16_get_op): modified to use the gpasm modifiers LOW,HIGH and
6582         UPPER for immediate operands,
6583         * src/pic16/pcodepeeph.c: added peephole support for the LFSR
6584         instruction,
6585         * src/pic16/peeph.def: all peepholes with movff are commented out,
6586         because there is a problem in the pcode peep optimizer,
6587         * src/pic16/ralloc.c: the register allocator can now reuse local
6588         function symbols for another function. This saves register usage.
6589         * src/pic16/ralloc.h: added flag isLocal in structure regs,
6590
6591         Added file src/pic16/NOTES with information about program writing on
6592         the current port version.
6593
6594 2004-01-11 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
6595
6596         * src/mcs51/peephole.def: added peepholes 177.c,d (redundant moves)
6597         and peephole 252 (array access)
6598
6599 2004-01-09  Borut Razem <borut.razem AT siol.net>
6600
6601         * src/SDCCmain.c : fixed #872250: -l command line defined library
6602           files are scanned before standard library files
6603
6604 2004-01-10 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
6605
6606         * src/SDCCast.c (decorateType): fixed bug #874046
6607
6608 2004-01-09  Borut Razem <borut.razem AT siol.net>
6609
6610         * support/scripts/sdcc.nsi: remove previous installation
6611
6612 2004-01-09 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
6613
6614         * src/SDCCglue.c (createInterruptVect): don't append 7(5) padding
6615         bytes for last interrupt vector (mcs51)
6616         * sdcc.spec: fixed typo
6617
6618 2004-01-09 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
6619
6620         * src/mcs51/gen.c (genFunction, genEndFunction, genReceive, getTempRegs,
6621         gen51Code): more efficient parameter receive for --model-large
6622         ("bug" #845294)
6623
6624 2004-01-09 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
6625
6626         * src/ds390/main.c,
6627         * src/z80/main.c: added missed needLinkerScript flags (more than
6628         one port structure defined in these file)
6629         * src/ds390/gen.c (aopForSym, aopOp, operandsEqu, aopOp3): fixed
6630         bug #795325
6631
6632 2004-01-08 Vangelis Rokas <vrokas AT otenet.gr>
6633
6634         * src/SDCCmain.c: removed various references to DEFAULT_PORT
6635         * src/port.h: added flag needLinkerScript in port->linker
6636         structure to inform whether to create a .lnk file or not,
6637         * src/avr/main.c,
6638         * src/ds390/main.c,
6639         * src/hc08/main.c,
6640         * src/mcs51/main.c,
6641         * src/pic/main.c,
6642         * src/pic16/main.c,
6643         * src/xa51/main.c,
6644         * src/z80/main.c: changed appropriately to configure
6645         needLinkerScript flag
6646         * src/pic/gen.c,
6647         * src/pic16/gen.c (genAddrOf): fixed bug #863624
6648         * src/pic/glue.c: added variable udata_section_name to
6649         override default uninitialized data segment definition for
6650         devices only with SHAREBANK memory (reported from Erik Epetrich)
6651         * (pic14emitOverlay): modified to emit a commented overlay segment
6652         directive when no overlay data exist
6653         * (picglue): modified to emit uninitialized data segment
6654         according to udata_section_name
6655         * src/pic/main.c (_pic14_parseOptions): added command line
6656         options --udata-section-name=[name] to override default
6657         udata definition name
6658         * modified _linkCmd and _asmCmd to include compiler passed
6659         arguments via -W option
6660         * src/pic16/main.c: added $l in _asmCmd, changed extension for
6661         object file from '.rel' to '.o' in port->linker structure,
6662         changed size of fptr from 2 to 3 in port structure
6663
6664 2004-01-07  Borut Razem <borut.razem AT siol.net>
6665
6666         * support/scripts/sdcc.nsi: update PATH
6667         * support/scripts/sdcc.ico: craeted
6668
6669 2004-01-07 Bernhard Held <bernhard AT bernhardheld.de>
6670
6671         * device/include/Makefile.in: fix install
6672         * doc/Makefile: fix install
6673
6674 2004-01-07 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
6675
6676         * src/SDCCsymt.c (processFuncArgs): fixed superflous allocation noted
6677         in bug #860505
6678         * src/SDCCmem.c (printAllocInfoSeg, printAllocInfo): minor changes to
6679         how the function variable allocation summary is displayed; also
6680         include information about variables allocated to the overlay
6681         segment
6682
6683 2004-01-06  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
6684
6685         * as/mcs51/lkmain.c: Help about -Y option
6686         * as/mcs51/lkarea.c: Fixed gcc warnings
6687
6688 2004-01-06 Bernhard Held <bernhard AT bernhardheld.de>
6689
6690         * src/SDCCval.c (valShift): changed from 16 to 32 bit shift count,
6691         fixed warning
6692         * support/valdiag/tests/overflow.c: added
6693         * src/SDCCast.c (decorateType),
6694         * src/SDCCicode.c (geniCodeLeftShift): added promotion to int for
6695         LEFT_OP (left shift)
6696
6697 2004-01-06  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
6698
6699         * as/mcs51/lkmain.c: stack must be after data when option -Y is not used
6700         (default behaviour).
6701
6702 2004-01-06 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
6703
6704         A python script to validate compiler diagnostic messages. It can be
6705         used to verify that sdcc complains about bad c source code and
6706         gives a good location of the error.
6707         * support/valdiag/Makefile,
6708         * support/valdiag/valdiag.py,
6709         * support/valdiag/tests/*
6710
6711 2004-01-06 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
6712
6713         * src/SDCC.y (enum_specifier, enumerator_list, opt_assign_expr),
6714         * src/SDCCsymt.c (newEnumType),
6715         * src/SDCCsymt.h
6716         * support/Util/SDCCerr.c,
6717         * support/Util/SDCCerr.h: fixed bug #871258 and some other unreported
6718         enum related bugs.
6719         * support/regression/tests/enum.c: added test for enum values that
6720         require at least 2 bytes of storage.
6721
6722 2004-01-06 Vangelis Rokas <vrokas AT otenet.gr>
6723
6724         * src/common.h: added ifndef/define/endif macros
6725         around the header file.
6726         Bug reported from Jesus Calvino-Fraga
6727
6728 2004-01-06 Bernhard Held <bernhard AT bernhardheld.de>
6729
6730         * sdcc.spec: updated
6731         * device/include/Makefile.in: don't install CVS directories
6732         * device/lib/Makefile.in: added removal of CVS directories after install
6733         * doc/Makefile: fixed install, added local_icons
6734         * sim/ucsim/gui.src/Makefile.in: fixed an old typo
6735         * src/mcs51/gen.c (genRightShift): fixed bug #870788
6736         * src/ds390/gen.c (genRightShift): fixed bug #870788
6737         * src/SDCCast.c (decorateType): fixed bug #870781
6738
6739 2004-01-06 Vangelis Rokas <vrokas AT otenet.gr>
6740
6741         PIC16 port related changes:
6742         * device.c: removed pic16_finalMapping and pic16_finalMappingSize,
6743         added variable stackPos,
6744
6745         * gen.c: genCall, assignResultValue: added support for
6746         pushing/retrieving function parameters to/from stack,
6747         genFunction,genEndFunction: setup stack frame for the
6748         generated function,
6749         genAddrOf: will be changed according to bug 863624
6750
6751         * added files genutils.c and genutils.h which contain gen*
6752         debugged and optimised functions extracted from gen.c
6753
6754         * glue.c: added variable 'externs' which holds extern symbols,
6755         pic16emitRegularMap: is modified to properly handle relocatable
6756          symbols under the new scheme,
6757         pic16createInterruptVect: is modified
6758         pic16printPublics: is modified to emit 'global' assembler directives,
6759         added pic16_printExterns to print extern symbols,
6760         pic16glue: initializes stack/frame pointer in the beginning of
6761         the assembly output. Temporary hack, will be corrected later,
6762         because gplink yet does not support stack and SDCC does not
6763         yet support a type of crt0.o object to create the final binary.
6764
6765         * Removed many lines that contain 8051 legacy code.
6766         * The code is finally placed under a 'code' directive.
6767         * Added port specific options.
6768
6769         * _process_pragma: simplified since now we do not need *special*
6770         include file to define SFR registers. But a separate header
6771         will be needed. This will be developed later.
6772         * _pic16_parseOptions: added, parses port specific options:
6773         --pgen-banksel, --obanksel=, --pomit-config-words, --pomit-ivt,
6774         --pleave-reset-vector, --penable-stack, --pstack-model, --debug-xtra
6775         --preplace-udata-with=
6776
6777         * _pic16_setDefaultOptions: modified to initialize section names,
6778         but hack is temporarly out of order since it needs improvement.
6779         * _pic16_genAssemblerPreamble: configuration words are emitted by
6780         their address instead of their name. This part is incomplete and
6781         supports only the 18Fxx2 devices. Other devices will emit an error
6782         during assembly since they do not contain the same set of config
6783         registers
6784         * _pic16_genIVT: is modified,
6785
6786         * pcode.c: added definitions for some hardware registers that are needed
6787         for stack support
6788         * added flag is2LitOp and variable pci_magic in pCodeInstruction.
6789         All PCI entries are updated. Now LFSR is supported.
6790         * Removed pic16_pciTRIS is mentioned by mdubuc in source
6791         * added pic16_newpCodeOpLit2 to support instructions with
6792         two literal arguments
6793         * pic16_pCode2str: corrected code that emits assembler instructions
6794         with two literal operands and those that have an access bit modifier
6795         * genericPrint: now PC_ASMDIR pCodes, can emit a label if it exists,
6796         this fixes a bug which caused some labels to be lost, when an
6797         assembler directive was added, i.e. banksel,
6798         * pic16_FixRegisterBanking: improved logic that causes the insertion
6799         of bank switching,
6800         * InlineFunction: functions that are called once, are not any more
6801         inlined. This can be a port option in the future,
6802
6803         * pcode.h: added pCodeOpLit2 and added variable label in pCodeAsmDir
6804
6805         * ralloc.c: added pic16_rel_udata and pic16_fix_udata variables which
6806         hold the corresponding uninitialized symbols,
6807         * pic16_allocProcessorRegister: registers have explicit marked the
6808         accessBank field,
6809         * pic16_allocInternalRegister: registers are explicit marked as
6810         not used,
6811         * pic16_writeUsedRegs: pic16_dynDirectBitRegs was missing from the
6812         processing list, so bit registers were lost,
6813         *
6814
6815         * ralloc.h: added field 'accessBank' and original symbol operand
6816         in register definition,
6817         * removed the field isMapped from register definition,
6818
6819         ** Several functions have been removed from various sources:
6820         BanksUsedFlow2,BanksUsedFlow,FixBankFlow,InstructionRegBank,
6821         pic16_addMemRange,pic16_isREGinBank,pic16_dump_map,pic16_dump_cblock
6822         isSFR,validAddress,mapRegister,assignRegister,pic16_assignFixedRegisters
6823         pic16_assignRelocatableRegisters
6824
6825         ** others have been introduced:
6826         pic16_areRegsSame,pic16_dump_section,checkAddReg,pic16_groupRegistersInSection
6827         pic16_popGetLit2,pic16_popCombine2,pushw,pushaop
6828
6829 2004-01-05 Vangelis Rokas <vrokas AT otenet.gr>
6830
6831         * support/scripts/inc2h.pl: changed definition of BIT_AT
6832         to emit 'sbit at' instead of 'bit at'. This was a request.
6833
6834         PIC16 port related preliminary changes:
6835         * gen.c: prefixed function popRegFromString with
6836         pic16_ and all references to it corrected
6837         * pcode.c: all pic16_pc_* hardware registers prefixed
6838         with underscore (_),
6839         pic16_popCopyGPR2Bit(): function sets register wasUsed=1
6840         * ralloc.c: newReg(): when register is REG_SFR then
6841         set address to rIdx,
6842         pic16_allocProcessorRegister(): marks register wasUsed=0
6843         pic16_writeUsedRegs(): added a call to assign processor
6844         registers via pic16_assignFixedRegisters
6845
6846 2004-01-04  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
6847
6848         * as/mcs51/aslink.h, as/mcs51/lkarea.c, as/mcs51/lkdata.c,
6849         as/mcs51/lkmain.c, as/mcs51/lkmem.c: 8051 linker can now pack
6850         variables in unused register banks.  Also the SSEG is placed
6851         wherever there is enough space for it, and IDATA can be anywhere
6852         in internal RAM.  For now compile using -Wl-Y[stack_size].
6853         The mem file is different for this option as well, since it
6854         makes no sense of talking about DSEG lenght.
6855
6856 2004-01-02 Vangelis Rokas <vrokas AT otenet.gr>
6857
6858         * src/SDCClrange.c: fixed bug 869095 that caused segfault
6859         in certain cases, e.g. when ROM assignment, patch provided
6860         from Albert den Haan.
6861
6862 2004-01-01 Bernhard Held <bernhard AT bernhardheld.de>
6863
6864         Many signedness and type propagation fixes:
6865         * src/SDCCicode.c: made geniCodeCast() static
6866         replaced SPEC_ by IS_ (cosmetic)
6867         (operandOperation): fixed div and mod operation
6868         (usualBinaryConversions): added support for promotion of char
6869         (geniCodeMultiply): replaced (unsigned long) by (TYPE_UDWORD)
6870         (geniCodeDivision): replaced (unsigned long) by (TYPE_UDWORD)
6871         (geniCodeAdd): an array index will stay unsigned, even if promoted
6872         from char to int
6873         (geniCodeArray): ditto
6874         * src/SDCCicode.h: made geniCodeCast() static: removed prototype
6875         * src/SDCCsymt.c (computeType): added more support for char;
6876         promotion of char is selectable by promoteCharToInt, fixed signedness
6877         for all cases
6878         (powof2): replaced (unsigned long) by (TYPE_UDWORD)
6879         * src/SDCCsymt.h (powof2): replaced (unsigned long) by (TYPE_UDWORD)
6880         * src/SDCCval (val*): replaced signedness calculation by
6881         computeType()
6882         rearranged if-branches (cosmetic)
6883         (valShift): added warning W_SHIFT_CHANGED
6884         (valCompare): fixed problem with different types
6885         * src/hc08/rallo.c (leastUsedLR): fixed gcc 3.3 warning
6886         * support/regression/tests/literalop.c: added many cases
6887         * support/regression/tests/ast_constant_folding.c: changed finally to
6888         'unsigned int'
6889         * .version: new year, new version: 2.3.7
6890         * src/SDCCmain.c (main): applied patch #866468
6891         * debugger/mcs51/sdcdb.c (parseCmdLine): added -k for ucsim, patch
6892         provided by Scott Bronson
6893         * doc/sdccman.lyx: updated documentation for sdcdb
6894         updated and added chapter tips
6895
6896 2004-01-01 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
6897
6898         * src/SDCCsymt.h: missing from yesterday's commits
6899
6900 2003-12-31 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
6901
6902         * src/SDCC.y (struct_or_union_specifier),
6903         * support/Util/SDCCerr.c,
6904         * support/Util/SDCCerr.h: verify that struct & union tags are used
6905         as declared.
6906
6907 2003-12-29 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
6908
6909         * src/SDCCglobl.h: missing from yesterday's commits
6910
6911 2003-12-28 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
6912
6913         * src/SDCC.y (external_definition, type_specifier2, sfr_reg_bit,
6914         sft_attributes, struct_declaration, parameter_declaration,
6915         type_name, start_block, declaration_list),
6916         * src/SDCC.lex (check_type): support redefinition of typedef names
6917
6918 2003-12-22 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
6919
6920         * src/mcs51/gen.c (genPlus): added special handling for 256 byte
6921         aligned xdata arrays. Erik helped me with the if clause.
6922
6923 2003-12-20 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
6924
6925         * device/lib/ds390/tinibios.c (CpuSpeed): suppress unreachable code
6926         warning
6927
6928 2003-12-20 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
6929
6930         * src/SDCCast.h,
6931         * src/SDCCast.c (newAst_),
6932         * src/SDCCicode.h,
6933         * src/SDCCicode.c (ast2iCode, newiCode),
6934         * src/SDCCglobl.h,
6935         * src/SDCC.y (logical_and_expr, logical_or_expr, conditional_expr,
6936         expr, statement, expression_statement, selection_statement,
6937         iteration_statement, expr_opt, jump_statement): foundation for tracking
6938         sequence points
6939         * src/SDCCopt.c (killDeadCode): fixed bug #861580 (needs the sequence
6940         point code too)
6941
6942 2003-12-19 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
6943
6944         * support/Util/SDCCerr.c,
6945         * src/SDCCast.h,
6946         * src/SDCCast.c (createCase, createDefault, decorateType),
6947         * src/SDCClabel.c (labelUnreach),
6948         * src/SDCC.y (labeled_statement, jump_statement): More improvements
6949         to error messages.
6950         * support/Util/SDCCerr.c (werrorfl): fixed a non-standard declaration
6951         (with thanks to Stas Sergeev)
6952         * device/include/time.h,
6953         * device/lib/time.c (CheckTime): suppress unreachable code warning
6954
6955 2003-12-18 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
6956
6957         * src/SDCCast.c (createIvalCharPtr),
6958         * src/SDCCglue.c (printChar): fixed bug #862241 (an error in my fix for
6959         bug #753752)
6960         * support/regression/tests/nullstring.c: tests for these two bugs
6961
6962 2003-12-18 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
6963
6964         * support/Util/SDCCerr.h,
6965         * support/Util/SDCCerr.c (E_NOT_ALLOWED),
6966         * src/SDCC.y (struct_declaration, struct_or_union_specifier): complain
6967         about storage class and 'at' used inside struct or union
6968         * src/SDCCBBlock.c (iCodeFromeBBlock),
6969         * src/SDCCcse.c (ifxOptimize),
6970         * src/SDCCglue.c (emitRegularMap, initPointer, printIvalStruct,
6971         printIvalArray, printiValFuncPtr, printIvalCharPtr, printIvalPtr,
6972         printIval, emitStaticSeg, emitOverlay),
6973         * src/SDCClabel.c (deleteIfx),
6974         * src/SDCCopt.c (replaceRegEqv, eBBlockFromiCode),
6975         * src/SDCCast.c (resolveSymbols, createIvalStruct, createIvalArray,
6976         gatherAutoInit, processParms),
6977         * support/Util/SDCCerr.h,
6978         * support/Util/SDCCerr.c (werrorfl): Support for better error location
6979         reporting for post-parse errors.
6980
6981 2003-12-16 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
6982
6983         * src/SDCCval.c (valPlus, valMinus, valShift): fixed some problems with
6984         implicit casts via union; they don't work on big endian systems
6985         (possible fix for bug #861138)
6986
6987 2003-12-16 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
6988
6989         (committed by Erik Petrich <epetrich AT ivorytower.norman.ok.us> on Frieder's behalf)
6990         * src/mcs51/main.c: fixed the fix for bug #737001
6991
6992 2003-12-15  Borut Razem <borut.razem AT siol.net>
6993
6994         * support/scripts/sdcc.nsi: updated for NSIS 2.0 beta 4
6995
6996 2003-12-14 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
6997
6998         * support/makebin/makebin.c: put output in binary mode
6999
7000 2003-12-13 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
7001
7002         * src/mcs51/main.c: fixed bug #737001 for the mcs51. SDCC clears
7003         xdata and data memory on startup. Set the environment variable
7004         SDCC_NOGENRAMCLEAR to disable this.
7005         * src/mcs51/peephole.def,
7006         * src/ds390/peephole.def: using the atomic test and clear instruction jbc
7007         (allows non-interrupt and interrupt code to safely compete for a resource
7008         without the non-interrupt code having to disable interrupts)
7009
7010 2003-12-13 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
7011
7012         * src/SDCCicode.c (geniCodeAdd),
7013         * src/SDCCast.c (decorateType): fixed bug #857753 (need to be careful
7014         with valFromType if type might be a pointer and host is big endian).
7015         * src/SDCCast.c (decorateType): unary plus compatible with all arithmetic
7016         types, not just integer types.
7017         * src/SDCCsymt.c (addSymChain): clarified error message when symbol is
7018         multiply defined with mismatching "at" address.
7019
7020 2003-12-12 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
7021
7022         * src/ds390/main.c (PORT tininative_port): fixed bug #858416
7023         * src/SDCCglue.c (printChar, printIvalChar, emitStaticSeg),
7024         * src/SDCCast.c (createIvalCharPtr, stringToSymbol): handle strings
7025         with embedded nulls (fixed bug #753752)
7026
7027 2003-12-12 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
7028
7029         * src/mcs51/main.c(_mcs51_genRAMCLEAR): using r0 instead of r1/r2.
7030         Apparently this did not see much testing (endless loop)
7031
7032 2003-12-11 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
7033
7034         * src/z80/ralloc.c: set DISABLE_PACK_HL = 1 as a temporary fix to bug #855165
7035
7036 2003-12-10 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
7037
7038         * src/SDCCdebug.c (outputDebugSymbols, outputDebugStackSymbols, dumpSymInfo):
7039         gracefully handle NULL memmap pointers
7040
7041 2003-12-08 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
7042
7043         * src/SDCCopt.c (killDeadCode): change iCode type to DUMMY_READ_VOLATILE
7044         instead of deleting the iCode when an operand is volatile
7045         * src/z80/gen.c (genDummyRead),
7046         * src/mcs51/gen.c (genDummyRead),
7047         * src/ds390/gen.c (genDummyRead),
7048         * src/hc08/gen.c (genDummyRead): handle operands in IC_LEFT and/or IC_RIGHT,
7049         not just IC_RIGHT
7050         * src/SDCCicode.c (geniCodeCall): fixed bug #851607
7051         * src/SDCC.y: fixed bug #850420
7052
7053 2003-12-05 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
7054
7055         Applied z80 i/o port patch from Peter Townson and fixed some operators
7056         to better handle operands in A register.
7057         * device/include/z180.h
7058         * src/SDCC.y
7059         * src/SDCCglue.c
7060         * src/z80/gen.c
7061         * src/z80/gen.h
7062         * src/z80/main.c
7063         * src/z80/peeph-z80.def
7064         * src/z80/peeph.def
7065         * src/z80/z80.h
7066
7067 2003-12-03 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
7068
7069         * src/SDCCsymt.c (addSymChain, compareTypeExact): fixed bug #838241 again
7070
7071 2003-12-01 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
7072
7073         * device/lib/hc08/_mullong.c: Removed extra #endif
7074
7075 2003-12-01 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
7076
7077         * sim/ucsim/hc08.src/inst.cc,
7078         * sim/ucsim/hc08.src/hc08mac.h: fixed some problems with CC flag bits and
7079         carries from x to h
7080         * src/hc08/gen.c (aopAdrStr): fixed problem with 16 bit immediate
7081         * src/hc08/gen.c (XAccRsh): fixed problem with right shift
7082         * device/include/stdarg.h: fixed varargs for hc08
7083         * device/lib/Makefile.in,
7084         * device/lib/hc08/Makefile,
7085         * device/lib/hc08/_mulint.c,
7086         * device/lib/hc08/_mullong.c: fixed some endian problems
7087
7088 2003-11-28 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
7089
7090         * sdcc/src/mcs51/gen.c (genMultOneByte): help peephole 105
7091         * sdcc/src/mcs51/peeph.def: added peephole 186.e array access in code space
7092         * device/lib/_gptrget.c,
7093         * device/lib/_gptrput.c: P2 not used any more (related to #850747, #785979)
7094
7095 2003-11-27 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
7096
7097         * src/SDCClrange.c (findNextUseSym, rlivePoint): fixed bug #849795
7098         * src/SDCCast.c (astErrors): fixed bug #846007
7099         * src/SDCCsymt.c (checkFunction): fixed follow-up bug on bug #846007
7100
7101 2003-11-26 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
7102
7103         * src/SDCCast.c (decorateType): disabled a transformation I added in
7104         revision 1.188 (access to fields of a structure at an absolute address);
7105         it breaks with bitfields, extern declarations, and gcse analysis.
7106         * src/SDCCopt.c (isLocalWithoutDef): if ADDRESS_OF applied to a symbol, it
7107         could be assigned through a pointer, so don't complain.
7108         * src/SDCCast.c (astErrors),
7109         * src/SDCCast.h,
7110         * src/SDCCglue.c (emitRegularMap): fixed bug #847813
7111
7112 2003-11-26 Vangelis Rokas <vrokas AT otenet.gr>
7113
7114         * src/pic16/main.c (_pic16_genIVT): fixed interrupt vector table
7115         * src/pic16/main.c (_pic16_genAssemblerPreamble): re-enabled the
7116         output of __config directives, since gpasm now supports them
7117         * src/pic16/main.c (_pic16_finaliseOptions): define MCU
7118         pre-processor macro, i.e. -DMCU=p18f452
7119         * src/pic16/ralloc.c: renamed packRegisters to pic16_packRegisters,
7120         and modified to handle 'cast' icode similarly to '=' icode
7121         * src/pic16/device.h (typedef struct PIC_device): added field
7122         'extMIface' to indicate that chip has external memory interface
7123         * src/pic16/device.c: added chips 18F248, 18F258, 18F448, 18F458,
7124         18F6520, 18F6620, 18F6680, 18F6720, 18F8520, 18F8620, 18F8680,
7125         18F8720
7126
7127 2003-11-26 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
7128
7129         * src/SDCC.y (pointer): fixed bug #846006
7130         * support/Util/SDCCerr.c: made W_PTR_TYPE_INVALID message clearer
7131         * src/SDCCast.c (decorateType): fixed bug #846009
7132         * src/ds390/peeph.def,
7133         * src/ds390/gen.c (genAnd, genOr),
7134         * src/mcs51/peeph.def,
7135         * src/mcs51/gen.c (genAnd, genOr): fixed bug #846777
7136
7137 2003-11-25 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
7138
7139         Fixed several common-sub-expression bugs (#772861, #768380, & #755323)
7140         * src/SDCCdflow.c
7141         * src/SDCCcse.c
7142         * src/SDCCcse.h
7143         * src/SDCCBBlock.h
7144         * src/SDCCBBlock.c
7145
7146 2003-11-23 Klaus Flittner <klaus_flittner AT gmx.de>
7147
7148         fixed bug #845089
7149         * src/SDCCbitv.h,
7150         * src/SDCCbitv.c: added function to free a bitvector
7151         * src/SDCClrange.h,
7152         * src/SDCClrange.c: added function to recompute the liveranges
7153         * src/avr/ralloc.c,
7154         * src/ds390/ralloc.c,
7155         * src/hc08/ralloc.c,
7156         * src/mcs51/ralloc.c,
7157         * src/pic/ralloc.c,
7158         * src/pic16/ralloc.c,
7159         * src/xa51/ralloc.c,
7160         * src/z80/ralloc.c: recompute the liveranges after register packing
7161
7162 2003-11-21 Klaus Flittner <klaus_flittner AT gmx.de>
7163
7164         * src/SDCCloop.c (newInduction): fixed bug #845630
7165
7166 2003-11-21 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
7167
7168         * src/SDCCsymt.c (compareTypesExact): disabled debugging output
7169         inadvertantly left behind from my 2003-11-12 change
7170
7171 2003-11-20 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
7172
7173         Updated headers I neglected to commit yesterday.
7174         * src/SDCClrange.h,
7175         * src/SDCCicode.h
7176
7177 2003-11-19 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
7178
7179         * src/SDCCcse.c (algebraicOpts): fixed bug #773153
7180         * src/SDCClrange.c (rlivePoint): need to mark IC_RESULT used if POINTER_SET op
7181         * src/SDCCopt.c (eBBlockFromiCode),
7182         * src/SDCClrange.c (hashiCodeKeys, sequenceiCode, computeLiveRanges): seperated
7183         the creation of the key hash table from the sequencing so it can be used
7184         earlier (for some GCSE bug fixes still pending)
7185
7186 2003-11-15 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
7187
7188         * src/mcs51/gen.c (genPlus): generate shortcut for adding 0xab00
7189         * support/regression/tests/addsub.c: testing genPlus shortcut
7190
7191 2003-11-15  Borut Razem <borut.razem AT siol.net>
7192
7193         * src/SDCCmain.c: fixed bug #841645: -MM command line option passed to sdcpp
7194
7195 2003-11-15 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
7196
7197         * src/SDCCcse.c (cseBBlock): fixed bug #527779
7198         * src/SDCCcse.c (deleteGetPointers): rewrote so that the set
7199         ordering is immaterial.
7200         * src/SDCCdflow.c (mergeInExprs): fixed bug #587536
7201
7202 2003-11-14 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
7203
7204         * src/SDCCicode.c (geniCodeAddressOf): fixed part of bug #840381
7205         * src/SDCCopt.c (replaceRegEqv, isLocalWithoutDef): fixed other part
7206         (SIGSEV) of bug #840381
7207         * src/SDCCmain.c (linkEdit, assemble): fixed bug #841606 (don't
7208         unlink new file before rename if new and old filenames are the same)
7209
7210 2003-11-13 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
7211
7212         * src/mcs51/main.c: started fixing bug #737001 (SDCC not clearing
7213         uninitialized variables) for the mcs51. Set environment variable
7214         SDCC_GENRAMCLEAR to test.
7215         xdata initialization slightly shorter
7216
7217 2003-11-12 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
7218
7219         * src/SDCCsymt.h,
7220         * src/SDCCsymt.c (addSymTypeChain, compareTypesExact): fixed bugs
7221         #838241 & 780691 (basicly the same bug)
7222         * src/SDCCBBlock.c (iCode2eBBlock): fixed bug #840148
7223         * src/SDCCBBlock.c (iCodeFromeBBlock): fixed bug #840162
7224
7225 2003-11-11 Bernhard Held <bernhard AT bernhardheld.de>
7226
7227         * src/SDCCmain.c (linkEdit): "fix" #834252
7228
7229 2003-11-11 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
7230
7231         * src/SDCCast.c (removePostIncDecOps, removePreIncDecOps),
7232         * src/SDCCast.h,
7233         * src/SDCC.y: fixed bug #819403
7234
7235 2003-11-08 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
7236
7237         * support/regression/fwk/lib/testfwk.c: printn is recursive and thus needs
7238         the reentrant attribute.
7239         * src/hc08/gen.c (genPackBits): added missing stack readjustment
7240         * sim/ucsim/hc08.src/inst.cc (inst_mov): fixed bugs with mov instruction
7241         simulation
7242         * src/SDCCast.c (decorateType): fixed bug with storage class not being
7243         updated during pointer dereference; f.e. ~(((char *)1)*) was being
7244         erroneously reduced to a literal.
7245         * src/hc08/ralloc.c (packRegisters, rematStr),
7246         * src/hc08/gen.c (aopForRemat): allow literals to be rematerialized in
7247         some cases
7248
7249 2003-11-08 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
7250
7251         * src/mcs51/main.c: fixed bug #838385. Thanks to Josef Pavlik for finding and fixing
7252         * doc/sdccman.lyx: changed from 'article' to 'book'
7253         * doc/Makefile: readded test_suite_spec and cdbfileformat
7254
7255 2003-11-08 Bernhard Held <bernhard AT bernhardheld.de>
7256
7257         * device/include/stdlib.h: include malloc.h to comply with ANSI
7258         * support/regression/tests/malloc.c: include stdlib.h instead of malloc.h
7259
7260 2003-11-07 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
7261
7262         * doc/Makefile: sdccman.pdf should build with correct references (more info in commit msg)
7263         * doc/clean.mk: also remove *.out files
7264         * doc/sdccman.lyx: some additions, larger top/bottom margins
7265
7266 2003-11-07 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
7267
7268         * src/SDCC.y: fixed bug #837365
7269         * support/regression/tests/bitopcse.c
7270         * src/hc08/gen.c (genPointerGet): Don't assume pointer operand is
7271         a symbol (might be valop instead)
7272         * device/lib/Makefile.in: added errno.c to HC08SOURCES
7273         * device/lib/clean.mk: added hc08 to the cleaning list
7274
7275 2003-11-04  Borut Razem <borut.razem AT siol.net>
7276
7277         * configure, configure.in, sdcc_vc_in.h, sdcconf_in.h: reverted changes,
7278           made 2003-11-04
7279         * support/Util/NewAlloc.c, as/hc08/lklibr.c, as/mcs51/lklibr.c,
7280           as/z80/aslist.c, as/z80/assym.c: removed inclusion of nonstandard malloc.h;
7281           malloc is declared in standard stdlib.h
7282
7283 2003-11-06 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
7284
7285         * device/lib/hc08/Makefile: need to clean .rel not .o files
7286         * src/hc08/gen.c (genDjnz): can't use djnz with extended addressing mode
7287
7288 2003-11-06 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
7289
7290         * src/port.h,
7291         * src/hc08/main.c,
7292         * src/mcs51/main.c,
7293         * src/ds390/main.c,
7294         * src/z80/main.c,
7295         * src/avr/main.c,
7296         * src/pic/main.c,
7297         * src/pic16/main.c,
7298         * src/xa51/main.c: added hasExtBitOp & oclsExpense functions to ports
7299         * src/SDCCicode.c: changed several IS_FARSPACE tests to isOclsExpensive
7300         tests (which uses the port's oclsExpense function)
7301         * src/SDCC.y,
7302         * src/SDCCast.c,
7303         * src/SDCCicode.c,
7304         * src/hc08/gen.c,
7305         * src/ds390/gen.c,
7306         * src/mcs51/gen.c: added support for the SWAP iCode (RFE #834167)
7307
7308 2003-11-04 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
7309
7310         * src/SDCCcse.c (ifxOptimize),
7311         * src/SDCClabel.c (labelIfx, deleteIfx): When the condition to
7312         an IFX iCode is volatile, convert to DUMMY_READ_VOLATILE instead
7313         deleting the IFX iCode.
7314         * src/hc08/ralloc.c: reduced unneeded slocs
7315         * src/hc08/gen.c: fixed bug in asmopToBoolean
7316
7317 2003-11-04  Borut Razem <borut.razem AT siol.net>
7318
7319         * configure, configure.in, sdcc_vc_in.h, sdcconf_in.h,
7320           support/Util/NewAlloc.c, as/hc08/lklibr.c, as/mcs51/lklibr.c,
7321           as/z80/aslist.c, as/z80/assym.c: decision to include malloc.h
7322           transferred to configure
7323
7324 2003-11-03 Bernhard Held <bernhard AT bernhardheld.de>
7325
7326         Use headers defined in the C[++] standards:
7327         * sim/ucsim/gui.src/serio.src/fileio.cc
7328         * sim/ucsim/gui.src/serio.src/frontend.cc
7329         * sim/ucsim/gui.src/serio.src/main.cc
7330         * sim/ucsim/gui.src/serio.src/posix_signal.cc
7331         * support/Util/NewAlloc.c
7332         * as/hc08/lklibr.c
7333         * as/mcs51/lklibr.c
7334         * as/z80/aslist.c
7335         * as/z80/assym.c
7336
7337 2003-11-03  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
7338
7339         * Added MSVC projects for hc08 assembler and linker:
7340         all.dsp, config.dsp, sdcc.dsw, /as/hc08/as_hc08.dsp,
7341         /as/hc08/link_hc08.dsp
7342
7343 2003-11-03 Martin Helmling <Martin.Helmling AT octo-soft.de>
7344
7345         * debugger/mcs51/cmd.c: allows filename starting with digit(+ some debug)
7346
7347 2003-11-02 Bernhard Held <bernhard AT bernhardheld.de>
7348
7349         * src/SDCCmain.c (linkEdit): "fixed" again bug #833605
7350
7351 2003-11-01 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
7352
7353         * src/mcs51/main.c: xdata initialization is 13 bytes shorter now
7354
7355 2003-10-31  Borut Razem <borut.razem AT siol.net>
7356
7357         * support/cpp2/cpplib.h,
7358           support/cpp2/cpplib.c,
7359           support/cpp2/cpplex.c,
7360           support/cpp2/cppinit.c: introduced #pragma preproc_asm [ + | - ]
7361           to switch _asm block preprocessing on / off. Default is
7362           #pragma preproc_asm +
7363
7364 2003-10-31  Borut Razem <borut.razem AT siol.net>
7365
7366         * support/cpp2/cpplex.c: Fixed _WIN32 problem with CR-CR-LF sequences
7367           when outputting comment blocks (when executed with -C option) and
7368           _asm (SDCPP specific) blocks
7369
7370 2003-10-31 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
7371
7372         * as/hc08/lkrloc.c (relr): Fixed ihx output, fixed lastAreaIndex warning
7373
7374 2003-10-31 Klaus Flittner <klaus_flittner AT gmx.de>
7375
7376         * src/SDCCcse.c (updateSpillLocation): fixed bug #808027
7377
7378 2003-10-31 Bernhard Held <bernhard AT bernhardheld.de>
7379
7380         * src/SDCCmain.c (linkEdit): "fixed" bug #833605
7381         * src/SDCCast.c (decorateType): fixed bug #832664
7382
7383 2003-10-31  Borut Razem <borut.razem AT siol.net>
7384
7385         * support\cpp2\cpplex.c: fixed for SDCPP:
7386           comments(when executed with -C option) and _asm blocks
7387           were included even if they where in skipped #if block.
7388           Applied solution from GCC cpp 3.3.2
7389
7390 2003-10-31  Borut Razem <borut.razem AT siol.net>
7391
7392         * src/SDCC.lex: sdcc now understands both formats:
7393           '# <line_number> <file_name>' and
7394           '#line <line_number> <file_name>'
7395         * support/cpp2/cppmain.c: sdcpp now generates the standard
7396           '# <line_number> <file_name>' instead of former
7397           '#line <line_number> <file_name>'
7398
7399 2003-10-30  Borut Razem <borut.razem AT siol.net>
7400
7401         * support/cpp2/cpphash.h,
7402         * support/cpp2/cpplib.h
7403         * support/cpp2/cpplex.c,
7404         * support/cpp2/cppmain.c,
7405         * support/cpp2/cppinit.c: fixed bug #828015 - Syntax variation for _asm character constants
7406
7407 2003-10-30 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
7408
7409         Fixed a number of problems revealed by bug #827883.
7410         * src/SDCCloop.c (loopInvariants): Spill location of the
7411         result operand should be recomputed if extracted from
7412         a loop. Also, don't extract assignments of an iTemp
7413         from a literal.
7414         * src/SDCCast.c (isConformingBody): loop reversal should
7415         not occur if the control variable is involved with a
7416         relational operator.
7417
7418 2003-10-28 Bernhard Held <bernhard AT bernhardheld.de>
7419
7420         * .version: bumped to 2.3.6 to reflect the big improvements
7421         made by Erik and Klaus. Thanks!
7422
7423 2003-10-28 Klaus Flittner <klaus_flittner AT gmx.de>
7424
7425         Replaced the livrange code.
7426         * src/SDCClrange.c: added new LR code
7427         * src/SDCCloop.c,
7428         * src/SDCCBBlock.h: removed remainig parts from old LR code
7429         * src/ds390/ralloc.c,
7430         * src/ds390/gen.c: minor fixes to make it work with new code
7431
7432 2003-10-28 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
7433
7434         * as/hc08/asm.h,
7435         * as/hc08/lkrloc.c,
7436         * src/hc08/gen.c,
7437         * src/hc08/ralloc.c: Fix various warnings related to the hc08
7438         * src/SDCCicode.c (geniCodePreInc, geniCodePreDec): Fixed bug #829717
7439         (tweaked fix for bug #818696)
7440
7441 2003-10-23 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
7442
7443         * src/z80/ralloc.c (joinPushes): Fixed bug #828742
7444
7445 2003-10-23 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
7446
7447         * src/SDCCmain.c,
7448         * sdccconf_in.h: Fixed bug #828387 (--disable-hc08-port didn't work)
7449         * src/mcs51/gen.c (gencjneshort),
7450         * src/ds390/gen.c (gencjneshort): Made comparison with AOP_IMMD operand
7451         more efficient (per Scott Bronson's suggestion)
7452
7453 2003-10-22 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
7454
7455         Extended the semantics of the critical keyword to include
7456         individual statements. See RFE #827755 and #799831
7457         * src/SDCC.y
7458         * src/SDCCicode.c
7459         * src/SDCCopt.c
7460         * src/SDCCast.c
7461         * support/Util/SDCCerr.c
7462         * support/Util/SDCCerr.h
7463         * src/mcs51/gen.c
7464         * src/ds390/gen.c
7465         * src/hc08/gen.c
7466
7467 2003-10-19  Borut Razem <borut.razem AT siol.net>
7468
7469         * src/SDCC.lex: fixed bug #825944 - defined yytext_ptr to make it compile with flex 2.5.31
7470
7471 2003-10-19 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
7472
7473         * src/SDCCicode.c (geniCodePreInc, geniCodePreDec, ast2iCode):
7474         Fixed bug #818696
7475         * src/SDCCast.c (ast_print): Fixed --dumptree so that preincrement
7476         and predecrement operand is displayed
7477
7478 2003-10-13 Bernhard Held <bernhard AT bernhardheld.de>
7479
7480         * src/SDCCval.c (valMinus): fixed bug #826041
7481
7482 2003-10-15 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
7483
7484         Some hc08 related updates that I missed earlier
7485         * sim/ucsim/stypes.h
7486         * support/regression/ports/hc08/spec.mk
7487
7488 2003-10-15 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
7489
7490         New target "hc08" for the Motorola 68hc08 family of micros
7491
7492         * configure
7493         * configure.in
7494         * Makefile
7495         * src/hc08/*
7496         * src/SDCCmain.c
7497         * src/port.h
7498         * sim/ucsim/hc08.src/*
7499         * sim/ucsim/configure.in
7500         * src/ucsim/configure
7501         * sim/ucsim/packages_in.mk
7502         * as/hc08/*
7503         * as/Makefile
7504         * device/include/mc68hc908qy.h
7505         * device/lib/hc08/*
7506         * device/lib/Makefile.in
7507         * support/regression/ports/hc08/*
7508         * support/regression/Makefile
7509
7510 2003-10-14 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
7511
7512         * src/z80/gen.c: fixed bug revealed by ast_constant_folding.c
7513         regression test
7514         * src/ds390/gen.c (genCast): fixed bug #821957
7515
7516 2003-10-13 Bernhard Held <bernhard AT bernhardheld.de>
7517
7518         * device/lib/logf.c: "fixed" overlay bug
7519         * support/regression/ports/host/spec.mk: added m library
7520         * support/regression/ports/mcs51-stack-auto/spec.mk: added float funcs
7521         * support/regression/tests/float_trans: added (for Eric)
7522
7523 2003-10-12 Bernhard Held <bernhard AT bernhardheld.de>
7524
7525         * src/mcs51/gen.c (genCpl): fixed bug
7526         http://sf.net/mailarchive/message.php?msg_id=6263915
7527
7528 2003-10-10 Bernhard Held <bernhard AT bernhardheld.de>
7529
7530         * src/SDCCast.c (decorateType): added extended constant folding
7531         * src/SDCCsymt.c (computeType): cleanup
7532         * src/SDCCval.c (valShift): minor optimization
7533         * support/regression/tests/ast_constant_folding.c: added
7534
7535 2003-10-09  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
7536
7537         * src/SDCCmain.c: removed some unintended changes
7538
7539 2003-10-09  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
7540
7541         * src/SDCCmain.c (setParseWithComma): fixed bug #816685
7542         * src/z80/gen.c: fixed part of bug #817589
7543         * src/SDCCsymt.c (checkFunction): fixed bug #817895
7544
7545 2003-10-08 Bernhard Held <bernhard AT bernhardheld.de>
7546
7547         Replaced cast (void **) with (void *) to avoid gcc 3 warning:
7548         * src/SDCCcflow.c
7549         * src/SDCCcse.c
7550         * src/SDCCdflow.c
7551         * src/SDCClabel.c
7552         * src/SDCClrange.c
7553         * src/SDCCmem.c
7554         * src/SDCCopt.c
7555         * src/SDCCpeeph.c
7556         * src/SDCCset.c
7557         * src/avr/ralloc.c
7558         * src/ds390/ralloc.c
7559         * src/izt/ralloc.c
7560         * src/mcs51/ralloc.c
7561         * src/pic/ralloc.c
7562         * src/pic16/ralloc.c
7563         * src/xa51/ralloc.c
7564         * src/z80/ralloc.c
7565         * src/z80/gen.c: removed unused label "release:"
7566
7567 2003-10-06  Borut Razem <borut.razem AT siol.net>
7568
7569         * src/SDCC.lex: removed definition of unused variables
7570           save_optimize and save_options
7571
7572 2003-10-06 Bernhard Held <bernhard AT bernhardheld.de>
7573
7574         * clean.mk: removed '=' in "-maxdepth=1"
7575         * src/SDCCloop.c: replace LRKLAUS with SDCC_LRKLAUS
7576         * src/SDCClrange.c: replace LRKLAUS with SDCC_LRKLAUS
7577
7578 2003-10-06  Borut Razem <borut.razem AT siol.net>
7579
7580         * src/SDCC.lex, src/SDCC.lex: use dbuf for "_asm" definitions;
7581           my_unput() replaced by unput()
7582
7583 2003-10-05 Bernhard Held <bernhard AT bernhardheld.de>
7584
7585         * src/SDCCloop.c (assignmentsToSym, loopInduction): cast argument of
7586         setToNull() to (void *) to avoid gcc3.x's warning: "dereferencing
7587         type-punned pointer will break strict-aliasing rules"
7588         Old LR behaviour is again default; Klaus' LR can be choosen by
7589         defining the environment variable LRKLAUS
7590         * src/SDCCBBlock.h
7591         * src/SDCCloop.c
7592         * src/SDCClrange.c
7593         * src/ds390/ralloc.c (spillThis): applied Klaus' patch
7594         * clean.mk: fixed removal of files in bin/CVS/
7595         * device/lib/clean.mk: fixed removal of directories small and large
7596         * support/Util/SDCCerr.c: changed W_INT_OVL to ERROR_LEVEL_PEDANTIC
7597         * src/SDCCicode.c,
7598         * src/SDCCval.c: removed superflous test for pedantic
7599
7600 2003-10-05  Borut Razem <borut.razem AT siol.net>
7601
7602         * src/SDCC.lex, support/Util/SDCCerr.c, sdcc/support/Util/SDCCerr.h:
7603           Fixed bug #816692: introduced new ERROR_LEVEL_PEDANTIC warning
7604           message "unmatched #pragma SAVE and #pragma RESTORE"
7605
7606 2003-10-04  Frieder Ferlemann <Frieder.Ferlemann AT web.de>
7607
7608         * doc/sdccman.lyx: various additions and updates (interrupts, inline
7609           assembly, critical functions, atomic, nojtbound)
7610
7611 2003-10-04 Bernhard Held <bernhard AT bernhardheld.de>
7612
7613         Applied liferange patch from Klaus Flittner <klaus_flittner AT gmx.de>
7614         * src/SDCCBBlock.h
7615         * src/SDCCloop.c
7616         * src/SDCCloop.h
7617         * src/SDCClrange.c
7618
7619 2003-10-03  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
7620
7621         * src/z80/gen.h,
7622         * src/z80/gen.c (aopOp, aopGet, aopPut, genDummyRead),
7623         * src/mcs51/gen.h
7624         * src/mcs51/gen.c (aopOp, aopGet, aopPut, genDummyRead),
7625         * src/ds390/gen.h
7626         * src/ds390/gen.c (aopOp, aopGet, aopPut, genDummyRead),
7627         * src/SDCCicode.c (ast2iCode, geniCodeDummyRead): Fixed bug #663539
7628         * src/SDCCopt.c (killDeadCode): Fixed bugs #663539 & #816705
7629
7630 2003-10-02  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
7631
7632         * src/z80/gen.c (genRet): fixed bug #524753
7633         * src/z80/gen.c (genCast): fixed internal error on cast from
7634         pointer to long
7635         * src/z80/gen.c (_saveRegsForCall, emitCall): adapted Johan's
7636         fix for bug #477835 to the z80
7637         * src/z80/gen.c (genZ80code, _vemit2, _emit2): added support
7638         for tracking iCodes in the peephole optimizer for z80
7639
7640 2003-10-01  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
7641
7642         * src/SDCCicode.c (geniCodeJumpTable, geniCodeSwitch): fixed
7643         the other part of bug #814548
7644         * src/SDCCpeeph.c (labelInRange): fixed bug #814558
7645
7646 2003-09-30  Bernhard Held <bernhard AT bernhardheld.de>
7647
7648         * src/SDCCcse.c: fixed part of bug #814548
7649
7650 2003-09-28  Borut Razem <borut.razem AT siol.net>
7651
7652         * src/asm.c: rewrite of printILine() to use temporary file instead
7653           a pipe
7654         * src/xa51/main.c: commented out declaration of int rewinds
7655
7656 2003-09-27  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
7657
7658         * src/SDCCicode.c (geniCodeJumpTable): Fixed bug #813206
7659
7660 2003-09-26  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
7661
7662         * src/SDCCdflow.c (computeDataFlow): Fixed bug #810746
7663         * src/asm.c (printILine): Fixed bug #811015
7664
7665 2003-09-22  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
7666
7667         *link/z80/lklibr.c, as/mcs51/lklibr.c: Improved memory allocation and
7668         freeing.
7669
7670 2003-09-21  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
7671
7672         * src/z80/gen.c (setupToPreserveCarry): Fixed bug #796955
7673         * src/z80/gen.c (setupPair, genMovePairPair): Fixed setupPair
7674         to correctly handle general case of AOP_PAIRPTR
7675         * src/z80/gen.c (aopGet, aopPut): Generalized AOP_PAIRPTR handling
7676
7677 2003-09-21  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
7678
7679         * src/mcs51/ralloc.c (fillGaps),
7680         * src/ds390/ralloc.c (fillGaps): fixed bug #810093 (yet another
7681         register positioning bug)
7682
7683 2003-09-21  Bernhard Held <bernhard AT bernhardheld.de>
7684
7685         * device/lib/_fsdiv.c: replaced (1<<31) by (1ul<<31)
7686
7687 2003-09-19  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
7688
7689         * src/mcs51/gen.c (loadDptrFromOperand, genFarPointerGet,
7690         genCodePointerGet, genGenPointerGet, genFarPointerSet,
7691         genGenPointerSet): handle AOP_DPTR correctly when loading dptr
7692         (ralloc doesn't intentionally do this now, but perhaps later)
7693         * src/mcs51/ralloc.c (serialRegAssign, fillGaps),
7694         * src/ds390/ralloc.c (serialRegAssign, fillGaps): fixed some
7695         register positioning bugs (Fixed bug #762602 and #795325)
7696         * src/SDCCicode.c (geniCodeDerefPtr): Track output class correctly
7697         (Fixed bug #808779)
7698         * src/z80/gen.c: increased _vemit2's buffer[] to handle long
7699         lines that --i-code-in-asm generates
7700
7701 2003-09-18  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
7702
7703         *link/z80/lklibr.c, as/mcs51/lklibr.c: Fixed Linux segfaults when
7704         trying to fclose a FILE* that was already closed.
7705
7706 2003-09-18  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
7707
7708         * src/SDCCsymt.c (structElemType): fixed bug #808291 (members
7709         of const struct should be treated as if const themselves)
7710
7711 2003-09-18  Bernhard Held <bernhard AT bernhardheld.de>
7712
7713         * src/SDCCval.c (valPlus, valMinus): fixed bug #808337
7714
7715 2003-07-06  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
7716
7717         * support/librarian/sdcclib.c: Generate correct offsets for libraries with
7718         Unix (/n) and DOS (/r/n) line terminations.
7719
7720 2003-09-17  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
7721
7722         * src/SDCCopt.c (cnvFromFloatCast, cnvToFloatCast): fixed
7723         bug #613775
7724
7725 2003-09-16  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
7726
7727         * src/mcs51/gen.c (genFunction, genEndFunction),
7728         * src/ds390/gen.c (genFunction, genEndFunction): Moved save
7729         and restore of EA so that stack offsets to parameters are
7730         correct when using both critical and reentrant/stack-auto.
7731         * src/z80/gen.c (aopOp): removed erroneous assertion about sloc
7732         size (can be triggered in error if sloc is shared between
7733         different sized objects)
7734         * device/include/float.h: fixed macros to explicitly use
7735         unsigned long where needed
7736
7737 2003-09-15  Bernhard Held <bernhard AT bernhardheld.de>
7738
7739         Feature req. 799831: added code to allow nesting of critical functions
7740         * src/mcs51/gen.c (genFunction, genEndFunction)
7741         * src/ds390/gen.c (genFunction, genEndFunction)
7742
7743 2003-09-14  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
7744
7745         * src/SDCCsymt.c (sclsFromPtr),
7746         * src/SDCCsymt.h,
7747         * src/SDCCast.c (decorateType): fixed bug #462971. Also, better
7748         support for standard C idiom of memory mapped variables; for
7749         example, *((xdata int*)0x1234) = 1 is now internally equivalent
7750         to xdata int at 0x1234 tempvar = 1.
7751         * sim/ucsim/z80.src/inst_xd.cc: fixed bug #805483 with patch
7752         provided by Akiya ISHIDA
7753
7754 2003-09-13  Bernhard Held <bernhard AT bernhardheld.de>
7755
7756         * src/SDCCval.c (cheapestVal): reenabled to reduce int to char
7757         * src/SDCCval.c (constVal): added reduction from int to char
7758         * src/SDCCval.c (valMult, valDiv): fixed sign handling
7759         * src/SDCCval.c (valShift): fixed after change of cheapestVal()
7760         * src/SDCCval.c (valCompare): fixed EQ_OP and NE_OP; they have
7761         to ignore the sign
7762         * support/regression/tests/shifts.c: fixed
7763
7764 2003-09-13  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
7765
7766         * src/z80/gen.c (genXor): Fixed bug #805445
7767
7768 2003-09-12  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
7769
7770         Fixed bug #621531 (const & volatile confusion in the type chain).
7771         DCL_PTR_CONST, DCL_PTR_VOLATILE, & IS_PTR_CONST now exclusively
7772         refer to the const or volatile state of the pointer itself.
7773
7774         * src/SDCCast.c
7775         * src/SDCCglue.c
7776         * src/SDCCicode.c
7777         * src/SDCCsymt.c
7778         * src/SDCCval.c
7779         * src/SDCC.y
7780         * src/SDCCsymt.h
7781         * src/pic/gen.c
7782         * src/pic/ralloc.c
7783         * src/pic16/gen.c
7784         * src/pic16/ralloc.c
7785         * support/regression/tests/const.c
7786
7787 2003-09-10  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
7788
7789         When checking for duplicated modules, use absolute paths
7790         instead of relative paths.  Files changed:
7791
7792         * as/mcs51/lklib.c
7793         * link/z80/lklib.c
7794
7795 2003-09-09  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
7796
7797         * src/SDCCicode.c (geniCodeLogic): fixed bug #797572
7798
7799 2003-09-07  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
7800
7801         * device/include/string.h: added size_t typedef, changed
7802         prototypes to use size_t, eliminated separate reentrant and
7803         non-reentrant declarations, added _memmove declaration
7804         * device/lib/_memcpy.c: changed to use size_t instead of int,
7805         changed /4 to >>2 to avoid division library call
7806         * device/lib/_memcmp.c,
7807         * device/lib/_memset.c,
7808         * device/lib/_strncat.c,
7809         * device/lib/_strncpy.c,
7810         * device/lib/_strncmp.c: changed to use size_t instead of int
7811         * device/lib/_memmove.c: new file (fixed bug #772294)
7812         * device/lib/Makefile.in: added _memmove.c
7813         * device/lib/z80/asm_strings.s: fixed bug #772290
7814         * support/regression/tests/bitfields.c: attempt to fix host assertion
7815         failure on amd64-unknown-linux2.2
7816
7817 2003-09-06  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
7818
7819         * src/z80/gen.c (aopPut, spillPairReg): fixed bug #800998
7820         * src/z80/gen.c (genFunction, genEndFunction): fixed "bug" #774700
7821         * as/z80/asmain.c (main): fixed bug #801766
7822
7823 2003-09-06  Bernhard Held <bernhard AT bernhardheld.de>
7824
7825         * src/SDCCicode.c (ast2iCode): fixed differences in iCode with different
7826         compilers
7827
7828 2003-09-05  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
7829
7830         * src/SDCCast.c (isConformingBody): fixed loop reversal bug
7831         reported in bug #800609
7832
7833 2003-09-04  Vangelis Rokas <vrokas AT otenet.gr>
7834
7835         * Top header beautifications in src/pic16 directory:
7836           device.c, device.h, gen.c, gen.h, genarith.c, glue.c, pcode.c,
7837           pcodeflow.c, pcodeflow.h, pcode.h, pcodepeep.c, pcoderegs.c,
7838           pcoderegs.h, ralloc.c, ralloc.h
7839         * main.c: added top header and GPL license notice
7840         * pcode.c: fixed the if-conditional warning
7841
7842 2003-09-04  Bernhard Held <bernhard AT bernhardheld.de>
7843
7844         * device/lib/_mullong.c: replaced int by short for gcc
7845
7846 2003-08-31  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
7847
7848         * src/SDCCpeeph.c (notVolatile, notVolatileVariable): handle IFX
7849         and JUMPTABLE iCodes properly now (worked by accident before)
7850         * src/mcs51/gen.c (leftRightUseAcc),
7851         * src/ds390/gen.c (leftRightUseAcc): handle IFX and JUMPTABLE
7852         iCode properly now. Use getSize instead of nRegs since a & b
7853         aren't part of the nRegs tally.
7854
7855 2003-08-31  Vangelis Rokas <vrokas AT otenet.gr>
7856
7857         * src/pic16/main.c: corrected offsets of interrupt vectors in _pic16_genIVT()
7858         * src/pic16/pcode.c: fix to disable inserting BANKSEL directive
7859           before instructions that use the _STATUS register
7860
7861 2003-08-31  Bernhard Held <bernhard AT bernhardheld.de>
7862
7863         * src/mcs51/gen.c (freeAsmop): fixed off by one in stack offset (AOP_STK)
7864         * src/mcs51/gen.c (genNearPointerSet): added missing opcode for
7865         fetching of the pointer
7866         * src/mcs51/gen.c (genNearPointerGet): added reuse of PREG,
7867         copied from genNearPointerSet()
7868         * src/mcs51/gen.c (genNearPointerGet): don't pop r0/r1, if RESULTONSTACK
7869         * src/mcs51/gen.c: changed order of freeAsmop(left/right/result)-calls.
7870         If they pop r0/r1 they must be called in the opposite order than aopOp().
7871         * device/lib/_mullong.c: fixed for "--model-large --int-long-reent"
7872         (resp. --stack-auto), prepared for --xstack
7873
7874 2003-08-28  Frieder Ferlemann <Frieder.Ferlemann AT web.de>
7875
7876         * doc/sdccman.lyx: reverted tables to those in cvs 1.64
7877
7878 2003-08-28  Bernhard Held <bernhard AT bernhardheld.de>
7879
7880         * device/lib/_startup.c: quick & dirty fix for ds390/ds400;
7881         these ports have their own __sdcc_external_start()
7882
7883 2003-08-26  Bernhard Held <bernhard AT bernhardheld.de>
7884
7885         pic patch provided by Slade Rich <slade_rich AT yahoo.com>
7886         * src/pic/glue.c (pic14printPublics): fixed bug introduced when symbol
7887         type for bits was changed. It resulted in bit variables becoming
7888         global, which is not permitted in PIC 14 assembly output.
7889
7890 2003-08-23  Frieder Ferlemann <Frieder.Ferlemann AT web.de>
7891
7892         * doc/sdccman.lyx: various additions and updates. Rearranged sections
7893
7894 2003-08-22  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
7895
7896         Z80 and MCS51 linkers complaint if a public symbol is defined
7897         in more than one library module:
7898
7899         * as/mcs51/lklib.c
7900         * link/z80/lklib.c
7901         * as/mcs51/Makefile.in
7902
7903 2003-08-22  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
7904
7905         A few small changes that speed up the peephole optimizer.
7906
7907         * src/SDCCpeeph.c
7908
7909 2003-08-22  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
7910
7911         Try to make the peephole optimizer smarter by maintaining
7912         an association between the assembly source code and the
7913         iCodes that originated them. Put this information to use
7914         with a new peephole rule condition "notVolatile" so that
7915         the rules can be aggressive yet still safe.
7916
7917         * src/SDCCpeeph.c
7918         * src/SDCCpeeph.h
7919         * src/mcs51/gen.c
7920         * src/mcs51/peeph.def
7921
7922 2003-08-20  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
7923
7924         Fixed bug #741761
7925
7926         * src/mcs51/gen.c (aopForSym, leftRightUseAcc),
7927         * src/ds390/gen.c (aopForSym, leftRightUseAcc): preserve A and B
7928         if the left or right operand symbols have the accuse flag set.
7929
7930 2003-08-20  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
7931
7932         Changed the type of the result of the ! (NOT) operator to char;
7933         previously it returned the same type as the source. This allows
7934         us to eliminate all the genFloatNot functions (all of its target
7935         implementations were very buggy) since !float can use the same
7936         code as !long now.
7937
7938         * src/SDCCicode.c (ast2iCode): ! returns char
7939         * src/mcs51/gen.c (genNot, genNotFloat),
7940         * src/ds390/gen.c (genNot, genNotFloat),
7941         * src/z80/gen.c (genNot, genNotFloat),
7942         * src/pic/gen.c (genNot, genNotFloat),
7943         * src/pic16/gen.c (genNot, genNotFloat): eliminated genNotFloat
7944
7945 2003-08-19  Bernhard Held <bernhard AT bernhardheld.de>
7946
7947         pic patch provided by Slade Rich <slade_rich AT yahoo.com>
7948         1. Interrupt would not compile properly. Ensure PCLATH register is saved
7949            during interrupts. Ensure WSAVE is located at a shared bank address.
7950         2. Fixed page selection in some places
7951         3. Fixed BTFSS/C to where necessary use registers directly and not simply
7952            the registers name strings.
7953         4. Fixed "signed / unsigned compare" compiler warnings.
7954         5. The PIC port manages its own allocation of the general purpose
7955            registers, but makes no attempt to reuse them. As a result when
7956            compiling it soon runs out of general purpose registers. Some
7957            additional code was added to the files pcode.c and device.c to walk
7958            through the function call tree and rename the registers so that they
7959            get reused.
7960
7961         * src/pic/device.c
7962         * src/pic/gen.c
7963         * src/pic/glue.c
7964         * src/pic/pcode.c
7965         * src/pic/pcode.h
7966         * src/pic/ralloc.c
7967         * src/pic/ralloc.h
7968         * src/pic/genarith.c: Fixed problems with PIC 14 port in functions
7969         genPlus() & genMinus() when the result is the same as left or right
7970
7971 2003-08-18  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
7972
7973         * src/z80/gen.c (isUnsplitable, fetchPairLong): fixed bug #770454
7974
7975 2003-08-18  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
7976
7977         Made bitfield a distinct type from bit so that bitfields
7978         convert as per ANSI C and bits retain their traditional
7979         boolean style behaviour. Implemented bitfield support in
7980         the z80 port.
7981
7982         * src/SDCCsymt.h,
7983         * src/SDCCsymt.c,
7984         * src/SDCCast.c,
7985         * src/cdbFile.c,
7986         * src/mcs51/gen.c,
7987         * src/ds390/gen.c: bit v bitfield split
7988         * src/z80/gen.c: New support for bitfields
7989         * support/regression/tests/bitfields.c: reenabled z80,
7990         added more tests
7991
7992 2003-08-17  Frieder Ferlemann <Frieder.Ferlemann AT web.de>
7993
7994         Rules 246.x, 247.x relate to bitfields, the others speed up
7995         access to xdata mapped I/O devices.
7996
7997         * src/mcs51/peeph.def: added 26 peepholes 246.x - 248.x, 180.x
7998
7999 2003-08-16  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
8000
8001         Cleaned up genPackBits and genUnpackBits and added two helper
8002         functions, emitPtrByteGet & emitPtrByteSet. Added optimizations
8003         for literal assignments in genPackBits (thanks to Frieder for
8004         reminding me).
8005
8006         * src/mcs51/gen.c
8007         * src/ds390/gen.c
8008
8009 2003-08-16  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
8010
8011         Fixed bug #748310 (pointer to function type mishandled when the
8012         function name is omitted). Also fixed a SIGSEGV when a function
8013         attribute (reentrant, etc) is used on a non-function or on a
8014         function but misplaced before the parameter list.
8015
8016         * src/SDCC.y (abstract_declarator, abstract_declaractor2): fixed
8017         bug #748310
8018         * src/SDCC.y (declarator2_function_attributes): avoided SIGSEGV
8019         * support/Util/SDCCerr.h,
8020         * support/Util/SDCCerr.c: Added func attr misuse error msg
8021
8022 2003-08-13  Bernhard Held <bernhard AT bernhardheld.de>
8023
8024         Fixed bug #787649 by anonymous
8025         * src/SDCCglue.c (emitRegularMap): added emission of sloc for func ptr
8026         * src/ds390/gen.c (aopForSym): fixed func ptr in sloc
8027
8028 2003-08-14  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
8029
8030         Fixed numerous bitfield problems.
8031
8032         * src/SDCC.y: More bitfield related error checking
8033         * src/SDCCsymt.h,
8034         * src/SDCCsymt.c (compStructSize): fixed bitfield offset calc
8035         * support/Util/SDCCerr.h,
8036         * support/Util/SDCCerr.c: Added & edited some bitfield err msgs
8037         * src/mcs51/gen.c (genPackBits, genUnpackBits): fixed mask bugs
8038         * src/ds390/gen.c (genPackBits, genUnpackBits): fixed mask bugs
8039         * support/regression/tests/bitfields.c: tests added
8040
8041 2003-08-13  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
8042
8043         Made the constant following the "interrupt" keyword optional. If
8044         omitted, the function will not automatically be given an entry
8045         in the interrupt vector table (similar to #pragma NOIV, but
8046         less syntacticly kludgy). The interrupt number is also now
8047         range checked. Also fixed a bug in the high order bit example
8048         in the manual.
8049
8050         * src/SDCC.y
8051         * src/SDCCmem.c
8052         * src/SDCCglue.c
8053         * src/SDCCsymt.h
8054         * support/Util/SDCCerr.c
8055         * support/Util/SDCCerr.h
8056         * doc/sdccman.lyx
8057
8058 2003-08-13  Bernhard Held <bernhard AT bernhardheld.de>
8059
8060         * src/SDCCcse.c (algebraicOpts): fix bug converting op from value to type
8061         * src/SDCCicode.c (operandOperation): rewritten some ops
8062         (*, ==, unary_minus) to fix possible overflows and to accord with ANSI
8063         * src/SDCCsymt.c (computeType): literals are handled the same way as any
8064         other type
8065         * src/SDCCval.c (cheapestVal): removed, it doesn't accord with ANSI (can
8066         be re-activated by defining REDUCE_LITERALS)
8067         * src/SDCCval.c (constVal): fixed; hex and octal constants can be
8068         unsigned, but are signed by default
8069         * src/SDCCval.c (constVal): rearranged
8070         * src/SDCCval.c (valMod): preliminary fix
8071         * src/SDCCval.c (valCastLiteral): use TYPE_* types
8072         * support/regression/literalop.c: added, work in progress
8073
8074 2003-08-12  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
8075
8076         Generate warnings for useless declarations like "char data;"
8077         that don't do what new users expect.
8078
8079         * src/SDCC.y
8080         * support/Util/SDCCerr.h
8081         * support/Util/SDCCerr.c
8082
8083 2003-08-09  Bernhard Held <bernhard AT bernhardheld.de>
8084
8085         * src/SDCCval.c (valMult): fix overflow detection of negative int
8086
8087 2003-08-07  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
8088
8089         * src/z80/ralloc.c (joinPushes): made compatible with new signedness
8090
8091         Changes to support big endian targets:
8092
8093         * src/ports.h
8094         * src/SDCCglue.c
8095         * src/avr/main.c
8096         * src/ds390/main.c
8097         * src/izt/i186.c
8098         * src/mcs51/main.c
8099         * src/pic/main.c
8100         * src/pic16/main.c
8101         * src/xa51/main.c
8102         * src/z80/main.c
8103
8104 2003-08-06  Bernhard Held <bernhard AT bernhardheld.de>
8105
8106         * src/SDCCval.c (cheapestVal): changed behaviour to the same as constVal()
8107         * device/lib/time.c: fixed warning "integer overflow in expression"
8108
8109 2003-08-05  Bernhard Held <bernhard AT bernhardheld.de>
8110
8111         * src/SDCCval.c (cheapestVal, valueFromLit): use TYPE_* types
8112         * src/SDCCval.c (constVal): changed default to signed; hex and octal
8113         constants are unsigned; added recognition of "u" flag for unsigned
8114         * src/SDCCval.c (valMult): fixed signdness, added warning for overflow
8115         * src/SDCCval.c (valDiv, valMod): fixed signdness
8116         * src/SDCCicode.c (operandOperation): fixed critical typo; fixed
8117         signedness of modulo, left and right shift
8118         * support/Util/SDCCerr.c: added warning "integer overflow in expression"
8119         * support/Util/SDCCerr.h: added warning W_INT_OVL
8120         * src/SDCCast.c (decorateType): fixed gcc3.3 warning
8121         * src/SDCCast.c (ast_print): improved output of constants
8122
8123 2003-08-04  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
8124
8125         Fixed some warnings when building with MSVC:
8126
8127         * as\mcs51\asdata.c
8128         * as\z80\asdata.c
8129         * as\mcs51\asm.h
8130         * as\z80\asm.h
8131         * link\z80\aslink.h
8132         * link\z80\lkdata.c
8133         * link\z80\lkeval.c
8134         * link\z80\lkgb.c
8135         * link\z80\lkihx.c
8136         * link\z80\lks19.c
8137         * link\z80\lksym.c
8138         * support\cpp2\cpplib.c
8139         * src\ds390\gen.c
8140         * src\mcs51\gen.c
8141
8142 2003-08-03  Bernhard Held <bernhard AT bernhardheld.de>
8143
8144         * src/SDCCast.c (constExprTree): fix bug #781827 by Carl Worth <cworth AT isi.edu>
8145
8146 2003-08-01  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
8147
8148         * support\librarian\clean.mk: Do not remove Makefile.
8149         * support\librarian\Makefile: added.
8150
8151 2003-08-01  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
8152
8153         Added librarian to MSVC build:
8154         * all.dsp
8155         * sdcc.dsw
8156         * support\librarian\librarian.dsp
8157
8158         'configure' not needed for librarian, removed:
8159         * support\librarian\configure
8160         * support\librarian\configure.in
8161         * support\librarian\config_in.h
8162         * support\librarian\Makefile.in
8163
8164         Hopefully these ones built the librarian and the rest of sdcc properly:
8165         * Makefile
8166         * Makefile.common.in
8167
8168         Messed up 'configure', so revert to previous version:
8169         * configure
8170         * configure.in
8171
8172 2003-07-31  Bernhard Held <bernhard AT bernhardheld.de>
8173
8174         * src/SDCCicode.c (operandOperation): 3. fix, this time for Alpha; ULONG has 64 bits
8175         there, while the mantissa of a double is "only" 53 bits wide.
8176
8177 2003-07-31  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
8178
8179         Adding sdcclib to the build.  MSVC project coming soon.
8180         Files added/changed:
8181
8182         * support\librarian\clean.mk
8183         * support\librarian\configure
8184         * support\librarian\configure.in
8185         * support\librarian\config_in.h
8186         * support\librarian\Makefile.bcc
8187         * support\librarian\Makefile.in
8188         * support\librarian\sdcclib.c
8189         * Makefile.bcc
8190         * Makefile
8191         * Makefile.common.in
8192         * configure
8193         * configure.in
8194
8195 2003-07-29  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
8196
8197         Linker now complaints if linked modules have conflicting options, for
8198         example, one compiled using --model-large and another one compiled with
8199         --model-small.  The following files were modified:
8200
8201         * as\mcs51\asdata.c
8202         * as\mcs51\aslink.h
8203         * as\mcs51\asm.h
8204         * as\mcs51\asmain.c
8205         * as\mcs51\asout.c
8206         * as\mcs51\i51pst.c
8207         * as\mcs51\lkdata.c
8208         * as\mcs51\lklibr.c
8209         * as\mcs51\lkmain.c
8210         * as\z80\asdata.c
8211         * as\z80\asm.h
8212         * as\z80\asmain.c
8213         * as\z80\asout.c
8214         * as\z80\z80pst.c
8215         * link\z80\aslink.h
8216         * link\z80\lkdata.c
8217         * link\z80\lklibr.c
8218         * link\z80\lkmain.c
8219         * src\SDCCglue.c
8220
8221 2003-07-28  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
8222
8223         *link/z80/aslink.h, link/z80/lklibr.c, as/mcs51/aslink.h,
8224         as/mcs51/lklibr.c: Generate a warning when a library is not found.
8225
8226 2003-07-28  Bernhard Held <bernhard AT bernhardheld.de>
8227
8228         * src/z80/mappings.i: fix _mul[us][int,long] entries
8229
8230 2003-07-26  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
8231
8232         *src/SDCCmain.c: do not search for crt0.o when using --nostdlib
8233
8234 2003-07-24  Bernhard Held <bernhard AT bernhardheld.de>
8235
8236         * src/SDCCicode.c (operandOperation): really fixed problem with bitops
8237         * support/regression/tests/bitopcse.c: added
8238         fixed warning:
8239         * src/avr/gen.c:
8240         * src/pic/gen.c:
8241         * src/pic16/gen.c:
8242         * src/z80/gen.c:
8243         * src/xa51/gen.c:
8244
8245 2003-07-24  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
8246
8247         added support for new library format to z80, gbz80 linkers:
8248         *link/z80/aslink.h
8249         *link/z80/lklex.c
8250         *link/z80/lklib.c
8251         *link/z80/lklist.c
8252
8253 2003-07-24  Bernhard Held <bernhard AT bernhardheld.de>
8254
8255         * src/SDCCicode.c (operandOperation): fixed problem with bitops and 0xffffffff;
8256         after {double d = 0xffffffff; long l = d;} l will be 0x80000000 (LONG_MIN)
8257
8258 2003-07-23  Bernhard Held <bernhard AT bernhardheld.de>
8259
8260         added DUMMY_READ_VOLATILE:
8261         * src/SDCC.y:
8262         * src/avr/gen.c:
8263         * src/xa51/gen.c:
8264         * src/z80/gen.c:
8265         * src/pic/gen.c:
8266         * src/pic16/gen.c:
8267         * src/mcs51/gen.c:
8268         * src/ds390/gen.c:
8269         * src/SDCCcse.c (algebraicOpts): many improvements
8270         * src/SDCCcse.h: removed algebraicOpts()
8271         * src/SDCCicode.c (picDummyRead): added
8272
8273 2003-07-23  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
8274
8275         * as/mcs51/lkmem.c: Changed message "Insufficient DRAM memory" to
8276         "Insufficient space in data memory".
8277
8278 2003-07-20  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
8279
8280         * src/mcs51/gen.c: fixed bug #771358
8281         * src/z80/gen.c: fixed bug #759087
8282
8283 2003-07-20  Bernhard Held <bernhard AT bernhardheld.de>
8284
8285         * src/pic16/glue.c: minor cleanup by Vangelis
8286
8287 2003-07-19  Frieder Ferlemann <Frieder.Ferlemann AT web.de>
8288
8289         * device/include/regc515c.h: fixed #758477
8290         * device/lib/_gptrget.c: saving some cycles in generic pointer get
8291         * device/lib/_gptrput.c: saved a few bytes
8292         * my tab spacing is 8, yours too?)
8293         * device/lib/_ser.c: process RX bytes earlier than TX bytes
8294         * device/lib/serial.c: process RX bytes earlier than TX bytes
8295         * src/mcs51/gen.c(genGenPointerGet/Set): removed writing of type after postincrement
8296
8297 2003-07-18  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
8298
8299         * src/z80/gen.c: fixed some right shift bugs (#772726 among them)
8300
8301 2003-07-17  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
8302
8303     * link/z80/lklibr.c: fixed bug when there is a '.' in a library path.
8304
8305 2003-07-17  Bernhard Held <bernhard AT bernhardheld.de>
8306
8307         * device/lib/Makefile.in: bad fix, reverted to 1.43
8308
8309 2003-07-16  Bernhard Held <bernhard AT bernhardheld.de>
8310
8311         * device/lib/Makefile.in: added missing z80 object files
8312
8313 2003-07-14  Bernhard Held <bernhard AT bernhardheld.de>
8314
8315         * src/SDCCcse.c (algebraicOpts): CSE fun with &|^ and 0x00/0xff literals
8316         pic16 progress by Vangelis:
8317         * src/SDCCglobl.h:
8318         * src/SDCCmain.c:
8319         * src/pic/Makefile:
8320         * src/pic:
8321         * pic/Makefile:
8322         * pic16/device.c:
8323         * pic16/device.h:
8324         * pic16/gen.c:
8325         * pic16/gen.h:
8326         * pic16/genarith.c:
8327         * pic16/glue.c:
8328         * pic16/main.c:
8329         * pic16/pcode.c:
8330         * pic16/pcode.h:
8331         * pic16/pcodepeep.c:
8332         * pic16/peeph.def:
8333
8334 2003-07-13  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
8335
8336     * src/SDCCmain.c, src/SDCCglobl.h: added option --no-std-crt0
8337
8338 2003-07-12  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
8339
8340     * sdcc.dsw, all.dsp, link/z80/linkgbz80.dsp, as/z80/as-gbz80.dsp:
8341     added gbz80 build to MSVC project.
8342     * src/SDCCmain.c, src/SDCCglue.c, src/z80/main.c, src/z80/z80.dsp,
8343     link/z80/aslink.h, linkz80.dsp: cleaned up z80 and gbz80 asm files
8344     from 8051 stuff and setup so it links using a .lnk file.
8345
8346 2003-07-06  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
8347
8348     * support/librarian/sdcclib.c: sdcc librarian.
8349     * as/mcs51/aslink.h, as/mcs51/lklib.c: Support for libraries created
8350     with sdcclib.
8351
8352 2003-07-03  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
8353
8354     * as/mcs51/lkmain.c: properly handle extensions in function afile.
8355
8356 2003-07-02  Borut Razem <borut.razem AT siol.net>
8357
8358         * src/port.h, src/SDCCmain.c, src/pic/glue.h, src/pic/main.c,
8359         src/pic16/glue.h, sdcc/src/pic16/main.c, src/izt/i186.c,
8360         src/izt/tlcs900h.c, src/avr/main.c, src/ds390/main.c, src/mcs51/main.c,
8361         src/xa51/main.c, src/z80/main.c:
8362         virtualization of glue() function: each port has it's own glue function,
8363         which is accessed by do_glue function pointer in PORT.general structure
8364
8365 2003-07-01 Kevin Vigor <kevin AT vigor.nu>
8366
8367         * DS800C400 fun, improved ROM interface and tinibios.
8368
8369 2003-06-27 Kevin Vigor <kevin AT vigor.nu>
8370
8371         * More support for DS80C400. Now includes beginning of interface to ROM.
8372
8373 2003-06-25  Bernhard Held <bernhard AT bernhardheld.de>
8374
8375         * src/mcs51/gen.c (gencjneshort): fixed bug #760345
8376
8377 2003-06-20  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
8378
8379         * as/mcs51/lkaomf51.c: Make sure the size of the last procedure is correct.
8380
8381 2003-06-19  Borut Razem <borut.razem AT siol.net>
8382
8383         * src/z80/main.c: fixed Z80 port again: missing -k library paths in linker command line
8384
8385 2003-06-19  Borut Razem <borut.razem AT siol.net>
8386
8387         * src/SDCCutil.h, src/SDCCutil.c, src/SDCCglobl.h, src/SDCCmain.c, src/z80/main.c:
8388         fixed Z80 port - crt0.o: cannot open.
8389
8390 2003-06-19  Bernhard Held <bernhard AT bernhardheld.de>
8391
8392         * support/Util/MySystem.c (merge_command): revert bad fix
8393
8394 2003-06-18  Borut Razem <borut.razem AT siol.net>
8395
8396         * src/SDCC.lex, src/SDCCmain.c: fixed some warnings, introduced with changes made 15.06.1003
8397
8398 2003-06-18  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
8399
8400         * src/SDCCglobl.h, src/SDCCmain.c, doc/sdccman.lyx:
8401         option --use-stdout sends errors to stdout instead of stderr.
8402
8403 2003-06-18  Bernhard Held <bernhard AT bernhardheld.de>
8404
8405         * support/Util/MySystem.c (merge_command): quick fix for Linux segfault with \"cmd\" arg
8406
8407 2003-06-15  Borut Razem <borut.razem AT siol.net>
8408
8409         * support/cpp2/sdcc.h: HAVE_DOS_BASED_FILE_SYSTEM defined for _WIN32
8410         * src/SDCC.lex: cloneXxx and copyAndFreeXxx functions for options and optimize stack handling
8411         * src/SDCCglobl.h, src/SDCCmain.c, src/ds390/main.c, src/mcs51/main.c, src/z80/main.c:
8412         fixed width array of pointers replaced with sets;
8413         multiple include and lib paths ared transferred to preprocessor and linker
8414         * src/SDCCset.c, src/SDCCset.h: added function setFromSetNonRev() and mergeSets()
8415         * src/SDCCsymt.c: reimplemented function inCalleeSaveList() by using sets instead
8416         fixed width array of pointers
8417         * src/SDCCutil.c, src/SDCCutil.h: added functions fputStrSet(), appendStrSet(), joinStrSet();
8418         removed functions addToList(), join(), joinn(), pathCharsEquivalent(), pathCharTransform(),
8419         fixupPath(), getPathDifference()
8420         * src/ds390/gen.c, src/mcs51/gen.c: reimplemented function  inExcludeList() by using sets instead
8421         fixed width array of pointers
8422
8423 2003-06-11  Bernhard Held <bernhard AT bernhardheld.de>
8424
8425         * src/pic16/ralloc.c: fix warnings
8426         * src/pic16/pcode.c: fix warning
8427
8428 2003-06-10  Scott Dattalo  <scott AT dattalo.com>
8429
8430          Scott D. for Vangelis Rokas (vrokas AT otenet.gr). I (scott) don't
8431         know all the details, but essentially this set of changes enable
8432         the pic16 port to generate movff instructions and generate assembler
8433         directives,
8434         * src/SDCCmain.c:
8435         * src/pic16/gen.c:
8436         * src/pic16/glue.c:
8437         * src/pic16/pcode.c:
8438         * src/pic16/device.c:
8439         * src/pic16/main.c:
8440         * src/pic16/pcode.h:
8441         * src/pic16/pcoderegs.c:
8442         * src/pic16/ralloc.c:
8443         * src/pic16/ralloc.h:
8444
8445 2003-06-08  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
8446
8447         * support/Util/SDCCerr.c, src/SDCCglobl.h, src/SDCCmain.c, doc/sdccman.lyx:
8448         added option --vc, so sdcc errors and warnings are compatible with
8449         Microsoft Visual Studio.
8450
8451 2003-06-07  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
8452
8453         * device/lib/_atof.c, device/lib/Makefile.in, device/include/stdlib.h,
8454           device/lib/libfloat.lib: added atof function.
8455
8456 2003-06-04  Bernhard Held <bernhard AT bernhardheld.de>
8457
8458         * doc/sdccman.lyx: updated to Lyx 1.3
8459         * doc/cdbfileformat.lyx: updated to Lyx 1.3
8460         * doc/test_suite_spec.lyx: updated to Lyx 1.3
8461         * doc/Makefile: added fix for the \tabularnewline problem, thanks to Jesus
8462
8463 2003-06-03  Bernhard Held <bernhard AT bernhardheld.de>
8464
8465         * src/SDCCpeeph.c: separate peepRules2pCode() for pic16 by "Vangelis Rokas" <vrokas AT otenet.gr>
8466
8467 2003-06-02  Frieder Ferlemann <Frieder.Ferlemann AT web.de>
8468
8469         * doc/sdccman.lyx: cvs revision keywords, passing pdf information in latex preamble,
8470           additions to the "related tools/documentation" section
8471
8472 2003-06-02  Bernhard Held <bernhard AT bernhardheld.de>
8473
8474         * src/SDCCglue.c (tempfileandname): added check for missing TMP/TEMP/TMPDIR variable
8475
8476 2003-05-29  Bernhard Held <bernhard AT bernhardheld.de>
8477
8478         * src/pic/device.c: added 16F819, patch by "David I. Lehn" <dlehn AT vt.edu>
8479         * src/SDCCcse.c (algebraicOpts): fixed "c * 1"
8480
8481 2003-05-28  Bernhard Held <bernhard AT bernhardheld.de>
8482
8483         * doc/sdccman.lyx: fix double dash and other minor things
8484         * doc/Makefile: fix double dash
8485
8486 2003-05-28  Karl Bongers(patches from Martin Helmling)
8487         * debugger/mcs51/sdcdb.c,cmd.c,break.c and .h files. Martin adds
8488           condition and ignore commands.
8489
8490 2003-05-28  Frieder Ferlemann <Frieder.Ferlemann AT web.de>
8491
8492         * doc/sdccman.lyx: Changes all over, index improved, smaller margins. The manual
8493           is in parts still quite out of date, I did changes as far as I felt makes sense
8494           for a non-native english speaker.
8495           Please feel free to add to the manual or to correct my changes.
8496         * doc/Makefile: undid touching the date of intermediate tex files.
8497
8498 2003-05-26  Frieder Ferlemann <Frieder.Ferlemann AT web.de>
8499
8500         * doc/sdccman.lyx: Manual has an index now
8501
8502 2003-05-25  Bernhard Held <bernhard AT bernhardheld.de>
8503
8504         Finalize muluint/mulsint and mululong/mulslong merging:
8505         * device/lib/_mulint.c
8506         * device/lib/_mullong.c
8507         * device/lib/gbz80/mul.s
8508         * device/lib/gbz80/stubs.s
8509         * device/lib/z80/mul.s
8510         * device/lib/z80/stubs.s
8511         * src/SDCCsymt.c (initCSupport)
8512
8513 2003-05-25  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
8514
8515         * as/mcs51/lkaomf51.c: Address space 'z' was missing.
8516         * src/avr/avr.dsp, src/ds390/ds390.dsp, src/mcs51/mcs51.dsp,
8517           src/pic/pic.dsp, src/pic16/pic16.dsp, src/xa51/xa51.dsp,
8518           src/x80/z80.dsp: peep.rul is bigger now, so /Zm1000 is used
8519           instead of /Zm500.
8520
8521 2003-05-25  Frieder Ferlemann <Frieder.Ferlemann AT web.de>
8522
8523         * src/mcs51/peeph.def: added rules 244.x, 245.x. Although they pass
8524           the regression tests I'm not brave enough to enable 245.b, 245.c
8525         * doc/sdccman.lyx: added latex preamble for hyperref package.
8526           Using pdflatex this will give you a hyperlinked pdf file with
8527           bookmarks. (prepend '%' before /usepackage if this breaks something)
8528
8529 2003-05-24  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
8530
8531          * doc/sdccman.lyx: updated information about .adb files (fixed bug 742649)
8532
8533 2003-05-22  Bernhard Held <bernhard AT bernhardheld.de>
8534
8535         * src/pic16/pcode.c (pic16_get_op_from_instruction): fixed a gcc 3.x warning
8536
8537 2003-05-21    <johan AT balder>
8538
8539         * src/SDCCglue.c (printIval): fixed bug #739934
8540
8541 2003-05-19  Bernhard Held <bernhard AT bernhardheld.de>
8542
8543         Applied patch from bug 737905 (renamed yylineo to mylineno):
8544         * src/altlex.c
8545         * src/SDCCast.c
8546         * src/SDCglobl.h
8547         * src/SDCC.lex
8548         * src/SDCCsymt.c
8549         * src/SDCCval.c
8550         * src/pic16/pcode.c: Cleaned warnings
8551         * src/pic16/pcodeflow.c: Cleaned warnings
8552         * src/pic16/pcoderegs.c: Cleaned warnings
8553
8554 2003-05-19  Scott Dattalo  <scott AT dattalo.com>
8555
8556         * src/pic16/pcode.c: Cleaned warnings
8557         * src/pic16/pcodepeep.c: Cleaned warnings
8558         * src/pic16/ralloc.c: Cleaned warnings
8559
8560 2003-05-19  Bernhard Held <bernhard AT bernhardheld.de>
8561
8562         * doc/sdccman.lyx: fixed bug 739745
8563         * src/pic16/pcode.c (pic16_get_op): fixed warning on alpha
8564
8565 2003-05-18  Bernhard Held <bernhard AT bernhardheld.de>
8566
8567         * src/port.h: removed DEFAULT_PORT, it's not yet pic16 ;-)
8568         it can be defined with CFLAGS when running configure
8569         * src/SDCCmain.c: fixed compiling + linking with object files
8570
8571 2003-05-18  Vangelis Rokas (vrokas AT otenet.gr)
8572
8573         * configure.in: configure for pic16 port,
8574             added --disable-pic16-port
8575         * sdccconf_in.h: added macro OPT_DISABLE_PIC16
8576         * src/SDCCmain.c: linkOptions is changed to set *,
8577             added if/endif conditional macros to remove options help
8578             messages from optionsTable when a port is not configured, added
8579             support for the PIc16 port in the ports table, when executing
8580             the compiler with no port specified on command line, a default
8581             port is selected with the new macro DEFAULT_PORT which is
8582             defined in port.h, in setDefaultOptions() linkOptions is removed
8583             from initialization assignment, since now it is a set,
8584             parseCmdLine uses setParseWithComma for linkOptions, in
8585             linkEdit() linkOptions are accessed with new function indexSet()
8586             which returns the i'th item of a set variable. See SDCCset.c, in
8587             linkEdit() when calling buildCmdLine(), added linkOptions as
8588             last argument. Now users can pass arguments to gplink via the
8589             -Wl option, main() uses pic16glue() to glue up pic16 programs
8590         * src/SDCCpeeph.c: various changes to support pic16
8591         * src/SDCCset.c: added function  void *indexSet(set *, int)  to
8592             return the i'th item of the set
8593         * src/SDCCset.h: added function prototype for indexSet()
8594         * src/SDCCsymt.c: in checkSClass(), added support for PIC16
8595         * src/clean.mk: added pic16 in CLEANALLPORTS variable
8596         * src/port.h: added TARGET_ID_PIC16,TARGET_IS_PIC16 macro,
8597             added macro DEFAULT_PORT
8598         * src/pic/main.c: corrected arguments of gplnk in _linkCmd
8599         * src/pic16/gen.c: bug fix in genCpl(), now the correct code is
8600             generated
8601         * src/pic16/glue.c: commented out some error producing lines
8602         * src/pic16/main.c: __config directives are commented out to stop
8603             gpasm complaining and test the linkage with gplink, _linkCmd and
8604             _asmCmd changed to be more gplink and gpasm friendly
8605         * src/pic16/peeph.def: peep rule 3 is commented out, since it
8606             produced an error when parsed, peep rule 12 is added to utilize
8607             movff, but it is commented out since the pCode does not support
8608             yet a command with 2 address arguments
8609
8610 2003-05-18    <johan AT balder>
8611
8612         * src/ds390/gen.c (genArrayInit): removed obsolete and buggy ARRAYINIT
8613         * src/ds390/main.c (genArrayInit): removed obsolete and buggy ARRAYINIT
8614 2003-05-17  Karl Bongers(apply patches from Martin Helmling)
8615
8616         * debugger/mcs51/sdcdb.c,cmd.c,break.c and .h files.
8617   Added feature to script commands from file.
8618
8619 2003-05-14  Bernhard Held <bernhard AT bernhardheld.de>
8620
8621         * device/lib/_strtok.c: fixed bug #734355 by Lenny Story and Tim Woodall
8622         * src/SDCCutil.c: include ctype.h for win32
8623
8624 2003-05-13  Bernhard Held <bernhard AT bernhardheld.de>
8625
8626         * src/pic16/*: removed CR from many files, reported by Vangelis Rokas
8627
8628 2003-05-12  Karl Bongers(apply development patches from Martin Helmling)
8629
8630         * debugger/mcs51/sdcdb.c,simi.c,cmd.c,break.c and .h files.
8631   Fixed so you can set breakpoints prior to run, run does not stop
8632   on entry now.  Add tbreak.  Other enhancements and fixes for use
8633   with ddd.
8634
8635 2003-05-12  Borut Razem <borut.razem AT siol.net>
8636
8637         * src/SDCCmain.c: fixed the problem with searching the DATADIR as the last resort on *nix
8638
8639 2003-05-11  Borut Razem <borut.razem AT siol.net>
8640
8641         * src/SDCCutil.c: WIN32 version of getBinPath() calls GetModuleFileName() to determine
8642         the path of bin directory, so that PATH is the only env. variable, which has to be set
8643         in case of standard installation.
8644         * src/ds390/ds390.dsp: increased value of /Zm option to 1000
8645         * src/pic/main.c: add quotes to file name parameters for gplink and gpasm
8646         * src/SDCCglobl.h, src/SDCCmain.c, doc/sdccman.lyx: added --print-search-dirs command line option
8647
8648 2003-05-04  Bernhard Held <bernhard AT bernhardheld.de>
8649
8650         * src/SDCCmain.c (linkEdit): fixed buffer overflow for gbz80
8651         * support/regression/Makefile: inter-port-clean is no longer nesessary, the
8652         temp files are in the port dir; clean the gen/test directory when
8653         generating new test.c
8654         * support/regression/ports/host/spec.mk: defined OBJEXT for target clean
8655         * support/regression/tests/vaargs.c: fixed gcc 3.3 warning
8656         * support/regression/tests/zeropad.c: added
8657
8658 2003-05-09    <johan AT balder>
8659
8660         * src/SDCCglue.c: fixed bug #597940
8661
8662 2003-05-05  Karl Bongers(apply patches from Martin Helmling)
8663
8664         * debugger/mcs51/sdcdb.c,simi.c,cmd.c,symtab.c and .h files.
8665   cache sfr, optimize next,step, fix off by one sourceline,
8666   support ddd list function.
8667         * sim/ucsim/cmd.src/newcmd.cc - small fix for sdcdb use.
8668
8669 2003-05-04  Bernhard Held <bernhard AT bernhardheld.de>
8670
8671         * support/regression/HTMLgen.py: added compare_s2f()
8672         * support/regression/Makefile: redo 1.27
8673         * support/regression/generate-cases.py: redo 1.5
8674
8675 2003-04-30  Bernhard Held <bernhard AT bernhardheld.de>
8676
8677         * support/regression/tests/float.c: workaround 33 bit hex constant
8678         * support/regression/tests/simplefloat.c: fix division for host
8679
8680 2003-04-29  Scott Dattalo  <scott AT dattalo.com>
8681
8682         * src/pic/pcoderegs.c Applied patch from Jim Hawkridge <jim AT jimhawkridge.uk.eu.org>
8683         that tame's the PIC's over-aggressive optimizer.
8684
8685 2003-04-29  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
8686
8687          * src.dsw, link/z80/aslink.h, link/z80/linkz80.dsp: z80 linker
8688          support for MSVC.
8689
8690 2003-04-29  Kevin Vigor <kevin AT vigor.nu>
8691
8692         Initial support for DS80C400. "Hello world" runs on TINIm400
8693         (with polled I/O).
8694
8695 2003-04-28  Karl Bongers(apply patches for Martin Helmling)
8696
8697          * debugger/mcs51/sdcdb.c,simi.c,cmd.c,symtab.c and .h files.
8698          * Some notes on ddd usage added in debugger/README
8699          Martin Helmling adding more features and fixes for ddd GUI debugger.
8700          Code added for nexti, stepi, up, down, and other adjustments.
8701
8702 2003-04-28  Scott Dattalo  <scott AT DATTALO.COM>
8703
8704         * src/pic/pCodepeep.c non-wildcard asmops are now handled
8705         * src/pic/peeph.def Added two rules to optimize carry manipulation
8706         * src/pic/* removed debug printfs
8707
8708 2003-04-28  Bernhard Held <bernhard AT bernhardheld.de>
8709
8710         * debugger/mcs51/cmd.c: added header newalloc.h
8711
8712 2003-04-26  Bernhard Held <bernhard AT bernhardheld.de>
8713
8714         * as/Makefile: new EXEEXT
8715         * as/z80/Makefile: remove trailing slash of BUILDIR
8716         * as/z80/clean.mk: new EXEEXT
8717         * Makefile.common.in: add to CFLAGS (and others), don't replace it
8718         * support/cpp2/Makefile.in: new EXEEXT
8719         * src/pic/glue.c (pic14emitRegularMap): fixed warning
8720
8721 2003-04-24  Bernhard Held <bernhard AT bernhardheld.de>
8722
8723         Cygwin's gcc always appends .exe: 'gcc -o a a.c' creates a.exe;
8724         EXEEXT was introduced to fix all related problems with targets
8725         "clean", "install" and "uninstall"; a couple of further flaws
8726         especially with "clean" have been fixed too
8727         * as/mcs51/Makefile.in
8728         * as/mcs51/clean.mk
8729         * as/z80/Makefile
8730         * Makefile
8731         * clean.mk
8732         * debugger/mcs51/Makefile.in
8733         * debugger/mcs51/clean.mk
8734         * link/z80/Makefile
8735         * link/z80/Makefile.in
8736         * link/z80/clean.mk
8737         * link/Makefile
8738         * packihx/Makefile.in
8739         * packihx/clean.mk
8740         * sim/ucsim/Makefile
8741         * sim/ucsim/clean.mk
8742         * sim/ucsim/avr.src/Makefile.in
8743         * sim/ucsim/avr.src/clean.mk
8744         * sim/ucsim/s51.src/Makefile.in
8745         * sim/ucsim/s51.src/clean.mk
8746         * sim/ucsim/xa.src/Makefile.in
8747         * sim/ucsim/xa.src/clean.mk
8748         * sim/ucsim/z80.src/Makefile.in
8749         * sim/ucsim/z80.src/clean.mk
8750         * sim/ucsim/main_in.mk
8751         * sim/ucsim/packages_in.mk
8752         * sim/ucsim/gui.src/Makefile.in
8753         * sim/ucsim/gui.src/serio.src/Makefile.in
8754         * sim/ucsim/gui.src/serio.src/clean.mk
8755         * src/Makefile.in
8756         * src/clean.mk
8757         * support/cpp2/Makefile.in
8758         * support/cpp2/clean.mk
8759         * support/makebin/Makefile
8760         * support/makebin/clean.mk
8761         * support/scripts/sdcc_mingw32: --program-suffix no longer needed
8762         * doc/sdccman.lyx: --program-suffix no longer needed
8763
8764 2003-04-23  Karl Bongers(apply patches for Martin Helmling)
8765
8766          * debugger/mcs51/sdcdb.c,simi.c,cmd.c,..
8767          Martin Helmling added support for ddd GUI debugger.
8768          Code added to display assembly, set variables, and other commands
8769          to interface to ddd.
8770
8771 2003-04-23  Bernhard Held <bernhard AT bernhardheld.de>
8772
8773         * as/Makefile: fix target clean
8774         * as/clean.mk: fix target clean
8775         * as/z80/clean.mk: fix target clean
8776
8777 2003-04-22  Bernhard Held <bernhard AT bernhardheld.de>
8778
8779         * Makefile.common.in: added  AT EXEEXT AT
8780         * configure.in: removed all mingw32 stuff
8781         * configure: rebuilt from configure.in
8782         * doc/sdccman.lyx: updated section "installation"
8783         * support/scripts/sdcc_mingw32: adapted to configure
8784         * support/scripts/sdcc_cygwin_mingw32: added
8785
8786 2003-04-22  Scott Dattalo  <scott AT dattalo.com>
8787
8788         * src/pic Added object file support for the PIC port
8789         * src/pic Applied patch from Craig Franklin (this started the object file support)
8790         * src/regression Updated the PIC regression tests for object files
8791
8792 2003-04-20  Borut Razem <borut.razem AT siol.net>
8793
8794         * sdcc/as/mcs51/lklex.c: make getfid() more robust and fixed gcc warning:
8795           lklex.c: In function `getfid':
8796           lklex.c:203: warning: array subscript has type `char'
8797         * src/SDCCglobl.h: small change in stack handling macros, to avoid crash when compiled
8798           with MSVC with global optimization enabled (probably an cl compiler bug ;-)
8799         * support/Util/SDCCerr.c, support/Util/SDCCerr.h: added function fatal(), called from
8800           stack handling macros
8801
8802 2003-04-19  Borut Razem <borut.razem AT siol.net>
8803
8804         * "handling space characters in file path" task:
8805         * src/SDCCmacro.c: fixed bug in handlig quote at the end of line
8806         * support/Util/BuildCmd.c: define par as NULL if parameter value is invalid
8807         * support/Util/MySystem.h: make it self-sufficient
8808         * src/avr/main.c, src/ds390/main.c, src/mcs51/main.c, src/pic/main.c, src/xa51/main.c,
8809           src/z80/main.c, sdcc/as/mcs51/lklex.c:
8810           handling space characters in file path
8811         * src/SDCCmain.c: introduced setDataPaths() function, {datadir} macro
8812           (it will be used by assemblers, which have their own includes, e.g. gpasm)
8813         * support/Util/MySystem.c: handling space characters in executable's path
8814
8815 2003-04-19  Bernhard Held <bernhard AT bernhardheld.de>
8816
8817         * as/z80/Makefile: fix permanent rebuild of z80
8818         * sim/ucsim/gui.src/Makefile.in: target "install" builds the same packages as target "all"
8819         * support/regression/tests/bitfields.c: added Johan's bitfields.c
8820
8821 2003-04-18      Kevin Vigor <kevin AT vigor.nu>
8822
8823         * src/SDCCopt.c: add special case optimization to replace modulo by
8824           a power of two with a bitwise AND.
8825
8826 2003-04-18    <johan AT balder>
8827
8828         * src/mcs51/gen.c (getFreePtr): fixed bug #635354
8829
8830 2003-04-17    <johan AT balder>
8831
8832         * src/mcs51/ralloc.c (packRegsForAssign): fixed bug #716790 and removes lot's of redundant register usage around function calls
8833         * src/mcs51/ralloc.c (packRegisters): fixed bug #720667
8834
8835 2003-04-13  Borut Razem <borut.razem AT siol.net>
8836
8837         * doc/sdccman.lyx: updated info about #pragma SAVE/RESTORE nesting
8838         * configure.in, configure: fixed problems on cygwin/WinCVS environmet with ports.* line endings;
8839           fixed mingw problem in adl_NORMALIZE_PATH
8840
8841 2003-04-12  Borut Razem <borut.razem AT siol.net>
8842
8843         * fixed "#pragma SAVE/RESTORE can not be nested":
8844         * src/SDCC.lex: reworked pragma handling functions
8845         * sdcc/src/SDCCglobl.h: reworked stack handling macros
8846         * support/Util/SDCCerr.c, support/Util/SDCCerr.h: added E_STACK_VIOLATION error
8847
8848 2003-04-12  Bernhard Held <bernhard AT bernhardheld.de>
8849
8850         * src/SDCCutil.c (pathEquivalent): defined but not used
8851         * debugger/mcs51/sdcdb.c: replace SDCC_LIB_DIR
8852         * configure.in: remove sdcc_datadir, sdcc_lib_dir and sdcc_include_dir
8853         * configure: rebuilt from configure.in
8854         * sdccconf_in.h: remove SDCC_LIB_DIR and SDCC_INCLUDE_DIR
8855         * sdcc_vc_in.h: remove SDCC_LIB_DIR and SDCC_INCLUDE_DIR
8856         * device/include/Makefile.in: replace sdcc_datadir
8857         * device/lib/Makefile.in: replace sdcc_datadir
8858         * Makefile.common.in: add LDFLAGS from configure
8859         * packihx/Makefile.in: use LDFLAGS
8860         * src/Makefile.in: use LDFLAGS
8861         * support/cpp2/Makefile.in: add LDFLAGS from configure
8862         * support/makebin/Makefile: use LDFLAGS
8863         * .version: bumped version number to 2.3.5
8864
8865 2003-04-12  Borut Razem <borut.razem AT siol.net>
8866
8867         * completed "different paths" task:
8868         * src/SDCCmacro.c: fixed bug in handling quotes
8869         * src/SDCCutil.c, src/SDCCutil.c: rewritten getPrefixFromBinPath()
8870         * src/SDCCmain.c: _discoverPaths() replaced with setBinPaths(), setIncludePath() and setLibPath()
8871
8872 2003-04-12  Bernhard Held <bernhard AT bernhardheld.de>
8873
8874         * src/pic/pcoderegs.c (Remove1pcode): fix warning on alpha
8875
8876 2003-04-11 kevin Vigor <kevin AT vigor.nu>
8877
8878         * ds390/gen.c ds390/peeph.def: fix bug 706781
8879
8880 2003-04-11  Borut Razem <borut.razem AT siol.net>
8881
8882         * support/Util/dbuf.c, support/Util/dbuf.h: update to version 1.1.1 - re-added C++ stuff to make it still more portable
8883
8884 2003-04-10  Scott Dattalo  <scott AT dattalo.com>
8885
8886         * src/pic/* Applied the pointer-to-function patch from Steve Tell.
8887         * src/pic/* Fixed several pointer bugs. (PIC port broke when the ruonly bit was
8888          set - this bit used to not be set...).
8889         * src/pic/gen.c Fixed buf 609268 ==> x = (x+1) & 0xf; generated
8890           bad code in PIC Port
8891         * src/regression/and2.c added to test bug 609268
8892         * src/regression/Makefile added and2.c to regression test
8893
8894
8895 2003-04-08    <johan AT CP255758-A>
8896
8897         * src/mcs51/gen.c (gen51Code): display reg usage in --icode-in-asm
8898         * src/mcs51/ralloc.c (serialRegAssign): update the registers in use and save some slocs
8899         * src/SDCCicode.h: added riu to show the register usage in --icode-in-asm
8900
8901 2003-04-07  Bernhard Held <bernhard AT bernhardheld.de>
8902
8903         * configure.in: fully support prefix, exec_prefix, datadir, docdir;
8904         fix bug #487815
8905         * support/cpp2/Makefile.in: fix bug #487815
8906         * configure: rebuilt from configure.in
8907         * Makefile.common.in: docdir changed, new path suffixes
8908         * sdccconf_in.h: new RETSIGTYPE, and other PATHs
8909         * sdcc_vc_in.h: reflect changes from sdccconf.h
8910         * src/SDCCglobl.h: remove *SEPARATOR_CHARS, they are now in sdccconf.h
8911         * src/SDCCutil.h: remove BINDIR hack
8912         * doc/sdccman.lyx: update new path hierarchy
8913
8914 2003-04-06    Paul Stoffregen <paul AT pjrc.com>
8915
8916         * src/SDCCpeeph.c: added okToRemoveSLOC test
8917
8918 2003-04-06    Paul Stoffregen <paul AT pjrc.com>
8919
8920         * device/lib/printf_fast.c: added leading zero format ("%06d", etc)
8921
8922 2003-04-06    Paul Stoffregen <paul AT pjrc.com>
8923
8924         * src/SDCCpeeph.c: added labelIsReturnOnly test
8925         * src/mcs51/peeph.def: Peephole 244: replace ljmp to ret with ret
8926
8927 2003-04-05    <johan AT balder>
8928
8929         * src/SDCCcse.c (cseAllBlocks): fixed bug #460088
8930         * src/SDCCloop.c (DEFSETFUNC): fixed bug #460088
8931         * src/SDCCopt.c (eBBlockFromiCode): fixed bug #460088
8932         * src/SDCCast.c: fixed a warning
8933         * src/SDCCast.h: fixed a warning
8934         * src/SDCCicode.c (operandFromAst): fixed a warning
8935
8936 2003-04-04    <johan AT balder>
8937
8938         * src/SDCCloop.c (DEFSETFUNC): undid the fix for bug #519584
8939         * src/SDCCast.c (decorateType): fixed bug #715076
8940         * src/SDCC.y: fixed bug #702907
8941
8942 2003-04-03    <johan AT balder>
8943
8944         * device/lib/_mulint.c (_muluint): new #pragma LESS_PEDANTIC
8945         * src/SDCCopt.c (eBBlockFromiCode): new #pragma LESS_PEDANTIC
8946         * src/SDCCglobl.h (PRAGMA_LESSPEDANTIC): new #pragma LESS_PEDANTIC
8947         * src/SDCC.lex (doPragma): new #pragma LESS_PEDANTIC
8948         * src/SDCCmain.c (parseCmdLine): new #pragma LESS_PEDANTIC
8949
8950 2003-04-03  Bernhard Held <bernhard AT bernhardheld.de>
8951
8952         * _decdptr.c: fix return values
8953         * _gptrget.c: fix return values
8954         * _gptrgetc.c: fix return values
8955         * _gptrput.c: fix return values
8956         * _mulint.c: fix return values
8957         * as/z80/Makefile: fix 'make -j' problem
8958
8959 2003-04-02  Bernhard Held <bernhard AT bernhardheld.de>
8960
8961         * Makefile.common.in: unused PORT, SCC and SAS removed, fixed docdir
8962         * configure.in: big cleanup, updated to autoconf 2.5x
8963         * configure: rebuilt from configure.in
8964         * sdccconf_in.h: new RETSIGTYPE, and other PATHs
8965         * sdcc_vc_in.h: reflect changes from sdccconf.h
8966         * doc/Makefile: fixed a flaw in "make install"
8967
8968 2003-04-02    <johan AT balder>
8969
8970         * src/ds390/gen.c (genCmp): no comments
8971         * src/mcs51/gen.c (genCmp): no comments
8972         * src/SDCCopt.c (eBBlockFromiCode): detect missing return values
8973         * src/SDCCast.c (ast_print): fixed the function type in --dumptree
8974
8975 2003-04-01  Bernhard Held <bernhard AT bernhardheld.de>
8976
8977         * support/regression/generate-cases.py: place generated file in given sub directory
8978         * support/regression/ports/host/spec.mk: prevent removal of testfwk.o
8979         * support/regression/Makefile: improvements for 'make -j';
8980         side effect: it's simpler and faster now
8981
8982 2003-03-31  Borut Razem <borut.razem AT siol.net>
8983
8984         * src/z80/main.c: link-{port} and as-{port} defined without path
8985         * src/src.dsp: support/Util/MySystem.h and src/SDCCutil.h added to project
8986
8987 2003-03-31  Bernhard Held <bernhard AT bernhardheld.de>
8988
8989         * Makefile, src/Makefile.in: add dependencies, so that 'make -j' works
8990
8991 2003-03-30  Borut Razem <borut.razem AT siol.net>
8992
8993         * support/Util/BuildCmd.c, support/Util/BuildCmd.h: rewrite buildCmdLine(),
8994           changed type of list parameter to set
8995         * src/ds390/main.c: changed type of parameter asmOptions to set in _tininative_do_assemble()
8996         * src/port.h: changed type of do_assemble() parameter to set
8997         * src/SDCCmain.c: type of asmOptions changed to set, introduced setParseWithComma(),
8998           sdcpp defined without path, removed variable VersionString, introduced set binPathSet,
8999           definition of "cppoutfilename" macro with NULL value in preProcess()
9000         * src/SDCCglobl.h: included "SDCCset.h", added declaration of setParseWithComma()
9001         * src/SDCCglue.c: removed variable VersionString, inroduced spacesToUnderscores()
9002         * support/Util/MySystem.c, support/Util/MySystem.h: rewrite, char *ExePathList[]
9003           replaced with set *binPathSet
9004         * shash_add() deallocates the item, if allready exsists, before adding the new one
9005         * src/SDCCmacro.c: handling macros with empty or NULL values in _evalMacros()
9006
9007 2003-03-30  Scott Dattalo  <scott AT dattalo.com>
9008
9009         * src/pic/gen.c: Commit patch from Steve Tell <tell AT telltronics.org> that fixes
9010           a nested for loop bug in the PIC port
9011         * src/regression/nestfor.c: new regression test file Steve wrote to test nested
9012           for loops
9013
9014 2003-03-29  Bernhard Held <bernhard AT bernhardheld.de>
9015
9016         * support/Util/dbuf.h: remove C++ stuff to make it portable
9017
9018 2003-03-28  Borut Razem <borut.razem AT siol.net>
9019
9020         * src/SDCC.lex: Fix for bug #711240: dynamic buffer handling of C
9021           literal strings in stringLiteral()
9022         * support/Util/dbuf.c, support/Util/dbuf.h: added: dynamic buffer handling
9023         * src/Makefile.bcc, src/Makefile.in, src\src.dsp: added support/Util/dbuf.c
9024           to the project
9025
9026 2003-03-27  Paul Stoffregen <paul AT pjrc.com>
9027
9028         * src/SDCCpeeph.c (pcDistance): accurate byte distance for mcs51
9029
9030 2003-03-26    <johan AT balder>
9031
9032         * src/mcs51/gen.c (saveRegisters): catched symbol abuse
9033         * src/ds390/gen.c (saveRegisters): catched symbol abuse
9034         * src/SDCCast.c (decorateType): fixed " -v < 3"
9035
9036 2003-03-23  Bernhard Held <bernhard AT bernhardheld.de>
9037
9038         * doc/cdbfile.html: removed, replaced by cdbfileformat.lyx
9039         Added Lenny Story's debug infrastructure changes:
9040         * src/Makefile.in:  added new files cdbFile.c and SDCCdebug.c
9041         * src/Makefile.bcc: added new files cdbFile.c and SDCCdebug.c
9042         * src/cdbFile.c: added
9043         * src/SDCCdebug.c: added
9044         * src/SDCCdebug.h: added
9045         * src/SDCCast.c (createFunction)
9046         * src/SDCCglue.c (emitRegularMap, emitStaticSeg, emitOverlay, glue)
9047         * src/SDCCmain.c (parseCmdLine, main)
9048         * src/SDCCmem.c (redoStackOffsets)
9049         * src/SDCCsymt.c (cdbStructBlock, cdbTypeInfo, cdbSymbol, cdbStruct, cdbStructBlock)
9050         * src/SDCCsymt.h
9051         * src/common.h
9052         * src/avr/gen.c (genAVRCode)
9053         * src/ds390/gen.c (gen390Code)
9054         * src/mcs51/gen.c (gen51Code)
9055         * src/pic/gen.c (genpic14Code)
9056         * src/pic/glue.c (pic14emitRegularMap, pic14emitStaticSeg, pic14emitOverlay, picglue)
9057         * src/xa51/gen.c (genXA51Code)
9058         * src/SDCCast.c: fixed "void foo(void){char c; -c < 0;}"
9059
9060 2003-03-22  Frieder Ferlemann <Frieder.Ferlemann AT web.de>
9061
9062         * src/mcs51/gen.c (genCodePointerGet): quicker code for bug #700797
9063         * src/mcs51/peeph.def: added rules 177, 241.x to 243, touched 181, 182.x, 193.x
9064
9065 2003-03-22    <johan AT balder>
9066
9067         * src/SDCCicode.c (geniCodeDerefPtr): fixed bug #698231
9068
9069 2003-03-21  Bernhard Held <bernhard AT bernhardheld.de>
9070
9071         * support/scripts/sdcc_mingw32: adapted to configure from autoconf 2.54
9072         * doc/cdbfileformat.lyx: added, written by Lenny Story
9073         * doc/Makefile: added cdbfileformat.lyx
9074         * doc/clean.mk: added cdbfileformat.lyx
9075
9076 2003-03-20  Bernhard Held <bernhard AT bernhardheld.de>
9077
9078         * src/mcs51/peeph.def: fix bug #705773
9079
9080 2003-03-20    <johan AT balder>
9081
9082         An sfr/sbit can have an "at #" AND an initializer
9083         * src/SDCCsymt.c (checkSClass):
9084         * src/SDCCmem.c (allocGlobal):
9085         * src/SDCCmem.c (allocLocal):
9086         * src/SDCCast.c (createBlock):
9087
9088 2003-03-17  Bernhard Held <bernhard AT bernhardheld.de>
9089
9090         * src/ds390/peeph.def: fix bug #704878: added rule 213.b suggested by Jan Rejlek
9091
9092 2003-03-16    <johan AT balder>
9093
9094         Undid the hackup of const and volatile, the problem is much bigger
9095         * src/SDCC.y:1.65
9096         * src/SDCCast.c:1.171
9097         * src/SDCCglue.c:1.138
9098         * src/SDCCicode.c:1.146
9099         * src/SDCCsymt.c:1.150
9100         * src/SDCCval.c:1.65
9101
9102 2003-03-15  Bernhard Held <bernhard AT bernhardheld.de>
9103
9104         * src/mcs51/ralloc.c (packRegsForAssign): fixed bug #703541
9105         * src/ds390/gen.c (genAddrOf): fixed bug #704087
9106
9107 2003-03-13    <johan AT balder>
9108
9109         Hackup const and volatile modifiers in type chains a bit:
9110         * src/SDCC.y:1.63
9111         * src/SDCCast.c:1.169
9112         * src/SDCCglue.c:1.136
9113         * src/SDCCicode.c:1.143
9114         * src/SDCCsymt.c1.146
9115         * src/SDCCsymt.h1.59
9116         * src/SDCCval.c:1.63
9117
9118 2003-03-12    <johan AT balder>
9119
9120         * src/SDCCBBlock.h: more LRH debugging junk
9121         * src/SDCCcflow.h: more LRH debugging junk
9122         * src/SDCCloop.c: more LRH debugging junk
9123         * src/SDCC.y (struct_declaration): fixed bug #697590
9124         * src/SDCCsymt.[hc] (cloneSpec): NEVER EVER use this again
9125         * src/ds390/gen.c (aopForRemat): fixed bug #700031
9126         * src/SDCCglue.c (emitStaticSeg): fixed bug #700797
9127
9128 2003-03-11 Kevin Vigor <kevin AT vigor.nu>
9129         * src/SDCCpeeph.c: quit being lazy and made proper fix (peephole
9130         test function names must now match exactly).
9131         * src/SDCCcse.c: added special case in findCheaperOp to allow
9132         extending a short integer. Makes less awful code for bug 700121 test case.
9133
9134 2003-03-11  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
9135
9136         * as/mcs51/lkmain.c: Added ASlink-Warning to messages
9137         * as/mcs51/lkaomf51.c: Fixed bug when linking asmblink example
9138
9139 2003-03-11 Kevin Vigor <kevin AT vigor.nu>
9140
9141         * src/SDCCpeeph.c: fix so that operandsNotEqualX functions are
9142         actually called (operandsNotEqual() was called for all
9143         operandsNotEqualX tests).
9144
9145 2003-03-11 Kevin Vigor <kevin AT vigor.nu>
9146
9147         * src/SDCCcse.c: fix findCheaperOp to prevent replacing int types
9148         with shorter literals. Fixes bug 700121.
9149
9150 2003-03-11    <johan AT balder>
9151
9152         * src/SDCCsymt.c (compareType): a (void *) can be assigned to any pointer
9153
9154 2003-03-11  Bernhard Held <bernhard AT bernhardheld.de>
9155
9156         * src/SDCCloop.c (mergeRegions): an evil beast is dead
9157         * src/SDCCmain.c (preProcess): minor cleanup: eliminate preOutName
9158
9159 2003-03-10  Borut Razem <borut.razem AT siol.net>
9160
9161         * src/SDCCmain.c: pipe preprocessor's output
9162         * support/Util/MySystem.c, support/Util/MySystem.h: added my_popen()
9163         * sdcc_vc_in.h: define pclose as _pclose for WIN32
9164         * src/SDCCglue.c, src/SDCCglue.h: added set pipeSet, added function closePipes,
9165         which closes all pipes in pipeSet set
9166         * src/SDCCset.c: free deleted item in function deleteSetItem()
9167         * src/src.dsp, src/z80/z80.dsp: files support/Util/BuildCmd.c and support/Util/MySystem.c
9168         moved from z80 to src subproject
9169         * .version: increased version number to 2.3.4
9170
9171 2003-03-10  Bernhard Held <bernhard AT bernhardheld.de>
9172
9173         * support/regression/ports/mcs51/spec.mk: increase timeout for CF's sparc to 30s
9174         * support/regression/ports/ds390/spec.mk: increase timeout for CF's sparc to 25s
9175         * support/regression/ports/xa51/spec.mk: fix typo
9176
9177 2003-03-09  Bernhard Held <bernhard AT bernhardheld.de>
9178
9179         * src/SDCCglobl.h: PATH_MAX is already defined in mingw32 headers
9180
9181 2003-03-09  Borut Razem <borut.razem AT siol.net>
9182
9183         * src/SDCCmain.c: pipe preprocessor's output
9184         * support/Util/MySystem.c, support/Util/MySystem.h: added my_popen()
9185         * sdcc_vc_in.h: define pclose as _pclose for WIN32
9186         * src/SDCCglue.c, src/SDCCglue.h: added set pipeSet, added function closePipes,
9187         which closes all pipes in pipeSet set
9188         * src/SDCCset.c: free deleted item in function deleteSetItem()
9189         * src/src.dsp, src/z80/z80.dsp: files support/Util/BuildCmd.c and support/Util/MySystem.c
9190         moved from z80 to src subproject
9191
9192 2003-03-09  Borut Razem <borut.razem AT siol.net>
9193
9194         * src/SDCCglue.c: re-implemented tempfilename() and tempfile(): using mkstemp() if available
9195         * src/SDCCsymt.h: fixed MSVC and BORLANDC compilation (included SDCCglobl.h instead srccconf.h)
9196         * sdcc_vc_in.h: explicitly undefined HAVE_MKSTEMP which is not available on BORLANDC and MSVC
9197         * src/SDCCset.h: removed inclusion of sdccconf.h or sdcc_vc.h
9198         * src/SDCCglobl.h: unification of WIN32 native definitions
9199
9200 2003-03-09  Frieder Ferlemann <Frieder.Ferlemann AT web.de>
9201
9202         * src/mcs51/gen.c: applied in-/dec patch mentioned on sdcc-devel 2003-03-01
9203
9204 2003-03-08  Bernhard Held <bernhard AT bernhardheld.de>
9205
9206         * src/configure.in:   check for endianess (even while cross-compiling)
9207         * src/configure:      check for endianess (even while cross-compiling)
9208         * src/configure_in.h: check for endianess (even while cross-compiling)
9209         * src/avr/gen.c:        remove old endianess stuff
9210         * src/mcs51/gen.c:      remove old endianess stuff
9211         * src/ds390/gen.c:      remove old endianess stuff
9212         * src/pic/gen.c:        remove old endianess stuff
9213         * src/pic/genarith.c:   remove old endianess stuff
9214         * src/pic/glue.c:       fix endianess check
9215         * src/pic16/gen.c:      remove old endianess stuff
9216         * src/pic16/genarith.c: remove old endianess stuff
9217         * src/pic16/glue.c:     fix endianess check
9218         * src/xa51/gen.c:       remove old endianess stuff
9219         * src/z80/gen.c:        fix endianess check
9220         * src/SDCCglue.c:       fix endianess check
9221         * src/ds390/peeph.def: fix bug 700036
9222
9223 2003-03-08  Bernhard Held <bernhard AT bernhardheld.de>
9224
9225         * src/SDCCsymt.h: use appropriate data-types on host for SDCC's int and long
9226         * src/configure: find appropriate data-types on host for SDCC's int and long
9227         * src/configure.in: find appropriate data-types on host for SDCC's int and long
9228         * src/sdccconf_in.h: find appropriate data-types on host for SDCC's int and long
9229         * src/xa51/gen.c: use %d, not %ld for 4 byte variables
9230
9231 2003-03-07    <johan AT balder>
9232
9233         Just a big NOOP:
9234                 some minor cleanups before the big shot
9235                 OP_DEFS and OP_USES now use Kevin's protection
9236                 new option --nolabelopt
9237
9238         * src/SDCCBBlock.c:
9239         * src/SDCCast.c,:
9240         * src/SDCCcflow.c:
9241         * src/SDCCcse.c:
9242         * src/SDCCicode.c:
9243         * src/SDCCicode.h:
9244         * src/SDCClabel.c:
9245         * src/SDCCloop.c:
9246         * src/SDCCmain.c:
9247         * src/ds390/ralloc.c:
9248         * src/mcs51/ralloc.c:
9249         * src/pic/ralloc.c:
9250         * src/xa51/ralloc.c:
9251         * src/z80/ralloc.c:
9252
9253 2003-03-06  Bernhard Held <bernhard AT bernhardheld.de>
9254
9255         * src/pic/pcode.c (get_op): fix 64 bit warnings
9256         * src/pic/pcode.c (pCode2str): fix 64 bit warnings
9257         * src/SDCChasht.c (newHashTable): fix 64 bit warnings
9258         * src/SDCCsymt.c (checkTypeSanity): fix 64 bit warnings
9259         * support/regression/tests/malloc.c: fix 64 bit warnings
9260
9261 2003-03-04  Bernhard Held <bernhard AT bernhardheld.de>
9262
9263         * src/mcs51/gen.c (genMinus): fixed bug 696436
9264
9265 2003-03-02  Borut Razem <borut.razem AT siol.net>
9266
9267         * src/SDCCmain.c: added BORLANDC, corrected MSVC in printVersionInfo()
9268
9269 2003-02-26  Bernhard Held <bernhard AT bernhardheld.de>
9270
9271         * configure.in: test for mkstemp
9272         * sdccconf_in.h: add HAVE_MKSTEMP
9273
9274 2003-02-24  Bernhard Held <bernhard AT bernhardheld.de>
9275
9276         * device/include/ctype.h: removed warning while using --stack-auto
9277         * device/include/malloc.h: removed warning while using --stack-auto
9278         * device/include/string.h: removed warning while using --stack-auto
9279
9280 2003-02-23  Borut Razem <borut.razem AT siol.net>
9281
9282         * src/asm.h: corrected assertion in function printILine(): _pipe() was not executed on MSVC,
9283         because NDEBUG is defined (see man assert)
9284         * sdcc_vc_in.h: vsnprintf is defined as _vsnprintf on MSVC
9285
9286 2003-02-23  Frieder Ferlemann <Frieder.Ferlemann AT web.de>
9287
9288         * src/mcs51/gen.c (genUminusFloat): avoided dptr in-/decrement for xdata variables
9289         * src/mcs51/peeph.def: added rule suggested by Gernot Fink, white space/comment changes
9290
9291 2003-02-18  Frieder Ferlemann <Frieder.Ferlemann AT web.de>
9292
9293         * src/SDCCpeeph.c: added peephole conditions testing for same arguments
9294         * src/mcs51/peeph.def: added rules 238a-d which remove redundant moves
9295
9296 2003-02-18    <johan AT balder>
9297
9298         * as/mcs51/asmain.c (asmbl): module can start with a digit
9299         * as/z80/asmain.c (asmbl): module can start with a digit
9300
9301 2003-02-16  Bernhard Held <bernhard AT bernhardheld.de>
9302
9303         * sim/ucsim/mkecho: inserted #!/bin/sh for Cygwin, so that it's executable
9304         * src/asm.c: fix pipe() for Mingw32
9305
9306 2003-02-15  Bernhard Held <bernhard AT bernhardheld.de>
9307
9308         * src/SDCCglue.h: make tmpfileNameSet available for preOutName
9309         * src/SDCCmain.c (preProcess): make sure, that preOutName will be deleted;
9310         make -V work again; --c1mode reads now from stdin
9311         * doc/sdccman.lyx: added --c1mode
9312         * support/Util/SDCCerr.c: new messages for c1 mode
9313         * support/Util/SDCCerr.h: new messages for c1 mode
9314         * src/SDCC.lex (checkCurrFile): test if fullSrcFileName is NULL for c1mode
9315
9316 2003-02-15    <johan AT balder>
9317
9318         * src/asm.c: new options: --no-c-code-in-asm and --i-code-in-asm
9319
9320 2003-02-14  Bernhard Held <bernhard AT bernhardheld.de>
9321
9322         * doc/sdccman.lyx: Environment variables, -o and other minor things
9323
9324 2003-02-14    <johan AT balder>
9325
9326         * src/xa51/main.c: before anyone really tries to use it :)
9327
9328         * Install doc's in share/sdcc/doc
9329         * removed some obsolete files
9330         * Do a proper make distclean and uninstall
9331         M Makefile.common.in
9332         R sdccbuild.sh
9333         M as/Makefile
9334         M device/include/Makefile.in
9335         M device/lib/Makefile.in
9336         M doc/sdccman.lyx
9337         M link/Makefile
9338         M sim/ucsim/doc/Makefile.in
9339         M src/clean.mk
9340         R src/avr/peeph.rul
9341         R src/xa51/peeph.rul
9342         M support/cpp2/Makefile.in
9343         M support/makebin/Makefile
9344
9345
9346 2003-02-13  Bernhard Held <bernhard AT bernhardheld.de>
9347
9348         * support/regression/ports/host/spec.mk: use cc as host compiler for max osx
9349
9350 2003-02-10  Borut Razem <borut.razem AT siol.net>
9351
9352         * doc/bccinst.txt, packihx/packihx.c, sdcc_vc_in.h, src/SDCCset.h,
9353         support/cpp2/config.in: Borland C++ build doesn't depend on Cygwin configure
9354         * Bcc.ini, Makefile.bcc, as/mcs51/Makefile.bcc,
9355         device/examples/ds390/tinitalk/Makefile.bcc, packihx/Makefile.bcc,
9356         support/cpp2/Makefile.bcc, src/Makefile.bcc, src/avr/Makefile.bcc,
9357         src/ds390/Makefile.bcc, src/izt/Makefile.bcc, src/mcs51/Makefile.bcc,
9358         src/pic/Makefile.bcc, src/pic16/Makefile.bcc, src/xa15/Makefile.bcc,
9359         src/z80/Makefile.bcc: Borland Makefile cleanup
9360         * as/z80/Makefile.bcc: Added Borland Makefile
9361         * support/cpp2/borland.h: Removed
9362
9363 2003-02-10  Bernhard Held <bernhard AT bernhardheld.de>
9364
9365         * doc/sdccman.lyx: new pragma NOIV by "Johannes Stezenbach" <js AT convergence.de>
9366         * src/SDCC.lex: new pragma NOIV
9367         * src/SDCCglobl.h: new pragma NOIV
9368         * src/SDCCmem.c: new pragma NOIV
9369
9370 2003-02-09  Bernhard Held <bernhard AT bernhardheld.de>
9371
9372         * src/SDCCmain.c: signal handling is switched off by SDCC_LEAVE_SIGNALS
9373
9374 2003-02-09  Bernhard Held <bernhard AT bernhardheld.de>
9375
9376         * src/SDCCmain.c: signal handling is switched off by --debug
9377         * doc/Makefile: small fix for install; use clean.mk again
9378         * doc/clean.mk: clean *.pdf and *.html too
9379
9380 2003-02-08  Bernhard Held <bernhard AT bernhardheld.de>
9381
9382         * device/lib/_mulint.c: small fix for large/ds390 --int-long-reent resp. --stack-auto
9383         * device/lib/printfl.c: fix a ds390 bug by making it portable
9384         * src/SDCCsymt.c (initCSupport): fix compile warning on Cygwin
9385         * src/SDCCopt.c (cnvToFloatCast): fix compile warning on Cygwin
9386         * src/SDCCopt.c (cnvFromFloatCast): fix compile warning on Cygwin
9387         * debugger/mcs51/cmd.c: converted multi-line string literals
9388         * sim/ucsim/globals.cc: converted multi-line string literals
9389         * src/SDCCmain.c: introduced signal handler to remove temp files
9390         * doc/Makefile: small tweaks, implement clean
9391         * doc: removed generated files
9392
9393 2003-02-05  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
9394
9395         * as/mcs51/aslink.h, as/mcs51/lkihx.c, as/mcs51/lkrloc.c:  Applied
9396         patch from Jan Rejlek <jr AT apex-lib.cz> to fix Bug 677692: "Extended
9397         Address Record is not correctly generated for DS390."
9398
9399 2003-02-02  Borut Razem <borut.razem AT siol.net>
9400
9401         * Makefile.bcc: removed non existing cpp project and non compilable izt project from makefile
9402         * as/mcs51/asm.h: fixed compilation with Borland C
9403         * support/cpp2/Makefile.bcc: added rule to generate auto-host.h
9404         * support/cpp2/auto-host_vc_in.h: fixed compilation with Borland C
9405         * src/mcs51/mcs51a.dsp: corrected misspelled project name from msc51a to mcs51a
9406         * src/avr/Makefile.bcc, src/ds390/Makefile.bcc, src/izt/Makefile.bcc,
9407         src/mcs51/Makefile.bcc, src/pic16/Makefile.bcc, src/xa51/Makefile.bcc,
9408         src/z80/Makefile.bcc: delete $(LIB) only if exist
9409         * src/Makefile.bcc, src/pic/Makefile.bcc:  fixed compilation with Borland C
9410
9411 2003-02-02  Bernhard Held <bernhard AT bernhardheld.de>
9412
9413         * device/include/malloc.h: introduced NULL
9414         * device/include/string.h: introduced NULL
9415         * device/include/stdlib.h: introduced NULL
9416         * device/lib/_memcpy.c: removed NULL
9417         * device/lib/_strcat.c: removed NULL
9418         * device/lib/_strchr.c: removed NULL
9419         * device/lib/_strcmp.c: removed NULL
9420         * device/lib/_strcpy.c: removed NULL
9421         * device/lib/_strcspn.c: removed NULL
9422         * device/lib/_strlen.c: removed NULL
9423         * device/lib/_strncat.c: removed NULL
9424         * device/lib/_strncmp.c: removed NULL
9425         * device/lib/_strncpy.c: removed NULL
9426         * device/lib/_strpbrk.c: removed NULL
9427         * device/lib/_strrchr.c: removed NULL
9428         * device/lib/_strspn.c: removed NULL
9429         * device/lib/_strstr.c: removed NULL
9430         * device/lib/_strtok.c: removed NULL
9431         * device/lib/malloc.c: removed NULL, include own header
9432
9433 2003-02-02    <johan AT balder>
9434
9435         * 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
9436         * support/regression/fwk/lib/testfwk.c: div and mod isn't broken anymore
9437         * regressions ds390/spec.mk and mcs51/spec.mk (timeout): my good old balder isn't fast enough for some tests
9438         * src/z80/gen.c (genZ80Code): added c-lines in asm comments
9439         * as/z80/asm.h (NINPUT): increased for long c-comments in regression tests
9440         * src/z80/gen.c (genRightShiftLiteral): fixed the (char)(-3)>>8 (I think)
9441
9442 2003-02-01  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
9443
9444         * src/SDCCmain.c: Fixed bug 678574: "ds390: ASlink-Error-Stack overlaps
9445         area 'DATA'"
9446
9447 2003-02-01    <johan AT balder>
9448
9449         * src/SDCCval.c (valBitwise): fixed Karl's "2 | (1<<8)"
9450
9451 2003-01-31    <johan AT CP255758-A>
9452
9453         * src/ds390/main.c (_ds390_genAssemblerPreamble): applied Jan Rejlek's >64K startup patch
9454
9455 2003-01-30    <johan AT balder>
9456
9457         * src/SDCCBBlock.c: automatic bug detection
9458         * src/SDCCicode.c: automatic bug detection
9459
9460 2003-01-29  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
9461
9462         * src/SDCCglobl.h:   now --xram-size 0 works
9463         * src/SDCCmain.c:    now --xram-size 0 works
9464
9465 2003-01-29    <johan AT balder>
9466
9467         * src/almosteverything: changed OP_DEFS and OP_USES from macros to functions to catch symbol abuse (a hot topic in the bug list :)
9468
9469 2003-01-29  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
9470
9471         * as/mcs51/aslink.h: Added options --xram-size and --code-size
9472         * as/mcs51/lkdata.c: Added options --xram-size and --code-size
9473         * as/mcs51/lkmain.c: Added options --xram-size and --code-size
9474         * as/mcs51/lkmem.c:  Added options --xram-size and --code-size
9475         * src/SDCCglobl.h:   Added options --xram-size and --code-size
9476         * src/SDCCmain.c:    Added options --xram-size and --code-size
9477
9478 2003-01-28  Bernhard Held <bernhard AT bernhardheld.de>
9479
9480         * src/ds390/gen.c: fix deps by replacing <common.h> with "common.h"
9481         * src/SDCC.lex: rename P_OVERLAY to P_OVERLAY_ for cross-gcc 3.2 MINGW32
9482
9483 2003-01-27    <johan AT balder>
9484
9485         * src/SDCC.y: fixed bug #613764
9486
9487 2003-01-26    <johan AT balder>
9488
9489         * src/SDCClrange.c:  fixed Bernhard's "char * code ptr = &c"
9490         * src/SDCCsymt.h: fixed bug #673374
9491         * src/SDCCglue.c: fixed bug #661910
9492         * src/SDCCast.c: fixed bug #458099 and 673374
9493
9494 2003-01-26  Bernhard Held <bernhard AT bernhardheld.de>
9495
9496         * as/mcs51/strcmpi.c: added, provides Aurelien Jarno's as_strcmpi(); strcmpi() is not ANSI
9497         * as/mcs51/strcmpi.h: added
9498         * as/mcs51/asm.h: remove ugly "#define strcmpi strcmp"
9499         * as/mcs51/aslink.h: remove ugly "#define strcmpi strcmp"
9500         * as/mcs51/asmain.c: strcmpi -> as_strcmpi
9501         * as/mcs51/assym.c: strcmpi -> as_strcmpi
9502         * as/mcs51/lkmem.c: strcmpi -> as_strcmpi
9503         * as/mcs51/lknoice.c: strcmpi -> as_strcmpi
9504         * as/mcs51/lksym.c: strcmpi -> as_strcmpi
9505         * as/mcs51/Makefile.aslink: new module strcmpi
9506         * as/mcs51/Makefile.asx8051: new module strcmpi
9507         * as/mcs51/Makefil.bcc: new module strcmpi
9508         * as/mcs51/Makefile.in: new module strcmpi
9509         * sim/ucsim/s51.src/uc390.cc (get_mem_size): make RAM big enough for tinibios
9510
9511 2003-01-26    <johan AT balder>
9512
9513         * src/SDCCglue.c: reverted back to 1.124
9514         * src/SDCCast.c: reverted back to 1.156
9515         * src/mcs51/gen.c (aopGet): applied Frieder's efficiency patch
9516
9517 2003-01-25    <johan AT balder>
9518
9519         * src/SDCCglue.c: A better fix for bug #661910
9520         * src/SDCCast.c: A better fix for bug #661910
9521         * src/SDCCglue.c (emitRegularMap): That was a little too efficient
9522
9523 2003-01-24  Bernhard Held <bernhard AT bernhardheld.de>
9524
9525         * src/Makefile.in: remove spawn.o
9526         * src/SDCCmain.c: remove spawn.h
9527         * src/SDCCmain.c (printVersionInfo): report MINGW32 instead of UNIX
9528         * src/spawn.c: removed
9529         * src/spawn.h: removed
9530         * support/regression/ports/ds390/spec.mk: link with -r
9531
9532 2003-01-24    <johan AT CP255758-A>
9533
9534         * src/ds390/gen.c (aopOp): fixed bug #667458
9535         * src/SDCCglue.c (emitRegularMap): fixed bug #458099 again
9536         * src/SDCCast.c (createIvalCharPtr): fixed bug #661910
9537         (createIvalCharPtr): an ival doesn't always have a storage class anymore
9538
9539 2003-01-24  Bernhard Held <bernhard AT bernhardheld.de>
9540
9541         * src/mcs51/peeph.def: better assembler identation by Frieder
9542         * src/mcs51/gen.c: better assembler identation by Frieder
9543
9544 2003-01-22  Bernhard Held <bernhard AT bernhardheld.de>
9545
9546         * as/z80/string.h: removed for gcc 3.2
9547         * support/makebin/makebin.c: #include <string.h> for gcc 3.2
9548         * src/pic/pcode.c (get_op_from_instruction): fix concatenation of string literals with __FUNCTION__ for gcc 3.2
9549
9550 2003-01-19  Bernhard Held <bernhard AT bernhardheld.de>
9551
9552         * src/SDCCmain.c (linkEdit): rename mem and map files even in case of failure
9553         * src/SDCCpeeph.c (replaceRule): fix bug #663503
9554         * support/regression/Makefile: separate temp files for ports
9555         * support/regression/generate-cases.py: separate temp files for ports
9556         * src/mcs51/peeph.def: Frieder: removed 237 (obsolete by 236g and 105); added 237 a/b
9557         * src/ds390/peeph.def: Frieder: removed 237 (obsolete by 236g and 105); added 237 a/b
9558
9559 2003-01-19  Bernhard Held <bernhard AT bernhardheld.de>
9560
9561         * moved tinitalk to device/examples/ds390
9562
9563 2003-01-14  Bernhard Held <bernhard AT bernhardheld.de>
9564
9565         * as/mcs51/lkmem.c: rflag is for DS390
9566         * src/SDCCglobl.h: removed out_name and options stackOnData, genericPtr
9567         * src/SDCCmain.c (optionsTable, setDefaultOptions): removed --stack-after-data and --generic
9568                          (linkEdit): move mem- and map-files the same way as ihx-files
9569         * src/z80/main.c (_setDefaultOptions): removed --generic
9570         * src/SDCCmain.c (_processC1Arg, parseCmdLine, main): --c1mode works again
9571         * src/SDCCglue.c (createInterruptVect, glue): --c1mode works again
9572         * src/pic/glue.c (picglue): --c1mode works again
9573         * src/pic16/glue.c (pic16glue): --c1mode works again
9574         * src/asm.c (printCLine): fix #660034
9575
9576 2003-01-13  Bernhard Held <bernhard AT bernhardheld.de>
9577
9578         * src/ds390/peeph.def: fix #123; add 14 rules by Fiorenzo D. Ramaglia <fd.ramaglia AT tin.it>, 1 by Frieder
9579         * src/mcs51/peeph.def: fix #123; add 14 rules by Fiorenzo, 1 by Frieder
9580         * src/mcs51/gen.c (genFunction): emit r0 instead of ar0 by Fiorenzo
9581         * as/mcs51/lkmem (summary): better fix for sp problem
9582         * src/SDCCglue.c (glue): __start_stack - 1, saves 1 byte!
9583         * src/ds390/main.c (_ds390_finaliseOptions, _tininative_finaliseOptions): stack_loc = 0x400008
9584         * support/regression/ports/*/spec.mk: moving testfwk-object to port dir allow parallel execution of regression tests
9585                                               remove --stack-after-data
9586
9587 2003-01-12  Bernhard Held <bernhard AT bernhardheld.de>
9588
9589         * src/SDCCmain.c (main): port->finaliseOptions() moved for z80 linking
9590         * src/SDCCutil.c (join): ugly bug: missing '\0'
9591         * as/mcs51/lkmem.c (summary): sp on address 7 is safe
9592
9593 2003-01-11  Bernhard Held <bernhard AT bernhardheld.de>
9594
9595         * src/SDCCmain.c (assemble, linkEdit): preparations for -o
9596         * src/port.h: typo
9597         * src/pic/main.c (_asmCmd): gpasm supports -o
9598         * src/z80/main.c: more general macros
9599         * device/lib/Makefile.in: remove intermediate files
9600
9601 2003-01-11  Bernhard Held <bernhard AT bernhardheld.de>
9602
9603         * .version: Bumped version number to 2.3.3
9604         * src/SDCCBBlock.c: new option -o
9605         * src/SDCCglobl.h: new option -o
9606         * src/SDCCglue.c: new option -o
9607         * src/SDCCmain.c: new option -o
9608         * src/asm.c: new option -o
9609         * src/ds390/main.c: new option -o
9610         * src/pic/glue.c: new option -o
9611         * src/pic/pcode.c: new option -o
9612         * src/pic/ralloc.c: new option -o
9613         * src/pic16/glue.c: new option -o
9614         * src/pic16/pcode.c: new option -o
9615         * src/pic16/ralloc.c: new option -o
9616         * src/z80/main.c: new option -o
9617         * device/lib/Makefile.in: use -o
9618         * support/regression/ports/ds390/spec.mk: use -o
9619         * support/regression/ports/gbz80/spec.mk: use -o
9620         * support/regression/ports/mcs51/spec.mk: use -o
9621         * support/regression/ports/mcs51-stack-auto/spec.mk: use -o
9622         * support/regression/ports/z80/spec.mk: use -o
9623         * support/regression/ports/ucz80/spec.mk: use -o
9624         * support/regression/ports/xa51/spec.mk: use -o
9625         * support/regression/fwk/lib/timeout.c: fix usage string
9626
9627 2003-01-09  Bernhard Held <bernhard AT bernhardheld.de>
9628         * src/mcs51/gen.c (genPlus): replaced "mov b,acc" by "mov b,a" Fiorenzo D. Ramaglia <fd.ramaglia AT tin.it>
9629
9630 2003-01-07    <johan AT balder>
9631
9632         * src/SDCCast.c (decorateType): fixed bug #600035
9633
9634 2003-01-07  Bernhard Held <bernhard AT bernhardheld.de>
9635         * as/mcs51/lkmem.c: added several l-modifiers to printf to remove warnings
9636         * as/mcs51/lkaomf51.c: #include <ctype.h> to remove warnings
9637         * src/pic/main.c (_hasNativeMulFor): outcommented unused variables to remove warnings
9638         * src/pic/pcode.c: outcommented unused variable to remove warnings
9639         * src/pic/ralloc.c: outcommented unused variable to remove warnings
9640
9641 2003-01-06    <karl AT turbobit.com>
9642         * sim/ucsim/cmd.src/command.cc: fixed so "break xram r 0x7654" works again in
9643    regression tests.
9644
9645 2003-01-06    <johan AT balder>
9646
9647         * src/SDCCicode.c: fixed array add
9648
9649 2002-01-05  Bernhard Held <bernhard AT bernhardheld.de>
9650         * src/SDCCmacro.c: MAX_STRING_LENGTH increased to 2048; was too small for regression tests
9651         * support/regression/ports/host/support.c: #include <stdarg.h> for gcc 3.2
9652
9653 2003-01-04    <johan AT balder>
9654
9655         * src/SDCCval.c (getNelements): fixed the initialized array of structures
9656
9657 2002-12-29  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
9658         * as/mcs51/Makefile.bcc: fixed typo lkomf51.o -> lkaomf51.o
9659
9660 2002-12-28  Bernhard Held <bernhard AT bernhardheld.de>
9661         * src/mcs51/peeph.def: added rules 234 and 235 from Frieder Ferlemann <frieder.ferlemann AT web.de>
9662         * support/regression/tests/bug-524697.c: fit mem usage into 8032
9663
9664 2002-12-28  Bernhard Held <bernhard AT bernhardheld.de>
9665         * src/mcs51/gen.c (aopGetUsesAcc): inserted missing "return FALSE"
9666
9667 2002-12-27  Bernhard Held <bernhard AT bernhardheld.de>
9668         * as/mcs51/Makefile.in: fixed typo lkomf51.o -> lkaomf51.o
9669
9670 2002-12-26  Bernhard Held <bernhard AT bernhardheld.de>
9671         * src/mcs51/main.c: removed {bindir}{sep} from aslink
9672
9673 2002-12-10  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
9674
9675     * in \sdcc\as\mcs51\ changed these files in order to create an
9676     aomf51 file: aslink.h, lkdta.c, lklex.c, lklibr.c, lklist.c,
9677     lkmain.c.  Also added: lkmem.c and lkaomf51.c.  Changed the
9678     following files to include the previous two files: aslink.dsp,
9679     Makefile.aslink, Makefile.bcc, and Makefile.in.
9680
9681     * Changed \sdcc\src\SDCCmain.c so it creates files with extension
9682     .adb instead of .cdb
9683
9684 2002-11-09  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
9685
9686         * \sdcc\as\mcs51\lklist.c: Now reports memory usage using the
9687         value from option --iram-size.
9688
9689 2002-09-20  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
9690
9691         * \sdcc\as\mcs51\lklist.c: added boundary check before using
9692         dram[] array.
9693
9694 2002-09-18    <wiml AT hhhh.org>
9695
9696         * SDCClrange.h: exposed setFromRange() and setToRange()
9697         * mcs51/ralloc.c: fixed over-eager packRegsForSupport() and
9698           packRegsForAccUse() (bug 542397)
9699         * mcs51/gen.c: MOVA() is now a function to avoid calling aopGet()
9700           multiple times and emitting the fetch operations more than once
9701           added aopGetUsesAcc() function to allow binary operators to
9702           fetch their operands in the correct order; made genMinus() emit
9703           compact code for X = LITERAL - Y
9704
9705 2002-09-00  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
9706         * \sdcc\as\mcs51\lklist.c: Fixed incorrect number of parameters to
9707         sprintf() in line 1267.
9708
9709 2002-09-08  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
9710         * \sdcc\src\SDCCglue.c: Generate areas REG_BANK_[0-3] only for 8051
9711         like ports.
9712
9713 2002-09-04  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
9714         Changes to aslink (All the changes are marked with 'JCF'):
9715
9716         * \sdcc\as\mcs51\aslink.h: External definition of sflag and
9717         summary().
9718
9719         * \sdcc\as\mcs51\lkarea.c: Computes the size of area BSEG_BYTES from
9720         area BSEG.  Also moves, if possible, the DATA area down into the internal
9721         ram so more space is available.
9722
9723         * \sdcc\as\mcs51\lkdata.c: Definition of memory summary output flag
9724         sflag.
9725
9726         * \sdcc\as\mcs51\lklist.c: For the BSEG area report the size in bits,
9727         not bytes.  Function summary() which creates a memory usage summary
9728         file with extension .mem.  Reports of overlaping stack and small stack
9729         size.  If the space for the stack is less than 16 bytes aslink trows a
9730         warning.
9731
9732         * \sdcc\as\mcs51\lkmain.c: Creation of some of the default areas for
9733         the 8051.  Option 'y' for memory summary output file.
9734
9735         Changes to sdcc (All the changes are marked with 'JCF'):
9736
9737         * \sdcc\src\SDCCglobl.h: External definition of RegBankUsed[4].
9738
9739         * \sdcc\src\SDCCglue.c:  If a register bank is used, creates an
9740         overlaying area for it (uses RegBankUsed[4]).
9741
9742         * \sdcc\src\SDCCmain.c: Definition RegBankUsed[4]; marks register
9743         bank zero as used by default.  By default aslink locates the stack
9744         (equivalent to --stack-after-data).  Pass option 'y' to aslink for
9745         the creation of the .mem file.  Delegates the allocation of data area
9746         to aslink (it is not longer 0x30 by default).  If --stack-loc passes
9747         the begining of the stack area to aslink.
9748
9749         * \sdcc\src\SDCCmem.c:  If a register bank is used, marks it so
9750         glue() in SDCCglue.c creates an area for it.
9751
9752 2002-09-03  Borut Razem <borut.razem AT siol.net>
9753         * sdcc/src/SDCCglue.c, sdcc/src/SDCCglue.h, sdcc/src/SDCCmain.c,
9754         sdcc/src/pic/glue.c:
9755         introduced atexit() handler for teporay files removal in case of
9756         errors, assertions, ...
9757
9758 2002-08-29  Borut Razem <borut.razem AT siol.net>
9759         * sdcc/support/cpp2/auto-host_vc_in.h:
9760         re-definition of O_BINARY and other O_XXX as _O_BINARY and _O_XXX, so the problem
9761         with the returned value from read() in sdcc/support/cpp2/cppfiles.c is solved for MSC.
9762         Maybe there is a similar problem with BORLANDC? It should be checked!
9763
9764         * sdcc/src/ds390/ralloc.c, sdcc/src/mcs51/ralloc.c, sdcc/src/z80/ralloc.c:
9765         corrected improper use of assert: the assignment to clr variable was done inside the assert.
9766         In case that NDEBUG was defined, the assert macro was substituted with no-op, so the assignment
9767         was not executed, and the compiler (cl) launched a warning:
9768         ralloc.c(1442) : warning C4700: local variable 'clr' used without having been initialized
9769
9770 2002-08-28  Bernhard Held <bernhard AT bernhardheld.de>
9771         * src/SDCCglue.c (printIvalArray): iterative calculation of array length
9772
9773 2002-08-28  Jesus Calvino-Fraga and Borut Razem <borut.razem AT siol.net>
9774         * sdcc/sdcc.dsw: added sdcpp, sdcppa, yacc, conf projects
9775
9776         * sdcc/src/src.dsp, sdcc/src/avr/avr.dsp, sdcc/src/ds390/ds390.dsp,
9777           sdcc/src/mcs51/mcs51.dsp, sdcc/src/pic/pic.dsp, sdcc/src/z80/z80.dsp,
9778           sdcc/src/xa51/xa51.dsp, sdcc/src/avr/avra.dsp,
9779           sdcc/src/ds390/ds390a.dsp, sdcc/src/mcs51/mcs51a.dsp,
9780           sdcc/src/pic/pica.dsp, sdcc/src/z80/z80a.dsp,
9781           sdcc/src/xa51/xa51a.dsp, sdcc/as/as_z80.dsp,
9782           sdcc/as/aslink.dsp, sdcc/as/asx8051.dsp, sdcc/packihx/packihx.dsp:
9783         - added Release configuration in VS projects
9784         - review of compiler an linker options
9785         - VC .exe files are generated in bin_vc directory, not to interfere
9786           with binaries generated from other projects (cygwin, mingw, bcc ...)
9787
9788         * sdcc/src/yacc.dsp: added
9789
9790         * sdcc/config.dsp, sdcc/configure_vc.awk, sdcc/sdcc_vc_in.h:
9791         added - genarate sdcc_vc.h using sdcc_vc_in.h as template
9792         and insert the version number definitions from .version
9793
9794         * sdcc/support/cpp2/sdcpp.dsp: added - VC project for sdcpp
9795
9796         * sdcc/support/cpp2/sdcppa.dsp, sdcc/support/cpp2/auto-host_vc_in.h:
9797         added - genarate auto-host.h using auto-host_vc_in.h as template
9798
9799         * sdcc/sdcc_vc.h,
9800         removed from CVS, generated automatically
9801
9802 2002-08-25  Bernhard Held <bernhard AT bernhardheld.de>
9803         * support/scripts/inc2h.pl: use gputils or gpasm (from Nathan Hurst)
9804
9805 2002-08-11  Borut Razem <borut.razem AT siol.net>
9806         * support/Util/NewAlloc.c: removed unneeded #include "sdccconf.h" (suggested by Jesus Calvino-Fraga)
9807
9808 2002-08-10  Borut Razem <borut.razem AT siol.net>
9809         * src/SDCCmain.c (main):
9810         file preOutName was unlinked before closed. This seems to be OK on UNIX and cygwin
9811         platforms, but it doesn't work with Visual Studio: the opened file can not be removed.
9812         The consequence was that some temporary files were not removed.
9813
9814         * src/SDCCglue.c:
9815         unification of code in functions tempfilename() and tempfile():
9816         function tempnam() is defined in Visual Studio 6.0 and .NET
9817
9818         * sdcc/sdcc.dsw: removed project sdcpp, added project xa51a
9819
9820         * sdcc/src/src.dsp, sdcc/src/avr/avr.dsp, sdcc/src/ds390/ds390.dsp,
9821           sdcc/src/mcs51/mcs51.dsp, sdcc/src/pic/pic.dsp, sdcc/src/z80/z80.dsp:
9822         - removed compiler command line option /WX: Treats all warnings as errors
9823         - update a list of source files, included into the project
9824
9825         * sdcc/src/avr/avra.dsp, sdcc/src/ds390/ds390a.dsp, sdcc/src/mcs51/mcs51a.dsp,
9826           sdcc/src/pic/pica.dsp, sdcc/src/z80/z80a.dsp:
9827         changed project type to Generic Project so that can be correcly converted to VS.NET project
9828
9829         * sdcc/as/mcs51/asm.h: definition of PATH_MAX for MSC
9830
9831         * sdcc/src/SDCCast.c: solved MSC error in function decorateType()
9832
9833         * sdcc/src/SDCC.y: added missing ending ';' to rules to get rid of bison warnings
9834
9835         * dcc/src/ds390/ralloc.c, sdcc/src/mcs51/ralloc.c:
9836         added return 0 statements after assert() to make compiler happy
9837
9838         * sdcc/src/xa51/peeph.rul, sdcc/src/xa51/peeph.def, sdcc/src/z80/ralloc.c:
9839         added newline in the def file to keep MSC compiler satisfied
9840
9841         * sdcc/src/z80/gen.c:
9842         - function strcasecmp() is not defined in MSC (and probably also in BORLANDC),
9843           so it is replaced with STRCASECMP, which is defined as stricmp in case of MSC and BORLANDC
9844         - solved MSC error in function aopDump()
9845
9846         * sdcc_vc.h: define PREFIX as "\\sdcc"
9847
9848 2002-07-18  Bernhard Held <bernhard AT bernhardheld.de>
9849         * src/SDCCast.c (decorateType): fixed access to array of structures http://sourceforge.net/mailarchive/forum.php?thread_id=902690&forum_id=4107
9850
9851 2002-06-22  Scott Dattalo <scott AT dattalo.com>
9852         * src/pic/*: Numerous bug fixes. Flow analysis has been enhanced.
9853         - Rewrote the register banking algorithm.
9854         - Added pCode live-range analysis to registers (for now, only non-used and
9855         singly-used registers optimized away)
9856
9857         * src/pic/pcoderegs.[ch]: Added new files for pCode live-range analysis
9858
9859         * 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.
9860
9861 2002-05-10  Scott Dattalo <scott AT dattalo.com>
9862         * src/pic/*: Added support for multiplication. Fixed many,many bugs.
9863
9864 2002-04-22  Michael Hope  <michaelh AT vroom>
9865
9866         * device/lib/z80/printf.c: Changed emitter to volatile to work around a pcall bug.
9867
9868         * configure.in (DD_COPT): Added include support required for gbdk.
9869
9870         * .version: Bumped version number just to increase it.
9871
9872         * src/SDCCmain.c: Added -nostdinc to the default options.
9873
9874 2002-04-15  Michael Hope  <michaelh AT vroom>
9875
9876         * device/lib/z80/printf.c (sprintf): Added.
9877
9878         * src/z80/ralloc.c (packRegisters): Disabled pack HL use for GB as it's broken.
9879
9880         * src/z80/peeph.def: Added transpose redundent load rule.
9881
9882         * src/z80/main.c: Added force callee saves for jaune.
9883
9884         * src/port.h: Removed the i186 and tlcs-900h ports as they weren't being being developed.
9885
9886         * src/SDCCmain.c: Pulled the options definition out so that you can add port specific options without changing the main file.
9887
9888 2002-03-28  Johan Knol  <johan AT balder>
9889
9890         * src/SDCCval.c: fixed bug #532436
9891
9892 2002-03-14  Scott Dattalo <scott AT dattalo.com>
9893         * /src/port.h:
9894         Added "char *Processor" field to the port structure.
9895
9896         * /src/SDCCmain.c:
9897         Added -p option. Allows port dependent processor to be specified.
9898
9899         * all ports:
9900         Initialized the new field char *Processor field to NULL in all ports
9901
9902         * /src/pic/*:
9903         Compiler generated registers for interrupt context saving
9904         were not getting allocated.
9905
9906 2002-03-16  Sandeep Dutta  <sandeep AT ddi.com>
9907
9908         * /src/SDCCast.c:
9909         Fixed left shift. Will promote the left side of a left shift
9910         if a) left shifting more than size of operand or b) when assigned
9911         to something size > size of left side
9912
9913 2002-03-14  Scott Dattalo <scott AT dattalo.com>
9914         * src/pic/*
9915         tons of changes. Register allocation has been
9916         rewritten. Added customization for the various PICs. Flow
9917         analysis is restructured. ...
9918
9919         * src/pic/device.h:
9920         Added
9921
9922         * src/pic/device.c:
9923         Added. device.c is a PIC port hack to accomodate variations
9924         in PIC devices.
9925
9926 2002-03-13  Michael Hope  <michaelh AT vroom>
9927
9928         * src/z80/gen.c (genGenPointerGet): Fixed a bug where a pointer in HL is dereferenced into HL but HL is not spilled.  Yeah.
9929
9930 2002-03-04  johanknol  <johanknol AT manik>
9931
9932         * /src/SDCCval.c: fixed
9933
9934         const unsigned char arr[][2] = { { 0, 1 } };
9935         t18.c:1: error: Initializer element is not constant
9936
9937 2002-03-04  bela  <bela AT manik>
9938
9939         * /device/include/mcs51reg.h:
9940         ds89c420 register definition update
9941
9942 2002-03-03    <johan AT FRIJA>
9943
9944         * support/Util/SDCCerr.c: did something, but don't no why anymore
9945
9946         * support/regression/tests/bug-524691.c: made it a little less shy
9947
9948         * src/SDCCast.c (decorateType): fixed bug #524697
9949
9950         * src/SDCCast.c: made some lineno improvements
9951
9952         * src/SDCCval.c (getNelements): changed warning to error
9953
9954         * src/SDCCglue.c (printIvalArray): changed warning to error
9955
9956         * src/SDCCicode.c: fixed a warning for mingw
9957
9958         * src/SDCCast.c (decorateType): fixed the << promotion for ops
9959
9960         * src/SDCCicode.c (geniCodeDivision): divide is shift only for unsigned (bug #524685)
9961
9962 2002-03-02  Sandeep Dutta  <sandeep AT ddi.com>
9963
9964         * src/ds390/peeph.def:
9965         Added some more peephole rules
9966
9967         * src/ds390/gen.c: Various fixes & enhancements
9968
9969         * src/SDCClrange.c, src/SDCClrange.h:
9970         functions "alldefsoutofrange" and "notusedinblock" moved to SDCClrange.c
9971
9972         * src/ds390/ralloc.c:
9973         various fixes & enhancements (ds390) specific
9974
9975         * src/avr/ralloc.c, src/mcs51/ralloc.c, src/pic/ralloc.c, src/xa51/ralloc.c, src/z80/ralloc.c:
9976         Functions "allDefsOutOfRange" & "notUsedinBlock" moved to SDCClrange.c
9977         from rallocs.
9978
9979         * sdcc/src/SDCCcse.c: Better fix for bug # 514308
9980
9981 2002-03-02    <johan AT FRIJA>
9982
9983         * src/SDCCast.c (decorateType): fixed bug #524708
9984
9985         * src/SDCCval.c (floatFromVal): fixed the literal void (whatever that may be)
9986
9987         * src/SDCCicode.c (geniCodePtrPtrSubtract): fixed bug #524691
9988
9989 2002-03-01  Michael Hope  <michaelh AT vroom>
9990
9991         * src/SDCCsymt.c (initCSupport): Removed managling of support function names.
9992
9993         * src/z80/ralloc.c (packRegsForIYUse): Fixed fp bug where four byte operands were packed into IY.
9994
9995 2002-03-01    <johan AT FRIJA>
9996
9997         * src/SDCCglue.c (printIvalPtr): fixed bug #524211
9998
9999         * src/SDCCast.c (decorateType): fixed bug #524209
10000
10001         * src/SDCCval.c (valNot): fixed bug #524195
10002
10003 2002-02-26    <johan AT balder>
10004
10005         * src/xa51/gen.c: fixed a warning
10006
10007         * src/SDCCglue.c (printIvalFuncPtr): fixed bug #522534
10008
10009         * src/SDCCast.c (decorateType): fixed bug #522534
10010
10011 2002-02-23    <johan AT balder>
10012
10013         * src/SDCCdflow.c (computeDataFlow): fixed bug #460088
10014
10015 2002-02-22    <johan AT balder>
10016
10017         * src/SDCCast.c: fixed bug #514865
10018
10019         * src/SDCCy.c ("SDCC.y"): fixed bug #516625
10020
10021 2002-02-21  Sandeep Dutta  <sandeep AT ddi.com>
10022
10023         * sdcc/src/SDCCloop.c:
10024         Previous fix was not good. basic blocks that have "break" or "return" are
10025         not really partof a loop , but live ranges used in these blocks should
10026         be live thru the entire loop, so set partOfLoop but don't add them to
10027         loop region
10028
10029 2002-02-21    <johan AT FRIJA>
10030
10031         * src/SDCCcse.c: fixed bug #514308
10032
10033 2002-02-20  Sandeep Dutta  <sandeep AT ddi.com>
10034
10035         * src/SDCCloop.c:
10036         Fixed BUG #519583. If a conditional block ended in a return/break
10037         statement inside a loop, it was not being considered part of the loop.
10038
10039         * src/SDCCcflow.c: Removed fix (Fixed in SDCCloop.c)
10040
10041 2002-02-10  Karl Bongers <karl AT turbobit.com>
10042
10043         * debugger/*:
10044         Fixed up SDCDB debugger somewhat.  Updated debugger/README
10045         with lots of comments and notes.
10046
10047         * device/examples/test2.c:
10048         Fix bug, "red" variable not being initialized(compiler complained).
10049
10050         * device/examples/Makefile, examples/test3.c:
10051         Add Makefile in device/examples folder, compiles test3.c
10052         for use as a multiple module SDCDB test case.
10053
10054         * sim/ucsim/cmd.src/cmdset.cc:
10055         Took out debug printfs in ucsim "next" command.
10056
10057         * sim/ucsim/xa.src:
10058         Karl and Johan start ucsim XA support.  Most dissassembly working,
10059         about 75% emulation done(plenty of work remaining).
10060
10061         * sim/ucsim/z80.src:
10062         Add Z80 support to ucsim, add test-ucz80 regression test,
10063         notice ucsim/z80 emulation fails on examples/test3.c/itoa code.
10064         Notice z80 compiler fails on examples/test3.c/crc code.
10065
10066 2002-01-30  Sandeep Dutta  <sandeep AT ddi.com>
10067
10068         * src/mcs51/gen.c, src/mcs51/main.c, src/mcs51/ralloc.c:
10069         Added support for --parms-in-bank1
10070
10071         * src/ds390/peeph.def:
10072         added a few more peephole optimzations
10073
10074         * src/ds390/main.c:
10075         1) added __builtin_inp & __builtin_outp used to read in data of given length
10076            from a memory mapped port
10077         2) added __builtin_memcmp
10078         3) added __builtin_swapw swap bytes of a short
10079
10080         * src/ds390/gen.c, src/ds390/gen.h, src/ds390/ralloc.c:
10081         1) handle multiple send & receives from register bank1
10082         2) ralloc can now allocate DPTR1 to some liveRanges
10083
10084         * src/SDCCsymt.c, src/SDCCsymt.h:
10085         changes to handle multiple sends & receives
10086
10087         * src/SDCCptropt.h:
10088         added some pointer arithmetic optimization
10089
10090         * src/SDCCptropt.c:
10091         added some pointer arithmetic optimizations but not stable yet so not
10092         called from anywhere (will get this working shortly)
10093
10094         * src/SDCCopt.c: fixed for multiple sends & receives
10095
10096         * src/SDCCmain.c:
10097         1) added options --parms-in-bank1 (ds390/mcs51) & --protect-sp-update
10098         2) preprocessing done AFTER port->finalizeoptions . This allows ports to
10099            set preprocessor defines (depending on options)
10100
10101         * src/SDCCicode.c, src/SDCCicode.h:
10102         changes made to handle multiple sends & receives
10103
10104         * src/SDCCglobl.h:
10105         Added options --protect-sp-update (ds390) and --parms-in-bank1 (ds390/mcs51)
10106
10107         * src/SDCCcse.c, src/SDCCcse.h:
10108         added function findbackward def (to be used in upcoming optimization)
10109
10110         * src/SDCCcflow.c, src/SDCCcflow.h:
10111         added function returnAtEnd - to determine if a basic block terminates with
10112         a RETURN iCode
10113
10114         * src/SDCCast.c, src/SDCCast.h:
10115         added option parms-in-bank1
10116
10117         * device/lib/_divsint.c, device/lib/_divslong.c, device/lib/_divuint.c
10118         * device/lib/_divulong.c, device/lib/_modsint.c, device/lib/_modslong.c
10119         * device/lib/_modulong.c, device/lib/_mulint.c, device/lib/_mullong.c:
10120         adjusted for --parms-in-bank1 option
10121
10122         * device/include/string.h:
10123         donot redefine "reentrant" keyword
10124
10125         * device/include/ds80c390.h: Added some more SFRs
10126
10127 2002-01-28  Bernhard Held  <bernhard AT bernhardheld.de>
10128
10129         * sim/ucsim: Merged branch ucsim-034-pre3 to main trunk; new version 0.4
10130
10131 2002-01-26  Bernhard Held  <bernhard AT bernhardheld.de>
10132
10133         * src/SDCCast.c (funcOfType): fix usage of double --float-reent
10134
10135 2002-01-22  Bernhard Held  <bernhard AT bernhardheld.de>
10136
10137         * support/regression/fwk/lib/testfwk.c (main): Removed workaround for bug #505387
10138
10139 2002-01-18  Paul Stoffregen  <paul AT pjrc.com>
10140
10141         * Added --xram-movc option
10142
10143 2002-01-13  Bernhard Held  <bernhard AT bernhardheld.de>
10144
10145         * support/regression/Makefile: don't include test-mcs51-stack-auto in target all
10146
10147 2002-01-11  Johan Knol
10148
10149         * Added math lib of Jesus Calvino-Fraga
10150
10151 2002-01-08  Bernhard Held  <bernhard AT bernhardheld.de>
10152
10153         * src/SDCCmain.c (processFile): fix processing of ../../src.c
10154         * support/regression/Makefile: new target test-mcs51-stack-auto
10155         * support/regression/ports/mcs51-stack-auto/spec.mk: added
10156
10157 2002-01-04  Bernhard Held  <bernhard AT bernhardheld.de>
10158
10159         * src/SDCCglue.h: printIvalCharPtr(), not printIvalChar()
10160
10161 2002-01-04  Bernhard Held  <bernhard AT bernhardheld.de>
10162
10163         * support/regression/ports/mcs51/support.c: correct setup of timer / UART
10164
10165 2002-01-03  Bernhard Held  <bernhard AT bernhardheld.de>
10166
10167         * src/SDCCsymt.c (processFuncArgs): fix #498307 by Johan
10168
10169         * src/SDCCglue.h: add definition for printIvalChar()
10170
10171 2002-01-02  Bernhard Held  <bernhard AT bernhardheld.de>
10172
10173         * src/SDCCast.c: fix #498138 by Johan
10174
10175         * src/SDCCglue.c: fix #498138 by Johan
10176
10177 2002-01-02  Bernhard Held  <bernhard AT bernhardheld.de>
10178
10179         * support/regression/Makefile: fix clean
10180
10181         * support/regression/ports/ds390/support.c: fix transmission of last character
10182
10183 2001-12-29  Sandeep Dutta  <sandeep AT ddi.com>
10184
10185         * /sdcc/src/ds390/gen.c:
10186         a) improved computing address of stack variable
10187         b) took out some #if 0 code
10188         c) improved parmBytes adjustment
10189         d) improved genPlusIncr & genMinusIncr
10190         e) genCmp could generate bad code (when left assigned to DPTR)
10191         f) Fixed bug in hasInc
10192
10193         * /sdcc/src/ds390/ralloc.c:
10194         a) packRegsForSupport could mess up live information (Fixed)
10195         b) packRegsDPTRuse could be incorrect for left & right shift
10196
10197         * /sdcc/src/mcs51/ralloc.c:
10198         packRegsForSupport could mess up the live information (Fixed)
10199
10200         * /sdcc/src/mcs51/gen.c: Fixed a bug in hasInc
10201
10202         * /sdcc/src/SDCCast.c:
10203         can reverse a loop even if function call is present as long
10204         as the loop control variable is local & is not passed as parameter
10205
10206 2001-12-24  Sandeep Dutta  <sandeep AT ddi.com>
10207
10208         * /sdcc/ChangeLog: *** empty log message ***
10209
10210         * /sdcc/src/ds390/gen.c, /sdcc/src/ds390/main.c:
10211         More builtin function additions for TININative
10212
10213         * /sdcc/src/ds390/ralloc.c:
10214         Had broken the regression testsuite
10215
10216         * /sdcc/src/SDCCast.c: Fixed a bug in dumptree
10217
10218         * /sdcc/src/SDCCsymt.c, /sdcc/src/SDCCsymt.h:
10219         Added funcattr hasStackParms will be set for reentrant functions when there
10220         are paramteres on the stack, this helps in minimizing frame pointer generation
10221         typeFromStr can handle function pointers now
10222
10223         * /sdcc/doc/builtins.txt, /sdcc/doc/TININative.txt:
10224         *** empty log message ***
10225
10226 2001-12-24  Sandeep Dutta  <sandeep AT ddi.com>
10227
10228         * /src/ds390/gen.c, /src/ds390/main.c:
10229         More builtin function additions for TININative
10230
10231         * /src/ds390/ralloc.c:
10232         Had broken the regression testsuite
10233
10234         * /src/SDCCast.c: Fixed a bug in dumptree
10235
10236         * /src/SDCCsymt.c, /src/SDCCsymt.h:
10237         Added funcattr hasStackParms will be set for reentrant functions when there
10238         are paramteres on the stack, this helps in minimizing frame pointer generation
10239         typeFromStr can handle function pointers now
10240
10241         * /doc/builtins.txt, /doc/TININative.txt:
10242         *** empty log message ***
10243
10244
10245 2001-12-24  Sandeep Dutta  <sandeep AT ddi.com>
10246
10247         * /src/ds390/gen.c, /src/ds390/main.c, /src/ds390/peeph.def, /src/ds390/ralloc.c:
10248         ALPHA version for -mTININative
10249
10250         * /src/izt/i186.c, /src/izt/tlcs900h.c, /src/mcs51/main.c, /src/pic/main.c, /src/z80/main.c, /src/avr/main.c:
10251         updated to reflect changes in the port structure
10252
10253         * /src/port.h:
10254         added function do_assemble (similar to do_link) if non-null this function
10255         will be called to do assembly (-mTININative) requires a multi command
10256         assembly
10257         added function genAssemblerEnd will be called to generate assembler Epilogue
10258
10259         * /src/SDCCsymt.c:
10260         added _JavaNative to debug info printing
10261
10262         * /src/SDCCmain.c: added option --tini-libid
10263         added port->do_assemble function (-mTININative) has a multi command assemble
10264
10265         * /src/SDCCglue.c: Disabled "constExpr" check
10266         added port->genAssemblerEnd function
10267
10268         * /src/SDCCglobl.h: Added option --tini-libid value
10269
10270         * /src/SDCCast.h:
10271         tookout optimizeCompare from the header (has no external references)
10272
10273         * /src/SDCCast.c: made one more function "static"
10274
10275 2001-12-23  Michael Hope  <michaelh AT juju.net.nz>
10276
10277         * src/z80/mappings.i: Added z80asm support.
10278
10279         * src/z80/main.c: Added z80asm support on --asm=z80asm
10280
10281         * src/z80/gen.c: Fixed asm portability issues.
10282
10283         * src/asm.c (tvsprintf): Removed old code, added 'N' for function name.  For extern support.
10284
10285         * src/SDCCglue.c (printExterns): Added global/extern split.
10286
10287 2001-12-17  Bernhard Held  <bernhard AT bernhardheld.de>
10288
10289         * support/regression/Makefile: added test for mcs51 model large
10290
10291         * support/regression/ports/mcs51-large/spec.mk: added test for mcs51 model large
10292
10293         * support/regression/ports/gbz80/spec.mk: added -mgbz80
10294
10295 2001-12-05  Michael Hope  <michaelh AT juju.net.nz>
10296
10297         * src/diff.1 (Index): Many, many optmisiations.  Dhrystone up to 201.
10298
10299 1904-01-06  Michael Hope  <michaelh AT juju.net.nz>
10300
10301         * src/z80/ralloc.c (packRegsForIYUse): Fixed the case where an operand is in direct space.
10302
10303         * src/z80/gen.c (makeFreePairId): Optimised IY load by using a spare pair.
10304
10305 2001-12-02  Bernhard Held  <bernhard AT bernhardheld.de>
10306
10307         * src/mcs51/gen.c (genFunction): avoid excess "inc sp"
10308
10309         * support/regression/tests/simplefloat.c: Port to mcs51.
10310
10311 2001-11-25  Michael Hope  <michaelh AT juju.net.nz>
10312         * support/regression/tests/bug-485362.c: Added.
10313
10314         * support/regression/tests/simplefloat.c (testDivNearOne): Added.
10315
10316         * src/z80/gen.c (aopOp): Fixed case where left and result are in the same spill loc and they have different sizes.
10317
10318         * src/z80/peeph.def: Added rules for optimising two byte compares on the same thing, and to optimise two ptr assign.
10319
10320         * src/z80/gen.c (aopDump): Added a dump function.
10321
10322 2001-11-25  Bernhard Held  <bernhard AT bernhardheld.de>
10323         * sim/ucsim/s51.src/glob.cc: DS390 SFRs and bits added.
10324
10325         * sim/ucsim/s51.src/port.cc: Port 4 and 5 added.
10326
10327         * sim/ucsim/s51.src/regs51.h: DS390 SFRs added.
10328
10329         * sim/ucsim/s51.src/uc390.cc: Some details improved, CKRDY works for tinibios.
10330
10331         * sim/ucsim/s51.src/uc390cl.h: Work in progress.
10332
10333         * sim/ucsim/sim.src/uccl.h: 6 ports for DS390.
10334
10335         * support/regression/fwk/lib/testfwk.c: Run with tinibios.
10336
10337         * support/regression/ports/mcs51/spec.mk: Fine tuninig.
10338
10339         * support/regression/ports/ds390/support.c: Use tinibios.
10340
10341         * support/regression/ports/ds390/spec.mk: Fine tuning, use tinibios.
10342
10343 2001-11-23  Michael Hope  <michaelh AT juju.net.nz>support/regression/tests/bug-460010.c
10344
10345         * src/z80/ralloc.c (packRegsForHLUse3): Changed to not pack into HL if anything is in direct space.
10346         (packRegsForHLUse3): Added packing support for send, cast, and return value from a call.
10347
10348         * src/z80/peeph.def: Added rules for optimising pushes of part of a pair.
10349
10350         * src/z80/gen.c (emitCall): Changed the stack fixup to not use HL.
10351
10352 2001-11-18  Michael Hope  <michaelh AT juju.net.nz>
10353
10354         * src/z80/gen.c (genCmp): Fixed compare on unsigned.
10355
10356         * src/z80/ralloc.c (packRegsForHLUse3): Created and optimised.
10357         (packRegsForIYUse): Created and optimised.
10358
10359 2001-11-07  Michael Hope  <michaelh AT juju.net.nz>
10360
10361         * support/regression/tests/float.c (testFloatAdd): Fixed up warning.
10362 2001-11-18  Bernhard Held  <bernhard AT bernhardheld.de>
10363
10364         * sdcc/support/regression/tests/bug-460010.c: fix seg violation on host
10365
10366         * sdcc/support/regression/tests/muldiv.c: fix output on mcs51
10367
10368         * sdcc/support/regression/tests/stacks.c: fix DSEG overflow on mcs51
10369
10370 2001-11-07  Bernhard Held  <bernhard AT bernhardheld.de>
10371
10372         * sdcc/sim/device/lib/_gptrget.c: mem region 5 (idata) added
10373
10374         * sdcc/sim/device/lib/_gptrput.c: mem region 5 (idata) added
10375
10376 2001-11-07  Bernhard Held  <bernhard AT bernhardheld.de>
10377
10378         * sdcc/sim/ucsim/globals.cc: New: IXRAM.
10379
10380         * sdcc/sim/ucsim/stypes.h: New: IXRAM.
10381
10382         * sdcc/sim/ucsim/s51.src/uc390.cc: New: IXRAM.
10383
10384 2001-11-07  Michael Hope  <michaelh AT juju.net.nz>
10385
10386         * src/z80/ralloc.c (packRegsForHLUse): Banned IFXs from being packed into HL.
10387         (packRegsForHLUse): Added rule to pack address of/pointer get for itemps into HL for the Z80.
10388         (packRegsForAccUse2): Added rule to pack hbit IFXs into A.
10389
10390         * src/z80/main.c (_setDefaultOptions): Made float code re-entrant by default.
10391
10392         * src/z80/gen.c (aopGetLitWordLong): Added word support for floats.
10393         (genNotFloat): Added.
10394         (genUminusFloat): Added.
10395
10396         * device/lib/z80/Makefile: Added floating pt stubs.
10397
10398         * device/lib/Makefile.in (Z80SOURCES): Added floating pt support.
10399
10400         * src/z80/gen.c (genIpush): Fixed up a push of one byte when left is in a pair.
10401
10402         * device/lib/_fsadd.c (__fsadd): Fixed up return where the numbers are hugely different.
10403
10404 2001-11-07  Bernhard Held  <bernhard AT bernhardheld.de>
10405
10406         * sdcc/sim/ucsim/s51.src/glob.cc: Minor fix.
10407
10408         * sdcc/sim/ucsim/s51.src/regs51.h: Minor fix.
10409
10410         * sdcc/support/regression/Makefile: Add port ds390.
10411
10412         * sdcc/support/regression/ports/mcs51/spec.mk: Minor change.
10413
10414         * sdcc/support/regression/ports/z80/spec.mk: Minor change.
10415
10416         * sdcc/support/regression/ports/ds390/spec.mk: Added.
10417
10418         * sdcc/support/regression/ports/ds390/support.c: Added.
10419
10420         * sdcc/support/regression/ports/ds390/uCsim.cmd: Added.
10421
10422         * sdcc/support/regression/ports/mcs51/timeout.c: Cut.
10423
10424         * sdcc/support/regression/fwk/lib/timeout.c: Paste.
10425
10426 2001-11-04  Michael Hope  <michaelh AT juju.net.nz>
10427
10428         * device/include/malloc.h: Added z80 and gbz80 support.
10429
10430         * device/lib/gbz80/heap.s: Added.
10431
10432         * device/lib/z80/heap.s: Added.
10433
10434         * device/lib/malloc.c: Added z80 and gbz80 support.
10435
10436         * support/regression/tests/malloc.c (testMalloc): Added.
10437
10438         * src/SDCCmain.c (parseCmdLine): Added support for -Wp.
10439
10440         * support/regression/tests/bug-478094.c: Added.
10441
10442         * src/z80/gen.c (commitPair): Fixed silly gbz80/z80 commit to static bug.
10443
10444 2001-11-04  Bernhard Held  <bernhard AT bernhardheld.de>
10445
10446         * sdcc/sim/ucsim/s51.src/uc390cl.h: Improvement for ds390 to run regression tests
10447
10448         * sdcc/sim/ucsim/s51.src/uc390.h: Improvement for ds390 to run regression tests
10449
10450         * sdcc/sim/ucsim/s51.src/regs51.h: Improvement for ds390 to run regression tests
10451
10452         * sdcc/sim/ucsim/s51.src/glob.cc: Improvement for ds390 to run regression tests
10453
10454         * sdcc/support/regression/tests/bug-460010.c: Small change for ds390
10455
10456 2001-11-04  Michael Hope  <michaelh AT juju.net.nz>
10457
10458         * src/z80/peeph-gbz80.def: Removed a bad sub optimisation.
10459
10460 2001-11-03  Michael Hope  <michaelh AT juju.net.nz>
10461
10462         * support/regression/tests/bug-477927.c: Added.
10463
10464         * src/z80/peeph.def: Added minor rules.
10465
10466         * src/z80/gen.c (genPlusIncr): Added an extra plusinc rule.
10467
10468         * src/z80/peeph.def: Added jump optimisation modification.
10469
10470 2001-11-01  Michael Hope  <michaelh AT juju.net.nz>
10471
10472         * src/SDCCmain.c (linkEdit): Added runtime path detection to the mcs51 port.
10473
10474 2001-10-30  Michael Hope  <michaelh AT juju.net.nz>
10475
10476         * support/regression/tests/funptrs.c: Added.
10477
10478 2001-10-29  Michael Hope  <michaelh AT juju.net.nz>
10479
10480         * src/z80/ralloc.c (packRegsForHLUse): Fixed up bad spill due to pushing one byte via HL.
10481
10482 2001-10-28  Michael Hope  <michaelh AT juju.net.nz>
10483
10484         * src/z80/gen.c (genArrayInit): Made it work for on stack arrays.
10485
10486         * src/z80/main.c (gbz80_port =): Added rle support to the gbz80 port.
10487
10488         * src/z80/gen.c (genMinus): Fixed for where the result is one byte.
10489         (movLeft2ResultLong): Created.
10490
10491         * src/z80/ralloc.c (packRegsForHLUse): Added a couple of simple cases for the GB.
10492         (joinPushes): Added.  Joins two char pushes into a word push.
10493
10494 2001-10-27  Michael Hope  <michaelh AT juju.net.nz>
10495
10496         * support/cpp2/Makefile.in (install): Added creation of dest dir.
10497
10498         * support/makebin/Makefile (install): Added creation of dest dir.
10499
10500 2001-10-24 Karl Bongers <karl AT turbobit.com>
10501
10502         * configure.in, configure, Makefile, support/cpp: Removed cpp folder, since we have new cpp2 preprocessor code.
10503
10504 2001-10-21  Michael Hope  <michaelh AT juju.net.nz>
10505
10506         * src/z80/ralloc.c: Turned off faulty pack for one use.
10507
10508         * src/z80/peeph-gbz80.def: Removed redundent restart options.
10509
10510         * src/z80/gen.c (genMult): Added native mul for constants on the z80 and gbz80.
10511
10512 2001-10-21  Bernhard Held  <bernhard AT bernhardheld.de>
10513
10514         * support/regression/Makefile: Improved clean
10515
10516         * support/regression/ports/gbz80/spec.mk: Added clean
10517
10518         * support/regression/ports/host/spec.mk: Added clean
10519
10520         * support/regression/ports/z80/spec.mk: Added clean
10521
10522         * support/regression/ports/mcs51/spec.mk: Added clean, little improvements
10523
10524         * support/regression/ports/mcs51/timeout.c: little improvements
10525
10526 2001-10-17  Michael Hope  <michaelh AT juju.net.nz>
10527
10528         * device/lib/malloc.c (MEMHEADER): Fixed against new pedantic pointers.
10529
10530         * support/regression/fwk/include/testfwk.h: Fixed up to use function pts correctly.
10531
10532         * support/regression/generate-cases.py: Fixed up to use function pts correctly.
10533
10534 2001-10-16  Bernhard Held  <bernhard AT bernhardheld.de>
10535
10536         * support/regression/port/mcs51/spec.mk: add timeout for uCsim
10537
10538         * support/regression/port/mcs51/timeout.c: add timeout for uCsim
10539
10540 2001-10-13  Michael Hope  <michaelh AT juju.net.nz>
10541         * src/z80/gen.c (emitCall): Fixed up missing spill of HL when used to assign the result value.
10542
10543         * src/z80/ralloc.c: Turned off pack for one use as it's quite broken.
10544
10545         * src/SDCCmain.c (linkEdit): Added support for passing a legacy command line through the processor.
10546
10547         * src/mcs51/main.c (_linkCmd): Added bin path to command.
10548
10549         * src/SDCCmain.c (initValues): Added support for when it it called just to link.
10550
10551         * as/mcs51/lklibr.c (libfil;): Turned off 'library file' message.
10552
10553         * src/SDCCval.c (constVal): Fixed usage of 'L' modifier problems on ppc.
10554
10555         * support/regression/tests/longor.c: Added.
10556
10557 2001-10-11  Bernhard Held  <bernhard AT bernhardheld.de>
10558
10559         * as/mcs51/asdata.c: replaced FILENAME_MAX with PATH_MAX
10560
10561         * as/mcs51/aslink.h: define PATH_MAX
10562
10563         * as/mcs51/asm.h: define PATH_MAX
10564
10565         * as/mcs51/asmain.c: replaced FILENAME_MAX with PATH_MAX
10566
10567         * as/mcs51/asnoice.c: replaced FILENAME_MAX with PATH_MAX
10568
10569         * as/mcs51/lklex.c: replaced FILENAME_MAX with PATH_MAX
10570
10571         * as/mcs51/lkmain.c: replaced FILENAME_MAX with PATH_MAX
10572
10573         * src/SDCCglobl.h: define PATH_MAX
10574
10575         * src/SDCCmacro.c: replaced FILENAME_MAX with PATH_MAX
10576
10577         * src/SDCCmain.c: replaced FILENAME_MAX with PATH_MAX
10578
10579 2001-10-11  Michael Hope  <michaelh AT juju.net.nz>
10580
10581         * src/z80/gen.c (gencjneshort): Fixed
10582
10583         * src/z80/ralloc.c (packRegsForHLUse): Added pack into HL for cast then ipush.
10584
10585 2001-10-09  Michael Hope  <michaelh AT juju.net.nz>
10586
10587         * support/regression/tests/bug-469671.c: Added.
10588
10589         * src/z80/gen.c (shiftIntoPair): Fixed up warning.
10590
10591 2001-10-08  Michael Hope  <michaelh AT juju.net.nz>
10592
10593         * src/SDCCmain.c: Added --fommit-frame-pointer option and implemented in the z80 port.
10594
10595         * src/z80/gen.c (genPlus): Fixed to work with extended stack.  Also fixed genMinus, genCmp.  genUMinus is still left.
10596
10597 2001-10-08  Bernhar Held  <bernhard AT bernhardheld.de>
10598
10599         * src/SDCCmain.c (preProcess): added define SDCC_NOOVERLAY
10600
10601         * src/device/lib/_mulint.c  : removed hint: nooverlay bug
10602
10603         * src/device/lib/_mullong.c : removed hint: nooverlay bug
10604
10605         * src/device/lib/_divuint.c : removed hint: nooverlay bug
10606
10607         * src/device/lib/_divulong.c: removed hint: nooverlay bug
10608
10609         * src/device/lib/_moduint.c : removed hint: nooverlay bug
10610
10611         * src/device/lib/_modulong.c: removed hint: nooverlay bug
10612
10613 2001-10-07  Michael Hope  <michaelh AT juju.net.nz>
10614
10615         * 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.
10616
10617         * support/Util/NewAlloc.c (freeTrace): Changed free for the gc case to not free at all.  Fixes runtime segfault.
10618
10619         * support/regression/tests/scott-compare3.c (c_abcd): Fixed up casts.
10620
10621 2001-10-07    <johan AT FRIJA>
10622
10623         * device/lib/gets.c (gets): fixed the return value.
10624
10625 2001-10-06  Michael Hope  <michaelh AT juju.net.nz>
10626         * src/SDCCmain.c (WRITE_SEG_LOC): Fixed up to use Safe_strdup.
10627
10628         * 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.
10629
10630         * 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.
10631
10632         * src/z80/gen.c (genZ80Code): Added de-allocation via trace support.
10633
10634         * src/pic/gen.c: Removed Safe_strdup.
10635
10636         * configure.in: Added option to enable libgc support.
10637
10638         * src/SDCCbitv.c (bitVectnBitsOn): Optimised.
10639         (bitVectUnion): Optimised.
10640         (bitVectIntersect): Optimised.
10641         (bitVectBitsInCommon): Optimised.
10642         (bitVectCplAnd): Optimised.
10643
10644         * support/makebin/makebin.c (usage): Removed getopt as mingw32 doesn't have it.  Sigh.
10645
10646 2001-10-03 Bernhard Held <bernhard AT bernhardheld.de>
10647
10648         * src/SDCCmain.c: distinguish between assembler debug and plain options
10649
10650         * src/avr/main.c:   remove standard assembler options
10651
10652         * src/ds390/main.c: remove standard assembler options
10653
10654         * src/mcs51/main.c: remove standard assembler options
10655
10656         * src/port.h: removed "PENDING" comment
10657
10658 2001-10-03 Bernhard Held <bernhard AT bernhardheld.de>
10659
10660         * src/device/lib/_mulint.c  : new, with assember functions
10661
10662         * src/device/lib/_mullong.c : new, with assember functions
10663
10664         * src/device/lib/_divuint.c : with assember functions
10665
10666         * src/device/lib/_divsint.c : with assember functions
10667
10668         * src/device/lib/_divulong.c: with assember functions
10669
10670         * src/device/lib/_divslong.c: with assember functions
10671
10672         * src/device/lib/_moduint.c : with assember functions
10673
10674         * src/device/lib/_modsint.c : with assember functions
10675
10676         * src/device/lib/_modulong.c: with assember functions
10677
10678         * src/device/lib/_modslong.c: with assember functions
10679
10680         * src/device/lib/libint.lib:  replaced _muluint.c  and _mulsint.c  by _mulint.c
10681
10682         * src/device/lib/liblong.lib: replaced _mululong.c and _mulslong.c by _mullong.c
10683
10684         * src/device/lib/Makefile.in: replaced _muluint.c  and _mulsint.c  by _mulint.c
10685                                       replaced _mululong.c and _mulslong.c by _mullong.c
10686
10687 2001-10-03 Bernhard Held <bernhard AT bernhardheld.de>
10688
10689         * src/SDCCsymt.c: sequence of specifiers in pintTypeChain() corrected
10690
10691 2001-10-01 Bernhard Held <bernhard AT bernhardheld.de>
10692
10693         * src/SDCCglue.c: test, if win32api is available for MINGW
10694
10695 2001-10-01 Bernhard Held <bernhard AT bernhardheld.de>
10696
10697         * src/SDCCsymt.c: no more _modifier in printTypeChain()
10698         * support/regression/tests/driverstruct.c: REENTRANT for mcs51
10699         * support/regression/ports/gbz80/spec.mk: removed GENERIC
10700         * support/regression/ports/host/spec.mk: removed GENERIC
10701         * support/regression/ports/mcs51/spec.mk: removed GENERIC
10702         * support/regression/ports/z80/spec.mk: removed GENERIC
10703
10704 2001-10-01  Michael Hope  <michaelh AT juju.net.nz>
10705
10706         * support/regression/fwk/lib/testfwk.c (__printf): Removed GENERIC.
10707
10708         * support/regression/tests/bug-467035.c: Created.
10709
10710 2001-10-01    <johan AT FRIJA>
10711
10712         * src/SDCC.y: fixed bug #466586 part 1
10713
10714 2001-10-01  Johan Knol <johan.knol AT iduna.nl>
10715
10716         * SDCCicode.c: z80 has no generic pointers
10717         * removed -s from strip in all Makefile(.in)'s. It is not needed, but Solaris chocks on it.
10718
10719 2001-09-30  Michael Hope  <michaelh AT juju.net.nz>
10720
10721         * sim/ucsim/cmd.src/Makefile.in ($(PRJDIR)/libcmd.a): Changed all ar references to $(AR) for Solaris.
10722
10723 2001-09-29  Michael Hope  <michaelh AT juju.net.nz>
10724
10725         * Makefile (sdcc-libs): Added makebin to the list of standard targets.
10726
10727         * support/regression/ports/z80/spec.mk: Updated to use env for sdcc bin dir for automatic regression.
10728
10729 2001-09-25  Michael Hope  <michaelh AT juju.net.nz>
10730
10731         * configure.in: Fixed up so that ucsim is only configured once.
10732
10733         * support/cpp2/configure.in: Fixed to use the program transform to append the .exe for the win32 build.
10734
10735         * src/SDCCutil.c (getPrefixFromBinPath): Fixed up to work with win32 in all of its glory.
10736         (getPathDifference): As above.
10737
10738         * src/SDCCmain.c (preProcess): Changed to use a temporary file in a proper temp directory.  Fixed case where pre-processing only.
10739
10740         * src/SDCCglue.c (tempfilename): Added function for pre-processor.
10741
10742 2001-09-23  Michael Hope  <michaelh AT juju.net.nz>
10743         * .version: Updated to 2.3.1
10744
10745         * src/z80/main.c (z80_port =): Added macro based linker and assembler command line support.
10746         Added copyright header.
10747
10748         * src/SDCCmain.c: Shifted various functions into SDCCutil.c
10749         (assemble): Added support for macro based assembler commands.
10750         (linkEdit): Added support for macro based linker commands.
10751         (preProcess): Changed the pre-processor to use macros.
10752         (_setPaths): Added functionality to autodetect the include, lib and bin dir paths.
10753         (_discoverPaths): Added support for overriding the install directory using the SDCCDIR env variable.
10754
10755         * device/lib/z80/crt0.s: Added module name for debugging.
10756
10757 2001-09-20  Michael Hope  <michaelh AT juju.net.nz>
10758
10759         * src/SDCCmain.c (printVersionInfo): Added the build date to the version info.
10760
10761         * src/SDCChasht.c (hTabDeleteByKey): Fixed delete as it would delete the last item from a bucket even if it wasn't the real one.
10762
10763         * src/SDCCglue.c: Moved gc_strdup to SDCCutil.c
10764
10765         * src/Makefile.in: Added SDCCmacro and SDCCutil
10766
10767 2001-09-19  Michael Hope  <michaelh AT juju.net.nz>
10768
10769         * src/SDCCmain.c (printVersionInfo): Added the build date to the version info.
10770
10771 2001-09-16    <johan AT FRIJA>
10772
10773         * 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.
10774
10775 2001-09-15    <johan AT FRIJA>
10776
10777         * src/mcs51/ralloc.c: (findAssignToSym): fixed bug #460662 part 1
10778         * src/ds390/ralloc.c (findAssignToSym): fixed bug #460662 part 1
10779
10780 2001-09-11    <johan AT FRIJA>
10781
10782         * src/SDCCval.c (valDiv Mod Minus Plus Shift): keep litteral expressions as small as possible (bug #460010)
10783
10784 2001-09-10  Michael Hope  <michaelh AT juju.net.nz>
10785
10786         * support/regression/tests/bug-460444.c: Added test case.
10787
10788         * src/z80/gen.c (genOr): bug 460444: if (a ^ lit) was broken for &, |, and ^.
10789         (genCast): Added justification for all of the asserts.
10790
10791 2001-09-10  Bernhard Held <bernhard AT bernhardheld.de>
10792
10793         * support/regression/support.c: _xdata replaced by xdata
10794
10795         * support/regression/spec.mk: removed _generic
10796
10797 2001-09-09  Michael Hope  <michaelh AT juju.net.nz>
10798
10799         * src/pic/ralloc.c (debugLogRegType): Removed some old types to get it to compile.
10800
10801         * src/z80/gen.c (shiftR2Left2Result): Improved the case when v = v >> n for small values of n to use less code space and time.
10802         (genrshTwo): Fixed v = v >> n where v is a negative int and n is > 8: bug 460010.
10803
10804         * src/z80/peeph.def: Added a rule to optimise shift then compare.
10805
10806         * support/regression/tests/bug-460000.c (testShiftByParam): Added test case.
10807
10808         * support/regression/tests/bug-460010.c: Added test case.
10809
10810         * support/regression/Makefile (test-host): Removed a silly 'clean' target when testing against gcc.
10811
10812 2001-09-09  Bernhard Held <bernhard AT bernhardheld.de>
10813
10814         * support/regression/Makefile: inter-port-clean adjusted for mcs51
10815
10816         * support/regression/testfwk.c: removed workaround for bug #436344
10817
10818         * support/regression/tests/bp.c: use less memory with mcs51
10819
10820         * support/regression/tests/bug-441448.c: use less memory
10821
10822         * support/regression/tests/ports/mcs51/spec.mk: cleanup, use --stack-after-data
10823
10824         * support/regression/collate-results.py: typo
10825
10826 2001-09-08  Michael Hope  <michaelh AT juju.net.nz>
10827
10828         * support/regression/tests/fetchoverlap.c: Added new test case.
10829
10830         * support/regression/tests/bp.c: Added new test case.
10831
10832         * support/regression/tests/bug-448984.c: Added new test case.
10833
10834         * support/regression/tests/pow2shifts.c: Added new test case.
10835
10836         * src/z80/gen.c: Turned off the noise it normally generates for the release.
10837         (genlshTwo): Fixed right shift for count > 8.
10838
10839         * src/z80/ralloc.c: Disabled most of the ACC packing rules as they weren't getting hit and weren't at all safe.
10840
10841 2001-09-08    <johan AT FRIJA>
10842
10843         * src/SDCCicode.c (geniCodeCall): a CPOINTER can be used as a function
10844
10845 2001-09-07    <johan AT FRIJA>
10846
10847         * src/SDCCicode.c (newiCodeCondition): fixed bug #456235 (1.77)
10848
10849         * src/SDCCglue.c (emitRegularMap): only delete a symbol when it is a symbol
10850
10851 2001-09-06    <johan AT FRIJA>
10852
10853         * src/SDCC.y: this could be a fix for bug #458744 (1.37)
10854         * bernhard noted me at this: "() equals to (void)" (1.38)
10855
10856 2001-09-05    <johan AT FRIJA>
10857
10858         * src/SDCCglue.c (emitRegularMap): a fix for bug #458099/2
10859
10860 2001-09-04    <johan AT FRIJA>
10861
10862         * src/SDCCsymt.c (checkSClass): a fix for bug #458099/1
10863
10864
10865 2001-09-04  Paul Stoffregen  <paul AT pjrc.com>
10866
10867         * pragma noinduction broke memcpy on mcs51 large model.  Moved it inside z80 optimization
10868
10869 2001-09-03  Michael Hope  <michaelh AT juju.net.nz>
10870
10871         * link/z80/aslink.h: Fixed path for PATH_MAX
10872
10873 2001-09-02  Michael Hope  <michaelh AT juju.net.nz>
10874
10875         * src/z80/gen.c (fetchLitPair): Changed so that it properly caches direct space references.
10876
10877         * support/regression/tests/addsub.c: Added cases to cover all the +, - combinations.
10878
10879         * support/regression/tests/uminus.c: Added a test for the unary minus operator.
10880
10881         * 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.
10882
10883 2001-09-01  Michael Hope  <michaelh AT juju.net.nz>
10884
10885         * src/z80/gen.c: Fixed up generator to pass the regresion tests, specifically fixing loads for longs, genCmp, and turned on the map file.
10886         (genCmp): Fixed up genCmp for the GB with longs.
10887
10888         * device/lib/gbz80/Makefile: Fixed up all the libraries to pass the regression tests.
10889
10890         * support/regression/ports/host/spec.mk: Updated to compile with the new type specifiers.
10891
10892         * device/lib/Makefile.in (Z80SOURCES): Removed old _mululong, _mulslong, and unneeded _mulint.
10893
10894         * device/lib/_mullong.c (_mulslong): Changed to actually return a value :)
10895
10896 2001-08-30  Paul Stoffregen  <paul AT pjrc.com>
10897
10898         * added peepholes 223 to 231 to mcs51 port.  These improve code when using large model.
10899
10900 2001-08-30  Michael Hope  <michaelh AT juju.net.nz>
10901
10902         * 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.
10903
10904         * src/z80/gen.c (genPlus): Changed bad long add for gb to a fall through.
10905
10906 2001-08-29  Michael Hope  <michaelh AT juju.net.nz>
10907
10908         * link/z80/aslink.h: Fixed long file name support.  Is now based off PATH_MAX instead of a constant.
10909
10910         * src/z80/gen.c: Fixed add and sub for the case where left or right are in static space.
10911
10912 2001-08-30 Bernhard Held   <bernhard AT bernhardheld.de>
10913
10914   * sim/ucsim/configure:    little improvement of Cygwin-detection
10915   * sim/ucsim/configure.in: little improvement of Cygwin-detection
10916   * sim/ucsim/cmd.src/newcmdcl.h: include <sys/types.h> to define fd_set automated build
10917   * support/regression/tests/bug-221100.c: small changes for mcs51
10918   * support/regression/tests/bug-221168.c: small changes for mcs51
10919   * support/regression/tests/bug-227710.c: small changes for mcs51
10920   * support/regression/tests/staticinit.c: small changes for mcs51
10921   * as/mcs51/aslink.h: accept everything as symbol name in rel-files, bug fix ID 452601
10922   * as/mcs51/lklex.c:  accept everything as symbol name in rel-files, bug fix ID 452601
10923   * as/mcs51/lksym.c:  accept everything as symbol name in rel-files, bug fix ID 452601
10924
10925 $Revision$