* support/scripts/sdcc.nsi: removed unexisting ${DEV_ROOT}\lib\pic\*.o,
[fw/sdcc] / ChangeLog
1 2006-04-18 Borut Razem <borut.razem AT siol.net>
2
3         * support/scripts/sdcc.nsi: removed unexisting ${DEV_ROOT}\lib\pic\*.o,
4           ${DEV_ROOT}\lib\src\pic\libdev\*.S, ${DEV_ROOT}\lib\src\pic\libdev\*.inc
5
6 2006-04-17 Borut Razem <borut.razem AT siol.net>
7
8         * device/include/Makefile.in: added pic/*.inc to the installation
9
10 2006-04-15 Bernhard Held <bernhard AT bernhardheld.de>
11
12         * support/regression/collate-results.py: fixed output in case of
13         a valdiag error
14         * support/regression/generate-cases.py: fixed splitting of pathnames
15         with dots
16         * as/hc08/lklibr.c (addfile),
17         * as/mcs51/lklibr.c (addfile): fixed off-by-one bug
18
19 2006-04-11 Raphael Neider <rneider AT web.de>
20
21         * src/pic16/gen.c (getFreePtr, pic16_popRegFromString),
22         * src/pic16/ralloc.c (pic16_allocregWithName): removed debug output
23         * src/pic16/pcode.c (assignValnums): fixed #1460578
24
25 2006-04-11 Raphael Neider <rneider AT web.de>
26
27         * device/lib/pic/libdev/*.c,
28         * device/include/pic/*.h: replaced sfr and data with __sfr and __data,
29           fixes #1468739, enables compilation in --std-c99 mode
30         * support/scripts/inc2h.pl: emit __sfr/__data instead of sfr/data
31
32 2006-04-11 Raphael Neider <rneider AT web.de>
33
34         * src/pic/device.c (find_device): removed debug output
35           (list_valid_pics): enabled verbose listing of supported devices
36         * device/include/stdbool.h: define bool as char for pic14/16 as well
37
38 2006-04-07 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
39
40         * src/SDCC.y: allow using brackets here: "__interrupt (1) __using (1)"
41
42 2006-04-07 Maarten Brock <sourceforge.brock AT dse.nl>
43
44         * .version: bumped version to 2.5.6
45         * src/pic/ralloc.c (newReg): MSVC doesn't support __builtin_return_address
46
47 2006-04-06 Raphael Neider <rneider AT web.de>
48
49         * .version: bumped version to 2.5.6 (pic14 ABI changed)
50         * src/SDCCmain.c: add -DSDCC_PROCESSOR=<id> for pic14 port
51         * src/pic/glue.c (emitSymbolToFile,pic14_constructAbsMap,
52           pic14emitRegularMap,pic14emitMaps): moved output for absolute symbols to
53             pic14_constructAbsMap
54           (pic14printPublics): declare absolute global symbols as global
55           (pic14createInterruptVect),
56         * src/pic/ralloc.c (IS_CONFIG_ADDRESS): support second config word,
57           (newReg): assume new registers unused, use correct name in
58             hashtable (reg->name instead of name), more debugLog output
59         * src/pic/device.h (PIC_device): added fields for verbose output
60         * src/pic/device.c: moved device definition to pic14devices.txt,
61             added routines for runtime parsing of pic14devices.txt,
62             added support for second config word
63         * src/pic/main.c (_process_pragma): removed #pragma maxram,
64           (_pic14_keywords): no longer accept "bit" and "sbit" keywords
65           (_pic14_initPaths): add search paths with "pic" suffix (not "pic14")
66           (_pic14_parseOptions): moved pCodeInitRegisters here
67           (_pic14_do_link): add "pic$(ARCH).lib" to linker arguments
68         * src/pic/pcode.c (AnalyzeBanking): bail out on unset processor,
69           (pCodeInitRegisters): rewrapped comments, perpared new approach to
70             handling the pseudo stack
71         * device/lib/Makefile.in: ignore failures in objects-pic16,
72         * device/lib/pic/{configure,configure.in,Makefile}: added libdev/
73         * device/lib/pic/NEWS: document new dependency on picXXX.lib
74         * device/lib/pic/Makefile.subdir,
75         * device/lib/pic16/Makefile.subdir: improved clean rules
76         * device/lib/pic/libdev/: NEW, pic14 device libraries
77         * device/lib/pic/libsdcc/_gptr{get,put}{1,2,3,4}.S: use _X not X
78         * device/lib/pic/libsdcc/macros.inc: use _X not X, declare default SFRs
79         * device/include/Makefile.in: create subdir and install pic14 headers
80         * device/include/pic/p16f_common.inc: removed unused declarations
81         * device/include/pic/pic16*.h: added header files for 100+ 14 bit
82             PICs from inc2h.pl v1.6,
83             replaced BIT_AT macros with struct declarations
84         * device/include/pic/pic14devices.txt: definition of supported devices,
85             all above improvements contributed by Zik Saleeba, thanks
86         * support/scripts/inc2h.pl: removed BIT_AT, replaced with structs
87         * support/scripts/sdcc.nsi: also install pic14 device libraries and
88             headers
89
90 2006-04-06 Maarten Brock <sourceforge.brock AT dse.nl>
91
92         * device/include/mcs51/c8051f410.h: added interrupt numbers,
93         * device/include/mcs51/c8051f200.h: old SiLabs mcu completes the list,
94           thanks to Charles Olds
95
96 2006-04-06 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
97
98         * debugger/mcs51/cmd.c (infoRegisters): show return address on stack
99
100 2006-04-06 Maarten Brock <sourceforge.brock AT dse.nl>
101
102         * src/SDCCpeeph.c (labelIsReturnOnly): fixed bug 1464657
103         * src/mcs51/gen.c (genJumpTab): fixed bug in medium model
104         * support/regression/bug1464657.c: added, new test
105
106 2006-04-05 Maarten Brock <sourceforge.brock AT dse.nl>
107
108         * src/SDCCmain.c (preProcess): implemented RFE 1449908, define SDCC as the
109           version number
110
111 2006-04-05 Maarten Brock <sourceforge.brock AT dse.nl>
112
113         * src/SDCCpeeph.c (initPeepHole): implemented RFE 1460196, when both
114           --no-peep and --peep-file <file> are used don't use default rules but
115           do use the <file>
116
117 2006-04-05 Maarten Brock <sourceforge.brock AT dse.nl>
118
119         * src/mcs51/gen.c (genCall): fixed bug 1457608
120
121 2006-03-30 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
122
123         * doc/sdccman.lyx: reverted to version 1.129 of december as my latest
124         changes seem to cause (trigger?) problems with the build system.
125
126 2006-03-29 Maarten Brock <sourceforge.brock AT dse.nl>
127
128         * src/SDCCpeeph.c (operandsLiteral): new, added,
129           (callFuncByName): inserted operandsLiteral
130         * src/mcs51/peeph.def: reenabled 132.e, added extra check to 132.x
131
132 2006-03-28 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
133
134         * doc/sdccman.lyx: added paragraph "Use of SDCC in Education"
135         * src/mcs51/peeph.def: disabled rule 132.e fixing bug #1453093
136
137 2006-03-24 Maarten Brock <sourceforge.brock AT dse.nl>
138
139         * src/z80/gen.c (genFunction, genEndFunction): fixed bug 1160666,
140           implemented patch 1120823 Thanks to Willy De la Court (normal
141           interrupts need an interrupt number now if they are made critical),
142           and enabled nesting of critical functions though not for gbz80
143           (genCritical, genEndCritical): added functions
144           (genZ80Code): added cases for CRITICAL and ENDCRITICAL
145         * src/z80/mappings.i: added "ei" to all mappings
146
147 2006-03-20 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
148
149         * sim/ucsim/cmd.src/newcmdcl.h: applied patch fixing GCC 4.1 build
150         submitted by the Debian SDCC maintainer Aurelien Jarno:
151         "Credits goes to Martin Michlmayr, who rebuilt the whole Debian
152         archive with gcc 4.1 on mips and wrote the patch"
153
154 2006-03-16 Raphael Neider <rneider AT web.de>
155
156         * src/pic16/genarith.c (genAddLit): simplified and fixed case where
157           the left operand is shorter than the result (c* = lit-c* + int),
158           fixes bug #1450796
159         * src/pic16/gen.c (genRightShift): check IS_SYMOP before accessing
160           OP_SYMBOL
161
162 2006-03-14 Vangelis Rokas <vrokas AT users.sourceforge.net>
163
164         * src/.version: increased version number to 2.5.5
165         * src/SDCCmain.c (linkEdit): do not test for PIC16 target since, PIC16
166         linking is done manually in pic16 port's _linkEdit,
167         * src/SDCCsymt.c (compStructSize): for target PIC16 and shell variable
168         PIC16_PACKED_BITFIELDS, compact bitfield structures as much as possible,
169         * src/pic16/gen.c (aopForSym): when direct register name is WREG then
170         allocate asmop as AOP_ACC,
171         (aopForRemat): added parameter 'bool result' in function declaration,
172         (pic16_aopGet): return AOP_ACC when accessing WREG,
173         (pic16_popGetTempReg): minor modification,
174         (pic16_popRegFromIdx): first try with 'pic16_regWithIdx' then with
175         'pic16_allocWithIdx',
176         (genPcall): removed ftype, usage of OP_SYM_TYPE asserted error when
177         calling function in absolute addresses,
178         (genAssign): take into account AOP_ACC asmop,
179         * src/pic16/pcode.c (pic16_newpCodeOpReg): minor modifications,
180         * src/pic16/pcoderegs.c: some debug functions and lines added,
181         * src/pic16/ralloc.c (decodeRegType): added but commented out,
182         * (pic16_typeRegWithIdx): search 'pic16_dynInternalRegs' for given
183         register too,
184         * (pic16_findFreeReg, pic16_findFreeRegNext): allocate new register via
185         call to allocReg, not by manually allocating a new one,
186         (pic16_assignRegisters): now before going through the register
187         allocating functions mark all registers as free. This eliminates some
188         side effects resulting from peephole parser done earlier in the backbone
189
190 2006-03-13 Maarten Brock <sourceforge.brock AT dse.nl>
191
192         * src/SDCCicode.c (geniCodeLogic),
193         * src/SDCCast.c (decorateType): applied patch by Bernhard for rfe 1422617
194
195 2006-03-10 Maarten Brock <sourceforge.brock AT dse.nl>
196
197         * src/mcs51/gen.c (sameReg): new, checks if two aop regs are the same,
198           (genSend): bugfix, do not allocate and free twice,
199           (shiftRLong): handle partially overlapping aops
200         * support/regression/tests/bitopcse.c: fixed warning redefined idata
201
202 2006-03-08 Borut Razem <borut.razem AT siol.net>
203
204         * support/regression/fwk/include/testfwk.h: added defines for xdata, idata
205           for pic16
206
207 2006-03-08 Maarten Brock <sourceforge.brock AT dse.nl>
208
209         * support/regression/tests/bug1409955.c: new, added
210         * src/mcs51/gen.h: changed asmop.freed:1 to asmop.allocated for tracking
211         * src/mcs51/gen.c (newAsmop): set asmop.allocated to 1,
212           (aopForSym, aopOp): increment asmop.allocated if reused,
213           (freeAsmop): decrement asmop.allocated and check for zero instead of
214           using asmop.freed,
215           (freeForBranchAsmop): use asmop.allocated instead of asmop.freed,
216           (genNot, genCpl, genUminus, genMinus, genMult, genDiv, genMod, genCmpGt,
217            genCmpLt, genAndOp, genOrOp, genAnd, genOr, genXor, genRRC, genRLC,
218            genGetHbit, genGetAbit, genGetByte, genGetWord, genSwap,
219            genLeftShiftLiteral, genLeftShift, genRightShiftLiteral,
220            genSignedRightShift, genRightShift, genDataPointerGet,
221            genPagedPointerGet, genFarPointerGet, genCodePointerGet,
222            genGenPointerGet, genDataPointerSet, genAssign, genCast): free asmop's
223             in reverse order from allocation,
224           (genPlus, genCmpEq): free asmop's in reverse order from allocation and
225             added swappedLR to keep track
226         * support/regression/fwk/include/testfwk.h: added defines for xdata, idata,
227           pdata & code for GCC, z80, gbz80 & hc08
228         * support/regression/tests/zeropad.c: moved defines to testfwk.h
229
230 2006-03-08 Raphael Neider <rneider AT web.de>
231
232         * src/pic16/main.c (_hasNativeMulFor): fixed bug #1444425
233
234 2006-03-07 Maarten Brock <sourceforge.brock AT dse.nl>
235
236         * device/include/mcs51/c8051f410.h: new SiLabs mcu
237         * src/ds390/peeph.def: disabled 186.d and 227.a as fix for #1434401
238         * support/regression/tests/array.c: added parenthesis, made arrays unsigned
239
240 2006-03-06 Borut Razem <borut.razem AT siol.net>
241
242         * support/regression/ports/pic16/spec.mk: link with libm18f.lib,
243           made the linker quiet
244
245 2006-03-06 Vangelis Rokas <vrokas AT users.sourceforge.net>
246
247         * src/pic16/gen.c (genPcall): fixed bug #1443644
248         * src/pic16/device.h (struct pic16_options_t): added 'int CATregs' flag
249         which dumps before the function entry point a data byte which represents
250         the number of the local variables used by the specified function, added
251         'xinst' for initial support for Extended Instruction Support,
252         * src/pic16/gen.c (aopForSym, pic16_aopGet): beautifications,
253         (pic16_testStackOverflow): do not prefix GSTACK_TEST_NAME with
254         port->fun_prefix anymore (may change later),
255         (genFunction, genEndFunction): do not store/restore local registers for
256         _main (this should take care the --main-return command line option in
257         the future),
258         (genOr): removed some legacy pic-port instructions,
259         * src/pic16/genarith.c (genAddLit): re-enabled old code because
260         performing operations with SFR's causes data to be written more than
261         once to each SFR. Perhaps SFRs should be handled in special cases...
262         * src/pic16/glue.c: macros BIG_ENDIAN and BYTE_IN_LONG are moved to
263         pcode.h
264         * src/pic16/main.c (_process_pragma): stack bound checking did not take
265         into account for stack starting position,
266         (struct OPTIONS pic16_optionsTable): added command line argument
267         --extended or -y for Extended Instruction Support,
268         * src/pic16/ralloc.c (pic16_decodeOp): added case for FUNCTION,
269         (deassignLRs): *** perhaps the most important change, old 'for' code
270         (commented out for reference), didn't account for some registers which
271         were left marked 'not free' after a pointer operation. The change
272         reduces register usage a lot in some cases
273
274 2006-03-04 Borut Razem <borut.razem AT siol.net>
275
276         * support/regression/ports/hc08/spec.mk: remove *.asm in traget
277           _clean
278         * support/regression/tests/bug-524697.c: decreased array size for
279           mcs51 to fit into the internal RAM
280         * support/regression/Makefile.in: a little bit more verbose
281
282 2006-03-03 Borut Razem <borut.razem AT siol.net>
283
284         * support/regression/fwk/lib/testfwk.c,
285           support/regression/fwk/include/testfwk.h: introduced function
286           _prints(), nonrecursive _printn(), call _initEmu() from main()
287         * support/regression/ports/gbz80/support.asm,
288           support/regression/ports/ucz80/support.asm,
289           support/regression/ports/z80/support.asm,
290           support/regression/ports/ds390/support.c,
291           support/regression/ports/hc08/support.c,
292           support/regression/ports/host/support.c,
293           support/regression/ports/mcs51/support.c,
294           support/regression/ports/xa51/support.c: added empty _initEmu()
295           function
296         * support/regression/ports/pic16/gpsim.cmd,
297           support/regression/ports/pic16/spec.mk,
298           support/regression/ports/pic16/support.c,
299           support/regression/Makefile.in: added pic16 regression test
300
301 2006-03-01 Raphael Neider <rneider AT web.de>
302
303         * src/pic16/gen.c (genPcall,pic16_derefPtr,genGenPointerGet,
304           genConstPointerGet): use safe way of generating MOVFF to cover
305             literals as well as registers, fixes bug #1440527
306         * src/pic16/glue.c (pic16_printIvalBitFields): prevent NULL pointer
307             dereference
308           (pic16_printIvalUnion,pic16_isUnion): NEW, handle initialized unions
309             more correctly, fixes bug #1232186
310           (pic16_printIval): use pic16_printIvalUnion() for initialized unions
311         * src/pic16/main.c (_pic16_linkEdit): reorder linker arguments to make
312             gplink guess the correct processor in more cases, applied patch
313             from Till Riedel attached to and fixing bug #1436552
314
315 2006-02-20 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
316
317         * support/regression/tests/array.c: added, contains check for #1434401
318         * src/mcs51/peeph.def: disabled 186.d as temporary fix for #1434401
319
320 2006-02-16 Maarten Brock <sourceforge.brock AT dse.nl>
321
322         * device/include/mcs51/at89s8253.h: new, thanks to Krzysztof Polomka
323         * device/include/mcs51/at89S8252.h: fixed, thanks to Krzysztof Polomka
324         * device/include/mcs51/c8051f326.h,
325         * device/include/mcs51/c8051f340.h: new SiLabs mcu's
326         * device/include/mcs51/c8051f000.h,
327         * device/include/mcs51/c8051f018.h,
328         * device/include/mcs51/c8051f020.h: used () with __at, renamed IDLE,STOP to
329           PCON_IDLE,PCON_STOP and added sfr16 definitions
330
331 2006-02-14 Maarten Brock <sourceforge.brock AT dse.nl>
332
333         * src/mcs51/gen.c (genPlus, genMinus, genMult, genGetAbit, genGetByte,
334           genGetWord): fixed bug 1409955
335
336 2006-02-14 Maarten Brock <sourceforge.brock AT dse.nl>
337
338         * device/include/hc08/mc68hc908gp32.h,
339         * device/include/hc08/mc68hc908jb8.h: removed AWUL, added PTA6 & PTA7
340
341 2006-02-13 Maarten Brock <sourceforge.brock AT dse.nl>
342
343         * src/SDCCast.c (constExprValue): return NULL if not a value
344         * src/SDCCglue.c (printIvalArray): fixed bug 1225568
345         * src/hc08/gen.c(genUnpackBits, genUnpackBitsImmed): fixed bug 1019480
346         * support/regression/tests/bitfields.c: enabled signed bitfield for all
347
348 2006-02-13 Borut Razem <borut.razem AT siol.net>
349
350         * src/regression/ptrarg.c: added, fails due to bug #1430967
351         * src/regression/Makefile: ptrarg.c added, ...
352
353 2006-02-12 Maarten Brock <sourceforge.brock AT dse.nl>
354
355         * src/z80/gen.c (genUnpackBits): fixed bug 1019480
356         * support/regression/tests/bitfields.c: enabled signed bitfield for z80
357
358 2006-02-11 Borut Razem <borut.razem AT siol.net>
359
360         * src/SDCCmain.c: Added "sdcc: Calling linker..." if --verbose,
361           print "Processor: xxx" message to stdout only if --verbose
362
363 2006-02-11 Maarten Brock <sourceforge.brock AT dse.nl>
364
365         * src/SDCCglue.c (printIvalStruct): fixed bug 1426356 union initializer
366         * support/regression/tests/bug1426356.c: added
367         * support/regression/tests/bitfields.c: removed 2 tests
368
369 2006-02-10 Maarten Brock <sourceforge.brock AT dse.nl>
370
371         * device/include/mcs51/at89c51snd1c.h: updated comments, see patch 1428901
372         * device/include/mcs51/c8051f330.h,
373         * device/include/mcs51/c8051f350.h: used () with __at, renamed IDLE,STOP to
374           PCON_IDLE,PCON_STOP and added sfr16 definitions
375         * device/lib/_divsint.c,
376         * device/lib/_divuint.c,
377         * device/lib/_divulong.c,
378         * device/lib/_divulong.c: renamed a,b to x,y to avoid confusion, fixed
379           register bank bug for small stackauto
380
381 2006-02-09 Maarten Brock <sourceforge.brock AT dse.nl>
382
383         * support/regression/fwk/lib/timeout.c: include <stdlib.h> for exit()
384
385 2006-02-08 Maarten Brock <sourceforge.brock AT dse.nl>
386
387         * support/regression/ports/mcs51-xstack-auto/spec.mk: forgot -I(...)/mcs51
388         * all.dsp: corrected several bin paths
389         * device/include/mcs51/c8051f120.h,
390         * device/include/mcs51/c8051f300.h,
391         * device/include/mcs51/c8051f310.h: used () with __at and renamed IDLE,STOP
392           to PCON_IDLE,PCON_STOP
393         * device/include/mcs51/c8051f320.h: see above, also added sfr16 definitions
394         * device/lib/printf_large.c (output_float): fixed bug 1388703
395         * support/regression/tests/bug1057979.c: added test for bug 1388703
396
397 2006-02-08 Raphael Neider <rneider AT web.de>
398
399         * src/pic/pcode.c (pciTRIS): fixed typo,
400           (BuildFlow,LinkFlow_pCode): added (disabled) debug output,
401           (LinkFlow): fixed handling of flows that end in a call,
402           (ReuseReg): perform safety check earlier
403         * src/pic/pcoderegs.c (pCodeRegMapLiveRangesInFlow): fixed
404             to work with flows at the beginning of a pBlock,
405             fixes #1426557 (Symbol not previously defined),
406           (pic14_ReMapLiveRanges): NEW, destroy and rebuild register
407             usage information
408           (RemoveUnusedRegisters): update register usage info
409         * src/pic/ralloc.c (newReg): prevent duplicate registers from being
410             created, reuse existing ones instead
411         * src/pic/gen.c (genPcall): fixed #1424719
412
413 2006-02-07 Bernhard Held <bernhard AT bernhardheld.de>
414
415         * link/z80/lkmain.c,
416         * link/z80/lklex.c,
417         * link/z80/lkdata.c,
418         * link/z80/aslink.h: fixed build on current cygwin:
419         replaced getline() by lk_getline()
420
421 2006-02-01 Borut Razem <borut.razem AT siol.net>
422
423         * src/regression/add.c, src/regression/add2.c, src/regression/add3.c,
424           src/regression/add4.c, src/regression/and1.c, src/regression/and2.c,
425           src/regression/arrays.c, src/regression/b.c, src/regression/bank1.c,
426           src/regression/bool1.c, src/regression/bool2.c,
427           src/regression/bool3.c, src/regression/call1.c,
428           src/regression/compare.c, src/regression/compare10.c,
429           src/regression/compare2.c, src/regression/compare3.c,
430           src/regression/compare4.c, src/regression/compare5.c,
431           src/regression/compare6.c, src/regression/compare7.c,
432           src/regression/compare8.c, src/regression/compare9.c,
433           src/regression/configword.c, src/regression/for.c,
434           src/regression/inline.c, src/regression/mult1.c,
435           src/regression/nestfor.c, src/regression/or1.c,
436           src/regression/pointer1.c, src/regression/ptrfunc.c,
437           src/regression/rotate1.c, src/regression/rotate2.c,
438           src/regression/rotate3.c, src/regression/rotate4.c,
439           src/regression/rotate5.c, src/regression/rotate6.c,
440           src/regression/rotate7.c, src/regression/string1.c,
441           src/regression/struct1.c, src/regression/sub.c,
442           src/regression/sub2.c, src/regression/switch1.c,
443           src/regression/while.c, src/regression/xor.c,
444           src/regression/create_stc, src/regression/simulate,
445           src/regression/rt.sh, src/regression/Makefile: reenabled Scott's PIC14
446           regression tests
447         * src/regression/gpsim_assert.h: added
448
449 2006-01-28 Bernhard Held <bernhard AT bernhardheld.de>
450
451         * src/ds390/gen.c (unsaveRegisters): fixed literal function pointer
452         ((void (code *) (void)) 0) ();
453         * as/hc08/aslex.c,
454         * as/hc08/aslink.h,
455         * as/hc08/asm.h,
456         * as/hc08/asmain.c,
457         * as/hc08/lkdata.c,
458         * as/hc08/lklex.c,
459         * as/hc08/lkmain.c,
460         * as/mcs51/aslex.c,
461         * as/mcs51/aslink.h,
462         * as/mcs51/asm.h,
463         * as/mcs51/asmain.c,
464         * as/mcs51/lkdata.c,
465         * as/mcs51/lklex.c,
466         * as/mcs51/lkmain.c,
467         * as/z80/aslex.c,
468         * as/z80/asm.h,
469         * as/z80/asmain.c: fixed build on current cygwin:
470         replaced getline() by as_getline()
471
472 2006-01-27 Bernhard Held <bernhard AT bernhardheld.de>
473
474         * src/SDCC.y: fixed bug #716242, exchanged pointer and function
475         declarator in the symbol chain
476         * src/SDCCsymt.h,
477         * src/SDCCsymt.c (processFuncPtrArgs): added, removes "(void)"
478         parameter list for function pointers
479         * src/SDCCast.c (decorateType): added call of processFuncPtrArgs()
480         * support/regression/tests/bug-716242.c: added
481
482 2006-01-20 Bernhard Held <bernhard AT bernhardheld.de>
483
484         * src/SDCCicode.c (geniCodeAdd, geniCodeArray): use char for array
485         offset if possible
486         * src/SDCCast.c (getLeftResultType): 255 fits in char, not 256
487
488 2006-01-18 Bernhard Held <bernhard AT bernhardheld.de>
489
490         * src/SDCCast.c (backPatchLabels): fixed bug #1408066: made it
491         inifinitely recurseable, added static
492         * support/regression/tests/bug-1408066.c: added
493
494 2006-01-17 Bernhard Held <bernhard AT bernhardheld.de>
495
496         * src/SDCCicode.h,
497         * src/SDCCicode.c (newiTempPreheaderLabel, newiTempLoopHeaderLabel):
498         renamed, added possibility to create "postLoopLbl"-labels
499         * src/SDCCBBlock.c (iCodeBreakDown): renamed newiTempPreheaderLabel to
500         newiTempLoopHeaderLabel
501         * src/SDCCloop.c (newInduction, newRegion, backEdges, insertIntoLoop,
502         isNotInBlocks, addToExitsMarkDepth, createLoop, dominatedBy,
503         addDefInExprs, assignmentsToSym, isOperandInvariant, pointerAssigned,
504         hasNonPtrUse, loopInvariants, addressTaken, findInduction,
505         findDefInRegion, mergeRegions, ifMerged, mergeInnerLoops): made static,
506         (pinduction, pregion, hasIncomingDefs, findLoopEndSeq): disabled,
507         (basicInduction): fixed bug #136564, made static,
508         (loopInduction): changed parameter of basicInduction, made static,
509         (addPostLoopBlock): added
510         * src/SDCCloop.h: removed backEdges, pregion, pinduction,
511         loopOptimizations, addressTaken, findDefInRegion, hasIncomingDefs,
512         findLoopEndSeq
513         * support/regression/tests/bug-136564.c: added
514         * support/regression/ports/mcs51-xstack-auto/spec.mk: added
515         --std-sdcc99 to LIBSDCCFLAGS
516
517 2006-01-16 Bernhard Held <bernhard AT bernhardheld.de>
518
519         * src/SDCCicode.c (geniCodeIfx): fix bug 1406131: always false
520         while loop
521         * support/regression/tests/bug-1406131.c: added
522
523 2005-12-31 Bernhard Held <bernhard AT bernhardheld.de>
524
525         * src/SDCCast.c (decorateType): fix promotion of unary minus
526         * src/SDCCsymt.c (computeType): beautified
527         * src/SDCCval.c (cheapestVal): beautified, old non-Ansi version removed,
528         (valUnaryPM, valComplement): fix sign and promotion,
529         (valNot): ANSI: result type is int (SDCC: unsigned char)
530         * support/regression/tests/uminus.c: speedup by removing superflous
531         test case 'int'
532         * support/regression/tests/onebyte.c: added promotion and signedness
533         tests for unary minus
534         * support/regressions/tests/bug-477927.c: disable warning about
535         uninitialized variables
536         * support/regression/tests/not.c: added
537
538 2005-12-28 Bernhard Held <bernhard AT bernhardheld.de>
539
540         * device/lib/Makefile.in: added --std-sdcc99 to CFLAGS
541         * src/mcs51/gen.c (gen51Code): show final register usage after
542         fillGaps in asm with --i-code-in-asm
543         * src/SDCClrange.c (sequenceiCode, setLiveFrom, setLiveTo,
544         markLiveRanges, markAlive, findNextUseSym, findNextUse, unvisitBlocks,
545         incUsed, rliveClear, adjustIChain): made static,
546         (setFromRange): excluded because it's unused,
547         (findPrevUseSym, markWholeLoop): added,
548         (findPrevUse): rewritten; fixes bug 895992; now a complete search
549         through all branches of predecessors enables sdcc to emit the warning
550         W_LOCAL_NOINIT, marking of outermost loop was incomplete,
551         (rlivePoint): made static, added parameter emitWarnings which is only
552         true during the first run out of two,
553         (findRecursiveSucc, findRecursivePred): removed,
554         (computeLiveRanges): made static, added parameter emitWarnings,
555         (dumpIcRlive): added for debugging only
556         * src/SDCClrange.h: added boolean parameter to computeLiveRanges(),
557         removed prototype of setFromRange()
558         * src/SDCCopt.c (eBBlockFromiCode): added new parameter emitWarnings
559         in call of computeLiveRanges()
560         * support/regression/tests/bug-895992.c: added
561         * support/regression/tests/bug-971834.c: added
562         * support/valdiag/tests/bug-895992.c: added
563         * support/valdiag/tests/bug-971834.c: added
564
565 2005-12-18 Raphael Neider <rneider AT web.de>
566
567         * src/pic16/gen.c: added IS_DIRECT macro for "direct" operands,
568           (genUnpackBits): improved code for direct operands,
569           (genPackBits): improved code for literal assignment to bitfields
570             and for direct destination operands (no FSR indirection),
571             prevented redundant AND, fixes #1362800,
572           (AccLsh): added parameter to disable masking of the result
573         * src/pic16/pcode.c (pic16_safepCodeUnlink): fixed to work with
574           skip instructions with side-effects (like incfsz),
575           (pic16_pCodeIsAlive): suppress verbose output unless pcode_verbose,
576         * src/pic16/pcoderegs.c (RemoveRegsFromSet): removed annoying warning
577         * device/lib/pic16/Makefile.common.in: added --asm=@GPASM@ to CC,
578           fixes #1375263
579
580 2005-12-11 Bernhard Held <bernhard AT bernhardheld.de>
581
582         * src/SDCCicode.c (geniCodeAssign): fixed bug 11369874, don't use
583         volatile variables as spill location
584
585 2005-12-10 Bernhard Held <bernhard AT bernhardheld.de>
586
587         * src/SDCCcse.c (findCheaperOp): fixed bug 1376320, copy signedness to
588         replacing literals
589         * support/regression/tests/bug-1376320.c: added
590
591 2005-12-08 Raphael Neider <rneider AT web.de>
592
593         * src/pic/device.c: renamed is_shared to pic14_is_shared
594         * src/pic/gen.c (genIfx): re-enabled handling of sbits
595         * src/pic/glue.c (emitSymbolToFile): added workaround for sbits,
596           (is_valid_identifier): added for above workaround
597
598 2005-12-07 Maarten Brock <sourceforge.brock AT dse.nl>
599
600         * device/lib/Makefile.in: fixed to enable port-specific-objects
601         * device/lib/ds390/i2c390.c (BitOutI2C): optimized by making bout unsigned
602           char, thanks Hubert Sack
603         * doc/sdccman.lyx: documented --xstack-loc,
604           elaborated a bit more on interrupts and pitfalls,
605           removed "setjmp/longjmp unsupported",
606           documented some unsupported C99 features
607         * src/SDCCmain.c (linkEdit): adapted default lib path for --stack-auto
608         * src/SDCCpeeph.c (readRules): inserted patch 1367130 for finding missing
609           if, thanks Hubert Sack
610         * src/mcs51/gen.c (genEndFunction): enabled "pop psw" for regbank 0 isr
611         * support/regression/Makefile.in: test-mcs51-stack-auto no longer needs to
612           make make_library
613         * support/regression/get_ticks.py: new, get cpu cycles and code size, so
614           regression tests can report resource usage (rfe 700441)
615         * support/regression/collate-results.py: report resource usage
616         * support/regression/ports/ds390/spec.mk,
617         * support/regression/ports/hc08/spec.mk,
618         * support/regression/ports/mcs51/spec.mk,
619         * support/regression/ports/ucz80/spec.mk: run sim output through get_ticks
620         * support/regression/ports/ds390/uCsim.cmd,
621         * support/regression/ports/hc08/uCsim.cmd,
622         * support/regression/ports/mcs51/uCsim.cmd,
623         * support/regression/ports/ucz80/uCsim.cmd: inserted "state" to report time
624         * support/regression/ports/mcs51-stack-auto/spec.mk: no need to build the
625           library, use the default one
626         * support/regression/ports/mcs51-xstack-auto/spec.mk: inserted rules for
627           building the library
628
629 2005-12-06 Maarten Brock <sourceforge.brock AT dse.nl>
630
631         * config.dsp: added dependency on .version and configure_vc.awk
632         * device/include/setjmp.h: updated for --stack-auto and --xstack
633         * device/include/mcs51/at89c51snd1c.h: corrected line endings
634         * device/include/mcs51/XC866.h: added, thanks Llewellyn van Zyl
635         * device/lib/_setjmp.c: updated for --stack-auto and --xstack
636         * device/lib/libsdcc.lib: added _setjmp
637         * src/SDCCast.c (createIvalCharPtr): fixed warnings,
638           (decorateType): fixed bug 1372851,
639           (optimizeGetHbit): fixed warning
640         * src/SDCCglue.c (printIvalChar, printIvalArray): adapted for flexible
641           array initialisation
642         * support/regression/tests/bug1057979.c: added test for bug 1358192
643         * support/regression/tests/setjmp.c: added, test for setjmp/longjmp
644
645 2005-12-03 Borut Razem <borut.razem AT siol.net>
646
647         * support/scripts/sdcc.nsi: added /SOLID option to "SetCompressor lzma"
648           command since the NSIS was upgraded to version 2.11 on CF x86-linux2
649
650 2005-11-29 Bernhard Held <bernhard AT bernhardheld.de>
651
652         * src/SDCCast.c (createIvalStruct, createIvalArray, createIvalPtr,
653         createIval): implement symbol independant "flexible array member",
654         (createIvalCharPtr): implemented flexible array initialisation with a
655         string
656         * src/SDCCsymt.c (copyStruct): removed,
657         (getSize): fixed misleading comment,
658         (getAllocSize): removed, the additional allocation size is now in
659         sym->flexArrayLength,
660         (checkStructFlexArray): new, syntax checks for flexible array members,
661         (compStructSize): added syntax checks for "flexible array members"
662         (copyStruct): removed,
663         (copyLinkChain): removed inefficient fix for bug 770487
664         * src/SDCCglue.c (emitRegularMap): getAllocSize has been removed
665         * src/SDCCsymt.h: added structdef.b_flexArrayMember and
666         symbol->flexArrayLength
667         * src/SDCCerr.c,
668         * src/SDCCerr.h: added W_INVALID_FLEXARRAY, W_C89_NO_FLEXARRAY,
669         E_FLEXARRAY_NOTATEND and E_FLEXARRAY_INEMPTYSTRCT
670         * support/regression/tests/structflexarray.c: added
671         * support/valdiag/tests/structflexiblearray.c: added
672
673 2005-11-29 Bernhard Held <bernhard AT bernhardheld.de>
674
675         * src/SDCCast.c (decorateType): fixed bug 1368489
676         * support/Util/SDCCerr.c,
677         * support/Util/SDCCerr.h: added warning W_CMP_SU_CHAR
678
679 2005-11-28 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
680
681         * device/include/mcs51/at89c51snd1c.h: added file submitted by
682           Weston T. Schmidt <schmidtw AT users.sourceforge.net>, patch #1368001
683
684 2005-11-27 Borut Razem <borut.razem AT siol.net>
685
686         * support/cpp2/cppinit.c, support/cpp2/cpplib.h, support/cpp2/mkdeps.c,
687           support/cpp2/mkdeps.h: added command line option
688           -obj-ext=<extension> to SDCPP to define object file externion, used
689           for generation of make dependencies (-M)
690         * src/SDCCmain.c: pass -obj-ext=<extension> to SDCPP
691
692 2005-11-26 Borut Razem <borut.razem AT siol.net>
693
694         * support/scripts/sdcc.nsi: added small-stack-auto libraries,
695           added missing device/lib/mcs51/crt*.asm, pic and pic16 sources,
696           added pic and pic16 libraries
697
698 2005-11-26 Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
699
700         * device/include/float.h: Corrected typo in prototype of __fsgt
701
702 2005-11-25 Borut Razem <borut.razem AT siol.net>
703
704         * sdcc/device/lib/Makefile.in, sdcc/device/lib/incl.mk:
705           added creation of model-mcs51-stack-auto libraries
706
707 2005-11-24 Bernhard Held <bernhard AT bernhardheld.de>
708
709         * src/SDCCsymt.c (copyLinkChain): fixed bug 770487, copy structdef
710         and fields-list too
711         * src/SDCCast.c (createIvalArray): removed obsolete comment
712
713 2005-11-24 Borut Razem <borut.razem AT siol.net>
714
715         * sdcc/device/lib/Makefile.in: remove all unnecessary files, 2nd try...,
716           added missing device/lib/mcs51/crt*.asm sources
717
718 2005-11-23 Bernhard Held <bernhard AT bernhardheld.de>
719
720         * src/SDCCast.c (createIvalCharPtr): fixed bug 1348271
721
722 2005-11-22 Maarten Brock <sourceforge.brock AT dse.nl>
723
724         * device/lib/_fs2schar.c,
725         * device/lib/_fs2sint.c,
726         * device/lib/_fs2slong.c: optimized inline asm
727
728 2005-11-21 Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
729
730         * device/lib/_fs2slong.c, device/lib/_fs2sint.c, device/lib/_fs2char.c:
731           Better handling of floats between -1.0 and 0.0.
732
733 2005-11-20 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
734
735         * src/mcs51/peeph.def: added missing "if"s as noted by Hubert Sack.
736           (the missing "if"s prohibited removal of redundant labels)
737
738 2005-11-19 Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
739
740         * device/lib/_fs2slong.c, device/lib/_fs2sint.c, device/lib/_fs2char.c:
741           Properly convert floats between -1.0 and 0.0 to long, int, and char
742           types (max integer value of negative floats tends to zero).
743         * device/lib/modff.c, device/lib/ceilf.c, device/lib/floorf.c:
744           Removed changes made so to work properly with floats between
745           -1.0 and 0.0, as the problem is fixed in _fs2slong.c, _fs2sint.c,
746           and _fs2char.c
747
748 2005-11-18 Bernhard Held <bernhard AT bernhardheld.de>
749
750         * src/SDCCcse.c (ReplaceOpWithCheaperOp): minor fix for debugging only
751         * src/mcs51/gen.c (genUnpackBits): better code and a fix,
752         (genCast) cosmetic change
753         * src/ds390/gen.c (genUnpackBits, ): ported from mcs51
754         * src/ds390/ralloc.c (packRegsForAssign): ported fix for bitfields
755         from mcs51
756         * support/regression/tests/bitfields (testSignedBitfields): added
757
758 2005-11-18 Borut Razem <borut.razem AT siol.net>
759
760         * sdcc/device/lib/Makefile.in: remove all unnecessary files
761         * device/lib/pic/Makefile.rules, device/lib/pic16/Makefile.subdir:
762           introduced SILENT option to make building of pic16 libraries less
763
764 2005-11-18 Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
765
766         * device/lib/modff.c, device/lib/ceilf.c, device/lib/floorf.c:
767           Now they work properly with floats between -1.0 and 0.0
768         * device/lib/printf_large.c: Removed temporary patch for bug 1358192
769
770 2005-11-18 Maarten Brock <sourceforge.brock AT dse.nl>
771
772         * src/SDCCicode.c (printOperand): added missing else
773
774 2005-11-18 Bernhard Held <bernhard AT bernhardheld.de>
775
776         * src/SDCCsymt.c (computeType): fixed bug 1358192: added missing else,
777         reformatted for better readability
778         * src/mcs51/gen.c (genUnpackBits): initial, incomplete support for
779         signed bitfields
780
781 2005-11-17 Borut Razem <borut.razem AT siol.net>
782
783         * device/lib/pic16/Makefile.rules, device/lib/pic16/Makefile.subdir:
784           introduced SILENT option to make building of pic16 libraries less
785           verbose - used for nightly snapshot build
786         * doc/sdccman.lyx: documented that SDCDB and ucSim are currently not
787           available on Win32 platforms.
788         * sdcc/device/lib/Makefile.in: added library sources for mcs51, small,
789           medium, large, pic and pic16
790
791 2005-11-16 Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
792
793         * device/lib/printf_large.c: Temporary patch for bug 1358192:
794           printf("%f"...) sets fraction to zero.
795
796 2005-11-16 Raphael Neider <rneider AT web.de>
797
798         * src/pic/pcode.c (LinkFlow): handle empty flows correctly,
799           fixes #1357221
800         * src/pic/gen.c (genIfx): implemented for CARRY bit
801         * src/pic16/gen.c (genAssign,genCast): fixed assigning/casting
802           to generic pointers, fixes #1357332,
803           (pic16_movLit2f): NEW,
804           (pic16_storeForReturn,genDataPointerSet): use pic16_movLit2f
805
806 2005-11-14 Maarten Brock <sourceforge.brock AT dse.nl>
807
808         * src/SDCCmain.c (parseCmdLine): fixed bug 1356800, thanks rsudjian
809
810 2005-11-11 Raphael Neider <rneider AT web.de>
811
812         * src/pic/gen.c: handle FPOINTERS like POINTERS everywhere
813         * src/pic16/gen.c (pic16_derefPtr): now works for non-pointers as well,
814           compute pointer's type from operand,
815           (genUnpackBits,genPackBits): handle FPOINTERS correctly, re-indented,
816           improved single bit reads, fixes bug #1353379
817
818 2005-11-09 Borut Razem <borut.razem AT siol.net>
819
820         * support/scripts/sdcc.nsi: added lib/pic to the package
821
822 2005-11-08 Maarten Brock <sourceforge.brock AT dse.nl>
823
824         * src/SDCCval.c (valUnaryPM): fixed bug 1350699
825
826 2005-11-06 Maarten Brock <sourceforge.brock AT dse.nl>
827
828         * support/regression/tests/bug1348008.c: added
829         * src/mcs51/gen.c (saveRBank, unsaveRBank): fixed bug 1348008
830         * support/regression/tests/bug1337835.c: updated comment
831
832 2005-11-06 Borut Razem <borut.razem AT siol.net>
833
834         * sim/ucsim/error.cc, sim/ucsim/errorcl.h,
835           sim/ucsim/sim.src/stack.cc, sim/ucsim/sim.src/stackcl.h,
836           sim/ucsim/sim.src/uc.cc, sim/ucsim/sim.src/uccl.h,
837           sim/ucsim/sim.src/mem.cc, sim/ucsim/sim.src/memcl.h,
838           sim/ucsim/cmd.src/set.cc, sim/ucsim/cmd.src/show.cc:
839           dynamic construction of cl_error_class and derivates - 2.nd try
840
841 2005-11-05 Borut Razem <borut.razem AT siol.net>
842
843         * sim/ucsim/sim.src/error.cc: fixed uninitialized class member variable
844           bug, which caused Bus Errors on sparc solaris
845
846 2005-11-04 Borut Razem <borut.razem AT siol.net>
847
848         * sim/ucsim/error.cc, sim/ucsim/errorcl.h,
849           sim/ucsim/sim.src/stack.cc, sim/ucsim/sim.src/stackcl.h,
850           sim/ucsim/sim.src/uc.cc, sim/ucsim/sim.src/uccl.h,
851           sim/ucsim/sim.src/mem.cc, sim/ucsim/sim.src/memcl.h,
852           sim/ucsim/cmd.src/cmdconf.cc: dynamic construction of cl_error_class
853           and derivates to resolve the initialization problem on OSX
854
855 2005-11-02 Borut Razem <borut.razem AT siol.net>
856
857         * sim/ucsim/cmd.src/cmdutil.cc, sim/ucsim/cmd.src/newcmd.cc:
858           corrected typo - #include <winsock2.h>
859
860 2005-11-02 Maarten Brock <sourceforge.brock AT dse.nl>
861
862         * src/asm.c (printILine): always close tmpFile, thanks Beau E. Cox,
863           (_asxxxx_mapping): added org directive for future enhancements
864
865 2005-11-01 Borut Razem <borut.razem AT siol.net>
866
867         * sim/ucsim/app.cc, sim/ucsim/cmd.src/cmdutil.cc, sim/ucsim/cmd.src/newcmd.cc:
868           enabled sockets on WIN32
869         * sim/ucsim/cmd.src/newcmd.cc: fixed bug with uninitialized variables
870
871 2005-10-31 Borut Razem <borut.razem AT siol.net>
872
873         * support/regression/generate-cases.py: escape backslashes in {testcase}:
874           WIN32 backslash path delimiters should be escaped when used in C strings
875         * support/regression/tests/bitfields.c: exclude failing assertions for
876           __CYGWIN32__ and __MINGW32__ hosts
877
878 2005-10-30 Borut Razem <borut.razem AT siol.net>
879
880         * src/SDCCutil.c: corrected double comparison typo
881
882 2005-10-30 Maarten Brock <sourceforge.brock AT dse.nl>
883
884         * device/lib/medium/Makefile: added for new memory model medium
885         * device/include/asm/mcs51/features.h: updated for medium/pdata
886         * device/include/mcs51/c8051f120.h: added sfr16/sfr32 definitions,
887           added Multiply & Accumulate sbit's and MAC0_PAGE define
888         * device/include/mcs51/c8051f300.h: added sfr16 definitions
889         * device/include/mcs51/c8051f310.h: added sfr16 definitions
890         * device/lib/_mullong.c: update for medium model
891         * device/lib/incl.mk: added medium model
892         * doc/sdccman.lyx: documented medium model
893         * src/SDCCast.c (isBitAndPow2): simplified using updated powof2
894         * src/SDCCicode.c (geniCodeMultiply, geniCodeDivision): use updated powof2
895         * src/SDCCmain.c (optionsTable, linkEdit): enabled medium model
896         * src/SDCCmem.c (allocIntoSeg): set iaccess for pdata symbols,
897           (allocParms): set SCLS and OCLS to pdata for medium model
898         * src/SDCCsymt.c (processFuncArgs): use default_local_map and set iaccess
899           for pdata,
900           (powof2): return <0 if not power of 2
901         * src/avr/gen.c (genBitWise): use updated powof2
902         * src/mcs51/gen.c (genMinusDec): use acc if necessary,
903           (shiftR2Left2Result): small optimization in setup, save acc when storing,
904           (shiftLLeftOrResult): use B if necessary
905         * src/mcs51/main.c (_mcs51_finaliseOptions, mcs51_port): added medium model
906         * src/mcs51/peeph.def: renamed 226 to 226.b, added 226.a
907         * src/pic/main.c (_pic14_do_link): made void parameter list explicit
908         * support/regression/Makefile.in: added test-mcs51-medium
909         * support/regression/ports/mcs51-medium/spec.mk: added to test medium model
910
911 2005-10-28 Bernhard Held <bernhard AT bernhardheld.de>
912
913         * src/SDCCsymt.c (compStructSize): make bitfields without (un)signed
914         specifier unsigned
915         * device/lib/time.c (mktime): fixed bug 1334315
916
917 2005-10-28 Raphael Neider <rneider AT web.de>
918
919         * device/include/pic/p16f_common.inc: added common declarations
920         * src/pic/ralloc.c (initStack): moved regs *r to block start for Alpha
921
922 2005-10-27 Maarten Brock <sourceforge.brock AT dse.nl>
923
924         * src/mcs51/gen.c (getTempRegs): return 0 if not enough registers found,
925           (aopPutUsesAcc): added to predict accumulator use,
926           (assignResultValue): save acc if necessary,
927           (genMinusDec): store result if indirectly addressed,
928           (genDivOneByte):  save acc if necessary,
929           (movLeft2Result): bugfix if left already in acc,
930           (genAnd, genOr, genXor, shiftL2Left2Result, shiftR2Left2Result): pay more
931             attention to accumulator use (esp. pdata),
932           (genReceive): receive pdata correctly
933         * src/SDCCicode.c (isOperandInPagedSpace): added to detect pdata operands
934         * src/SDCCicode.h: added isOperandInPagedSpace prototype
935
936 2005-10-27 Raphael Neider <rneider AT web.de>
937
938         * doc/sdccman.lyx: corrected version (should be 2.5.4 not 2.5.5)
939
940 2005-10-27 Raphael Neider <rneider AT web.de>
941
942         * .version: changed version to 2.5.4
943         * doc/sdccman.lyx: changed version to 2.5.4, added some remarks to PIC14
944         * device/lib/pic/libsdcc/{_mulint.c,_mullong.c}: use unsigned literals,
945           (_divschar.c,divuchar.c,_mulchar.c,_modschar.c,_moduchar): NEW,
946             arithmetics support routines
947         * device/lib/pic/Makefile.rules: have assembler sources preprocessed
948         * device/lib/Makefile.in: also create installdir for pic
949
950         * src/SDCCopt.c (cnvToFcall): mark support routines `extern' for
951           pic14 port as well
952         * src/pic/device.c (dump_sfr): rewritten to delegate register
953           placement to the linker (use `extern sym' rather than sym EQU addr),
954           (validAddress): fixed to check last specified address
955         * src/pic/gen.c (aopForSym): added code to deal with array (useless?),
956           (popGetLit): truncate literal value to 8 bit,
957           (popGet): moved assert to more appropriate place
958           (popGetExternal): create pCode operand from and mark the according
959             symbol as being `extern'
960           (popGetAddr): added sanity check on immediate's offset, provide
961             GPOINTER tag on demand
962           (aopPut): fixed for immediates,
963           (mov2w_op): move operand's address or contents to WREG (depending on
964             operand type), safer variant of mov2w,
965           (movwf,call_libraryfunc): NEW, handy abbreviations,
966           (get_argument_pcop,get_return_val_pcop,pass_argument,
967           get_returnvalue): interface for accessing function parameters and
968             return values,
969           (assignResultValuei,genRet): use new parameter/return value interface
970           (pic14_getDataSize): back to old version handling generic pointers,
971           (pic14_toBoolean,genNot,genCpl,genCmpEq,genOrOp): heavily rewritten,
972             provided implementation and/or fixed old one,
973           (genMultOneByte,genDivOneByte,genModOneByte): implemented as library
974             calls, removed legacy 8051 reference code
975           (AccLsh,AccRsh): rewritten and fixed to deal with signed operands
976           (loadSignToC): NEW, move the operands sign bit to CARRY,
977           (genGenericShift): NEW, replaces genLeftShift, genRightShift and
978             genRightShiftSigned, accepts negative shift counts,
979           (setup_fsr): load FSR and adjust IRP (indirect memory access),
980           (emitPtrByteGet,emitPtrByteSet): rewritten, now works with
981             generic pointers, __data pointers and __code pointers,
982           (genUnpackBits,genPackBits): rewritten to work with generic pointers
983             and signed bitfields, limit bitfields to 8 bit,
984           (genDataPointerGet): fixed number of bytes read,
985           (genGenPointerGet,genConstPointerGet): fixed bitfield access,
986           (genPointerGet,genPointerSet): fixed handling of __code pointers,
987             pointers to constant data are no longer assumed to point to __code
988             space, removed invalid pointer types,
989           (bitpatternFromVal): retrieve the PICs representation of an integer
990             or float literal,
991           (genDataPointerSet): fixed assigning to po_immediate operands,
992           (genGenPointerSet): implemented as library call,
993           (genIfx): fixed incorrect condition,
994           (genAddrOf): limit generic pointers' addresses to 2 bytes,
995             provide GPOINTER tag according to destination's storage class,
996           (genCast): added code to handle casting to generic pointers, added
997             sign-/zero extension of the result
998           (aop_isLitLike,op_isLitLike): fixed handling of immediates
999         * src/pic/gen.h: added macros to access IRP bit in STATUS register
1000         * src/pic/genarith.c (genAddLit): use min(result's,left's) size, sign
1001           extend the result
1002         * src/pic/glue.c (is_shared_address,is_shared): check whether a given
1003           address/register resides in the shared banks
1004           (emitSymbolToFile): improved to handle global and `pinned' symbols,
1005             put all variables into separate sections (have the linker arrange
1006             them)
1007           (picglue): put init code and interrupt handlers in separate sections
1008         * src/pic/main.c: added port specific options table, modified to PORT
1009           structure to make GPOINTERs 3 byte, added pic14_options
1010           (_pic14_do_link): private linking routine (update paths to libraries,
1011             add libsdcc.lib by default)
1012         * src/pic/main.h: declare pic14_options
1013         * src/pic/pcode.c: fixed instructions i/o relations,
1014           (RegCond): reverted to correct version,
1015           (newpCodeOpLit): truncate literals to 8 bit,
1016           (genericPrint): added debug output,
1017           (getRegFromInstruction): fixed for various operand types, simplified
1018           (BuildFlow): fixed broken handling of isntructions with labels
1019           (LinkFlow): start at last instruction in flow (skip trailing comments),
1020             pass the flow on to the next instruction after CALL
1021           (pCodeReplace): NEW, replace a pCode and move meta data to the new one
1022           (insertPCodeInstruction): fixed inserting after a skip instruction,
1023           (DoBankSelect): fixed for labeled instructions
1024           (OptimizepBlock): honor --nopeep switch
1025           (AnalyzeFlow,ReuseReg): prevent crash on source files with no function
1026         * src/pic/pcodepeep.c (pCodePeepMatchRule): prevent NULL pointer accesses
1027         * src/pic/pcoderegs.c (regIsLocal): NEW, check visibility of a register
1028           (pCodeOptime2pCodes): allow disabling this optimization via
1029             --no-pcode-opt due seldomly occuring bugs, fixed some conditions
1030             but is still buggy), started implementation of a dataflow based
1031             pCode optimization (CSE + dead code elimination)
1032           (pCodeRegMapLiveRangesInFlow): removed bogus inCond
1033         * src/pic/ralloc.c (initStack): renamed stack registers to STK%d, the new
1034           names are independant of the stack location and therefore portable across
1035           devices
1036
1037 2005-10-27 Maarten Brock <sourceforge.brock AT dse.nl>
1038
1039         * src/mcs51/ralloc.c (bitType): added to detect bit variables,
1040           (selectSpil): fixed bug 1337835 by not spilling bit variables
1041         * support/regression/tests/bug1337835.c: added test for this bug
1042         * src/mcs51/peeph.def: restart after rule 3.c,
1043           addded rules 263.x to optimize loading constants
1044
1045 2005-10-26 Raphael Neider <rneider AT web.de>
1046
1047         * src/SDCCsymt.c (compStructSize): allow signed bitfields for PIC ports
1048         * src/pic16/gen.c (genUnpackBits): support signed bitfields,
1049           (genAssign): emit warning when casting literals to generic pointer
1050             type, also applies when taking the address of a fixed variable,
1051           (genCast): improved casting to generic pointers
1052         * src/pic16/glue.c (pic16emitStaticSeg): fixed(?) handling of fixed
1053           extern variables, added verbose error message
1054         * device/include/pic16/{string.h,errno.h}: added #pragma library c
1055
1056 2005-10-26 Bernhard Held <bernhard AT bernhardheld.de>
1057
1058         * src/mcs51/gen.c (genMinus): fixed bug 1270906: reverse subtraction,
1059         carry must be complemented too
1060         * src/mcs51/peeph.def: addded rule 262 to remove double cpl c, which
1061         could be emitted by genMinus
1062         * src/SDCCval.c (constVal): fixed bug 1305065
1063
1064 2005-10-25 Bernhard Held <bernhard AT bernhardheld.de>
1065
1066         * src/SDCCast.c (addCast): added promotion for bit variables
1067         (decorateType): emit W_COMPLEMENT before the problem vanishes behind
1068         promotion casts + optimisation
1069         (optimizeGetWord): fix warning 'i' might be used uninitialized
1070         * src/mcs51/gen.c (genCpl): removed W_COMPLEMENT
1071         * src/ds390/gen.c (genCpl): removed W_COMPLEMENT
1072
1073 2005-10-24 Bernhard Held <bernhard AT bernhardheld.de>
1074
1075         * src/SDCCicode.c (ast2iCode): reverted to 1.224 because of regression:
1076         all chars are promoted to int; promotion should be handled in SDCCast.c
1077
1078 2005-10-15 Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
1079
1080         * device/lib/_strcmp.c: Fixed bug 1326457
1081
1082 2005-10-11 Raphael Neider <rneider AT web.de>
1083
1084         * device/lib/pic16/libio/i2c.ignore: added 1320, fixes broken builds
1085         * device/lib/pic16/libdev/pic18f1320.c: added 1320's device library
1086
1087 2005-10-05 Maarten Brock <sourceforge.brock AT dse.nl>
1088
1089         * src/SDCC.y (AT): fixed bug with sfr32 addresses when built with GCC
1090         * support/regression/tests/sfr16.c: added test for the sfr32 bug
1091
1092 2005-10-04 Raphael Neider <rneider AT web.de>
1093
1094         * device/include/pic16/pic18fregs.h, src/pic16/devices.inc,
1095           device/lib/pic16/pics.all: added pic18f1320
1096         * src/pic16/pcode.c (mnem2key): fixed prototype's argument mismatch
1097
1098 2005-09-30 Raphael Neider <rneider AT web.de>
1099
1100         * src/pic16/device.c (Pics16[]): moved device descriptions to devices.inc
1101         * src/pic16/devices.inc: NEW, provides device descriptions
1102         * src/pic16/gen.c (genInline): fixed handling of ';'-comments
1103
1104 2005-09-26 Maarten Brock <sourceforge.brock AT dse.nl>
1105
1106         * src/SDCCicode.c (operandOperation): added GETABIT, GETBYTE, GETWORD and
1107           GETHBIT
1108
1109 2005-09-25 Maarten Brock <sourceforge.brock AT dse.nl>
1110
1111         * doc/sdccman.lyx: updated Highest Order Bit documentation,
1112           documented Any Order Bit, Higher Order Byte and Higher Order Word
1113         * src/SDCC.y: added tokens GETABIT, GETBYTE, GETWORD
1114         * src/SDCCast.c (optimizeGetHbit): updated to also accept bool=expr&(1<<n),
1115           (optimizeGetAbit): new, to get any bit, not only the high bit,
1116           (optimizeGetByte): new, to get a byte from a (long) int: expr>>(8*n),
1117           (optimizeGetWord): new, to get a word from a long int: expr>>(8*n),
1118           (isConformingBody): also check GETABIT, GETBYTE, GETWORD,
1119           (decorateType): '&': also try GETABIT, GETBYTE, GETWORD optimization,
1120             RIGHT_OP: also try GETBYTE, GETWORD optimization,
1121             GETABIT, GETBYTE, GETWORD: decorate them,
1122           (isShiftRightLitVal, isBitAndPowOf2): new helper functions,
1123           (ast_print): added GETABIT, GETBYTE, GETWORD
1124         * src/SDCCcse.c (isSignedOp): added GETABIT, GETBYTE, GETWORD
1125         * src/SDCCicode.c (codeTable): added GETABIT, GETBYTE, GETWORD,
1126           (geniCodeBinary): new generic binary icode,
1127           (ast2iCode): added GETABIT, GETBYTE, GETWORD
1128         * src/port.h: updated comment for PORT.hasExtBitOp
1129         * src/mcs51/gen.c (genGetAbit): new, to get any single bit,
1130           (genGetByte): new, to get a single byte,
1131           (genGetWord): new, to get a word from a long,
1132           (gen51Code): added GETABIT, GETBYTE, GETWORD
1133         * src/mcs51/main.c (hasExtBitOp): added GETABIT, GETBYTE, GETWORD
1134
1135 2005-09-23 Raphael Neider <rneider AT web.de>
1136
1137         * configure.in, configure: have device/lib/pic configured
1138         * device/lib/Makefile.in: added model-pic14
1139         * device/lib/clean.mk: added pic/ to clean rule
1140         * device/lib/pic: added rudimentary pic14 library providing support
1141           functions for multiplication/division/generic pointer access
1142         * src/SDCCopt.c (convilong): mark support functions as extern
1143           for pic14 port as well
1144         * src/pic/gen.c (genMult): added assertions,
1145           (genpic14Code): emit warning on unhandled iCodes
1146         * src/pic/main.c (_hasNativeMulFor): return true only for 8x8 bit
1147         * src/pic/pcode.c (pCodeOpCopy),
1148         * src/pic16/pcodepeep.c (pic16_pCodeOpCopy): fixed handling of various
1149           pCodeOpReg-subtypes (PO_{STATUS,INTCON,PCL,PCLATH,PCLATU,BSR,
1150           SFR_REGISTER}), made safe for future extensions
1151         * src/pic16/pcode.c (pic16_safepCodeUnlink): allow for removal of
1152           instructions even if preceeded by SKIP instructions (also remove
1153           them); removed unused code
1154         * src/pic16/pcode.h: added arg2 to pCodeOpLit to match pCodeOpLit2,
1155           prevents leaving parts of the structure uninitialized after copying
1156
1157 2005-09-22 Maarten Brock <sourceforge.brock AT dse.nl>
1158
1159         * src/mcs51/gen.c (genMinus): fix for undetected bug introduced 3 months
1160           ago by me
1161         * support/regression/tests/addsub.c: added test for the bug
1162
1163 2005-09-21 Raphael Neider <rneider AT web.de>
1164
1165         * device/include/pic16/pic18f1220.h,
1166           device/lib/pic16/libdev/pic18f1220.c: added ECCPAS sfr and bitfield
1167         * device/lib/pic16/Makefile.rules: added missing opening paren
1168         * src/pic16/gen.c (pic16_genNot,pic16_genCpl): removed as these
1169           are provided in genutils.c,
1170           (genUminusFloat,genUminus,genCmpEq): added asserts on different
1171           operand/result sizes,
1172           (genCmp): assert on NULL pointers first, then check deref'ed values
1173         * src/pic16/genutils.c (pic16_genCpl): fixed for different operand/
1174           result size
1175
1176 2005-09-18 Raphael Neider <rneider AT web.de>
1177
1178         * src/pic16/gen.c (genFarPointerGet,genFarPointerSet): removed
1179           as these are now unused,
1180           (genPointerGet,genPointerSet): handle FPOINTERs like POINTERs
1181         * src/pic16/pcode.c (pic16_symIsSpecial): assume REG_TMPs to be
1182           local, avoids uninitialized pointer dereference on r->name
1183         * src/pic16/ralloc.c (newReg): fixed indentation
1184
1185 2005-09-13 Maarten Brock <sourceforge.brock AT dse.nl>
1186
1187         * src/SDCCval.c (constVal): fixed bug 730366
1188         * support/Util/SDCCerr.c,
1189         * support/Util/SDCCerr.h: added warning W_INVALID_INT_CONST
1190
1191 2005-09-10 Maarten Brock <sourceforge.brock AT dse.nl>
1192
1193         * as/mcs51/lkmem.c (summary2): fixed report for absolute areas (bug 1210220)
1194
1195 2005-09-09 Maarten Brock <sourceforge.brock AT dse.nl>
1196
1197         * src/mcs51/peeph.def (241.x): fixed bug when comparing generic pointers
1198
1199 2005-09-08 Maarten Brock <sourceforge.brock AT dse.nl>
1200
1201         * as/hc08/lkaomf51.c (OutputName): made name unsigned char,
1202           (hex2dec): made hex_digit unsigned char, removed ascii dependance
1203         * as/mcs51/lkaomf51.c (OutputName): made name unsigned char,
1204           (hex2dec): made hex_digit unsigned char, removed ascii dependance
1205         * as/mcs51/lkarea.c (lnkarea2): sort absolute areas to the front
1206         * packihx/packihx.c (hexDigit): made c unsigned char
1207         * as/mcs51/lklibr.c (fndsym),
1208         * link/z80/lkgb.c (gb),
1209         * link/z80/lklibr.c (fndsym),
1210         * link/z80/lkrloc.c (relr),
1211         * sim/ucsim/libltdl/ltdl.c (load_deplibs, try_dlopen),
1212         * src/SDCC.lex (checkCurrFile, process_pragma),
1213         * src/SDCCglue.c (spacesToUnderscores),
1214         * src/SDCCmain.c (setParseWithComma, processFile),
1215         * src/asm.c (tvsprintf, printCLine),
1216         * src/avr/gen.c (emitcode, aopPut),
1217         * src/ds390/gen.c (emitcode),
1218         * src/hc08/gen.c (emitcode, emitinline),
1219         * src/mcs51/gen.c (emitcode, genInline),
1220         * src/pic/pcodepeep.c (cvt_extract_destination, cvt_extract_status,
1221           tokenizeLineNode),
1222         * src/pic/ralloc.c (debugLog),
1223         * src/pic16/pcodepeep.c (cvt_extract_destination, cvt_extract_status,
1224           tokenizeLineNode),
1225         * src/pic16/ralloc.c (debugLog),
1226         * src/z80/main.c (_process_pragma):
1227            made all ctype.h function calls safe
1228         * src/SDCCopt.c: include math.h for fabs
1229         * src/SDCCpeeph.c: added macros ISCHARDIGIT, ISCHARSPACE and ISCHARALNUM
1230           and used them throughout the code to make ctype.h function calls safe
1231         * src/ds390/main.c (asmLineNodeFromLineNode),
1232         * src/mcs51/main.c (asmLineNodeFromLineNode): made p unsigned char*
1233         * src/pic/gen.c (DEBUGpic14_emitcode, pic14_emitcode): made lbp
1234            unsigned char*
1235         * src/pic/pcode.c (mnem2key): made mnem unsigned char*,
1236           (newpCodeAsmDir): made ctype.h function calls safe
1237         * src/pic16/gen.c (pic16_emitpcomment, DEBUGpic16_emitcode,
1238           pic16_emitcode):  made lbp unsigned char*
1239         * src/pic16/pcode.c (mnem2key): made mnem unsigned char*,
1240           (pic16_newpCodeAsmDir): made ctype.h function calls safe
1241         * src/xa51/gen.c (emitcode),
1242         * src/z80/gen.c (_emit2): made lbp unsigned char*
1243         * support/Util/MySystem.c (split_command): made cmd_line and p unsigned
1244            char*
1245
1246 2005-09-05 Raphael Neider <rneider AT web.de>
1247
1248         * src/pic16/ralloc.c (pic16_allocDirReg): use device specific
1249           access bank splitpoint
1250
1251 2005-09-05 Raphael Neider <rneider AT web.de>
1252
1253         * device/lib/pic16/libc/Makefile: added (missing) string to SUBDIRS
1254
1255 2005-09-03 Maarten Brock <sourceforge.brock AT dse.nl>
1256
1257         * .version: changed to version 2.5.3
1258         * doc/sdccman.lyx: changed version to 2.5.3,
1259           documented --codeseg and --constseg and pragma codeseg and constseg,
1260           documented bit parameters (reentrant) and bit returning
1261         * src/SDCCicode.c (geniCodeReceive): fixed (possible) bug generating
1262            currFunc->recvSize, but is this ok for all ports?
1263           (ast2iCode): result of ~ on unsigned char must be cast to int for
1264            bool to work
1265         * src/SDCCmem.c (allocGlobal, allocLocal): don't put bit returning
1266           function pointers in bit space
1267         * src/SDCCsymt.c (checkSClass): allow bit returning function pointers,
1268           (processFuncArgs): call port.reg_parm() with reentrancy info
1269         * src/port.h,
1270         * src/avr/main.c,
1271         * src/ds390/main.c,
1272         * src/hc08/main.c,
1273         * src/pic/main.c,
1274         * src/pic16/main.c,
1275         * src/xa51/main.c,
1276         * src/z80/main.c: port.reg_parm prototype extended with
1277           "bool reentrant" parameter
1278         * src/mcs51/main.c (_mcs51_regparm): use parameter reentrant instead of
1279           options.stackAuto for allocating bit register parameters
1280         * src/mcs51/gen.c (genNot): optimized complementing direct bit,
1281           (genSend): set BitBankUsed if it is,
1282           (selectRegBank): factored out of genCall for use in genPcall,
1283           (genCall): removed redundant dtype assignmen, use selectRegBank,
1284           (genPcall): handle returning in Carry properly, save in F0 if needed,
1285           (genReceive): handle bit register parameters
1286         * src/mcs51/ralloc.c (updateRegUsage): update BitBankUsed along the way,
1287           (mcs51_assignRegisters): enable bit registers for all reentrant
1288            functions and don't set BitBankUsed unconditionally
1289         * src/mcs51/peeph.def (177.d): fixed bug if %2==%3
1290         * support/regression/tests/bitvars.c: enable tests for SDCC_STACK_AUTO
1291         * support/regression/tests/funptrs.c: added tests for BOOL and for return
1292
1293 2005-08-27 Borut Razem <borut.razem AT siol.net>
1294
1295         * device/lib/Makefile.in: cp on sparc-solaris (SunOS) and on
1296         ppc-osx (Darwin) does not support -u option. It seems that it is
1297         supported only on Linux - GNU cp
1298
1299 2005-08-25 Borut Razem <borut.razem AT siol.net>
1300
1301         * sim/ucsim/gui.src/serio.src/Makefile.in,
1302           sim/ucsim/s51.src/Makefile.in, sim/ucsim/avr.src/Makefile.in,
1303           sim/ucsim/z80.src/Makefile.in, sim/ucsim/hc08.src/Makefile.in,
1304           sim/ucsim/xa.src/Makefile.in: install -s changed to 2 steps:
1305           install and strip, since the strip at /usr/ccs/bin should be used
1306           on solaris
1307
1308 2005-08-24 Borut Razem <borut.razem AT siol.net>
1309
1310         * clean.mk, device/lib/clean.mk: find on sparc-solaris does not support -maxdepth option
1311
1312 2005-08-23 Bernhard Held <bernhard AT bernhardheld.de>
1313
1314         * src/SDCCopt.c (convertToFcall): fixed modulus with divisors 1 and
1315         ffffffffu
1316
1317 2005-08-23 Maarten Brock <sourceforge.brock AT dse.nl>
1318
1319         * as/mcs51/aslink.h: completed lkrloc.c prototypes
1320         * as/mcs51/lkmain.c (link_main): fixed warning
1321         * device/include/stdbool.h: ds390 has no advanced bit support yet
1322         * src/SDCC.y: use SPEC_SHORT and renamed _signed to b_signed
1323         * src/SDCCsymt.c: use SPEC_SHORT and renamed _signed to b_signed
1324         * src/SDCCsymt.h (struct specifier): renamed _xxx bitfields to b_xxx
1325           and updated their macros
1326         * src/SDCCval.c (constVal): updated comment for renamed b_long
1327
1328 2005-08-22 Maarten Brock <sourceforge.brock AT dse.nl>
1329
1330         * as/mcs51/asdata.c: changed ctype['['] to BINOP
1331         * as/mcs51/asexpr.c (expr): added case '[' for bit access in bdata,
1332           (term): abused bit 15 of s_addr to indicate bit-addressable bytes,
1333           (oprio): set priority for '['
1334         * as/mcs51/aslink.h: added define R_BIT, and prototypes for adb_bit
1335            and adb_24_bit
1336         * as/mcs51/asm.h: added defines R_BIT and S_BIT
1337         * as/mcs51/lkarea.c (lnksect2): use T for seg BIT_BANK and overlay it
1338         * as/mcs51/lkdata.c: changed ctype['['] to BINOP
1339         * as/mcs51/lkmain.c (Areas51): rel2 contains 12 (=C) areas now,
1340           added overlayable BIT_BANK area
1341         * as/mcs51/lkmem.c (summary): add BIT_BANK to BSEG_BYTES in the report,
1342           (summary2): explain 'T' in legenda
1343         * as/mcs51/lkrloc.c: replaced old K&R style,
1344           (relr): added R_BIT processing,
1345           (errmsg): added "Bit-addressable relocation error",
1346           (adb_bit): added for converting from byte- to bit-addressable space,
1347           (adb_24_bit): added for converting from byte- to bit-addressable space
1348         * device/include/stdbool.h: changed BOOL to __bit for mcs51 as it can be
1349            used in reentrant functions now even as return value
1350         * device/lib/_gptrput.c (_gptrput): removed obsolete code
1351         * src/SDCCast.c (resultTypePropagate): also propagate AND_OP and OR_OP,
1352           (decorateType): case '!', GETHBIT, AND_OP, OR_OP: result in bool or char
1353         * src/SDCCglobl.h: added indicator BitBankUsed
1354         * src/SDCCglue.c (glue): emit area BIT_BANK with byte 'bits' and equ's for
1355            the bit registers b0-b7
1356         * src/SDCCicode.c (operandFromSymbol): removed IS_BITVAR check,
1357           (geniCodeCast): fixed bug 1263853,
1358           (geniCodeLogicAndOr): put result in bool or char,
1359           (geniCodeReceive): added parameter func for accessing the return type,
1360           (geniCodeFunctionBody): pass func to geniCodeReceive
1361         * src/SDCCmain.c: added indicator BitBankUsed
1362         * src/SDCCmem.c (allocLocal): explicitly set sclass for V_BIT
1363         * src/SDCCsymt.c (newBoolLink): added for creating a bool/bit,
1364           (checkSClass): don't put automatic bool/bit on stack,
1365           (checkFunction): removed check on function cannot return bit
1366         * src/SDCCsymt.h: added newBoolLink prototype
1367         * src/mcs51/gen.c (rb1regs): added bit registers,
1368           (movc): created for assigning to carry,
1369           (pushReg, popReg): created for pushing registers,
1370           (sameRegs): check both AOP_REG and AOP_CRY types,
1371           (aopOp): handle bit registers,
1372           (aopPut): optimization no self-assign,
1373           (saveRegisters): push reg->base (bits) only once for bit registers,
1374            and use pushReg,
1375           (unsaveRegisters): pop reg->base only once and use popReg,
1376           (assignResultValue): added parameter func and return in carry for bits,
1377           (genIpush): optimization no reload in A if not changed,
1378           (genSend): bit parameters in reentrant functions are passed in bit
1379            registers by first assigning to bits in B, then save registers and
1380            copy B to bits,
1381           (genCall): handle returning in Carry properly, save it in F0 if needed,
1382           (genPcall): updated assignResultValue call, this is not safe yet for bit
1383            returning function !!!
1384           (genFunction): don't generate equ's for bit registers and use pushReg,
1385           (genEndFunction): take care of bit returning functions and use popReg,
1386           (genRet): return bit in Carry,
1387           (genIfx): optimize bit registers and other directly addressable bits,
1388           (genReceive): updated assignResultValue call
1389         * src/mcs51/main.c (_mcs51_reset_regparm): added regBitParmFlg,
1390           (_mcs51_regparm): allow passing of upto 8 bit parameters in bit
1391            registers when using stack-auto
1392         * src/mcs51/ralloc.c (_G): added allBitregs,
1393           (regs8051): added the bit registers,
1394           (createStackSpil): use macro IS_BIT,
1395           (getRegBit): added to allocate a bit register, else spill,
1396           (getRegBitNoSpil): added to allocate a bit register, else a gpr,
1397           (updateRegUsage): factored out to ease stepping while debugging,
1398           (serialRegAssign): use updateRegUsage, only spill bits if necessary,
1399            also allocate bit registers,
1400           (fillGaps): handle bit registers,
1401           (findAllBitregs): added to create bit vector with all bit registers,
1402           (mcs51_allBitregs): returns this bit vector,
1403           (mcs51_assignRegisters): when using stack-auto use bit registers for
1404            passing parameters and creating local variables
1405         * src/mcs51/ralloc.h: added B0_IDX..B7_IDX and prototype mcs51_allBitregs
1406
1407 2005-08-22 Borut Razem <borut.razem AT siol.net>
1408
1409         * device/lib/Makefile.in: replaced find option -or with -o
1410           to make it run on solaris
1411
1412 2005-08-22 Raphael Neider <rneider AT web.de>
1413
1414         * src/pic16/gen.c (pic16_loadFromReturn): added check for AOP_PCODE,
1415           fixes #1265442 (crash on Solaris)
1416
1417 2005-08-20 Borut Razem <borut.razem AT siol.net>
1418
1419         * configure, configure.in: added tests for libsocket and libnsl libraries,
1420           requred by sdcdb on sparc-solaris; generate support/regression/Makefile
1421           from support/regression/Makefile.in
1422         * support/regression/Makefile.in: added
1423         * device/lib/pic16/Makefile.common.in: force make to use bash shell
1424         * sim/ucsim/libtool: regenerated on sparc-solaris
1425         * sim/ucsim/avr.src/Makefile.in, sim/ucsim/hc08.src/Makefile.in,
1426           sim/ucsim/s51.src/Makefile.in, sim/ucsim/xa.src/Makefile.in,
1427           sim/ucsim/z80.src/Makefile.in: removed GNU ld specific linker options
1428           -Wl,--start-group and -Wl,--end-group to enable ucsim compilation on
1429           sparc-solaris, which doesn't use GNU ld linker
1430         * device/lib/Makefile.in: cp on sparc-solaris (SunOS) does not support -u option
1431         * as/Makefile: find on sparc-solaris does not support -maxdepth option
1432
1433 2005-08-19 Maarten Brock <sourceforge.brock AT dse.nl>
1434
1435         * src/mcs51/peeph.def: updated comments
1436
1437 2005-08-16 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
1438
1439         * device/lib/_gptrget.c,
1440         * device/lib/_gptrput.c: slightly shorter
1441         * doc/sdccman.lyx: incremented version
1442         * src/mcs51/peeph.def: moved peephole comments to the line of first
1443           change to better keep line correlation, reanimated 186.e
1444         * src/mcs51/peeph.def: renamed similar peepholes by using suffixes
1445
1446 2005-08-16 Slade Rich <slade_rich AT users.sourceforge.net>
1447
1448         * src/pic/pcode.c : Pasted ".line" assembly directives patch from
1449           David Saxton with quotes around file name.
1450
1451 2005-08-15 Borut Razem <borut.razem AT siol.net>
1452
1453         * support/regression/tests/bitfields.c, support/regression/tests/bitvars.c,
1454           support/regression/tests/bitwise.c, support/regression/tests/literalop.c,
1455           support/regression/tests/rotate.c, support/regression/tests/zeropad.c:
1456           make tests run on x86_64 platform
1457
1458 2005-08-13 Raphael Neider <rneider AT web.de>
1459
1460         * device/lib/pic16/Makefile.subdir: weakened clean-intermediate rule
1461           as it might be executed DURING a build (parallel make is wonderful)
1462
1463 2005-08-13 Raphael Neider <rneider AT web.de>
1464
1465         * device/lib/Makefile.in (port-specific-objects-pic16):
1466           revert to cp $(PORT)/bin/*.* $(PORTDIR)
1467         * device/lib/pic16/Makefile: added .PHONY targets, removed builddir
1468           dependency
1469         * device/lib/pic16/Makefile.rules: build subdirs before creating
1470           the library, removed builddir rule, create $(builddir) early in
1471           recurse rule, use empty recurse rule for leaf directories
1472         * device/lib/pic16/Makefile.subdir: added phony targets, ignore
1473           mkdir errors (race condition), removed duplicate suffix "hex"
1474           from clean rules
1475         * device/lib/pic16/libdev/Makefile: recursive make via + and $(MAKE)
1476         * device/lib/pic16/libio/Makefile: create sub-make's builddir early,
1477           prevents mkdir -p from aborting on Alpha
1478
1479 2005-08-12 Raphael Neider <rneider AT web.de>
1480
1481         * src/pic16/glue.c (pic16_print(G)PointerType): do not flush
1482           db-statements in order to allow for arrays of pointers in code
1483           sections to be placed without interspersed 0-padding, fixes
1484           bug #1256215
1485         * (emitStatistics): fixed division by zero for pic18f1220
1486         * src/pic16/pcode.c: buffer (up to) 12 DB directives to allow for
1487           unpadded writing of 8-bit, 16-bit, 24-bit and 32-bit values
1488         * (pic16_emitDS): respect DB_ITEMS_PER_LINE
1489         * (pic16_pCodeConstString): keep track of already emitted string
1490           literals to prevent "duplicate definitions of symbol _str_NR"
1491         * src/pic16/ralloc.c (pic16_allocRegByName): removed not so helpful
1492           debug message
1493         * device/lib/Makefile.in: ignore failing PIC16 library builds
1494         * device/lib/pic16/Makefile: do not build if gputils are missing
1495         * device/lib/pic16/Makefile.common.in: do not enforce MAKEFLAGS=-s
1496
1497 2005-08-10 Raphael Neider <rneider AT web.de>
1498
1499         * device/lib/Makefile.in: fixed copying pic16 libraries (broken by
1500           my last commit)
1501
1502 2005-08-10 Raphael Neider <rneider AT web.de>
1503
1504         * src/*.c, src/pic16/{gen.c,glue.c,main.c}: applied Vangelis
1505           Rokas' patch to add the new fixed point type "__fixed16x16"
1506         * device/lib/pic16/libsdcc/fixed16x16: added Vangelis' support
1507           functions for __fixed16x16 arithmetics
1508         * device/lib/pic16: reimplemented the build system to support
1509           a separate build directory, better handling of libio (create
1510           the library in a separate subdir for each architecture) and
1511           easier configuration (centralized in Makefile.common)
1512
1513 2005-08-07 Raphael Neider <rneider AT web.de>
1514
1515         * src/pic16/gen.c (genrshTwo): fixed sign extension
1516         * src/pic16/device.c: added pic18f2320, 4220 and 4320
1517         * device/include/pic16/pic18f2220.h: changed some bit definitions,
1518           added T0CONbits
1519         * device/include/pic16/pic18f4220.h: NEW, header for
1520           pic18f4220 and pic18f4320
1521         * device/include/pic16/pic18fregs.h: added new devices,
1522           embraced Nop(), ClrWdt(), Sleep() and Reset() with do {} while(0)
1523         * device/include/pic16/signal.h: resolved name clashes
1524           on bit definitions, added DEF_HANDLER2(sig1,sig2,handler)
1525           to also allow testing for interrupt enable bits, added
1526           comments on how to use the macros
1527         * device/lib/pic16/libdev/pic18f2220.c: added T0CONbits
1528         * device/lib/pic16/libdev/pic18f{2320,4220,4320}.c: NEW,
1529           register definitions for the devices
1530         * device/lib/pic16/pics.all: added new devices
1531         * device/lib/pic16/libc/stdlib/calloc.c: fixed zeroing
1532           allocated memory
1533         * device/lib/pic16/libc/stdlib/memfree: do not count
1534           the block header as free memory
1535         * device/lib/pic16/libc/stdlib/memmisc.c (_initHeap):
1536           simplified and added missing end-of-blocklist-marker
1537           (reported by Peter Onion, fixes #1252814)
1538         * (_mergeHeapBlock): fixed loop condition
1539         * device/lib/pic16/libc/stdlib/realloc.c: return NULL for
1540           len==0, restructured code
1541         * device/lib/pic16/libc/stdlib/{malloc,memfreemax}.c: cleaned
1542           up a bit, reduced bitfield accesses, prevent endless loops
1543           in case of heap corruption
1544         * device/lib/pic16/libc/stdlib/x_ftoa.c: disabled
1545           "unreferenced arguments/must return a value" warnings
1546         * device/lib/pic16/libio/usart/ubaud.c (usart_baud):
1547           replaced BAUDREG with SPBRG
1548         * device/lib/pic16/libsdcc/lregs/{lrrest.c,lrst.c},
1549           device/lib/pic16/debug/gstack/gstack.c: replaced
1550           _naked, _asm, _endasm with __naked, __asm, __endasm
1551
1552 2005-08-05 Raphael Neider <rneider AT web.de>
1553
1554         * src/pic16/gen.c (pic16_aopGet): fixed handling of offsets in
1555           AOP_PCODE operands, fixes multibyte union-bitfield-accesses
1556
1557 2005-08-05 Borut Razem <borut.razem AT siol.net>
1558
1559         * device/lib/Makefile.in: added missing ';'
1560         * configure: removed ^M characters
1561
1562 2005-08-04 Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
1563
1564         * device/include/mcs51/at89c51ed2.h, device/include/mcs51/p89v51rd2.h,
1565           device/include/mcs51/at89s53.h: changed to GNU Lesser General Public
1566           License
1567
1568 2005-08-04 Borut Razem <borut.razem AT siol.net>
1569
1570         * configure.in: pic16 libraries build 2nd try - enable running
1571           configure in device/lib/pic16
1572         * configure: regenerated from configure.in
1573         * device/lib/Makefile.in: create $(PORT)/bin directory
1574
1575 2005-08-03 Raphael Neider <rneider AT web.de>
1576
1577         * src/pic16/gen.c (pic16_derefPtr): NEW, single place
1578           to get/set values via pointers
1579         * (genUnpackBits,genPackBits): changed detection of
1580           ptr->bitfield vs. sym.bitfield, fixed access via generic
1581           pointers, removed dead (wrong) code for multibyte bitfields
1582         * (genNearPointerGet, genGenPointerGet): removed useless code,
1583           fixed bitfield detection, fixes #1250594
1584         * (genNearPointerSet): removed useless code
1585         * src/pic16/gen.h: renamed pic16_emitpcode to pic16_emitpcode_real
1586           and introduced macro pic16_emitpcode that conditionally emits
1587           the origin of the following pCode (useful for debugging SDCC)
1588         * src/pic16/pcode.c: changed (and disabled) some debug outputs
1589         * (createDefmap): fixed handling of LFSR for --optimize-df
1590
1591 2005-08-02 Borut Razem <borut.razem AT siol.net>
1592
1593         * device/lib/Makefile.in: pic16 libraries build enabled since
1594           gputils-0.13.2 are now localy installed at sourceforge's compile farm
1595
1596 2005-08-02 Raphael Neider <rneider AT web.de>
1597
1598         * src/pic16/gen.c (genPackBits): removed deprecated warning
1599         * (genGenPointerSet): fixed bitfield detection
1600
1601 2005-08-02 Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
1602
1603         * device/include/mcs51/msm8xc154s.h: Removed PT2 definition, now in 8052.h.
1604
1605 2005-07-31 Raphael Neider <rneider AT web.de>
1606
1607         * device/lib/pic16/libdev/pic18f458.c,
1608           device/include/pic16/pic18f458.h: added missing T0CONbits
1609
1610 2005-07-29 Maarten Brock <sourceforge.brock AT dse.nl>
1611
1612         * device/include/mcs51/msm8xc154s.h: added, thanks to Matthias Arndt
1613
1614 2005-07-28 Maarten Brock <sourceforge.brock AT dse.nl>
1615
1616         * src/mcs51/gen.c (operandsEqu): fixed bug 1246687
1617
1618 2005-07-23 Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
1619
1620         * device/include/mcs51/at89c51ed2.h: added.
1621
1622 2005-07-23 Raphael Neider <rneider AT web.de>
1623
1624         * src/pic/gen.h: added emitpcode macro for debugging
1625         * src/pic/gen.c (emitpcode): renamed to emitpcode_real
1626           and replace by macro adding debug information on demand
1627         * (genNot): fixed to C semantics (!0 = 1; !x = 0 iff x != 0)
1628         * (gencjne): tried to fix; replaced with correct (slower) code
1629         * (gen{Unp,P}ackBits): fixed single bit access
1630         * src/pic/pcode.c (AnalyzepCode): fixed DFPRINTF argument
1631         * src/pic/pcodepeep.c (pCodeSearchCondition): fixed finding
1632           previous instruction
1633         * src/pic/pcoderegs.c (regIsSpecial): NEW, check whether a
1634           register has to be handled with care (forbidding movement
1635           of assignments/uses, removing assignments completely, ...)
1636         * (pCodeOptime2pCodes): make use of regIsSpecial
1637         * added lots of debugging output (commented out)
1638         * src/pic/rallloc.c (deassignLRs): prevent operand registers
1639           from being reused as result UNLESS it is known to work
1640
1641 2005-07-23 Maarten Brock <sourceforge.brock AT dse.nl>
1642
1643         * support/Util/dbuf.h: include <stddef.h> for size_t
1644         * .version: changed to version 2.5.2
1645
1646 2005-07-23 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
1647
1648         * src/SDCCloop.c (loopInvariants): fixed bug #1234048
1649
1650 2005-07-22 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
1651
1652         * src/hc08/gen.c (genMinus): fixed bug #1241835,
1653           (genModOneByte): removed needless psha/pula
1654
1655 2005-07-22 Raphael Neider <rneider AT web.de>
1656
1657         * src/SDCCmain.c (linkEdit): initialized linkerScriptFileName,
1658           have PIC14 handled like PIC16, fixes broken pic14 linker calls
1659         * src/pic/gen.c (resolveIfx): do not "invent" labels
1660         * (genSkipc): changed to positive logic
1661         * (genSkipCond): removed as no longer needed
1662         * (pic14_mov2w_regOrLit,genCmp): NEW, replacement for buggy version,
1663           backport from PIC16
1664         * (genLeftShift): check operands are in different registers
1665         * src/pic/genarith.c (genPlus): replaced INCF with ADDLW as
1666           INCF does not update CARRY...
1667         * src/pic/main.c: fixed _linkCmd
1668         * src/pic/pcode.c (unlinkpCode): added inactive code
1669         * src/pic/ralloc.c (deassignLRs): keep arguments to shift operations
1670           alive (do not assign result and operand overlapping registers)
1671
1672 2005-07-22 Raphael Neider <rneider AT web.de>
1673
1674         * src/pic/device.c (dump_sfr): replaced register declaration with
1675           call to emitSymbolToFile() to avoid duplicate symbols
1676         * (assignRelocatableRegisters): do not declare external symbols
1677         * src/pic/ralloc.c (allocNewDirReg): fixed to get size of arrays
1678           right (take size of type, not etype)
1679         * (allocDirReg): fixed call to allocNewDirReg() to pass OP_SYM_TYPE
1680         * (writeUsedRegs): also dump dynDirectRegs (e.g. local variables)
1681         * (packRegsForAccUse): disabled assignment of WREG as
1682           the result reg to prevent occurence of just fixed #1235003,
1683           fixes #1242954
1684         * src/pic/glue.c (emitSymbolToFile): NEW, central place to declare
1685           symbols (avoids duplicate symbols in .asm file)
1686         * (pic14emitRegularMap): use emitSymbolToFile()
1687         * src/pic/gen.c (aopOp): fixed spillLocation handling
1688         * (gen{Unp,P}ackBits): fixed acquiring bit-operands
1689         * (genDataPointerSet): removed unneccessary variables/output
1690
1691 2005-07-22 Maarten Brock <sourceforge.brock AT dse.nl>
1692
1693         * as/mcs51/lkarea.c: enlarged codemap for banked memory
1694         * device/lib/mcs51/crtbank.asm: added # to 0x0F
1695
1696 2005-07-21 Raphael Neider <rneider AT web.de>
1697
1698         * src/pic/gen.c (aopOp): do not generate AOP_ACC operands as pic14
1699           architecture cannot handle them efficiently, fixes bug #1235003
1700         * src/pic16/device.c (pic16_dump_{u,i}section,pic16_dump_int_registers):
1701           check for empty sets before using them (fixes bug #1232190)
1702
1703 2005-07-19 Maarten Brock <sourceforge.brock AT dse.nl>
1704
1705         * as/mcs51/lkarea.c (lnkarea, lnkarea2): improved BSEG size calculation,
1706           (lnksect2): generate warnings for memory overlap
1707         * src/SDCC.lex (doPragma, process_pragma): added pragma's codeseg and
1708           constseg to set the name of these segments so you can instruct the linker
1709           to place them in banks
1710         * src/SDCCast.c (decorateType): use new macro IS_FUNCPTR()
1711         * src/SDCCglobl.h: added MODEL_HUGE to enum,
1712           added code_seg and const_seg to options
1713         * src/SDCCglue.c (emitMaps): use options.const_seg,
1714           (createInterruptVect): put interrupt vectors in segment HOME,
1715           (glue): put HOME before static segment and put the main glue in HOME,
1716           (glue): use options.code_seg
1717         * src/SDCCicode.c (geniCodeCall): use new macro IS_FUNCPTR()
1718         * src/SDCCmain.c: added option --codeseg and --constseg to set the name of
1719           these segments so you can instruct the linker to place them in banks
1720           (linkEdit): use code_loc for HOME segment which should be the first
1721           segment in code memory now
1722         * src/SDCCmem.c: fixed more stuff like bug 1238386
1723         * src/SDCCsymt.c (getSize): use generic pointer size for banked functions,
1724           (changePointer): don't change function pointers to code pointers for
1725           banked functions,
1726           (compareType): added exceptional check for banked function pointers
1727         * src/SDCCsymt.h: changed IFFUNC_ISBANKEDCALL, added IS_FUNCPTR
1728         * src/hc08/main.c (_hc08_genAssemblerPreamble): put HOME first, put CSEG
1729           after static in code memory
1730         * src/mcs51/gen.c: added aopLiteralLong prototype,
1731           (aopForSym): use getSize for functions,
1732           (genCall): generate banked calls over one trampoline __sdcc_banked_call
1733           in HOME with lsb of address in r0, msb in r1 and bank in r2, use
1734           -Wl-bBANKSEG=0xbbaaaa option to set the address (aaaa) and bank (bb) of
1735           the segment,
1736           (genPcall): use call for literal function pointers and generate banked
1737           calls over the one trampoline so there's only one place for the user to
1738           modify according to his/hers hardware,
1739           (genEndFunction): jump to __sdcc_banked_ret in HOME for banked functions,
1740           (genPlusIncr): moved check icount>4 beyond inc dptr optimization
1741         * src/mcs51/main.c: added keyword banked,
1742           (_mcs51_genExtraAreas): put HOME first followed by GSINIT, STATIC and CSEG
1743         * support/Util/SDCCerr.c,
1744         * support/Util/SDCCerr.h: added E_BANKED_WITH_CALLEESAVES, registers are
1745           needed for passing the bank and address to the trampoline
1746         * device/lib/mcs51/crtbank.asm: added for bankswitching
1747         * device/lib/mcs51/Makefile: added crtbank
1748
1749 2005-07-16 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
1750
1751         * src/SDCCcse.c (algebraicOpts): fixed loss of volatility
1752           for fields at offset 0 of a struct or union as reported
1753           on 2005-07-07 in the developer mailing list.
1754
1755 2005-07-15 Maarten Brock <sourceforge.brock AT dse.nl>
1756
1757         * src/SDCCmem.c: fixed bug 1238386
1758
1759 2005-07-12 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
1760
1761         * src/mcs51/peeph.def: added labelrefcounting for peepholes
1762           (patch #1144962), added peephole 300, enabled 259.x
1763         * doc/sdccman.lyx: removed screenshot and provided link instead
1764
1765 2005-07-05 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
1766
1767         * doc/sdccman.lyx: added section about debugging with ddd
1768         * doc/figures/ddd_example.eps: screenshot of debugging session
1769
1770 2005-07-04 Raphael Neider <rneider AT web.de>
1771
1772         * src/pic/gen.c (genPointerGet): handle pointers to CONST values
1773           like CODE pointers, fixes #1115683
1774         * src/pic/pcode.c (DoBankSelect): forget LastRegIdx during function
1775           call, fixes bugs #1232211, #1228110,
1776           fixed wrong casts to pCodeFlow from pCodeInstructions
1777
1778 2005-07-04 Raphael Neider <rneider AT web.de>
1779
1780         * src/pic/gen.c (popGet): changed assert to allow for
1781           bit operands
1782         * (popGetAddr): changed signature to provide
1783           an additional index, patched all call sites
1784         * (genCmpEq): handle literal-like operands correctly
1785         * (genAddrOf): added sanity checks on __code/__data pointers
1786         * (genAssign): added handling of symbols from __code section
1787         * (gencjne): do not generate code for comparisons whose result
1788           is neither stored nor used, fixes bug #1171114
1789         * (AccLsh, AccRsh): operate on operand instead of WREG
1790         * (shift{Left,Right}_Left2ResultLit): NEW, size independant
1791           replacement for Shift{LR}{12}Left2Result; shift (byte/int/long)
1792           by known count
1793         * rewrote complete shift-by-literal logic, commented unused
1794           functions out
1795         * (genConstPointerGet): get multiple bytes (if result size > 1),
1796           fixed handling of non-immediate addresses
1797         * (genPointerGet): handle CODE pointers like CONST pointers
1798         * (genpic14Code): insert C-SRC lines as Cource-pCodes
1799         * ({aop,op}_isLitLike): NEW, single place to decide whether an
1800           operand is to be treated as a literal or not
1801         * (mov2w,genPcall,genCmpEq),
1802           src/pic/genarith.c: use aop_isLitLike() to decide between
1803           literal/register contents
1804         * (addSign): added missing offset
1805         * src/pic/gen.h: remove newline after FENTRY/FEXIT comments,
1806           only emit comment in debug-mode,
1807           use {aop,op}_isLitLike throughout the file
1808         * src/pic/glue.c: fix initializers for pointers (work in progress)
1809         * src/pic/pcode.c (get_op): honor index on _const symbols
1810         * ({reset,dump}pCodeStatistics): NEW, estimate code size
1811         * (dumppBlock): added pCode size estimation
1812         * src/pic/ralloc.c (deassignLRs,serialRegAssign,packRegisters):
1813           check for IS_SYMOP before OP_SYMBOL'ing
1814         * fixed indentation, compacted switch-statements
1815         * (allocReg): find free register and allocate it instead of
1816           allocating new registers all the time
1817         * (deassignLRs): prevent POINTER_GET's from being assigned the same
1818           registers as its operands (necessary only for multibyte GETs)
1819
1820 2005-07-01 Raphael Neider <rneider AT web.de>
1821
1822         * src/pic/gen.h: added prototypes emitpComment, popGetAddr and
1823           debugging .asm-output macros FENTRY + FEXIT
1824         * src/pic/gen.c (Safe_vsnprintf): NEW, is there a more generic
1825           way... I wonder...
1826         * (emitpComment): NEW, printf to pCode
1827         * (popGet): added assert on too large offsets, fixed PO_IMMEDIATE's
1828           offset handling
1829         * (popGetAddr): NEW, variant of popGet to access an immediates
1830           high(er) bytes instead of the n'th byte of memory they reference,
1831           replaced popGet with popGetAddr where neccessary
1832         * (genDataPointerGet): reactivated and fixed implementation
1833         * (genNearPointerGet): enabled call to genDataPointerGet, fixes array-
1834           accesses
1835         * (genDataPointerSet): fixed multibyte assignments
1836         * (genpic14Code): fixed --i-code-in-asm handling
1837         * src/pic/genarith.c: fixed PO_IMMEDIATE issue using popGetAddr,
1838         * (genPlus): fixed index-out-of-bounds error
1839         * src/pic/pcode.c (get_op): fixed PO_IMMEDIATE's index/offset handling
1840         * src/pic/ralloc.c: added debugging output macro FENTRY2
1841         * (spillThis): fixed indentation, enbraced for-body for clarity
1842         * (rematStr): commented out as now unused
1843         * (regTypeNum): commented out special spill case (overwrites
1844           arbitrary values)
1845         * fixes bugs #1229346, #1216476 (both arrays) and #1115667 (SIGSEGV)
1846
1847 2005-06-30 Maarten Brock <sourceforge.brock AT dse.nl>
1848
1849         * doc/sdccman.lyx: documented sfr16/sfr32,
1850           added example for using storage class with function pointers
1851         * src/mcs51/gen.c (genPlusIncr): optimized small offsets from dptr
1852
1853 2005-06-28 Maarten Brock <sourceforge.brock AT dse.nl>
1854
1855         * device/lib/_gptrget.c: also push/pop _PSBANK, added # to 0x03
1856         * device/lib/_itoa.c,
1857         * device/lib/_ltoa.c: optimized codesize
1858         * src/SDCCsymt.c (checkSClass): added sanity check for sfr at addresses,
1859           but don't know how to suppress the double warning.
1860         * src/mcs51/gen.c (genPlusIncr): fixed bug when incrementing volatile int's
1861         * support/Util/SDCCerr.c,
1862         * support/Util/SDCCerr.h: added warning W_SFR_ABSRANGE for sanity check
1863
1864 2005-06-27 Maarten Brock <sourceforge.brock AT dse.nl>
1865
1866         * as/mcs51/asexpr.c (expr): disabled warning "not in .flat24 mode",
1867           fixed old K&R prototypes
1868         * as/mcs51/asout.c (outrb): always output as if generating 24bit addresses
1869         * device/lib/_gptrget.c,
1870         * device/lib/_gptrgetc.c,
1871         * device/lib/_gptrput.c: changed versions for new memory indicator values,
1872           also new versions for small generic pointers and banked generic pointers
1873         * src/port.h: added const_name
1874         * src/SDCC.lex: added keywords sfr16, __sfr16, sfr32, __sfr32
1875         * src/SDCC.y: added tokens SFR16, SFR32 and their sfr_attributes
1876         * src/SDCCcse.c (findPrevIc): check all associative operators
1877         * src/SDCCglue.c (emitMaps): use CONST_NAME if defined
1878         * src/SDCCicode.h: added macro IS_ASSOCIATIVE
1879         * src/SDCCmem.c: updated comments,
1880           set far-space to 0 for pdata, results in optimized code
1881         * src/SDCCmem.h: added macro CONST_NAME
1882         * src/SDCCsymt.h: renumerated generic pointer types GPTYPE_... thereby
1883           moving the info into the highest bits, see also gptrget/gptrput
1884         * src/src.dsp: added sdcc.ico to project files
1885         * src/avr/gen.c (genCast): fixed bug 0x%d
1886         * src/avr/main.c (avr_port): added "CONST (CODE)" for const_name
1887         * src/ds390/gen.c (aopForRemat, adjustArithmeticResult): disconnected direct
1888           relation between ptr_type and DCL_TYPE,
1889           (genCast): fixed bug 0x%d
1890         * src/ds390/main.c (ds390_port, tininative_port, ds400_port): added "CONST
1891           (CODE)" for const_name
1892         * src/hc08/gen.c (genCast): fixed bug 0x%d
1893         * src/hc08/main.c (_hc08_genAssemblerPreamble): added .area ...const_name,
1894           (hc08_port): added "CONST (CODE)" for const_name
1895         * src/mcs51/gen.c (aopForSym): optimized pushing ACC,
1896           (aopForRemat, adjustArithmeticResult): disconnected direct relation
1897           between ptr_type and DCL_TYPE,
1898           (aopGetUsesAcc, aopGet, aopPut): changed first parameter from asmop* to
1899           operand* and took AOP() inside function so sfr-ness can be checked,
1900           (all over): repaired calls to aopGetUsesAcc, aopGet, aopPut to comply with
1901           new prototype,
1902           (genFunction, genEndFunction): optimized stack setup,
1903           (genMinus): optimized for literals with ending zeroes (in bytes),
1904           (genCast): fixed bug 0x%d
1905         * src/mcs51/main.c (_mcs51_keywords): added sfr16 and sfr32,
1906           (mcs51_port): added "CONST (CODE)" for const_name
1907         * src/mcs51/peeph.def: made rule 226 more generic
1908         * src/pic/main.c (pic_port): added "CONST (CODE)" for const_name
1909         * src/pic16/main.c (pic16_port): added "CONST (CODE)" for const_name
1910         * src/xa51/main.c (xa51_port): added "CONST (CODE)" for const_name
1911         * src/z80/main.c (z80_port): added NULL for const_name,
1912           (gbz80_port): added NULL for const_name
1913         * support/regression/tests/bug663539.c,
1914         * support/regression/tests/sfr16.c: new tests
1915
1916 2005-06-25 Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
1917
1918         * device/include/mcs51/p89v51rd2.h, device/include/mcs51/at89s53.h: added.
1919
1920 2005-06-24 Raphael Neider <rneider AT web.de>
1921
1922         * device/lib/pic16/libdev/pic18f[68][567]20.c:
1923           corrected typos...
1924         * device/include/pic16/signal.h: added USBIF
1925           and SIG_USB
1926
1927 2005-06-24 Raphael Neider <rneider AT web.de>
1928
1929         * device/lib/pic16/libdev/pic18f2455.c,
1930           device/include/pic16/pic18f2455.h: NEW
1931         * device/include/pic16/pic18fregs.h,
1932           device/lib/pic16/pics.all,
1933           src/pic16/device.c: added 18f2455
1934         * device/lib/pic16/libdev/pic18f[68][567]20.c,
1935           device/include/pic16/{pic18f[68][567].h,usart.h}:
1936           replaced MULTIPLE_USARTS define with more relaible
1937           compatibility sfrs (for USART access)
1938
1939 2005-06-20 Slade Rich <slade_rich AT users.sourceforge.net>
1940
1941         * src/pic/pcode.c : Fixed problem when a string constant contains a "\r\n"
1942           and the output asm file line is printed on two lines.
1943
1944 2005-06-19 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
1945
1946         * sim/ucsim/hc08.src/inst.cc (inst_condbranch): fixed simulation of
1947           BGT, BLE, BHI, and BLS instructions
1948         * src/hc08/gen.c (outAcc, outBitC, outBitNV, genCmpLt, genCmpGt,
1949           genCmpEq): removed
1950         * src/hc08/gen.c (genCmpEQorNE, genCmp, branchopCmp, nameCmp,
1951           negatedCmp, exchangedCmp, genhc08Code): rewrite of comparison handling,
1952           fixes bug #1216342
1953         * src/hc08/peeph.def: added rules 2g - 2l for new conditional branches
1954
1955 2005-06-15 Raphael Neider <rneider AT web.de>
1956
1957         * src/pic16/NOTES: moved Vangelis from active developers to people to contact
1958         * device/include/pic16/{6520.h,8520.h}: fixed configuration bits
1959         * src/pic16/gen.c (): prevent iTemps from being considered to be in CODESPACE,
1960           fixes bug #1221120; for symbols in CODESPACE get number of bytes to read from
1961           OP_SYM_TYPE() instead of OP_SYM_ETYPE()
1962
1963 2005-06-06 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
1964
1965         * device/include/mcs51/reg764.h: Changed PB0 to PBO as requested by
1966           Marcel Telka in bug #1215704
1967
1968 2005-06-02 Slade Rich <slade_rich AT users.sourceforge.net>
1969
1970         * src/pic/pcode.c : Changed pseudo stack size to 15 to allow WSAVE to be
1971           located in shared memory bank.
1972
1973 2005-05-31 Raphael Neider <rneider AT web.de>
1974
1975         * src/pic16/{gen.c,genarith.c}: replaced sign-extension
1976           "CLRF, BTFSC <signbit>, DECF/COMF" with side-effect-free
1977           "CLRF, BTFSC <signbit>, SETF"; fixes "long>>9"
1978
1979 2005-05-27 Maarten Brock <sourceforge.brock AT dse.nl>
1980
1981         * device/lib/_strncpy.c: fixed the fix
1982
1983 2005-05-26 Raphael Neider <rneider AT web.de>
1984
1985         * src/pic16/glue.c (pic16_printIvalChar): fixed _constant_ string
1986           initializers with \0, bug #1208187
1987         * src/pic/glue.c (printIvalChar): fixed (non- and constant) string
1988           intializers with \0, bug #1208187
1989
1990 2005-05-26 Raphael Neider <rneider AT web.de>
1991
1992         * src/pic16/glue.c (pic16_printIvalChar): fixed string
1993           initializers with \0, bug #1208187
1994         * src/pic16/main.c (_process_pragma): added sanity checks
1995           for stack position and size, emit warnings when appropriate
1996
1997 2005-05-26 Maarten Brock <sourceforge.brock AT dse.nl>
1998
1999         * device/lib/_strncpy.c: fixed not filling with \0
2000
2001 2005-05-26 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
2002
2003         * src/SDCCast.c (funcOfType, funcOfTypeVarg, stringToSymbol,
2004           createFunction),
2005         * src/SDCC.y (external_definition, enumerator, parameter_declaration,
2006           compound_statement),
2007         * src/SDCCsymt.h,
2008         * src/SDCCsymt.c (addSymChain, processFuncArgs): fixed bug #1159134
2009
2010 2005-05-24 Raphael Neider <rneider AT web.de>
2011
2012         * src/pic16/glue.c (pic16_printGPointerType): fixed #1207796
2013
2014 2005-05-24 Raphael Neider <rneider AT web.de>
2015
2016         * device/include/pic16/pic18f{442,452,458}.h: fixed wrong
2017           TRISE definitions, closes bug #1162453
2018
2019 2005-05-22 Raphael Neider <rneider AT web.de>
2020
2021         * src/pic16/main.c (_process_pragma): check for missing
2022           arguments to pragmas code and udata
2023         * device/include/pic16/pic18f{2550,4331,4455,4520}.h:
2024           consistency fixes to match other headers (thanks to Jim Paris)
2025         * device/lib/pic16/libio/i2c.ignore: 18f4331 provides no I2C
2026
2027 2005-05-21 Maarten Brock <sourceforge.brock AT dse.nl>
2028
2029         * src/SDCCicode.c (isOperandEqual): fixed missing ;
2030
2031 2005-05-19 Maarten Brock <sourceforge.brock AT dse.nl>
2032
2033         * support/regression/tests/bug1198642.c: new test
2034         * src/SDCCicode.c (isOperandEqual): fixed bug 1198642
2035         * src/SDCCcse.c (findPrevIc): added comment, please have a look
2036         * support/scripts/resource.h,
2037         * support/scripts/resource.rc,
2038         * src/src.dsp: added sdcc.ico to project as icon for sdcc.exe
2039         * support/scripts/sdcc.ico: added 32x32 icon
2040
2041 2005-05-18 Raphael Neider <rneider AT web.de>
2042
2043         * device/lib/pic16/libdev/pic18f*.c,
2044         * device/include/pic16/pic18f*.h: updated "sfr" and "at X"
2045           keywords to "__sfr" and "__at (X)"
2046         * device/include/pic16/pic18fregs.h: added pic18f4520
2047         * src/pic16/pcode.c (pic16_pCode2str): fixed (?) bug
2048           #1203088 (MPLAB compatibility)
2049
2050 2005-05-17 Raphael Neider <rneider AT web.de>
2051
2052         * device/include/pic16/pic18f{2550,4331,4455,4520}.h: NEW
2053         * device/lib/pic16/libdev/pic18f{2550,4331,4455,4520}.c: NEW
2054         * device/lib/pic16/pics.all: added new devices
2055         * src/pic16/device.c: added support for pic18f4520
2056
2057 2005-05-16 Raphael Neider <rneider AT web.de>
2058         * src/pic16/gen.{c,h}: s/mov2f/pic16_mov2f made public
2059         * src/pic16/genarith.c (genAddLit): fixed bug 1202480
2060         * src/pic16/pcode.{c,h} (pic16_newpCodeOpBit_simple): NEW
2061           convenience function for bit access
2062
2063 2005-05-15 Maarten Brock <sourceforge.brock AT dse.nl>
2064
2065         * device/lib/printf_large.c: fixed bug 1193299
2066         * support/regression/tests/bug1057979.c: added test %3.3s
2067
2068 2005-05-15 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
2069
2070         * device/include/mcs51/8051.h,
2071         * device/include/mcs51/8052.h: made parseable with lint
2072         * device/include/mcs51/lint.h: added include file for (sp)lint
2073         * doc/sdccman.lyx: added doc about use of splint (syntax checking tool)
2074         * doc/cdbfileformat.lyx,
2075         * doc/test_suite_spec.lyx: hardcoded date to the date of last text change
2076
2077 2005-05-14 Raphael Neider <rneider AT web.de>
2078
2079         * device/lib/pic16/Makefile.common.in: add --optimize-df to OPT_FLAGS
2080         * device/lib/pic16/libc/stdlib/itoa.c (new)
2081         * device/lib/pic16/libc/stdlib/Makefile: have itoa.c built
2082         * device/lib/pic16/libio/Makefile: exclude subdir according to
2083           ${subdir}.ignore for certain PICs (lacking e.g. i2c)
2084         * device/lib/pic16/libio/i2c.ignore (new): pic18f1220 has no I2C support
2085         * src/pic16/gen.c (genFunction): prevent annoying warning
2086         * src/pic16/pcode.c: renamed stack_t to dynstack_t to prevent
2087           nameclashes on BeOS
2088         * support/cpp2/cppmain.c (cpp_output_string): new
2089         * support/cpp2/cpplib.c (_cpp_do__Pragma): fixed _Pragma(""),
2090           fixes bug 1116802
2091
2092 2005-05-13 Borut Razem <borut.razem AT siol.net>
2093
2094         * src/SDCCmain.c (linkEdit): fixed bug 1195202
2095
2096 2005-05-12 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
2097
2098         * .version: changed to version 2.5.1; back to bleeding edge development
2099
2100 2005-05-11 Borut Razem <borut.razem AT siol.net>
2101
2102         * doc/sdccman.lyx doc/cdbfileformat.lyx doc/test_suite_spec.lyx:
2103           generate PDF version 1.3 documents
2104
2105 2005-05-07 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
2106
2107         * .version: changed to version 2.5.0
2108
2109 2005-04-27 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
2110
2111         * doc/sdccman.lyx: updated weblinks, index and smaller updates
2112
2113 2005-04-26 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
2114
2115         * doc/sdccman.lyx: changed version 2.5.0, documented --std-c89,
2116         --std-sdcc89, --std-c99, --std-sdcc99, and the corresponding #pragmas, as
2117         well as many smaller updates.
2118         * .version: changed to version 2.5.0-pre1
2119
2120 2005-04-26 Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
2121
2122         * src/SDCCmain.c (setIncludePath): added port->target to SDCC_INCLUDE_NAME
2123
2124 2005-04-26 Maarten Brock <sourceforge.brock AT dse.nl>
2125
2126         * support/regression/tests/bug1185672.c: added
2127         * src/mcs51/gen.c (aopGetUsesAcc, genCpl, genAnd, genOr, genXor): fixed
2128           bug 1185672
2129         * src/mcs51/gen.c (genCall): added comments, made it look safer
2130         * src/mcs51/gen.c (genEndFunction): simplified
2131
2132 2005-04-25 Maarten Brock <sourceforge.brock AT dse.nl>
2133
2134         * src/mcs51/ralloc.c (serialRegAssign): fixed bug 1189609
2135
2136 2005-04-14 Borut Razem <borut.razem AT siol.net>
2137
2138         * fixed bug 1045046 - SIGSEGV with really simple code?:
2139           src/pic/pcode.c (pCodeInitRegisters)- pseudo stack size increased to 16
2140           src/pic/ralloc.c (typeRegWithIdx) - error message on pseudo stack overflow
2141
2142 2005-04-14 Borut Razem <borut.razem AT siol.net>
2143
2144         * src/pic16/gen.c (genInline), src/pic16/main.c (_process_pragma),
2145           src/pic16/device.h: temporarily disabled experimental #inline pragma
2146           for 2.5.0 release
2147
2148 2005-04-14 Maarten Brock <sourceforge.brock AT dse.nl>
2149
2150         * device/include/z80/stdio.h,
2151         * device/include/z80/string.h: removed these highly incomplete files so
2152           SDCC can use the default ones in device/include/
2153
2154 2005-04-14 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
2155
2156         * src/mcs51/gen.c (genEndFunction): removed unused variable to fix
2157         gcc warning.
2158         * device/lib/Makefile.in: default PORTINCDIR to the mcs51 subdir to
2159         fix sdcpp warnings.
2160
2161 2005-04-12 Maarten Brock <sourceforge.brock AT dse.nl>
2162
2163         * device/include/malloc.h: removed redundant __reentrant prototypes
2164         * device/lib/_mullong.c: added working xstack variant in asm (C version
2165           doesn't pass regression tests)
2166         * device/lib/bpx.c: used __data and made bpx char for mcs51
2167         * src/SDCCast.c (decorateType): removed unused GPTYPE_IDATA,
2168           (createFunction): fixed bug with xstackPtr
2169         * src/SDCCcse.c: corrected comments
2170         * src/SDCCopt.c (convertToFcall): fixed warning in MSVC,
2171           (killDeadCode, eBBlockFromiCode): removed unused code
2172         * src/SDCCsymt.h: removed unused GPTYPE_GPTR and GPTYPE_IDATA,
2173           corrected comments
2174         * src/mcs51/gen.c (aopForSym, aopPut, toBoolean, unsaveRegisters,
2175           assignResultValue, genCall, genFunction, genEndFunction, genAnd,
2176           genOr, genXor, genAddrOf): fixed several bugs concerning xstack
2177           (genModOneByte): fixed warning in MSVC
2178         * src/mcs51/main.c (): added comments
2179         * src/mcs51/peeph.def: changed 129 to 129.a, added 129.b, 129.c & 129.d
2180
2181 2005-04-12 Maarten Brock <sourceforge.brock AT dse.nl>
2182
2183         * src/SDCCmain.c (linkEdit): oops, changed one line too many
2184
2185 2005-04-11 Maarten Brock <sourceforge.brock AT dse.nl>
2186
2187         * src/SDCCmain.c (linkEdit): fixed bug with finding crt0.o for z80
2188
2189 2005-04-10 Vangelis Rokas <vrokas AT users.sourceforge.net>
2190
2191         * src/pic16/glue.c (printIvalChar): fixed bug when emitting
2192         characters arrays of larger size than the declared one.
2193
2194 2005-04-10 Borut Razem <borut.razem AT siol.net>
2195
2196         * src/pic/gen.c (genInline),
2197           src/pic/pcode.c (newpCodeAsmDir), (pCode2str),
2198           (genericPrint), (unlinkpCodeFromBranch), (compareLabel),
2199           (findNextInstruction), (findPrevInstruction),
2200           (findInstructionUsingLabel),
2201           src/pic/pcode.h: fixed bug #1164907 - Labels not being recognized
2202         * src/pic/pcode.c (findLabel): added missing '\n'
2203         * src/src.dsp: added SDCCdwarf2.c to the project
2204
2205 2005-04-09 Borut Razem <borut.razem AT siol.net>
2206
2207         * support/scripts/sdcc.nsi: added include/hc08/* h to NSIS setup
2208
2209 2005-04-08 Raphael Neider <rneider AT web.de>
2210
2211         * src/pic16/pcode.c: added helpers defmapInsertAfter (insert a new item
2212           into the chain after a given one) and mergeDefmapSymbols (combine
2213           defmap entries for each symbol per pcode)
2214         * (createDefmap): have defmap entries merged in the end
2215         * (defmapReplaceSymRef): split defmap entries covering two accesses to
2216           a symbol before replacing one access type's symbol, merge symbols in
2217           the end (replacement symbol might already have an entry)
2218         * (assignValnums): keep reference to written WREG intact
2219
2220 2005-04-08 Raphael Neider <rneider AT web.de>
2221
2222         * src/pic16/pcode.c (struct defmap_s): named anonymous union (for
2223           Alpha)
2224
2225 2005-04-08 Vangelis Rokas <vrokas AT users.sourceforge.net>
2226
2227         * src/pic16/pcode.c (pic16_get_op2): enlarged size of array b to 128
2228         bytes
2229
2230 2005-04-07 Raphael Neider <rneider AT web.de>
2231
2232         * device/include/pic16/usart.h: added compatibility defines for
2233           devices with more than one USART
2234         * device/include/pic16/pic18f[68][567]20.h: activated above defines
2235
2236 2005-04-07 Maarten Brock <sourceforge.brock AT dse.nl>
2237
2238         * device/lib/Makefile.in: updated for port specific include
2239
2240 2005-04-07 Maarten Brock <sourceforge.brock AT dse.nl>
2241
2242         * support/regression/ports/mcs51/spec.mk: added mcs51 include
2243
2244 2005-04-07 Maarten Brock <sourceforge.brock AT dse.nl>
2245
2246         * device/include/8051.h,
2247         * device/include/8052.h,
2248         * device/include/at89S8252.h,
2249         * device/include/at89c55.h,
2250         * device/include/at89x051.h,
2251         * device/include/at89x51.h,
2252         * device/include/at89x52.h,
2253         * device/include/mcs51reg.h,
2254         * device/include/reg51.h,
2255         * device/include/reg764.h,
2256         * device/include/regc515c.h,
2257         * device/include/sab80515.h: (re)moved these 12 files
2258         * device/include/mcs51/8051.h,
2259         * device/include/mcs51/8052.h,
2260         * device/include/mcs51/at89S8252.h,
2261         * device/include/mcs51/at89c55.h,
2262         * device/include/mcs51/at89x051.h,
2263         * device/include/mcs51/at89x51.h,
2264         * device/include/mcs51/at89x52.h,
2265         * device/include/mcs51/mcs51reg.h,
2266         * device/include/mcs51/reg51.h,
2267         * device/include/mcs51/reg764.h,
2268         * device/include/mcs51/regc515c.h,
2269         * device/include/mcs51/sab80515.h: and added them here
2270
2271 2005-04-06 Maarten Brock <sourceforge.brock AT dse.nl>
2272
2273         * device/include/stdarg.h: changed SDCC specific keywords to double
2274           underlined form.
2275         * device/include/stdint.h: changed intptr_t and uintptr_t for others than
2276           mcs51 and ds390.
2277         * device/include/hc08/mc68hc908gp32.h,
2278         * device/include/hc08/mc68hc908jb8.h,
2279         * device/include/hc08/mc68hc908jkjl.h,
2280         * device/include/hc08/mc68hc908qy.h: fixed comments
2281         * device/include/mcs51/README: updated
2282         * device/include/mcs51/c8051f120.h: added PINRSF
2283         * device/lib/pic16/libc/stdlib/crc16.c: fixed comments
2284         * src/pic16/pcode.c: MSVC6 doesn't accept declaring new variables
2285           amidst code. Also inline is not supported.
2286
2287 2005-04-06 Raphael Neider <rneider AT web.de>
2288
2289         * src/pic16/pcode.c (pic16_pCodeReplace): also update pcflow->end
2290         * (createDefmap): fixed CALLs to depend on FSR1 and RETLW to restore
2291           callers stack/frame pointers
2292
2293 2005-04-06 Vangelis Rokas <vrokas AT users.sourceforge.net>
2294
2295         * device/include/pic16/usart.h: added, missing in previous commit,
2296         * device/include/pic16/adc.h: fixed typo,
2297         * device/lib/pic16/libc/utils/cvtdec.S: added missing in previous
2298         commit,
2299         * device/lib/pic16/libc/stdlib/g_ftoa.S: modified to include
2300         <p18fxxx.inc>
2301         * device/lib/pic16/libc/stdio/streams.c: leave stdin, stdout
2302         uninitialized because a bug appears with gplink
2303         * device/lib/pic16/{some makefiles}: moved $(CSTD) from CFLAGS to
2304         COMPILE_FLAGS and added CPPFLAGS with -nostdinc because sdcpp
2305         complains for unrecognised option
2306
2307 2005-04-05 Raphael Neider <rneider AT web.de>
2308
2309         * src/pic16/gen.c (pic16_popCopyReg): made copying work for extended
2310           structs as well (using memcpy)
2311         * (genFunction): fixed comparison, used pCodeOpLabel to reduce warning
2312           on ISRs (GOTO has no label)
2313         * src/pic16/device.h: added OF_OPTIMIZE_DF
2314         * src/pic16/main.c: added compiler switch --optimize-df to enable the
2315           new data flow analysis/optimization
2316         * src/pic16/pcode.c: added (prototypes for and implementation of)
2317           dataflow analysis functions, fixed pCodeInstructions' inCond and
2318           outCond values, made RCALL a branch instruction
2319         * (pic16_unlinkpCode): keep C line if possible
2320         * (pic16_pCodeUnlink): removed cast on left side of assignment, have
2321           C line moved if possible
2322         * (pic16_getRegFrompCodeOp): NEW, improved version of...
2323         * (pic16_getRegFromInstruction,pic16_getRegFromInstruction2): changed
2324           to use new pic16_getRegFrompCodeOp (works for more SFRs)
2325         * (pic16_BuildFlow): fixed skip instructions with label (did not start
2326           new flow)
2327         * (pic16_getJumptabpCode): NEW, needed in...
2328         * (LinkFlow): fixed handling of jumptables, calls and conditional
2329           branches
2330         * (pic16_InsertCommentAfter): NEW
2331         * (pic16_pCodeReplace): made verbose and flow preserving
2332         * (AnalyzeFlow): added call to data flow analysis
2333         * src/pic16/pcode.h: added defmaps to pCodeFlow struct
2334         * src/pic16/pcodeflow.h: added PCC_STATUS to mean all STATUS bits
2335         * src/pic16/ralloc.c (packRegsForAssign): added return 1 in the end
2336
2337 2005-04-03 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
2338
2339         * src/SDCCast.c (decorateType): fixed bug #1105626
2340
2341 2005-04-02 Vangelis Rokas <vrokas AT users.sourceforge.net>
2342
2343         * device/include/asm/pic16/features.h,
2344         * pic18f*.h headers,
2345         * device/include/pic16/adc.h,
2346         * device/include/pic16/delay.h,
2347         * device/include/pic16/i2c.h,
2348         * device/include/pic16/malloc.h,
2349         * device/include/pic16/stdio.h,
2350         * device/include/pic16/stdlib.h,
2351         * device/include/pic16/string.h,
2352         * device/lib/pic16/libc/stdio/printf_tiny.c,
2353         * device/lib/pic16/libc/stdio/printf_small.c,
2354         * device/lib/pic16/libc/stdio/strmgpsim.c,
2355         * device/lib/pic16/libc/stdio/strmmssp.c,
2356         * device/lib/pic16/libc/stdio/strmusart.c,
2357         * device/lib/pic16/libc/stdio/vfprintf.c,
2358         * device/lib/pic16/libc/stdlib/ltoa.c,
2359         * device/lib/pic16/libc/stdlib/putchar.c,
2360         * device/lib/pic16/libc/stdlib/x_ftoa.c,
2361         * device/lib/pic16/libc/stdlib/memchrpgm.c,
2362         * device/lib/pic16/libc/stdlib/memchrram.c,
2363         * device/lib/pic16/libc/stdlib/memcpypgm2ram.c,
2364         * device/lib/pic16/libc/stdlib/memcpyram2ram.c,
2365         * device/lib/pic16/libio/adc/adcbusy.c,
2366         * device/lib/pic16/libio/adc/adcread.c,
2367         * device/lib/pic16/libio/adc/adcsetch.c,
2368         * device/lib/pic16/libio/usart/ubaud.c,
2369         * device/lib/pic16/libio/usart/ubusy.c,
2370         * device/lib/pic16/libio/usart/udrdy.c,
2371         * device/lib/pic16/libio/usart/uopen.c,
2372         * device/lib/pic16/libio/usart/uputc.c,
2373         * device/lib/pic16/libsdcc/gptr/gptrget1.c,
2374         * device/lib/pic16/libsdcc/gptr/gptrget2.c,
2375         * device/lib/pic16/libsdcc/gptr/gptrget3.c,
2376         * device/lib/pic16/libsdcc/gptr/gptrget4.c,
2377         * device/lib/pic16/libsdcc/gptr/gptrput1.c,
2378         * device/lib/pic16/libsdcc/gptr/gptrput2.c,
2379         * device/lib/pic16/libsdcc/gptr/gptrput3.c,
2380         * device/lib/pic16/libsdcc/gptr/gptrput4.c: modified all SDCC
2381         specific keywords to double underlined form,
2382         * device/lib/pic16/libc/Makefile.rules,
2383         * device/lib/pic16/libsdcc/Makefile.rules,
2384         * device/lib/pic16/libm/Makefile,
2385         * device/lib/pic16/libio/Makefile.rules: added CSTD macro in CFLAGS
2386         to compile with C standard set in Makefile.common
2387         * device/lib/pic16/libc/stdlib/Makefile: added new C sources
2388         rand.c and crc.c in compilation process,
2389         * device/lib/pic16/libsdcc/int/divuint.c,
2390         * device/lib/pic16/libsdcc/long/divulong.c: changed declaration of
2391         `c' from signed to unsigned,
2392         * device/lib/pic16/startup/crt0.c,
2393         * device/lib/pic16/startup/crt0i.c,
2394         * device/lib/pic16/startup/crt0iz.c: adopted to all SDCC specific
2395         keywords to double underlined form, bug fixes in _do_cinit function
2396         which prevented the correct initialization of the .idata segment,
2397         * src/pic16/pcoderegs.c (insideLRBlock): fixed a bug that caused the
2398         core to enter a infinite loop
2399         * device/lib/pic16/libc/stdlib/rand.c, crc.c: new files
2400
2401 2005-04-02 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
2402
2403         * src/SDCCicode.c (getArraySizePtr): fixed bug #1122171
2404
2405 2005-04-01 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
2406
2407         * device/include/Makefile.in: add support for hc08 subdirectory
2408         * device/include/hc08/: new subdirectory
2409         * device/include/hc08/mc68hc908jkjl.h: new header contributed by
2410         Lucas Loizaga, thanks!
2411         * device/include/hc08/mc68hc908qy.h,
2412         * device/include/hc08/mc68hc908gp32.h,
2413         * device/include/hc08/mc68hc908jb8.h: moved hc08 register defs to
2414         their own directory. Changed internal macro names to use the compiler
2415         reserved namespace. Changed SDCC specific keywords to double
2416         underlined form.
2417         * device/include/math.h,
2418         * device/include/malloc.h,
2419         * device/include/stdarg.h,
2420         * device/include/stdbool.h
2421         * device/include/string.h,
2422         * device/include/tinibios.h,
2423         * device/include/ds400rom.h,
2424         * device/include/8051.h,
2425         * device/include/8052.h,
2426         * device/include/80c51xa.h,
2427         * device/include/at89c55.h,
2428         * device/include/at89S8252.h,
2429         * device/include/at89x51.h,
2430         * device/include/at89x52.h,
2431         * device/include/ds80c390.h,
2432         * device/include/reg764.h,
2433         * device/include/regc515c.h,
2434         * device/include/sab80515.h,
2435         * device/include/mcs51/c8051f000.h,
2436         * device/include/mcs51/c8051f018.h,
2437         * device/include/mcs51/c8051f020.h,
2438         * device/include/mcs51/c8051f040.h,
2439         * device/include/mcs51/c8051f060.h,
2440         * device/include/mcs51/c8051f120.h,
2441         * device/include/mcs51/c8051f300.h,
2442         * device/include/mcs51/c8051f310.h,
2443         * device/include/mcs51/c8051f320.h,
2444         * device/include/mcs51/c8051f330.h,
2445         * device/include/mcs51/c8051f350.h,
2446         * device/include/z180.h: Changed SDCC specific keywords to double
2447         underlined form.
2448
2449 2005-03-31 Vangelis Rokas <vrokas AT users.sourceforge.net>
2450
2451         * src/pic16/device.c (Pics16[]): added devices 18F2550, 18F4331,
2452         18F4455,
2453         * (pic16_assignConfigWordValue): disable testing of configuration
2454         register value with config mask,
2455         * src/pic16/gen.c (pic16_testStackOverflow): prefix stack test
2456         function with port->fun_prefix,
2457         * (genFunction): when generating a naked interrupt function never
2458         create an absolute segment placed in interrupt vector address, place
2459         the actual interrupt function at IVA instead, when an interrupt
2460         function is generated with unspecified interrupt then do not create
2461         the absolute section,
2462         * (genGenPointerGet, genGenPointerSet, genPackBits): replace all
2463         code for generating a call to generic pointer get/put function with
2464         a call to function pic16_callGenericPointer(),
2465         * src/pic16/genutils.c (pic16_callGenericPointerRW): NEW, generates
2466         the call to the generic pointer get/put functions with prefixing the
2467         function name with port->fun_prefix,
2468         * src/pic16/glue.c (pic16glue): ifdef-out test of OF_LR_SUPPORT,
2469         * src/pic16/main.c (_process_pragma): prefix function with
2470         port->fun_prefix,
2471         * (_pic16_finaliseOptions): define macro __18Fxxxx macro when
2472         calling assembler, old 18Fxxxx macro is deprecated,
2473         * src/pic16/pcode.c (unlinkpCodeFromBranch): added PC_INLINE and
2474         PC_ASMDIR in while condition,
2475         * (findInstruction): add PC_ASMDIR in while condition,
2476         * (buildCallTree): prefix main with port->fun_prefix,
2477         * (pic16_pCode2str): fixed bug that didn't emit the memory access
2478         identifier for variable with banked access in instructions BTFSS,
2479         BTFSC, BCF, BSF, BTG
2480         * (AnalyzeFlow): moved call to OptimizepCode to pic16_AnalyzeBanking,
2481         * src/pic16/pcodepeep.c (pCodeOpCompare): increase size of b to 1024,
2482         * src/pic16/pcoderegs.c (pic16_pCodeRegoptimizeRegUsage): don't
2483         perform optimization when enviroment variable NO_REG_OPT is set,
2484         * (insideLRBlock): NEW, return 1 if register is inside an
2485         INF_LOCALREGS block,
2486         * (RemoveRegFromLRBlock): remove a register that is completely
2487         eliminated by register optimization, but it is still left in local
2488         register store/restore in/from stack block,
2489         * (Remove2pcodes): after removing register, check to see if it
2490         should be removed from local register store/restore in/from stack
2491         block,
2492         * src/pic16/ralloc.c (pic16_decodeOp): added decode for
2493         DUMMY_READ_VOLATILE,
2494
2495         * device/include/pic16/adc.h: minor prototype modifications and
2496         update,
2497         * device/include/pic16/malloc.h: added GPL notice various
2498         modifications,
2499         * device/include/pic16/stdint.h: NEW, standard header for ints
2500         * device/include/pic16/delay.h: NEW, header for delay functions,
2501         delay10tcy, delay100tcy, delay1ktcy, delay10ktcy, delay100ktcy,
2502         delay1mtcy,
2503         * device/include/pic16/signal.h: NEW, header providing helper macros
2504         for implementing signal handlers,
2505         * device/include/pic16/stdio.h: added prototypes for functions,
2506         printf, vprintf, sprintf, vsprintf, fprintf, vfprintf. Added
2507         prototypes for stdin and stdout, added macro PUTCHAR to
2508         automatically implement putchar function prototype,
2509         * device/include/pic16/usart.h: modified and updated USART library,
2510         * device/lib/pic16/libio/adc/,
2511         * device/lib/pic16/libio/i2c: some modifications to improve library
2512         performance,
2513         * device/lib/pic16/libc/stdio/: modifications for the new printf*
2514         family of functions,
2515         * device/lib/pic16/libc/stdlib/: various modifications in the malloc
2516         family of functions and other sources,
2517         * device/lib/pic16/libio/usart/: NEW, c sources for the usart module
2518         of the PIC18Fxx[28] devices,
2519         * device/lib/pic16/libc/delay/: NEW, c sources for the delay functions,
2520         * device/lib/pic16/libc/utils/: minor modifications in the .S sources,
2521         * device/lib/pic16/startup/{crt0i.c, crt0iz.c}: redesign of the
2522         _do_cinit function, because the previous failed when local variables
2523         where not placed in the same memory bank,
2524         * device/lib/pic16/libsdcc/char/: various modifications to improve
2525         library performance,
2526         * doc/sdccman.lyx: some reorganization of the PIC16 part, added many
2527         information on the new functions of the c library and more...
2528
2529 2005-03-28 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
2530
2531         * src/SDCCBBlock.c (iCodeBreakDown): fixed bug #1170212
2532
2533 2005-03-26 Raphael Neider <rneider AT web.de>
2534
2535         * src/pic16/gen.c (genSkipc): fixed semantics (execute branch
2536           if condition == CARRY)
2537         * (genCmp): adapted to new genSkipc semantics
2538         * src/pic16/genutils.c (pic6_genCmp_special): removed side effect
2539           on rIfx (genCmp was broken)
2540
2541 2005-03-26 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
2542
2543         * src/SDCCmain.c (setDefaultOptions, optionsTable[], parseCmdLine),
2544         * src/z80/main.c (_keywords[]),
2545         * src/SDCCglobal.h (struct options),
2546         * src/SDCC.y,
2547         * src/SDCC.lex (isTargetKeyword, doPragma, pragma_tbl[]): new pragmas
2548         to enable/disable SDCC and C99 extensions/keywords (std_c89, std_sdcc89,
2549         std_c99, std_sdcc99). Also, equivalent command line options (--std-c89,
2550         --std-sdcc89, --std-c99, --std-sdcc99). SDCC specific keywords are
2551         always available in leading double underscore form. The C99 support is
2552         mostly missing, but it's a start.
2553         * support/regression/tests/bug-227710.c: fixed nonconforming use of
2554         reserved identifier "__data".
2555
2556 2005-03-24 Maarten Brock <sourceforge.brock AT dse.nl>
2557
2558         * src/mcs51/peeph.def: fixed bug 1170013
2559
2560 2005-03-22 Maarten Brock <sourceforge.brock AT dse.nl>
2561
2562         * device/include/mcs51reg.h: fixed bug 842007
2563
2564 2005-03-21 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
2565
2566         * src/SDCCcflow.c (dfNumCompare): committed the wrong version of this
2567         last time.
2568
2569 2005-03-20 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
2570
2571         * src/port.h (struct PORT),
2572         * src/avr/ralloc.c (avr_assignRegisters),
2573         * src/avr/main.c,
2574         * src/ds390/ralloc.c (ds390_assignRegisters),
2575         * src/ds390/main.c,
2576         * src/hc08/ralloc.c (hc08_assignRegisters),
2577         * src/hc08/main.c,
2578         * src/mcs51/ralloc.c (mcs51_assignRegisters),
2579         * src/mcs51/main.c,
2580         * src/pic/ralloc.c (pic14_assignRegisters),
2581         * src/pic/main.c,
2582         * src/pic16/ralloc.c (pic16_assignRegisters),
2583         * src/pic16/main.c,
2584         * src/xa51/ralloc.c (xa51_assignRegisters),
2585         * src/xa51/main.c,
2586         * src/z80/ralloc.c (z80_assignRegisters),
2587         * src/z80/ralloc.h,
2588         * src/SDCCopt.c (eBBlockFromiCode, replaceRegEqv, killDeadCode),
2589         * src/SDCCcse.c (ifxOptimize, cseBBlock, cseAllBlocks),
2590         * src/SDCCcse.h,
2591         * src/SDCCdflow.c (computeDataFlow),
2592         * src/SDCCdflow.h,
2593         * src/SDCCloop.c (addDefInExprs, loopInvariants, loopOptimizations),
2594         * src/SDCCloop.h,
2595         * src/SDCCcflow.c (*),
2596         * src/SDCCcflow.h,
2597         * src/SDCCBBlock.c (iCodeBreakDown, dumpEbbsToFileExt, eBBWithEntryLabel),
2598         * src/SDCCBBlock.h (struct ebbIndex): new struct that keeps two copies
2599         of the eBBlock list, sorted by both bbnum and dfnum. (fixes bug with
2600         immedDom() returning wrong block; probably fixes bug #1160833)
2601
2602 2005-03-20 Borut Razem <borut.razem AT siol.net>
2603
2604         * support/scripts/inc2h.pl: WIN32 port
2605
2606 2005-03-19 Maarten Brock <sourceforge.brock AT dse.nl>
2607
2608         * device/lib/makefile.in: added abs.c and labs.c
2609
2610 2005-03-17 Maarten Brock <sourceforge.brock AT dse.nl>
2611
2612         * device/include/stdint.h: added
2613         * device/lib/abs.c: added
2614         * device/lib/labs.c: added
2615         * device/include/stdlib.h: added abs() and labs() prototypes
2616         * device/lib/libsdcc.lib: added abs and labs
2617         * device/include/float.h,
2618         * device/lib/_fsmul.c,
2619         * device/lib/printf_fast.c,
2620         * device/lib/printf_tiny.c: updated comments
2621
2622 2005-03-16 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
2623
2624         * src/SDCCicode.c (geniCodeSwitch, geniCodeJumpTable): fixed
2625         bug #1164313
2626
2627 2005-03-16 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
2628
2629         * src/SDCCcse.c (cseBBlock): retain assignment to self when volatile
2630         * src/SDCCast.c (isLoopCountable): fixed bug #1161985
2631
2632 2005-03-15 Maarten Brock <sourceforge.brock AT dse.nl>
2633
2634         * device/lib/printf_large.c: removed inline assembly for portability and
2635           readability. Use printf_fast if speed or size are more important.
2636         * src/pic16/gen.c: removed conditions around use of DEBUGpc
2637         * src/pic16/genutils.h: added define for DEBUGpc for MSVC
2638
2639 2005-03-15 Vangelis Rokas <vrokas AT users.sourceforge.net>
2640
2641         * src/pic16/genutils.c (pic16_genCmp_special): initialized offs to
2642         prevent compiler warning
2643
2644 2005-03-14 Vangelis Rokas <vrokas AT users.sourceforge.net>
2645
2646         * device/lib/pic16/startup/crt0i.c (_cinit): local variables where
2647         moved to level 0 and declared as static. Also they are explicit
2648         placed in access bank. This was necessery because some times they
2649         might cross memory bank boundaries. crt0iz.c is *NOT* updated!!!
2650         * src/pic16/device.h: added flag OPTIMIZE_CMP to enable some compare
2651         optimizations. Currently only compare to unsigned char is implemented,
2652         * src/pic16/gen.c: added fReturnIdx array,
2653         * (struct resolvedIfx) is moved to gen.h and made public,
2654         * (struct _G): added sregsAlloc and sregsAllocSet fields,
2655         * (aopForSym): added an optimization to directly store in stack of
2656         the operand of a SEND iCode,
2657         * (pic16_aopOp): don't return return registers as strings (AOP_STR)
2658         but as registers instead (AOP_REG) using the fReturnIdx array,
2659         * (pic16_freeAsmop): remove the freed register from the
2660         _G.sregsAlloc field,
2661         * (pic16_aopGet): in case AOP_STR, the compare to 'a' is changed to
2662         a compare of 'WREG',
2663         * (pic16_popGetTempRegCond): changed function prototype, now
2664         function takes also a bitVector argument v which holds the current
2665         set of registers that are allocated for stack access by aopForSym,
2666         registers allocated in aopForSym for accessing stack symbols are not
2667         any more part of the functions usedRegs field,
2668         * (genCall): some times aopOp is called for a stack variable to be
2669         send, aopForSym might perform the push, if this is true make sure
2670         that genCall doesn't push the variable twice by testing _G.resDirect,
2671         * (genFunction): changed testing for unspecified interrupt number
2672         from 256 to INTNO_UNSPEC,
2673         * modified selection scheme of frame pointer generation. Previously
2674         if function did use local registers a frame pointer was generated,
2675         now a frame pointer is generated only if function has arguments
2676         (that need PLUSW2 register access), or has stack arguments, or the
2677         compiler is not instructed to omit the frame pointer,
2678         * (genEndFunction): before restoring local registers that were saved
2679         in the function preamble, also restore the registers that *might*
2680         have been allocated for stack access,
2681         * (genRet): removed some old comments,
2682         * (genCmp, the active (RN's) version): added a call to the
2683         pic16_genCmp_special function to perform the compare with a more
2684         robust and optimized way,
2685         * (genInline): a feature has been added in inline code generation,
2686         which allows a wildcard variable substitution when writing inline
2687         assembly. Code is incomplete and experimental therefore undocumented,
2688         * (genCast): changed order of aopOp for result and right to allow
2689         aopForSym to directly load the result if possible,
2690         * src/pic16/genutils.c (selectCompareOp, pic16_genCmp_special): NEW,
2691         perform an optimized compare on some selected special occasions,
2692         * src/pic16/genutils.h: declaration of resolvedIfx structure from gen.c,
2693         * src/pic16/glue.c (pic16createInterrupVect): make sure we never
2694         generate an IVT any more,
2695         * src/pic16/main.c (pic16_optionsTable): added command line option
2696         --optimize-cmp,
2697         * (_pic16_initPaths): when calling C preprocessor define pic18fXXXX
2698         macro too, when calling assembler define pic18fXXXX *and* __18Fxxxx
2699         macros,
2700         * src/pic16/NOTES: Raphael Neider added in list of active developers
2701         * src/pic16/pcode.c (OPT_TYPE_STR): added strings jumptable_begin and
2702         jumptable_end to prevent bug #,
2703         * (pic16_pciADDWFC, ADDFWC, COMF, CLRF): added some missing flags in
2704         inCond and outCond fields,
2705         * src/pic16/pcoderegs.c (pCodeOptime2pCodes): add a fix for bug #,
2706         * src/pic16/ralloc.c (serialRegAssign): explicit set willCS to 0 to
2707         turn off register spilling,
2708         * (packRegsForOneUse): synced with other ports' versions although it
2709         is not used currently,
2710         * (pic16_packRegisters): added an optimization while reading
2711         structure bitfields, some registers may be saved (malloc code is
2712         decreased by 80 bytes)
2713
2714 2005-03-12 Vangelis Rokas <vrokas AT users.sourceforge.net>
2715
2716         * src/SDCCcse.c (cseBBlock): inside 'do operand lookup' loop test if
2717         left is a bitfield, if yes, then don't optimize assignment. Perhaps
2718         this can be optimized more?
2719
2720 2005-03-10 Raphael Neider <rneider AT web.de>
2721
2722         * src/pic16/gen.c (pic16_loadFSR0, genPackBits, genUnpackBits,
2723           genNearPointerGet): (hopefully) fixed access to bitfields via
2724           pointers (p->bitN = x; and x = p->bitN; failed)
2725
2726 2005-03-09 Paul Stoffregen <paul AT pjrc.com>
2727
2728         * device/lib/printf_fast.c: fix leading zero format, eg "%02d"
2729
2730 2005-03-09 Raphael Neider <rneider AT web.de>
2731
2732         * src/SDCCopt.c (killDeadCode): fixed bug #1156016
2733
2734 2005-03-06 Maarten Brock <sourceforge.brock AT dse.nl>
2735
2736         * src/SDCCicode.h: moved CRITICAL and ENDCRITICAL from SKIP_IC2 to SKIP_IC
2737         * src/mcs51/ralloc.c (willCauseSpill): added check for REG_BIT type,
2738           (regTypeNum): set REG_BIT type if necessary
2739         * src/mcs51/ralloc.h: added define REG_BIT, used to fix bug 1144613
2740         * support/regression/tests/critical.c: check bug 1144613
2741
2742 2005-03-02 Raphael Neider <rneider AT web.de>
2743
2744         * src/pic16/gen.c (genRightShiftLiteral): fixed bug #1154256
2745
2746 2005-02-26 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
2747
2748         * src/avr/ralloc.c (serialRegAssign),
2749         * src/ds390/ralloc.c (serialRegAssign),
2750         * src/hc08/ralloc.c (serialRegAssign),
2751         * src/mcs51/ralloc.c (serialRegAssign),
2752         * src/pic/ralloc.c (serialRegAssign),
2753         * src/pic16/ralloc.c (serialRegAssign),
2754         * src/xa51/ralloc.c (serialRegAssign),
2755         * src/z80/ralloc.c (serialRegAssign): fixed bug #1105154
2756
2757 2005-02-22 Maarten Brock <sourceforge.brock AT dse.nl>
2758
2759         * src/SDCCast.c (decorateType): fixed bug 1124787
2760
2761 2005-02-20 Hubert Sack <sack AT digiplan.de>
2762         committed by Frieder Ferlemann <Frieder.Ferlemann AT web.de>
2763
2764         * src/mcs51/peeph.def: added peepholes 3.h-k and 132.a-f from
2765         patch #1121755
2766
2767 2005-02-20 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
2768
2769         * src/SDCCpeeph.def: new keyword "labelRefCountChange" which allows peepholes
2770         to keep the correct label reference count when adding/removing references
2771         to labels. A peephole file using this is appended to patch #1144962.
2772
2773 2005-02-14 Raphael Neider <rneider AT web.de>
2774
2775         * device/lib/pic16/libc/string/memccpy.c: changed 3rd argument to char
2776         * src/SDCC.lex (process_pragma): fixed to make disable_warning work for PIC16
2777         * src/pic16/gen.c (aopForSym, calls to pic16_aopOp): prevent unneccessary
2778           retrievals of result operand's value on assignment
2779
2780 2005-02-13 Vangelis Rokas <vrokas AT otenet.gr>
2781
2782         * device/include/pic16/string.h: modified prototype for memccpy()
2783         to memccpy(void *, void *, char, size_t)
2784         * src/pic16/gen.c (genFunction, genEndFunction): reenable if-case to
2785         check whether to omit frame pointer or not,
2786         * (genInline): convert all occurences of "\n" to LF in inline
2787         assembler blocks, this helps formatting the inline text,
2788         * (pic16_loadFSR0): modified prototype,
2789         * (genNearPointerGet, genNearPointerSet): reorganization of code,
2790         removed some 8051 legacy code,
2791         * (genPackBits): enabled handling bitfields exceeding one byte in size,
2792         * src/pic16/ralloc.c (pic16_assignRegisters): clear dynrIdx variable
2793         before allocating temporary registers in functions,
2794
2795 2005-02-11 Maarten Brock <sourceforge.brock AT dse.nl>
2796
2797         * support/regression/tests/bitvars.c: corrected the "fix"
2798
2799 2005-02-10 Maarten Brock <sourceforge.brock AT dse.nl>
2800
2801         * support/regression/tests/bitvars.c,
2802         * support/regression/tests/bitwise.c,
2803         * support/regression/tests/rotate.c: "fixed" problems on Alpha
2804
2805 2005-02-10 Raphael Neider <rneider AT web.de>
2806
2807         * src/pic16/pcode.c (assignToSameBank) : fixed cast to pointer of
2808           different size for Alpha
2809         * src/pic16/gen.c (genCmpEq) : improved compare with 0
2810
2811 2005-02-09 Raphael Neider <rneider AT web.de>
2812
2813         * src/SDCC.lex(doPragma) : save and restore warning options as well
2814           (also added new stack plus clone- and copyAndFreeSDCCERRG())
2815         * have #pragma less_pedantic set the errorlevel to WARNING
2816           (fixes #1117001)
2817         * (cloneOptimize) : fixed wrong malloc's size
2818         * support/Util/SDCCerr.[ch] : made SDCCERRG globally accessible to
2819           facilitate correct handling of #pragma (save|restore)
2820
2821 2005-02-09 Maarten Brock <sourceforge.brock AT dse.nl>
2822
2823         * src/mcs51/gen.c: removed non-standard C nameless struct/union
2824
2825 2005-02-04 Slade Rich <slade_rich AT users.sourceforge.net>
2826
2827         * src/pic/gen.c : Fix for bugs #1080519 & #1115662.
2828
2829 2005-02-03 Maarten Brock <sourceforge.brock AT dse.nl>
2830
2831         * device/include/mcs51/c8051f120.h: added declarations for sbit port 2,3&4
2832
2833 2005-02-02 Raphael Neider <rneider AT web.de>
2834
2835         * src/SDCCast.c (processParms): disabled W_NONRENT_ARGS for pic16 port
2836         * src/pic16/gen.c (aopForSym): reenabled special case for function pointers
2837         * (pic16_storeForReturn): fixed to allow returning function pointers
2838         * (genPackBits): improved accessing full bytes, implemented for GPOINTERs
2839         * device/include/pic16/{stddef.h,stdbool.h}: added
2840
2841 2005-02-02 Maarten Brock <sourceforge.brock AT dse.nl>
2842
2843         * device/include/mcs51/c8051f040.h: added define CPT2_PAGE
2844
2845 2005-02-01 Slade Rich <slade_rich AT users.sourceforge.net>
2846
2847         * src/pic16/pic16.dsp : Added file graph.c to make it compile under windows
2848         * src/pic16/Makefile.bcc : Do not use this file but added file graph.c as it
2849          appeared to be required
2850
2851 2005-01-31 Borut Razem <borut.razem AT siol.net>
2852
2853         * support/scripts/sdcc.nsi: added include/asm/ds390, include/asm/mcs51,
2854           include/mcs51 and include/z80 directories to the package
2855
2856 2005-01-26 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
2857
2858         * src/hc08/gen.c (genFunction): fixed bug #1112752
2859
2860 2005-01-30 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
2861
2862         * src/mcs51/peeph.def: adapted peephole 258.x to changed gen.c (genAnd)
2863
2864 2005-01-29 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
2865
2866         * src/mcs51/gen.c (genAnd): accessing LSB/MSB by rotating acc
2867
2868 2005-01-29 Maarten Brock <sourceforge.brock AT dse.nl>
2869
2870         * device/include/Makefile.in: create/copy mcs51 and z80 include subdirs
2871
2872 2005-01-27 Maarten Brock <sourceforge.brock AT dse.nl>
2873
2874         * device/include/c8051fxxx.h: removed these 6 files
2875         * device/include/mcs51/c8051fxxx.h: added these 11 new files
2876
2877 2005-01-26 Raphael Neider <rneider AT web.de>
2878
2879         * src/pic16/gen.c (genAssign): fixed assignment from longs
2880           in codespace (were cut to three bytes)
2881         * (genDummyRead): implemented (except for CODESPACE...),
2882           fixed bug #1108575
2883         * src/pic16/glue.c (emitStatistics): beautified
2884         * device/lib/pic16/libm/Makefile: added include path
2885
2886 2005-01-26 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
2887
2888         * src/z80/gen.c (aopPut): fixed bug #1103902
2889
2890 2005-01-25 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
2891
2892         * device/lib/expf.c: fixed bug #1095792
2893
2894 2005-01-24 Vangelis Rokas <vrokas AT otenet.gr>
2895
2896         * device/lib/pic16/libm: added Math library sources
2897
2898 2005-01-24 Raphael Neider <rneider AT web.de>
2899
2900         * src/pic16/pcode.h: added second memory operand to pCodeOpReg
2901           to enable upcast to pCodeOpReg2 (there is no type tag to
2902           differenciate the two and pic16_popGet2p cast into PCOR2)
2903         * src/pic16/main.c (_process_pragma): fixed another malloc bug
2904           (sizeof(sectNames) changed to sizeof(sectName))
2905           Both patches fix segfaults under MinGW.
2906
2907 2005-01-23 Raphael Neider <rneider AT web.de>
2908
2909         * src/pic16/{device.c,pcode.c}: s/free/Safe_free/g for
2910           Safe_[mc]?alloc()'ed variables
2911         * src/pic16/gen.c (pic16_aopOp,pic16_popGet): added handling
2912           of (byte sized) temporaries (assign them to WREG for now)
2913         * src/pic16/main.c (_process_pragma): fixed nasty malloc bug
2914           (used sizeof(set *sectSyms) instead of sizeof(struct sectSym)),
2915           this might fix SIGSEGVs on MinGW...
2916         * src/SDCCopt.c (killDeadCode): restored original behaviour
2917           (volatile operands might get thrown away though)
2918
2919 2005-01-23 Vangelis Rokas <vrokas AT otenet.gr>
2920
2921         * src/pic16/gen.c: fixed bug #1106975,
2922         * src/pic16/gen.c: fixed possible bug #1102572, now during TOS
2923         pointer update, INTCON is saved, global interrupts are disabled and
2924         restored after updateing TOS.
2925         * src/SDCC.y, src/SDCC.lex, src/SDCCsymt.c, src/SDCCsymt.h:
2926         * added function attribute 'shadowregs' to take advantage of shadow
2927         registers,
2928         * added function attribute 'wparam' as an alternative to the wparam
2929         pragma,
2930         * support/Utils/SDCCerr.[ch]: added error E_SHADOWREGS_NO_ISR when
2931         user declares a non-ISR function as 'shadowregs',
2932         * doc/sdccman.lyx: updated to reflect recent changes of pic16 port
2933
2934 2005-01-22 Vangelis Rokas <vrokas AT otenet.gr>
2935
2936         * .version: bumped version number to 2.4.8
2937         * device/lib/pic16/pics.all: list of PIC18F devices supported by
2938         pic16 port,
2939         * device/lib/pic16/libio/i2c/: I2C module support library,
2940         * device/include/pic16/i2c.h: I2C support library header,
2941         * device/lib/pic16/libc/stdio/: standard IO support sources,
2942         * (printf_small.c): printf_small() source, supports float print,
2943         * (printf_tiny.c): printf_tiny() source, does not support floats,
2944         * device/lib/pic16/Makefile.common.in: added OPT_FLAGS macro to
2945         enable global optimizations for entire library source, other
2946         Makefiles in the source tree are also modified to reflect this,
2947         * device/lib/pic16/libc/stdlib/putchar.c (putchar): dummy putchar()
2948         function,
2949         * doc/sdccman.lyx: updated to reflect new changes,
2950         * src/pic16/gen.c (aopForSym): don't handle sym->iaccess in
2951         sym->onStack if-case,
2952         * src/pic16/main.c (_pic16_keywords): commented out keywords bit,
2953         sbit, idata, _idata, xdata, _xdata,
2954         * added pragma library, to link an external library, (see doc),
2955         * removed command line options, --pomit-config-words, --pomit-ivt,
2956         --pleave-reset-vector,
2957         * (pic16_finaliseOptions): when define macro SDCC_MODEL_{SMALL/LARGE}
2958         when calling assembler to reflect memory model used, also define
2959         macro STACK_MODEL_{SMALL/LARGE} when compiling and assembling to
2960         reflect stack model used,
2961         * src/pic16/ralloc.c (pic16_allocDirReg): when operand is allocated
2962         on stack return NULL,
2963
2964 2005-01-22 Daniel Winkler <post AT danielwinkler.de>
2965
2966         * src/SDCCopt.c (killDeadCode): do not throw iCodes away if one
2967           of the operands is volatile. Fixes #1020220
2968
2969 2005-01-22 Daniel Winkler <post AT danielwinkler.de>
2970
2971         * src/pic16/pcoderegs.c (pCodeOptime2pCodes): reenabled optimization
2972         * (OptimizeRegUsage): make sure that there is really no other flow where
2973           the first pCode is used
2974
2975 2005-01-22 Raphael Neider <rneider AT web.de>
2976
2977         * src/pic16/pcoderegs.c (pCodeOptime2pCodes): disabled optimization
2978           to fix #1106967 (pCode->seq are not set up correctly)
2979
2980 2005-01-22 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
2981
2982         * src/SDCCglue.c (glue): make sure code area is declared before the
2983         static initialization area.
2984
2985 2005-01-21 Raphael Neider <rneider AT web.de>
2986
2987         * device/lib/Makefile.in: fixed test for pic16 install dir
2988         * device/lib/pic16/*/Makefile*: modified compile flags to enable
2989           optimizations
2990         * doc/sdccman.lyx: updated banksel optimization, removed --flr-support and
2991           added --optimize-goto compiler switch and pragma wparam documentation
2992         * src/pic16/pcode.c (pic16_OptimizeBanksel): removed statistics dump
2993         * src/pic16/pcodepeep.c (pic16_pCodeOpCopy): fixed copying of WREG, PRODL
2994           and PRODH closing bug #1071770 (peephole optimizer)
2995
2996 2005-01-19 Raphael Neider <rneider AT web.de>
2997
2998         * src/SDCCglobl.h: ensure that PATH_MAX >= 2048 to guarantee
2999           cmdLine buffers (used when calling sdcpp...) are large enough
3000           (MAX_PATH=256 truncates arguments leading to system halts when
3001           used in MinGW...)
3002         * src/pic16/gen.c (pic16_sameRegs): relaxed size criterion
3003         * (genUminus): rewritten to for efficiency
3004         * (genNearPointer[GS]et): enforce reloading of FSR0 (was still
3005           used uninitialized in some cases)
3006         * (genCast): upcasting a 16bit int to a 24bit GPOINTER may not
3007           copy the third byte from the int -- now assumes 0x80 (data memory)
3008         * src/pic16/genarith.c (pic16_genPlus): fixed bug when swapping
3009           operands (genAddLit expects the iCode's operands to swapped as
3010           well), fixed leftover bytes (crashed for short left operands)
3011         * (pic16_genMinusDec): performance improvements, removed false
3012           PIC14 emitSKPNCs
3013         * (pic16_genMinus): fixed to cope with differently sized operands
3014         * src/pic16/glue.c (pic16_glue): added new banksel optimization
3015           for --obanksel > 1
3016         * src/pic16/pcode.c: implemented (first phase of) banksel optimization
3017         * src/pic16/graph.[ch]: implementation of directed graphs, used by
3018           new banksel optimization
3019         * src/pic16/pcoderegs.c (pCodeRegMapLiveRangesInFlow): prevented
3020           analysis for temporary registers (segfaults...)
3021         * src/pic16/peeph.def: added rule
3022
3023 2005-01-18 Vangelis Rokas <vrokas AT otenet.gr>
3024
3025         * device/lib/pic16/libc/stdlib/x_ftoa.c: it defines x_ftoa function
3026         which converts a float number to its ASCII representation
3027         * device/lib/pic16/libc/utils/cnvfrac.S,cnvint.S: support
3028         functions to convert the fractional and integer part of a float to ASCII,
3029         * device/lib/pic16/libc/stdlib/(calloc.c,free.c, malloc.c,
3030         realloc.c): added _MALLOC_SPEC to explicit place variables in data
3031         ram
3032         * device/include/asm/pic16/features.h: added _CODE, _DATA, _AUTOMEM,
3033         _STATMEM macros,
3034         * device/include/pic16/adc.h: added GPL info,
3035         * src/pic16/gen.c (genIfxpCOpJump): perform an genIfxJump but using
3036         a pCodeOp as tested operand,
3037         * (genNearPointerGet): optimized bit testing, does not use
3038         intermediate register for bit value, test directly instead with
3039         BTFSS, BTFSC, works only for single bits,
3040         * (genpic16Code): dump the name of the iCode in the asm,
3041         * src/pic16/ralloc.c (decodeOp): removed static declaration and
3042         renamed to pic16_decodeOp,
3043         * (serialRegAssign): do not allocate a temporary register for iCode
3044         sequences that test a single bit for 1/0
3045
3046 2005-01-12 Vangelis Rokas <vrokas AT otenet.gr>
3047
3048         * src/pic16/pcode.[ch]: introduced pic16_stackpnt_*,
3049         pic16_framepnt_*, pic16_stack_*, pic1_frame_* pointer variables to
3050         access stack and frame pointers. They are initially assigned to
3051         point at pic16_pc_fsr1[lh] and pic16_pc_fsr2[lh] variables and other
3052         accessing SFRs. Updated all occurences of modification of stack or
3053         frame pointer in gen.c and pcode.c,
3054         * src/pic16/ralloc.c (serialRegAssign): fixed two bugs with
3055         assigning of a literal value to pointers,
3056         * src/pic16/main.c (pic16_finiliseOptions): set pre-processor define
3057         flag STACK_MODEL_SMALL or STACK_MODEL_LARGE according to the model
3058         selected
3059
3060 2005-01-11 Vangelis Rokas <vrokas AT otenet.gr>
3061
3062         * doc/sdccman.lyx: update documentation about stack pragma, added
3063         some info for stack memory models
3064
3065 2005-01-08 Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
3066
3067         * src/pic16/gen.c (DEBUGpc): MSVC 6 does not support macro variable arguments
3068
3069 2005-01-08 Raphael Neider <rneider AT web.de>
3070
3071         * src/pic16/device.c (pic16_dump_usection): changed naming scheme for
3072           udata sections to fix bug #1097823
3073
3074 2005-01-05 Raphael Neider <rneider AT web.de>
3075
3076         * src/pic16/gen.c (genGenericShift): added handling of differently
3077           sized left operand and result
3078
3079 2005-01-04 Raphael Neider <rneider AT web.de>
3080
3081         * src/pic16/gen.c (genIfxJump): fixed inverted skips on CARRY
3082         * (genIfx): fixed (?) read from uninitialized SPIL_LOC (now assumes CARRY
3083           to hold the condition bit)
3084         * added new version of genCmp (old code available via #define)
3085         * added new version of genShiftLeft/genShiftRight in a generic
3086           way, now supports shifting by negative values
3087         * (genLeftShiftLiteral, genRightShiftLiteral): use absolute value of
3088           shiftCount (expected by genGenericShift)
3089         * src/pic16/genarith.c (genPlus): added code for adding CARRY+literal
3090         * src/pic16/pcode.c (pic16_OptimizeJumps): removed annoying statistics
3091           dump
3092         * (pic16_newpCodeOpLit): changed to cast to unsigned char (as e.g. -32766
3093           is an invalid literal too...)
3094
3095 2005-01-04 Vangelis Rokas <vrokas AT otenet.gr>
3096
3097         * src/pic16/gen.c (aopForSym, genEndFunction): applied some fixes
3098         from Raphael Neider,
3099         * src/pic16/pcode.c (pic16_newpCodeOpLit): removed casting to char
3100         for 8-bit literals. This fixes some literal operands which are sign
3101         extended to 16-bits ints when instruction needs only 8-bits.
3102
3103 2004-12-31 Paul Stoffregen <paul AT pjrc.com>
3104
3105         * device/lib/logf.c: added mcs51 assembly version
3106         * device/lib/expf.c: added mcs51 assembly version
3107         * device/lib/_logexpf.c: new shared asm code for expf and logf
3108         * device/include/math.h: add defines for assembly math library
3109         * device/lib/Makefile.in: build new _logexpf.c
3110         * device/lib/libfloat.lib: use new _logexpf.c
3111
3112 2004-12-29 Slade Rich <slade_rich AT users.sourceforge.net>
3113
3114         * src/pic/device.c
3115         * src/pic/pcode.c : adjusted internal stack and pre-allocated registers for
3116           device types which have less than 0x7f registers.
3117
3118 2004-12-29 Slade Rich <slade_rich AT users.sourceforge.net>
3119
3120         * src/pic/genarith.c : Fixed problem with subtraction where the result would not be updated when borrowing.
3121
3122 2004-12-28 Paul Stoffregen <paul AT pjrc.com>
3123
3124         * device/lib/printf_fast.c: only build on supported arch.
3125         * device/lib/printf_tiny.c: only build on supported arch.
3126         * device/lib/printf_fast_f.c: only build if asm float lib
3127         * device/lib/_fsget1arg.c: only build if asm float lib
3128         * device/lib/_fsget2args.c: only build if asm float lib
3129         * device/lib/_fsnormalize.c: only build if asm float lib
3130         * device/lib/_fsreturnval.c: only build if asm float lib
3131         * device/lib/_fsrshift.c: only build if asm float lib
3132         * device/lib/_fsswapargs.c: only build if asm float lib
3133         * device/include/stdio.h: don't provide print_fast,
3134           print_fast_f, print_tiny prototypes if --xstack used
3135
3136 2004-12-28 Maarten Brock <sourceforge.brock AT dse.nl>
3137
3138         * device/lib/sincosf.c (sincosf): don't invert bit/bool by ~
3139         * support/regression/ports/mcs51-stack-auto/spec.mk: added new _fs.. files
3140           to the SOURCES
3141
3142 2004-12-28 Paul Stoffregen <paul AT pjrc.com>
3143
3144         * device/lib/printf_fast_f.c: same as printf_fast, but
3145           with floating point enabled
3146         * device/lib/printf_fast.c: minor tweaks
3147         * device/include/stdio.h: add printf_fast_f
3148
3149 2004-12-27 Paul Stoffregen <paul AT pjrc.com>
3150
3151         * src/SDCCmain.c: make --float-reent default for mcs51
3152         * device/lib/_fsadd.c: added mcs51 assembly version
3153         * device/lib/_fssub.c: added mcs51 assembly version
3154         * device/lib/_fsmul.c: added mcs51 assembly version
3155         * device/lib/_fsdiv.c: added mcs51 assembly version
3156         * device/lib/_fseq.c: added mcs51 assembly version
3157         * device/lib/_fsneq.c: added mcs51 assembly version
3158         * device/lib/_fsgt.c: added mcs51 assembly version
3159         * device/lib/_fslt.c: added mcs51 assembly version
3160         * device/lib/_fscmp.c: shared code for fseq,fsgt,fslt,fsneq
3161         * device/lib/Makefile.in: add _fscmp to build
3162         * device/lib/libfloat.lib: add _fscmp to build
3163
3164 2004-12-27 Paul Stoffregen <paul AT pjrc.com>
3165
3166         * device/lib/_fs2slong.c: added mcs51 assembly version
3167         * device/lib/_fs2sint.c: added mcs51 assembly version
3168         * device/lib/_fs2schar.c: added mcs51 assembly version
3169         * device/lib/_fs2ulong.c: added mcs51 assembly version
3170         * device/lib/_fs2uint.c: added mcs51 assembly version
3171         * device/lib/_fs2uchar.c: added mcs51 assembly version
3172         * device/lib/_slong2fs.c: added mcs51 assembly version
3173         * device/lib/_sint2fs.c: added mcs51 assembly version
3174         * device/lib/_schar2fs.c: added mcs51 assembly version
3175         * device/lib/_ulong2fs.c: added mcs51 assembly version
3176         * device/lib/_uint2fs.c: added mcs51 assembly version
3177         * device/lib/_uchar2fs.c: added mcs51 assembly version
3178         * device/include/float.h: added #define to select asm vs c
3179
3180 2004-12-26 Paul Stoffregen <paul AT pjrc.com>
3181
3182         * device/lib/printf_fast.c: improvements to float output
3183         * device/include/float.h: add defines for assembly float library
3184         * device/lib/_fsget1arg.c: receive 1 float arg
3185         * device/lib/_fsget2args.c: receive 2 float args (reentrant)
3186         * device/lib/_fsnormalize.c: normalize a float
3187         * device/lib/_fsreturnval.c: return float, various helper routines
3188         * device/lib/_fsrshift.c: right shift a float's mantissa
3189         * device/lib/_fsswapargs.c: swap 2 floats
3190         * device/lib/Makefile.in: build these 6 new files for mcs51
3191         * device/lib/libfloat.lib: add these 6 files to the library
3192
3193 2004-12-26 Borut Razem <borut.razem AT siol.net>
3194
3195         * sim/ucsim/avr.src/arith_inst.cc: fixed bug #1088372- savr is not
3196           built by gcc 3.4.2
3197
3198 2004-12-25 Paul Stoffregen <paul AT pjrc.com>
3199
3200         * device/lib/printf_tiny.c: printf for mcs51 in only 267 bytes,
3201           and fully reentrant and register bank neutral.
3202         * device/lib/printf_fast.c: added float (not enabled by default),
3203           added compact/slower integer (also not enabled by default),
3204           improved size/speed of fast integer code, other minor changes
3205         * device/include/stdio.h, device/lib/Makefile.in,
3206           device/lib/libsdcc.lib: integrate printf_tiny into mcs51 build
3207
3208 2004-12-24 Maarten Brock <sourceforge.brock AT dse.nl>
3209
3210         * src/pic16/pcode.c: declaring variables other than at the start of a
3211           block is not supported in C by VC6.
3212
3213 2004-12-22 Vangelis Rokas <vrokas AT otenet.gr>
3214
3215         * applied a previous patch from Raphael Neider that wasn't included
3216         in the previous commits, which fixes infinite loops within jumptable
3217         improvements,
3218         * made some fixes that previous patches introduced
3219
3220 2004-12-21 Vangelis Rokas <vrokas AT otenet.gr>
3221
3222         * src/pic16/gen.c (pic16_aopGet): applied fix from Raphael Neider
3223         that fixes an issue with AOP_PCODE asmop's offset,
3224         * (pic16_popCopyReg): update instance field too,
3225         * (mov2w): modified to pic16_mov2w because it conflicts with mov2w
3226         function of pic port,
3227         * (genCmp, genAnd, genAssign),
3228         * src/pic16/genarith.c (genAddLit): some fixes from Raphael Neider,
3229
3230 2004-12-20 Vangelis Rokas <vrokas AT otenet.gr>
3231
3232         * src/SDCCast.c (gatherAutoInit): allow pic16 to emit static
3233         variables initial values to idata section,
3234         * src/SDCCicode.c (geniCodeCall): patch from ### to fix unreferenced
3235         variables in some functions. This utilizes parmBytes field of iCode
3236         structure to hold the offset of the variable in stack. (might be
3237         able to use the stack field too?)
3238         * applied patch from Raphael Neider # ### , # ###
3239         * src/pic16/glue.c (pic16emitRegularMap): fix to print static
3240         variable initial values in idata section,
3241         * src/pic16/ralloc.c (pic16_allocDirReg): don't allocate register
3242         for static variables with initial value
3243         * src/device/lib/pic16/libsdcc/float/ulong2fs.c (__ulong2fs):
3244         applied fix in while loop from Raphael Neider.
3245
3246 2004-12-19 Maarten Brock <sourceforge.brock AT dse.nl>
3247
3248         * src/ds390/gen.c (genCpl): fixed bit=~(char/bit) bugs, added warning
3249         * src/ds390/main.c (_ds390_regparm): don't pass bit params in registers
3250         * src/ds390/ralloc.c (serialRegAssign): spill bits
3251         * src/mcs51/gen.c (genCpl): fixed bit=~(char) bugs, added warning
3252         * support/Util/SDCCerr.c,
3253         * support/Util/SDCCerr.h: added warning W_COMPLEMENT for using bit=~(bit)
3254         * support/regression/tests/bitvars.c: added tests for bitwise complement(~)
3255         * support/regression/tests/bitwise.c: added test for bitwise complement(~)
3256
3257 2004-12-09 Maarten Brock <sourceforge.brock AT dse.nl>
3258
3259         * device/include/sdcc-lib.h: inserted LGPL, added includes
3260           asm/ds390/features.h and asm/mcs51/features.h
3261         * device/include/asm/default/features.h,
3262         * device/include/asm/gbz80/features.h,
3263         * device/include/asm/z80/features.h: added empty _AUTOMEM
3264           and _STATMEM
3265         * device/include/asm/ds390/features.h,
3266         * device/include/asm/mcs51/features.h: added files with defines for
3267           _AUTOMEM and _STATMEM indicating automatic and static storage class
3268         * device/lib/printf_large.c (_print_format): optimized & used _AUTOMEM
3269         * doc/sdccman.lyx: version 2.4.7, updated xstack documentation
3270         * src/SDCCicode.c (geniCodeCast),
3271         * src/SDCCsymt.c (compareType): allow cast of data-ptr to idata-ptr
3272         * src/SDCCloop.c (loopInduction): removed unused variable lr
3273         * src/SDCCopt.c (convilong, convertToFcall): moved "easy special case"
3274           to convertToFcall to include char modulo (RFE 1065037), added check
3275           if left operand is unsigned and use abs of literal value
3276         * src/SDCCpeeph.c (setFromConditionArgs): removed double quotes option
3277           as it doesn't work after conversion from peephole.def to peephole.rul
3278         * src/mcs51/gen.c (toBoolean): added check for size,
3279           (genModOneByte): optimized code for signed char modulo a literal
3280           power of 2 (thanks to Hubert Sack),
3281           (genRRC): removed unnecessary "clr c",
3282           (genRLC): replaced "add a,acc" with cheaper "rlc a"
3283         * src/mcs51/peeph.def: renamed 115 to 115.a, added rule 115.b: another
3284           jump optimization,
3285           swapped rules 256.c and 256.d,
3286           extended 256.d by using new multiple checks (thanks Erik),
3287           added rules 256.e and 256.f,
3288           updated rule 261.a and 261.b to new generated code
3289         * support/regression/tests/muldiv.c: added test div/mod by a power of 2
3290
3291 2004-12-07 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
3292
3293         * src/SDCCloop.c (basicInduction, loopInduction): fixed several
3294           induction related bugs, including first part of bug #1074377
3295
3296 2004-12-05 Vangelis Rokas <vrokas AT otenet.gr>
3297
3298         * applied patch from bug-report #1076292,
3299         * applied patches for genAnd and Goto-optimizations for Raphael
3300         Neider,
3301         * src/SDCCicode.c (printOperand): fixed !REGA source to compile and
3302         dump a less iCode information,
3303         * src/pic16/device.h (pic16_options_t): added field debgen,
3304         * src/pic16/gen.h: added macros DUMP_FUNCTION_ENTRY,
3305         DUMP_FUNCTION_EXIT, FENTRY, FENTRY2,
3306         * src/pic16/gen.c (my_powof2): renamed to pic16_my_powof2 and made
3307         puclic,
3308         * (various functions): added macros FENTRY and FENTRY2 to functions,
3309         to emit function prologue,
3310         * (various functions): fixed indentation,
3311         * (genNearPointerGet): fixed loading of FSR0,
3312         * (genPackBits): applied patch from Raphael Neider to fix updating
3313         of FSR0 and touching only the modified bits,
3314         * src/pic16/genarith.c (various functions): added macros FENTRY to
3315         emit function prologue in comments,
3316         * src/pic16/pcode.h: added functions debugf2, debugf3,
3317         * src/pic16/ralloc.c: partial fix for packForPush caused
3318         segmentation fault,
3319
3320 2004-12-04 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
3321
3322         * src/mcs51/peeph.def: added 261.a,b (16 bit rotate) by Stas Sergeev
3323           <stsp AT users.sourceforge.net> with reversed byte order
3324         * support/regression/tests/rotate.c: added (ds390 skips some tests)
3325
3326 2004-12-03 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
3327
3328         * src/z80/gen.c (genLeftShift, genRightShift): fixed second part of
3329           bug #1074377
3330         * src/hc08/gen.c (genrshFour, shiftRLong, shiftLLong),
3331         * src/mcs51/gen.c (shiftLLong): Fixed some shifting bugs Frieder found
3332
3333 2004-12-02 Slade Rich <slade_rich AT users.sourceforge.net>
3334
3335         * src/pic/pcode.c : fixed a problem where banksel was not being inserted.
3336
3337 2004-12-02 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
3338
3339         * src/SDCCpeeph.c (callFuncByName): support combined peephole rule
3340           conditions,
3341           (setFromConditionArgs): friendly operand parser for peephole rules,
3342           (operandBaseName, operandsNotRelated): new peephole condition
3343           "operandsNotRelated" -- similar to "operandsNotSame", but takes
3344           architecture specific register naming into account, handles n-way
3345           comparisons, and supports quoted literals
3346         * src/mcs51/peeph.def: restored rule 177.d with an extra condition
3347
3348 2004-12-02 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
3349
3350         * src/mcs51/peeph.def: fixed bug #1076940
3351
3352 2004-12-02 Slade Rich <slade_rich AT users.sourceforge.net>
3353
3354         * device/include/pic/pic16f877.h : added an include file for the PIC16F877 device.
3355
3356 2004-11-28 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
3357
3358         Adding support for replacing ljmps with sjmps in jumptables
3359         generated for switch statements. For now you need to set the
3360         environment variable SDCC_SJMP_JUMPTABLE to enable this.
3361         Now 4 algorithms for mcs51 jumptable generation are used:
3362         ljmp or sjmp jumptables for up to 16 cases, stack-pushing target
3363         addresses loaded pc-relative for up to 112 cases and stack-pushing
3364         target addresses loaded with offset from dptr for up to 256 cases.
3365
3366         * src/SDCCpeeph.c: added peephole conditional labelJTInRange
3367         * src/mcs51/main.c: adapted constants for switch table generation
3368         * src/mcs51/peeph.def: added 260.x for replacing ljmp with sjmp
3369
3370 2004-11-26 Maarten Brock <sourceforge.brock AT dse.nl>
3371
3372         * device/lib/printf_large.c (_print_format): fixed bug 1073386
3373         * support/regression/tests/bug1057979.c: added test for bug 1073386
3374
3375 2004-11-25 Vangelis Rokas <vrokas AT otenet.gr>
3376
3377         * src/pic16/pcode.c: fixed bug which may produce error in non-GNU
3378         compilers
3379
3380 2004-11-25 Vangelis Rokas <vrokas AT otenet.gr>
3381
3382         * src/pic16/device.h,
3383         * src/pic16/genarith.c,
3384         * src/pic16/glue.c,
3385         * src/pic16/main.c,
3386         * src/pic16/pcode.c: applied patches #1068154 and #1070213
3387
3388 2004-11-24 Vangelis Rokas <vrokas AT otenet.gr>
3389
3390         Large cummulative patch for pic16 port.
3391         * device/lib/pic16/gstack.h: NEW, user can specify its own handler
3392         to call when a stack overflow occurs,
3393         * (malloc.h): added CVS Id tag,
3394         * (pic18f{242,252,442,452}.h): added T0CONbits structure and
3395         variable,
3396         * added libc directory. The current version of LibC contains string
3397         functions, ctype functions and macros and some functions of the
3398         stdlib set (like malloc/free/atof/atoi etc...). All functions are to
3399         be extensively tested in the future. Standard disclaimer here.
3400         Library is not automatically build yet. But one can build it by
3401         invoking 'make' inside the libc directory.
3402         * added ADC library under libio. Preliminary version yet.
3403
3404         * src/pic16/gen.h: added emitTOGC macro, to toggle Carry flag,
3405         * src/pic16/gen.c (aopForRemat): asmop size is filled by
3406         aopForRemat() now and not by pic16_aopOp(),
3407         * (pic16_popGetTempReg): removed warning messgae when allocating
3408         temporary registers, its a buggy feature and will be removed,
3409         * (pic16_popGet): set register instance field in AOP_CRY,
3410         * (pic16_outBitC): fixed for results in size greater than 1,
3411         * (genUminusFloat): fixed for pic16, ported code from mcs51,
3412         * (pic16_storeForReturn): optimized return of 0,
3413         * (genCmp): experimental code for new genCmp which uses PIC18's
3414         special compare&skip instructions. Initial tests fail some times
3415         with variables grater than 1 byte in size, so new code is disabled,
3416         * (genUnpackBits, genPackBits): more optimizations in reading/writing,
3417         a single bit,
3418         * (genCast): began a fix to optimize the casting of a bit to another
3419         bit, now assigning a bitfield to another bitfield will fail, sorry,
3420         * src/pic16/main.c: disabled the use of lr-support feature,
3421         * src/pic16/pcode.h: renamed PCASMDIR to PCAD,
3422         * added some function prototypes, added function _debugf prototype,
3423         * src/pic16/pcode.c: (pic16_get_op): fixed emitting operands of register
3424         bits with offset (case PO_GPR_BIT),
3425         * (genericPrint): don't emit INFO pcode when --pcode-verbose not in
3426         command line,
3427         * (isBankInstruction): modified to return 0 for no banking instruction,
3428         and 1 for banking instruction,
3429         * (pic16_isPCinFlow): check for PCAD (assembler directives) too,
3430         caused stop processing pCodes after a inline assembly block,
3431         * (pic16_popCopyGPR2Bit): updated to match bitfields with offset,
3432         * src/pic16/pcoderegs.c: fixed a bug with eliminating some temporary
3433         registers when it shouldn't,
3434         * src/pic16/ralloc.c (allocReg): add preliminary support for
3435         supporting a limited set of temporary registers,
3436
3437 2004-11-23 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
3438
3439         * src/hc08/gen.c (genAssign, genPointerGetSetOfs, genDataPointerGet,
3440           genDataPointerSet): ensure assignments always copy in MSB to LSB
3441           order,
3442           (loadRegFromAop): recognize CLRH optimization,
3443           (genFunction): optimize RECEIVE iCodes in reentrant functions
3444
3445 2004-11-20 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
3446
3447         * src/SDCCmain.c (parseCmdLine, optionsTable[]): fixed bug with
3448           --out-fmt-s19 turning into --out-fmt-elf if s19 was already
3449           selected.
3450         * src/SDCCmain.c (linkEdit): don't define SSEG for HC08
3451         * src/hc08/main.c (_hc08_setDefaultOptions): default xdata to be
3452           contiguous with data
3453
3454 2004-11-19 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
3455
3456         * device/lib/_gptrget.c (_gptrget),
3457         * device/lib/_gptrgetc.c (_gptrgetc),
3458         * device/lib/_gptrput.c (_gptrput): _naked allows to use ret
3459           instead of sjmp to ret
3460         * src/mcs51/peeph.def: added peepholes 3.d-g and 177.g,h provided
3461           by Hubert Sack <hsack2002 AT arcor.de> in RFE #1067986, thanks
3462
3463 2004-11-18 Maarten Brock <sourceforge.brock AT dse.nl>
3464
3465         * .version: bumped version to 2.4.7
3466         * device/lib/_gptrget.c (_gptrget): is now _naked
3467         * device/lib/_gptrgetc.c (_gptrgetc): is now _naked
3468         * device/lib/_gptrput.c (_gptrput): is now _naked
3469         * src/SDCCast.c (createBlock): removed ridiculous self-assignment,
3470           (createFunction): fixed xstack
3471         * src/SDCCglue.c (emitMaps): set allocation required for bit area
3472         * src/SDCCicode.c (geniCodeCast): don't change SPEC_OCLS for literal
3473           or bit either,
3474           (geniCodeCritical): store original interrupt state in an iTemp bit
3475           var unless stack-auto
3476         * src/SDCCicode.h: added CRITICAL and ENDCRITICAL to SKIP_IC2
3477         * src/SDCCmain.c (setIncludePath): added include/target to search path
3478         * src/SDCCmem.c (allocParms): store bit vars in bit space, not overlay
3479         * src/SDCCsymt.c (checkFunction): don't check regbank for isr's against
3480           prototype,
3481           (processFuncArgs): put bit vars in bit area
3482         * src/mcs51/gen.c (saveRegisters, unsaveRegisters, genXpush, saveRBank,
3483           unsaveRBank): fixed xstack,
3484           (genFunction): bugfix: replaced (global!) reentrant with fReentrant,
3485           (genFunction, genEndFunction): fixed xstack,
3486           (genAssign): optimization don't walk backwards through mem
3487         * src/mcs51/main.c (_mcs51_regparm): don't pass bit params in registers
3488         * src/mcs51/ralloc.c (createStackSpil): spill bits to bit area
3489         * support/regression/Makefile: also make library (for stack-auto) when
3490           making "all" and added "test-mcs51-xstack-auto"
3491         * support/regression/fwk/lib/testfwk.c: added T2_isr prototype for mcs51
3492         * support/regression/ports/mcs51/T2_isr.c: added this file as a stub
3493         * support/regression/ports/mcs51/fwk.lib: added to link T2_isr stub
3494         * support/regression/ports/mcs51/spec.mk: added rules for fwk.lib
3495         * support/regression/ports/mcs51-stack-auto/spec.mk: replaced
3496           make-library by MAKE_LIBRARY
3497         * support/regression/ports/mcs51-xstack-auto/spec.mk: file added to run
3498           regression tests for xstack
3499         * support/regression/tests/bitvars.c: test for bit vars (bug 938782)
3500         * support/regression/tests/critical.c: test for critical on mcs51
3501
3502 2004-11-18 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
3503
3504         * support/regression/ports/ucz80/spec.mk: use include and lib files from
3505           built version of sdcc instead of installed version
3506
3507 2004-11-14 Maarten Brock <sourceforge.brock AT dse.nl>
3508
3509         * src/mcs51/gen.c (toBoolean): fixed bug 1065458
3510         * device/lib/Makefile.in: z80 uses printf_large.c, sprintf.c and
3511           vprintf.c now
3512         * device/lib/printf_large.c (calculate_digit): fixed bug 1057979
3513         * device/lib/z80/Makefile: don't use printf.c as it fails bug 1057979
3514           WARNING: remove device/lib/build/z80/printf.o by hand when
3515           updating from previous build!
3516         * device/lib/z80/printf.c: updated comment
3517         * support/regression/tests/bug1057979.c: test all ports now
3518         * support/regression/tests/bug1065458.c: file added
3519
3520 2004-11-12 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
3521
3522         * src/z80/gen.c (genFunction, genEndFunction): avoided generating
3523           *_start and *_end symbols for static functions
3524
3525 2004-11-11 Maarten Brock <sourceforge.brock AT dse.nl>
3526
3527         * src/SDCCmain.c (linkEdit): don't suppress crt0 if --nostdlib is used
3528           and search crt0.o in all library paths,
3529           (setIncludePath): proper handling of --nostdinc,
3530           (setLibPath): proper handling of --nostdlib
3531         * support/regression/Makefile,
3532         * support/regression/ports/ds390/spec.mk,
3533         * support/regression/ports/gbz80/spec.mk,
3534         * support/regression/ports/hc08/spec.mk,
3535         * support/regression/ports/mcs51/spec.mk,
3536         * support/regression/ports/mcs51-large/spec.mk,
3537         * support/regression/ports/mcs51-stack-auto/spec.mk,
3538         * support/regression/ports/z80/spec.mk: use include and lib files from
3539           built version of sdcc instead of installed version
3540         * doc/sdccman.lyx: fixed typo in --nostdinc
3541
3542 2004-11-10 Slade Rich <slade_rich AT users.sourceforge.net>
3543
3544         * src/pic/pcode.c,
3545         * src/pic/device.c,
3546         * src/pic/ralloc.c,
3547         * src/pic/gen.c : added support to generate code for struct bit fields.
3548
3549 2004-11-06 Maarten Brock <sourceforge.brock AT dse.nl>
3550
3551         * as/xa51/xa_version.h,
3552         * device/include/errno.h,
3553         * device/include/regc515c.h,
3554         * device/lib/_itoa.c,
3555         * device/lib/_ltoa.c,
3556         * device/lib/ser_ir_cts_rts.c,
3557         * sim/ucsim/xa.src/glob.cc,
3558         * sim/ucsim/xa.src/inst_gen.cc,
3559         * sim/ucsim/xa.src/xa_bit.cc,
3560         * sim/ucsim/xa.src/xa_sfr.cc,
3561         * sim/ucsim/z80.src/inst_dd.cc,
3562         * sim/ucsim/z80.src/inst_fdcb.cc,
3563         * support/scripts/keil2sdcc.pl,
3564         * src/pic16/pic16.dsp,
3565         * src/pic16/pic16a.dsp: corrected cvs line endings
3566         * device/lib/printf_large.c: fixed bug 1057979
3567         * src/pic16/gen.c: fixed non-C standard code
3568         * src/SDCCmain.c: made --pack-iram default, added --no-pack-iram
3569         * src/SDCCglobl.h: changed pack_iram to no_pack_iram
3570         * support/regression/ports/mcs51/support.c: reload T1 asap
3571         * doc/sdccman.lyx: updated for options --pack-iram and --no-pack-iram,
3572           pdata use and clear idata startup behaviour
3573         * support/regression/tests/bug1057979.c: added
3574
3575 2004-11-04 Maarten Brock <sourceforge.brock AT dse.nl>
3576
3577         * device/examples/ds390/ow390/ad26.h,
3578         * device/examples/ds390/ow390/cnt1d.h,
3579         * device/examples/ds390/ow390/crcutil.c,
3580         * device/examples/ds390/ow390/ownet.h,
3581         * device/examples/ds390/ow390/owsesu.c,
3582         * device/examples/ds390/ow390/swt12.h,
3583         * device/examples/ds390/ow390/swtoper.c,
3584         * device/examples/ds390/ow390/temp10.h,
3585         * device/examples/ds390/ow390/thermodl.c,
3586         * device/examples/ds390/tinitalk/tinitalk.dsp,
3587         * device/examples/ds390/tinitalk/tinitalk.dsw,
3588         * device/examples/mcs51/clock/hw.h,
3589         * device/examples/mcs51/simple2/go.bat,
3590         * device/examples/serialcomm/windows/serial.h,
3591         * device/examples/xa51/dummy.c,
3592         * device/examples/xa51/hello.c,
3593         * device/include/80c51xa.h,
3594         * device/include/at89x051.h: corrected cvs line endings
3595
3596 2004-11-04 Vangelis Rokas <vrokas AT otenet.gr>
3597
3598         * src/pic16/main.c (options): added command line --gstack, to trace
3599         stack over/under flows,
3600         * added pragma 'wparam' to allow passing first byte of function
3601         parameters via WREG, syntax is #pragma wparam my_function[, func2...]
3602         * src/pic16/gen.c (pic16_testStackOverflow): function which emits a
3603         call to __gstack_test function and sets up the symbol as extern,
3604         * (pic16_pushpCodeOp, pic16_poppCodeOp, pushw, pushaop, popaopidx,
3605         * popaop): added call to pic16_testStackOverflow,
3606         * (wParamCmp, inWparamList): NEW, test existence of a symbol in
3607         wparamList list,
3608         * (genCall, genPcall): now all parameters are passed via stack
3609         except in functions that are pass to wparam pragma in which WREG is
3610         used too,
3611         * (genPcall): REENTRANT flag is checked to see if variable prototype
3612         contains reentrant keyword, don't call a non-reentrant function, via
3613         a reentrant function pointer or vice versa, functions are never
3614         passed via WREG,
3615         * (genJumpTab): applied patch from bug #1057478 by R.Neider and
3616         D.Winkler,
3617         * src/pic16/glue.c (pic16emitRegularMap): fixed bug which caused a
3618         SIGSEGV when accessing a NULL register stucture,
3619         * (pic16_printGPointerType): modified to handle UPPER modifier for
3620         function initializers, changed prototype of function to simpler one,
3621         * (pic16_printIvalFuncPtr): check to see if function is already
3622         added in externs list,
3623         * src/pic16/pcoderegs.c (pCodeOptime2pCodes): fixed bug which
3624         optimized a move from W to SFR with a move to the same register
3625         later after a CALL,
3626         * device/lib/pic16/debug: NEW directory, contains debug features
3627         which are enabled when linking with libdebug.lib, currently command
3628         line option --gstack enables stack pointer tracing for over/under
3629         flow, corresponding sources are in debug/gstack
3630
3631 2004-10-30 Vangelis Rokas <vrokas AT otenet.gr>
3632
3633         * doc/sdccman.lyx: updated SDCC version,
3634         * (PIC16 port): update list of command line options,
3635         * src/pic16/device.h (structure pic16_options_t): added field gstack
3636         to enable stack overflow tracing on push/pops,
3637         * src/pic16/device.c (statistics structure): added statistics
3638         structure,
3639         * (pic16_dump_access, pic16_dump_usection, pic16_dump_gsection,
3640         pic16_dump_int_registers): increase statistics counters for each
3641         * variable which is encountered
3642         * (pic16_dump_usection): emit each .udata variable to its own udata
3643         section,
3644         * src/pic16/gen.c (assignResultValue, genCall, genPcall, genFunction):
3645         when macro USE_WREG_IN_FUNC_PARAMS is set to 0 pass all function
3646         parameters via stack, otherwise use old scheme,
3647         * src/pic16/glue.c (pic16_emitStatistics): dump statistics in
3648         assembler output file,
3649         * src/pic16/main.c: added command line options --gstack to enable
3650         push/pop tracing for stack overflow,
3651         * src/pic16/pcode.c (all pCodeInstruction records for PIC18F
3652         instructions): added size of each instruction,
3653         * (pic16_countInstruction): estimate size of instructions in
3654         the_pFile list, inline assembly blocks are not counted,
3655         * (pic16_FixRegisterBanking): trace previous register usage, when
3656         banksel optimizations is greater than 0, don't emit a redudant
3657         banksel directive,
3658
3659 2004-10-26 Slade Rich <slade_rich AT users.sourceforge.net>
3660
3661         * src/pic/ralloc.c : fixed inefficient code produced when compiling a complimented bit operation.
3662         * src/pic16/ralloc.c : applied same fix for pic16.
3663         * src/pic/gen.c : tidied it up a little.
3664
3665 2004-10-25 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
3666
3667         * src/mcs51/peeph.def: disabled 259.a,b for removing redundant ret,
3668         thanks to Martin Helmling for reporting (mail on sdcc-devel 2004-10-25)
3669
3670 2004-10-22 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
3671
3672         * src/SDCCast.c (reverseParms): fixed bug #1040577 (part 2)
3673
3674 2004-10-22 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
3675
3676         * device/lib/ser_ir_cts_rts.c: integer promotion caused a call to the
3677         non-reentrant function __modsint in the interrupt function (thus
3678         corrupting math operations during serial I/O)
3679         * device/lib/ser_ir.c: as above, changed buffersize
3680         * src/mcs51/peeph.def: added 259.a,b for removing redundant ret,
3681         256.c,d for zeroing
3682         * doc/Makefile: added option -t for rsync
3683
3684 2004-10-22 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
3685
3686         * src/SDCCast.h (struct ast),
3687         * src/SDCCast.c (reverseParms, copyAst): fixed bug #1040577 (part 1)
3688
3689 2004-10-20 Borut Razem <borut.razem AT siol.net>
3690
3691         * support/scripts/sdcc.nsi: added include/pic16/*.h to the setup
3692         package
3693
3694 2004-10-20 Vangelis Rokas <vrokas AT otenet.gr>
3695
3696         * device/lib/pic16/libsdcc/Makefile: added lregs directory in
3697         makefile targets,
3698         * device/lib/pic16/libsdcc/lregs/{Makefile,lrst.c,lrrest.c}: NEW
3699         support functions to replace long sequences of MOVFF's from access
3700         bank registers to stack and vice versa,
3701         * src/pic16/device.h: added new field opt_flags, where optimization
3702         flags can be set to enable certain features,
3703         * src/pic16/gen.c (pic16_emitpinfo): NEW to add PC_INFO pCode in
3704         * pBlock, (genFunction, genEndFunction): surroung loop for
3705         saving/loading used registers in stack with PC_INFO pCodes,
3706         INF_LREGS. Code in between can then be optimized by pCode optimizer
3707         to support function calls,
3708         * (genDataPointerSet): fixed bug which loaded float fields in
3709         structures with corrupt data,
3710         * src/pic16/genutils.c (debugf, _debugf): macro/function which emits
3711         in a standard way debug info on stderr. Feature used for developing
3712         and debugging only,
3713         * src/pic16/glue.c (pic16glue): reformatted, deleted some old and
3714         obsolete chunks of code,
3715         * if optimization flag OF_LR_SUPPORT was set, call pic16_OptimizeLocalRegs,
3716         * src/pic16/main.c (_pic16_parseOptions): added handler for --flr-support,
3717         * pic16/src/pcode.c (pic16_newpCodeInfo,
3718         * (pic16_newpCodeOpLocalRegs),
3719         * (pic16_convertLocalRegs2Support): NEW, to support new optimization
3720         feature,
3721         * (pic16_pCodeConstString): printing of the initial value of a
3722         symbol as a comment is inhibited since parsing was already done by
3723         copyStr and output is corrupt,
3724         * (pic16_pCode2str, genericPrint): handle PC_INFO pCode,
3725
3726 2004-10-20 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
3727
3728         * src/mcs51/ralloc.c (packRegisters): fixed bug #1044601
3729
3730 2004-10-19 Maarten Brock <sourceforge.brock AT dse.nl>
3731
3732         * as/mcs51/lkarea.c: removed old K&R style,
3733           (lnksect): changed check on boundary error,
3734           (lnksect2): changed check on boundary error,
3735           (lnksect2): extend XSTK to end of page if size = 1
3736         * as/mcs51/lkmain.c: removed old K&R style,
3737           (Areas51): create l_IRAM symbol
3738         * as/mcs51/lkmem.c (summary2): added report on PSEG and XSTK
3739         * device/lib/Makefile.in: renamed model-mcs51-reentrant to
3740           model-mcs51-stack-auto, added model-mcs51-xstack-auto
3741         * device/lib/_mullong.c: added version to be compiled with xstack
3742         * device/lib/mcs51/crtclear.asm: clear only upto --iram-size
3743         * device/lib/mcs51/crtxclear.asm: clear pdata as well
3744         * device/lib/mcs51/crtxstack.asm: fixed comment
3745         * src/SDCCglue.c: maxInterrupts defaults to 0,
3746           (emitMaps): added pdata,
3747           (createInterruptVect): (re)moved default,
3748           (glue): added pdata,
3749           (glue): moved __start__xstack to XSTK with default size 1
3750         * src/SDCCmain.c (parseCmdLine): automatically set options.intlong_rent
3751           and options.float_rent when options.stackAuto is set,
3752           (linkEdit): only write XDATA_NAME if provided on command line
3753         * src/SDCCmem.h,
3754         * src/SDCCmem.c: added pdata
3755         * src/port.h: added pdata_name to PORT
3756         * src/mcs51/gen.c (toBoolean): fixed for Acc use of aopGet,
3757           (saveRegisters, unsaveRegisters): removed usage of B,
3758           (genMinus): fixed accumulator clash,
3759           (genJumpTab): added comment, this needs another look
3760         * src/mcs51/gen.c: added check for "B in use" paranoia,
3761           added pushB() and popB()
3762         * src/mcs51/peeph.def: restart after 177.c so 177.a can get a second
3763           chance
3764         * src/avr/main.c,
3765         * src/ds390/main.c,
3766         * src/hc08/main.c,
3767         * src/mcs51/main.c,
3768         * src/pic/main.c,
3769         * src/pic16/main.c,
3770         * src/xa51/main.c,
3771         * src/z80/main.c: (reset_regparms) made void parameter explicit and
3772           added PSEG (PAG,XDATA) or NULL to port specifier
3773         * src/ds390/main.c (_ds390_genIVT): moved implemented default in here
3774         * src/mcs51/main.c (_mcs51_genIVT): moved implemented default in here,
3775           (_mcs51_genInitStartup): removed __start__xstack equ,
3776           (mcs51_port): moved xstack from XSEG (XDATA) to XSTK (PAG,XDATA)
3777         * src/pic16/device.c (pic16_dump_usection, pic16_dump_isection),
3778         * src/z80/gen.c (_rleAppend): fixed warnings
3779         * support/regression/tests/zeropad.c: added pdata test
3780         * .version: bumped to 2.4.6
3781
3782 2004-10-17 Borut Razem <borut.razem AT siol.net>
3783
3784         * support/scripts/sdcc.nsi: cross compiling of WIN32 setup.exe on Linux
3785         as a part of nightly build
3786
3787 2004-10-16 Vangelis Rokas <vrokas AT otenet.gr>
3788
3789         * src/pic16/gen.c (struct _G): added field useWreg, is set to 1 when
3790         WREG holds the first byte function parameters,
3791         * (aopForSym): take special case for symbols which are in FARSPACE
3792         but in CODESPACE too,
3793         * (assignResultValue): modified to take into account _G.useWreg,
3794         * (genCall): don't use wreg for parameter passing when function is
3795         declared as reentrant, too, added optimization INCF to stack
3796         pointer when stack parameter count is 1,
3797         * (genFunction, genEndFunction): refurnished and fixed to not using
3798         wreg for passing parameters when function has varargs or is
3799         reentrant, fixed bug with symbol name compare for generating
3800         functions in absolute address,
3801         * (pic16_storeForReturn): refurnished,
3802         * (genCmp): began writing a new version of the function, not ready
3803         yet, therefore it is disabled,
3804         * (genAssign): do not read code memory when assigning a function to
3805         a pointer function,
3806         * src/pic16/glue.c (pic16emitStaticSeg): abSym->name is defined an
3807         array of characters, not pointer,
3808         * (pic16initialComments): in debug mode emit an .ident directive for
3809         the assembler,
3810         * (_process_pragma): emit a new warning type (internal to pic16)
3811         when setting stack to default length, emit a similar warning when
3812         placing a function at absolute address and address is not word aligned
3813         * (_pic16_parseOptions): added 'return TRUE' statement,
3814         * (_pic16_linkEdit): if compiling a source, then add the source's
3815         file object, first in the list of objects to link,
3816
3817 2004-10-13 Slade Rich <slade_rich AT users.sourceforge.net>
3818
3819         * src/pic/pcoderegs.c : increased count on regUsedinRange to prevent unnecessary warning.
3820         * src/pic/main.c : removed VC warning.
3821         * src/pic/gen.c : changed comment.
3822
3823 2004-10-12 Vangelis Rokas <vrokas AT otenet.gr>
3824
3825         * device/lib/pic16/libsdcc/gptr/gptrput[234].c: an external
3826         reference to a deprecated symbol _GPTRREG was causing failure to
3827         link. Thanks G. M. Gallant for the info.
3828
3829 2004-10-12 Slade Rich <slade_rich AT users.sourceforge.net>
3830
3831         * src/pic/pcode.c : Applied a code patch supplied by Paul Ashmore in
3832         comments for Bugs item #954788.
3833
3834 2004-10-10 Vangelis Rokas <vrokas AT otenet.gr>
3835
3836         * src/pic16/device.c (pic16_dump_gsection,
3837         * pic16_groupRegistersInSection): handle symbols declared to be in
3838         access bank differently,
3839         * src/pic16/gen.c (struct _G): added field resDirect,
3840         * (aopForSym): if symbol on stack and iCode is '=' and result exists,
3841         send values read from stack directly to result and don't allocate
3842         temporary values,
3843         * (pic16_sameRegs): fixed bug that allowed MOVFF to move between
3844         same registers,
3845         * (pic16_sameRegsOfs): NEW,
3846         * (freeAsmop): if _G.resDirect is set then do not mark registers as
3847         free because they were not allocated from temporary pool,
3848         * pic16_popRegFromString): workaround to fix a problem with
3849         allocating variables twice or never,
3850         * (genGenPointerGet): using PRODL instead of FSR0H,
3851         * (genGenPointerSet): using POSTDEC1 (that is a stack location)
3852         instead of FSR0H,
3853         * (genAssign): take advantage of the _G.resDirect flag,
3854         * (genCast): around line 11844, use mov2f instead of directly
3855         MOVFF'ing between operands to account for literal values,
3856         * src/pic16/genutils.c: some new debug functions for gpsim have been
3857         added,
3858         * src/pic16/glue.c (pic16_printIvalType): fixed bug that initialized
3859         float with integer part only,
3860         * src/pic16/main.c (_process_pragma): handle pragma udata access to
3861         place variables in access bank
3862         * device/lib/pic16/libsdcc/gptr/gptr*.c: using BRA instead of GOTO,
3863         updated sources to reflect recent changes in gen.c
3864
3865 2004-10-06 Vangelis Rokas <vrokas AT otenet.gr>
3866
3867         * device/lib/pic16/libsdcc/Makefile.rules: fixed bug concerning
3868         sources that searched for headers in installation path, now the
3869         device/include/pic16 is used,
3870         * src/pic16/glue.c (pic16glue),
3871         * src/pic16/pcode.c (pCode2str, genericPrint): don't print .file or
3872         .line directives if not in debug mode, this suppresses assembler's
3873         warnings for ignored directives
3874
3875 2004-10-05 Maarten Brock <sourceforge.brock AT dse.nl>
3876
3877         * src/port.h: made reset_regparms prototype void parameter explicit.
3878         * src/SDCCsymt.c (processFuncArgs): removed argument "func".
3879         * src/mcs51/ralloc.c (packRegisters): new fix for bugs 898889 & 979599.
3880         * doc/sdccman.lyx: documented warning disabling and how to use
3881           printf_large to make it print floats.
3882         * device/include/stdbool.h: NEW
3883         * device/lib/_atof.c,
3884         * device/lib/_divuint.c,
3885         * device/lib/_divulong.c,
3886         * device/lib/expf.c,
3887         * device/lib/printf_large.c,
3888         * device/lib/sincosf.c,
3889         * device/lib/sincoshf.c: used stdbool.h, all compile with stack-auto now
3890         * device/lib/Makefile.in: added target for model-mcs51-reentrant to build
3891           a completely reentrant lib.
3892
3893 2004-10-05 Vangelis Rokas <vrokas AT otenet.gr>
3894
3895         * device/lib/pic16/libsdcc/gptr/gptr*.c: added return statements
3896         * device/include/pic16/stdio.h: fixed bug with colon
3897
3898 2004-10-03 Vangelis Rokas <vrokas AT otenet.gr>
3899
3900         * device/include/pic16/stdio.h,
3901         * device/include/pic16/stdlib.h,
3902         * device/include/pic16/math.h: NEW
3903         * device/lib/pic16/libsdcc/gptr/*.c (gptrget*, gptrput*): functions
3904         declared as _naked to reduce overhead
3905         * device/lib/Makefile.in (target port-specific-objects-pic16):
3906         changed * to *.* so to ignore the CVS directory,
3907         * src/pic16/gen.c (pic16_freeAsmop): added code to store result of
3908         stacked variables back in stack,
3909         * (genEndFunction): fixed bug reported by G.M. Gallant with stack
3910         corruption
3911
3912 2004-10-01 Vangelis Rokas <vrokas AT otenet.gr>
3913
3914         * .version: bumped version number to 2.4.5
3915         * support/Util/SDCCerr.h: added warning W_POSSBUG2.
3916         * support/Util/SDCCerr.c (messages structure): added entry for
3917         W_POSSBUG2
3918
3919         Large cumulative patch for pic16 port and libraries.
3920         * device/include/pic16/sdcc-lib.h,
3921         * device/include/pic16/stdarg.h,
3922         * device/include/asm/pic16/features.h,
3923         * device/include/lib/pic16/libsdcc/gptr/{*.c, Makefile}: NEW,
3924         * device/include/pic16/float.h: changes reentrant keyword with
3925         _FS_REENTRANT, added prototype for __fsneq, included sdcc-lib.h
3926         * device/lib/pic16/libsdcc/Makefile: added target directory gptr,
3927         updated target build-libraries to include objects from gptr,
3928         * device/lib/pic16/libsdcc/{char,int,long}/*.c: added macro
3929         _IL_REENTRANT to all function headings, included sdcc-lib.h header,
3930         * device/lib/pic16/libsdcc/float/*.c: added macro _FS_REENTRANT to
3931         all function headings,
3932         * src/SDCCmain.c: added global parameter userIncDirsSet,
3933         * (parseCmdLine): when option -I is encountered add directory to
3934         userIncDirsSet too,
3935         * src/version.awk: added space between control and long,
3936         * src/pic16/NOTES: added some notes for the port,
3937         * src/pic16/gen.c: added prototype for mov2fp function,
3938         * (fReturnpic16[]): properly named return value registers,
3939         * (_G structure): added fields stackRegSet, fregsUsed, stack_lat,
3940         * (aopForSym): added code to handle symbols with onStack flag set,
3941         symbols onStack are allocated PTRSIZE bytes,
3942         * (aopFreeAsmop): handles special case where asmops are stack objects,
3943         * (aopGet, pic16_popGet): adde cod to handle new asmop AOP_STA,
3944         * (pic16_popGetTempReg, pic16_popGetTempRegCond, pic16_popReleaseTempReg):
3945         added argument lock to trace flaws in allocating temporary registers
3946         when developing port,
3947         * (pic16_popGetLit, pic16_popGetLit2): changed lit from unsigned to signed
3948         * (pic16_popRegFromString): reenabled allocating a direct register
3949         from string,
3950         * (assignResultValue): various beautifications,
3951         * fixed bug #1037717 (patch from R. Neider & D. Wrinkler) with mistaken
3952         referenced function argument,
3953         * (genIpush): reenabled to allow stacked arguments, handles only
3954         ic->parmPush iCodes,
3955         * (genCall, genPcall): major changes to allow for variable argument
3956         functions, fixed a bug with falsely restoring stack pointer after
3957         returning from call,
3958         * (genFunction): pending code for critical function,
3959         * (shiftR1Left2ResultSigned, shiftR1Left2Result, shiftL2Left2Result,
3960         * (shiftR2Left2Result, shiftLLong) applied patch #1032155 from R.Neider,
3961         * (genNearPointerGet): fixed bug with indirect reading, was always
3962         reading from INDF0
3963         * (genGenPointerGet, genGenPointerSet): rewrote to support generic
3964         pointers,
3965         * (genAddrOf): rewrote code to take address of a stacked function parameter
3966         * (genCast): fixed casting to generic pointer type,
3967         * src/pic16/gen.h: added AOP_STA,
3968         * (struct asmop): added field stk,
3969         * src/pic16/genarith.c (pic16_AopType): handle AOP_STA,
3970         * (pic16_genPlusIncr): changed emitSKPNZ to emitSKPNZ,
3971         * (pic16_genAddLit, pic16_genPlus): applied patch #1034042 by tecodev,
3972         * (pic16_genMinus): fixed bug #1035119 with patch submitted by tecodev,
3973         * src/pic16/genutils.c (pic16_genNot): removed symbol *tlbl,
3974         * src/pic16/glue.c (pic16_printGPPointerType): fixed to support new
3975         generic pointers,
3976         * src/pic16/main.c (_pic16_initPaths): ignores default SDCC include
3977         and library paths,
3978         * (pic16_port structure): generic pointer size is set to 3,
3979         * src/pic16/pcode.c (pic16_newpCodeOpLit): correctly print literal integer,
3980         * (insertBankSwitch): cast to (char *) to prevent 64bit CPUs'
3981         compiler warning,
3982         * src/pic16/ralloc.c (allocReg): prevent allocating register when
3983         operand is an iTemp,
3984
3985 2004-09-24 Martin Helmling <mh AT octo-soft.de>
3986
3987         * debugger/mcs51/cmd.c: set PC if a symbol at pc reg is set
3988         * debugger/mcs51/simi.c: addapt new syntax of s51
3989
3990 2004-09-23 Vangelis Rokas <vrokas AT otenet.gr>
3991
3992         * src/pic16/genutils.c (pic16_genNot): fixed bug #1032265,
3993         * src/pic16/pcode.c: commented out some calls to free() in order to
3994         fix bug #989576,
3995
3996 2004-09-23 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
3997
3998         * src/SDCCicode.h,
3999         * src/SDCCicode.c (isiCodeInFunctionCall),
4000         * src/avr/ralloc.c (selectSpil),
4001         * src/pic/ralloc.c (selectSpil),
4002         * src/pic16/ralloc.c (selectSpil),
4003         * src/ds390/ralloc.c (selectSpil),
4004         * src/hc08/ralloc.c (selectSpil),
4005         * src/xa51/ralloc.c (selectSpil),
4006         * src/mcs51/ralloc.c (selectSpil): Don't use remainSpil to spill to the
4007         stack in the middle of a function call sequence (fixes bug #1020268)
4008         * src/SDCCicode.c (geniCodeJumpTable): fixed error in computing the
4009         costs associated with the minimum switch case.
4010
4011 2004-09-19 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
4012
4013         * src/SDCC.lex: fixed bug #1030549
4014
4015 2004-09-19 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
4016
4017         * src/SDCCcse.h (struct cseDef),
4018         * src/SDCCcse.c (cseBBlock, newCseDef, ifFromAddrTaken): purge CSEs
4019         over a function call if the CSE is derived from a symbol whose
4020         address has been taken (fixes bug #1029883)
4021         * support/regression/tests/bug-1029883: a new regression test for
4022         this bug
4023
4024 2004-09-18 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
4025
4026         * src/hc08/gen.c (emitinline): fixed bug #1029778
4027         * src/SDCC.y (assignment_expr): fixed the grammer so that assignment
4028         to a cast object is no longer a syntax error ("fixes" bug #1030006,
4029         and starts toward RFE #905167)
4030
4031 2004-09-17 Vangelis Rokas <vrokas AT otenet.gr>
4032
4033         * src/pic16/gen.c (mov2f): New function to move an operand to
4034         another without considering if it is a literal or a register,
4035         * (pic16_sameRegs): don't check if they are both AOP_REG,
4036         * (AccRsh): removed andmask=0 lines,
4037         * (genLeftShift): duplicated to be improved in future versions,
4038         * src/pic16/main.c (_process_pragma): emit stack default size in hex,
4039         * src/pic16/pcode.c: added POC_INFSNZW, updated inverted_op fields
4040         in POC_INCFSZ, POC_INCFSZW, POC_INFSNZ,
4041         * (pic16initMnemonics): added initialization for POC_INFSNZW,
4042         * (insertBankSwitch): fixed inserting banksel directives algorithm
4043         for instructions that follow a skip instruction, this fixes a report
4044         for broken subtraction code generation,
4045         * src/pic16/ralloc.c (deassignLRs): do not free register if current
4046         iCode is a left op, just in case result and right share the same
4047         registers
4048
4049 2004-09-16 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
4050
4051         * src/hc08/main.c,
4052         * src/hc08/gen.c (genJumpTable): more efficient jump table, supports
4053         preservation of HX
4054         * src/hc08/gen.c (pullRegs): fixed order of HX & XA pairs
4055         * src/mcs51/ralloc.c (packRegisters): removed the patch applied
4056         on 2004-09-12; it was buggy
4057
4058 2004-09-15 Bernhard Held <bernhard AT bernhardheld.de>
4059
4060         * src/SDCCsymt.h: removed RESULT_CHECK
4061         * src/SDCCast.c,
4062         * src/SDCCglue.c,
4063         * src/SDCCval.c,
4064         * src/pic/glue.c,
4065         * src/pic16/glue.c: replaced RESULT_CHECK with RESULT_TYPE_NONE
4066
4067 2004-09-15 Vangelis Rokas <vrokas AT otenet.gr>
4068
4069         * src/SDCCicode.c (piCode): applied patch from Raphael Neider,
4070         * src/pic16/device.c (pic16_assignConfigWordValues): wrong
4071         configuration values no more rejected by compiler, they are assigned
4072         to configuration registers with a warning message instead,
4073         * src/pic16/glue.c (pic16_emitConfigRegs): added +1 at top-limit of
4074         the for-loop so last conf register is emitted too,
4075         * (_pic16_initPaths): link library libsdcc.lib by default,
4076         * (_hasNativeMulFor): modified test for multiplication according to
4077         Raphael Neider's remarks. Integer multiplication is also done with
4078         support functions,
4079         * device/include/pic16/pic18fregs.h: corrected type error in while
4080         testing and including 18f6720 header file
4081
4082 2004-09-14 Vangelis Rokas <vrokas AT otenet.gr>
4083
4084         * src/pic16/device.h (pic16_options): removed field use_crt,
4085         * src/pic16/gen.c (genUnpackBits): added call to pic16_loadFSR0
4086         until an optimization to handle single bits is added,
4087         * (pic16_loadFSR0): moved before genUnpackBits,
4088         * (genAnd): some white lines removed,
4089         * src/pic16/main.c (_pic16_finaliseOptions): set omit_ivt and clear
4090         leave_reset flags in pic16_options when using crt modules,
4091
4092 2004-09-12 Maarten Brock <sourceforge.brock AT dse.nl>
4093
4094         * src/mcs51/ralloc.c (packRegisters): applied fix by Bernhard Held
4095           for bugs 898889 & 979599. Also used some safer print instructions.
4096
4097 2004-09-12 Vangelis Rokas <vrokas AT otenet.gr>
4098
4099         * src/pic16/device.h (pic16_options_t): added field use_crt,
4100         crt_name, no_crt,
4101         * src/pic16/genarith.c (pic16_genPlus): added an assert(0) line to
4102         catch a probable future bug,
4103         * src/pic16/gen.c: aopIdx function commented out,
4104         * (genAssign): commented out old code which used aopIdx,
4105         * src/pic16/glue.c (pic16glue): removed some legacy fragments of
4106         code, added if conditionals to take into account the --use-crt
4107         command line options,
4108         * src/pic16/main.c (pic16_optionsTable): added new command line
4109         options, --use-crt= and --no-crt,
4110         * (_pic16_linkEdit): now the proper crt object is added in the
4111         linker command line except than when --no-crt is specified,
4112         * src/pic16/pcode.c,
4113         * src/pic16/pcode.h: added some structures and functions for a new
4114         optimization scheme to compansate for instruction overhead between
4115         same iCodes, this scheme is currently under development and is not
4116         working in any way,
4117         * src/pic16/gen.c (genAnd): added patch provided by Aaron Collwell
4118         to && operator,
4119         * device/lib/pic16/startup/crt0i.c,
4120         * device/lib/pic16/startup/crt0iz.c: added global char variable
4121         __uflags to force the generation of an idata section
4122
4123 2004-09-12 Bernhard Held <bernhard AT bernhardheld.de>
4124
4125         * doc/Makefile,
4126         * doc/clean.mk: added support for easy creation of sdcc-doc.tar.bz2
4127         * doc/sdccman.lyx: updated sdcc version to 2.4.4
4128
4129 2004-09-10 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
4130
4131         * doc/sdccman.lyx: fixed a problem with my new index entries (thanks
4132         Frieder) and clarified the default code optimization mode
4133
4134 2004-09-10 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
4135
4136         * src/SDCC.lex (doPragma, process_pragma),
4137         * src/SDCCglobl.h (struct optimize): added pragmas "opt_code_speed",
4138         "opt_code_size", and "opt_code_balanced"
4139         * src/SDCCmain.c (optionsTable[], printOptions, scanOptionsTable):
4140         regrouped options by category, added support for category headers
4141         * src/SDCCmain.c (parseCmdLine): added options "--opt-code-speed"
4142         and "--opt-code-size"
4143         * doc/sdccman.lyx: documented these new options and pragmas
4144         * src/hc08/gen.c (AccLsh, AccRsh): take speed/size optimization
4145         preference into account
4146
4147 2004-09-08 Maarten Brock <sourceforge.brock AT dse.nl>
4148
4149         * src/SDCCicode.c (geniCodePostInc, geniCodePreInc, geniCodePostDec,
4150           geniCodePreDec): Fixed bug 904237 by generating a warning
4151         * src/SDCCerr.h,
4152         * src/SDCCerr.c: added warning W_SIZEOF_VOID
4153
4154 2004-09-09 Slade Rich <slade_rich AT users.sourceforge.net>
4155
4156         * src/pic/device.c : When no max ram set validate full memory range.
4157         * src/pic/pcode.c,
4158         * src/pic/pcodepeep.c : Copy C code comments to optimised replacement code.
4159
4160 2004-09-08 Maarten Brock <sourceforge.brock AT dse.nl>
4161
4162         * device/lib/_gptrget.c,
4163         * device/lib/_gptrput.c: updated comment
4164         * device/lib/calloc.c,
4165         * device/lib/free.c,
4166         * device/lib/malloc.c,
4167         * device/lib/realloc.c: added LGPL, made them reentrant-safe
4168         * src/SDCCcse.c (cseBBlock),
4169         * src/SDCCicode.c (printOperand, geniCodeArray),
4170         * src/SDCCicode.h (struct operand): fixed bug 868103
4171         * support/regression/tests/bug-868103.c: added
4172         * src/SDCCast.c (searchLitOp),
4173         * src/SDCCcse.h (struct cseDef),
4174         * src/SDCCglue.c (printIvalArray, spacesToUnderscores),
4175         * src/SDCCicode.h (struct operand),
4176         * src/SDCCsymt.h (struct sym_link),
4177         * src/avr/gen.c (hasInc),
4178         * src/ds390/gen.c (hasInc),
4179         * src/hc08/gen.c (genPlusIncr, hasInc),
4180         * src/mcs51/gen.c (hasInc),
4181         * src/pic16/glue.c (pic16_printIvalChar),
4182         * src/pic16/ralloc.c (regWithIdx),
4183         * src/xa51/gen.c (hasInc) : removed warnings
4184         * src/SDCCast.c (createBlock): added comment ???
4185         * src/hc08/ralloc.c: updated comments
4186
4187 2004-09-07 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
4188
4189         * doc/sdccman.lyx: updated section on switch statements, added
4190         section about semaphore locking
4191         * doc/Makefile: added option -info for latex2html
4192         * device/lib/_gptrget.c,
4193         * device/lib/_gptrput.c: __XPAGE instead of P2 in outcommented code
4194
4195 2004-09-06 Slade Rich <slade_rich AT users.sourceforge.net>
4196
4197         * src/pic/device.h,
4198         * src/pic/device.c,
4199         * src/pic/port.c : Changed PIC14 code to not set bit RP1 when
4200          maxram is less than 0x100.
4201
4202 2004-09-06 Slade Rich <slade_rich AT users.sourceforge.net>
4203
4204         * Bug fixes for PIC14 - signed RSHIFT problem. Patch supplied by Allen(agschrum).
4205
4206 2004-09-06 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
4207
4208         * src/port.h,
4209         * src/mcs51/main.c,
4210         * src/ds390/main.c,
4211         * src/z80/main.c,
4212         * src/hc08/main.c,
4213         * src/pic/main.c,
4214         * src/pic16/main.c,
4215         * src/avr/main.c,
4216         * src/xa51/main.c
4217         * src/SDCCicode.c (geniCodeJumpTable): Better logic to determine if a
4218         a jump table is the best form for a switch statement, including
4219         automatic insertion of missing cases to make the case range
4220         continuous. Developed in collaboration with Frieder Ferlemann.
4221
4222 2004-09-02 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
4223
4224         * src/hc08/ralloc.c (canDefAccResult): multi-byte shift is unsafe for
4225         accumulator result if it needs sign extension
4226
4227 2004-09-02 Maarten Brock <sourceforge.brock AT dse.nl>
4228
4229         * src/hc08/ralloc.c (canUseAccOperand): fixed comparison bug
4230
4231 2004-09-02 Maarten Brock <sourceforge.brock AT dse.nl>
4232
4233         * device/lib/gbz80/printf.c,
4234         * device/lib/z80/printf.c: removed define for NULL
4235
4236 2004-09-02 Maarten Brock <sourceforge.brock AT dse.nl>
4237
4238         * as/xa51/xa_link.c,
4239         * device/examples/ds390/ow390/ad26.c,
4240         * device/examples/ds390/ow390/cnt1d.c,
4241         * device/examples/ds390/ow390/counter.c,
4242         * device/examples/ds390/ow390/ds2480.h,
4243         * device/examples/ds390/ow390/ds2480ut.c,
4244         * device/examples/ds390/ow390/findtype.c,
4245         * device/examples/ds390/ow390/gethumd.c,
4246         * device/examples/ds390/ow390/owllu.c,
4247         * device/examples/ds390/ow390/ownetu.c,
4248         * device/examples/ds390/ow390/swt12.c,
4249         * device/examples/ds390/ow390/swtloop.c,
4250         * device/examples/ds390/ow390/temp.c,
4251         * device/examples/ds390/ow390/temp10.c,
4252         * device/examples/ds390/ow390/thermo21.c,
4253         * device/examples/ds390/ow390/tinilnk.c,
4254         * device/examples/ds390/ow390/tstfind.c,
4255         * device/examples/serialcomm/windows/serial.cpp,
4256         * device/examples/serialcomm/windows/test_serialcomm.cpp,
4257         * device/include/reg51.h: fixed line endings for cvs
4258
4259 2004-09-02 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
4260
4261         * src/hc08/ralloc.c (canDefAccResult, canUseAccOperand,
4262         packRegsForAccUse, packRegisters): new accumulator register
4263         packing algorithm
4264         * support/regression/ports/hc08/support.c (_putchar): suppress
4265         warning of unused variable
4266         * src/SDCCicode.c: added SWAP entry to codeTable
4267
4268 2004-09-01 Maarten Brock <sourceforge.brock AT dse.nl>
4269
4270         * device/lib/sprintf.c: forgot to add this file before previous commit
4271
4272 2004-09-01 Vangelis Rokas <vrokas AT otenet.gr>
4273
4274         * src/pic16/gen.c (genPackBits): added operand right in function
4275         parameters, load result directly if p_type is POINTER (that is
4276         called by genNearPointerSet)
4277         * (genUnPackBits): added operand left in function parameters,
4278         * (genNearPointerGet, genNearPointerSet): prevent the loading of
4279         FSR0 if accessing bitfields,
4280
4281 2004-08-31 Maarten Brock <sourceforge.brock AT dse.nl>
4282
4283         * device/include/stdio.h: added NULL, size_t, typedef pfn_outputchar,
4284           _print_format; updated printf, sprintf, vsprintf
4285         * device/include/asm/default/features.h: corrected comment/define
4286         * device/lib/Makefile.in: added sprintf.c
4287         * device/lib/libsdcc.lib: added sprintf module
4288         * device/lib/printf_large.c,
4289         * device/lib/vprintf.c,
4290         * device/lib/sprintf.c: totally refactored printf_large and vprintf
4291           into these 3 files
4292         * support/regression/Makefile: changed ALL_PORTS into a usefull default
4293         * support/regression/ports/mcs51-stack-auto/spec.mk: added sprintf
4294         * support/regression/tests/bug-927659.c: removed dummy putchar, enabled
4295           hc08 test
4296         * support/regression/tests/zeropad.c: define idata as data for hc08
4297
4298 2004-08-31 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
4299
4300         * src/SDCCpeeph.c (labelIsReturnOnly): support hc08 rts opcode also
4301         * src/SDCCpeeph.c (buildLabelRefCountHash): assume function entry point
4302         labels are referenced at least once (even if a reference is not found)
4303         * src/hc08/gen.c (emitcode): set isComment flag for comments
4304         * src/hc08/peeph.def: added rules 5a..5f (optimize redundant immediate
4305         loads), rules 6a..6b (optimize jumps to return)
4306
4307 2004-08-30 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
4308
4309         * device/lib/acosf.c (acosf),
4310         * device/lib/asinf.c (asinf),
4311         * device/lib/atanf.c (atanf),
4312         * device/lib/ceilf.c (ceilf),
4313         * device/lib/cosf.c (cosf),
4314         * device/lib/coshf.c (coshf),
4315         * device/lib/cotf.c (cotf),
4316         * device/lib/fabsf.c (fabsf),
4317         * device/lib/floorf.c (floorf),
4318         * device/lib/log10f.c (log10f),
4319         * device/lib/logf.c (logf),
4320         * device/lib/sinf.c (sinf),
4321         * device/lib/sinhf.c (sinhf),
4322         * device/lib/sqrtf.c (sqrtf),
4323         * device/lib/tanf.c (tanf),
4324         * device/lib/tanhf.c (tanhf),
4325         * device/include/math.h: defined _FLOAT_FUNC_REENTRANT macro and
4326         replaced all instances of "reentrant" in the library functions
4327         defined in math.h with this macro.
4328         * support/regression/tests/float_trans.c: reenabled test for hc08
4329
4330 2004-08-30 Bernhard Held <bernhard AT bernhardheld.de>
4331
4332         * device/lib/pic16/Makefile.common.in: added MODELFLAGS again, it was
4333         erroneously deleted
4334
4335 2004-08-30 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
4336
4337         * src/hc08/gen.c (loadRegFromAop): better use of clra & clrx
4338         * src/hc08/gen.c (genAnd, genOr): fixed bug with conditional when
4339         multi-byte volatile operands are used
4340         * src/hc08/gen.c (shiftRLong): fixed bug with wrong rotate direction
4341         * src/hc08/main.c (_hc08_genAssemblerPreamble): moved the built-in
4342         initialization to area GSINIT0 so that it would always precede
4343         any static initializers in GSINIT
4344         * support/regression/tests/zeropad.c: fixed idata define for hc08
4345         * support/regression/tests/bug-927659.c,
4346         * support/regression/tests/float_trans.c: disabled tests for hc08
4347         pending missing library routines
4348         * .version: increased version number to 2.4.4 - hc08 port now passes
4349         regression tests
4350
4351
4352 2004-08-29 Bernhard Held <bernhard AT bernhardheld.de>
4353
4354         * device/lib/pic16/Makefile.common.in: added $(MM) to fix `make clean`
4355         * Makefile.common.in,
4356         * as/Makefile,
4357         * as/hc08/Makefile.in,
4358         * as/mcs51/Makefile.in,
4359         * as/z80/Makefile.in,
4360         * debugger/mcs51/Makefile.in,
4361         * device/include/Makefile.in,
4362         * device/lib/Makefile.in,
4363         * doc/Makefile,
4364         * link/Makefile,
4365         * link/z80/Makefile.in,
4366         * packihx/Makefile.in,
4367         * sim/ucsim/main_in.mk,
4368         * sim/ucsim/avr.src/Makefile.in,
4369         * sim/ucsim/doc/Makefile.in,
4370         * sim/ucsim/gui.src/serio.src/Makefile.in,
4371         * sim/ucsim/hc08.src/Makefile.in,
4372         * sim/ucsim/s51.src/Makefile.in,
4373         * sim/ucsim/xa.src/Makefile.in,
4374         * sim/ucsim/z80.src/Makefile.in,
4375         * src/Makefile.in,
4376         * support/cpp2/Makefile.in,
4377         * support/librarian/Makefile,
4378         * support/makebin/Makefile: added DESTDIR to the install path proposed
4379         by "Maciej 'Agaran' Pijanka" <agaran AT pld-linux.org>
4380         * doc/sdccman.lyx: added DESTDIR documentation
4381
4382 2004-08-29 Vangelis Rokas (vrokas AT otenet.gr>
4383
4384         * src/pic16/gen.c (genFunction, genEndFunction): fixed return
4385         instruction for interrupt handlers, use fast returns when returning
4386         from high priority interrupts
4387
4388 2004-08-29 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
4389
4390         * src/hc08/gen.c (genAnd, genOr, transferAopAop, rmwWithAop): optimized
4391         code generation
4392         * src/hc08/gen.c (genrshFour, genCpl): fixed bugs
4393         * src/hc08/gen.c (genMultOneByte, genDivOneByte, genModOneByte): fixed
4394         bugs, ported much of Bernhard's code from mcs51
4395         * src/mcs51/gen.c (genSend),
4396         * src/hc08/gen.c (genSend): fixed bug with lost SEND iCodes if more
4397         than one when calling a reentrant function
4398         * device/lib/_mullong.c: defined an alternate struct layout for big
4399         endian ports (hc08)
4400
4401 2004-08-28 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
4402
4403         * src/hc08/gen.c (shiftL2Left2Result): fix for bug-500536 regression
4404         test
4405
4406 2004-08-28 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
4407
4408         * src/SDCCsymt.c (processFuncArgs): make sure parameter types
4409         are sane and complete before asking the port its prefered parameter
4410         passing method (fixes bug #1017633)
4411         * device/lib/hc08/_ret.c: added "data" storage class to _ret2
4412         and _ret3
4413
4414 2004-08-27 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
4415
4416         * src/hc08/gen.c (genPackBitsImmed, genUnpackBitsImmed): fix offset
4417         problem in bitfields >= 8 bits.
4418
4419 2004-08-27 Maarten Brock <sourceforge.brock AT dse.nl>
4420
4421         * src/SDCCsymt.c: undid changes that were not meant to be committed
4422
4423 2004-08-27 Maarten Brock <sourceforge.brock AT dse.nl>
4424
4425         * support/regression/ports/hc08spec.mk: REENTRANT must be reentrant
4426
4427 2004-08-27 Maarten Brock <sourceforge.brock AT dse.nl>
4428
4429         * src/hc08/gen.c (genUminusFloat): fixed bug where only 3 bytes were
4430           copied and wrong bit got inverted
4431
4432 2004-08-27 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
4433
4434         * src/hc08/gen.c (genPointerSet, genFarPointerSet): moved code from
4435         genFarPointerSet into genPointerSet; eliminated genFarPointerSet
4436         * src/hc08/gen.c (genPointerGet, genFarPointerGet): moved code from
4437         genFarPointerGet into genPointerGet; eliminated genFarPointerGet
4438         * src/hc08/gen.c (genPackBitsImmed): generate optimized code for
4439         assignments to bitfields at known addresses
4440         * src/hc08/gen.c (genUnpackBitsImmed): generate optimized code for
4441         reads from bitfields at known addresses
4442         * src/hc08/ralloc.c (packRegisters),
4443         * src/hc08/gen.c (genPointerGet, genUnpackBits, genUnpackBitsImmed,
4444         genhc08Code): optimize pointer get values used as conditionals
4445         * src/hc08/peeph.def: added rules 2e & 2f to optimize bit test
4446         and branch
4447
4448 2004-08-24 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
4449
4450         * src/mcs51/gen.c (genPointerGet, genNearPointerGet, genPagedPointerGet,
4451         genFarPointerGet, genCodePointerGet, genGenPointerGet, genUnpackBits),
4452         * src/mcs51/ralloc.c (packRegisters): optimize pointer get values used
4453         as conditionals
4454
4455 2004-08-22 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
4456
4457         * src/mcs51/peeph.def: peepholes 248.i-m for xdata bitfields
4458
4459 2004-08-21 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
4460
4461         * src/mcs51/ralloc.c (packRegsForOneuse): fixed bug #1012650 and some
4462         related problems
4463
4464 2004-08-21 Bernhard Held <bernhard AT bernhardheld.de>
4465
4466         * sim/ucsim/cmd.src/Makefile.in: run lex only if $(PRJDIR)/devel exists
4467
4468 2004-08-18 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
4469
4470         * src/z80/ralloc.c (packRegsForAssign): ported some bug fixes from the
4471         mcs51 port
4472
4473 2004-08-16 Slade Rich <slade_rich AT users.sourceforge.net>
4474
4475         * src/pic/gen.c: Restored fn genRet as previous fix was incorrect.
4476
4477 2004-08-14 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
4478
4479         * src/mcs51/gen.c (genJumpTab): jumptables for more than 16 switch
4480         cases use more compact code.
4481
4482 2004-08-13 Slade Rich <slade_rich AT users.sourceforge.net>
4483
4484         * src/pic/gen.c: Fixed problem with fn returning a variable bigger than a char.
4485
4486 2004-08-12 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
4487
4488         * src/SDCClrange.c (findPrevUse): fixed bug #1007371
4489
4490 2004-08-12 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
4491
4492         * src/SDCCsymt.h,
4493         * src/SDCCsymt.c (changePointer, checkDecl, addSymChain): changed
4494         parameter of changePointer() from symbol* to sym_link*
4495         * src/SDCCast.c (decorateType): call changePointer() for CAST op
4496         * src/SDCCsymt.c (compareType): void* type is castable to other
4497         pointers, but not necesarily an exact match.
4498         * src/SDCCicode.c (geniCodeCast): allow void* casting here since it
4499         is no longer blindly treated as an exact match.
4500         * src/SDCCval.c (valCastLiteral): treat missing type as cast to void
4501
4502 2004-08-12 Slade Rich <slade_rich AT users.sourceforge.net>
4503
4504         * src/pic/glue.c: Added struct initialisation fn printIvalStruct.
4505
4506 2004-08-11 Slade Rich <slade_rich AT users.sourceforge.net>
4507
4508         * src/pic/gen.c,
4509         * src/pic/pcode.c,
4510         * src/pic/ralloc.h,
4511         * src/pic/ralloc.c: Printing rIdx on internal verbose debug.
4512
4513 2004-08-10 Slade Rich <slade_rich AT users.sourceforge.net>
4514
4515         * src/pic/device.c,
4516         * src/pic/device.h,
4517         * src/pic/device.c: Will no longer exit if #pragma maxram has not been defined.
4518
4519 2004-08-06 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
4520
4521         * src/mcs51/gen.c (emitcode): fixed bug #992819
4522
4523 2004-08-05 Maarten Brock <sourceforge.brock AT dse.nl>
4524
4525         * src/pic/ralloc.c (deassignLR): allthough pic port is buggy already,
4526           there's no need to make it worse
4527
4528 2004-08-05 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
4529
4530         * src/mcs51/ralloc.c (deassignLR),
4531         * src/ds390/ralloc.c (deassignLR),
4532         * src/hc08/ralloc.c (deassignLR),
4533         * src/z80/ralloc.c (deassignLR),
4534         * src/pic/ralloc.c (deassignLR),
4535         * src/pic16/ralloc.c (deassignLR),
4536         * src/avr/ralloc.c (deassignLR),
4537         * src/SDCClrange.c (findRecursiveSucc, findRecursivePred, findPrevUse,
4538         rlivePoint): fixed another part of bug #971834
4539
4540 2004-08-04 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
4541
4542         * src/z80/main.c: enabled "critical" keyword
4543         * src/z80/mappings.i,
4544         * src/z80/gen.c (genFunction, genEndFunction): support for interrupt
4545         functions (fixes bug #979646)
4546         * doc/sdccman.lyx: added a subsection explaining z80 interrupt support
4547
4548 2004-08-04 Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
4549
4550         * src/mcs51/gen.c (genInline): Add \n for labels, not DOS/WIN dirs
4551           such as c:\mydir.
4552
4553 2004-08-03 Maarten Brock <sourceforge.brock AT dse.nl>
4554
4555         * src/SDCCloop.c (loopInvariants): fixed bug 983545, hope this
4556           doesn't disable too much optimizations
4557
4558 2004-08-02 Slade Rich <slade_rich AT users.sourceforge.net>
4559
4560         * src/pic/glue.c Disabled "WARNING: function 'main' undefined" when -S option is used.
4561
4562 2004-08-02 Maarten Brock <sourceforge.brock AT dse.nl>
4563
4564         * src/SDCClrange.c (rlivePoint): fixed bug 988568, thanks to anonymous
4565
4566 2004-08-02 Slade Rich <slade_rich AT users.sourceforge.net>
4567
4568         * src/pic/gen.c tidied up tabs
4569         * src/pic/genarith.c tidied up tabs and fixed bug with literal multiple where same register was used for hi and low byte
4570         * src/pic/main.c tidied up tabs
4571         * src/pic/pcode.c tidied up tabs and disabled verbose code generation
4572         * src/pic/pcoderegs.c tidied up tabs
4573         * src/pic/ralloc.c tidied up tabs
4574
4575 2004-07-30 Vangelis Rokas <vrokas AT otenet.gr>
4576
4577         * src/SDCCmem.c (allocGlobal): don't turn S_REGISTER storage class
4578         to S_FIXED for pic16 port and when symbol is not in level 0,
4579         allocate for S_REGISTER storage class and pic16 port, too,
4580         * src/pic16/device.h: prototype for checkSym,
4581         * src/pic16/device.c (pic16_dump_access, checkSym): NEW,
4582         * (pic16_assignConfigWordValue): test the value and the mask to
4583         validate that the value is suitable for the configuration word,
4584         * src/pic16/glue.c (pic16_printIvalFuncPtr): use 'externs' to
4585         collect extern declared symbols, don't emit symbol twice, check
4586         first if symbol is in publics set first,
4587         * src/pic16/main.c (_pic16_keywords[]): added keyword 'register',
4588         * added command line '--fstack' which enables an experimental
4589         feature for stack access, too buggy to be used yet...
4590         * src/pic16/ralloc.c (pic16_accessregWithName): NEW,
4591         * (pic16_allocDirReg): when register has storage class S_REGISTER
4592         allocate in pic16_dynAccessRegs,
4593         * device/include/pic16/pic18f????.h: modified configuration word
4594         naming convention, words started as CONFIG0H but should be CONFIG1H
4595
4596 2004-07-29 Maarten Brock <sourceforge.brock AT dse.nl>
4597
4598         * device/include/mcs51reg.h: fixed bug 970993
4599
4600 2004-07-27 Maarten Brock <sourceforge.brock AT dse.nl>
4601
4602         * added lib/calloc.c, lib/free.c, lib/realloc.c, include/stddef.h
4603         * updated lib/malloc.c, lib/libsdcc.lib, lib/Makefile.in, include/malloc.h
4604         * src/SDCC.lex (doPragma): added pragma disable_warning <nnn>
4605         * src/SDCCmain.c (parseCmdLine): added option --disable-warning <nnn>
4606         * src/ds390/gen.c (genPlusIncr): fixed bug when incrementing generic pointers
4607         * support/Util/SDCCerr.c (vwerror): suppress disabled warnings and output
4608           error/warning numbers,
4609           added function setWarningDisabled()
4610         * support/Util/SDCCerr.h: added setWarningDisabled() and MAX_ERROR_WARNING
4611         * support/regression/ports/mcs51-stack-auto/spec.mk: added dependencies
4612           _memcmp.c _memmove.c calloc.c realloc.c free.c
4613         * support/regression/tests/malloc.c: added tests for new functionality
4614         * support/regression/tests/zeropad.c: added tests for truncated initializers
4615           and initialized char arrays starting with '\x0'
4616         * src/mcs51/peeph.def: fixed regression, added peephole 177.f
4617
4618 2004-07-26 Bernhard Held <bernhard AT bernhardheld.de>
4619
4620         * support/valdiag/tests/overflow.c: fixed warning on (1 >> 40)
4621
4622 2004-07-26 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
4623
4624         * doc/sdccman.lyx: updated example in section "Absolute Addressing"
4625         * src/mcs51/peeph.def: added contributed fix for "bug" #995347 as
4626         peephole 177.e. Thanks to anonymous
4627
4628 2004-07-25 Vangelis Rokas <vrokas AT otenet.gr>
4629
4630         * src/pic16/glue.c (pic16_printIvalFuncPtr): when an extern
4631         function isn't used in the source but referenced as a
4632         variable initializer then declare it as extern in .asm file
4633
4634 2004-07-24 Vangelis Rokas <vrokas AT otenet.gr>
4635
4636         * .version: increased version number to 2.4.3
4637
4638         Adding version extension according to ChangeLog CVS revision
4639         * src/Makefile.in (target all): added dependency 'version.h'
4640         * (rule version.h): added rule to create version.h from ChangeLog,
4641         * (rule dep): added dependency version.h,
4642         * src/version.awk: AWK script to create version.h
4643         * src/SDCCdwarf2.c (dwWriteModule),
4644         * src/SDCCglue.c (initialComments),
4645         * src/SDCCmain.c (printVersionInfo): modified to write after
4646         version string the version extension number,
4647         * src/SDCCutil.c: included "version.h"
4648         * (getBuildNumber): NEW, returns SDCC's ChangeLog minor revision
4649         number,
4650         * src/SDCCutil.h: added prototype for getBuildNumber
4651
4652         * src/SDCCmain.c (parseCmdLine): when sOpt is 'I' add rest in
4653         includeDirsSet, too,
4654         * src/SDCCsymt.c (checkSClass): don't emit error when a variable,
4655         const char [] is found in function prototype...
4656
4657         * src/pic16/genarith.c (pic16_genUMult8XLit_8): optimization to omit
4658         moving to WREG with source is already in WREG,
4659         * src/pic16/gen.h: added AOP_FSR0 and AOP_FSR2 in enum,
4660         * src/pic16/gen.c (getFreePtr): updated to look for FSR0 and FSR2,
4661         * (aopForSym): stack'ed symbols are partially supported, added
4662         if-clause to support symbols in FARSPACE,
4663         * (sameRegs): added test for AOP_ACC to see if registers are same,
4664         * (pic16_freeAsmop): added case for AOP_FSR0 and AOP_FSR2,
4665         * (pic16_aopGet): added case for AOP_FSR0 and AOP_FSR2,
4666         * (pic16_popRegFromString): will not allocate a new register if it
4667         doesn't find one by name, bug may have introduced...
4668         * (pic16_popGet): added case for AOP_FSR0 and AOP_FSR2,
4669         * (genIpush): revived to use pic16 port's stack,
4670         * (genAddrOf): added incomplete case for stack'ed operand,
4671         * (genCast): optimized a pair of MOVFW,MOVWF to MOVFF
4672         * src/pic16/genutils.c (pic16_genNot): almot new vesrion for NOT,
4673         can handle multibyte operands,
4674         * src/pic16/glue.c (pic16_printIval*): some debug info added,
4675         * (pic16initialComments): added message for MPLAB compatibility
4676         mode enabled,
4677         * src/pic16/main.h: prototype for pic16_mplab_comp,
4678         * src/pic16/main.c (pic16_optionsTable): new option --mplab-comp,
4679         which enabled MPLAB compatibility mode (i.e. no #LINE/#FILE, BANKED)
4680         * (_pic16_linkEdit): NEW, handles link stage, transferred here
4681         because of increased complexity of procedure,
4682         * (_process_pragma): stack pragma changed to format 'stack pos len',
4683         emit symbol '_stack_end' to conform with gplink,
4684         * src/pic16/pcode.c (pic16_newpCodeOpBit): using pic16_regWithName
4685         to search for register,
4686         * (pic16_get_op, pic16_get_op2): added case for PO_W, PO_WREG and
4687         PO_GPR_REGISTER,
4688         * (pic16_pCode2str): when in MPLAB compatibility mode, comment out
4689         #LINE directives and replace 'B' with 'BANKED' in instruction opcodes
4690         * (pic16_getRegFromInstruction, pic16_getRegFromInstruction2): added
4691         case for PO_GPR_REGISTER,
4692         * (pic16_AnalyzeBanking): removed the old message for inc2h.pl, past
4693         dies, the new era is ahead !...
4694         * src/pic16/ralloc.c: added hash reposits pic16_dynAllocRegNames and
4695         pic16_dynInternalRegs,
4696         * (pic16_allocregWithName, pic16_procregWithName, pic16_regWithname): NEW,
4697         * (pic16_allocDirReg): minor optimizations and bug fixes,
4698         * (pic16_allocWithIdx): when searching pic16_dynProcessorRegs use fixed,
4699
4700         * device/lib/pic16/startup/crt0*.c: extern definition of stack_end,
4701         load stack and frame pointer with address of 'stack_end' symbol
4702
4703 2004-07-23 Vangelis Rokas <vrokas AT otenet.gr>
4704
4705         * src/pic16/glue.c (pic16emitStaticSeg): fixed bug with files
4706         without source code but only variable initializers
4707
4708 2004-07-20 Vangelis Rokas <vrokas AT otenet.gr>
4709
4710         * src/pic16/glue.c (pic16emitRegularMap): unused functions marked as
4711         external are not declared as extern to reduce overhead while linking
4712
4713 2004-07-20 Maarten Brock <sourceforge.brock AT dse.nl>
4714
4715         * src/SDCCast.c (decorateType): removed buggy fix for bug #979599
4716
4717 2004-07-11 Maarten Brock <sourceforge.brock AT dse.nl>
4718
4719         * src/SDCCglue.c (printIvalArray): fixed bug #984229, thanks to Phuah
4720           Yee Keat for the patch
4721         * src/SDCCast.c (decorateType): fixed bug #979599
4722         * src/ds390/gen.h: removed local fReturnSizeDS390
4723         * src/ds390/gen.c: made fReturnSizeDS390 signed short to remove a warning
4724         * src/ds390/gen.c (genAnd, genOr, genXor),
4725         * src/mcs51/gen.c (genAnd, genOr, genXor): generate better optimized code
4726
4727 2004-07-04 Vangelis Rokas <vrokas AT otenet.gr>
4728
4729         * src/SDCCmain.c (linkEdit): modifications only for pic16 port,
4730         add relFilesSet to $3, manipulate $2 to handle linking of object
4731         files without source files in command line,
4732         * device/include/pic16 (all headers): added ID location macros,
4733         * src/pic16/device.c (struct PIC16_device Pics16[]): added field
4734         entries for ID location bytes,
4735         * (pic16_assignIdByteValue): NEW,
4736         * src/pic16/device.h: new structures idRegInfo_t and idBytesInfo_t,
4737         added field dumpcalltree to pic16_options_t,
4738         * src/pic16/gen.c (genCmp): fixed bug case so a temporary register
4739         is used instead of pic16_Gstack_base_addr, check if (ifx) before
4740         emitting rFalseIfx label after check_carry label,
4741         * src/pic16/glue.c (PIC16_IS_IDLOC_ADDRESS, PIC16_IS_HWREG_ADDRESS,
4742         pic16_emitDIRegs), NEW
4743         * (pic16glue): dump .calltree file when option --calltree found,
4744         * src/pic16/main.c (OPTION _pic16_optionsTable): new option --calltree
4745         * (_pic16_genAssemblerPreamble): emit ID locations after
4746         configuration registers,
4747         * (pic16_linkCmd): modifications of the link command,
4748         * src/pic16/pcode.c (pic16_pciMOVFF): PCC_REGISTER replaces PCC_REGISTER2
4749         * (pic16_pCodeInitRegisters): don't init stack registers,
4750         * (pic16_findPrevInstruction): fixed bug,
4751         * (pic16_getRegFromInstruction, pic16_getRegFromInstruction2): fixed
4752         bug with immediate registers,
4753         * (buildCallTree): traces stack push and pop,
4754         * (pct2): dump also stack usage for each function,
4755         * src/pic16/ralloc.c (dynrIdx): registers names start from 0x00
4756         * (pic16_allocDirReg): various modifications,
4757         * (pic16_typeRegWithIdx): when searching pic16_dynProcessorRegs set
4758         fixed to 1,
4759
4760 2004-07-02 Vangelis Rokas <vrokas AT otenet.gr>
4761
4762         * src/pic16/pcode.c: removed buggy double colon
4763
4764 2004-07-01 Borut Razem <borut.razem AT siol.net>
4765
4766         * support/scripts/sdcc.nsi: added include/pic16 to setup
4767
4768 2004-06-30 Vangelis Rokas <vrokas AT otenet.gr>
4769
4770         * device/lib/Makefile.in: fixed bug in target objects-pic16,
4771         * device/lib/pic16/Makefile: prefixed with dash (-) command under
4772         target 'clean',
4773         * doc/sdccman.lyx: changed version to 2.4.2 and added some port
4774         specific command line arguments. Also added sample lkr script
4775         for placing a variable at a specific memory bank.
4776         * src/pic16/device.c (pic16_dump_gsection): NEW, to dump variables
4777         at a specific memory bank,
4778         * (pic16_dump_isection): fixed bug which caused string literals to
4779         be omitted when dumping idata section,
4780         * (pic16_groupRegistersInSection): added code to handle registers
4781         in specific memory banks,
4782         * src/pic16/gen.c: labelOffset is prefixed with pic16_ and made
4783         public, all references are renamed too,
4784         * (pic16_aopGet): removed switch cases for AOP_R0,AOP_R1,AOP_DPTR,
4785         AOP_DPTR2,
4786         * (pic16_storeForReturn): added case to handle when dest is WREG,
4787         * src/pic16/genarith.c (pic16_pCodeOpSubType): NEW,
4788         * src/pic16/glue.c (pic16emitRegularMap): when adding a register in
4789         pic16_rel_udata, check to see if that register is marked as being
4790         a member of a specific memory bank,
4791         * (pic16_printIvalCharPtr): added code to add string literals either
4792         to code or the idata sections,
4793         * src/pic16/main.c (_process_pragma): added \n to WHITE constant,
4794         also accept the 'udata' pragma,
4795         * src/pic16/main.h: new structure types sectName and sectSym
4796         * src/pic16/pcode.c: added new pCodeInstruction entry for BANKSEL
4797         * (newpCodeOpBit): added PIC_OPTYPE subt in function prototype,
4798         * (pic16_findPrevInstruction): fixed, it returned nothing,
4799         * (insertBankSwitch): fixed to emit banksel/skip and skip/banksel
4800         instruction combinations,
4801         * (pic16_FixRegisterBanking): heavily reorganised,
4802         * (pic16_AnalyzeBanking): if generating banksel directives is
4803         disabled, then don't call FixRegisterBanking at all,
4804         * src/pic16/ralloc.c (bitEQUs, aliasEQUs, allDefsOutOfRange):
4805         completely removed,
4806         * (pic16_writeUsedRegisters): added call to pic16_dump_gsection
4807
4808 2004-06-29 Bernhard Held <bernhard AT bernhardheld.de>
4809
4810         * src/SDCCglue.c (printChar): fixed bug #973350, patch provided by
4811         Phuah Yee Keat <yk.phuah AT nestac.com>
4812
4813 2004-06-28 Vangelis Rokas <vrokas AT otenet.gr>
4814
4815         * src/pic16/glue.c (pic16createInterruptVect): function now emits
4816         correctly the IVT even if it is relocated to some other location
4817
4818 2004-06-28 Vangelis Rokas <vrokas AT otenet.gr>
4819
4820         * device/include/pic16/pic18fregs.h: added case for pic18f2220.h
4821         * device/include/pic16/pic18f2220.h: NEW,
4822         * device/lib/pic16/libdev/pic18f2220.c: NEW,
4823         * device/lib/pic16/libdev/Makefile: added 18f2220 in DEVS,
4824         * src/pic16/device.c (struct Pics16): added info for 18f2220,
4825         * src/pic16/device.h (struct pic16_options): added ivt_loc and
4826         nodefaultlibs, ivt_loc is the location of the interrupt vector
4827         table, and nodefaultlibs signs that default libraries should not be
4828         linked in link stage,
4829         * src/pic16/gen.c (genFunction): relocate interrupt vector functions
4830         according to --ivt-loc argument,
4831         * src/pic16/main.c (_process_pragma): emit '_stack' as public symbol
4832         when pragma stack is found,
4833
4834 2004-06-25 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
4835
4836         * src/mcs51/peeph.def: added peepholes 182.d (return 0.0),
4837         256 (range check), 257 (do while), 258.a-f (bit banging
4838         f.e. on 3-wire SPI bus)
4839
4840 2004-06-21 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
4841
4842         * src/SDCClrange.c (findNextUseSym): fixed a live range bug with
4843         variables used exclusively within a loop
4844
4845 2004-06-21 Bernhard Held <bernhard AT bernhardheld.de>
4846
4847         * src/mcs51/gen.c (genCpl): quick fix for bug #974835
4848
4849 2004-06-21 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
4850
4851         * src/SDCClrange.c (computeClash): fixed bug #971834
4852
4853 2004-06-20 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
4854
4855         * src/mcs51/gen.c (genCmp): fixed bug #975903
4856         * src/hc08/gen.c (operandsEqu),
4857         * src/ds390/gen.c (operandsEqu),
4858         * src/z80/gen.c (operandsEqu),
4859         * src/pic/gen.c (operandsEqu),
4860         * src/pic16/gen.c (operandsEqu),
4861         * src/mcs51/gen.c (operandsEqu): fixed bug #976283
4862         * src/SDCCmain.c (parseCmdLine): report --unknown-option only once
4863
4864 2004-06-15 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
4865
4866         * src/SDCCcse.c (cseBBlock): fixed bug #966963
4867
4868 2004-06-12 Vangelis Rokas <vrokas AT otenet.gr>
4869
4870         * src/pic16/gen.c (genPointerGet): added E_INTERNAL_ERROR for
4871         default case in switch statement,
4872         * glue.c (pic16_initPointer): expr is initialised via decoarteType
4873         to eliminate problem with initialisation of pointers, but problem
4874         still exists,
4875         * (pic16_pointerTypeToGPByte): removed, no needed for pic16,
4876         * (emitStaticSegment): removed various lines emitting debug info,
4877         * src/pic16/pcode.c, src/pic16/pcode.h, src/pic16/ralloc.h:
4878         added processor registers for utilizing EEPROM,
4879         * src/pic16/pcode.c (pic16_emitDB): number of DBs emitted is not
4880         configurable and set 8
4881
4882 2004-06-08 Vangelis Rokas <vrokas AT otenet.gr>
4883
4884         * .version: increased version number to 2.4.2,
4885
4886         Cumulative patch for pic16 port
4887         * src/pic16/device.c: changed scheme to dump initial values for
4888         variables in idata segment, all print_idata* functions were removed,
4889         now the pic16_printIval* will be called,
4890         * src/pic16/glue.c: (pic16_initPointer, pic16_pointerTypeToGPByte,
4891         * _pic16_printPointerType, pic16_printPointerType,
4892         * pic16_printGPointerType, pic16_printIvalArray, pic16_printIvalStruct,
4893         * pic16_printIvalBitFields, pic16_printIvalFuncPtr, pic16_printIvalPtr:
4894         NEW, similar to the respective functions in SDCCglue.c,
4895         * src/pic16/pcode.c (pic16_emitDB, pic16_flushDB): reverted to old
4896         way, emitting hex bytes,
4897         * (pic16_emitDS): NEW, emits a string for pointer initialisation,
4898
4899 2004-06-08 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
4900
4901         * src/avr/ralloc.c (serialRegAssign),
4902         * src/xa51/ralloc.c (serialRegAssign),
4903         * src/pic/ralloc.c (serialRegAssign),
4904         * src/pic16/ralloc.c (serialRegAssign),
4905         * src/hc08/ralloc.c (serialRegAssign),
4906         * src/z80/ralloc.c (serialRegAssign),
4907         * src/ds390/ralloc.c (serialRegAssign),
4908         * src/mcs51/ralloc.c (serialRegAssign): fixed bug #964479
4909
4910 2004-06-08 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
4911
4912         * src/SDCCicode.c (geniCodeJumpTable): fixed bug #967601
4913         * src/SDCCpeeph.c (labelIsReturnOnly): fixed bug #966505
4914
4915 2004-06-07 Vangelis Rokas <vrokas AT otenet.gr>
4916
4917         Cumulative patch for pic16 port:
4918         * src/pic16/device.h (typedef PIC16_device) modified fields for
4919         defining microcontrollers,
4920         * src/pic16/device.c: added new info for all devices in Pics16 array,
4921         * src/pic16/gen.c (genPcall): fixed bug that caused the return label
4922         to be optimised out by the pCode optimiser,
4923         * src/pic16/glue.c (pic16emitRegularMap): treat implicit aggragates
4924         specially, bug reported by G.M. Gallant,
4925         * src/pic16/pcode.c (pic16_newpCodeLabelFORCE): NEW, marks a label
4926         as force'd so that cannot be optimised out by pCode optimiser,
4927         * src/pic16/pcode.c,
4928         * src/pic16/pcodepeeph.c,
4929         * src/pic16/pcoderegs.c: many modifications to re-enable peepholes,
4930         they are disabled by default, but can be enabled explicit with
4931         command argument --denable-peeps, for testing,
4932         * device/lib/pic16/startup/Makefile: added --no-peep,--pomit-config-words,
4933         --pomit-ivt in COMPILE_FLAGS
4934
4935 2004-06-06 Maarten Brock <sourceforge.brock AT dse.nl>
4936
4937         * src/pic16/pcode.c (pic16_emitDB): removed double semicolon which fails
4938           compilation on MSVC
4939
4940 2004-06-06 Maarten Brock <sourceforge.brock AT dse.nl>
4941
4942         * device/include/sab80515.h: added sfr P6, changed GPL to LGPL
4943
4944 2004-06-06 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
4945
4946         device/include/sab80515.h: fixed bug #967492, DAPR is defined at adress
4947         0xd8, but the correct adress is 0xda. Thanks to anonymous for reporting
4948
4949 2004-06-06 Vangelis Rokas <vrokas AT otenet.gr>
4950
4951         * src/pic16/device.c (pic16_assignConfigWord): fixed bug that
4952         would only assign 0x300001 register.
4953
4954 2004-06-05 Vangelis Rokas <vrokas AT otenet.gr>
4955
4956         * device/lib/pic16/startup/Makefile: added $(MODELFLAGS)
4957         in COMPILE_FLAGS. Thanks to G. Gallant for report.
4958
4959 2004-06-05 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
4960
4961         * doc/sdccman.lyx: minor changes, mentioned beta vendor support
4962         for ds80c400
4963         * src/mcs51/peeph.def: ran unexpand -a over peeph.def
4964         * src/mcs51/peeph.def: removed obsolete peephole 100.a,
4965         added peephole 254 (left shift), 255 (jump table)
4966
4967 2004-06-04 Vangelis Rokas <vrokas AT otenet.gr>
4968
4969         * device/lib/Makefile.in: removed comment line with model-pic16,
4970         * (target port-specific-objects-pic16): the libraries and objects
4971         are copied to the build directory form the device/lib/pic16/bin
4972         directory
4973
4974         Cumulative patch concerning pic16 port:
4975         * library directory has been re-organized,
4976         * added support for PIC18F1220,
4977         * added headers and library sources for chips 18f1220,18f6520,
4978         18f6620,18f6680,18f6720,18f8520,18f8620,18f8680,18f8720
4979
4980         * configuration registers setting has changed, now each supported
4981         device has a complete description of the registers it uses,
4982         * all initialisations are moved to idata sections, these section
4983         can be absolute or relocatable,
4984         * fixed initialisation of codespace variables,
4985         * fixed warning about PCLATU and gpsim,
4986         * src/pic16/gen.c (genCmp): now can handle partially iCodes with no ifx,
4987         * (genAssign): use table reads when assigning from variables in codespace,
4988         * src/pic16/glue.c (pic16emitStaticSeg): fixed to correctly initialise
4989         char/int variables placed in codespace,
4990         * (pic16_emitConfigRegs): NEW, emits a list with configuration
4991         registers set in .asm file, no need for --pomit-config-words anymore,
4992         * (pic16glue): some 8051 legacy segments are commented out
4993         (to be removed completely),
4994         * added support for alternative assembler and linker with --asm=
4995         and --link= command line arguments,
4996         * peepholes are disabled automatically in the port, no need to
4997         specify on command line,
4998         * port supports natively char/int/long multiplication, but converts
4999         all divisions to support functions,
5000         * main.c: pic16_linkCmd and pic16_asmCmd changed to force output
5001         to the file set in variable $2,
5002         * pcode.c (pic16_emitDB, pic16_flushDB): modified to print printable
5003         strings in ASCII format and not in hex,
5004         * ralloc.c (serialRegAssign): added a triplet of conditional calls
5005         to pic16_allocDirReg for IC_RESULT, IC_LEFT and IC_RIGHT so to
5006         allocate proper register if iCodes aren't temporary,
5007
5008 2004-06-02 Maarten Brock <sourceforge.brock AT dse.nl>
5009
5010         * support/regression/tests/zeropad.c: added TEST_G macro for alpha
5011
5012 2004-06-02 Vangelis Rokas <vrokas AT otenet.gr>
5013
5014         * src/pic16/gen.c (genPcall): warning about gpsim and PCLATU
5015         is commented out
5016
5017 2004-06-01 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
5018
5019         * src/hc08/gen.c (genPointerGetSetOfs): disabled optimization if
5020         computed address is reused
5021         * src/hc08/gen.c (genPackBits): fixed offsets in assignments to
5022         multi-byte bitfields
5023
5024 2004-06-01 Maarten Brock <sourceforge.brock AT dse.nl>
5025
5026         * src/z80/gen.c: (genArrayInit): must check for pointers too
5027
5028 2004-06-01 Maarten Brock <sourceforge.brock AT dse.nl>
5029
5030         * support/regression/tests/zeropad.c: never meant to commit the
5031           nestedstruct test: removed, added check for GCC version
5032
5033 2004-05-31 Maarten Brock <sourceforge.brock AT dse.nl>
5034
5035         * src/SDCCast.c (createIvalArray): fixed bug 770487 SIGSEGV
5036         * src/SDCCglue.c (emitRegularMap): fixed bug 770484 allocation problem
5037         * src/SDCCglue.c (initPointer, printIvalType, printIvalStruct,
5038           printIvalArray, printIvalFuncPtr, printIvalPtr, printIval): fixed
5039           bugs 928906 and 954082 half-empty initializers
5040         * src/SDCCsymt.h,
5041         * src/SDCCsymt.c (getAllocSize): added for above fix
5042         * src/z80/gen.c (genArrayInit): fixed bug 741044
5043         * support/regression/tests/zeropad.c: added tests
5044
5045 2004-05-30 Vangelis Rokas <vrokas AT otenet.gr>
5046
5047         * src/pic16/device.c (pic16_dump_section): corrected bug which
5048         caused some symbols of the libraries to be misplaced
5049
5050 2004-05-28 Vangelis Rokas <vrokas AT otenet.gr>
5051
5052         * src/pic16/glue.c,
5053         * src/pic16/ralloc.h,
5054         * src/pic16/ralloc.cc: prefixed IS_CONFIG_ADDRESS with PIC16_
5055         to fix conflict with pic port
5056
5057 2004-05-28 Vangelis Rokas <vrokas AT otenet.gr>
5058
5059         * src/pic16/glue.c (pic16emitStaticSeg): do not print as publics or
5060         externs configuration variables,
5061         * src/pic16/ralloc.h,
5062         * src/pic16/ralloc.cc: IS_CONFIG_ADDRESS is made public and added
5063         prototype in header, commented out some debug messages
5064
5065 2004-05-26 Vangelis Rokas <vrokas AT otenet.gr>
5066
5067         * src/pic16/glue.c,
5068         * src/pic16/main.c,
5069         * src/pic16/pcode.c: added gpasm directives #FILE/#LINE
5070         for gpasm COFF object generation. Thanks to D. Hawkins for
5071         his patch info
5072
5073 2004-05-25 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
5074
5075         * src/ds390/main.c,
5076         * src/mcs51/main.c: fixed sort order of mnemonics (thanks to Maarten
5077         Brock for spotting this)
5078         * src/ds390/gen.c (genEndFunction),
5079         * src/mcs51/gen.c (genEndFunction): always save psw if function is an
5080         interrupt handler and critical. Disable push/pop optimizations when
5081         peephole optimizations disabled.
5082
5083 2004-05-25 Vangelis Rokas <vrokas AT otenet.gr>
5084
5085         Updated pic16 library sources and headers.
5086         * device/lib/pic16/pic18f*/ ,
5087         * device/include/pic16/*.h: modified to handle structured SFR
5088         definitions
5089
5090 2004-05-25 Vangelis Rokas <vrokas AT otenet.gr>
5091
5092         * src/port.h (PORT structure): added hook initPaths, now each
5093         port can declare its own default search paths,
5094         which can been seen with the --print-search-dirs option,
5095         see pic16 port for example,
5096         * src/SDCCmain.c (setBinPaths, setIncludePaths, setLibPath,
5097         setDataPaths): test to options.printSearchDirs is ifdef'ed out,
5098         * (doPrintSearchDirs): NEW, replaces in a central manner the
5099         printing of search dirs which was split in set*Paths functions,
5100         * (main): added call to port->initPaths and doPrintSearchDirs,
5101         * src/avr/main.c,
5102         * src/ds390/main.c,
5103         * src/hc08/main.c,
5104         * src/izt/i186.c,
5105         * src/izt/tlcs900h.c,
5106         * src/mcs51/main.c,
5107         * src/pic/main.c,
5108         * src/pic16/main.c: modified port structures to reflect addition of
5109         initPaths hook,
5110
5111         * src/pic16/device.c (regCompare): registers are finally sorted by name,
5112         * (pic16_dump_section): for registers in same address reserve memory once,
5113         * src/pic16/device.h (struct PIC16_device): changed variable gen_banksel
5114         to no_banksel,
5115         * src/pic16/genarith.c (pic16_genPlus): added code to handle cases where
5116         result is greater in size than right or left,
5117         * (pic16_genUMult8X8_8): there are some cases where the result can
5118         be 16 bits size, so handle these,
5119         * src/pic16/gen.c: changed some pic16_emitpcomment to DEBUGpic16_emitcode,
5120         * (pic16_outBitC): modified to emit pcodes,
5121         * (pic16_storeForReturn): using is_LitOp to see if operand is literal
5122         or not,
5123         * (genDivOneByte): implemented algorithm to divide 8-bits,
5124         * (genCmp): uncommented goto, but issues still exist,
5125         * (genAnd): fixed a bug with variables >8bits,
5126         * (genPackBits): optimization added that uses BCF/BSF to change a
5127         single bit,
5128         * (genAssign): fixed bug when assigning floating point literals,
5129         * src/pic16/glue.c (pic16glue): added assembler directive 'code' before
5130         __sdcc_gsinit_startup label,
5131         * src/pic16/main.c (_pic16_init): removed search directory
5132         initialisations,
5133         * (_pic16_initPaths): NEW, used to initialise search directories,
5134         * (_hasNativeMulFor): support functions for all except char/int
5135         multiplication, and char division,
5136         * (PIC16_port struct): modified entry for native mul support,
5137         * src/pic16/pcode.c (insertBankSwitch): modified to support the renamed
5138         no_banksel option,
5139         * (buildCallTree): call to register_usage is ifdef'ed out,
5140
5141 2004-05-22 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
5142
5143         * device/include/string.h: applied Stas Sergeev's patch to make this
5144         header file compatible with the preprocessor -Wundef option
5145         * src/SDCCmain.c (main): abort compilation if preprocessor reports
5146         failure (fixes bug #941458)
5147
5148 2004-05-21 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
5149
5150         * src/SDCCopt.c (killDeadCode): fixed bug #907733
5151         * support/Util/SDCCerr.c: reworded E_AUTO_ASSUMED diagnostic to clarify
5152         that the variable, not the function, should be static
5153         * src/SDCCval.c (valCastLiteral): fixed bit initialization from literal
5154         to be consistent with non-literal case
5155
5156 2004-05-19 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
5157
5158         * src/SDCCast.c (isConformingBody): fixed bug #949967
5159         * src/SDCCopt.c (cnvToFcall, cnvToFloatCast, cnvFromFloatCast,
5160         convilong): fixed bug #952086
5161
5162 2004-05-18 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
5163
5164         * src/SDCCmem.c (allocVariables): fixed bug #955321
5165
5166 2004-05-18 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
5167
5168         * src/hc08/main.c (_hc08_genAssemblerEnd),
5169         * src/SDCCdwarf2.c (dwOpenFile, dwCloseFile, dwWriteFunction,
5170         dwWriteModule, dwWriteCLine, dwWriteALine, dwarf2FinalizeFile):
5171         completely eliminated the use of a temporary file
5172         * src/SDCCdwarf2.c (dwWriteAttr): fixed bug with location list offset
5173         when more than one file linked
5174         * src/SDCCloop.c (pointerAssigned): fixed bug #954163
5175
5176 2004-05-17 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
5177
5178         * src/SDCCval.c (valForArray): applied Maarten Brock's patch #947682
5179         which fixes bug #543481
5180         * support/regression/tests/bug-751703.c: fixed comments left from a
5181         cut and paste error
5182         * src/SDCCdwarf2.c (dwCloseFile): don't explicitly close a temp file
5183         * src/SDCCdwarf2.c (dwTagFromType): added bitfield support
5184         * src/SDCCdwarf2.c (dwWriteSymbolInternal): handle extern within local
5185         scopes
5186         * src/SDCCdwarf2.c (dwWriteLineNumber): line number deltas are signed
5187         * src/SDCCmain.c (processFile, parseCmdLine): non-alphanumeric chars
5188         are now changed to underscores in moduleName
5189
5190 2004-05-15 Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
5191
5192         * as/mcs51/lkmem.c: better fix for bug #954173
5193
5194 2004-05-15 Maarten Brock <sourceforge.brock AT dse.nl>
5195         committed by Frieder Ferlemann <Frieder.Ferlemann AT web.de>
5196
5197         * device/include/c8051f020.h: newly added SiLabs (Cygnal) header file
5198         * device/include/c8051f000.h,
5199         * device/include/c8051f120.h,
5200         * device/include/c8051f300.h,
5201         * device/include/c8051f310.h,
5202         * device/include/c8051f320.h: updated (added _XPAGE, CAPN, CAPP,
5203         PWM16) and detab'ed
5204
5205 2004-05-15 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
5206
5207         * doc/sdccman.lyx: mentioned sourceforge's delay between web frontend
5208         and mailing lists, doc'ed --no-peep-comments, removed reference
5209         to knoppix (newest version has no LyX/LaTeX), other minor changes
5210         * src/SDCCglue.c (glue): save 2 bytes stack space with
5211         option --main-return. The ljmp could probably be avoided too
5212
5213 2004-05-14 Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
5214
5215         * as/mcs51/lkmem.c, as/mcs51/lkaomf51: fixed bug 954173
5216
5217 2004-05-14 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
5218
5219         * src/SDCCsymt.h: added IS_AUTO(symbol) test macro
5220         * src/SDCCopt.c (isLocalWithoutDef),
5221         * src/SDCCicode.c (operandFromSymbol): use the IS_AUTO test macro
5222         which adds a !IS_EXTERN codition. Fixes bugs #877426 and #751703.
5223         (credit to Maarten Brock for patch #949363, on which this is based)
5224         * support/regression/tests/bug-751703.c: some test cases of extern used
5225         within inner scopes.
5226
5227 2004-05-14 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
5228
5229         * src/SDCCdwarf2.c (dwMatchTypes): structs must have matching
5230         SPEC_STRUCT
5231         * src/SDCCdwarf2.c (dwTagFromType): fix to handle recursive
5232         struct definitions
5233         * src/SDCCdwarf2.c (dwWriteModule, dwNewDebugSymbol, dwWriteEndFunction,
5234         dwWriteLabel): fix to create valid debugger symbols even when
5235         the module name has non-alphanumeric symbols in it
5236         * src/SDCCdwarf2.c (dwWriteSymbolInternal): better detection for
5237         when a variable's allocation has been optimized away
5238
5239
5240 2004-05-13 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
5241
5242         * src/hc08/gen.c (hc08_emitDebuggerSymbol),
5243         * src/hc08/main.c,
5244         * src/mcs51/gen.c (mcs51_emitDebuggerSymbol),
5245         * src/mcs51/main.c,
5246         * src/ds390/gen.c (ds390_emitDebuggerSymbol),
5247         * src/ds390/main.c,
5248         * src/z80/gen.c (z80_emitDebuggerSymbol),
5249         * src/z80/main.c,
5250         * src/pic/gen.c (pic14_emitDebuggerSymbol),
5251         * src/pic/main.c,
5252         * src/pic16/gen.c (pic14_emitDebuggerSymbol),
5253         * src/pic16/main.c,
5254         * src/avr/gen.c (avr_emitDebuggerSymbol),
5255         * src/avr/main.c,
5256         * src/xa51/gen.c (xa51_emitDebuggerSymbol),
5257         * src/xa51/main.c,
5258         * src/SDCCdebug.c (emitDebuggerSymbol),
5259         * src/SDCCdebug.h,
5260         * src/port.h: added a debugger struct to the port struct. Added a
5261         callback for defining debugger symbols
5262
5263         * src/SDCCast.c (createLabel),
5264         * src/SDCC.y (labeled_statement): mark all compiler generated labels
5265         with isitmp = 1
5266         * src/SDCCicode.h,
5267         * src/SDCCicode.c (geniCodeFunctionBody): added a link from the FUNCTION
5268         iCode back to the ast for the function
5269
5270         * src/hc08/ralloc.c (hc08_assignRegisters),
5271         * src/hc08/ralloc.h: define a regs struct for the stack pointer. Removed
5272         unneeded fields from the regs struct.
5273         * src/hc08/gen.c (transferRegReg, genFunction, genEndFunction): use the
5274         pushReg() & pullReg() functions instead of emitcode()
5275
5276         * src/hc08/gen.c (genLabel, genhc08Code),
5277         * src/SDCCdebug.h: Added additional debugger hooks needed for DWARF
5278
5279         * src/cdbFile.c (cdbWriteLabel, cdbWriteScope): Added stubs for unneeded
5280         debugger hooks
5281
5282         * src/hc08/gen.c (genEndFunction, genhc08Code),
5283         * src/hc08/gen.h,
5284         * src/mcs51/gen.c (genEndFunction, gen51Code),
5285         * src/mcs51/gen.h,
5286         * src/ds390/gen.c (genEndFunction, gen390Code),
5287         * src/ds390/gen.h,
5288         * src/z80/gen.c (genEndFunction, genZ80Code),
5289         * src/z80/gen.h,
5290         * src/z80/z80.h,
5291         * src/pic/gen.c (genEndFunction, genpic14Code),
5292         * src/pic/gen.h,
5293         * src/pic16/gen.c (genEndFunction, genpic16Code),
5294         * src/pic16/gen.h,
5295         * src/avr/gen.c (genEndFunction, genAVRCode),
5296         * src/avr/gen.h,
5297         * src/xa51/gen.c (genEndFunction, genXA51Code),
5298         * src/xa51/gen.h,
5299         * src/cdbFile.c (cdbWriteFunction, cdbWriteEndFunction): moved cdb
5300         specific code to cdbFile.c and out of the backend code generators
5301
5302         * as/hc08/lkmain.c (main): removed OMF51 support from link-hc08
5303         * as/hc08/lkarea.c (lnkarea): areas with NOLOAD attribute default
5304         starting address is now 0
5305
5306         * as/hc08/asm.h,
5307         * as/hc08/m08pst.c,
5308         * as/hc08/asmain.c (asmbl): implemented the .sleb128 and .uleb128
5309         assembler directive for DWARF support
5310         * as/hc08/lkelf.c (elf): only increment address when rtflg[] set
5311
5312         * src/src.dsp,
5313         * src/Makefile.in,
5314         * src/SDCCdwarf2.c: preliminary DWARF (ver 2) debugger data generator
5315
5316 2004-05-04 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
5317
5318         * src/hc08/gen.c (genJumpTab, emitcode, genhc08code): fixed stack error
5319         and inappropriate peephole optimization in jump tables
5320
5321 2004-04-30 Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
5322
5323         * as/hc08/m08pst.c,
5324         * src/SDCCglue.c: sdccopt works for the hc08 port now
5325
5326 2004-04-27 Bernhard Held <bernhard AT bernhardheld.de>
5327
5328         * src/SDCCicode.c (geniCodePreInc, geniCodePreDec): fixed bug #942130
5329
5330 2004-04-27 Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
5331
5332         * as/hc08/lkelf.c: sdccconf.h is not available in WIN32
5333
5334 2004-04-24 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
5335
5336         * src/SDCCpeeph.c (replaceRule): support empty replacement peephole
5337         rules
5338         * src/SDCCmain.c,
5339         * src/SDCCglobl.h,
5340         * src/SDCCpeeph.c (getPeepLine): new option --no-peep-comments omits
5341         comments from the peephole optimizer replacement rules
5342         * src/SDCCmem.c (printAllocInfoSeg): give actual location of spilled
5343         symbols
5344         * src/SDCCcse.c (updateSpillLocation),
5345         * src/SDCCopt.c (killDeadCode, findReqv): better tracking of register
5346         equivalents
5347         * src/hc08/ralloc.c (regTypeNum): pseudo symbols must be in DATA only
5348         * src/hc08/main.c (_hc08_finaliseOptions): made pointers to stack
5349         objects far pointers
5350
5351 2004-04-23 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
5352
5353         * src/SDCCsymt.h: a missing part of my last change
5354         * src/pic/ralloc.c (regTypeNum),
5355         * src/pic16/ralloc.c (regTypeNum): fixed statement/declaration order
5356
5357 2004-04-23 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
5358
5359         * src/SDCCicode.h,
5360         * src/SDCCicode.c (aggrToPtrDclType),
5361         * src/SDCCptropt.h,
5362         * src/SDCCptropt.c (ptrBaseRematSym, ptrPseudoSymSafe,
5363         ptrPseudoSymConvert),
5364         * src/pic/ralloc.c (regTypeNum),
5365         * src/pic16/ralloc.c (regTypeNum),
5366         * src/hc08/ralloc.c (regTypeNum),
5367         * src/ds390/ralloc.c (regTypeNum),
5368         * src/mcs51/ralloc.c (regTypeNum): check for dependancy hazards before
5369         creating pseudo symbols (fixed bugs #777768, #930484, and #933966)
5370
5371 2004-04-22 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
5372
5373         * link/z80/lkmain.c (afile),
5374         * as/hc08/lkmain.c (afile),
5375         * as/mcs51/lkmain.c (afile): fix suggested by Maarten Brock to
5376         prevent a pointer problem when a filename has no directory and
5377         no extension specified.
5378
5379 2004-04-21 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
5380
5381         * link/z80/lkmain.c (afile): allow periods in directory names
5382         * link/z80/lkmain.c (afile),
5383         * as/mcs51/lkmain.c (afile),
5384         * as/hc08/lkmain.c (afile): allow linker script file to have an
5385         extension other than ".lnk"
5386         * link/z80/lklex.c (getfid),
5387         * link/z80/lkmain.c (parse),
5388         * as/mcs51/lklex.c (getfid),
5389         * as/mcs51/lkmain.c (parse),
5390         * as/hc08/lklex.c (getfid),
5391         * as/hc08/lkmain.c (parse): Support comments in the linker script
5392         file on lines by themselves and after filenames
5393
5394 2004-04-20 Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
5395
5396         * as/link_hc08.dsp: Added as/hc08/lkelf.c to project.
5397
5398 2004-04-20 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
5399
5400         * src/z80/peeph-z80.def: removed some peephole rules that don't
5401         work with multibyte arithmetic (fixed bug #937126)
5402         * src/mcs51/peeph.def: fixed peephole rules 150-158 to apply only
5403         to registers and not global variables
5404         * src/SDCCicode.c (geniCodeAssign, ast2iCode, geniCodePostInc,
5405         geniCodePreInc, geniCodePostDec, geniCodePreDec,
5406         geniCodeLogicAndOr, geniCodeConditional): enforce strict lvalue
5407         checking for assignments not internally generated (fixed bug #931895)
5408         * src/SDCC.y (postfix_expr): ignore typedefs when looking for a
5409         structure member (fixed bug #930072)
5410
5411 2004-04-19 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
5412
5413         * src/SDCCmain.c (linkEdit),
5414         * src/hc08/main.c (_hc08_parseOptions),
5415         * as/hc08/Makefile.in,
5416         * as/hc08/aslink.h,
5417         * as/hc08/asm.h,
5418         * as/hc08/m08pst.c,
5419         * as/hc08/lkrloc.c (relr, rele),
5420         * as/hc08/lkarea.c (lnkarea)
5421         * as/hc08/lkmain.c (afile, parse),
5422         * as/hc08/lkelf.c: support for ELF output
5423         * as/hc08/lks19.c (s19),
5424         * as/hc08/lkihx.c (ihx): ignore areas with the NOLOAD attribute
5425
5426 2004-04-17 Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
5427
5428         * as/mcs51/lkihx.c: Fixed bug #899105.
5429
5430 2004-04-16 Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
5431
5432         * doc/sdccman.lyx: Added instructons on how to convert MSVC .dsw and
5433         .dsp files from Unix to DOS.
5434
5435 2004-04-16 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
5436
5437         * doc/sdccman.lyx: removed the ANSI-C noncompliance note regarding
5438         function pointers; we have been compliant for several months now.
5439         * src/mcs51/ralloc.c (serialRegAssign): enabled part of my 2004-04-13
5440         change that was accidently commented out
5441         * src/mcs51/gen.c (freeAsmop, getFreePtr, freeForBranchAsmop, genIfxJump,
5442         genCmpEq, jmpTrueOrFalse, genCmp, genAnd, genOr, genXor, genIfx): fixed
5443         bug #922319
5444
5445 2004-04-15 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
5446
5447         * src/hc08/gen.c: output of all of the internal debugging information
5448         is now controlled by the D() macro; it is disabled by default
5449
5450 2004-04-13 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
5451
5452         * src/mcs51/ralloc.c (serialRegAssign, fillGaps, allocThisReg): try
5453         harder to keep the same registers during a CAST iCode
5454         * src/SDCCopt.c (optimizeCastCast, eBBlockFromiCode): casts of char to
5455         long via int can be done in a single cast, if the signedness is
5456         correct.
5457         * support/regression/tests/bug-927659.c: fixed to avoid conflict with
5458         putchar() in tinibios.c in ds390's library
5459
5460 2004-04-12 Bernhard Held <bernhard AT bernhardheld.de>
5461
5462         * src/SDCCast.c (decorateType): fixed bug #898889,
5463         cast result of a literal complement too
5464         * src/mcs51/ralloc.c (packRegsForAssign): fixed bug #930931,
5465         fixed check for bitfields
5466
5467 2004-04-11 Bernhard Held <bernhard AT bernhardheld.de>
5468
5469         * src/SDCCicode.c (geniCodeLogic): made it static,
5470         (geniCodeLogicAndOr): added in order to fix bug #905492,
5471         (ast2iCode): fixed bug #905492
5472         * support/regression/tests/bug-905492.c: added
5473         * src/SDCCast.c (decorateType): don't decorate/process parms twice,
5474         (processParms): fixed bug #927659: don't copy parms, this will clear
5475         decorated flag
5476         * support/regression/tests/bug-927659.c: added
5477
5478 2004-03-29 Bernhard Held <bernhard AT bernhardheld.de>
5479
5480         * src/SDCCast.c (addCast): don't cast float to char
5481         * device/lib/libsdcc.lib: added _memmove
5482
5483 2004-03-28 Bernhard Held <bernhard AT bernhardheld.de>
5484
5485         * device/lib/large/Makefile: fixed parallel execution by
5486         replacing `make` by `$(MAKE)`
5487
5488 2004-03-28 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
5489
5490         * src/hc08/gen.c (genPointerGetSetOfs): correctly handle 1 byte array
5491         offsets (fixes bug #923936)
5492
5493 2004-03-26 Bernhard Held <bernhard AT bernhardheld.de>
5494
5495         * device/lib/small/Makefile: fixed parallel execution by
5496         replacing `make` by `$(MAKE)`
5497
5498 2004-03-23 Bernhard Held <bernhard AT bernhardheld.de>
5499
5500         * device/lib/vprintf.c (vsprintf): minor optimization, see bug #801101
5501
5502 2004-03-23  Scott Dattalo  <scott AT dattalo.com>
5503
5504         * src/pic/gen.c (genCpl): multi-byte complements were not working.
5505         * src/regression/Makefile: Regression test was not running.
5506
5507 2004-03-23 Bernhard Held <bernhard AT bernhardheld.de>
5508
5509         * src/SDCCast.c (resultTypePropagate, decorateType): avoid promotion to int for
5510         complement if possible
5511         * src/SDCCval.c (valComplement),
5512         * src/SDCCicode.c (operandOperation): fixed complement of literal
5513         * support/regression/tests/onebyte.c (testComplement): added
5514
5515 2004-03-22 Bernhard Held <bernhard AT bernhardheld.de>
5516
5517         * src/SDCCast.c (processParms): fixed bug #920866; decorateType() can
5518         return an optimized tree; actually replace actParm with the new tree
5519         * src/SDCCast.h: added some parantheses to remove side effects
5520         * support/regression/tests/bug-920866.c
5521
5522 2004-03-21  Scott Dattalo  <scott AT dattalo.com>
5523         * src/pic/gen.c, src/pic/gen.h, src/pic/genarith.c, src/pic/pcode.c:
5524         Bit operands were not being handled properly in the pic14 port.
5525         (now src/regression/add.c passes again).
5526
5527 2004-03-20 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
5528
5529         * src/SDCC.y (labeled_statement): case and default no longer require
5530         a following statement (RFE #893037)
5531
5532 2004-03-19 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
5533
5534         * src/mcs51/gen.c (pushSide, genSignedRightShift, genDjnz, geniPush):
5535         use MOVA macro to avoid "mov a,acc" when peephole optimizer is
5536         disabled (fixes bug #916294)
5537         * sim/ucsim/s51.src/mov.cc (inst_mov_a_addr): Throw an error on
5538         "mov a,acc"; patch provided by Lenny Story
5539         * device/include/mc68hc908gp32.h: header contibuted by Juan Gonzalez
5540
5541 2004-03-19 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
5542
5543         * src/mcs51/gen.c (genFunction): optimize RECEIVE in reentrant
5544         functions
5545         * src/ds390/gen.c (genFunction, genEndFunction),
5546         * src/ds390/ralloc.c (ds390_assignRegisters),
5547         * src/mcs51/gen.c (genFunction, genEndFunction, mcs51_assignRegisters):
5548         * src/mcs51/ralloc.c (mcs51_assignRegisters): Skip optimizing registers
5549         pushed if there are parameters passed on the stack. Also, a cleaner
5550         way to decide if r0/r1 should be pushed/popped. (Together they fix
5551         bug #918693)
5552
5553 2004-03-18 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
5554
5555         * doc/sdccman.lyx,
5556         * device/lib/mcs51/crtpagesfr.asm,
5557         * device/lib/mcs51/crtxinit.asm,
5558         * device/lib/mcs51/crtxstack.asm: Changed name of _PAGESFR to _XPAGE
5559         to avoid confusion with Si Lab's SFRPAGE register.
5560
5561 2004-03-17 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
5562
5563         * src/SDCCglue.c (emitMaps): allow public sfr variables
5564         * src/SDCCglue.c (initialComments): include compiler build date
5565         with compiler version and put the timestamp of the generated
5566         assembly file on a serperate line to be less confusing.
5567         * src/port.h: added genInitStartup hook
5568         * src/avr/main.c,
5569         * src/ds390/main.c,
5570         * src/hc08/main.c,
5571         * src/pic/main.c,
5572         * src/pic16/main.c,
5573         * src/xa51/main.c,
5574         * src/z80/main.c: genInitStartup initialize as NULL (default to
5575         historical behaviour)
5576         * src/SDCCglue.c (glue): _sdcc_gsinit_startup is now port specific.
5577         * src/mcs51/main.c: (_mcs51_genInitStartup, _mcs51_genExtraAreas,
5578         _mcs51_genXINIT, _mcs51_genRAMCLEAR): link initialization code from the
5579         library instead of hard coding it into the compiler.
5580         * support/regression/ports/mcs51-stack-auto/spec.mk,
5581         * src/SDCCmain.c (linkEdit): added mcs51.lib to the link libraries
5582         * device/lib/mcs51/Makefile,
5583         * device/lib/small/Makefile,
5584         * device/lib/large/Makefile,
5585         * device/lib/mcs51/crtpagesfr.asm,
5586         * device/lib/mcs51/crtstart.asm,
5587         * device/lib/mcs51/crtxclear.asm,
5588         * device/lib/mcs51/crtxinit.asm,
5589         * device/lib/mcs51/crtclear.asm,
5590         * device/lib/mcs51/crtxstack.asm: move most of the mcs51 C runtime
5591         startup/initialization out of src/SDCCglue.c and src/mcs51/main.c
5592         and into user configurable files.
5593         * device/lib/clean.mk: clean mcs51 directory too
5594         * support/regression/tests/longlit.c: added static to T1 declaration
5595         * doc/sdccman.lyx: documented _PAGESFR sfr for customizing pdata
5596         accesses in the initialization code
5597
5598 2004-03-14 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
5599
5600         * device/include/mc68hc908qy.h: corrected declarations of FLBPR and
5601         OSCTRIMVAL as noted in bug #916008
5602
5603 2004-03-14 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
5604
5605         * src/SDCCloop.c (basicInduction): fixed bug with loop induction
5606         in loops with multiple exits (reported as incorrect registers
5607         used by Martin Helmling in Sdcc-user list)
5608
5609 2004-03-12 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
5610
5611         * src/ds390/main.c (_ds390_genAssemblerPreamble): cosmetic change,
5612         made ds390 register extensions look less like error messages
5613
5614 2004-03-12 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
5615
5616         * src/SDCCglue.c (printIvalPtr): fixed bug with pointer initializer
5617         reported by Adam Wozniak in Sdcc-user list
5618
5619 2004-03-10 Bernhard Held <bernhard AT bernhardheld.de>
5620
5621         * src/SDCCast.c (decorateType): fixed with bug and promotion in
5622         arithmetic optimizations, added debug output
5623
5624 2004-03-09 Bernhard Held <bernhard AT bernhardheld.de>
5625
5626         * device/lib/time.c (mktime): fixed bug reported by Bert Thomas
5627         * sdcc.spec: updated and split sdcc into 3 rpms
5628         * src/SDCCast.c (decorateType): &|^ don't need addCast(); addCast() is
5629         needed for literals of LEFT_OP and '+'
5630         * src/SDCCicode.c (geniCodeLogic): I must have been braindead when I
5631         introduced RESULT_TYPE_NOPROM
5632         (geniCodeMultiply): fixed logic for decision if mul is optimized to
5633         left shift
5634         * src/SDCCsymt.c (computeType): op is int; added RESULT_TYPE_OTHER;
5635         limited promotion to int only for '*'
5636         * src/SDCCsymt.h (computeType): op is int, removed RESULT_TYPE_NOPROM
5637
5638 2004-03-09 Hans Dorn <hjdorn AT users.sourceforge.net>
5639
5640         * src/pic16/gen.c (genSkip),
5641         (genc16bit2lit), (gencjneshort): commented out
5642         (is_LitOp): new helper function, checks operand type
5643         (genCmpEq): rewritten
5644
5645 2004-03-08 Bernhard Held <bernhard AT bernhardheld.de>
5646
5647         * support/regression/tests/bug-908454.c: added
5648
5649 2004-03-07 Bernhard Held <bernhard AT bernhardheld.de>
5650
5651         * src/SDCCast.c (addCast): fixed bug #908454 by promoting bits to char
5652         * src/SDCCicode.c (usualBinaryConversions): op needs int type
5653         (geniCodeCast): cosmetic, don't preserve bit storage class
5654         (geniCodeLeftShift): added promotion
5655         (geniCodeLogic): fixed regression
5656         * src/SDCCsymt.c (computeTypeOr): accept bits too
5657         (compareType): 2nd part of fix for bug #908454, needed for bitfields
5658
5659 2004-03-07  Borut Razem <borut.razem AT siol.net>
5660
5661         * support/Util/findme.c: alloca() replaced with malloc()/free() pair
5662
5663 2004-03-06 Vangelis Rokas <vrokas AT otenet.gr>
5664
5665         * src/pic16/ralloc.c (pic16_genPackRegisters): reverted to old
5666         version of pic16_genPackRegisters which does not check if ic is a
5667         CAST operator,
5668         * src/pic16/gen.c (ifxForOp): disabled new and untested code in
5669         function cause string1.c regression test fails
5670
5671 2004-03-06 Bernhard Held <bernhard AT bernhardheld.de>
5672
5673         * sim/ucsim/configure.in,
5674         * sim/ucsim/configure,
5675         * sim/ucsim/doc/Makefile.in: use docdir
5676         * src/SDCC.y: fixed sbit atrributes
5677         * src/SDCCast.c (getResultTypeFromType): added support for bitfields
5678         * src/SDCCast.c (decorateType): |^& need special promotion handling
5679         * src/SDCCast.h,
5680         * src/SDCCsymt.h: moved definition of RESULT_TYPE
5681         * src/SDCCsymt.h (computeType),
5682         * src/SDCCicode.c: computeType() needs op
5683         * src/SDCCsymt.c (checkTypeSanity),
5684         * doc/sddman.lyx: "plain" bitfields are unsigned
5685         * src/SDCCsymt.c (computeTypeOr): added
5686         * src/SDCCsymt.c (computeType): added support for bitfields, fixed
5687         |^& ops
5688         * src/SDCCval.c (val*): computeType() needs op
5689         * src/SDCCval.c (valCastLiteral): fixed casting of bitfields
5690         * support/regression/tests/onebyte.c: added tests for |^&
5691
5692 2004-03-06 Hans Dorn <hjdorn AT users.sourceforge.net>
5693
5694         * src/pic16/gen.c: (genpic16Code) use copy of printILine's output
5695         for writing icode into asm output.
5696
5697 2004-03-05 Vangelis Rokas <vrokas AT otenet.gr>
5698
5699         * src/pic16/device.c: added some debug lines enabled
5700         with macro DEBUG_CHECK,
5701         * src/pic16/genarith.c: more debug in genPlus,
5702         * (pic16_genUMult8XLit_16, pic16_genUMult8X8_16): removed,
5703         * (pic16_genUMult16X16_16, pic16_genUMult16XLit_16): NEW,
5704         * src/pic16/gen.c: added prototypes for pic16_genMult16X16_16,
5705         * (aopForSym): onStack symbols are re-placed in data memspace,
5706         and onStack flag is cleared,
5707         * (pic16_popGetTempReg, pic16_popReleaseTempReg): modified to
5708         copy temporary pcodeop,
5709         * (genPcall): added warning for not updating PCLATU,
5710         * (genFunction): removed test with IFFUNC_CALLEESAVES, its
5711         always true for pic16 port,
5712         * (genMultOneWord): NEW, supports integer multiplication,
5713         * (genMult): modified to call genMultOneWord,
5714         * (ifxForOp): added warning when return NULL,
5715         * src/pic16/glue.c (pic16emitRegularMap): symbol implicit
5716         flag is set before call to operandFromSymbol for implicit
5717         added structures,
5718         * src/pic16/main.c (_pic16_finaliseOptions): options.float_rent,
5719         options.intlong_rent are set by default,
5720         * (_hasNativeMulFor): modified to allow port generation of integer
5721         multiplication,
5722         * src/pic16/ralloc.c (pic16_allocDirReg): commented out line which
5723         set regtype to REG_SFR for all registers, restricting seting the
5724         accessBank flag for registers 0<= r < 0x80 and 0xf80<=r<=0xfff,
5725
5726 2004-03-05 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
5727
5728         * src/mcs51/peephole.def: added 251.b and 253.x. 253.x are applied
5729         more than 500 times in the regression tests
5730
5731 2004-03-05 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
5732
5733         * support/Util/SDCCerr.h,
5734         * support/Util/SDCCerr.c,
5735         * src/SDCC.y (struct_or_union_specifier, enum_specifier,
5736         enumerator_list),
5737         * src/SDCCsymt.c (addSymChain): show location of oriignal definition
5738         for symbol conflicts.
5739         * support/valdiags/tests/enum.c,
5740         * support/valdiags/tests/tentdecl.c,
5741         * support/valdiags/tests/struct.c: expect possible error messages
5742         referring to original symbol definitions.
5743         * src/SDCC.y (struct_or_union_specifier, struct_declarator),
5744         * src/SDCCsymt.h,
5745         * src/SDCCsymt.c (promoteAnonStructs): support anonymous struct/union
5746
5747 2004-03-03 Hans Dorn <hjdorn AT users.sourceforge.net>
5748
5749         * src/pic16/gen.c (gencjne): fixed for right=REG / left=LIT
5750
5751 2004-02-03 Vangelis Rokas <vrokas AT otenet.gr>
5752
5753         * src/pic16/ralloc.c (newReg): fixed bug #908929
5754
5755 2004-03-02 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
5756
5757         * src/ds390/gen.c: added missing #include "main.h"
5758
5759 2004-03-02 Vangelis Rokas <vrokas AT otenet.gr>
5760
5761         * src/pic16/device.c (checkAddSym): NEW, adds a symbol to set while
5762         checking if symbol is already in set,
5763         * src/pic16/device.h: prototype for checkAddSym,
5764         * src/pic16/gen.c: (_G): added entry interruptvector,
5765         * (assignResultValue): removed some commented out lines,
5766         * (genFunction): check for ISR via sym->type, absolute section for
5767         interrupt code is created via a new pBlock, the goto instruction is
5768         placed now correctly at the interrupt vector position, changed all
5769         references from ivec to _G.interruptvector,
5770         * WREG,STATUS,BSR are not saved in stack upon an entry to interrupt
5771         is the interrupt is a high priority one, same for return from ISR,
5772         * src/pic16/glue.c: changed all calls of addSetHead for publics and
5773         externs to calls of checkAddSym,
5774         * src/pic16/pcode.c (pic16_pBlockConvert2*): emit warning when
5775         pic16_pcode_verbose flag is set,
5776         * src/pic16/pcode.h: extern to pic16_pcode_verbose,
5777         * src/pic16/pcoderegs.c: message about how many registers are saved
5778         will only be emitted if pic16_pcode_verbose flag is set,
5779
5780 2004-03-02 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
5781
5782         * src/ds390/ralloc.h,
5783         * src/ds390/ralloc.c (ds390_regWithIdx),
5784         * src/ds390/gen.c (emitcode),
5785         * src/ds390/main.h,
5786         * src/ds390/main.c (instructionSize, ds390newAsmLineNode, updateOpRW,
5787         ds390opcodeCompare, asmLineNodeFromLineNode, getInstructionSize,
5788         ds390operandCompare, getRegsRead, getRegsWritten,
5789         initializeAsmLineNode): customized instruction size calculation for
5790         ds390, started basis for some register optimizations
5791         * src/ds390/gen.c (gen390Code, emitcode): associate iCodes with
5792         corresponding assembly output
5793         * src/ds390/gen.c (genFunction, genEndFunction): added case to handle
5794         missing push/pop of r0/r1. Optimized push/pops
5795
5796 2004-03-01 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
5797
5798         * src/mcs51/main.c (instructionSize): fixed ACALL size
5799         * src/mcs51/main.c (updateOpRW): fixed bug with @dptr, @a+dptr operands
5800
5801 2004-03-01 Vangelis Rokas <vrokas AT otenet.gr>
5802
5803         * src/pic16/device.c (pic16_dump_section): fixed a bug that allowed
5804         the sorting of rlist with NULL elements
5805         * (print_idataType, print_idata): NEW to create idata sections
5806         * src/pic16/device.h: idataSymSet new variable
5807         * src/pic16/gen.c (genFunction): fixed some bugs in string
5808         comparing, improved the absolute section creation for ISRs,
5809         added FSR0L/FSR0H in registers that are saved in an ISR,
5810         * (genInline): fixed the processing of inline snippets,
5811         now they undergo no process by the peephole optimizer
5812         * src/pic16/glue.c (pic16emitRegularMap): symbols with initialiser
5813         are placed in idataSymSet,
5814         * (pic16emitStaticSeg): extern symbols are added in externs,
5815         * src/pic16/ralloc.c (pic16_allocDirReg): work around to reduce bank
5816         switching when aboslute variables are placed in access bank memory
5817         * (pic16_writeUsedRegs): added call to pic16_dump_idata,
5818         * (packRegsForSupport,packRegsForAccUse,packRegsForOneuse):
5819         commented out with #if,
5820         * (pic16_packRegisters): reintroduce the check for CAST because some
5821         symbols are not correctly handled,
5822         * src/pic16/pcode.h: changed the definition of pCodeAsmDir to hold a
5823         pCodeInstruction instead of pCode,
5824         * src/pic16/pcode.c (pic16_newpCodeAsmDir): modified for the new
5825         pCodeAsmDir definition,
5826         * (pic16_pCode2str, genericPrint): when an AsmDir pcode has a NULL
5827         directive, then the argument directive is emitted without the leading
5828         tab, hack for inline labels which must be in the first column,
5829         * (compareLabel,pic16_findNextInstruction),
5830         * (pic16_findPrevInstruction): added case for PO_ASMDIR,
5831         * (insertBankSwitch): modified for the new pCodeAsmDir,
5832
5833 2004-03-01 Hans-Juergen Dorn <hans.dorn AT apl-landau.de>
5834         patch applied by Vangelis Rokas <vrokas AT otenet.gr>
5835
5836         * src/pic16/gen.c (pic16_popGet): case PO_DIR, adds the offset to
5837         instance,
5838         * (pushSide): commented out with #if,
5839         * (assignResultValue): fixed some typos in saving
5840         registers,
5841         * (genPcall): FIXED and sync'ed with genCall,
5842         * (genDataPointerGet,genDataPointerSet): using offset not leoffset
5843         * (genNearPointerGet): fixed to handle some more cases,
5844         implementation scheme via table reads,
5845         * (genConstPointerGet): modified to access code memory correct,
5846         * (genCodePointerGet,genNearPointerSet,genGenPointerSet): modified
5847         and improved to handle some cases
5848         * glue.c (printIvalType,printIvalChar,emitStaticSeg): use "DB"
5849         instead of "RETLW" for init data
5850         * src/pic16/ralloc.c (pic16_allocDirReg): warning when a symbol is
5851         not IN_DIRSPACE, work around to reduce bank switching when aboslute
5852         variables are placed in access bank memory (<0x80 and >=0xf80),
5853         * src/pic16/pcode.c: added SFRs TBLPTR, TABLAT, added opcodes TBLRD,
5854         TBLRD_POSTINC,TBLRD_POSTDEC,TBLRD_PREINC,TBLWT,TBLWT_POSTINC,
5855         TBLWT_POSTDEC,TBLWT_PREINC
5856         * Fixed initialisation of BSR, set "alias" for SSAVE to "0"
5857         * (pic16_emitDB,pic16_flushDB): New functions to generate "DB"
5858         directives
5859         * (pic16_pCodeConstString): use "DB" instead of "RETLW"
5860         * src/pic16/pcode.h: added TBLRD*,TBLWT*, added pic16_emitDB,
5861         pic16_flushDB, made pic16_newpCodeAsmDir public, added TBLPTR, TABLAT
5862         * src/pic16/ralloc.h: added IDX_BSR,IDX_TBLPTR*,IDX_TABLAT
5863
5864 2004-02-29  Borut Razem <borut.razem AT siol.net>
5865
5866         * src/Makefile.in, src/SDCCutil.c, support/Util/findme.c,
5867         support/Util/findme.h, support/Util/system.h: enhance binary relative
5868         search for lib and include by using findProgramPath()
5869
5870 2004-02-28 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
5871
5872         * src/SDCCpeeph.h,
5873         * src/SDCCpeeph.c (pcDistance),
5874         * src/port.h,
5875         * src/mcs51/ralloc.h,
5876         * src/mcs51/ralloc.c (mcs51_regWithIdx),
5877         * src/mcs51/main.h,
5878         * src/mcs51/main.c (instructionSize, asmLineNode, updateOpRW,
5879         mcs51opcodeCompare, asmLineNodeFromLineNode, getInstructionSize,
5880         mcs51operandCompare, getRegsRead, getRegsWritten): made instruction
5881         size calculation port specific, started basis for some register
5882         optimizations
5883         * src/mcs51/gen.c (genFunction, genEndFunction): added case to handle
5884         missing push/pop of r0/r1. Optimized push/pops
5885         * src/mcs51/ralloc.c (packregisters): fixed bug #727095
5886         * device/lib/_modsint.c (_modsint),
5887         * device/lib/_modslong.c (_modslong): fixed sign of result in non-asm
5888         and stack version so regression tests pass
5889
5890 2004-02-26 Bernhard Held <bernhard AT bernhardheld.de>
5891
5892         * src/Makefile.in (dep): include SLIBOBJS in dependency check
5893         * src/SDCCast.c (decorateType): catch another small optimization
5894         with '?' operator
5895         * src/SDCCsymt.c (computeType): added comments and cosmetic changes
5896         * src/SDCCval.c (valMult, valDiv, valMod, valPlus, valMinus, valShift):
5897         modified to finally use computeType() all over SDCC,
5898         see Feature Request #877103
5899         * src/SDCCval.h: cosmetic
5900         * src/SDCCicode.c (operandOperation): fixed EQ_OP bug, now same as in
5901         valCompare(); regression tested in muldiv.c
5902         * support/regression/tests/muldiv.c (testMod): mod sign follows
5903         dividend only
5904
5905 2004-02-23 Bernhard Held <bernhard AT bernhardheld.de>
5906
5907         * src/SDCCast.c (decorateType): fixed bug #902362
5908         * doc/INSTALL.txt: fixed install instructions for win32
5909
5910 2004-02-21 Bernhard Held <bernhard AT bernhardheld.de>
5911
5912         * device/include/Makefile.in (install): fixed by replacing spaces
5913         by tabs
5914         * doc/README.txt,
5915         * doc/INSTALL.txt: updated for release
5916         * doc/sdccman.lyx: added warning for --xstack being buggy
5917
5918 2004-02-20 Bernhard Held <bernhard AT bernhardheld.de>
5919
5920         * src/pic16/ralloc.c (packRegsForAccUse):  disabled functions with #if
5921         to eliminate build warnings.
5922         * src/pic16/gen.c (pic16_popGet): fixed for gcc 2.95.4
5923
5924 2004-02-20 Vangelis Rokas <vrokas AT otenet.gr>
5925            Hans-Juergen Dorn <hans.dorn AT apl-landau.de>
5926
5927         * doc/sdccman.lyx: removed PIC16 from PIC16 Port Specific Options,
5928         removed -penable-stack, added comment for stack pragma, added
5929         warning for not initializing the stack/frame registers, removed
5930         comment at interrupts section
5931
5932         Stack is made permanent, there is no ability to disable stack usage.
5933         * src/pic16/device.h,
5934         * src/pic16/device.c: removed all references to USE_STACK macro,
5935         * src/pic16/device.c (pic16_dump_section): when no elements in
5936         rlist, free rlist before return,
5937         * (pic16_dump_int_registers): NEW, internal registers are a new set
5938         of general purpose registers reused by each function,
5939         * (checkAddReg): returns 1 if registers is added to set,
5940         * (pic16_groupRegistersInSection): when a registers is of type
5941         PO_GPR_TEMP add it in pic16_int_regs and not in pic16_rel_udata,
5942         * src/pic16/device.h: memRange and Assigned Memory are deleted,
5943         SRCASECMP macro is moved here from device.c
5944         * src/pic16/genarith.c (pic16_pCodeOpType): added cases for
5945         PO_PCLATU, PO_PRODL, PO_PRODH,
5946         * (pic16_pCodeOpType, genMinus,
5947         changed compares to "a" register, with AOP_ACC,
5948         * (pic16_genPlus): fixed some bugs and indented properly,
5949         * (pic16_addSign): changed size to size+offset in the MOVWF
5950         instruction,
5951         * (pic16_genUMult8XLit_8): NEW, uses processor MULLW instruction to
5952         multiply 8-bit operand by literal, result is 8-bit,
5953         * (pic16_genUMult8X8_8): NEW, uses processor MULWF instruction to
5954         multiply 2 8-bit operand, result is 8-bit,
5955         * (pic16_genMult8X8_8): modified to call genUMult8X*_8 functions and not
5956         genUMult8X*_16,
5957         * src/pic16/gen.c: changed accUse to contain WREG only,
5958         * (pic16_emitcomment): renamed to pic16_emitpcomment,
5959         * (aopForSym): allocated dir register when IN_DIRSPACE(space) is,
5960         true, do not use immediate addressing any more unless sym is a
5961         pointer in codespace,
5962         * (aopForRemat): do not use immediate addressing when symbol not in
5963         codespace and when symbol's address is requested,
5964         * (aopOp): for-loop in if(sym->accUse) is modified for the new
5965         accUse size (= 1),
5966         * (aopGet): added case for AOP_ACC and don't return "accumulator
5967         bug" but WREG instead,
5968         * (popGetTempReg): pushes contents of temporary register in stack,
5969         * (popReleaseTempReg): pops contents of temporary register from
5970         stack. Use popGetTempReg/popReleaseTempReg in aligned pairs,
5971         * (pic16_popGet): separated case AOP_ACC to return register WREG
5972         from processor registers, AOP_PCODE not checks if pcop is PO_DIR
5973         or PO_IMMEDIATE and initializes their instance/offset appropriately,
5974         * The whole issue with aopForSym,aopForRemat,popGet) is to minimize
5975         the use of immediate pointers to certain cases only.
5976
5977         * (pic16_pushpCodeOpReg, pic16_poppCodeOpReg): use pic16_popGet2p,
5978         * (pic16_loadFromReturn, pic16_storeForReturn: NEW,
5979         * (assignResultValue, genCall, genRet): modified to use the new
5980         function return value scheme with WREG,PRODL,PRODH,FSR0L and FSR0,
5981         genPcall is still broken,
5982         * (genFunction): added code to create 'A' type pBlocks when
5983         interrupt functions are generated, code not extensively tested yet,
5984         ISRs push WREG,STATUS,BSR,PRODL,PRODH,FSR0L,FSR0H registers on stack,
5985         * (genEndFunction): modified so ISRs pop stored registers from stack,
5986         * (genMultOneByte): cleanup,
5987         * (AccRsh): added flag andmask, to and result with appropriate mask,
5988         * (genUnpackBits,genPackBits): fixed and can handle bit fields,
5989         * (genDataPointerGet): fixed and reenabled its use,
5990         * (genNearDataPointerGet): bugs fixed,
5991         * (genDataPointerSet): bugs fixed,
5992         * src/pic16/genutils.c: added functions pic16_DumpValue,pic16_DumpAop,
5993         pic16_DumpSymbol, pic16_DumpOp,
5994         * src/pic16/genutils.h: function prototypes for the above functions,
5995         * src/pic16/glue.c: new flags initsfpnt, to initialize stack/frame
5996         pointers,
5997         * (pic16emitRegularMap): many many many improvements, but needs a
5998         major cleanup,
5999         * src/pic16/main.c: enable_stack in pic16_options is removed,
6000         * (_pic16_parseOptions): removed command line options -penable-stack,
6001         * (_process_pragma): emit stack symbol only when stack pragma is
6002         processed,
6003         * src/pic16/pcode.c: pic16_pc_fsr0 is removed, all operations are
6004         redirected to FSR0L/FSR0H pair,
6005         * (pic16_get_op, pic16_get_op2): modifications and improvements,
6006         * (pic16_getRegFromInstruction, pic16_getRegFromInstruction2): added
6007         cases PO_PRODL,PO_PRODH, pic16_getRegFromInstruction2 returns sane
6008         for immediates,
6009         * (insertBankSwitch): modified to handle cases like: (alfa + 1)
6010         * (dumpPicOptype): NEW,
6011         * src/pic16/pcode.h: added PO_PCLATU,PO_PRODL,PO_PRODH in enum,
6012         * src/pic16/pcoderegs.c (pCodeRegMapLiveRangesInFlow): fixed bug
6013         with movff instruction,
6014         * src/pic16/ralloc.c: renamed typeRegWithIdx to pic16_typeRegWithIdx,
6015         added pic16_int_regs, some packRegsFor* functions are commented out,
6016         because produce errors,
6017         * src/pic16/NOTES: minor modifications
6018
6019 2004-02-18  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
6020
6021         * as/mcs51/aslink.h, as/mcs51/lkarea.c, as/mcs51/lkdata.c, as/mcs51/lkmain.c,
6022         as/mcs51/lkmem.c, src/SDCCglob.h, src/SDCCmain.c: added options --stack-size and
6023         --pack-iram.
6024         * doc/sdccman.lyx: described options --stack-size and --pack-iram.
6025         * as/mcs51/lkaomf51.c: fixed bug #895763
6026
6027 2004-02-17 Bernhard Held <bernhard AT bernhardheld.de>
6028
6029         * device/include/c8051f320.h: added. Contributed by Maarten Brock.
6030
6031 2004-02-17 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
6032
6033         * doc/sdccman.lyx: added details about the HC08 storage classes and
6034         interrupts, fixed the register usage info for z80 & gbz80
6035
6036 2004-02-17 Vangelis Rokas <vrokas AT otenet.gr>
6037
6038         * doc/sdccman.lyx: added more pic16 port documentation
6039         * device/include/pic16/: added header pic18fregs.h
6040
6041 2004-02-16 Bernhard Held <bernhard AT bernhardheld.de>
6042
6043         * doc/sdccman.lyx: added Vangelis' contribution
6044
6045 2004-02-16 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
6046
6047         * src/SDCClrange.c (rlivePoint): live range of SEND operand should
6048         extend to the next CALL or PCALL, not just to the next CALL.
6049
6050 2004-02-16 Vangelis Rokas <vrokas AT otenet.gr>
6051
6052         * src/pic16/gen.c (genInline): fixed bug #896482 with inline assembly
6053
6054 2004-02-15 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
6055
6056         * src/mcs51/ralloc.c (packRegsForAssign, reassignAliasedSym): fixed
6057         bug #895752 and a better fix for bug #716790
6058
6059 2004-02-15 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
6060
6061         * src/SDCCsymt.c (processFuncArgs): fixed bug #896796
6062
6063 2004-02-14 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
6064
6065         * doc/sdccman.lyx: minor changes, minor changed
6066
6067 2004-02-13 Bernhard Held <bernhard AT bernhardheld.de>
6068
6069         * src/SDCCicode.c (usualBinaryConversions): removed pic16 from ports
6070         which can't handle SDCC_NEWONEBYTEOPS,
6071         (geniCodeMultiply): removed conversion from mult to shift for pic14
6072         and pic16
6073
6074 2004-02-12 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
6075
6076         * src/hc08/gen.h,
6077         * src/hc08/gen.c (storeRegToAop, aopOp, aopAdrStr, accopWithAop,
6078         rmwWithAop): Ported my 2003-10-02 fix for bug #663539 to the hc08,
6079         thus fixing bug #895406
6080
6081 2004-02-11 Bernhard Held <bernhard AT bernhardheld.de>
6082
6083         * device/lib/_modsint.c,
6084         * device/lib/_modslong.c: sign follows divisor only
6085         * src/hc08/gen.c (genMultOneByte): if result size is 1,
6086         signs or signedness can be ignored
6087         * src/SDCCast.c (addCast): cosmetic - added lineno to CAST
6088         * src/SDCCast.c (resultTypePropagate): added even more ops: +, - and *,
6089         added optimization for IFX,
6090         (decorateType): Mult/Div/ModOneByte ops can handle all kind of signed
6091         arguments;
6092         reenabled optimization for IFX, which was removed on 2004-01-11
6093         * src/SDCCast.h: added return type IFX
6094         * src/SDCCicode.c: Mult/Div/ModOneByte ops can handle all kind of signed
6095         arguments with 8 or 16 bit results; pic14 and pic16 ports use old
6096         promotion behaviour; env. var. SDCC_NEWONEBYTEOPS selects the new,
6097         SDCC_OLDONEBYTEOPS selects the old behaviour
6098         * src/SDCCsymt.c (computeType): type2 can be NULL (for LEFT_OP);
6099         changed again and commented promotion rule
6100         * src/SDCCval.c (valDiv): promotion no longer necessary
6101         * src/ds390/gen.c (genMultOneByte) (genDivOneByte) (genModOneByte),
6102         * src/mcs51/gen.c (genMultOneByte) (genDivOneByte) (genModOneByte):
6103         rewritten
6104         * support/regression/tests/onebyte.c: added
6105
6106 2004-02-11 Vangelis Rokas <vrokas AT otenet.gr>
6107
6108         * gen.c (genInline): reverted to old code for assemnling inline
6109         code because of bug reported James Chadd
6110
6111 2004-02-10 Vangelis Rokas <vrokas AT otenet.gr>
6112
6113         * ralloc.h: missing declarations from previous patch,
6114         seems that patch for ralloc.h was never applied, fixed
6115
6116 2004-02-10 Hans-Juergen Dorn <hans.dorn AT apl-landau.de>
6117            patch committed by Vangelis Rokas <vrokas AT otenet.gr>
6118
6119         * pcode.c,
6120         * pcode.h,
6121         * ralloc.h: added FSR0L, FSR0H and other missing PIC16 SFR's for
6122         indirect addressing. Marked FSR0 as deprecated
6123         * gen.c (pointerCode): commented out, not needed now
6124         (pic16_popGet2p): new MOVFF helper function
6125         (genGenPointerGet),
6126         (genGenPointerSet): reimplemented with MOVFF and POSTINC0
6127         (shiftRLong): removed duplicate debugging info
6128
6129 2004-02-10 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
6130
6131         * src/ds390/gen.c (genNearPointerGet),
6132         * src/mcs51/gen.c (genNearPointerGet): allow the genDataPointerGet()
6133         optimization with bits, but not bitfields.
6134         * src/ds390/ralloc.c (packRegisters),
6135         * src/mcs51/ralloc.c (packRegisters): fixed bug #884453 & #880832
6136
6137 2004-02-09 Bernhard Held <bernhard AT bernhardheld.de>
6138
6139         * src/SDCCcse.c (algebraicOpts): copy operands before modification
6140
6141 2004-02-09 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
6142
6143         * src/SDCCsymt.h,
6144         * src/SDCCicode.c (operandFromSymbol),
6145         * src/mcs51/ralloc.c (verifyRegsAssigned, serialRegAssign),
6146         * src/ds390/ralloc.c (verifyRegsAssigned, serialRegAssign),
6147         * src/z80/ralloc.c (verifyRegsAssigned, serialRegAssign),
6148         * src/hc08/ralloc.c (verifyRegsAssigned, serialRegAssign),
6149         * src/pic/ralloc.c (verifyRegsAssigned, serialRegAssign),
6150         * src/pic16/ralloc.c (verifyRegsAssigned, serialRegAssign): fixed
6151         bug #892038
6152         * src/SDCCast.c (createIvalStruct, createIvalArray, gatherAutoInit),
6153         * src/SDCCglue.c (emitRegularMap, printIvalStruct, printIvalArray,
6154         printIvalCharPtr, printIvalPtr, printIval, emitStaticSeg, emitOverlay)
6155         * src/SDCCsymt.c (newSymbol),
6156         * src/SDCC.y (struct_or_union_specifier, enum_specifier,
6157         enumerator_list),
6158         * src/SDCCval.h,
6159         * src/SDCCval.c (newiList): fixed bug #885705
6160
6161 2004-02-08  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
6162
6163         * doc/sdccman.lyx: added section 3.1.4: sdcclib.
6164         * as/mcs51/lkmem.c: report the size of the stack in .mem file.
6165
6166 2004-02-08 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
6167
6168         * device/include/c8051f120.h,
6169         * device/include/c8051f300.h,
6170         * device/include/c8051f310.h: added/updated header files for Silicon
6171         Laboratories (formerly Cygnal) CPUs. Contributed by Maarten Brock.
6172         * doc/sdccman.lyx: minor changes, recommended diff -Naur and diff -u
6173         in new section Submitting patches
6174
6175 2004-02-08 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
6176
6177         * src/mcs51/gen.c (genNearPointerGet, genPagedPointerGet,
6178         genFarPointerGet, genCodePointerGet, genGenPointerGet,
6179         genNearPointerSet, genPagedPointerSet, genFarPointerSet,
6180         genGenPointerSet),
6181         * src/ds390/gen.c (genNearPointerGet, genPagedPointerGet,
6182         genFarPointerGet, genCodePointerGet, genGenPointerGet,
6183         genNearPointerSet, genPagedPointerSet, genFarPointerSet,
6184         genGenPointerSet),
6185         * src/pic16/gen.c (genNearPointerGet, genPagedPointerGet,
6186         genFarPointerGet, genCodePointerGet, genGenPointerGet,
6187         genNearPointerSet, genPagedPointerSet, genFarPointerSet,
6188         genGenPointerSet),
6189         * src/pic/gen.c (genNearPointerGet, genPagedPointerGet,
6190         genFarPointerGet, genCodePointerGet, genGenPointerGet,
6191         genNearPointerSet, genPagedPointerSet, genFarPointerSet,
6192         genGenPointerSet): fixed bug #892400
6193         * src/pic16/gen.c (genSkipz, AccRol): disabled functions with #if 0
6194         to eliminate build warnings.
6195         * src/SDCCast.c (processParms),
6196         * src/SDCC.y (function_declarator2, declarator2_function_attributes):
6197         fixed bug 751859
6198         * support/valdiag/valdiag.py: added GCC to the list of defines active
6199         when compiling with gcc
6200
6201 2004-02-07 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
6202
6203         * support/Util/SDCCerr.h,
6204         * support/Util/SDCCerr.c,
6205         * src/SDCCast.c (decorateType, sizeofOp): complain when sizeof is used
6206         with an incomplete type (fixed bug #883734)
6207         * src/SDCCicode.c (geniCodeCast): fixed bug #890510
6208
6209 2004-02-07 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
6210
6211         * src/pic16/gen.c (genCmpEq, shiftRLong): fixed declarations
6212
6213 2004-02-06 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
6214
6215         * src/SDCCast.c (decorateType),
6216         * src/SDCCicode.c (geniCodeParms, geniCodeCall): fixed bugs in my ANSI
6217         function pointer implementation
6218         * support/regression/tests/funptrs.c: added tests to verify both forms
6219         of function pointers work correctly. Added tests to verify parameters
6220         are passed in the correct order.
6221
6222 2004-02-06  Vangelis Rokas <vrokas AT otenet.gr>
6223
6224         * device.c (regCompare): registers are sorted by ascending
6225         address and increasing size,
6226         * main.c (_pic16_finaliseOptions): removed the declaration
6227         of compiler macro MCU. Now a macro of the format pic18fxxxx
6228         will be defined from the command line
6229
6230 2004-02-06  Hans-Juergen Dorn <hans.dorn AT apl-landau.de>
6231             patch committed by Vangelis Rokas <vrokas AT otenet.gr>
6232
6233         * pcode.c (pic16initMnemonics): fixed typo in assignment to PCOP_RLNCF
6234         PCOP_RLCF was overwritten!
6235         * gen.c (genSkip): commented out calls to pic16_emitcode,
6236         * (genCmpEQ): fixed "long" compares, only high word did get compared,
6237         * (genlshTwo),
6238         * (genRRC): added debugging info,
6239         * (shiftL2Left2Result): Fixed bug, if offr > offl. Result got
6240         overwritten while shifting,
6241         * (shiftR2Left2Result): Fixed bug, if offr < offl. Result got
6242         overwritten while shifting,
6243         * (AccLsh),
6244         * (AccRsh),
6245         * (shiftLLeftOrResult),
6246         * (shiftRLeftOrResult),
6247         * (shiftRLong),
6248         * (shiftLLong): Implemented with pic16_emitpcode
6249         * (genlshFour): Replaced pic16_aopPut with pic16_emitpcode,
6250         * (genLeftShift): Fixed bug, operand for shift by variable always
6251         was "and"ed with 0x0f,
6252         * (genLeftShiftLiteral),
6253         * (genrshTwo),
6254         * (genRightShiftLiteral): added debugging info,
6255         * (genrshFour): added comment,
6256         * (genRightShift): determined signedness from operand "left"
6257         instead of "result"
6258
6259 2004-02-04 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
6260
6261         * src/SDCCicode.c (geniCodeParms),
6262         * src/SDCCast.c (decorateType, processParms): support for ANSI-style
6263         function pointers, fixed function pointer bugs #861242 and #861896
6264
6265 2004-01-31 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
6266
6267         * device/include/c8051f000.h,
6268         * device/include/c8051f120.h,
6269         * device/include/c8051f300.h: added header files for Silicon
6270         Laboratories (formerly Cygnal) CPUs. Contributed by Maarten Brock.
6271
6272 2004-01-31 Bernhard Held <bernhard AT bernhardheld.de>
6273
6274         * src/SDCCast.c (processParams): added new type flow and restructured
6275         (gatherAutoInit): added new type flow
6276         (addCast): cosmetic changes
6277         (getLeftResultType): added new type flow for array indices, patch
6278         provided by Stas, see FR #877103
6279         (decorateType): SDCC_NEWTYPEFLOW removed, new type flow is now standard;
6280         array index patch by Stas
6281         * src/SDCCast.h: added prototype getResultTypeFromType()
6282         * src/SDCCval.h,
6283         * src/SDCCval.c (resolveIvalSym) (resolveIvalSym),
6284         * src/pic/glue.c (pic14emitStaticSeg),
6285         * src/pic16/glue.c (pic16emitStaticSeg),
6286         * src/SDCCglue.c (emitRegularMap) (emitStaticSeg): added new type flow
6287         for initialization of symbols
6288         * src/SDCCicode.c (geniCodeArray): removed warning W_ARRAY_BOUND
6289         * support/Util/SDCCerr.h:
6290         * support/Util/SDCCerr.c: replaced W_ARRAY_BOUND by W_IDX_OUT_OF_BOUNDS
6291         * .version: bumped version number to 2.3.8
6292         * device/include/Makefile.in (install),
6293         * doc/Makefile (install): changed to 'rm `find ...`' construct to
6294         avoid warnings
6295
6296 2004-01-30 Bernhard Held <bernhard AT bernhardheld.de>
6297
6298         * support/regression/tests/libmullong.c: fixed for 64 bit hosts
6299         Slade Rich fixed an optimization bug
6300         * src/pic/pcodepeep.c,
6301         * src/pic/pcoderegs.c
6302         * doc/Makefile (install): added test for directory
6303
6304 2004-01-30 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
6305
6306         * src/mcs51/ralloc.c (getRegPtr, getRegGpr),
6307         * src/ds390/ralloc.c (getRegPtr, getRegGpr),
6308         * src/pic/ralloc.c (getRegPtr, getRegGpr),
6309         * src/pic16/ralloc.c (getRegPtr, getRegGpr),
6310         * src/z80/ralloc.c (getRegGpr): fixed bug #883361
6311         * as/mcs51/asexpr.c (term),
6312         * as/hc08/asexpr.c (term): fixed bug #887146
6313
6314 2004-01-29 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
6315
6316         * src/z80/gen.c (genMult): handle single byte result product
6317         * src/SDCCopt.c (killDeadCode): never convert ADDRESS_OF iCode to
6318         DUMMY_READ_VOLATILE (fixed bug #886367)
6319
6320 2004-01-27 Bernhard Held <bernhard AT bernhardheld.de>
6321
6322         * support/regression/tests/libmullong.c: fixed logic, on little endian
6323         hosts we ended without a mullong_wrapper()
6324
6325 2004-01-27 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
6326
6327         * ChangeLog: changed "@" to " AT " in hopes of reducing spam and
6328         virus/worm forged address usage.
6329
6330 2004-01-27 Bernhard Held <bernhard AT bernhardheld.de>
6331
6332         Fixed promotion, it should be done on AST level:
6333         * src/SDCCast.c (addCast): added promotion to int
6334         (decorateType): updated call to upCast()
6335         * src/SDCCicode.c (geniCodeLeftShift): removed call to
6336         usualUnaryConversions()
6337
6338 2004-01-26  Michael Hope  <michaelh AT juju.net.nz>
6339
6340         * support/regression/tests/literalop.c (mulWrapper): Added a
6341         wrapper to remove integer overflow warnings.
6342
6343         * support/regression/tests/float_trans.c: Made work on host.
6344
6345         * support/regression/ports/ucz80/spec.mk (UCZ80): Made detect the
6346         location of sz80.
6347
6348         * support/regression/generate-cases.py (main): Changed from inline
6349         to a main method.
6350
6351         * doc/Makefile (install): Changed to depth first to get rid of
6352         missing directory install warning.
6353
6354         * as/Makefile (install-doc): Made work on Mac.
6355
6356 2004-01-25 Bernhard Held <bernhard AT bernhardheld.de>
6357
6358         * src/SDCCast.c: added an additional type flow in decorateType() of
6359         opposite direction, see feature request #860006; it's enabled at runtime
6360         by setting the environment variable SDCC_NEWTYPEFLOW
6361         * src/SDCCast.h: changed prototype of decorateType()
6362         * src/SDCCglue.c (emitRegularMap): updated call of decorateType()
6363         * src/SDCCicode.c (geniCodeDivision) (geniCodeModulus): promotion from
6364         'char' to 'int' can be omitted, if both operands are 'unsigned char';
6365         see feature request #877103
6366         * src/SDCCval.c: updated call of decorateType()
6367         (valBitwise): fixed bug #882876
6368         (valMinus): added promotion
6369         (valLogicAndOr): result is unsigned
6370         (cheapestVal) (constVal): literals from 0...255 are 'unsigned char' now
6371         * src/SDCCsymt.c (computeType),
6372         * src/mcs51/gen.c (genCmpGt) (genCmpLt): literal 'unsigned char'
6373         must not cause an unsigned operation
6374         * src/pic/glue (pic14emitRegularMap),
6375         * src/pic16/glue.c (pic16emitRegularMap): updated call of decorateType()
6376
6377 2004-01-23 Bernhard Held <bernhard AT bernhardheld.de>
6378
6379         * src/pic/pcode.c (PCodeID): commented out left over debug code
6380
6381 2004-01-20 Bernhard Held <bernhard AT bernhardheld.de>
6382
6383         * support/valdiag/tests/overflow.c: added shift tests
6384         * src/pic/device.c,
6385         * src/pic/gen.c,
6386         * src/pic/gen.h,
6387         * src/pic/glue.c,
6388         * src/pic/main.c,
6389         * src/pic/pcode.c,
6390         * src/pic/pcode.h,
6391         * src/pic/pcodepeep.c,
6392         * src/pic/pcoderegs.c,
6393         * src/pic/ralloc.c,
6394         * src/pic/ralloc.h: applied patch from Slade Rich;
6395         added support for multiple code pages and multiple RAM banks on the
6396         PIC 14 port. The ASM files now no longer simply assume all the
6397         code / RAM are in the same page / bank. This means the linker can
6398         safely allocate code/RAM of separate ASM files to different pages/banks.
6399         * doc/sdccman.lyx: added Slade's tips
6400         * src/mcs51/peeph.def: fixed bug #880768
6401
6402 2004-01-20 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
6403
6404         * src/hc08/ralloc.c (rematStr): fixed bug #879282
6405         * src/SDCCast.c (decorateType): fixed bug #880197
6406
6407 2004-01-20  Michael Hope  <michaelh AT juju.net.nz>
6408
6409         * sim/ucsim/gui.src/serio.src/main.cc: Fixed unconditional use of
6410         getopt.h.
6411
6412         * debugger/mcs51/cmd.c (getValBasic): Changed strtof to strtod as
6413         strtof is not part of C89 and isn't included with Mac OS X.
6414
6415 2004-01-20 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
6416
6417         * src/hc08/gen.c (genPlusIncr, genUminus, genMinusDec, genCmp,
6418         shiftL2Left2Result): fixed bug #879326
6419         (genAnd, genOr, genXor): fixed bug when result was of type AOP_CRY
6420         (genMultOneByte): fixed bug in signed vs unsigned multiplication
6421         * sim/ucsim/hc08.src/inst.cc (inst_clr): added missing effective
6422         address fetch for clr instruction
6423         * device/lib/hc08/_mulint.c: created optimized assembly version
6424         * src/SDCCdflow.c (computeDataFlow): fixed bug #878209
6425
6426 2004-01-19 Bernhard Held <bernhard AT bernhardheld.de>
6427
6428         * src/SDCCicode.c (geniCodeArray): applied patch from Stas Sergeev
6429         proposed in FR #877103
6430
6431 2004-01-18 Bernhard Held <bernhard AT bernhardheld.de>
6432
6433         * src/SDCCval.c (cheapestVal): added missing checks
6434         * src/SDCCicode.c (usualBinaryConversions): fixed condition
6435         * src/SDCCicode.c (geniCodeAdd): fixed part of bug #877103
6436
6437 2004-01-16 Klaus Flittner <klaus_flittner AT gmx.de>
6438
6439         * src/ds390/gen.c (aopOp3): fixed the assignment of different dptrs to
6440         equal operands
6441
6442 2004-01-16 Vangelis Rokas <vrokas AT otenet.gr>
6443
6444         * src/SDCCmain.c (linkEdit): variable $3 of the linker command is
6445         loaded with the linker search paths (-L arguments) and the libraries
6446         to be linked with the current source (-l arguments). Changes
6447         currently will affect only the pic16 port.
6448         * src/pic16/main.c (_pic16_finaliseOptions): add to the linker
6449         include path the port specific paths and port specific libraries,
6450         * gplink command now contains the $3 argument,
6451         * src/pic16/device.h,
6452         * src/pic16/device.c,: structure PIC_device is made public and
6453         renamed to PIC16_device, the same for variable Pics which is renamed
6454         to Pics16. Updated all references to them.
6455         * src/pic16/glue.c (pic16glue): corrected bug with code
6456         initialization which bypassed the variable initializations block.
6457
6458         * device/lib/pic16/Makefile.rules: removed --penable-stack from
6459         COMPILE_FLAGS and added the --nostdinc option
6460
6461 2004-01-15 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
6462
6463         * device/include/mc68hc908jb8.h: Register defs for another member
6464         of the hc08 family. Contributed by Bjorn Bringert - thanks!
6465
6466 2004-01-14 Vangelis Rokas <vrokas AT otenet.gr>
6467
6468         Documenting changes from previous commits.
6469         * configure.in (version 1.56),
6470         * configure: initially I've added AC_CONFIG_SUBDIRS(device/lib/pic16)
6471         when generating output files to configure the pic16 library,
6472         but now I've commented it out, since gputils aren't installed in the
6473         SF compile farm, so library won't compile
6474
6475         * device/lib/Makefile.in (version 1.56): initially I've added in
6476         target 'all' the prerequestive 'model-pic16' so it compiled the
6477         pic16 library, but now I've commented it out for the same reasons
6478         above,
6479         * added targets 'model-pic16' and 'objects-pic16' to compile the
6480         library
6481         * added target 'port-specific-objects-pic16' to handle the
6482         generated libraries and copy them into the build/ directory
6483         * added target 'clean-intermediate-pic16' to clean intermediate
6484         files into pic16 directory
6485         * in target 'installdirs' added line to create directory pic16 in
6486         the installation path
6487
6488         * device/include/Makefile.in (version 1.11): in target 'install'
6489         added lines to copy all header files to installation path,
6490         * in target 'installdirs' added line create directory for pic16
6491         headers in the installation path
6492
6493 2004-01-13 Klaus Flittner <klaus_flittner AT gmx.de>
6494
6495         * src/ds390/gen.c (genCall): fixed a double use of acc and b after
6496          a function call
6497
6498 2004-01-13 Bernhard Held <bernhard AT bernhardheld.de>
6499
6500         * configure,
6501         * device/lib/configure.in,
6502         * device/lib/configure: fixed for autoconf 2.57
6503
6504 2004-01-13 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
6505
6506         * src/z80/main.c (_parseOptions): fixed the portmode= command line
6507         option so that it actually works. Made it specific to the z80, since
6508         the gbz80 doesn't have these kinds of I/O ports.
6509
6510 2004-01-13 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
6511
6512         * device/include/z180.h,
6513         * device/lib/_memcpy.c,
6514         * device/lib/_memmove.c,
6515         * device/lib/_mulint.c,
6516         * device/lib/ser_ir.c,
6517         * device/lib/ser_ir_cts_rts.c,
6518         * device/lib/_strcmp.c,
6519         * device/lib/_strtok.c: fixed pragmas to non-deprecated form
6520         * src/z80/main.c (_process_pragma): add support for pragmas bank and
6521         portmode; added deprecation warning for bank= and protmode= forms.
6522         Also, guard against buffer overflow.
6523         * src/z80/gen.c (aopGet): generate better code for sfr banked read
6524
6525 2004-01-13 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
6526
6527         * src/hc08/main.c (_hc08_genAssemblerPreamble): fixed bug #875487. Also
6528         changed interrupt vector table generation to only emit declared vectors.
6529         * device/include/Makefile.in: added missing backslash
6530         * device/lib/pic16/Makefile.rules: add $(MODELFLAGS) to $(CFLAGS)
6531
6532 2004-01-13 Vangelis Rokas <vrokas AT otenet.gr>
6533
6534         Mainly changes to support compilation of the device libraries
6535         * src/pic16/device.c: stack is allocated via symbol and not
6536         via literal number. The symbol is placed in the corresponding
6537         position of the data ram
6538         * (pic16_dump_section): relocatable and absolute uninitialized
6539         data are now emitted in sorted order to reduce section naming,
6540         * src/pic16/ralloc.c (newReg): fixed bug with SFR's that
6541         weren't marked as being in the access bank,
6542
6543 2004-01-13 Vangelis Rokas <vrokas AT otenet.gr>
6544
6545         Added portion of GNU PIC Library under the directory
6546         device/include/pic16 and device/lib/pic16. These files
6547         contain the declarations of SFRs for the PIC18Fxx2 devices.
6548         The directory is initialized via configure from toplevel.
6549
6550 2004-01-12 Klaus Flittner <klaus_flittner AT gmx.de>
6551
6552         * src/ds390/gen.c (operandsEqu): fixed a little typo, that prevented
6553         the spilllocations to be compared correctly
6554
6555 2004-01-12 Bernhard Held <bernhard AT bernhardheld.de>
6556
6557         * src/SDCCast.c (decorateType): fixed bug introduced today
6558
6559 2004-01-12  Borut Razem <borut.razem AT siol.net>
6560
6561         * src/SDCC.lex, support/Util/SDCCerr.h, support/Util/SDCCerr.c,
6562         doc/sdccman.lyx: upper case pragmas are deprecated
6563
6564 2004-01-12 Bernhard Held <bernhard AT bernhardheld.de>
6565
6566         * src/SDCCast.c (decorateType): replacing 'ul > 0' by  '!ul' results
6567         in simpler and even better code
6568
6569 2004-01-11 Bernhard Held <bernhard AT bernhardheld.de>
6570
6571         * src/SDCCicode.c (operandOperation): fixed bug #874819
6572         * src/SDCCast.c (decorateType): fixed
6573         char foo (unsigned long ul) { return ul > 0; }
6574
6575 2004-01-11 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
6576
6577         * doc/sdccman.lyx: Moved and added some sections, small changes
6578         all over. Telling LaTeX to be less strict with word spacing
6579         to better keep the right margin. Changed some notes about
6580         maintainance of the ports in section 3.2.1 - is it OK like this?
6581
6582 2004-01-11 Vangelis Rokas <vrokas AT otenet.gr>
6583
6584         SDCC source changes:
6585         * src/SDCCopt.c (cntToFcall, cnvToFloatCast, cnvFromFloatCast,
6586         convilong): modified to inform the pic16 port that builtin functions
6587         are external
6588
6589         PIC16 PORT specific changes:
6590         * src/pic16/device.c pic16_dump_equates() added,
6591         processor registers declared internally by the port are emitted in
6592         the translation as equates,
6593         * src/pic16/gen.c: inline code is passed unprocessed to the
6594         translation,
6595         * (pic16_popGetLit2): fnuction modified to take second operand as
6596         pCodeOp pointer and not as literal,
6597         * (popRegFromIdx): prefixed with pic16_,
6598         * (pic16_popCombine2): modified to receive already allocated pCode
6599         operands,
6600         * (pic16_pushpCodeOpReg, pic16_poppCodeOpReg): added
6601         * (genFunction): initializes local stack frame and pushes on stack
6602         all the registers used by this function,
6603         * (genEndFunction): restores all registers from stack and restores
6604         stack frame,
6605         * src/pic16/glue.c (pic16emitRegularMap): various changes and
6606         improvements,
6607         * (pic16glue): changed the program startup sequence,
6608         * added new dbName code 'A' for functions placed in absolute section
6609         * src/pic16/main.c: added function attribute _naked,
6610         * added pragma 'code' to place a fnuction at an absolute address,
6611         * added command line arguments --debug-ralloc and --pcode-verbose,
6612         * (_pic16_finiliseOptions): options.all_callee_saves is set by default
6613         * src/pic16/pcode.c (pic16_pBlockConvert2Absolute) added,
6614         * (pic16_newpCodeOpLit2): modified to take the second operand as
6615         pCodeOp pointer,
6616         * (pic16_printpBlock): modified to emit each function in a separate
6617         section,
6618         * (pic16_get_op): modified to use the gpasm modifiers LOW,HIGH and
6619         UPPER for immediate operands,
6620         * src/pic16/pcodepeeph.c: added peephole support for the LFSR
6621         instruction,
6622         * src/pic16/peeph.def: all peepholes with movff are commented out,
6623         because there is a problem in the pcode peep optimizer,
6624         * src/pic16/ralloc.c: the register allocator can now reuse local
6625         function symbols for another function. This saves register usage.
6626         * src/pic16/ralloc.h: added flag isLocal in structure regs,
6627
6628         Added file src/pic16/NOTES with information about program writing on
6629         the current port version.
6630
6631 2004-01-11 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
6632
6633         * src/mcs51/peephole.def: added peepholes 177.c,d (redundant moves)
6634         and peephole 252 (array access)
6635
6636 2004-01-09  Borut Razem <borut.razem AT siol.net>
6637
6638         * src/SDCCmain.c : fixed #872250: -l command line defined library
6639           files are scanned before standard library files
6640
6641 2004-01-10 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
6642
6643         * src/SDCCast.c (decorateType): fixed bug #874046
6644
6645 2004-01-09  Borut Razem <borut.razem AT siol.net>
6646
6647         * support/scripts/sdcc.nsi: remove previous installation
6648
6649 2004-01-09 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
6650
6651         * src/SDCCglue.c (createInterruptVect): don't append 7(5) padding
6652         bytes for last interrupt vector (mcs51)
6653         * sdcc.spec: fixed typo
6654
6655 2004-01-09 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
6656
6657         * src/mcs51/gen.c (genFunction, genEndFunction, genReceive, getTempRegs,
6658         gen51Code): more efficient parameter receive for --model-large
6659         ("bug" #845294)
6660
6661 2004-01-09 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
6662
6663         * src/ds390/main.c,
6664         * src/z80/main.c: added missed needLinkerScript flags (more than
6665         one port structure defined in these file)
6666         * src/ds390/gen.c (aopForSym, aopOp, operandsEqu, aopOp3): fixed
6667         bug #795325
6668
6669 2004-01-08 Vangelis Rokas <vrokas AT otenet.gr>
6670
6671         * src/SDCCmain.c: removed various references to DEFAULT_PORT
6672         * src/port.h: added flag needLinkerScript in port->linker
6673         structure to inform whether to create a .lnk file or not,
6674         * src/avr/main.c,
6675         * src/ds390/main.c,
6676         * src/hc08/main.c,
6677         * src/mcs51/main.c,
6678         * src/pic/main.c,
6679         * src/pic16/main.c,
6680         * src/xa51/main.c,
6681         * src/z80/main.c: changed appropriately to configure
6682         needLinkerScript flag
6683         * src/pic/gen.c,
6684         * src/pic16/gen.c (genAddrOf): fixed bug #863624
6685         * src/pic/glue.c: added variable udata_section_name to
6686         override default uninitialized data segment definition for
6687         devices only with SHAREBANK memory (reported from Erik Epetrich)
6688         * (pic14emitOverlay): modified to emit a commented overlay segment
6689         directive when no overlay data exist
6690         * (picglue): modified to emit uninitialized data segment
6691         according to udata_section_name
6692         * src/pic/main.c (_pic14_parseOptions): added command line
6693         options --udata-section-name=[name] to override default
6694         udata definition name
6695         * modified _linkCmd and _asmCmd to include compiler passed
6696         arguments via -W option
6697         * src/pic16/main.c: added $l in _asmCmd, changed extension for
6698         object file from '.rel' to '.o' in port->linker structure,
6699         changed size of fptr from 2 to 3 in port structure
6700
6701 2004-01-07  Borut Razem <borut.razem AT siol.net>
6702
6703         * support/scripts/sdcc.nsi: update PATH
6704         * support/scripts/sdcc.ico: craeted
6705
6706 2004-01-07 Bernhard Held <bernhard AT bernhardheld.de>
6707
6708         * device/include/Makefile.in: fix install
6709         * doc/Makefile: fix install
6710
6711 2004-01-07 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
6712
6713         * src/SDCCsymt.c (processFuncArgs): fixed superflous allocation noted
6714         in bug #860505
6715         * src/SDCCmem.c (printAllocInfoSeg, printAllocInfo): minor changes to
6716         how the function variable allocation summary is displayed; also
6717         include information about variables allocated to the overlay
6718         segment
6719
6720 2004-01-06  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
6721
6722         * as/mcs51/lkmain.c: Help about -Y option
6723         * as/mcs51/lkarea.c: Fixed gcc warnings
6724
6725 2004-01-06 Bernhard Held <bernhard AT bernhardheld.de>
6726
6727         * src/SDCCval.c (valShift): changed from 16 to 32 bit shift count,
6728         fixed warning
6729         * support/valdiag/tests/overflow.c: added
6730         * src/SDCCast.c (decorateType),
6731         * src/SDCCicode.c (geniCodeLeftShift): added promotion to int for
6732         LEFT_OP (left shift)
6733
6734 2004-01-06  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
6735
6736         * as/mcs51/lkmain.c: stack must be after data when option -Y is not used
6737         (default behaviour).
6738
6739 2004-01-06 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
6740
6741         A python script to validate compiler diagnostic messages. It can be
6742         used to verify that sdcc complains about bad c source code and
6743         gives a good location of the error.
6744         * support/valdiag/Makefile,
6745         * support/valdiag/valdiag.py,
6746         * support/valdiag/tests/*
6747
6748 2004-01-06 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
6749
6750         * src/SDCC.y (enum_specifier, enumerator_list, opt_assign_expr),
6751         * src/SDCCsymt.c (newEnumType),
6752         * src/SDCCsymt.h
6753         * support/Util/SDCCerr.c,
6754         * support/Util/SDCCerr.h: fixed bug #871258 and some other unreported
6755         enum related bugs.
6756         * support/regression/tests/enum.c: added test for enum values that
6757         require at least 2 bytes of storage.
6758
6759 2004-01-06 Vangelis Rokas <vrokas AT otenet.gr>
6760
6761         * src/common.h: added ifndef/define/endif macros
6762         around the header file.
6763         Bug reported from Jesus Calvino-Fraga
6764
6765 2004-01-06 Bernhard Held <bernhard AT bernhardheld.de>
6766
6767         * sdcc.spec: updated
6768         * device/include/Makefile.in: don't install CVS directories
6769         * device/lib/Makefile.in: added removal of CVS directories after install
6770         * doc/Makefile: fixed install, added local_icons
6771         * sim/ucsim/gui.src/Makefile.in: fixed an old typo
6772         * src/mcs51/gen.c (genRightShift): fixed bug #870788
6773         * src/ds390/gen.c (genRightShift): fixed bug #870788
6774         * src/SDCCast.c (decorateType): fixed bug #870781
6775
6776 2004-01-06 Vangelis Rokas <vrokas AT otenet.gr>
6777
6778         PIC16 port related changes:
6779         * device.c: removed pic16_finalMapping and pic16_finalMappingSize,
6780         added variable stackPos,
6781
6782         * gen.c: genCall, assignResultValue: added support for
6783         pushing/retrieving function parameters to/from stack,
6784         genFunction,genEndFunction: setup stack frame for the
6785         generated function,
6786         genAddrOf: will be changed according to bug 863624
6787
6788         * added files genutils.c and genutils.h which contain gen*
6789         debugged and optimised functions extracted from gen.c
6790
6791         * glue.c: added variable 'externs' which holds extern symbols,
6792         pic16emitRegularMap: is modified to properly handle relocatable
6793          symbols under the new scheme,
6794         pic16createInterruptVect: is modified
6795         pic16printPublics: is modified to emit 'global' assembler directives,
6796         added pic16_printExterns to print extern symbols,
6797         pic16glue: initializes stack/frame pointer in the beginning of
6798         the assembly output. Temporary hack, will be corrected later,
6799         because gplink yet does not support stack and SDCC does not
6800         yet support a type of crt0.o object to create the final binary.
6801
6802         * Removed many lines that contain 8051 legacy code.
6803         * The code is finally placed under a 'code' directive.
6804         * Added port specific options.
6805
6806         * _process_pragma: simplified since now we do not need *special*
6807         include file to define SFR registers. But a separate header
6808         will be needed. This will be developed later.
6809         * _pic16_parseOptions: added, parses port specific options:
6810         --pgen-banksel, --obanksel=, --pomit-config-words, --pomit-ivt,
6811         --pleave-reset-vector, --penable-stack, --pstack-model, --debug-xtra
6812         --preplace-udata-with=
6813
6814         * _pic16_setDefaultOptions: modified to initialize section names,
6815         but hack is temporarly out of order since it needs improvement.
6816         * _pic16_genAssemblerPreamble: configuration words are emitted by
6817         their address instead of their name. This part is incomplete and
6818         supports only the 18Fxx2 devices. Other devices will emit an error
6819         during assembly since they do not contain the same set of config
6820         registers
6821         * _pic16_genIVT: is modified,
6822
6823         * pcode.c: added definitions for some hardware registers that are needed
6824         for stack support
6825         * added flag is2LitOp and variable pci_magic in pCodeInstruction.
6826         All PCI entries are updated. Now LFSR is supported.
6827         * Removed pic16_pciTRIS is mentioned by mdubuc in source
6828         * added pic16_newpCodeOpLit2 to support instructions with
6829         two literal arguments
6830         * pic16_pCode2str: corrected code that emits assembler instructions
6831         with two literal operands and those that have an access bit modifier
6832         * genericPrint: now PC_ASMDIR pCodes, can emit a label if it exists,
6833         this fixes a bug which caused some labels to be lost, when an
6834         assembler directive was added, i.e. banksel,
6835         * pic16_FixRegisterBanking: improved logic that causes the insertion
6836         of bank switching,
6837         * InlineFunction: functions that are called once, are not any more
6838         inlined. This can be a port option in the future,
6839
6840         * pcode.h: added pCodeOpLit2 and added variable label in pCodeAsmDir
6841
6842         * ralloc.c: added pic16_rel_udata and pic16_fix_udata variables which
6843         hold the corresponding uninitialized symbols,
6844         * pic16_allocProcessorRegister: registers have explicit marked the
6845         accessBank field,
6846         * pic16_allocInternalRegister: registers are explicit marked as
6847         not used,
6848         * pic16_writeUsedRegs: pic16_dynDirectBitRegs was missing from the
6849         processing list, so bit registers were lost,
6850         *
6851
6852         * ralloc.h: added field 'accessBank' and original symbol operand
6853         in register definition,
6854         * removed the field isMapped from register definition,
6855
6856         ** Several functions have been removed from various sources:
6857         BanksUsedFlow2,BanksUsedFlow,FixBankFlow,InstructionRegBank,
6858         pic16_addMemRange,pic16_isREGinBank,pic16_dump_map,pic16_dump_cblock
6859         isSFR,validAddress,mapRegister,assignRegister,pic16_assignFixedRegisters
6860         pic16_assignRelocatableRegisters
6861
6862         ** others have been introduced:
6863         pic16_areRegsSame,pic16_dump_section,checkAddReg,pic16_groupRegistersInSection
6864         pic16_popGetLit2,pic16_popCombine2,pushw,pushaop
6865
6866 2004-01-05 Vangelis Rokas <vrokas AT otenet.gr>
6867
6868         * support/scripts/inc2h.pl: changed definition of BIT_AT
6869         to emit 'sbit at' instead of 'bit at'. This was a request.
6870
6871         PIC16 port related preliminary changes:
6872         * gen.c: prefixed function popRegFromString with
6873         pic16_ and all references to it corrected
6874         * pcode.c: all pic16_pc_* hardware registers prefixed
6875         with underscore (_),
6876         pic16_popCopyGPR2Bit(): function sets register wasUsed=1
6877         * ralloc.c: newReg(): when register is REG_SFR then
6878         set address to rIdx,
6879         pic16_allocProcessorRegister(): marks register wasUsed=0
6880         pic16_writeUsedRegs(): added a call to assign processor
6881         registers via pic16_assignFixedRegisters
6882
6883 2004-01-04  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
6884
6885         * as/mcs51/aslink.h, as/mcs51/lkarea.c, as/mcs51/lkdata.c,
6886         as/mcs51/lkmain.c, as/mcs51/lkmem.c: 8051 linker can now pack
6887         variables in unused register banks.  Also the SSEG is placed
6888         wherever there is enough space for it, and IDATA can be anywhere
6889         in internal RAM.  For now compile using -Wl-Y[stack_size].
6890         The mem file is different for this option as well, since it
6891         makes no sense of talking about DSEG lenght.
6892
6893 2004-01-02 Vangelis Rokas <vrokas AT otenet.gr>
6894
6895         * src/SDCClrange.c: fixed bug 869095 that caused segfault
6896         in certain cases, e.g. when ROM assignment, patch provided
6897         from Albert den Haan.
6898
6899 2004-01-01 Bernhard Held <bernhard AT bernhardheld.de>
6900
6901         Many signedness and type propagation fixes:
6902         * src/SDCCicode.c: made geniCodeCast() static
6903         replaced SPEC_ by IS_ (cosmetic)
6904         (operandOperation): fixed div and mod operation
6905         (usualBinaryConversions): added support for promotion of char
6906         (geniCodeMultiply): replaced (unsigned long) by (TYPE_UDWORD)
6907         (geniCodeDivision): replaced (unsigned long) by (TYPE_UDWORD)
6908         (geniCodeAdd): an array index will stay unsigned, even if promoted
6909         from char to int
6910         (geniCodeArray): ditto
6911         * src/SDCCicode.h: made geniCodeCast() static: removed prototype
6912         * src/SDCCsymt.c (computeType): added more support for char;
6913         promotion of char is selectable by promoteCharToInt, fixed signedness
6914         for all cases
6915         (powof2): replaced (unsigned long) by (TYPE_UDWORD)
6916         * src/SDCCsymt.h (powof2): replaced (unsigned long) by (TYPE_UDWORD)
6917         * src/SDCCval (val*): replaced signedness calculation by
6918         computeType()
6919         rearranged if-branches (cosmetic)
6920         (valShift): added warning W_SHIFT_CHANGED
6921         (valCompare): fixed problem with different types
6922         * src/hc08/rallo.c (leastUsedLR): fixed gcc 3.3 warning
6923         * support/regression/tests/literalop.c: added many cases
6924         * support/regression/tests/ast_constant_folding.c: changed finally to
6925         'unsigned int'
6926         * .version: new year, new version: 2.3.7
6927         * src/SDCCmain.c (main): applied patch #866468
6928         * debugger/mcs51/sdcdb.c (parseCmdLine): added -k for ucsim, patch
6929         provided by Scott Bronson
6930         * doc/sdccman.lyx: updated documentation for sdcdb
6931         updated and added chapter tips
6932
6933 2004-01-01 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
6934
6935         * src/SDCCsymt.h: missing from yesterday's commits
6936
6937 2003-12-31 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
6938
6939         * src/SDCC.y (struct_or_union_specifier),
6940         * support/Util/SDCCerr.c,
6941         * support/Util/SDCCerr.h: verify that struct & union tags are used
6942         as declared.
6943
6944 2003-12-29 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
6945
6946         * src/SDCCglobl.h: missing from yesterday's commits
6947
6948 2003-12-28 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
6949
6950         * src/SDCC.y (external_definition, type_specifier2, sfr_reg_bit,
6951         sft_attributes, struct_declaration, parameter_declaration,
6952         type_name, start_block, declaration_list),
6953         * src/SDCC.lex (check_type): support redefinition of typedef names
6954
6955 2003-12-22 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
6956
6957         * src/mcs51/gen.c (genPlus): added special handling for 256 byte
6958         aligned xdata arrays. Erik helped me with the if clause.
6959
6960 2003-12-20 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
6961
6962         * device/lib/ds390/tinibios.c (CpuSpeed): suppress unreachable code
6963         warning
6964
6965 2003-12-20 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
6966
6967         * src/SDCCast.h,
6968         * src/SDCCast.c (newAst_),
6969         * src/SDCCicode.h,
6970         * src/SDCCicode.c (ast2iCode, newiCode),
6971         * src/SDCCglobl.h,
6972         * src/SDCC.y (logical_and_expr, logical_or_expr, conditional_expr,
6973         expr, statement, expression_statement, selection_statement,
6974         iteration_statement, expr_opt, jump_statement): foundation for tracking
6975         sequence points
6976         * src/SDCCopt.c (killDeadCode): fixed bug #861580 (needs the sequence
6977         point code too)
6978
6979 2003-12-19 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
6980
6981         * support/Util/SDCCerr.c,
6982         * src/SDCCast.h,
6983         * src/SDCCast.c (createCase, createDefault, decorateType),
6984         * src/SDCClabel.c (labelUnreach),
6985         * src/SDCC.y (labeled_statement, jump_statement): More improvements
6986         to error messages.
6987         * support/Util/SDCCerr.c (werrorfl): fixed a non-standard declaration
6988         (with thanks to Stas Sergeev)
6989         * device/include/time.h,
6990         * device/lib/time.c (CheckTime): suppress unreachable code warning
6991
6992 2003-12-18 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
6993
6994         * src/SDCCast.c (createIvalCharPtr),
6995         * src/SDCCglue.c (printChar): fixed bug #862241 (an error in my fix for
6996         bug #753752)
6997         * support/regression/tests/nullstring.c: tests for these two bugs
6998
6999 2003-12-18 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
7000
7001         * support/Util/SDCCerr.h,
7002         * support/Util/SDCCerr.c (E_NOT_ALLOWED),
7003         * src/SDCC.y (struct_declaration, struct_or_union_specifier): complain
7004         about storage class and 'at' used inside struct or union
7005         * src/SDCCBBlock.c (iCodeFromeBBlock),
7006         * src/SDCCcse.c (ifxOptimize),
7007         * src/SDCCglue.c (emitRegularMap, initPointer, printIvalStruct,
7008         printIvalArray, printiValFuncPtr, printIvalCharPtr, printIvalPtr,
7009         printIval, emitStaticSeg, emitOverlay),
7010         * src/SDCClabel.c (deleteIfx),
7011         * src/SDCCopt.c (replaceRegEqv, eBBlockFromiCode),
7012         * src/SDCCast.c (resolveSymbols, createIvalStruct, createIvalArray,
7013         gatherAutoInit, processParms),
7014         * support/Util/SDCCerr.h,
7015         * support/Util/SDCCerr.c (werrorfl): Support for better error location
7016         reporting for post-parse errors.
7017
7018 2003-12-16 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
7019
7020         * src/SDCCval.c (valPlus, valMinus, valShift): fixed some problems with
7021         implicit casts via union; they don't work on big endian systems
7022         (possible fix for bug #861138)
7023
7024 2003-12-16 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
7025
7026         (committed by Erik Petrich <epetrich AT ivorytower.norman.ok.us> on Frieder's behalf)
7027         * src/mcs51/main.c: fixed the fix for bug #737001
7028
7029 2003-12-15  Borut Razem <borut.razem AT siol.net>
7030
7031         * support/scripts/sdcc.nsi: updated for NSIS 2.0 beta 4
7032
7033 2003-12-14 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
7034
7035         * support/makebin/makebin.c: put output in binary mode
7036
7037 2003-12-13 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
7038
7039         * src/mcs51/main.c: fixed bug #737001 for the mcs51. SDCC clears
7040         xdata and data memory on startup. Set the environment variable
7041         SDCC_NOGENRAMCLEAR to disable this.
7042         * src/mcs51/peephole.def,
7043         * src/ds390/peephole.def: using the atomic test and clear instruction jbc
7044         (allows non-interrupt and interrupt code to safely compete for a resource
7045         without the non-interrupt code having to disable interrupts)
7046
7047 2003-12-13 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
7048
7049         * src/SDCCicode.c (geniCodeAdd),
7050         * src/SDCCast.c (decorateType): fixed bug #857753 (need to be careful
7051         with valFromType if type might be a pointer and host is big endian).
7052         * src/SDCCast.c (decorateType): unary plus compatible with all arithmetic
7053         types, not just integer types.
7054         * src/SDCCsymt.c (addSymChain): clarified error message when symbol is
7055         multiply defined with mismatching "at" address.
7056
7057 2003-12-12 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
7058
7059         * src/ds390/main.c (PORT tininative_port): fixed bug #858416
7060         * src/SDCCglue.c (printChar, printIvalChar, emitStaticSeg),
7061         * src/SDCCast.c (createIvalCharPtr, stringToSymbol): handle strings
7062         with embedded nulls (fixed bug #753752)
7063
7064 2003-12-12 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
7065
7066         * src/mcs51/main.c(_mcs51_genRAMCLEAR): using r0 instead of r1/r2.
7067         Apparently this did not see much testing (endless loop)
7068
7069 2003-12-11 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
7070
7071         * src/z80/ralloc.c: set DISABLE_PACK_HL = 1 as a temporary fix to bug #855165
7072
7073 2003-12-10 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
7074
7075         * src/SDCCdebug.c (outputDebugSymbols, outputDebugStackSymbols, dumpSymInfo):
7076         gracefully handle NULL memmap pointers
7077
7078 2003-12-08 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
7079
7080         * src/SDCCopt.c (killDeadCode): change iCode type to DUMMY_READ_VOLATILE
7081         instead of deleting the iCode when an operand is volatile
7082         * src/z80/gen.c (genDummyRead),
7083         * src/mcs51/gen.c (genDummyRead),
7084         * src/ds390/gen.c (genDummyRead),
7085         * src/hc08/gen.c (genDummyRead): handle operands in IC_LEFT and/or IC_RIGHT,
7086         not just IC_RIGHT
7087         * src/SDCCicode.c (geniCodeCall): fixed bug #851607
7088         * src/SDCC.y: fixed bug #850420
7089
7090 2003-12-05 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
7091
7092         Applied z80 i/o port patch from Peter Townson and fixed some operators
7093         to better handle operands in A register.
7094         * device/include/z180.h
7095         * src/SDCC.y
7096         * src/SDCCglue.c
7097         * src/z80/gen.c
7098         * src/z80/gen.h
7099         * src/z80/main.c
7100         * src/z80/peeph-z80.def
7101         * src/z80/peeph.def
7102         * src/z80/z80.h
7103
7104 2003-12-03 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
7105
7106         * src/SDCCsymt.c (addSymChain, compareTypeExact): fixed bug #838241 again
7107
7108 2003-12-01 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
7109
7110         * device/lib/hc08/_mullong.c: Removed extra #endif
7111
7112 2003-12-01 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
7113
7114         * sim/ucsim/hc08.src/inst.cc,
7115         * sim/ucsim/hc08.src/hc08mac.h: fixed some problems with CC flag bits and
7116         carries from x to h
7117         * src/hc08/gen.c (aopAdrStr): fixed problem with 16 bit immediate
7118         * src/hc08/gen.c (XAccRsh): fixed problem with right shift
7119         * device/include/stdarg.h: fixed varargs for hc08
7120         * device/lib/Makefile.in,
7121         * device/lib/hc08/Makefile,
7122         * device/lib/hc08/_mulint.c,
7123         * device/lib/hc08/_mullong.c: fixed some endian problems
7124
7125 2003-11-28 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
7126
7127         * sdcc/src/mcs51/gen.c (genMultOneByte): help peephole 105
7128         * sdcc/src/mcs51/peeph.def: added peephole 186.e array access in code space
7129         * device/lib/_gptrget.c,
7130         * device/lib/_gptrput.c: P2 not used any more (related to #850747, #785979)
7131
7132 2003-11-27 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
7133
7134         * src/SDCClrange.c (findNextUseSym, rlivePoint): fixed bug #849795
7135         * src/SDCCast.c (astErrors): fixed bug #846007
7136         * src/SDCCsymt.c (checkFunction): fixed follow-up bug on bug #846007
7137
7138 2003-11-26 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
7139
7140         * src/SDCCast.c (decorateType): disabled a transformation I added in
7141         revision 1.188 (access to fields of a structure at an absolute address);
7142         it breaks with bitfields, extern declarations, and gcse analysis.
7143         * src/SDCCopt.c (isLocalWithoutDef): if ADDRESS_OF applied to a symbol, it
7144         could be assigned through a pointer, so don't complain.
7145         * src/SDCCast.c (astErrors),
7146         * src/SDCCast.h,
7147         * src/SDCCglue.c (emitRegularMap): fixed bug #847813
7148
7149 2003-11-26 Vangelis Rokas <vrokas AT otenet.gr>
7150
7151         * src/pic16/main.c (_pic16_genIVT): fixed interrupt vector table
7152         * src/pic16/main.c (_pic16_genAssemblerPreamble): re-enabled the
7153         output of __config directives, since gpasm now supports them
7154         * src/pic16/main.c (_pic16_finaliseOptions): define MCU
7155         pre-processor macro, i.e. -DMCU=p18f452
7156         * src/pic16/ralloc.c: renamed packRegisters to pic16_packRegisters,
7157         and modified to handle 'cast' icode similarly to '=' icode
7158         * src/pic16/device.h (typedef struct PIC_device): added field
7159         'extMIface' to indicate that chip has external memory interface
7160         * src/pic16/device.c: added chips 18F248, 18F258, 18F448, 18F458,
7161         18F6520, 18F6620, 18F6680, 18F6720, 18F8520, 18F8620, 18F8680,
7162         18F8720
7163
7164 2003-11-26 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
7165
7166         * src/SDCC.y (pointer): fixed bug #846006
7167         * support/Util/SDCCerr.c: made W_PTR_TYPE_INVALID message clearer
7168         * src/SDCCast.c (decorateType): fixed bug #846009
7169         * src/ds390/peeph.def,
7170         * src/ds390/gen.c (genAnd, genOr),
7171         * src/mcs51/peeph.def,
7172         * src/mcs51/gen.c (genAnd, genOr): fixed bug #846777
7173
7174 2003-11-25 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
7175
7176         Fixed several common-sub-expression bugs (#772861, #768380, & #755323)
7177         * src/SDCCdflow.c
7178         * src/SDCCcse.c
7179         * src/SDCCcse.h
7180         * src/SDCCBBlock.h
7181         * src/SDCCBBlock.c
7182
7183 2003-11-23 Klaus Flittner <klaus_flittner AT gmx.de>
7184
7185         fixed bug #845089
7186         * src/SDCCbitv.h,
7187         * src/SDCCbitv.c: added function to free a bitvector
7188         * src/SDCClrange.h,
7189         * src/SDCClrange.c: added function to recompute the liveranges
7190         * src/avr/ralloc.c,
7191         * src/ds390/ralloc.c,
7192         * src/hc08/ralloc.c,
7193         * src/mcs51/ralloc.c,
7194         * src/pic/ralloc.c,
7195         * src/pic16/ralloc.c,
7196         * src/xa51/ralloc.c,
7197         * src/z80/ralloc.c: recompute the liveranges after register packing
7198
7199 2003-11-21 Klaus Flittner <klaus_flittner AT gmx.de>
7200
7201         * src/SDCCloop.c (newInduction): fixed bug #845630
7202
7203 2003-11-21 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
7204
7205         * src/SDCCsymt.c (compareTypesExact): disabled debugging output
7206         inadvertantly left behind from my 2003-11-12 change
7207
7208 2003-11-20 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
7209
7210         Updated headers I neglected to commit yesterday.
7211         * src/SDCClrange.h,
7212         * src/SDCCicode.h
7213
7214 2003-11-19 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
7215
7216         * src/SDCCcse.c (algebraicOpts): fixed bug #773153
7217         * src/SDCClrange.c (rlivePoint): need to mark IC_RESULT used if POINTER_SET op
7218         * src/SDCCopt.c (eBBlockFromiCode),
7219         * src/SDCClrange.c (hashiCodeKeys, sequenceiCode, computeLiveRanges): seperated
7220         the creation of the key hash table from the sequencing so it can be used
7221         earlier (for some GCSE bug fixes still pending)
7222
7223 2003-11-15 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
7224
7225         * src/mcs51/gen.c (genPlus): generate shortcut for adding 0xab00
7226         * support/regression/tests/addsub.c: testing genPlus shortcut
7227
7228 2003-11-15  Borut Razem <borut.razem AT siol.net>
7229
7230         * src/SDCCmain.c: fixed bug #841645: -MM command line option passed to sdcpp
7231
7232 2003-11-15 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
7233
7234         * src/SDCCcse.c (cseBBlock): fixed bug #527779
7235         * src/SDCCcse.c (deleteGetPointers): rewrote so that the set
7236         ordering is immaterial.
7237         * src/SDCCdflow.c (mergeInExprs): fixed bug #587536
7238
7239 2003-11-14 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
7240
7241         * src/SDCCicode.c (geniCodeAddressOf): fixed part of bug #840381
7242         * src/SDCCopt.c (replaceRegEqv, isLocalWithoutDef): fixed other part
7243         (SIGSEV) of bug #840381
7244         * src/SDCCmain.c (linkEdit, assemble): fixed bug #841606 (don't
7245         unlink new file before rename if new and old filenames are the same)
7246
7247 2003-11-13 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
7248
7249         * src/mcs51/main.c: started fixing bug #737001 (SDCC not clearing
7250         uninitialized variables) for the mcs51. Set environment variable
7251         SDCC_GENRAMCLEAR to test.
7252         xdata initialization slightly shorter
7253
7254 2003-11-12 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
7255
7256         * src/SDCCsymt.h,
7257         * src/SDCCsymt.c (addSymTypeChain, compareTypesExact): fixed bugs
7258         #838241 & 780691 (basicly the same bug)
7259         * src/SDCCBBlock.c (iCode2eBBlock): fixed bug #840148
7260         * src/SDCCBBlock.c (iCodeFromeBBlock): fixed bug #840162
7261
7262 2003-11-11 Bernhard Held <bernhard AT bernhardheld.de>
7263
7264         * src/SDCCmain.c (linkEdit): "fix" #834252
7265
7266 2003-11-11 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
7267
7268         * src/SDCCast.c (removePostIncDecOps, removePreIncDecOps),
7269         * src/SDCCast.h,
7270         * src/SDCC.y: fixed bug #819403
7271
7272 2003-11-08 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
7273
7274         * support/regression/fwk/lib/testfwk.c: printn is recursive and thus needs
7275         the reentrant attribute.
7276         * src/hc08/gen.c (genPackBits): added missing stack readjustment
7277         * sim/ucsim/hc08.src/inst.cc (inst_mov): fixed bugs with mov instruction
7278         simulation
7279         * src/SDCCast.c (decorateType): fixed bug with storage class not being
7280         updated during pointer dereference; f.e. ~(((char *)1)*) was being
7281         erroneously reduced to a literal.
7282         * src/hc08/ralloc.c (packRegisters, rematStr),
7283         * src/hc08/gen.c (aopForRemat): allow literals to be rematerialized in
7284         some cases
7285
7286 2003-11-08 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
7287
7288         * src/mcs51/main.c: fixed bug #838385. Thanks to Josef Pavlik for finding and fixing
7289         * doc/sdccman.lyx: changed from 'article' to 'book'
7290         * doc/Makefile: readded test_suite_spec and cdbfileformat
7291
7292 2003-11-08 Bernhard Held <bernhard AT bernhardheld.de>
7293
7294         * device/include/stdlib.h: include malloc.h to comply with ANSI
7295         * support/regression/tests/malloc.c: include stdlib.h instead of malloc.h
7296
7297 2003-11-07 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
7298
7299         * doc/Makefile: sdccman.pdf should build with correct references (more info in commit msg)
7300         * doc/clean.mk: also remove *.out files
7301         * doc/sdccman.lyx: some additions, larger top/bottom margins
7302
7303 2003-11-07 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
7304
7305         * src/SDCC.y: fixed bug #837365
7306         * support/regression/tests/bitopcse.c
7307         * src/hc08/gen.c (genPointerGet): Don't assume pointer operand is
7308         a symbol (might be valop instead)
7309         * device/lib/Makefile.in: added errno.c to HC08SOURCES
7310         * device/lib/clean.mk: added hc08 to the cleaning list
7311
7312 2003-11-04  Borut Razem <borut.razem AT siol.net>
7313
7314         * configure, configure.in, sdcc_vc_in.h, sdcconf_in.h: reverted changes,
7315           made 2003-11-04
7316         * support/Util/NewAlloc.c, as/hc08/lklibr.c, as/mcs51/lklibr.c,
7317           as/z80/aslist.c, as/z80/assym.c: removed inclusion of nonstandard malloc.h;
7318           malloc is declared in standard stdlib.h
7319
7320 2003-11-06 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
7321
7322         * device/lib/hc08/Makefile: need to clean .rel not .o files
7323         * src/hc08/gen.c (genDjnz): can't use djnz with extended addressing mode
7324
7325 2003-11-06 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
7326
7327         * src/port.h,
7328         * src/hc08/main.c,
7329         * src/mcs51/main.c,
7330         * src/ds390/main.c,
7331         * src/z80/main.c,
7332         * src/avr/main.c,
7333         * src/pic/main.c,
7334         * src/pic16/main.c,
7335         * src/xa51/main.c: added hasExtBitOp & oclsExpense functions to ports
7336         * src/SDCCicode.c: changed several IS_FARSPACE tests to isOclsExpensive
7337         tests (which uses the port's oclsExpense function)
7338         * src/SDCC.y,
7339         * src/SDCCast.c,
7340         * src/SDCCicode.c,
7341         * src/hc08/gen.c,
7342         * src/ds390/gen.c,
7343         * src/mcs51/gen.c: added support for the SWAP iCode (RFE #834167)
7344
7345 2003-11-04 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
7346
7347         * src/SDCCcse.c (ifxOptimize),
7348         * src/SDCClabel.c (labelIfx, deleteIfx): When the condition to
7349         an IFX iCode is volatile, convert to DUMMY_READ_VOLATILE instead
7350         deleting the IFX iCode.
7351         * src/hc08/ralloc.c: reduced unneeded slocs
7352         * src/hc08/gen.c: fixed bug in asmopToBoolean
7353
7354 2003-11-04  Borut Razem <borut.razem AT siol.net>
7355
7356         * configure, configure.in, sdcc_vc_in.h, sdcconf_in.h,
7357           support/Util/NewAlloc.c, as/hc08/lklibr.c, as/mcs51/lklibr.c,
7358           as/z80/aslist.c, as/z80/assym.c: decision to include malloc.h
7359           transferred to configure
7360
7361 2003-11-03 Bernhard Held <bernhard AT bernhardheld.de>
7362
7363         Use headers defined in the C[++] standards:
7364         * sim/ucsim/gui.src/serio.src/fileio.cc
7365         * sim/ucsim/gui.src/serio.src/frontend.cc
7366         * sim/ucsim/gui.src/serio.src/main.cc
7367         * sim/ucsim/gui.src/serio.src/posix_signal.cc
7368         * support/Util/NewAlloc.c
7369         * as/hc08/lklibr.c
7370         * as/mcs51/lklibr.c
7371         * as/z80/aslist.c
7372         * as/z80/assym.c
7373
7374 2003-11-03  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
7375
7376         * Added MSVC projects for hc08 assembler and linker:
7377         all.dsp, config.dsp, sdcc.dsw, /as/hc08/as_hc08.dsp,
7378         /as/hc08/link_hc08.dsp
7379
7380 2003-11-03 Martin Helmling <Martin.Helmling AT octo-soft.de>
7381
7382         * debugger/mcs51/cmd.c: allows filename starting with digit(+ some debug)
7383
7384 2003-11-02 Bernhard Held <bernhard AT bernhardheld.de>
7385
7386         * src/SDCCmain.c (linkEdit): "fixed" again bug #833605
7387
7388 2003-11-01 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
7389
7390         * src/mcs51/main.c: xdata initialization is 13 bytes shorter now
7391
7392 2003-10-31  Borut Razem <borut.razem AT siol.net>
7393
7394         * support/cpp2/cpplib.h,
7395           support/cpp2/cpplib.c,
7396           support/cpp2/cpplex.c,
7397           support/cpp2/cppinit.c: introduced #pragma preproc_asm [ + | - ]
7398           to switch _asm block preprocessing on / off. Default is
7399           #pragma preproc_asm +
7400
7401 2003-10-31  Borut Razem <borut.razem AT siol.net>
7402
7403         * support/cpp2/cpplex.c: Fixed _WIN32 problem with CR-CR-LF sequences
7404           when outputting comment blocks (when executed with -C option) and
7405           _asm (SDCPP specific) blocks
7406
7407 2003-10-31 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
7408
7409         * as/hc08/lkrloc.c (relr): Fixed ihx output, fixed lastAreaIndex warning
7410
7411 2003-10-31 Klaus Flittner <klaus_flittner AT gmx.de>
7412
7413         * src/SDCCcse.c (updateSpillLocation): fixed bug #808027
7414
7415 2003-10-31 Bernhard Held <bernhard AT bernhardheld.de>
7416
7417         * src/SDCCmain.c (linkEdit): "fixed" bug #833605
7418         * src/SDCCast.c (decorateType): fixed bug #832664
7419
7420 2003-10-31  Borut Razem <borut.razem AT siol.net>
7421
7422         * support\cpp2\cpplex.c: fixed for SDCPP:
7423           comments(when executed with -C option) and _asm blocks
7424           were included even if they where in skipped #if block.
7425           Applied solution from GCC cpp 3.3.2
7426
7427 2003-10-31  Borut Razem <borut.razem AT siol.net>
7428
7429         * src/SDCC.lex: sdcc now understands both formats:
7430           '# <line_number> <file_name>' and
7431           '#line <line_number> <file_name>'
7432         * support/cpp2/cppmain.c: sdcpp now generates the standard
7433           '# <line_number> <file_name>' instead of former
7434           '#line <line_number> <file_name>'
7435
7436 2003-10-30  Borut Razem <borut.razem AT siol.net>
7437
7438         * support/cpp2/cpphash.h,
7439         * support/cpp2/cpplib.h
7440         * support/cpp2/cpplex.c,
7441         * support/cpp2/cppmain.c,
7442         * support/cpp2/cppinit.c: fixed bug #828015 - Syntax variation for _asm character constants
7443
7444 2003-10-30 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
7445
7446         Fixed a number of problems revealed by bug #827883.
7447         * src/SDCCloop.c (loopInvariants): Spill location of the
7448         result operand should be recomputed if extracted from
7449         a loop. Also, don't extract assignments of an iTemp
7450         from a literal.
7451         * src/SDCCast.c (isConformingBody): loop reversal should
7452         not occur if the control variable is involved with a
7453         relational operator.
7454
7455 2003-10-28 Bernhard Held <bernhard AT bernhardheld.de>
7456
7457         * .version: bumped to 2.3.6 to reflect the big improvements
7458         made by Erik and Klaus. Thanks!
7459
7460 2003-10-28 Klaus Flittner <klaus_flittner AT gmx.de>
7461
7462         Replaced the livrange code.
7463         * src/SDCClrange.c: added new LR code
7464         * src/SDCCloop.c,
7465         * src/SDCCBBlock.h: removed remainig parts from old LR code
7466         * src/ds390/ralloc.c,
7467         * src/ds390/gen.c: minor fixes to make it work with new code
7468
7469 2003-10-28 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
7470
7471         * as/hc08/asm.h,
7472         * as/hc08/lkrloc.c,
7473         * src/hc08/gen.c,
7474         * src/hc08/ralloc.c: Fix various warnings related to the hc08
7475         * src/SDCCicode.c (geniCodePreInc, geniCodePreDec): Fixed bug #829717
7476         (tweaked fix for bug #818696)
7477
7478 2003-10-23 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
7479
7480         * src/z80/ralloc.c (joinPushes): Fixed bug #828742
7481
7482 2003-10-23 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
7483
7484         * src/SDCCmain.c,
7485         * sdccconf_in.h: Fixed bug #828387 (--disable-hc08-port didn't work)
7486         * src/mcs51/gen.c (gencjneshort),
7487         * src/ds390/gen.c (gencjneshort): Made comparison with AOP_IMMD operand
7488         more efficient (per Scott Bronson's suggestion)
7489
7490 2003-10-22 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
7491
7492         Extended the semantics of the critical keyword to include
7493         individual statements. See RFE #827755 and #799831
7494         * src/SDCC.y
7495         * src/SDCCicode.c
7496         * src/SDCCopt.c
7497         * src/SDCCast.c
7498         * support/Util/SDCCerr.c
7499         * support/Util/SDCCerr.h
7500         * src/mcs51/gen.c
7501         * src/ds390/gen.c
7502         * src/hc08/gen.c
7503
7504 2003-10-19  Borut Razem <borut.razem AT siol.net>
7505
7506         * src/SDCC.lex: fixed bug #825944 - defined yytext_ptr to make it compile with flex 2.5.31
7507
7508 2003-10-19 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
7509
7510         * src/SDCCicode.c (geniCodePreInc, geniCodePreDec, ast2iCode):
7511         Fixed bug #818696
7512         * src/SDCCast.c (ast_print): Fixed --dumptree so that preincrement
7513         and predecrement operand is displayed
7514
7515 2003-10-13 Bernhard Held <bernhard AT bernhardheld.de>
7516
7517         * src/SDCCval.c (valMinus): fixed bug #826041
7518
7519 2003-10-15 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
7520
7521         Some hc08 related updates that I missed earlier
7522         * sim/ucsim/stypes.h
7523         * support/regression/ports/hc08/spec.mk
7524
7525 2003-10-15 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
7526
7527         New target "hc08" for the Motorola 68hc08 family of micros
7528
7529         * configure
7530         * configure.in
7531         * Makefile
7532         * src/hc08/*
7533         * src/SDCCmain.c
7534         * src/port.h
7535         * sim/ucsim/hc08.src/*
7536         * sim/ucsim/configure.in
7537         * src/ucsim/configure
7538         * sim/ucsim/packages_in.mk
7539         * as/hc08/*
7540         * as/Makefile
7541         * device/include/mc68hc908qy.h
7542         * device/lib/hc08/*
7543         * device/lib/Makefile.in
7544         * support/regression/ports/hc08/*
7545         * support/regression/Makefile
7546
7547 2003-10-14 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
7548
7549         * src/z80/gen.c: fixed bug revealed by ast_constant_folding.c
7550         regression test
7551         * src/ds390/gen.c (genCast): fixed bug #821957
7552
7553 2003-10-13 Bernhard Held <bernhard AT bernhardheld.de>
7554
7555         * device/lib/logf.c: "fixed" overlay bug
7556         * support/regression/ports/host/spec.mk: added m library
7557         * support/regression/ports/mcs51-stack-auto/spec.mk: added float funcs
7558         * support/regression/tests/float_trans: added (for Eric)
7559
7560 2003-10-12 Bernhard Held <bernhard AT bernhardheld.de>
7561
7562         * src/mcs51/gen.c (genCpl): fixed bug
7563         http://sf.net/mailarchive/message.php?msg_id=6263915
7564
7565 2003-10-10 Bernhard Held <bernhard AT bernhardheld.de>
7566
7567         * src/SDCCast.c (decorateType): added extended constant folding
7568         * src/SDCCsymt.c (computeType): cleanup
7569         * src/SDCCval.c (valShift): minor optimization
7570         * support/regression/tests/ast_constant_folding.c: added
7571
7572 2003-10-09  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
7573
7574         * src/SDCCmain.c: removed some unintended changes
7575
7576 2003-10-09  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
7577
7578         * src/SDCCmain.c (setParseWithComma): fixed bug #816685
7579         * src/z80/gen.c: fixed part of bug #817589
7580         * src/SDCCsymt.c (checkFunction): fixed bug #817895
7581
7582 2003-10-08 Bernhard Held <bernhard AT bernhardheld.de>
7583
7584         Replaced cast (void **) with (void *) to avoid gcc 3 warning:
7585         * src/SDCCcflow.c
7586         * src/SDCCcse.c
7587         * src/SDCCdflow.c
7588         * src/SDCClabel.c
7589         * src/SDCClrange.c
7590         * src/SDCCmem.c
7591         * src/SDCCopt.c
7592         * src/SDCCpeeph.c
7593         * src/SDCCset.c
7594         * src/avr/ralloc.c
7595         * src/ds390/ralloc.c
7596         * src/izt/ralloc.c
7597         * src/mcs51/ralloc.c
7598         * src/pic/ralloc.c
7599         * src/pic16/ralloc.c
7600         * src/xa51/ralloc.c
7601         * src/z80/ralloc.c
7602         * src/z80/gen.c: removed unused label "release:"
7603
7604 2003-10-06  Borut Razem <borut.razem AT siol.net>
7605
7606         * src/SDCC.lex: removed definition of unused variables
7607           save_optimize and save_options
7608
7609 2003-10-06 Bernhard Held <bernhard AT bernhardheld.de>
7610
7611         * clean.mk: removed '=' in "-maxdepth=1"
7612         * src/SDCCloop.c: replace LRKLAUS with SDCC_LRKLAUS
7613         * src/SDCClrange.c: replace LRKLAUS with SDCC_LRKLAUS
7614
7615 2003-10-06  Borut Razem <borut.razem AT siol.net>
7616
7617         * src/SDCC.lex, src/SDCC.lex: use dbuf for "_asm" definitions;
7618           my_unput() replaced by unput()
7619
7620 2003-10-05 Bernhard Held <bernhard AT bernhardheld.de>
7621
7622         * src/SDCCloop.c (assignmentsToSym, loopInduction): cast argument of
7623         setToNull() to (void *) to avoid gcc3.x's warning: "dereferencing
7624         type-punned pointer will break strict-aliasing rules"
7625         Old LR behaviour is again default; Klaus' LR can be choosen by
7626         defining the environment variable LRKLAUS
7627         * src/SDCCBBlock.h
7628         * src/SDCCloop.c
7629         * src/SDCClrange.c
7630         * src/ds390/ralloc.c (spillThis): applied Klaus' patch
7631         * clean.mk: fixed removal of files in bin/CVS/
7632         * device/lib/clean.mk: fixed removal of directories small and large
7633         * support/Util/SDCCerr.c: changed W_INT_OVL to ERROR_LEVEL_PEDANTIC
7634         * src/SDCCicode.c,
7635         * src/SDCCval.c: removed superflous test for pedantic
7636
7637 2003-10-05  Borut Razem <borut.razem AT siol.net>
7638
7639         * src/SDCC.lex, support/Util/SDCCerr.c, sdcc/support/Util/SDCCerr.h:
7640           Fixed bug #816692: introduced new ERROR_LEVEL_PEDANTIC warning
7641           message "unmatched #pragma SAVE and #pragma RESTORE"
7642
7643 2003-10-04  Frieder Ferlemann <Frieder.Ferlemann AT web.de>
7644
7645         * doc/sdccman.lyx: various additions and updates (interrupts, inline
7646           assembly, critical functions, atomic, nojtbound)
7647
7648 2003-10-04 Bernhard Held <bernhard AT bernhardheld.de>
7649
7650         Applied liferange patch from Klaus Flittner <klaus_flittner AT gmx.de>
7651         * src/SDCCBBlock.h
7652         * src/SDCCloop.c
7653         * src/SDCCloop.h
7654         * src/SDCClrange.c
7655
7656 2003-10-03  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
7657
7658         * src/z80/gen.h,
7659         * src/z80/gen.c (aopOp, aopGet, aopPut, genDummyRead),
7660         * src/mcs51/gen.h
7661         * src/mcs51/gen.c (aopOp, aopGet, aopPut, genDummyRead),
7662         * src/ds390/gen.h
7663         * src/ds390/gen.c (aopOp, aopGet, aopPut, genDummyRead),
7664         * src/SDCCicode.c (ast2iCode, geniCodeDummyRead): Fixed bug #663539
7665         * src/SDCCopt.c (killDeadCode): Fixed bugs #663539 & #816705
7666
7667 2003-10-02  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
7668
7669         * src/z80/gen.c (genRet): fixed bug #524753
7670         * src/z80/gen.c (genCast): fixed internal error on cast from
7671         pointer to long
7672         * src/z80/gen.c (_saveRegsForCall, emitCall): adapted Johan's
7673         fix for bug #477835 to the z80
7674         * src/z80/gen.c (genZ80code, _vemit2, _emit2): added support
7675         for tracking iCodes in the peephole optimizer for z80
7676
7677 2003-10-01  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
7678
7679         * src/SDCCicode.c (geniCodeJumpTable, geniCodeSwitch): fixed
7680         the other part of bug #814548
7681         * src/SDCCpeeph.c (labelInRange): fixed bug #814558
7682
7683 2003-09-30  Bernhard Held <bernhard AT bernhardheld.de>
7684
7685         * src/SDCCcse.c: fixed part of bug #814548
7686
7687 2003-09-28  Borut Razem <borut.razem AT siol.net>
7688
7689         * src/asm.c: rewrite of printILine() to use temporary file instead
7690           a pipe
7691         * src/xa51/main.c: commented out declaration of int rewinds
7692
7693 2003-09-27  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
7694
7695         * src/SDCCicode.c (geniCodeJumpTable): Fixed bug #813206
7696
7697 2003-09-26  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
7698
7699         * src/SDCCdflow.c (computeDataFlow): Fixed bug #810746
7700         * src/asm.c (printILine): Fixed bug #811015
7701
7702 2003-09-22  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
7703
7704         *link/z80/lklibr.c, as/mcs51/lklibr.c: Improved memory allocation and
7705         freeing.
7706
7707 2003-09-21  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
7708
7709         * src/z80/gen.c (setupToPreserveCarry): Fixed bug #796955
7710         * src/z80/gen.c (setupPair, genMovePairPair): Fixed setupPair
7711         to correctly handle general case of AOP_PAIRPTR
7712         * src/z80/gen.c (aopGet, aopPut): Generalized AOP_PAIRPTR handling
7713
7714 2003-09-21  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
7715
7716         * src/mcs51/ralloc.c (fillGaps),
7717         * src/ds390/ralloc.c (fillGaps): fixed bug #810093 (yet another
7718         register positioning bug)
7719
7720 2003-09-21  Bernhard Held <bernhard AT bernhardheld.de>
7721
7722         * device/lib/_fsdiv.c: replaced (1<<31) by (1ul<<31)
7723
7724 2003-09-19  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
7725
7726         * src/mcs51/gen.c (loadDptrFromOperand, genFarPointerGet,
7727         genCodePointerGet, genGenPointerGet, genFarPointerSet,
7728         genGenPointerSet): handle AOP_DPTR correctly when loading dptr
7729         (ralloc doesn't intentionally do this now, but perhaps later)
7730         * src/mcs51/ralloc.c (serialRegAssign, fillGaps),
7731         * src/ds390/ralloc.c (serialRegAssign, fillGaps): fixed some
7732         register positioning bugs (Fixed bug #762602 and #795325)
7733         * src/SDCCicode.c (geniCodeDerefPtr): Track output class correctly
7734         (Fixed bug #808779)
7735         * src/z80/gen.c: increased _vemit2's buffer[] to handle long
7736         lines that --i-code-in-asm generates
7737
7738 2003-09-18  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
7739
7740         *link/z80/lklibr.c, as/mcs51/lklibr.c: Fixed Linux segfaults when
7741         trying to fclose a FILE* that was already closed.
7742
7743 2003-09-18  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
7744
7745         * src/SDCCsymt.c (structElemType): fixed bug #808291 (members
7746         of const struct should be treated as if const themselves)
7747
7748 2003-09-18  Bernhard Held <bernhard AT bernhardheld.de>
7749
7750         * src/SDCCval.c (valPlus, valMinus): fixed bug #808337
7751
7752 2003-07-06  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
7753
7754         * support/librarian/sdcclib.c: Generate correct offsets for libraries with
7755         Unix (/n) and DOS (/r/n) line terminations.
7756
7757 2003-09-17  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
7758
7759         * src/SDCCopt.c (cnvFromFloatCast, cnvToFloatCast): fixed
7760         bug #613775
7761
7762 2003-09-16  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
7763
7764         * src/mcs51/gen.c (genFunction, genEndFunction),
7765         * src/ds390/gen.c (genFunction, genEndFunction): Moved save
7766         and restore of EA so that stack offsets to parameters are
7767         correct when using both critical and reentrant/stack-auto.
7768         * src/z80/gen.c (aopOp): removed erroneous assertion about sloc
7769         size (can be triggered in error if sloc is shared between
7770         different sized objects)
7771         * device/include/float.h: fixed macros to explicitly use
7772         unsigned long where needed
7773
7774 2003-09-15  Bernhard Held <bernhard AT bernhardheld.de>
7775
7776         Feature req. 799831: added code to allow nesting of critical functions
7777         * src/mcs51/gen.c (genFunction, genEndFunction)
7778         * src/ds390/gen.c (genFunction, genEndFunction)
7779
7780 2003-09-14  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
7781
7782         * src/SDCCsymt.c (sclsFromPtr),
7783         * src/SDCCsymt.h,
7784         * src/SDCCast.c (decorateType): fixed bug #462971. Also, better
7785         support for standard C idiom of memory mapped variables; for
7786         example, *((xdata int*)0x1234) = 1 is now internally equivalent
7787         to xdata int at 0x1234 tempvar = 1.
7788         * sim/ucsim/z80.src/inst_xd.cc: fixed bug #805483 with patch
7789         provided by Akiya ISHIDA
7790
7791 2003-09-13  Bernhard Held <bernhard AT bernhardheld.de>
7792
7793         * src/SDCCval.c (cheapestVal): reenabled to reduce int to char
7794         * src/SDCCval.c (constVal): added reduction from int to char
7795         * src/SDCCval.c (valMult, valDiv): fixed sign handling
7796         * src/SDCCval.c (valShift): fixed after change of cheapestVal()
7797         * src/SDCCval.c (valCompare): fixed EQ_OP and NE_OP; they have
7798         to ignore the sign
7799         * support/regression/tests/shifts.c: fixed
7800
7801 2003-09-13  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
7802
7803         * src/z80/gen.c (genXor): Fixed bug #805445
7804
7805 2003-09-12  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
7806
7807         Fixed bug #621531 (const & volatile confusion in the type chain).
7808         DCL_PTR_CONST, DCL_PTR_VOLATILE, & IS_PTR_CONST now exclusively
7809         refer to the const or volatile state of the pointer itself.
7810
7811         * src/SDCCast.c
7812         * src/SDCCglue.c
7813         * src/SDCCicode.c
7814         * src/SDCCsymt.c
7815         * src/SDCCval.c
7816         * src/SDCC.y
7817         * src/SDCCsymt.h
7818         * src/pic/gen.c
7819         * src/pic/ralloc.c
7820         * src/pic16/gen.c
7821         * src/pic16/ralloc.c
7822         * support/regression/tests/const.c
7823
7824 2003-09-10  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
7825
7826         When checking for duplicated modules, use absolute paths
7827         instead of relative paths.  Files changed:
7828
7829         * as/mcs51/lklib.c
7830         * link/z80/lklib.c
7831
7832 2003-09-09  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
7833
7834         * src/SDCCicode.c (geniCodeLogic): fixed bug #797572
7835
7836 2003-09-07  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
7837
7838         * device/include/string.h: added size_t typedef, changed
7839         prototypes to use size_t, eliminated separate reentrant and
7840         non-reentrant declarations, added _memmove declaration
7841         * device/lib/_memcpy.c: changed to use size_t instead of int,
7842         changed /4 to >>2 to avoid division library call
7843         * device/lib/_memcmp.c,
7844         * device/lib/_memset.c,
7845         * device/lib/_strncat.c,
7846         * device/lib/_strncpy.c,
7847         * device/lib/_strncmp.c: changed to use size_t instead of int
7848         * device/lib/_memmove.c: new file (fixed bug #772294)
7849         * device/lib/Makefile.in: added _memmove.c
7850         * device/lib/z80/asm_strings.s: fixed bug #772290
7851         * support/regression/tests/bitfields.c: attempt to fix host assertion
7852         failure on amd64-unknown-linux2.2
7853
7854 2003-09-06  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
7855
7856         * src/z80/gen.c (aopPut, spillPairReg): fixed bug #800998
7857         * src/z80/gen.c (genFunction, genEndFunction): fixed "bug" #774700
7858         * as/z80/asmain.c (main): fixed bug #801766
7859
7860 2003-09-06  Bernhard Held <bernhard AT bernhardheld.de>
7861
7862         * src/SDCCicode.c (ast2iCode): fixed differences in iCode with different
7863         compilers
7864
7865 2003-09-05  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
7866
7867         * src/SDCCast.c (isConformingBody): fixed loop reversal bug
7868         reported in bug #800609
7869
7870 2003-09-04  Vangelis Rokas <vrokas AT otenet.gr>
7871
7872         * Top header beautifications in src/pic16 directory:
7873           device.c, device.h, gen.c, gen.h, genarith.c, glue.c, pcode.c,
7874           pcodeflow.c, pcodeflow.h, pcode.h, pcodepeep.c, pcoderegs.c,
7875           pcoderegs.h, ralloc.c, ralloc.h
7876         * main.c: added top header and GPL license notice
7877         * pcode.c: fixed the if-conditional warning
7878
7879 2003-09-04  Bernhard Held <bernhard AT bernhardheld.de>
7880
7881         * device/lib/_mullong.c: replaced int by short for gcc
7882
7883 2003-08-31  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
7884
7885         * src/SDCCpeeph.c (notVolatile, notVolatileVariable): handle IFX
7886         and JUMPTABLE iCodes properly now (worked by accident before)
7887         * src/mcs51/gen.c (leftRightUseAcc),
7888         * src/ds390/gen.c (leftRightUseAcc): handle IFX and JUMPTABLE
7889         iCode properly now. Use getSize instead of nRegs since a & b
7890         aren't part of the nRegs tally.
7891
7892 2003-08-31  Vangelis Rokas <vrokas AT otenet.gr>
7893
7894         * src/pic16/main.c: corrected offsets of interrupt vectors in _pic16_genIVT()
7895         * src/pic16/pcode.c: fix to disable inserting BANKSEL directive
7896           before instructions that use the _STATUS register
7897
7898 2003-08-31  Bernhard Held <bernhard AT bernhardheld.de>
7899
7900         * src/mcs51/gen.c (freeAsmop): fixed off by one in stack offset (AOP_STK)
7901         * src/mcs51/gen.c (genNearPointerSet): added missing opcode for
7902         fetching of the pointer
7903         * src/mcs51/gen.c (genNearPointerGet): added reuse of PREG,
7904         copied from genNearPointerSet()
7905         * src/mcs51/gen.c (genNearPointerGet): don't pop r0/r1, if RESULTONSTACK
7906         * src/mcs51/gen.c: changed order of freeAsmop(left/right/result)-calls.
7907         If they pop r0/r1 they must be called in the opposite order than aopOp().
7908         * device/lib/_mullong.c: fixed for "--model-large --int-long-reent"
7909         (resp. --stack-auto), prepared for --xstack
7910
7911 2003-08-28  Frieder Ferlemann <Frieder.Ferlemann AT web.de>
7912
7913         * doc/sdccman.lyx: reverted tables to those in cvs 1.64
7914
7915 2003-08-28  Bernhard Held <bernhard AT bernhardheld.de>
7916
7917         * device/lib/_startup.c: quick & dirty fix for ds390/ds400;
7918         these ports have their own __sdcc_external_start()
7919
7920 2003-08-26  Bernhard Held <bernhard AT bernhardheld.de>
7921
7922         pic patch provided by Slade Rich <slade_rich AT yahoo.com>
7923         * src/pic/glue.c (pic14printPublics): fixed bug introduced when symbol
7924         type for bits was changed. It resulted in bit variables becoming
7925         global, which is not permitted in PIC 14 assembly output.
7926
7927 2003-08-23  Frieder Ferlemann <Frieder.Ferlemann AT web.de>
7928
7929         * doc/sdccman.lyx: various additions and updates. Rearranged sections
7930
7931 2003-08-22  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
7932
7933         Z80 and MCS51 linkers complaint if a public symbol is defined
7934         in more than one library module:
7935
7936         * as/mcs51/lklib.c
7937         * link/z80/lklib.c
7938         * as/mcs51/Makefile.in
7939
7940 2003-08-22  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
7941
7942         A few small changes that speed up the peephole optimizer.
7943
7944         * src/SDCCpeeph.c
7945
7946 2003-08-22  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
7947
7948         Try to make the peephole optimizer smarter by maintaining
7949         an association between the assembly source code and the
7950         iCodes that originated them. Put this information to use
7951         with a new peephole rule condition "notVolatile" so that
7952         the rules can be aggressive yet still safe.
7953
7954         * src/SDCCpeeph.c
7955         * src/SDCCpeeph.h
7956         * src/mcs51/gen.c
7957         * src/mcs51/peeph.def
7958
7959 2003-08-20  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
7960
7961         Fixed bug #741761
7962
7963         * src/mcs51/gen.c (aopForSym, leftRightUseAcc),
7964         * src/ds390/gen.c (aopForSym, leftRightUseAcc): preserve A and B
7965         if the left or right operand symbols have the accuse flag set.
7966
7967 2003-08-20  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
7968
7969         Changed the type of the result of the ! (NOT) operator to char;
7970         previously it returned the same type as the source. This allows
7971         us to eliminate all the genFloatNot functions (all of its target
7972         implementations were very buggy) since !float can use the same
7973         code as !long now.
7974
7975         * src/SDCCicode.c (ast2iCode): ! returns char
7976         * src/mcs51/gen.c (genNot, genNotFloat),
7977         * src/ds390/gen.c (genNot, genNotFloat),
7978         * src/z80/gen.c (genNot, genNotFloat),
7979         * src/pic/gen.c (genNot, genNotFloat),
7980         * src/pic16/gen.c (genNot, genNotFloat): eliminated genNotFloat
7981
7982 2003-08-19  Bernhard Held <bernhard AT bernhardheld.de>
7983
7984         pic patch provided by Slade Rich <slade_rich AT yahoo.com>
7985         1. Interrupt would not compile properly. Ensure PCLATH register is saved
7986            during interrupts. Ensure WSAVE is located at a shared bank address.
7987         2. Fixed page selection in some places
7988         3. Fixed BTFSS/C to where necessary use registers directly and not simply
7989            the registers name strings.
7990         4. Fixed "signed / unsigned compare" compiler warnings.
7991         5. The PIC port manages its own allocation of the general purpose
7992            registers, but makes no attempt to reuse them. As a result when
7993            compiling it soon runs out of general purpose registers. Some
7994            additional code was added to the files pcode.c and device.c to walk
7995            through the function call tree and rename the registers so that they
7996            get reused.
7997
7998         * src/pic/device.c
7999         * src/pic/gen.c
8000         * src/pic/glue.c
8001         * src/pic/pcode.c
8002         * src/pic/pcode.h
8003         * src/pic/ralloc.c
8004         * src/pic/ralloc.h
8005         * src/pic/genarith.c: Fixed problems with PIC 14 port in functions
8006         genPlus() & genMinus() when the result is the same as left or right
8007
8008 2003-08-18  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
8009
8010         * src/z80/gen.c (isUnsplitable, fetchPairLong): fixed bug #770454
8011
8012 2003-08-18  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
8013
8014         Made bitfield a distinct type from bit so that bitfields
8015         convert as per ANSI C and bits retain their traditional
8016         boolean style behaviour. Implemented bitfield support in
8017         the z80 port.
8018
8019         * src/SDCCsymt.h,
8020         * src/SDCCsymt.c,
8021         * src/SDCCast.c,
8022         * src/cdbFile.c,
8023         * src/mcs51/gen.c,
8024         * src/ds390/gen.c: bit v bitfield split
8025         * src/z80/gen.c: New support for bitfields
8026         * support/regression/tests/bitfields.c: reenabled z80,
8027         added more tests
8028
8029 2003-08-17  Frieder Ferlemann <Frieder.Ferlemann AT web.de>
8030
8031         Rules 246.x, 247.x relate to bitfields, the others speed up
8032         access to xdata mapped I/O devices.
8033
8034         * src/mcs51/peeph.def: added 26 peepholes 246.x - 248.x, 180.x
8035
8036 2003-08-16  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
8037
8038         Cleaned up genPackBits and genUnpackBits and added two helper
8039         functions, emitPtrByteGet & emitPtrByteSet. Added optimizations
8040         for literal assignments in genPackBits (thanks to Frieder for
8041         reminding me).
8042
8043         * src/mcs51/gen.c
8044         * src/ds390/gen.c
8045
8046 2003-08-16  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
8047
8048         Fixed bug #748310 (pointer to function type mishandled when the
8049         function name is omitted). Also fixed a SIGSEGV when a function
8050         attribute (reentrant, etc) is used on a non-function or on a
8051         function but misplaced before the parameter list.
8052
8053         * src/SDCC.y (abstract_declarator, abstract_declaractor2): fixed
8054         bug #748310
8055         * src/SDCC.y (declarator2_function_attributes): avoided SIGSEGV
8056         * support/Util/SDCCerr.h,
8057         * support/Util/SDCCerr.c: Added func attr misuse error msg
8058
8059 2003-08-13  Bernhard Held <bernhard AT bernhardheld.de>
8060
8061         Fixed bug #787649 by anonymous
8062         * src/SDCCglue.c (emitRegularMap): added emission of sloc for func ptr
8063         * src/ds390/gen.c (aopForSym): fixed func ptr in sloc
8064
8065 2003-08-14  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
8066
8067         Fixed numerous bitfield problems.
8068
8069         * src/SDCC.y: More bitfield related error checking
8070         * src/SDCCsymt.h,
8071         * src/SDCCsymt.c (compStructSize): fixed bitfield offset calc
8072         * support/Util/SDCCerr.h,
8073         * support/Util/SDCCerr.c: Added & edited some bitfield err msgs
8074         * src/mcs51/gen.c (genPackBits, genUnpackBits): fixed mask bugs
8075         * src/ds390/gen.c (genPackBits, genUnpackBits): fixed mask bugs
8076         * support/regression/tests/bitfields.c: tests added
8077
8078 2003-08-13  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
8079
8080         Made the constant following the "interrupt" keyword optional. If
8081         omitted, the function will not automatically be given an entry
8082         in the interrupt vector table (similar to #pragma NOIV, but
8083         less syntacticly kludgy). The interrupt number is also now
8084         range checked. Also fixed a bug in the high order bit example
8085         in the manual.
8086
8087         * src/SDCC.y
8088         * src/SDCCmem.c
8089         * src/SDCCglue.c
8090         * src/SDCCsymt.h
8091         * support/Util/SDCCerr.c
8092         * support/Util/SDCCerr.h
8093         * doc/sdccman.lyx
8094
8095 2003-08-13  Bernhard Held <bernhard AT bernhardheld.de>
8096
8097         * src/SDCCcse.c (algebraicOpts): fix bug converting op from value to type
8098         * src/SDCCicode.c (operandOperation): rewritten some ops
8099         (*, ==, unary_minus) to fix possible overflows and to accord with ANSI
8100         * src/SDCCsymt.c (computeType): literals are handled the same way as any
8101         other type
8102         * src/SDCCval.c (cheapestVal): removed, it doesn't accord with ANSI (can
8103         be re-activated by defining REDUCE_LITERALS)
8104         * src/SDCCval.c (constVal): fixed; hex and octal constants can be
8105         unsigned, but are signed by default
8106         * src/SDCCval.c (constVal): rearranged
8107         * src/SDCCval.c (valMod): preliminary fix
8108         * src/SDCCval.c (valCastLiteral): use TYPE_* types
8109         * support/regression/literalop.c: added, work in progress
8110
8111 2003-08-12  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
8112
8113         Generate warnings for useless declarations like "char data;"
8114         that don't do what new users expect.
8115
8116         * src/SDCC.y
8117         * support/Util/SDCCerr.h
8118         * support/Util/SDCCerr.c
8119
8120 2003-08-09  Bernhard Held <bernhard AT bernhardheld.de>
8121
8122         * src/SDCCval.c (valMult): fix overflow detection of negative int
8123
8124 2003-08-07  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
8125
8126         * src/z80/ralloc.c (joinPushes): made compatible with new signedness
8127
8128         Changes to support big endian targets:
8129
8130         * src/ports.h
8131         * src/SDCCglue.c
8132         * src/avr/main.c
8133         * src/ds390/main.c
8134         * src/izt/i186.c
8135         * src/mcs51/main.c
8136         * src/pic/main.c
8137         * src/pic16/main.c
8138         * src/xa51/main.c
8139         * src/z80/main.c
8140
8141 2003-08-06  Bernhard Held <bernhard AT bernhardheld.de>
8142
8143         * src/SDCCval.c (cheapestVal): changed behaviour to the same as constVal()
8144         * device/lib/time.c: fixed warning "integer overflow in expression"
8145
8146 2003-08-05  Bernhard Held <bernhard AT bernhardheld.de>
8147
8148         * src/SDCCval.c (cheapestVal, valueFromLit): use TYPE_* types
8149         * src/SDCCval.c (constVal): changed default to signed; hex and octal
8150         constants are unsigned; added recognition of "u" flag for unsigned
8151         * src/SDCCval.c (valMult): fixed signdness, added warning for overflow
8152         * src/SDCCval.c (valDiv, valMod): fixed signdness
8153         * src/SDCCicode.c (operandOperation): fixed critical typo; fixed
8154         signedness of modulo, left and right shift
8155         * support/Util/SDCCerr.c: added warning "integer overflow in expression"
8156         * support/Util/SDCCerr.h: added warning W_INT_OVL
8157         * src/SDCCast.c (decorateType): fixed gcc3.3 warning
8158         * src/SDCCast.c (ast_print): improved output of constants
8159
8160 2003-08-04  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
8161
8162         Fixed some warnings when building with MSVC:
8163
8164         * as\mcs51\asdata.c
8165         * as\z80\asdata.c
8166         * as\mcs51\asm.h
8167         * as\z80\asm.h
8168         * link\z80\aslink.h
8169         * link\z80\lkdata.c
8170         * link\z80\lkeval.c
8171         * link\z80\lkgb.c
8172         * link\z80\lkihx.c
8173         * link\z80\lks19.c
8174         * link\z80\lksym.c
8175         * support\cpp2\cpplib.c
8176         * src\ds390\gen.c
8177         * src\mcs51\gen.c
8178
8179 2003-08-03  Bernhard Held <bernhard AT bernhardheld.de>
8180
8181         * src/SDCCast.c (constExprTree): fix bug #781827 by Carl Worth <cworth AT isi.edu>
8182
8183 2003-08-01  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
8184
8185         * support\librarian\clean.mk: Do not remove Makefile.
8186         * support\librarian\Makefile: added.
8187
8188 2003-08-01  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
8189
8190         Added librarian to MSVC build:
8191         * all.dsp
8192         * sdcc.dsw
8193         * support\librarian\librarian.dsp
8194
8195         'configure' not needed for librarian, removed:
8196         * support\librarian\configure
8197         * support\librarian\configure.in
8198         * support\librarian\config_in.h
8199         * support\librarian\Makefile.in
8200
8201         Hopefully these ones built the librarian and the rest of sdcc properly:
8202         * Makefile
8203         * Makefile.common.in
8204
8205         Messed up 'configure', so revert to previous version:
8206         * configure
8207         * configure.in
8208
8209 2003-07-31  Bernhard Held <bernhard AT bernhardheld.de>
8210
8211         * src/SDCCicode.c (operandOperation): 3. fix, this time for Alpha; ULONG has 64 bits
8212         there, while the mantissa of a double is "only" 53 bits wide.
8213
8214 2003-07-31  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
8215
8216         Adding sdcclib to the build.  MSVC project coming soon.
8217         Files added/changed:
8218
8219         * support\librarian\clean.mk
8220         * support\librarian\configure
8221         * support\librarian\configure.in
8222         * support\librarian\config_in.h
8223         * support\librarian\Makefile.bcc
8224         * support\librarian\Makefile.in
8225         * support\librarian\sdcclib.c
8226         * Makefile.bcc
8227         * Makefile
8228         * Makefile.common.in
8229         * configure
8230         * configure.in
8231
8232 2003-07-29  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
8233
8234         Linker now complaints if linked modules have conflicting options, for
8235         example, one compiled using --model-large and another one compiled with
8236         --model-small.  The following files were modified:
8237
8238         * as\mcs51\asdata.c
8239         * as\mcs51\aslink.h
8240         * as\mcs51\asm.h
8241         * as\mcs51\asmain.c
8242         * as\mcs51\asout.c
8243         * as\mcs51\i51pst.c
8244         * as\mcs51\lkdata.c
8245         * as\mcs51\lklibr.c
8246         * as\mcs51\lkmain.c
8247         * as\z80\asdata.c
8248         * as\z80\asm.h
8249         * as\z80\asmain.c
8250         * as\z80\asout.c
8251         * as\z80\z80pst.c
8252         * link\z80\aslink.h
8253         * link\z80\lkdata.c
8254         * link\z80\lklibr.c
8255         * link\z80\lkmain.c
8256         * src\SDCCglue.c
8257
8258 2003-07-28  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
8259
8260         *link/z80/aslink.h, link/z80/lklibr.c, as/mcs51/aslink.h,
8261         as/mcs51/lklibr.c: Generate a warning when a library is not found.
8262
8263 2003-07-28  Bernhard Held <bernhard AT bernhardheld.de>
8264
8265         * src/z80/mappings.i: fix _mul[us][int,long] entries
8266
8267 2003-07-26  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
8268
8269         *src/SDCCmain.c: do not search for crt0.o when using --nostdlib
8270
8271 2003-07-24  Bernhard Held <bernhard AT bernhardheld.de>
8272
8273         * src/SDCCicode.c (operandOperation): really fixed problem with bitops
8274         * support/regression/tests/bitopcse.c: added
8275         fixed warning:
8276         * src/avr/gen.c:
8277         * src/pic/gen.c:
8278         * src/pic16/gen.c:
8279         * src/z80/gen.c:
8280         * src/xa51/gen.c:
8281
8282 2003-07-24  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
8283
8284         added support for new library format to z80, gbz80 linkers:
8285         *link/z80/aslink.h
8286         *link/z80/lklex.c
8287         *link/z80/lklib.c
8288         *link/z80/lklist.c
8289
8290 2003-07-24  Bernhard Held <bernhard AT bernhardheld.de>
8291
8292         * src/SDCCicode.c (operandOperation): fixed problem with bitops and 0xffffffff;
8293         after {double d = 0xffffffff; long l = d;} l will be 0x80000000 (LONG_MIN)
8294
8295 2003-07-23  Bernhard Held <bernhard AT bernhardheld.de>
8296
8297         added DUMMY_READ_VOLATILE:
8298         * src/SDCC.y:
8299         * src/avr/gen.c:
8300         * src/xa51/gen.c:
8301         * src/z80/gen.c:
8302         * src/pic/gen.c:
8303         * src/pic16/gen.c:
8304         * src/mcs51/gen.c:
8305         * src/ds390/gen.c:
8306         * src/SDCCcse.c (algebraicOpts): many improvements
8307         * src/SDCCcse.h: removed algebraicOpts()
8308         * src/SDCCicode.c (picDummyRead): added
8309
8310 2003-07-23  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
8311
8312         * as/mcs51/lkmem.c: Changed message "Insufficient DRAM memory" to
8313         "Insufficient space in data memory".
8314
8315 2003-07-20  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
8316
8317         * src/mcs51/gen.c: fixed bug #771358
8318         * src/z80/gen.c: fixed bug #759087
8319
8320 2003-07-20  Bernhard Held <bernhard AT bernhardheld.de>
8321
8322         * src/pic16/glue.c: minor cleanup by Vangelis
8323
8324 2003-07-19  Frieder Ferlemann <Frieder.Ferlemann AT web.de>
8325
8326         * device/include/regc515c.h: fixed #758477
8327         * device/lib/_gptrget.c: saving some cycles in generic pointer get
8328         * device/lib/_gptrput.c: saved a few bytes
8329         * my tab spacing is 8, yours too?)
8330         * device/lib/_ser.c: process RX bytes earlier than TX bytes
8331         * device/lib/serial.c: process RX bytes earlier than TX bytes
8332         * src/mcs51/gen.c(genGenPointerGet/Set): removed writing of type after postincrement
8333
8334 2003-07-18  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
8335
8336         * src/z80/gen.c: fixed some right shift bugs (#772726 among them)
8337
8338 2003-07-17  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
8339
8340     * link/z80/lklibr.c: fixed bug when there is a '.' in a library path.
8341
8342 2003-07-17  Bernhard Held <bernhard AT bernhardheld.de>
8343
8344         * device/lib/Makefile.in: bad fix, reverted to 1.43
8345
8346 2003-07-16  Bernhard Held <bernhard AT bernhardheld.de>
8347
8348         * device/lib/Makefile.in: added missing z80 object files
8349
8350 2003-07-14  Bernhard Held <bernhard AT bernhardheld.de>
8351
8352         * src/SDCCcse.c (algebraicOpts): CSE fun with &|^ and 0x00/0xff literals
8353         pic16 progress by Vangelis:
8354         * src/SDCCglobl.h:
8355         * src/SDCCmain.c:
8356         * src/pic/Makefile:
8357         * src/pic:
8358         * pic/Makefile:
8359         * pic16/device.c:
8360         * pic16/device.h:
8361         * pic16/gen.c:
8362         * pic16/gen.h:
8363         * pic16/genarith.c:
8364         * pic16/glue.c:
8365         * pic16/main.c:
8366         * pic16/pcode.c:
8367         * pic16/pcode.h:
8368         * pic16/pcodepeep.c:
8369         * pic16/peeph.def:
8370
8371 2003-07-13  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
8372
8373     * src/SDCCmain.c, src/SDCCglobl.h: added option --no-std-crt0
8374
8375 2003-07-12  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
8376
8377     * sdcc.dsw, all.dsp, link/z80/linkgbz80.dsp, as/z80/as-gbz80.dsp:
8378     added gbz80 build to MSVC project.
8379     * src/SDCCmain.c, src/SDCCglue.c, src/z80/main.c, src/z80/z80.dsp,
8380     link/z80/aslink.h, linkz80.dsp: cleaned up z80 and gbz80 asm files
8381     from 8051 stuff and setup so it links using a .lnk file.
8382
8383 2003-07-06  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
8384
8385     * support/librarian/sdcclib.c: sdcc librarian.
8386     * as/mcs51/aslink.h, as/mcs51/lklib.c: Support for libraries created
8387     with sdcclib.
8388
8389 2003-07-03  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
8390
8391     * as/mcs51/lkmain.c: properly handle extensions in function afile.
8392
8393 2003-07-02  Borut Razem <borut.razem AT siol.net>
8394
8395         * src/port.h, src/SDCCmain.c, src/pic/glue.h, src/pic/main.c,
8396         src/pic16/glue.h, sdcc/src/pic16/main.c, src/izt/i186.c,
8397         src/izt/tlcs900h.c, src/avr/main.c, src/ds390/main.c, src/mcs51/main.c,
8398         src/xa51/main.c, src/z80/main.c:
8399         virtualization of glue() function: each port has it's own glue function,
8400         which is accessed by do_glue function pointer in PORT.general structure
8401
8402 2003-07-01 Kevin Vigor <kevin AT vigor.nu>
8403
8404         * DS800C400 fun, improved ROM interface and tinibios.
8405
8406 2003-06-27 Kevin Vigor <kevin AT vigor.nu>
8407
8408         * More support for DS80C400. Now includes beginning of interface to ROM.
8409
8410 2003-06-25  Bernhard Held <bernhard AT bernhardheld.de>
8411
8412         * src/mcs51/gen.c (gencjneshort): fixed bug #760345
8413
8414 2003-06-20  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
8415
8416         * as/mcs51/lkaomf51.c: Make sure the size of the last procedure is correct.
8417
8418 2003-06-19  Borut Razem <borut.razem AT siol.net>
8419
8420         * src/z80/main.c: fixed Z80 port again: missing -k library paths in linker command line
8421
8422 2003-06-19  Borut Razem <borut.razem AT siol.net>
8423
8424         * src/SDCCutil.h, src/SDCCutil.c, src/SDCCglobl.h, src/SDCCmain.c, src/z80/main.c:
8425         fixed Z80 port - crt0.o: cannot open.
8426
8427 2003-06-19  Bernhard Held <bernhard AT bernhardheld.de>
8428
8429         * support/Util/MySystem.c (merge_command): revert bad fix
8430
8431 2003-06-18  Borut Razem <borut.razem AT siol.net>
8432
8433         * src/SDCC.lex, src/SDCCmain.c: fixed some warnings, introduced with changes made 15.06.1003
8434
8435 2003-06-18  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
8436
8437         * src/SDCCglobl.h, src/SDCCmain.c, doc/sdccman.lyx:
8438         option --use-stdout sends errors to stdout instead of stderr.
8439
8440 2003-06-18  Bernhard Held <bernhard AT bernhardheld.de>
8441
8442         * support/Util/MySystem.c (merge_command): quick fix for Linux segfault with \"cmd\" arg
8443
8444 2003-06-15  Borut Razem <borut.razem AT siol.net>
8445
8446         * support/cpp2/sdcc.h: HAVE_DOS_BASED_FILE_SYSTEM defined for _WIN32
8447         * src/SDCC.lex: cloneXxx and copyAndFreeXxx functions for options and optimize stack handling
8448         * src/SDCCglobl.h, src/SDCCmain.c, src/ds390/main.c, src/mcs51/main.c, src/z80/main.c:
8449         fixed width array of pointers replaced with sets;
8450         multiple include and lib paths ared transferred to preprocessor and linker
8451         * src/SDCCset.c, src/SDCCset.h: added function setFromSetNonRev() and mergeSets()
8452         * src/SDCCsymt.c: reimplemented function inCalleeSaveList() by using sets instead
8453         fixed width array of pointers
8454         * src/SDCCutil.c, src/SDCCutil.h: added functions fputStrSet(), appendStrSet(), joinStrSet();
8455         removed functions addToList(), join(), joinn(), pathCharsEquivalent(), pathCharTransform(),
8456         fixupPath(), getPathDifference()
8457         * src/ds390/gen.c, src/mcs51/gen.c: reimplemented function  inExcludeList() by using sets instead
8458         fixed width array of pointers
8459
8460 2003-06-11  Bernhard Held <bernhard AT bernhardheld.de>
8461
8462         * src/pic16/ralloc.c: fix warnings
8463         * src/pic16/pcode.c: fix warning
8464
8465 2003-06-10  Scott Dattalo  <scott AT dattalo.com>
8466
8467          Scott D. for Vangelis Rokas (vrokas AT otenet.gr). I (scott) don't
8468         know all the details, but essentially this set of changes enable
8469         the pic16 port to generate movff instructions and generate assembler
8470         directives,
8471         * src/SDCCmain.c:
8472         * src/pic16/gen.c:
8473         * src/pic16/glue.c:
8474         * src/pic16/pcode.c:
8475         * src/pic16/device.c:
8476         * src/pic16/main.c:
8477         * src/pic16/pcode.h:
8478         * src/pic16/pcoderegs.c:
8479         * src/pic16/ralloc.c:
8480         * src/pic16/ralloc.h:
8481
8482 2003-06-08  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
8483
8484         * support/Util/SDCCerr.c, src/SDCCglobl.h, src/SDCCmain.c, doc/sdccman.lyx:
8485         added option --vc, so sdcc errors and warnings are compatible with
8486         Microsoft Visual Studio.
8487
8488 2003-06-07  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
8489
8490         * device/lib/_atof.c, device/lib/Makefile.in, device/include/stdlib.h,
8491           device/lib/libfloat.lib: added atof function.
8492
8493 2003-06-04  Bernhard Held <bernhard AT bernhardheld.de>
8494
8495         * doc/sdccman.lyx: updated to Lyx 1.3
8496         * doc/cdbfileformat.lyx: updated to Lyx 1.3
8497         * doc/test_suite_spec.lyx: updated to Lyx 1.3
8498         * doc/Makefile: added fix for the \tabularnewline problem, thanks to Jesus
8499
8500 2003-06-03  Bernhard Held <bernhard AT bernhardheld.de>
8501
8502         * src/SDCCpeeph.c: separate peepRules2pCode() for pic16 by "Vangelis Rokas" <vrokas AT otenet.gr>
8503
8504 2003-06-02  Frieder Ferlemann <Frieder.Ferlemann AT web.de>
8505
8506         * doc/sdccman.lyx: cvs revision keywords, passing pdf information in latex preamble,
8507           additions to the "related tools/documentation" section
8508
8509 2003-06-02  Bernhard Held <bernhard AT bernhardheld.de>
8510
8511         * src/SDCCglue.c (tempfileandname): added check for missing TMP/TEMP/TMPDIR variable
8512
8513 2003-05-29  Bernhard Held <bernhard AT bernhardheld.de>
8514
8515         * src/pic/device.c: added 16F819, patch by "David I. Lehn" <dlehn AT vt.edu>
8516         * src/SDCCcse.c (algebraicOpts): fixed "c * 1"
8517
8518 2003-05-28  Bernhard Held <bernhard AT bernhardheld.de>
8519
8520         * doc/sdccman.lyx: fix double dash and other minor things
8521         * doc/Makefile: fix double dash
8522
8523 2003-05-28  Karl Bongers(patches from Martin Helmling)
8524         * debugger/mcs51/sdcdb.c,cmd.c,break.c and .h files. Martin adds
8525           condition and ignore commands.
8526
8527 2003-05-28  Frieder Ferlemann <Frieder.Ferlemann AT web.de>
8528
8529         * doc/sdccman.lyx: Changes all over, index improved, smaller margins. The manual
8530           is in parts still quite out of date, I did changes as far as I felt makes sense
8531           for a non-native english speaker.
8532           Please feel free to add to the manual or to correct my changes.
8533         * doc/Makefile: undid touching the date of intermediate tex files.
8534
8535 2003-05-26  Frieder Ferlemann <Frieder.Ferlemann AT web.de>
8536
8537         * doc/sdccman.lyx: Manual has an index now
8538
8539 2003-05-25  Bernhard Held <bernhard AT bernhardheld.de>
8540
8541         Finalize muluint/mulsint and mululong/mulslong merging:
8542         * device/lib/_mulint.c
8543         * device/lib/_mullong.c
8544         * device/lib/gbz80/mul.s
8545         * device/lib/gbz80/stubs.s
8546         * device/lib/z80/mul.s
8547         * device/lib/z80/stubs.s
8548         * src/SDCCsymt.c (initCSupport)
8549
8550 2003-05-25  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
8551
8552         * as/mcs51/lkaomf51.c: Address space 'z' was missing.
8553         * src/avr/avr.dsp, src/ds390/ds390.dsp, src/mcs51/mcs51.dsp,
8554           src/pic/pic.dsp, src/pic16/pic16.dsp, src/xa51/xa51.dsp,
8555           src/x80/z80.dsp: peep.rul is bigger now, so /Zm1000 is used
8556           instead of /Zm500.
8557
8558 2003-05-25  Frieder Ferlemann <Frieder.Ferlemann AT web.de>
8559
8560         * src/mcs51/peeph.def: added rules 244.x, 245.x. Although they pass
8561           the regression tests I'm not brave enough to enable 245.b, 245.c
8562         * doc/sdccman.lyx: added latex preamble for hyperref package.
8563           Using pdflatex this will give you a hyperlinked pdf file with
8564           bookmarks. (prepend '%' before /usepackage if this breaks something)
8565
8566 2003-05-24  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
8567
8568          * doc/sdccman.lyx: updated information about .adb files (fixed bug 742649)
8569
8570 2003-05-22  Bernhard Held <bernhard AT bernhardheld.de>
8571
8572         * src/pic16/pcode.c (pic16_get_op_from_instruction): fixed a gcc 3.x warning
8573
8574 2003-05-21    <johan AT balder>
8575
8576         * src/SDCCglue.c (printIval): fixed bug #739934
8577
8578 2003-05-19  Bernhard Held <bernhard AT bernhardheld.de>
8579
8580         Applied patch from bug 737905 (renamed yylineo to mylineno):
8581         * src/altlex.c
8582         * src/SDCCast.c
8583         * src/SDCglobl.h
8584         * src/SDCC.lex
8585         * src/SDCCsymt.c
8586         * src/SDCCval.c
8587         * src/pic16/pcode.c: Cleaned warnings
8588         * src/pic16/pcodeflow.c: Cleaned warnings
8589         * src/pic16/pcoderegs.c: Cleaned warnings
8590
8591 2003-05-19  Scott Dattalo  <scott AT dattalo.com>
8592
8593         * src/pic16/pcode.c: Cleaned warnings
8594         * src/pic16/pcodepeep.c: Cleaned warnings
8595         * src/pic16/ralloc.c: Cleaned warnings
8596
8597 2003-05-19  Bernhard Held <bernhard AT bernhardheld.de>
8598
8599         * doc/sdccman.lyx: fixed bug 739745
8600         * src/pic16/pcode.c (pic16_get_op): fixed warning on alpha
8601
8602 2003-05-18  Bernhard Held <bernhard AT bernhardheld.de>
8603
8604         * src/port.h: removed DEFAULT_PORT, it's not yet pic16 ;-)
8605         it can be defined with CFLAGS when running configure
8606         * src/SDCCmain.c: fixed compiling + linking with object files
8607
8608 2003-05-18  Vangelis Rokas (vrokas AT otenet.gr)
8609
8610         * configure.in: configure for pic16 port,
8611             added --disable-pic16-port
8612         * sdccconf_in.h: added macro OPT_DISABLE_PIC16
8613         * src/SDCCmain.c: linkOptions is changed to set *,
8614             added if/endif conditional macros to remove options help
8615             messages from optionsTable when a port is not configured, added
8616             support for the PIc16 port in the ports table, when executing
8617             the compiler with no port specified on command line, a default
8618             port is selected with the new macro DEFAULT_PORT which is
8619             defined in port.h, in setDefaultOptions() linkOptions is removed
8620             from initialization assignment, since now it is a set,
8621             parseCmdLine uses setParseWithComma for linkOptions, in
8622             linkEdit() linkOptions are accessed with new function indexSet()
8623             which returns the i'th item of a set variable. See SDCCset.c, in
8624             linkEdit() when calling buildCmdLine(), added linkOptions as
8625             last argument. Now users can pass arguments to gplink via the
8626             -Wl option, main() uses pic16glue() to glue up pic16 programs
8627         * src/SDCCpeeph.c: various changes to support pic16
8628         * src/SDCCset.c: added function  void *indexSet(set *, int)  to
8629             return the i'th item of the set
8630         * src/SDCCset.h: added function prototype for indexSet()
8631         * src/SDCCsymt.c: in checkSClass(), added support for PIC16
8632         * src/clean.mk: added pic16 in CLEANALLPORTS variable
8633         * src/port.h: added TARGET_ID_PIC16,TARGET_IS_PIC16 macro,
8634             added macro DEFAULT_PORT
8635         * src/pic/main.c: corrected arguments of gplnk in _linkCmd
8636         * src/pic16/gen.c: bug fix in genCpl(), now the correct code is
8637             generated
8638         * src/pic16/glue.c: commented out some error producing lines
8639         * src/pic16/main.c: __config directives are commented out to stop
8640             gpasm complaining and test the linkage with gplink, _linkCmd and
8641             _asmCmd changed to be more gplink and gpasm friendly
8642         * src/pic16/peeph.def: peep rule 3 is commented out, since it
8643             produced an error when parsed, peep rule 12 is added to utilize
8644             movff, but it is commented out since the pCode does not support
8645             yet a command with 2 address arguments
8646
8647 2003-05-18    <johan AT balder>
8648
8649         * src/ds390/gen.c (genArrayInit): removed obsolete and buggy ARRAYINIT
8650         * src/ds390/main.c (genArrayInit): removed obsolete and buggy ARRAYINIT
8651 2003-05-17  Karl Bongers(apply patches from Martin Helmling)
8652
8653         * debugger/mcs51/sdcdb.c,cmd.c,break.c and .h files.
8654   Added feature to script commands from file.
8655
8656 2003-05-14  Bernhard Held <bernhard AT bernhardheld.de>
8657
8658         * device/lib/_strtok.c: fixed bug #734355 by Lenny Story and Tim Woodall
8659         * src/SDCCutil.c: include ctype.h for win32
8660
8661 2003-05-13  Bernhard Held <bernhard AT bernhardheld.de>
8662
8663         * src/pic16/*: removed CR from many files, reported by Vangelis Rokas
8664
8665 2003-05-12  Karl Bongers(apply development patches from Martin Helmling)
8666
8667         * debugger/mcs51/sdcdb.c,simi.c,cmd.c,break.c and .h files.
8668   Fixed so you can set breakpoints prior to run, run does not stop
8669   on entry now.  Add tbreak.  Other enhancements and fixes for use
8670   with ddd.
8671
8672 2003-05-12  Borut Razem <borut.razem AT siol.net>
8673
8674         * src/SDCCmain.c: fixed the problem with searching the DATADIR as the last resort on *nix
8675
8676 2003-05-11  Borut Razem <borut.razem AT siol.net>
8677
8678         * src/SDCCutil.c: WIN32 version of getBinPath() calls GetModuleFileName() to determine
8679         the path of bin directory, so that PATH is the only env. variable, which has to be set
8680         in case of standard installation.
8681         * src/ds390/ds390.dsp: increased value of /Zm option to 1000
8682         * src/pic/main.c: add quotes to file name parameters for gplink and gpasm
8683         * src/SDCCglobl.h, src/SDCCmain.c, doc/sdccman.lyx: added --print-search-dirs command line option
8684
8685 2003-05-04  Bernhard Held <bernhard AT bernhardheld.de>
8686
8687         * src/SDCCmain.c (linkEdit): fixed buffer overflow for gbz80
8688         * support/regression/Makefile: inter-port-clean is no longer nesessary, the
8689         temp files are in the port dir; clean the gen/test directory when
8690         generating new test.c
8691         * support/regression/ports/host/spec.mk: defined OBJEXT for target clean
8692         * support/regression/tests/vaargs.c: fixed gcc 3.3 warning
8693         * support/regression/tests/zeropad.c: added
8694
8695 2003-05-09    <johan AT balder>
8696
8697         * src/SDCCglue.c: fixed bug #597940
8698
8699 2003-05-05  Karl Bongers(apply patches from Martin Helmling)
8700
8701         * debugger/mcs51/sdcdb.c,simi.c,cmd.c,symtab.c and .h files.
8702   cache sfr, optimize next,step, fix off by one sourceline,
8703   support ddd list function.
8704         * sim/ucsim/cmd.src/newcmd.cc - small fix for sdcdb use.
8705
8706 2003-05-04  Bernhard Held <bernhard AT bernhardheld.de>
8707
8708         * support/regression/HTMLgen.py: added compare_s2f()
8709         * support/regression/Makefile: redo 1.27
8710         * support/regression/generate-cases.py: redo 1.5
8711
8712 2003-04-30  Bernhard Held <bernhard AT bernhardheld.de>
8713
8714         * support/regression/tests/float.c: workaround 33 bit hex constant
8715         * support/regression/tests/simplefloat.c: fix division for host
8716
8717 2003-04-29  Scott Dattalo  <scott AT dattalo.com>
8718
8719         * src/pic/pcoderegs.c Applied patch from Jim Hawkridge <jim AT jimhawkridge.uk.eu.org>
8720         that tame's the PIC's over-aggressive optimizer.
8721
8722 2003-04-29  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
8723
8724          * src.dsw, link/z80/aslink.h, link/z80/linkz80.dsp: z80 linker
8725          support for MSVC.
8726
8727 2003-04-29  Kevin Vigor <kevin AT vigor.nu>
8728
8729         Initial support for DS80C400. "Hello world" runs on TINIm400
8730         (with polled I/O).
8731
8732 2003-04-28  Karl Bongers(apply patches for Martin Helmling)
8733
8734          * debugger/mcs51/sdcdb.c,simi.c,cmd.c,symtab.c and .h files.
8735          * Some notes on ddd usage added in debugger/README
8736          Martin Helmling adding more features and fixes for ddd GUI debugger.
8737          Code added for nexti, stepi, up, down, and other adjustments.
8738
8739 2003-04-28  Scott Dattalo  <scott AT DATTALO.COM>
8740
8741         * src/pic/pCodepeep.c non-wildcard asmops are now handled
8742         * src/pic/peeph.def Added two rules to optimize carry manipulation
8743         * src/pic/* removed debug printfs
8744
8745 2003-04-28  Bernhard Held <bernhard AT bernhardheld.de>
8746
8747         * debugger/mcs51/cmd.c: added header newalloc.h
8748
8749 2003-04-26  Bernhard Held <bernhard AT bernhardheld.de>
8750
8751         * as/Makefile: new EXEEXT
8752         * as/z80/Makefile: remove trailing slash of BUILDIR
8753         * as/z80/clean.mk: new EXEEXT
8754         * Makefile.common.in: add to CFLAGS (and others), don't replace it
8755         * support/cpp2/Makefile.in: new EXEEXT
8756         * src/pic/glue.c (pic14emitRegularMap): fixed warning
8757
8758 2003-04-24  Bernhard Held <bernhard AT bernhardheld.de>
8759
8760         Cygwin's gcc always appends .exe: 'gcc -o a a.c' creates a.exe;
8761         EXEEXT was introduced to fix all related problems with targets
8762         "clean", "install" and "uninstall"; a couple of further flaws
8763         especially with "clean" have been fixed too
8764         * as/mcs51/Makefile.in
8765         * as/mcs51/clean.mk
8766         * as/z80/Makefile
8767         * Makefile
8768         * clean.mk
8769         * debugger/mcs51/Makefile.in
8770         * debugger/mcs51/clean.mk
8771         * link/z80/Makefile
8772         * link/z80/Makefile.in
8773         * link/z80/clean.mk
8774         * link/Makefile
8775         * packihx/Makefile.in
8776         * packihx/clean.mk
8777         * sim/ucsim/Makefile
8778         * sim/ucsim/clean.mk
8779         * sim/ucsim/avr.src/Makefile.in
8780         * sim/ucsim/avr.src/clean.mk
8781         * sim/ucsim/s51.src/Makefile.in
8782         * sim/ucsim/s51.src/clean.mk
8783         * sim/ucsim/xa.src/Makefile.in
8784         * sim/ucsim/xa.src/clean.mk
8785         * sim/ucsim/z80.src/Makefile.in
8786         * sim/ucsim/z80.src/clean.mk
8787         * sim/ucsim/main_in.mk
8788         * sim/ucsim/packages_in.mk
8789         * sim/ucsim/gui.src/Makefile.in
8790         * sim/ucsim/gui.src/serio.src/Makefile.in
8791         * sim/ucsim/gui.src/serio.src/clean.mk
8792         * src/Makefile.in
8793         * src/clean.mk
8794         * support/cpp2/Makefile.in
8795         * support/cpp2/clean.mk
8796         * support/makebin/Makefile
8797         * support/makebin/clean.mk
8798         * support/scripts/sdcc_mingw32: --program-suffix no longer needed
8799         * doc/sdccman.lyx: --program-suffix no longer needed
8800
8801 2003-04-23  Karl Bongers(apply patches for Martin Helmling)
8802
8803          * debugger/mcs51/sdcdb.c,simi.c,cmd.c,..
8804          Martin Helmling added support for ddd GUI debugger.
8805          Code added to display assembly, set variables, and other commands
8806          to interface to ddd.
8807
8808 2003-04-23  Bernhard Held <bernhard AT bernhardheld.de>
8809
8810         * as/Makefile: fix target clean
8811         * as/clean.mk: fix target clean
8812         * as/z80/clean.mk: fix target clean
8813
8814 2003-04-22  Bernhard Held <bernhard AT bernhardheld.de>
8815
8816         * Makefile.common.in: added  AT EXEEXT AT
8817         * configure.in: removed all mingw32 stuff
8818         * configure: rebuilt from configure.in
8819         * doc/sdccman.lyx: updated section "installation"
8820         * support/scripts/sdcc_mingw32: adapted to configure
8821         * support/scripts/sdcc_cygwin_mingw32: added
8822
8823 2003-04-22  Scott Dattalo  <scott AT dattalo.com>
8824
8825         * src/pic Added object file support for the PIC port
8826         * src/pic Applied patch from Craig Franklin (this started the object file support)
8827         * src/regression Updated the PIC regression tests for object files
8828
8829 2003-04-20  Borut Razem <borut.razem AT siol.net>
8830
8831         * sdcc/as/mcs51/lklex.c: make getfid() more robust and fixed gcc warning:
8832           lklex.c: In function `getfid':
8833           lklex.c:203: warning: array subscript has type `char'
8834         * src/SDCCglobl.h: small change in stack handling macros, to avoid crash when compiled
8835           with MSVC with global optimization enabled (probably an cl compiler bug ;-)
8836         * support/Util/SDCCerr.c, support/Util/SDCCerr.h: added function fatal(), called from
8837           stack handling macros
8838
8839 2003-04-19  Borut Razem <borut.razem AT siol.net>
8840
8841         * "handling space characters in file path" task:
8842         * src/SDCCmacro.c: fixed bug in handlig quote at the end of line
8843         * support/Util/BuildCmd.c: define par as NULL if parameter value is invalid
8844         * support/Util/MySystem.h: make it self-sufficient
8845         * src/avr/main.c, src/ds390/main.c, src/mcs51/main.c, src/pic/main.c, src/xa51/main.c,
8846           src/z80/main.c, sdcc/as/mcs51/lklex.c:
8847           handling space characters in file path
8848         * src/SDCCmain.c: introduced setDataPaths() function, {datadir} macro
8849           (it will be used by assemblers, which have their own includes, e.g. gpasm)
8850         * support/Util/MySystem.c: handling space characters in executable's path
8851
8852 2003-04-19  Bernhard Held <bernhard AT bernhardheld.de>
8853
8854         * as/z80/Makefile: fix permanent rebuild of z80
8855         * sim/ucsim/gui.src/Makefile.in: target "install" builds the same packages as target "all"
8856         * support/regression/tests/bitfields.c: added Johan's bitfields.c
8857
8858 2003-04-18      Kevin Vigor <kevin AT vigor.nu>
8859
8860         * src/SDCCopt.c: add special case optimization to replace modulo by
8861           a power of two with a bitwise AND.
8862
8863 2003-04-18    <johan AT balder>
8864
8865         * src/mcs51/gen.c (getFreePtr): fixed bug #635354
8866
8867 2003-04-17    <johan AT balder>
8868
8869         * src/mcs51/ralloc.c (packRegsForAssign): fixed bug #716790 and removes lot's of redundant register usage around function calls
8870         * src/mcs51/ralloc.c (packRegisters): fixed bug #720667
8871
8872 2003-04-13  Borut Razem <borut.razem AT siol.net>
8873
8874         * doc/sdccman.lyx: updated info about #pragma SAVE/RESTORE nesting
8875         * configure.in, configure: fixed problems on cygwin/WinCVS environmet with ports.* line endings;
8876           fixed mingw problem in adl_NORMALIZE_PATH
8877
8878 2003-04-12  Borut Razem <borut.razem AT siol.net>
8879
8880         * fixed "#pragma SAVE/RESTORE can not be nested":
8881         * src/SDCC.lex: reworked pragma handling functions
8882         * sdcc/src/SDCCglobl.h: reworked stack handling macros
8883         * support/Util/SDCCerr.c, support/Util/SDCCerr.h: added E_STACK_VIOLATION error
8884
8885 2003-04-12  Bernhard Held <bernhard AT bernhardheld.de>
8886
8887         * src/SDCCutil.c (pathEquivalent): defined but not used
8888         * debugger/mcs51/sdcdb.c: replace SDCC_LIB_DIR
8889         * configure.in: remove sdcc_datadir, sdcc_lib_dir and sdcc_include_dir
8890         * configure: rebuilt from configure.in
8891         * sdccconf_in.h: remove SDCC_LIB_DIR and SDCC_INCLUDE_DIR
8892         * sdcc_vc_in.h: remove SDCC_LIB_DIR and SDCC_INCLUDE_DIR
8893         * device/include/Makefile.in: replace sdcc_datadir
8894         * device/lib/Makefile.in: replace sdcc_datadir
8895         * Makefile.common.in: add LDFLAGS from configure
8896         * packihx/Makefile.in: use LDFLAGS
8897         * src/Makefile.in: use LDFLAGS
8898         * support/cpp2/Makefile.in: add LDFLAGS from configure
8899         * support/makebin/Makefile: use LDFLAGS
8900         * .version: bumped version number to 2.3.5
8901
8902 2003-04-12  Borut Razem <borut.razem AT siol.net>
8903
8904         * completed "different paths" task:
8905         * src/SDCCmacro.c: fixed bug in handling quotes
8906         * src/SDCCutil.c, src/SDCCutil.c: rewritten getPrefixFromBinPath()
8907         * src/SDCCmain.c: _discoverPaths() replaced with setBinPaths(), setIncludePath() and setLibPath()
8908
8909 2003-04-12  Bernhard Held <bernhard AT bernhardheld.de>
8910
8911         * src/pic/pcoderegs.c (Remove1pcode): fix warning on alpha
8912
8913 2003-04-11 kevin Vigor <kevin AT vigor.nu>
8914
8915         * ds390/gen.c ds390/peeph.def: fix bug 706781
8916
8917 2003-04-11  Borut Razem <borut.razem AT siol.net>
8918
8919         * support/Util/dbuf.c, support/Util/dbuf.h: update to version 1.1.1 - re-added C++ stuff to make it still more portable
8920
8921 2003-04-10  Scott Dattalo  <scott AT dattalo.com>
8922
8923         * src/pic/* Applied the pointer-to-function patch from Steve Tell.
8924         * src/pic/* Fixed several pointer bugs. (PIC port broke when the ruonly bit was
8925          set - this bit used to not be set...).
8926         * src/pic/gen.c Fixed buf 609268 ==> x = (x+1) & 0xf; generated
8927           bad code in PIC Port
8928         * src/regression/and2.c added to test bug 609268
8929         * src/regression/Makefile added and2.c to regression test
8930
8931
8932 2003-04-08    <johan AT CP255758-A>
8933
8934         * src/mcs51/gen.c (gen51Code): display reg usage in --icode-in-asm
8935         * src/mcs51/ralloc.c (serialRegAssign): update the registers in use and save some slocs
8936         * src/SDCCicode.h: added riu to show the register usage in --icode-in-asm
8937
8938 2003-04-07  Bernhard Held <bernhard AT bernhardheld.de>
8939
8940         * configure.in: fully support prefix, exec_prefix, datadir, docdir;
8941         fix bug #487815
8942         * support/cpp2/Makefile.in: fix bug #487815
8943         * configure: rebuilt from configure.in
8944         * Makefile.common.in: docdir changed, new path suffixes
8945         * sdccconf_in.h: new RETSIGTYPE, and other PATHs
8946         * sdcc_vc_in.h: reflect changes from sdccconf.h
8947         * src/SDCCglobl.h: remove *SEPARATOR_CHARS, they are now in sdccconf.h
8948         * src/SDCCutil.h: remove BINDIR hack
8949         * doc/sdccman.lyx: update new path hierarchy
8950
8951 2003-04-06    Paul Stoffregen <paul AT pjrc.com>
8952
8953         * src/SDCCpeeph.c: added okToRemoveSLOC test
8954
8955 2003-04-06    Paul Stoffregen <paul AT pjrc.com>
8956
8957         * device/lib/printf_fast.c: added leading zero format ("%06d", etc)
8958
8959 2003-04-06    Paul Stoffregen <paul AT pjrc.com>
8960
8961         * src/SDCCpeeph.c: added labelIsReturnOnly test
8962         * src/mcs51/peeph.def: Peephole 244: replace ljmp to ret with ret
8963
8964 2003-04-05    <johan AT balder>
8965
8966         * src/SDCCcse.c (cseAllBlocks): fixed bug #460088
8967         * src/SDCCloop.c (DEFSETFUNC): fixed bug #460088
8968         * src/SDCCopt.c (eBBlockFromiCode): fixed bug #460088
8969         * src/SDCCast.c: fixed a warning
8970         * src/SDCCast.h: fixed a warning
8971         * src/SDCCicode.c (operandFromAst): fixed a warning
8972
8973 2003-04-04    <johan AT balder>
8974
8975         * src/SDCCloop.c (DEFSETFUNC): undid the fix for bug #519584
8976         * src/SDCCast.c (decorateType): fixed bug #715076
8977         * src/SDCC.y: fixed bug #702907
8978
8979 2003-04-03    <johan AT balder>
8980
8981         * device/lib/_mulint.c (_muluint): new #pragma LESS_PEDANTIC
8982         * src/SDCCopt.c (eBBlockFromiCode): new #pragma LESS_PEDANTIC
8983         * src/SDCCglobl.h (PRAGMA_LESSPEDANTIC): new #pragma LESS_PEDANTIC
8984         * src/SDCC.lex (doPragma): new #pragma LESS_PEDANTIC
8985         * src/SDCCmain.c (parseCmdLine): new #pragma LESS_PEDANTIC
8986
8987 2003-04-03  Bernhard Held <bernhard AT bernhardheld.de>
8988
8989         * _decdptr.c: fix return values
8990         * _gptrget.c: fix return values
8991         * _gptrgetc.c: fix return values
8992         * _gptrput.c: fix return values
8993         * _mulint.c: fix return values
8994         * as/z80/Makefile: fix 'make -j' problem
8995
8996 2003-04-02  Bernhard Held <bernhard AT bernhardheld.de>
8997
8998         * Makefile.common.in: unused PORT, SCC and SAS removed, fixed docdir
8999         * configure.in: big cleanup, updated to autoconf 2.5x
9000         * configure: rebuilt from configure.in
9001         * sdccconf_in.h: new RETSIGTYPE, and other PATHs
9002         * sdcc_vc_in.h: reflect changes from sdccconf.h
9003         * doc/Makefile: fixed a flaw in "make install"
9004
9005 2003-04-02    <johan AT balder>
9006
9007         * src/ds390/gen.c (genCmp): no comments
9008         * src/mcs51/gen.c (genCmp): no comments
9009         * src/SDCCopt.c (eBBlockFromiCode): detect missing return values
9010         * src/SDCCast.c (ast_print): fixed the function type in --dumptree
9011
9012 2003-04-01  Bernhard Held <bernhard AT bernhardheld.de>
9013
9014         * support/regression/generate-cases.py: place generated file in given sub directory
9015         * support/regression/ports/host/spec.mk: prevent removal of testfwk.o
9016         * support/regression/Makefile: improvements for 'make -j';
9017         side effect: it's simpler and faster now
9018
9019 2003-03-31  Borut Razem <borut.razem AT siol.net>
9020
9021         * src/z80/main.c: link-{port} and as-{port} defined without path
9022         * src/src.dsp: support/Util/MySystem.h and src/SDCCutil.h added to project
9023
9024 2003-03-31  Bernhard Held <bernhard AT bernhardheld.de>
9025
9026         * Makefile, src/Makefile.in: add dependencies, so that 'make -j' works
9027
9028 2003-03-30  Borut Razem <borut.razem AT siol.net>
9029
9030         * support/Util/BuildCmd.c, support/Util/BuildCmd.h: rewrite buildCmdLine(),
9031           changed type of list parameter to set
9032         * src/ds390/main.c: changed type of parameter asmOptions to set in _tininative_do_assemble()
9033         * src/port.h: changed type of do_assemble() parameter to set
9034         * src/SDCCmain.c: type of asmOptions changed to set, introduced setParseWithComma(),
9035           sdcpp defined without path, removed variable VersionString, introduced set binPathSet,
9036           definition of "cppoutfilename" macro with NULL value in preProcess()
9037         * src/SDCCglobl.h: included "SDCCset.h", added declaration of setParseWithComma()
9038         * src/SDCCglue.c: removed variable VersionString, inroduced spacesToUnderscores()
9039         * support/Util/MySystem.c, support/Util/MySystem.h: rewrite, char *ExePathList[]
9040           replaced with set *binPathSet
9041         * shash_add() deallocates the item, if allready exsists, before adding the new one
9042         * src/SDCCmacro.c: handling macros with empty or NULL values in _evalMacros()
9043
9044 2003-03-30  Scott Dattalo  <scott AT dattalo.com>
9045
9046         * src/pic/gen.c: Commit patch from Steve Tell <tell AT telltronics.org> that fixes
9047           a nested for loop bug in the PIC port
9048         * src/regression/nestfor.c: new regression test file Steve wrote to test nested
9049           for loops
9050
9051 2003-03-29  Bernhard Held <bernhard AT bernhardheld.de>
9052
9053         * support/Util/dbuf.h: remove C++ stuff to make it portable
9054
9055 2003-03-28  Borut Razem <borut.razem AT siol.net>
9056
9057         * src/SDCC.lex: Fix for bug #711240: dynamic buffer handling of C
9058           literal strings in stringLiteral()
9059         * support/Util/dbuf.c, support/Util/dbuf.h: added: dynamic buffer handling
9060         * src/Makefile.bcc, src/Makefile.in, src\src.dsp: added support/Util/dbuf.c
9061           to the project
9062
9063 2003-03-27  Paul Stoffregen <paul AT pjrc.com>
9064
9065         * src/SDCCpeeph.c (pcDistance): accurate byte distance for mcs51
9066
9067 2003-03-26    <johan AT balder>
9068
9069         * src/mcs51/gen.c (saveRegisters): catched symbol abuse
9070         * src/ds390/gen.c (saveRegisters): catched symbol abuse
9071         * src/SDCCast.c (decorateType): fixed " -v < 3"
9072
9073 2003-03-23  Bernhard Held <bernhard AT bernhardheld.de>
9074
9075         * doc/cdbfile.html: removed, replaced by cdbfileformat.lyx
9076         Added Lenny Story's debug infrastructure changes:
9077         * src/Makefile.in:  added new files cdbFile.c and SDCCdebug.c
9078         * src/Makefile.bcc: added new files cdbFile.c and SDCCdebug.c
9079         * src/cdbFile.c: added
9080         * src/SDCCdebug.c: added
9081         * src/SDCCdebug.h: added
9082         * src/SDCCast.c (createFunction)
9083         * src/SDCCglue.c (emitRegularMap, emitStaticSeg, emitOverlay, glue)
9084         * src/SDCCmain.c (parseCmdLine, main)
9085         * src/SDCCmem.c (redoStackOffsets)
9086         * src/SDCCsymt.c (cdbStructBlock, cdbTypeInfo, cdbSymbol, cdbStruct, cdbStructBlock)
9087         * src/SDCCsymt.h
9088         * src/common.h
9089         * src/avr/gen.c (genAVRCode)
9090         * src/ds390/gen.c (gen390Code)
9091         * src/mcs51/gen.c (gen51Code)
9092         * src/pic/gen.c (genpic14Code)
9093         * src/pic/glue.c (pic14emitRegularMap, pic14emitStaticSeg, pic14emitOverlay, picglue)
9094         * src/xa51/gen.c (genXA51Code)
9095         * src/SDCCast.c: fixed "void foo(void){char c; -c < 0;}"
9096
9097 2003-03-22  Frieder Ferlemann <Frieder.Ferlemann AT web.de>
9098
9099         * src/mcs51/gen.c (genCodePointerGet): quicker code for bug #700797
9100         * src/mcs51/peeph.def: added rules 177, 241.x to 243, touched 181, 182.x, 193.x
9101
9102 2003-03-22    <johan AT balder>
9103
9104         * src/SDCCicode.c (geniCodeDerefPtr): fixed bug #698231
9105
9106 2003-03-21  Bernhard Held <bernhard AT bernhardheld.de>
9107
9108         * support/scripts/sdcc_mingw32: adapted to configure from autoconf 2.54
9109         * doc/cdbfileformat.lyx: added, written by Lenny Story
9110         * doc/Makefile: added cdbfileformat.lyx
9111         * doc/clean.mk: added cdbfileformat.lyx
9112
9113 2003-03-20  Bernhard Held <bernhard AT bernhardheld.de>
9114
9115         * src/mcs51/peeph.def: fix bug #705773
9116
9117 2003-03-20    <johan AT balder>
9118
9119         An sfr/sbit can have an "at #" AND an initializer
9120         * src/SDCCsymt.c (checkSClass):
9121         * src/SDCCmem.c (allocGlobal):
9122         * src/SDCCmem.c (allocLocal):
9123         * src/SDCCast.c (createBlock):
9124
9125 2003-03-17  Bernhard Held <bernhard AT bernhardheld.de>
9126
9127         * src/ds390/peeph.def: fix bug #704878: added rule 213.b suggested by Jan Rejlek
9128
9129 2003-03-16    <johan AT balder>
9130
9131         Undid the hackup of const and volatile, the problem is much bigger
9132         * src/SDCC.y:1.65
9133         * src/SDCCast.c:1.171
9134         * src/SDCCglue.c:1.138
9135         * src/SDCCicode.c:1.146
9136         * src/SDCCsymt.c:1.150
9137         * src/SDCCval.c:1.65
9138
9139 2003-03-15  Bernhard Held <bernhard AT bernhardheld.de>
9140
9141         * src/mcs51/ralloc.c (packRegsForAssign): fixed bug #703541
9142         * src/ds390/gen.c (genAddrOf): fixed bug #704087
9143
9144 2003-03-13    <johan AT balder>
9145
9146         Hackup const and volatile modifiers in type chains a bit:
9147         * src/SDCC.y:1.63
9148         * src/SDCCast.c:1.169
9149         * src/SDCCglue.c:1.136
9150         * src/SDCCicode.c:1.143
9151         * src/SDCCsymt.c1.146
9152         * src/SDCCsymt.h1.59
9153         * src/SDCCval.c:1.63
9154
9155 2003-03-12    <johan AT balder>
9156
9157         * src/SDCCBBlock.h: more LRH debugging junk
9158         * src/SDCCcflow.h: more LRH debugging junk
9159         * src/SDCCloop.c: more LRH debugging junk
9160         * src/SDCC.y (struct_declaration): fixed bug #697590
9161         * src/SDCCsymt.[hc] (cloneSpec): NEVER EVER use this again
9162         * src/ds390/gen.c (aopForRemat): fixed bug #700031
9163         * src/SDCCglue.c (emitStaticSeg): fixed bug #700797
9164
9165 2003-03-11 Kevin Vigor <kevin AT vigor.nu>
9166         * src/SDCCpeeph.c: quit being lazy and made proper fix (peephole
9167         test function names must now match exactly).
9168         * src/SDCCcse.c: added special case in findCheaperOp to allow
9169         extending a short integer. Makes less awful code for bug 700121 test case.
9170
9171 2003-03-11  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
9172
9173         * as/mcs51/lkmain.c: Added ASlink-Warning to messages
9174         * as/mcs51/lkaomf51.c: Fixed bug when linking asmblink example
9175
9176 2003-03-11 Kevin Vigor <kevin AT vigor.nu>
9177
9178         * src/SDCCpeeph.c: fix so that operandsNotEqualX functions are
9179         actually called (operandsNotEqual() was called for all
9180         operandsNotEqualX tests).
9181
9182 2003-03-11 Kevin Vigor <kevin AT vigor.nu>
9183
9184         * src/SDCCcse.c: fix findCheaperOp to prevent replacing int types
9185         with shorter literals. Fixes bug 700121.
9186
9187 2003-03-11    <johan AT balder>
9188
9189         * src/SDCCsymt.c (compareType): a (void *) can be assigned to any pointer
9190
9191 2003-03-11  Bernhard Held <bernhard AT bernhardheld.de>
9192
9193         * src/SDCCloop.c (mergeRegions): an evil beast is dead
9194         * src/SDCCmain.c (preProcess): minor cleanup: eliminate preOutName
9195
9196 2003-03-10  Borut Razem <borut.razem AT siol.net>
9197
9198         * src/SDCCmain.c: pipe preprocessor's output
9199         * support/Util/MySystem.c, support/Util/MySystem.h: added my_popen()
9200         * sdcc_vc_in.h: define pclose as _pclose for WIN32
9201         * src/SDCCglue.c, src/SDCCglue.h: added set pipeSet, added function closePipes,
9202         which closes all pipes in pipeSet set
9203         * src/SDCCset.c: free deleted item in function deleteSetItem()
9204         * src/src.dsp, src/z80/z80.dsp: files support/Util/BuildCmd.c and support/Util/MySystem.c
9205         moved from z80 to src subproject
9206         * .version: increased version number to 2.3.4
9207
9208 2003-03-10  Bernhard Held <bernhard AT bernhardheld.de>
9209
9210         * support/regression/ports/mcs51/spec.mk: increase timeout for CF's sparc to 30s
9211         * support/regression/ports/ds390/spec.mk: increase timeout for CF's sparc to 25s
9212         * support/regression/ports/xa51/spec.mk: fix typo
9213
9214 2003-03-09  Bernhard Held <bernhard AT bernhardheld.de>
9215
9216         * src/SDCCglobl.h: PATH_MAX is already defined in mingw32 headers
9217
9218 2003-03-09  Borut Razem <borut.razem AT siol.net>
9219
9220         * src/SDCCmain.c: pipe preprocessor's output
9221         * support/Util/MySystem.c, support/Util/MySystem.h: added my_popen()
9222         * sdcc_vc_in.h: define pclose as _pclose for WIN32
9223         * src/SDCCglue.c, src/SDCCglue.h: added set pipeSet, added function closePipes,
9224         which closes all pipes in pipeSet set
9225         * src/SDCCset.c: free deleted item in function deleteSetItem()
9226         * src/src.dsp, src/z80/z80.dsp: files support/Util/BuildCmd.c and support/Util/MySystem.c
9227         moved from z80 to src subproject
9228
9229 2003-03-09  Borut Razem <borut.razem AT siol.net>
9230
9231         * src/SDCCglue.c: re-implemented tempfilename() and tempfile(): using mkstemp() if available
9232         * src/SDCCsymt.h: fixed MSVC and BORLANDC compilation (included SDCCglobl.h instead srccconf.h)
9233         * sdcc_vc_in.h: explicitly undefined HAVE_MKSTEMP which is not available on BORLANDC and MSVC
9234         * src/SDCCset.h: removed inclusion of sdccconf.h or sdcc_vc.h
9235         * src/SDCCglobl.h: unification of WIN32 native definitions
9236
9237 2003-03-09  Frieder Ferlemann <Frieder.Ferlemann AT web.de>
9238
9239         * src/mcs51/gen.c: applied in-/dec patch mentioned on sdcc-devel 2003-03-01
9240
9241 2003-03-08  Bernhard Held <bernhard AT bernhardheld.de>
9242
9243         * src/configure.in:   check for endianess (even while cross-compiling)
9244         * src/configure:      check for endianess (even while cross-compiling)
9245         * src/configure_in.h: check for endianess (even while cross-compiling)
9246         * src/avr/gen.c:        remove old endianess stuff
9247         * src/mcs51/gen.c:      remove old endianess stuff
9248         * src/ds390/gen.c:      remove old endianess stuff
9249         * src/pic/gen.c:        remove old endianess stuff
9250         * src/pic/genarith.c:   remove old endianess stuff
9251         * src/pic/glue.c:       fix endianess check
9252         * src/pic16/gen.c:      remove old endianess stuff
9253         * src/pic16/genarith.c: remove old endianess stuff
9254         * src/pic16/glue.c:     fix endianess check
9255         * src/xa51/gen.c:       remove old endianess stuff
9256         * src/z80/gen.c:        fix endianess check
9257         * src/SDCCglue.c:       fix endianess check
9258         * src/ds390/peeph.def: fix bug 700036
9259
9260 2003-03-08  Bernhard Held <bernhard AT bernhardheld.de>
9261
9262         * src/SDCCsymt.h: use appropriate data-types on host for SDCC's int and long
9263         * src/configure: find appropriate data-types on host for SDCC's int and long
9264         * src/configure.in: find appropriate data-types on host for SDCC's int and long
9265         * src/sdccconf_in.h: find appropriate data-types on host for SDCC's int and long
9266         * src/xa51/gen.c: use %d, not %ld for 4 byte variables
9267
9268 2003-03-07    <johan AT balder>
9269
9270         Just a big NOOP:
9271                 some minor cleanups before the big shot
9272                 OP_DEFS and OP_USES now use Kevin's protection
9273                 new option --nolabelopt
9274
9275         * src/SDCCBBlock.c:
9276         * src/SDCCast.c,:
9277         * src/SDCCcflow.c:
9278         * src/SDCCcse.c:
9279         * src/SDCCicode.c:
9280         * src/SDCCicode.h:
9281         * src/SDCClabel.c:
9282         * src/SDCCloop.c:
9283         * src/SDCCmain.c:
9284         * src/ds390/ralloc.c:
9285         * src/mcs51/ralloc.c:
9286         * src/pic/ralloc.c:
9287         * src/xa51/ralloc.c:
9288         * src/z80/ralloc.c:
9289
9290 2003-03-06  Bernhard Held <bernhard AT bernhardheld.de>
9291
9292         * src/pic/pcode.c (get_op): fix 64 bit warnings
9293         * src/pic/pcode.c (pCode2str): fix 64 bit warnings
9294         * src/SDCChasht.c (newHashTable): fix 64 bit warnings
9295         * src/SDCCsymt.c (checkTypeSanity): fix 64 bit warnings
9296         * support/regression/tests/malloc.c: fix 64 bit warnings
9297
9298 2003-03-04  Bernhard Held <bernhard AT bernhardheld.de>
9299
9300         * src/mcs51/gen.c (genMinus): fixed bug 696436
9301
9302 2003-03-02  Borut Razem <borut.razem AT siol.net>
9303
9304         * src/SDCCmain.c: added BORLANDC, corrected MSVC in printVersionInfo()
9305
9306 2003-02-26  Bernhard Held <bernhard AT bernhardheld.de>
9307
9308         * configure.in: test for mkstemp
9309         * sdccconf_in.h: add HAVE_MKSTEMP
9310
9311 2003-02-24  Bernhard Held <bernhard AT bernhardheld.de>
9312
9313         * device/include/ctype.h: removed warning while using --stack-auto
9314         * device/include/malloc.h: removed warning while using --stack-auto
9315         * device/include/string.h: removed warning while using --stack-auto
9316
9317 2003-02-23  Borut Razem <borut.razem AT siol.net>
9318
9319         * src/asm.h: corrected assertion in function printILine(): _pipe() was not executed on MSVC,
9320         because NDEBUG is defined (see man assert)
9321         * sdcc_vc_in.h: vsnprintf is defined as _vsnprintf on MSVC
9322
9323 2003-02-23  Frieder Ferlemann <Frieder.Ferlemann AT web.de>
9324
9325         * src/mcs51/gen.c (genUminusFloat): avoided dptr in-/decrement for xdata variables
9326         * src/mcs51/peeph.def: added rule suggested by Gernot Fink, white space/comment changes
9327
9328 2003-02-18  Frieder Ferlemann <Frieder.Ferlemann AT web.de>
9329
9330         * src/SDCCpeeph.c: added peephole conditions testing for same arguments
9331         * src/mcs51/peeph.def: added rules 238a-d which remove redundant moves
9332
9333 2003-02-18    <johan AT balder>
9334
9335         * as/mcs51/asmain.c (asmbl): module can start with a digit
9336         * as/z80/asmain.c (asmbl): module can start with a digit
9337
9338 2003-02-16  Bernhard Held <bernhard AT bernhardheld.de>
9339
9340         * sim/ucsim/mkecho: inserted #!/bin/sh for Cygwin, so that it's executable
9341         * src/asm.c: fix pipe() for Mingw32
9342
9343 2003-02-15  Bernhard Held <bernhard AT bernhardheld.de>
9344
9345         * src/SDCCglue.h: make tmpfileNameSet available for preOutName
9346         * src/SDCCmain.c (preProcess): make sure, that preOutName will be deleted;
9347         make -V work again; --c1mode reads now from stdin
9348         * doc/sdccman.lyx: added --c1mode
9349         * support/Util/SDCCerr.c: new messages for c1 mode
9350         * support/Util/SDCCerr.h: new messages for c1 mode
9351         * src/SDCC.lex (checkCurrFile): test if fullSrcFileName is NULL for c1mode
9352
9353 2003-02-15    <johan AT balder>
9354
9355         * src/asm.c: new options: --no-c-code-in-asm and --i-code-in-asm
9356
9357 2003-02-14  Bernhard Held <bernhard AT bernhardheld.de>
9358
9359         * doc/sdccman.lyx: Environment variables, -o and other minor things
9360
9361 2003-02-14    <johan AT balder>
9362
9363         * src/xa51/main.c: before anyone really tries to use it :)
9364
9365         * Install doc's in share/sdcc/doc
9366         * removed some obsolete files
9367         * Do a proper make distclean and uninstall
9368         M Makefile.common.in
9369         R sdccbuild.sh
9370         M as/Makefile
9371         M device/include/Makefile.in
9372         M device/lib/Makefile.in
9373         M doc/sdccman.lyx
9374         M link/Makefile
9375         M sim/ucsim/doc/Makefile.in
9376         M src/clean.mk
9377         R src/avr/peeph.rul
9378         R src/xa51/peeph.rul
9379         M support/cpp2/Makefile.in
9380         M support/makebin/Makefile
9381
9382
9383 2003-02-13  Bernhard Held <bernhard AT bernhardheld.de>
9384
9385         * support/regression/ports/host/spec.mk: use cc as host compiler for max osx
9386
9387 2003-02-10  Borut Razem <borut.razem AT siol.net>
9388
9389         * doc/bccinst.txt, packihx/packihx.c, sdcc_vc_in.h, src/SDCCset.h,
9390         support/cpp2/config.in: Borland C++ build doesn't depend on Cygwin configure
9391         * Bcc.ini, Makefile.bcc, as/mcs51/Makefile.bcc,
9392         device/examples/ds390/tinitalk/Makefile.bcc, packihx/Makefile.bcc,
9393         support/cpp2/Makefile.bcc, src/Makefile.bcc, src/avr/Makefile.bcc,
9394         src/ds390/Makefile.bcc, src/izt/Makefile.bcc, src/mcs51/Makefile.bcc,
9395         src/pic/Makefile.bcc, src/pic16/Makefile.bcc, src/xa15/Makefile.bcc,
9396         src/z80/Makefile.bcc: Borland Makefile cleanup
9397         * as/z80/Makefile.bcc: Added Borland Makefile
9398         * support/cpp2/borland.h: Removed
9399
9400 2003-02-10  Bernhard Held <bernhard AT bernhardheld.de>
9401
9402         * doc/sdccman.lyx: new pragma NOIV by "Johannes Stezenbach" <js AT convergence.de>
9403         * src/SDCC.lex: new pragma NOIV
9404         * src/SDCCglobl.h: new pragma NOIV
9405         * src/SDCCmem.c: new pragma NOIV
9406
9407 2003-02-09  Bernhard Held <bernhard AT bernhardheld.de>
9408
9409         * src/SDCCmain.c: signal handling is switched off by SDCC_LEAVE_SIGNALS
9410
9411 2003-02-09  Bernhard Held <bernhard AT bernhardheld.de>
9412
9413         * src/SDCCmain.c: signal handling is switched off by --debug
9414         * doc/Makefile: small fix for install; use clean.mk again
9415         * doc/clean.mk: clean *.pdf and *.html too
9416
9417 2003-02-08  Bernhard Held <bernhard AT bernhardheld.de>
9418
9419         * device/lib/_mulint.c: small fix for large/ds390 --int-long-reent resp. --stack-auto
9420         * device/lib/printfl.c: fix a ds390 bug by making it portable
9421         * src/SDCCsymt.c (initCSupport): fix compile warning on Cygwin
9422         * src/SDCCopt.c (cnvToFloatCast): fix compile warning on Cygwin
9423         * src/SDCCopt.c (cnvFromFloatCast): fix compile warning on Cygwin
9424         * debugger/mcs51/cmd.c: converted multi-line string literals
9425         * sim/ucsim/globals.cc: converted multi-line string literals
9426         * src/SDCCmain.c: introduced signal handler to remove temp files
9427         * doc/Makefile: small tweaks, implement clean
9428         * doc: removed generated files
9429
9430 2003-02-05  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
9431
9432         * as/mcs51/aslink.h, as/mcs51/lkihx.c, as/mcs51/lkrloc.c:  Applied
9433         patch from Jan Rejlek <jr AT apex-lib.cz> to fix Bug 677692: "Extended
9434         Address Record is not correctly generated for DS390."
9435
9436 2003-02-02  Borut Razem <borut.razem AT siol.net>
9437
9438         * Makefile.bcc: removed non existing cpp project and non compilable izt project from makefile
9439         * as/mcs51/asm.h: fixed compilation with Borland C
9440         * support/cpp2/Makefile.bcc: added rule to generate auto-host.h
9441         * support/cpp2/auto-host_vc_in.h: fixed compilation with Borland C
9442         * src/mcs51/mcs51a.dsp: corrected misspelled project name from msc51a to mcs51a
9443         * src/avr/Makefile.bcc, src/ds390/Makefile.bcc, src/izt/Makefile.bcc,
9444         src/mcs51/Makefile.bcc, src/pic16/Makefile.bcc, src/xa51/Makefile.bcc,
9445         src/z80/Makefile.bcc: delete $(LIB) only if exist
9446         * src/Makefile.bcc, src/pic/Makefile.bcc:  fixed compilation with Borland C
9447
9448 2003-02-02  Bernhard Held <bernhard AT bernhardheld.de>
9449
9450         * device/include/malloc.h: introduced NULL
9451         * device/include/string.h: introduced NULL
9452         * device/include/stdlib.h: introduced NULL
9453         * device/lib/_memcpy.c: removed NULL
9454         * device/lib/_strcat.c: removed NULL
9455         * device/lib/_strchr.c: removed NULL
9456         * device/lib/_strcmp.c: removed NULL
9457         * device/lib/_strcpy.c: removed NULL
9458         * device/lib/_strcspn.c: removed NULL
9459         * device/lib/_strlen.c: removed NULL
9460         * device/lib/_strncat.c: removed NULL
9461         * device/lib/_strncmp.c: removed NULL
9462         * device/lib/_strncpy.c: removed NULL
9463         * device/lib/_strpbrk.c: removed NULL
9464         * device/lib/_strrchr.c: removed NULL
9465         * device/lib/_strspn.c: removed NULL
9466         * device/lib/_strstr.c: removed NULL
9467         * device/lib/_strtok.c: removed NULL
9468         * device/lib/malloc.c: removed NULL, include own header
9469
9470 2003-02-02    <johan AT balder>
9471
9472         * 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
9473         * support/regression/fwk/lib/testfwk.c: div and mod isn't broken anymore
9474         * regressions ds390/spec.mk and mcs51/spec.mk (timeout): my good old balder isn't fast enough for some tests
9475         * src/z80/gen.c (genZ80Code): added c-lines in asm comments
9476         * as/z80/asm.h (NINPUT): increased for long c-comments in regression tests
9477         * src/z80/gen.c (genRightShiftLiteral): fixed the (char)(-3)>>8 (I think)
9478
9479 2003-02-01  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
9480
9481         * src/SDCCmain.c: Fixed bug 678574: "ds390: ASlink-Error-Stack overlaps
9482         area 'DATA'"
9483
9484 2003-02-01    <johan AT balder>
9485
9486         * src/SDCCval.c (valBitwise): fixed Karl's "2 | (1<<8)"
9487
9488 2003-01-31    <johan AT CP255758-A>
9489
9490         * src/ds390/main.c (_ds390_genAssemblerPreamble): applied Jan Rejlek's >64K startup patch
9491
9492 2003-01-30    <johan AT balder>
9493
9494         * src/SDCCBBlock.c: automatic bug detection
9495         * src/SDCCicode.c: automatic bug detection
9496
9497 2003-01-29  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
9498
9499         * src/SDCCglobl.h:   now --xram-size 0 works
9500         * src/SDCCmain.c:    now --xram-size 0 works
9501
9502 2003-01-29    <johan AT balder>
9503
9504         * src/almosteverything: changed OP_DEFS and OP_USES from macros to functions to catch symbol abuse (a hot topic in the bug list :)
9505
9506 2003-01-29  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
9507
9508         * as/mcs51/aslink.h: Added options --xram-size and --code-size
9509         * as/mcs51/lkdata.c: Added options --xram-size and --code-size
9510         * as/mcs51/lkmain.c: Added options --xram-size and --code-size
9511         * as/mcs51/lkmem.c:  Added options --xram-size and --code-size
9512         * src/SDCCglobl.h:   Added options --xram-size and --code-size
9513         * src/SDCCmain.c:    Added options --xram-size and --code-size
9514
9515 2003-01-28  Bernhard Held <bernhard AT bernhardheld.de>
9516
9517         * src/ds390/gen.c: fix deps by replacing <common.h> with "common.h"
9518         * src/SDCC.lex: rename P_OVERLAY to P_OVERLAY_ for cross-gcc 3.2 MINGW32
9519
9520 2003-01-27    <johan AT balder>
9521
9522         * src/SDCC.y: fixed bug #613764
9523
9524 2003-01-26    <johan AT balder>
9525
9526         * src/SDCClrange.c:  fixed Bernhard's "char * code ptr = &c"
9527         * src/SDCCsymt.h: fixed bug #673374
9528         * src/SDCCglue.c: fixed bug #661910
9529         * src/SDCCast.c: fixed bug #458099 and 673374
9530
9531 2003-01-26  Bernhard Held <bernhard AT bernhardheld.de>
9532
9533         * as/mcs51/strcmpi.c: added, provides Aurelien Jarno's as_strcmpi(); strcmpi() is not ANSI
9534         * as/mcs51/strcmpi.h: added
9535         * as/mcs51/asm.h: remove ugly "#define strcmpi strcmp"
9536         * as/mcs51/aslink.h: remove ugly "#define strcmpi strcmp"
9537         * as/mcs51/asmain.c: strcmpi -> as_strcmpi
9538         * as/mcs51/assym.c: strcmpi -> as_strcmpi
9539         * as/mcs51/lkmem.c: strcmpi -> as_strcmpi
9540         * as/mcs51/lknoice.c: strcmpi -> as_strcmpi
9541         * as/mcs51/lksym.c: strcmpi -> as_strcmpi
9542         * as/mcs51/Makefile.aslink: new module strcmpi
9543         * as/mcs51/Makefile.asx8051: new module strcmpi
9544         * as/mcs51/Makefil.bcc: new module strcmpi
9545         * as/mcs51/Makefile.in: new module strcmpi
9546         * sim/ucsim/s51.src/uc390.cc (get_mem_size): make RAM big enough for tinibios
9547
9548 2003-01-26    <johan AT balder>
9549
9550         * src/SDCCglue.c: reverted back to 1.124
9551         * src/SDCCast.c: reverted back to 1.156
9552         * src/mcs51/gen.c (aopGet): applied Frieder's efficiency patch
9553
9554 2003-01-25    <johan AT balder>
9555
9556         * src/SDCCglue.c: A better fix for bug #661910
9557         * src/SDCCast.c: A better fix for bug #661910
9558         * src/SDCCglue.c (emitRegularMap): That was a little too efficient
9559
9560 2003-01-24  Bernhard Held <bernhard AT bernhardheld.de>
9561
9562         * src/Makefile.in: remove spawn.o
9563         * src/SDCCmain.c: remove spawn.h
9564         * src/SDCCmain.c (printVersionInfo): report MINGW32 instead of UNIX
9565         * src/spawn.c: removed
9566         * src/spawn.h: removed
9567         * support/regression/ports/ds390/spec.mk: link with -r
9568
9569 2003-01-24    <johan AT CP255758-A>
9570
9571         * src/ds390/gen.c (aopOp): fixed bug #667458
9572         * src/SDCCglue.c (emitRegularMap): fixed bug #458099 again
9573         * src/SDCCast.c (createIvalCharPtr): fixed bug #661910
9574         (createIvalCharPtr): an ival doesn't always have a storage class anymore
9575
9576 2003-01-24  Bernhard Held <bernhard AT bernhardheld.de>
9577
9578         * src/mcs51/peeph.def: better assembler identation by Frieder
9579         * src/mcs51/gen.c: better assembler identation by Frieder
9580
9581 2003-01-22  Bernhard Held <bernhard AT bernhardheld.de>
9582
9583         * as/z80/string.h: removed for gcc 3.2
9584         * support/makebin/makebin.c: #include <string.h> for gcc 3.2
9585         * src/pic/pcode.c (get_op_from_instruction): fix concatenation of string literals with __FUNCTION__ for gcc 3.2
9586
9587 2003-01-19  Bernhard Held <bernhard AT bernhardheld.de>
9588
9589         * src/SDCCmain.c (linkEdit): rename mem and map files even in case of failure
9590         * src/SDCCpeeph.c (replaceRule): fix bug #663503
9591         * support/regression/Makefile: separate temp files for ports
9592         * support/regression/generate-cases.py: separate temp files for ports
9593         * src/mcs51/peeph.def: Frieder: removed 237 (obsolete by 236g and 105); added 237 a/b
9594         * src/ds390/peeph.def: Frieder: removed 237 (obsolete by 236g and 105); added 237 a/b
9595
9596 2003-01-19  Bernhard Held <bernhard AT bernhardheld.de>
9597
9598         * moved tinitalk to device/examples/ds390
9599
9600 2003-01-14  Bernhard Held <bernhard AT bernhardheld.de>
9601
9602         * as/mcs51/lkmem.c: rflag is for DS390
9603         * src/SDCCglobl.h: removed out_name and options stackOnData, genericPtr
9604         * src/SDCCmain.c (optionsTable, setDefaultOptions): removed --stack-after-data and --generic
9605                          (linkEdit): move mem- and map-files the same way as ihx-files
9606         * src/z80/main.c (_setDefaultOptions): removed --generic
9607         * src/SDCCmain.c (_processC1Arg, parseCmdLine, main): --c1mode works again
9608         * src/SDCCglue.c (createInterruptVect, glue): --c1mode works again
9609         * src/pic/glue.c (picglue): --c1mode works again
9610         * src/pic16/glue.c (pic16glue): --c1mode works again
9611         * src/asm.c (printCLine): fix #660034
9612
9613 2003-01-13  Bernhard Held <bernhard AT bernhardheld.de>
9614
9615         * src/ds390/peeph.def: fix #123; add 14 rules by Fiorenzo D. Ramaglia <fd.ramaglia AT tin.it>, 1 by Frieder
9616         * src/mcs51/peeph.def: fix #123; add 14 rules by Fiorenzo, 1 by Frieder
9617         * src/mcs51/gen.c (genFunction): emit r0 instead of ar0 by Fiorenzo
9618         * as/mcs51/lkmem (summary): better fix for sp problem
9619         * src/SDCCglue.c (glue): __start_stack - 1, saves 1 byte!
9620         * src/ds390/main.c (_ds390_finaliseOptions, _tininative_finaliseOptions): stack_loc = 0x400008
9621         * support/regression/ports/*/spec.mk: moving testfwk-object to port dir allow parallel execution of regression tests
9622                                               remove --stack-after-data
9623
9624 2003-01-12  Bernhard Held <bernhard AT bernhardheld.de>
9625
9626         * src/SDCCmain.c (main): port->finaliseOptions() moved for z80 linking
9627         * src/SDCCutil.c (join): ugly bug: missing '\0'
9628         * as/mcs51/lkmem.c (summary): sp on address 7 is safe
9629
9630 2003-01-11  Bernhard Held <bernhard AT bernhardheld.de>
9631
9632         * src/SDCCmain.c (assemble, linkEdit): preparations for -o
9633         * src/port.h: typo
9634         * src/pic/main.c (_asmCmd): gpasm supports -o
9635         * src/z80/main.c: more general macros
9636         * device/lib/Makefile.in: remove intermediate files
9637
9638 2003-01-11  Bernhard Held <bernhard AT bernhardheld.de>
9639
9640         * .version: Bumped version number to 2.3.3
9641         * src/SDCCBBlock.c: new option -o
9642         * src/SDCCglobl.h: new option -o
9643         * src/SDCCglue.c: new option -o
9644         * src/SDCCmain.c: new option -o
9645         * src/asm.c: new option -o
9646         * src/ds390/main.c: new option -o
9647         * src/pic/glue.c: new option -o
9648         * src/pic/pcode.c: new option -o
9649         * src/pic/ralloc.c: new option -o
9650         * src/pic16/glue.c: new option -o
9651         * src/pic16/pcode.c: new option -o
9652         * src/pic16/ralloc.c: new option -o
9653         * src/z80/main.c: new option -o
9654         * device/lib/Makefile.in: use -o
9655         * support/regression/ports/ds390/spec.mk: use -o
9656         * support/regression/ports/gbz80/spec.mk: use -o
9657         * support/regression/ports/mcs51/spec.mk: use -o
9658         * support/regression/ports/mcs51-stack-auto/spec.mk: use -o
9659         * support/regression/ports/z80/spec.mk: use -o
9660         * support/regression/ports/ucz80/spec.mk: use -o
9661         * support/regression/ports/xa51/spec.mk: use -o
9662         * support/regression/fwk/lib/timeout.c: fix usage string
9663
9664 2003-01-09  Bernhard Held <bernhard AT bernhardheld.de>
9665         * src/mcs51/gen.c (genPlus): replaced "mov b,acc" by "mov b,a" Fiorenzo D. Ramaglia <fd.ramaglia AT tin.it>
9666
9667 2003-01-07    <johan AT balder>
9668
9669         * src/SDCCast.c (decorateType): fixed bug #600035
9670
9671 2003-01-07  Bernhard Held <bernhard AT bernhardheld.de>
9672         * as/mcs51/lkmem.c: added several l-modifiers to printf to remove warnings
9673         * as/mcs51/lkaomf51.c: #include <ctype.h> to remove warnings
9674         * src/pic/main.c (_hasNativeMulFor): outcommented unused variables to remove warnings
9675         * src/pic/pcode.c: outcommented unused variable to remove warnings
9676         * src/pic/ralloc.c: outcommented unused variable to remove warnings
9677
9678 2003-01-06    <karl AT turbobit.com>
9679         * sim/ucsim/cmd.src/command.cc: fixed so "break xram r 0x7654" works again in
9680    regression tests.
9681
9682 2003-01-06    <johan AT balder>
9683
9684         * src/SDCCicode.c: fixed array add
9685
9686 2002-01-05  Bernhard Held <bernhard AT bernhardheld.de>
9687         * src/SDCCmacro.c: MAX_STRING_LENGTH increased to 2048; was too small for regression tests
9688         * support/regression/ports/host/support.c: #include <stdarg.h> for gcc 3.2
9689
9690 2003-01-04    <johan AT balder>
9691
9692         * src/SDCCval.c (getNelements): fixed the initialized array of structures
9693
9694 2002-12-29  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
9695         * as/mcs51/Makefile.bcc: fixed typo lkomf51.o -> lkaomf51.o
9696
9697 2002-12-28  Bernhard Held <bernhard AT bernhardheld.de>
9698         * src/mcs51/peeph.def: added rules 234 and 235 from Frieder Ferlemann <frieder.ferlemann AT web.de>
9699         * support/regression/tests/bug-524697.c: fit mem usage into 8032
9700
9701 2002-12-28  Bernhard Held <bernhard AT bernhardheld.de>
9702         * src/mcs51/gen.c (aopGetUsesAcc): inserted missing "return FALSE"
9703
9704 2002-12-27  Bernhard Held <bernhard AT bernhardheld.de>
9705         * as/mcs51/Makefile.in: fixed typo lkomf51.o -> lkaomf51.o
9706
9707 2002-12-26  Bernhard Held <bernhard AT bernhardheld.de>
9708         * src/mcs51/main.c: removed {bindir}{sep} from aslink
9709
9710 2002-12-10  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
9711
9712     * in \sdcc\as\mcs51\ changed these files in order to create an
9713     aomf51 file: aslink.h, lkdta.c, lklex.c, lklibr.c, lklist.c,
9714     lkmain.c.  Also added: lkmem.c and lkaomf51.c.  Changed the
9715     following files to include the previous two files: aslink.dsp,
9716     Makefile.aslink, Makefile.bcc, and Makefile.in.
9717
9718     * Changed \sdcc\src\SDCCmain.c so it creates files with extension
9719     .adb instead of .cdb
9720
9721 2002-11-09  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
9722
9723         * \sdcc\as\mcs51\lklist.c: Now reports memory usage using the
9724         value from option --iram-size.
9725
9726 2002-09-20  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
9727
9728         * \sdcc\as\mcs51\lklist.c: added boundary check before using
9729         dram[] array.
9730
9731 2002-09-18    <wiml AT hhhh.org>
9732
9733         * SDCClrange.h: exposed setFromRange() and setToRange()
9734         * mcs51/ralloc.c: fixed over-eager packRegsForSupport() and
9735           packRegsForAccUse() (bug 542397)
9736         * mcs51/gen.c: MOVA() is now a function to avoid calling aopGet()
9737           multiple times and emitting the fetch operations more than once
9738           added aopGetUsesAcc() function to allow binary operators to
9739           fetch their operands in the correct order; made genMinus() emit
9740           compact code for X = LITERAL - Y
9741
9742 2002-09-00  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
9743         * \sdcc\as\mcs51\lklist.c: Fixed incorrect number of parameters to
9744         sprintf() in line 1267.
9745
9746 2002-09-08  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
9747         * \sdcc\src\SDCCglue.c: Generate areas REG_BANK_[0-3] only for 8051
9748         like ports.
9749
9750 2002-09-04  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
9751         Changes to aslink (All the changes are marked with 'JCF'):
9752
9753         * \sdcc\as\mcs51\aslink.h: External definition of sflag and
9754         summary().
9755
9756         * \sdcc\as\mcs51\lkarea.c: Computes the size of area BSEG_BYTES from
9757         area BSEG.  Also moves, if possible, the DATA area down into the internal
9758         ram so more space is available.
9759
9760         * \sdcc\as\mcs51\lkdata.c: Definition of memory summary output flag
9761         sflag.
9762
9763         * \sdcc\as\mcs51\lklist.c: For the BSEG area report the size in bits,
9764         not bytes.  Function summary() which creates a memory usage summary
9765         file with extension .mem.  Reports of overlaping stack and small stack
9766         size.  If the space for the stack is less than 16 bytes aslink trows a
9767         warning.
9768
9769         * \sdcc\as\mcs51\lkmain.c: Creation of some of the default areas for
9770         the 8051.  Option 'y' for memory summary output file.
9771
9772         Changes to sdcc (All the changes are marked with 'JCF'):
9773
9774         * \sdcc\src\SDCCglobl.h: External definition of RegBankUsed[4].
9775
9776         * \sdcc\src\SDCCglue.c:  If a register bank is used, creates an
9777         overlaying area for it (uses RegBankUsed[4]).
9778
9779         * \sdcc\src\SDCCmain.c: Definition RegBankUsed[4]; marks register
9780         bank zero as used by default.  By default aslink locates the stack
9781         (equivalent to --stack-after-data).  Pass option 'y' to aslink for
9782         the creation of the .mem file.  Delegates the allocation of data area
9783         to aslink (it is not longer 0x30 by default).  If --stack-loc passes
9784         the begining of the stack area to aslink.
9785
9786         * \sdcc\src\SDCCmem.c:  If a register bank is used, marks it so
9787         glue() in SDCCglue.c creates an area for it.
9788
9789 2002-09-03  Borut Razem <borut.razem AT siol.net>
9790         * sdcc/src/SDCCglue.c, sdcc/src/SDCCglue.h, sdcc/src/SDCCmain.c,
9791         sdcc/src/pic/glue.c:
9792         introduced atexit() handler for teporay files removal in case of
9793         errors, assertions, ...
9794
9795 2002-08-29  Borut Razem <borut.razem AT siol.net>
9796         * sdcc/support/cpp2/auto-host_vc_in.h:
9797         re-definition of O_BINARY and other O_XXX as _O_BINARY and _O_XXX, so the problem
9798         with the returned value from read() in sdcc/support/cpp2/cppfiles.c is solved for MSC.
9799         Maybe there is a similar problem with BORLANDC? It should be checked!
9800
9801         * sdcc/src/ds390/ralloc.c, sdcc/src/mcs51/ralloc.c, sdcc/src/z80/ralloc.c:
9802         corrected improper use of assert: the assignment to clr variable was done inside the assert.
9803         In case that NDEBUG was defined, the assert macro was substituted with no-op, so the assignment
9804         was not executed, and the compiler (cl) launched a warning:
9805         ralloc.c(1442) : warning C4700: local variable 'clr' used without having been initialized
9806
9807 2002-08-28  Bernhard Held <bernhard AT bernhardheld.de>
9808         * src/SDCCglue.c (printIvalArray): iterative calculation of array length
9809
9810 2002-08-28  Jesus Calvino-Fraga and Borut Razem <borut.razem AT siol.net>
9811         * sdcc/sdcc.dsw: added sdcpp, sdcppa, yacc, conf projects
9812
9813         * sdcc/src/src.dsp, sdcc/src/avr/avr.dsp, sdcc/src/ds390/ds390.dsp,
9814           sdcc/src/mcs51/mcs51.dsp, sdcc/src/pic/pic.dsp, sdcc/src/z80/z80.dsp,
9815           sdcc/src/xa51/xa51.dsp, sdcc/src/avr/avra.dsp,
9816           sdcc/src/ds390/ds390a.dsp, sdcc/src/mcs51/mcs51a.dsp,
9817           sdcc/src/pic/pica.dsp, sdcc/src/z80/z80a.dsp,
9818           sdcc/src/xa51/xa51a.dsp, sdcc/as/as_z80.dsp,
9819           sdcc/as/aslink.dsp, sdcc/as/asx8051.dsp, sdcc/packihx/packihx.dsp:
9820         - added Release configuration in VS projects
9821         - review of compiler an linker options
9822         - VC .exe files are generated in bin_vc directory, not to interfere
9823           with binaries generated from other projects (cygwin, mingw, bcc ...)
9824
9825         * sdcc/src/yacc.dsp: added
9826
9827         * sdcc/config.dsp, sdcc/configure_vc.awk, sdcc/sdcc_vc_in.h:
9828         added - genarate sdcc_vc.h using sdcc_vc_in.h as template
9829         and insert the version number definitions from .version
9830
9831         * sdcc/support/cpp2/sdcpp.dsp: added - VC project for sdcpp
9832
9833         * sdcc/support/cpp2/sdcppa.dsp, sdcc/support/cpp2/auto-host_vc_in.h:
9834         added - genarate auto-host.h using auto-host_vc_in.h as template
9835
9836         * sdcc/sdcc_vc.h,
9837         removed from CVS, generated automatically
9838
9839 2002-08-25  Bernhard Held <bernhard AT bernhardheld.de>
9840         * support/scripts/inc2h.pl: use gputils or gpasm (from Nathan Hurst)
9841
9842 2002-08-11  Borut Razem <borut.razem AT siol.net>
9843         * support/Util/NewAlloc.c: removed unneeded #include "sdccconf.h" (suggested by Jesus Calvino-Fraga)
9844
9845 2002-08-10  Borut Razem <borut.razem AT siol.net>
9846         * src/SDCCmain.c (main):
9847         file preOutName was unlinked before closed. This seems to be OK on UNIX and cygwin
9848         platforms, but it doesn't work with Visual Studio: the opened file can not be removed.
9849         The consequence was that some temporary files were not removed.
9850
9851         * src/SDCCglue.c:
9852         unification of code in functions tempfilename() and tempfile():
9853         function tempnam() is defined in Visual Studio 6.0 and .NET
9854
9855         * sdcc/sdcc.dsw: removed project sdcpp, added project xa51a
9856
9857         * sdcc/src/src.dsp, sdcc/src/avr/avr.dsp, sdcc/src/ds390/ds390.dsp,
9858           sdcc/src/mcs51/mcs51.dsp, sdcc/src/pic/pic.dsp, sdcc/src/z80/z80.dsp:
9859         - removed compiler command line option /WX: Treats all warnings as errors
9860         - update a list of source files, included into the project
9861
9862         * sdcc/src/avr/avra.dsp, sdcc/src/ds390/ds390a.dsp, sdcc/src/mcs51/mcs51a.dsp,
9863           sdcc/src/pic/pica.dsp, sdcc/src/z80/z80a.dsp:
9864         changed project type to Generic Project so that can be correcly converted to VS.NET project
9865
9866         * sdcc/as/mcs51/asm.h: definition of PATH_MAX for MSC
9867
9868         * sdcc/src/SDCCast.c: solved MSC error in function decorateType()
9869
9870         * sdcc/src/SDCC.y: added missing ending ';' to rules to get rid of bison warnings
9871
9872         * dcc/src/ds390/ralloc.c, sdcc/src/mcs51/ralloc.c:
9873         added return 0 statements after assert() to make compiler happy
9874
9875         * sdcc/src/xa51/peeph.rul, sdcc/src/xa51/peeph.def, sdcc/src/z80/ralloc.c:
9876         added newline in the def file to keep MSC compiler satisfied
9877
9878         * sdcc/src/z80/gen.c:
9879         - function strcasecmp() is not defined in MSC (and probably also in BORLANDC),
9880           so it is replaced with STRCASECMP, which is defined as stricmp in case of MSC and BORLANDC
9881         - solved MSC error in function aopDump()
9882
9883         * sdcc_vc.h: define PREFIX as "\\sdcc"
9884
9885 2002-07-18  Bernhard Held <bernhard AT bernhardheld.de>
9886         * src/SDCCast.c (decorateType): fixed access to array of structures http://sourceforge.net/mailarchive/forum.php?thread_id=902690&forum_id=4107
9887
9888 2002-06-22  Scott Dattalo <scott AT dattalo.com>
9889         * src/pic/*: Numerous bug fixes. Flow analysis has been enhanced.
9890         - Rewrote the register banking algorithm.
9891         - Added pCode live-range analysis to registers (for now, only non-used and
9892         singly-used registers optimized away)
9893
9894         * src/pic/pcoderegs.[ch]: Added new files for pCode live-range analysis
9895
9896         * 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.
9897
9898 2002-05-10  Scott Dattalo <scott AT dattalo.com>
9899         * src/pic/*: Added support for multiplication. Fixed many,many bugs.
9900
9901 2002-04-22  Michael Hope  <michaelh AT vroom>
9902
9903         * device/lib/z80/printf.c: Changed emitter to volatile to work around a pcall bug.
9904
9905         * configure.in (DD_COPT): Added include support required for gbdk.
9906
9907         * .version: Bumped version number just to increase it.
9908
9909         * src/SDCCmain.c: Added -nostdinc to the default options.
9910
9911 2002-04-15  Michael Hope  <michaelh AT vroom>
9912
9913         * device/lib/z80/printf.c (sprintf): Added.
9914
9915         * src/z80/ralloc.c (packRegisters): Disabled pack HL use for GB as it's broken.
9916
9917         * src/z80/peeph.def: Added transpose redundent load rule.
9918
9919         * src/z80/main.c: Added force callee saves for jaune.
9920
9921         * src/port.h: Removed the i186 and tlcs-900h ports as they weren't being being developed.
9922
9923         * src/SDCCmain.c: Pulled the options definition out so that you can add port specific options without changing the main file.
9924
9925 2002-03-28  Johan Knol  <johan AT balder>
9926
9927         * src/SDCCval.c: fixed bug #532436
9928
9929 2002-03-14  Scott Dattalo <scott AT dattalo.com>
9930         * /src/port.h:
9931         Added "char *Processor" field to the port structure.
9932
9933         * /src/SDCCmain.c:
9934         Added -p option. Allows port dependent processor to be specified.
9935
9936         * all ports:
9937         Initialized the new field char *Processor field to NULL in all ports
9938
9939         * /src/pic/*:
9940         Compiler generated registers for interrupt context saving
9941         were not getting allocated.
9942
9943 2002-03-16  Sandeep Dutta  <sandeep AT ddi.com>
9944
9945         * /src/SDCCast.c:
9946         Fixed left shift. Will promote the left side of a left shift
9947         if a) left shifting more than size of operand or b) when assigned
9948         to something size > size of left side
9949
9950 2002-03-14  Scott Dattalo <scott AT dattalo.com>
9951         * src/pic/*
9952         tons of changes. Register allocation has been
9953         rewritten. Added customization for the various PICs. Flow
9954         analysis is restructured. ...
9955
9956         * src/pic/device.h:
9957         Added
9958
9959         * src/pic/device.c:
9960         Added. device.c is a PIC port hack to accomodate variations
9961         in PIC devices.
9962
9963 2002-03-13  Michael Hope  <michaelh AT vroom>
9964
9965         * src/z80/gen.c (genGenPointerGet): Fixed a bug where a pointer in HL is dereferenced into HL but HL is not spilled.  Yeah.
9966
9967 2002-03-04  johanknol  <johanknol AT manik>
9968
9969         * /src/SDCCval.c: fixed
9970
9971         const unsigned char arr[][2] = { { 0, 1 } };
9972         t18.c:1: error: Initializer element is not constant
9973
9974 2002-03-04  bela  <bela AT manik>
9975
9976         * /device/include/mcs51reg.h:
9977         ds89c420 register definition update
9978
9979 2002-03-03    <johan AT FRIJA>
9980
9981         * support/Util/SDCCerr.c: did something, but don't no why anymore
9982
9983         * support/regression/tests/bug-524691.c: made it a little less shy
9984
9985         * src/SDCCast.c (decorateType): fixed bug #524697
9986
9987         * src/SDCCast.c: made some lineno improvements
9988
9989         * src/SDCCval.c (getNelements): changed warning to error
9990
9991         * src/SDCCglue.c (printIvalArray): changed warning to error
9992
9993         * src/SDCCicode.c: fixed a warning for mingw
9994
9995         * src/SDCCast.c (decorateType): fixed the << promotion for ops
9996
9997         * src/SDCCicode.c (geniCodeDivision): divide is shift only for unsigned (bug #524685)
9998
9999 2002-03-02  Sandeep Dutta  <sandeep AT ddi.com>
10000
10001         * src/ds390/peeph.def:
10002         Added some more peephole rules
10003
10004         * src/ds390/gen.c: Various fixes & enhancements
10005
10006         * src/SDCClrange.c, src/SDCClrange.h:
10007         functions "alldefsoutofrange" and "notusedinblock" moved to SDCClrange.c
10008
10009         * src/ds390/ralloc.c:
10010         various fixes & enhancements (ds390) specific
10011
10012         * src/avr/ralloc.c, src/mcs51/ralloc.c, src/pic/ralloc.c, src/xa51/ralloc.c, src/z80/ralloc.c:
10013         Functions "allDefsOutOfRange" & "notUsedinBlock" moved to SDCClrange.c
10014         from rallocs.
10015
10016         * sdcc/src/SDCCcse.c: Better fix for bug # 514308
10017
10018 2002-03-02    <johan AT FRIJA>
10019
10020         * src/SDCCast.c (decorateType): fixed bug #524708
10021
10022         * src/SDCCval.c (floatFromVal): fixed the literal void (whatever that may be)
10023
10024         * src/SDCCicode.c (geniCodePtrPtrSubtract): fixed bug #524691
10025
10026 2002-03-01  Michael Hope  <michaelh AT vroom>
10027
10028         * src/SDCCsymt.c (initCSupport): Removed managling of support function names.
10029
10030         * src/z80/ralloc.c (packRegsForIYUse): Fixed fp bug where four byte operands were packed into IY.
10031
10032 2002-03-01    <johan AT FRIJA>
10033
10034         * src/SDCCglue.c (printIvalPtr): fixed bug #524211
10035
10036         * src/SDCCast.c (decorateType): fixed bug #524209
10037
10038         * src/SDCCval.c (valNot): fixed bug #524195
10039
10040 2002-02-26    <johan AT balder>
10041
10042         * src/xa51/gen.c: fixed a warning
10043
10044         * src/SDCCglue.c (printIvalFuncPtr): fixed bug #522534
10045
10046         * src/SDCCast.c (decorateType): fixed bug #522534
10047
10048 2002-02-23    <johan AT balder>
10049
10050         * src/SDCCdflow.c (computeDataFlow): fixed bug #460088
10051
10052 2002-02-22    <johan AT balder>
10053
10054         * src/SDCCast.c: fixed bug #514865
10055
10056         * src/SDCCy.c ("SDCC.y"): fixed bug #516625
10057
10058 2002-02-21  Sandeep Dutta  <sandeep AT ddi.com>
10059
10060         * sdcc/src/SDCCloop.c:
10061         Previous fix was not good. basic blocks that have "break" or "return" are
10062         not really partof a loop , but live ranges used in these blocks should
10063         be live thru the entire loop, so set partOfLoop but don't add them to
10064         loop region
10065
10066 2002-02-21    <johan AT FRIJA>
10067
10068         * src/SDCCcse.c: fixed bug #514308
10069
10070 2002-02-20  Sandeep Dutta  <sandeep AT ddi.com>
10071
10072         * src/SDCCloop.c:
10073         Fixed BUG #519583. If a conditional block ended in a return/break
10074         statement inside a loop, it was not being considered part of the loop.
10075
10076         * src/SDCCcflow.c: Removed fix (Fixed in SDCCloop.c)
10077
10078 2002-02-10  Karl Bongers <karl AT turbobit.com>
10079
10080         * debugger/*:
10081         Fixed up SDCDB debugger somewhat.  Updated debugger/README
10082         with lots of comments and notes.
10083
10084         * device/examples/test2.c:
10085         Fix bug, "red" variable not being initialized(compiler complained).
10086
10087         * device/examples/Makefile, examples/test3.c:
10088         Add Makefile in device/examples folder, compiles test3.c
10089         for use as a multiple module SDCDB test case.
10090
10091         * sim/ucsim/cmd.src/cmdset.cc:
10092         Took out debug printfs in ucsim "next" command.
10093
10094         * sim/ucsim/xa.src:
10095         Karl and Johan start ucsim XA support.  Most dissassembly working,
10096         about 75% emulation done(plenty of work remaining).
10097
10098         * sim/ucsim/z80.src:
10099         Add Z80 support to ucsim, add test-ucz80 regression test,
10100         notice ucsim/z80 emulation fails on examples/test3.c/itoa code.
10101         Notice z80 compiler fails on examples/test3.c/crc code.
10102
10103 2002-01-30  Sandeep Dutta  <sandeep AT ddi.com>
10104
10105         * src/mcs51/gen.c, src/mcs51/main.c, src/mcs51/ralloc.c:
10106         Added support for --parms-in-bank1
10107
10108         * src/ds390/peeph.def:
10109         added a few more peephole optimzations
10110
10111         * src/ds390/main.c:
10112         1) added __builtin_inp & __builtin_outp used to read in data of given length
10113            from a memory mapped port
10114         2) added __builtin_memcmp
10115         3) added __builtin_swapw swap bytes of a short
10116
10117         * src/ds390/gen.c, src/ds390/gen.h, src/ds390/ralloc.c:
10118         1) handle multiple send & receives from register bank1
10119         2) ralloc can now allocate DPTR1 to some liveRanges
10120
10121         * src/SDCCsymt.c, src/SDCCsymt.h:
10122         changes to handle multiple sends & receives
10123
10124         * src/SDCCptropt.h:
10125         added some pointer arithmetic optimization
10126
10127         * src/SDCCptropt.c:
10128         added some pointer arithmetic optimizations but not stable yet so not
10129         called from anywhere (will get this working shortly)
10130
10131         * src/SDCCopt.c: fixed for multiple sends & receives
10132
10133         * src/SDCCmain.c:
10134         1) added options --parms-in-bank1 (ds390/mcs51) & --protect-sp-update
10135         2) preprocessing done AFTER port->finalizeoptions . This allows ports to
10136            set preprocessor defines (depending on options)
10137
10138         * src/SDCCicode.c, src/SDCCicode.h:
10139         changes made to handle multiple sends & receives
10140
10141         * src/SDCCglobl.h:
10142         Added options --protect-sp-update (ds390) and --parms-in-bank1 (ds390/mcs51)
10143
10144         * src/SDCCcse.c, src/SDCCcse.h:
10145         added function findbackward def (to be used in upcoming optimization)
10146
10147         * src/SDCCcflow.c, src/SDCCcflow.h:
10148         added function returnAtEnd - to determine if a basic block terminates with
10149         a RETURN iCode
10150
10151         * src/SDCCast.c, src/SDCCast.h:
10152         added option parms-in-bank1
10153
10154         * device/lib/_divsint.c, device/lib/_divslong.c, device/lib/_divuint.c
10155         * device/lib/_divulong.c, device/lib/_modsint.c, device/lib/_modslong.c
10156         * device/lib/_modulong.c, device/lib/_mulint.c, device/lib/_mullong.c:
10157         adjusted for --parms-in-bank1 option
10158
10159         * device/include/string.h:
10160         donot redefine "reentrant" keyword
10161
10162         * device/include/ds80c390.h: Added some more SFRs
10163
10164 2002-01-28  Bernhard Held  <bernhard AT bernhardheld.de>
10165
10166         * sim/ucsim: Merged branch ucsim-034-pre3 to main trunk; new version 0.4
10167
10168 2002-01-26  Bernhard Held  <bernhard AT bernhardheld.de>
10169
10170         * src/SDCCast.c (funcOfType): fix usage of double --float-reent
10171
10172 2002-01-22  Bernhard Held  <bernhard AT bernhardheld.de>
10173
10174         * support/regression/fwk/lib/testfwk.c (main): Removed workaround for bug #505387
10175
10176 2002-01-18  Paul Stoffregen  <paul AT pjrc.com>
10177
10178         * Added --xram-movc option
10179
10180 2002-01-13  Bernhard Held  <bernhard AT bernhardheld.de>
10181
10182         * support/regression/Makefile: don't include test-mcs51-stack-auto in target all
10183
10184 2002-01-11  Johan Knol
10185
10186         * Added math lib of Jesus Calvino-Fraga
10187
10188 2002-01-08  Bernhard Held  <bernhard AT bernhardheld.de>
10189
10190         * src/SDCCmain.c (processFile): fix processing of ../../src.c
10191         * support/regression/Makefile: new target test-mcs51-stack-auto
10192         * support/regression/ports/mcs51-stack-auto/spec.mk: added
10193
10194 2002-01-04  Bernhard Held  <bernhard AT bernhardheld.de>
10195
10196         * src/SDCCglue.h: printIvalCharPtr(), not printIvalChar()
10197
10198 2002-01-04  Bernhard Held  <bernhard AT bernhardheld.de>
10199
10200         * support/regression/ports/mcs51/support.c: correct setup of timer / UART
10201
10202 2002-01-03  Bernhard Held  <bernhard AT bernhardheld.de>
10203
10204         * src/SDCCsymt.c (processFuncArgs): fix #498307 by Johan
10205
10206         * src/SDCCglue.h: add definition for printIvalChar()
10207
10208 2002-01-02  Bernhard Held  <bernhard AT bernhardheld.de>
10209
10210         * src/SDCCast.c: fix #498138 by Johan
10211
10212         * src/SDCCglue.c: fix #498138 by Johan
10213
10214 2002-01-02  Bernhard Held  <bernhard AT bernhardheld.de>
10215
10216         * support/regression/Makefile: fix clean
10217
10218         * support/regression/ports/ds390/support.c: fix transmission of last character
10219
10220 2001-12-29  Sandeep Dutta  <sandeep AT ddi.com>
10221
10222         * /sdcc/src/ds390/gen.c:
10223         a) improved computing address of stack variable
10224         b) took out some #if 0 code
10225         c) improved parmBytes adjustment
10226         d) improved genPlusIncr & genMinusIncr
10227         e) genCmp could generate bad code (when left assigned to DPTR)
10228         f) Fixed bug in hasInc
10229
10230         * /sdcc/src/ds390/ralloc.c:
10231         a) packRegsForSupport could mess up live information (Fixed)
10232         b) packRegsDPTRuse could be incorrect for left & right shift
10233
10234         * /sdcc/src/mcs51/ralloc.c:
10235         packRegsForSupport could mess up the live information (Fixed)
10236
10237         * /sdcc/src/mcs51/gen.c: Fixed a bug in hasInc
10238
10239         * /sdcc/src/SDCCast.c:
10240         can reverse a loop even if function call is present as long
10241         as the loop control variable is local & is not passed as parameter
10242
10243 2001-12-24  Sandeep Dutta  <sandeep AT ddi.com>
10244
10245         * /sdcc/ChangeLog: *** empty log message ***
10246
10247         * /sdcc/src/ds390/gen.c, /sdcc/src/ds390/main.c:
10248         More builtin function additions for TININative
10249
10250         * /sdcc/src/ds390/ralloc.c:
10251         Had broken the regression testsuite
10252
10253         * /sdcc/src/SDCCast.c: Fixed a bug in dumptree
10254
10255         * /sdcc/src/SDCCsymt.c, /sdcc/src/SDCCsymt.h:
10256         Added funcattr hasStackParms will be set for reentrant functions when there
10257         are paramteres on the stack, this helps in minimizing frame pointer generation
10258         typeFromStr can handle function pointers now
10259
10260         * /sdcc/doc/builtins.txt, /sdcc/doc/TININative.txt:
10261         *** empty log message ***
10262
10263 2001-12-24  Sandeep Dutta  <sandeep AT ddi.com>
10264
10265         * /src/ds390/gen.c, /src/ds390/main.c:
10266         More builtin function additions for TININative
10267
10268         * /src/ds390/ralloc.c:
10269         Had broken the regression testsuite
10270
10271         * /src/SDCCast.c: Fixed a bug in dumptree
10272
10273         * /src/SDCCsymt.c, /src/SDCCsymt.h:
10274         Added funcattr hasStackParms will be set for reentrant functions when there
10275         are paramteres on the stack, this helps in minimizing frame pointer generation
10276         typeFromStr can handle function pointers now
10277
10278         * /doc/builtins.txt, /doc/TININative.txt:
10279         *** empty log message ***
10280
10281
10282 2001-12-24  Sandeep Dutta  <sandeep AT ddi.com>
10283
10284         * /src/ds390/gen.c, /src/ds390/main.c, /src/ds390/peeph.def, /src/ds390/ralloc.c:
10285         ALPHA version for -mTININative
10286
10287         * /src/izt/i186.c, /src/izt/tlcs900h.c, /src/mcs51/main.c, /src/pic/main.c, /src/z80/main.c, /src/avr/main.c:
10288         updated to reflect changes in the port structure
10289
10290         * /src/port.h:
10291         added function do_assemble (similar to do_link) if non-null this function
10292         will be called to do assembly (-mTININative) requires a multi command
10293         assembly
10294         added function genAssemblerEnd will be called to generate assembler Epilogue
10295
10296         * /src/SDCCsymt.c:
10297         added _JavaNative to debug info printing
10298
10299         * /src/SDCCmain.c: added option --tini-libid
10300         added port->do_assemble function (-mTININative) has a multi command assemble
10301
10302         * /src/SDCCglue.c: Disabled "constExpr" check
10303         added port->genAssemblerEnd function
10304
10305         * /src/SDCCglobl.h: Added option --tini-libid value
10306
10307         * /src/SDCCast.h:
10308         tookout optimizeCompare from the header (has no external references)
10309
10310         * /src/SDCCast.c: made one more function "static"
10311
10312 2001-12-23  Michael Hope  <michaelh AT juju.net.nz>
10313
10314         * src/z80/mappings.i: Added z80asm support.
10315
10316         * src/z80/main.c: Added z80asm support on --asm=z80asm
10317
10318         * src/z80/gen.c: Fixed asm portability issues.
10319
10320         * src/asm.c (tvsprintf): Removed old code, added 'N' for function name.  For extern support.
10321
10322         * src/SDCCglue.c (printExterns): Added global/extern split.
10323
10324 2001-12-17  Bernhard Held  <bernhard AT bernhardheld.de>
10325
10326         * support/regression/Makefile: added test for mcs51 model large
10327
10328         * support/regression/ports/mcs51-large/spec.mk: added test for mcs51 model large
10329
10330         * support/regression/ports/gbz80/spec.mk: added -mgbz80
10331
10332 2001-12-05  Michael Hope  <michaelh AT juju.net.nz>
10333
10334         * src/diff.1 (Index): Many, many optmisiations.  Dhrystone up to 201.
10335
10336 1904-01-06  Michael Hope  <michaelh AT juju.net.nz>
10337
10338         * src/z80/ralloc.c (packRegsForIYUse): Fixed the case where an operand is in direct space.
10339
10340         * src/z80/gen.c (makeFreePairId): Optimised IY load by using a spare pair.
10341
10342 2001-12-02  Bernhard Held  <bernhard AT bernhardheld.de>
10343
10344         * src/mcs51/gen.c (genFunction): avoid excess "inc sp"
10345
10346         * support/regression/tests/simplefloat.c: Port to mcs51.
10347
10348 2001-11-25  Michael Hope  <michaelh AT juju.net.nz>
10349         * support/regression/tests/bug-485362.c: Added.
10350
10351         * support/regression/tests/simplefloat.c (testDivNearOne): Added.
10352
10353         * src/z80/gen.c (aopOp): Fixed case where left and result are in the same spill loc and they have different sizes.
10354
10355         * src/z80/peeph.def: Added rules for optimising two byte compares on the same thing, and to optimise two ptr assign.
10356
10357         * src/z80/gen.c (aopDump): Added a dump function.
10358
10359 2001-11-25  Bernhard Held  <bernhard AT bernhardheld.de>
10360         * sim/ucsim/s51.src/glob.cc: DS390 SFRs and bits added.
10361
10362         * sim/ucsim/s51.src/port.cc: Port 4 and 5 added.
10363
10364         * sim/ucsim/s51.src/regs51.h: DS390 SFRs added.
10365
10366         * sim/ucsim/s51.src/uc390.cc: Some details improved, CKRDY works for tinibios.
10367
10368         * sim/ucsim/s51.src/uc390cl.h: Work in progress.
10369
10370         * sim/ucsim/sim.src/uccl.h: 6 ports for DS390.
10371
10372         * support/regression/fwk/lib/testfwk.c: Run with tinibios.
10373
10374         * support/regression/ports/mcs51/spec.mk: Fine tuninig.
10375
10376         * support/regression/ports/ds390/support.c: Use tinibios.
10377
10378         * support/regression/ports/ds390/spec.mk: Fine tuning, use tinibios.
10379
10380 2001-11-23  Michael Hope  <michaelh AT juju.net.nz>support/regression/tests/bug-460010.c
10381
10382         * src/z80/ralloc.c (packRegsForHLUse3): Changed to not pack into HL if anything is in direct space.
10383         (packRegsForHLUse3): Added packing support for send, cast, and return value from a call.
10384
10385         * src/z80/peeph.def: Added rules for optimising pushes of part of a pair.
10386
10387         * src/z80/gen.c (emitCall): Changed the stack fixup to not use HL.
10388
10389 2001-11-18  Michael Hope  <michaelh AT juju.net.nz>
10390
10391         * src/z80/gen.c (genCmp): Fixed compare on unsigned.
10392
10393         * src/z80/ralloc.c (packRegsForHLUse3): Created and optimised.
10394         (packRegsForIYUse): Created and optimised.
10395
10396 2001-11-07  Michael Hope  <michaelh AT juju.net.nz>
10397
10398         * support/regression/tests/float.c (testFloatAdd): Fixed up warning.
10399 2001-11-18  Bernhard Held  <bernhard AT bernhardheld.de>
10400
10401         * sdcc/support/regression/tests/bug-460010.c: fix seg violation on host
10402
10403         * sdcc/support/regression/tests/muldiv.c: fix output on mcs51
10404
10405         * sdcc/support/regression/tests/stacks.c: fix DSEG overflow on mcs51
10406
10407 2001-11-07  Bernhard Held  <bernhard AT bernhardheld.de>
10408
10409         * sdcc/sim/device/lib/_gptrget.c: mem region 5 (idata) added
10410
10411         * sdcc/sim/device/lib/_gptrput.c: mem region 5 (idata) added
10412
10413 2001-11-07  Bernhard Held  <bernhard AT bernhardheld.de>
10414
10415         * sdcc/sim/ucsim/globals.cc: New: IXRAM.
10416
10417         * sdcc/sim/ucsim/stypes.h: New: IXRAM.
10418
10419         * sdcc/sim/ucsim/s51.src/uc390.cc: New: IXRAM.
10420
10421 2001-11-07  Michael Hope  <michaelh AT juju.net.nz>
10422
10423         * src/z80/ralloc.c (packRegsForHLUse): Banned IFXs from being packed into HL.
10424         (packRegsForHLUse): Added rule to pack address of/pointer get for itemps into HL for the Z80.
10425         (packRegsForAccUse2): Added rule to pack hbit IFXs into A.
10426
10427         * src/z80/main.c (_setDefaultOptions): Made float code re-entrant by default.
10428
10429         * src/z80/gen.c (aopGetLitWordLong): Added word support for floats.
10430         (genNotFloat): Added.
10431         (genUminusFloat): Added.
10432
10433         * device/lib/z80/Makefile: Added floating pt stubs.
10434
10435         * device/lib/Makefile.in (Z80SOURCES): Added floating pt support.
10436
10437         * src/z80/gen.c (genIpush): Fixed up a push of one byte when left is in a pair.
10438
10439         * device/lib/_fsadd.c (__fsadd): Fixed up return where the numbers are hugely different.
10440
10441 2001-11-07  Bernhard Held  <bernhard AT bernhardheld.de>
10442
10443         * sdcc/sim/ucsim/s51.src/glob.cc: Minor fix.
10444
10445         * sdcc/sim/ucsim/s51.src/regs51.h: Minor fix.
10446
10447         * sdcc/support/regression/Makefile: Add port ds390.
10448
10449         * sdcc/support/regression/ports/mcs51/spec.mk: Minor change.
10450
10451         * sdcc/support/regression/ports/z80/spec.mk: Minor change.
10452
10453         * sdcc/support/regression/ports/ds390/spec.mk: Added.
10454
10455         * sdcc/support/regression/ports/ds390/support.c: Added.
10456
10457         * sdcc/support/regression/ports/ds390/uCsim.cmd: Added.
10458
10459         * sdcc/support/regression/ports/mcs51/timeout.c: Cut.
10460
10461         * sdcc/support/regression/fwk/lib/timeout.c: Paste.
10462
10463 2001-11-04  Michael Hope  <michaelh AT juju.net.nz>
10464
10465         * device/include/malloc.h: Added z80 and gbz80 support.
10466
10467         * device/lib/gbz80/heap.s: Added.
10468
10469         * device/lib/z80/heap.s: Added.
10470
10471         * device/lib/malloc.c: Added z80 and gbz80 support.
10472
10473         * support/regression/tests/malloc.c (testMalloc): Added.
10474
10475         * src/SDCCmain.c (parseCmdLine): Added support for -Wp.
10476
10477         * support/regression/tests/bug-478094.c: Added.
10478
10479         * src/z80/gen.c (commitPair): Fixed silly gbz80/z80 commit to static bug.
10480
10481 2001-11-04  Bernhard Held  <bernhard AT bernhardheld.de>
10482
10483         * sdcc/sim/ucsim/s51.src/uc390cl.h: Improvement for ds390 to run regression tests
10484
10485         * sdcc/sim/ucsim/s51.src/uc390.h: Improvement for ds390 to run regression tests
10486
10487         * sdcc/sim/ucsim/s51.src/regs51.h: Improvement for ds390 to run regression tests
10488
10489         * sdcc/sim/ucsim/s51.src/glob.cc: Improvement for ds390 to run regression tests
10490
10491         * sdcc/support/regression/tests/bug-460010.c: Small change for ds390
10492
10493 2001-11-04  Michael Hope  <michaelh AT juju.net.nz>
10494
10495         * src/z80/peeph-gbz80.def: Removed a bad sub optimisation.
10496
10497 2001-11-03  Michael Hope  <michaelh AT juju.net.nz>
10498
10499         * support/regression/tests/bug-477927.c: Added.
10500
10501         * src/z80/peeph.def: Added minor rules.
10502
10503         * src/z80/gen.c (genPlusIncr): Added an extra plusinc rule.
10504
10505         * src/z80/peeph.def: Added jump optimisation modification.
10506
10507 2001-11-01  Michael Hope  <michaelh AT juju.net.nz>
10508
10509         * src/SDCCmain.c (linkEdit): Added runtime path detection to the mcs51 port.
10510
10511 2001-10-30  Michael Hope  <michaelh AT juju.net.nz>
10512
10513         * support/regression/tests/funptrs.c: Added.
10514
10515 2001-10-29  Michael Hope  <michaelh AT juju.net.nz>
10516
10517         * src/z80/ralloc.c (packRegsForHLUse): Fixed up bad spill due to pushing one byte via HL.
10518
10519 2001-10-28  Michael Hope  <michaelh AT juju.net.nz>
10520
10521         * src/z80/gen.c (genArrayInit): Made it work for on stack arrays.
10522
10523         * src/z80/main.c (gbz80_port =): Added rle support to the gbz80 port.
10524
10525         * src/z80/gen.c (genMinus): Fixed for where the result is one byte.
10526         (movLeft2ResultLong): Created.
10527
10528         * src/z80/ralloc.c (packRegsForHLUse): Added a couple of simple cases for the GB.
10529         (joinPushes): Added.  Joins two char pushes into a word push.
10530
10531 2001-10-27  Michael Hope  <michaelh AT juju.net.nz>
10532
10533         * support/cpp2/Makefile.in (install): Added creation of dest dir.
10534
10535         * support/makebin/Makefile (install): Added creation of dest dir.
10536
10537 2001-10-24 Karl Bongers <karl AT turbobit.com>
10538
10539         * configure.in, configure, Makefile, support/cpp: Removed cpp folder, since we have new cpp2 preprocessor code.
10540
10541 2001-10-21  Michael Hope  <michaelh AT juju.net.nz>
10542
10543         * src/z80/ralloc.c: Turned off faulty pack for one use.
10544
10545         * src/z80/peeph-gbz80.def: Removed redundent restart options.
10546
10547         * src/z80/gen.c (genMult): Added native mul for constants on the z80 and gbz80.
10548
10549 2001-10-21  Bernhard Held  <bernhard AT bernhardheld.de>
10550
10551         * support/regression/Makefile: Improved clean
10552
10553         * support/regression/ports/gbz80/spec.mk: Added clean
10554
10555         * support/regression/ports/host/spec.mk: Added clean
10556
10557         * support/regression/ports/z80/spec.mk: Added clean
10558
10559         * support/regression/ports/mcs51/spec.mk: Added clean, little improvements
10560
10561         * support/regression/ports/mcs51/timeout.c: little improvements
10562
10563 2001-10-17  Michael Hope  <michaelh AT juju.net.nz>
10564
10565         * device/lib/malloc.c (MEMHEADER): Fixed against new pedantic pointers.
10566
10567         * support/regression/fwk/include/testfwk.h: Fixed up to use function pts correctly.
10568
10569         * support/regression/generate-cases.py: Fixed up to use function pts correctly.
10570
10571 2001-10-16  Bernhard Held  <bernhard AT bernhardheld.de>
10572
10573         * support/regression/port/mcs51/spec.mk: add timeout for uCsim
10574
10575         * support/regression/port/mcs51/timeout.c: add timeout for uCsim
10576
10577 2001-10-13  Michael Hope  <michaelh AT juju.net.nz>
10578         * src/z80/gen.c (emitCall): Fixed up missing spill of HL when used to assign the result value.
10579
10580         * src/z80/ralloc.c: Turned off pack for one use as it's quite broken.
10581
10582         * src/SDCCmain.c (linkEdit): Added support for passing a legacy command line through the processor.
10583
10584         * src/mcs51/main.c (_linkCmd): Added bin path to command.
10585
10586         * src/SDCCmain.c (initValues): Added support for when it it called just to link.
10587
10588         * as/mcs51/lklibr.c (libfil;): Turned off 'library file' message.
10589
10590         * src/SDCCval.c (constVal): Fixed usage of 'L' modifier problems on ppc.
10591
10592         * support/regression/tests/longor.c: Added.
10593
10594 2001-10-11  Bernhard Held  <bernhard AT bernhardheld.de>
10595
10596         * as/mcs51/asdata.c: replaced FILENAME_MAX with PATH_MAX
10597
10598         * as/mcs51/aslink.h: define PATH_MAX
10599
10600         * as/mcs51/asm.h: define PATH_MAX
10601
10602         * as/mcs51/asmain.c: replaced FILENAME_MAX with PATH_MAX
10603
10604         * as/mcs51/asnoice.c: replaced FILENAME_MAX with PATH_MAX
10605
10606         * as/mcs51/lklex.c: replaced FILENAME_MAX with PATH_MAX
10607
10608         * as/mcs51/lkmain.c: replaced FILENAME_MAX with PATH_MAX
10609
10610         * src/SDCCglobl.h: define PATH_MAX
10611
10612         * src/SDCCmacro.c: replaced FILENAME_MAX with PATH_MAX
10613
10614         * src/SDCCmain.c: replaced FILENAME_MAX with PATH_MAX
10615
10616 2001-10-11  Michael Hope  <michaelh AT juju.net.nz>
10617
10618         * src/z80/gen.c (gencjneshort): Fixed
10619
10620         * src/z80/ralloc.c (packRegsForHLUse): Added pack into HL for cast then ipush.
10621
10622 2001-10-09  Michael Hope  <michaelh AT juju.net.nz>
10623
10624         * support/regression/tests/bug-469671.c: Added.
10625
10626         * src/z80/gen.c (shiftIntoPair): Fixed up warning.
10627
10628 2001-10-08  Michael Hope  <michaelh AT juju.net.nz>
10629
10630         * src/SDCCmain.c: Added --fommit-frame-pointer option and implemented in the z80 port.
10631
10632         * src/z80/gen.c (genPlus): Fixed to work with extended stack.  Also fixed genMinus, genCmp.  genUMinus is still left.
10633
10634 2001-10-08  Bernhar Held  <bernhard AT bernhardheld.de>
10635
10636         * src/SDCCmain.c (preProcess): added define SDCC_NOOVERLAY
10637
10638         * src/device/lib/_mulint.c  : removed hint: nooverlay bug
10639
10640         * src/device/lib/_mullong.c : removed hint: nooverlay bug
10641
10642         * src/device/lib/_divuint.c : removed hint: nooverlay bug
10643
10644         * src/device/lib/_divulong.c: removed hint: nooverlay bug
10645
10646         * src/device/lib/_moduint.c : removed hint: nooverlay bug
10647
10648         * src/device/lib/_modulong.c: removed hint: nooverlay bug
10649
10650 2001-10-07  Michael Hope  <michaelh AT juju.net.nz>
10651
10652         * 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.
10653
10654         * support/Util/NewAlloc.c (freeTrace): Changed free for the gc case to not free at all.  Fixes runtime segfault.
10655
10656         * support/regression/tests/scott-compare3.c (c_abcd): Fixed up casts.
10657
10658 2001-10-07    <johan AT FRIJA>
10659
10660         * device/lib/gets.c (gets): fixed the return value.
10661
10662 2001-10-06  Michael Hope  <michaelh AT juju.net.nz>
10663         * src/SDCCmain.c (WRITE_SEG_LOC): Fixed up to use Safe_strdup.
10664
10665         * 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.
10666
10667         * 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.
10668
10669         * src/z80/gen.c (genZ80Code): Added de-allocation via trace support.
10670
10671         * src/pic/gen.c: Removed Safe_strdup.
10672
10673         * configure.in: Added option to enable libgc support.
10674
10675         * src/SDCCbitv.c (bitVectnBitsOn): Optimised.
10676         (bitVectUnion): Optimised.
10677         (bitVectIntersect): Optimised.
10678         (bitVectBitsInCommon): Optimised.
10679         (bitVectCplAnd): Optimised.
10680
10681         * support/makebin/makebin.c (usage): Removed getopt as mingw32 doesn't have it.  Sigh.
10682
10683 2001-10-03 Bernhard Held <bernhard AT bernhardheld.de>
10684
10685         * src/SDCCmain.c: distinguish between assembler debug and plain options
10686
10687         * src/avr/main.c:   remove standard assembler options
10688
10689         * src/ds390/main.c: remove standard assembler options
10690
10691         * src/mcs51/main.c: remove standard assembler options
10692
10693         * src/port.h: removed "PENDING" comment
10694
10695 2001-10-03 Bernhard Held <bernhard AT bernhardheld.de>
10696
10697         * src/device/lib/_mulint.c  : new, with assember functions
10698
10699         * src/device/lib/_mullong.c : new, with assember functions
10700
10701         * src/device/lib/_divuint.c : with assember functions
10702
10703         * src/device/lib/_divsint.c : with assember functions
10704
10705         * src/device/lib/_divulong.c: with assember functions
10706
10707         * src/device/lib/_divslong.c: with assember functions
10708
10709         * src/device/lib/_moduint.c : with assember functions
10710
10711         * src/device/lib/_modsint.c : with assember functions
10712
10713         * src/device/lib/_modulong.c: with assember functions
10714
10715         * src/device/lib/_modslong.c: with assember functions
10716
10717         * src/device/lib/libint.lib:  replaced _muluint.c  and _mulsint.c  by _mulint.c
10718
10719         * src/device/lib/liblong.lib: replaced _mululong.c and _mulslong.c by _mullong.c
10720
10721         * src/device/lib/Makefile.in: replaced _muluint.c  and _mulsint.c  by _mulint.c
10722                                       replaced _mululong.c and _mulslong.c by _mullong.c
10723
10724 2001-10-03 Bernhard Held <bernhard AT bernhardheld.de>
10725
10726         * src/SDCCsymt.c: sequence of specifiers in pintTypeChain() corrected
10727
10728 2001-10-01 Bernhard Held <bernhard AT bernhardheld.de>
10729
10730         * src/SDCCglue.c: test, if win32api is available for MINGW
10731
10732 2001-10-01 Bernhard Held <bernhard AT bernhardheld.de>
10733
10734         * src/SDCCsymt.c: no more _modifier in printTypeChain()
10735         * support/regression/tests/driverstruct.c: REENTRANT for mcs51
10736         * support/regression/ports/gbz80/spec.mk: removed GENERIC
10737         * support/regression/ports/host/spec.mk: removed GENERIC
10738         * support/regression/ports/mcs51/spec.mk: removed GENERIC
10739         * support/regression/ports/z80/spec.mk: removed GENERIC
10740
10741 2001-10-01  Michael Hope  <michaelh AT juju.net.nz>
10742
10743         * support/regression/fwk/lib/testfwk.c (__printf): Removed GENERIC.
10744
10745         * support/regression/tests/bug-467035.c: Created.
10746
10747 2001-10-01    <johan AT FRIJA>
10748
10749         * src/SDCC.y: fixed bug #466586 part 1
10750
10751 2001-10-01  Johan Knol <johan.knol AT iduna.nl>
10752
10753         * SDCCicode.c: z80 has no generic pointers
10754         * removed -s from strip in all Makefile(.in)'s. It is not needed, but Solaris chocks on it.
10755
10756 2001-09-30  Michael Hope  <michaelh AT juju.net.nz>
10757
10758         * sim/ucsim/cmd.src/Makefile.in ($(PRJDIR)/libcmd.a): Changed all ar references to $(AR) for Solaris.
10759
10760 2001-09-29  Michael Hope  <michaelh AT juju.net.nz>
10761
10762         * Makefile (sdcc-libs): Added makebin to the list of standard targets.
10763
10764         * support/regression/ports/z80/spec.mk: Updated to use env for sdcc bin dir for automatic regression.
10765
10766 2001-09-25  Michael Hope  <michaelh AT juju.net.nz>
10767
10768         * configure.in: Fixed up so that ucsim is only configured once.
10769
10770         * support/cpp2/configure.in: Fixed to use the program transform to append the .exe for the win32 build.
10771
10772         * src/SDCCutil.c (getPrefixFromBinPath): Fixed up to work with win32 in all of its glory.
10773         (getPathDifference): As above.
10774
10775         * src/SDCCmain.c (preProcess): Changed to use a temporary file in a proper temp directory.  Fixed case where pre-processing only.
10776
10777         * src/SDCCglue.c (tempfilename): Added function for pre-processor.
10778
10779 2001-09-23  Michael Hope  <michaelh AT juju.net.nz>
10780         * .version: Updated to 2.3.1
10781
10782         * src/z80/main.c (z80_port =): Added macro based linker and assembler command line support.
10783         Added copyright header.
10784
10785         * src/SDCCmain.c: Shifted various functions into SDCCutil.c
10786         (assemble): Added support for macro based assembler commands.
10787         (linkEdit): Added support for macro based linker commands.
10788         (preProcess): Changed the pre-processor to use macros.
10789         (_setPaths): Added functionality to autodetect the include, lib and bin dir paths.
10790         (_discoverPaths): Added support for overriding the install directory using the SDCCDIR env variable.
10791
10792         * device/lib/z80/crt0.s: Added module name for debugging.
10793
10794 2001-09-20  Michael Hope  <michaelh AT juju.net.nz>
10795
10796         * src/SDCCmain.c (printVersionInfo): Added the build date to the version info.
10797
10798         * src/SDCChasht.c (hTabDeleteByKey): Fixed delete as it would delete the last item from a bucket even if it wasn't the real one.
10799
10800         * src/SDCCglue.c: Moved gc_strdup to SDCCutil.c
10801
10802         * src/Makefile.in: Added SDCCmacro and SDCCutil
10803
10804 2001-09-19  Michael Hope  <michaelh AT juju.net.nz>
10805
10806         * src/SDCCmain.c (printVersionInfo): Added the build date to the version info.
10807
10808 2001-09-16    <johan AT FRIJA>
10809
10810         * 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.
10811
10812 2001-09-15    <johan AT FRIJA>
10813
10814         * src/mcs51/ralloc.c: (findAssignToSym): fixed bug #460662 part 1
10815         * src/ds390/ralloc.c (findAssignToSym): fixed bug #460662 part 1
10816
10817 2001-09-11    <johan AT FRIJA>
10818
10819         * src/SDCCval.c (valDiv Mod Minus Plus Shift): keep litteral expressions as small as possible (bug #460010)
10820
10821 2001-09-10  Michael Hope  <michaelh AT juju.net.nz>
10822
10823         * support/regression/tests/bug-460444.c: Added test case.
10824
10825         * src/z80/gen.c (genOr): bug 460444: if (a ^ lit) was broken for &, |, and ^.
10826         (genCast): Added justification for all of the asserts.
10827
10828 2001-09-10  Bernhard Held <bernhard AT bernhardheld.de>
10829
10830         * support/regression/support.c: _xdata replaced by xdata
10831
10832         * support/regression/spec.mk: removed _generic
10833
10834 2001-09-09  Michael Hope  <michaelh AT juju.net.nz>
10835
10836         * src/pic/ralloc.c (debugLogRegType): Removed some old types to get it to compile.
10837
10838         * src/z80/gen.c (shiftR2Left2Result): Improved the case when v = v >> n for small values of n to use less code space and time.
10839         (genrshTwo): Fixed v = v >> n where v is a negative int and n is > 8: bug 460010.
10840
10841         * src/z80/peeph.def: Added a rule to optimise shift then compare.
10842
10843         * support/regression/tests/bug-460000.c (testShiftByParam): Added test case.
10844
10845         * support/regression/tests/bug-460010.c: Added test case.
10846
10847         * support/regression/Makefile (test-host): Removed a silly 'clean' target when testing against gcc.
10848
10849 2001-09-09  Bernhard Held <bernhard AT bernhardheld.de>
10850
10851         * support/regression/Makefile: inter-port-clean adjusted for mcs51
10852
10853         * support/regression/testfwk.c: removed workaround for bug #436344
10854
10855         * support/regression/tests/bp.c: use less memory with mcs51
10856
10857         * support/regression/tests/bug-441448.c: use less memory
10858
10859         * support/regression/tests/ports/mcs51/spec.mk: cleanup, use --stack-after-data
10860
10861         * support/regression/collate-results.py: typo
10862
10863 2001-09-08  Michael Hope  <michaelh AT juju.net.nz>
10864
10865         * support/regression/tests/fetchoverlap.c: Added new test case.
10866
10867         * support/regression/tests/bp.c: Added new test case.
10868
10869         * support/regression/tests/bug-448984.c: Added new test case.
10870
10871         * support/regression/tests/pow2shifts.c: Added new test case.
10872
10873         * src/z80/gen.c: Turned off the noise it normally generates for the release.
10874         (genlshTwo): Fixed right shift for count > 8.
10875
10876         * src/z80/ralloc.c: Disabled most of the ACC packing rules as they weren't getting hit and weren't at all safe.
10877
10878 2001-09-08    <johan AT FRIJA>
10879
10880         * src/SDCCicode.c (geniCodeCall): a CPOINTER can be used as a function
10881
10882 2001-09-07    <johan AT FRIJA>
10883
10884         * src/SDCCicode.c (newiCodeCondition): fixed bug #456235 (1.77)
10885
10886         * src/SDCCglue.c (emitRegularMap): only delete a symbol when it is a symbol
10887
10888 2001-09-06    <johan AT FRIJA>
10889
10890         * src/SDCC.y: this could be a fix for bug #458744 (1.37)
10891         * bernhard noted me at this: "() equals to (void)" (1.38)
10892
10893 2001-09-05    <johan AT FRIJA>
10894
10895         * src/SDCCglue.c (emitRegularMap): a fix for bug #458099/2
10896
10897 2001-09-04    <johan AT FRIJA>
10898
10899         * src/SDCCsymt.c (checkSClass): a fix for bug #458099/1
10900
10901
10902 2001-09-04  Paul Stoffregen  <paul AT pjrc.com>
10903
10904         * pragma noinduction broke memcpy on mcs51 large model.  Moved it inside z80 optimization
10905
10906 2001-09-03  Michael Hope  <michaelh AT juju.net.nz>
10907
10908         * link/z80/aslink.h: Fixed path for PATH_MAX
10909
10910 2001-09-02  Michael Hope  <michaelh AT juju.net.nz>
10911
10912         * src/z80/gen.c (fetchLitPair): Changed so that it properly caches direct space references.
10913
10914         * support/regression/tests/addsub.c: Added cases to cover all the +, - combinations.
10915
10916         * support/regression/tests/uminus.c: Added a test for the unary minus operator.
10917
10918         * 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.
10919
10920 2001-09-01  Michael Hope  <michaelh AT juju.net.nz>
10921
10922         * src/z80/gen.c: Fixed up generator to pass the regresion tests, specifically fixing loads for longs, genCmp, and turned on the map file.
10923         (genCmp): Fixed up genCmp for the GB with longs.
10924
10925         * device/lib/gbz80/Makefile: Fixed up all the libraries to pass the regression tests.
10926
10927         * support/regression/ports/host/spec.mk: Updated to compile with the new type specifiers.
10928
10929         * device/lib/Makefile.in (Z80SOURCES): Removed old _mululong, _mulslong, and unneeded _mulint.
10930
10931         * device/lib/_mullong.c (_mulslong): Changed to actually return a value :)
10932
10933 2001-08-30  Paul Stoffregen  <paul AT pjrc.com>
10934
10935         * added peepholes 223 to 231 to mcs51 port.  These improve code when using large model.
10936
10937 2001-08-30  Michael Hope  <michaelh AT juju.net.nz>
10938
10939         * 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.
10940
10941         * src/z80/gen.c (genPlus): Changed bad long add for gb to a fall through.
10942
10943 2001-08-29  Michael Hope  <michaelh AT juju.net.nz>
10944
10945         * link/z80/aslink.h: Fixed long file name support.  Is now based off PATH_MAX instead of a constant.
10946
10947         * src/z80/gen.c: Fixed add and sub for the case where left or right are in static space.
10948
10949 2001-08-30 Bernhard Held   <bernhard AT bernhardheld.de>
10950
10951   * sim/ucsim/configure:    little improvement of Cygwin-detection
10952   * sim/ucsim/configure.in: little improvement of Cygwin-detection
10953   * sim/ucsim/cmd.src/newcmdcl.h: include <sys/types.h> to define fd_set automated build
10954   * support/regression/tests/bug-221100.c: small changes for mcs51
10955   * support/regression/tests/bug-221168.c: small changes for mcs51
10956   * support/regression/tests/bug-227710.c: small changes for mcs51
10957   * support/regression/tests/staticinit.c: small changes for mcs51
10958   * as/mcs51/aslink.h: accept everything as symbol name in rel-files, bug fix ID 452601
10959   * as/mcs51/lklex.c:  accept everything as symbol name in rel-files, bug fix ID 452601
10960   * as/mcs51/lksym.c:  accept everything as symbol name in rel-files, bug fix ID 452601
10961
10962 $Revision$