* device/lib/Makefile.in (target port-specific-objects-pic16):
[fw/sdcc] / ChangeLog
1 2004-10-03 Vangelis Rokas <vrokas AT otenet.gr>
2
3         * device/lib/Makefile.in (target port-specific-objects-pic16):
4         changed * to *.* so to ignore the CVS directory,
5         * src/pic16/gen.c (pic16_freeAsmop): added code to store result of
6         stacked variables back in stack,
7         * (genEndFunction): fixed bug reported by G.M. Gallant with stack
8         corruption
9
10 2004-10-01 Vangelis Rokas <vrokas AT otenet.gr>
11
12         * .version: bumped version number to 2.4.5
13         * support/Util/SDCCerr.h: added warning W_POSSBUG2.
14         * support/Util/SDCCerr.c (messages structure): added entry for
15         W_POSSBUG2
16         
17         Large cumulative patch for pic16 port and libraries.
18         * device/include/pic16/sdcc-lib.h,
19         * device/include/pic16/stdarg.h,
20         * device/include/asm/pic16/features.h,
21         * device/include/lib/pic16/libsdcc/gptr/{*.c, Makefile}: NEW,
22         * device/include/pic16/float.h: changes reentrant keyword with
23         _FS_REENTRANT, added prototype for __fsneq, included sdcc-lib.h
24         * device/lib/pic16/libsdcc/Makefile: added target directory gptr,
25         updated target build-libraries to include objects from gptr,
26         * device/lib/pic16/libsdcc/{char,int,long}/*.c: added macro
27         _IL_REENTRANT to all function headings, included sdcc-lib.h header,
28         * device/lib/pic16/libsdcc/float/*.c: added macro _FS_REENTRANT to
29         all function headings,
30         * src/SDCCmain.c: added global parameter userIncDirsSet,
31         * (parseCmdLine): when option -I is encountered add directory to
32         userIncDirsSet too,
33         * src/version.awk: added space between control and long,
34         * src/pic16/NOTES: added some notes for the port,
35         * src/pic16/gen.c: added prototype for mov2fp function,
36         * (fReturnpic16[]): properly named return value registers,
37         * (_G structure): added fields stackRegSet, fregsUsed, stack_lat,
38         * (aopForSym): added code to handle symbols with onStack flag set,
39         symbols onStack are allocated PTRSIZE bytes,
40         * (aopFreeAsmop): handles special case where asmops are stack objects,
41         * (aopGet, pic16_popGet): adde cod to handle new asmop AOP_STA,
42         * (pic16_popGetTempReg, pic16_popGetTempRegCond, pic16_popReleaseTempReg):
43         added argument lock to trace flaws in allocating temporary registers
44         when developing port,
45         * (pic16_popGetLit, pic16_popGetLit2): changed lit from unsigned to signed
46         * (pic16_popRegFromString): reenabled allocating a direct register
47         from string,
48         * (assignResultValue): various beautifications,
49         * fixed bug #1037717 (patch from R. Neider & D. Wrinkler) with mistaken
50         referenced function argument,
51         * (genIpush): reenabled to allow stacked arguments, handles only
52         ic->parmPush iCodes,
53         * (genCall, genPcall): major changes to allow for variable argument
54         functions, fixed a bug with falsely restoring stack pointer after
55         returning from call,
56         * (genFunction): pending code for critical function,
57         * (shiftR1Left2ResultSigned, shiftR1Left2Result, shiftL2Left2Result,
58         * (shiftR2Left2Result, shiftLLong) applied patch #1032155 from R.Neider,
59         * (genNearPointerGet): fixed bug with indirect reading, was always
60         reading from INDF0
61         * (genGenPointerGet, genGenPointerSet): rewrote to support generic
62         pointers,
63         * (genAddrOf): rewrote code to take address of a stacked function parameter
64         * (genCast): fixed casting to generic pointer type,
65         * src/pic16/gen.h: added AOP_STA,
66         * (struct asmop): added field stk,
67         * src/pic16/genarith.c (pic16_AopType): handle AOP_STA,
68         * (pic16_genPlusIncr): changed emitSKPNZ to emitSKPNZ,
69         * (pic16_genAddLit, pic16_genPlus): applied patch #1034042 by tecodev,
70         * (pic16_genMinus): fixed bug #1035119 with patch submitted by tecodev,
71         * src/pic16/genutils.c (pic16_genNot): removed symbol *tlbl,
72         * src/pic16/glue.c (pic16_printGPPointerType): fixed to support new
73         generic pointers,
74         * src/pic16/main.c (_pic16_initPaths): ignores default SDCC include
75         and library paths,
76         * (pic16_port structure): generic pointer size is set to 3,
77         * src/pic16/pcode.c (pic16_newpCodeOpLit): correctly print literal integer,
78         * (insertBankSwitch): cast to (char *) to prevent 64bit CPUs'
79         compiler warning,
80         * src/pic16/ralloc.c (allocReg): prevent allocating register when
81         operand is an iTemp,
82
83 2004-09-24 Martin Helmling <mh AT octo-soft.de>
84
85         * debugger/mcs51/cmd.c: set PC if a symbol at pc reg is set
86         * debugger/mcs51/simi.c: addapt new syntax of s51
87         
88 2004-09-23 Vangelis Rokas <vrokas AT otenet.gr>
89
90         * src/pic16/genutils.c (pic16_genNot): fixed bug #1032265,
91         * src/pic16/pcode.c: commented out some calls to free() in order to
92         fix bug #989576,
93
94 2004-09-23 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
95
96         * src/SDCCicode.h,
97         * src/SDCCicode.c (isiCodeInFunctionCall),
98         * src/avr/ralloc.c (selectSpil),
99         * src/pic/ralloc.c (selectSpil),
100         * src/pic16/ralloc.c (selectSpil),
101         * src/ds390/ralloc.c (selectSpil),
102         * src/hc08/ralloc.c (selectSpil),
103         * src/xa51/ralloc.c (selectSpil),
104         * src/mcs51/ralloc.c (selectSpil): Don't use remainSpil to spill to the
105         stack in the middle of a function call sequence (fixes bug #1020268)
106         * src/SDCCicode.c (geniCodeJumpTable): fixed error in computing the
107         costs associated with the minimum switch case.
108
109 2004-09-19 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
110
111         * src/SDCC.lex: fixed bug #1030549
112
113 2004-09-19 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
114
115         * src/SDCCcse.h (struct cseDef),
116         * src/SDCCcse.c (cseBBlock, newCseDef, ifFromAddrTaken): purge CSEs
117         over a function call if the CSE is derived from a symbol whose
118         address has been taken (fixes bug #1029883)
119         * support/regression/tests/bug-1029883: a new regression test for
120         this bug
121
122 2004-09-18 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
123
124         * src/hc08/gen.c (emitinline): fixed bug #1029778
125         * src/SDCC.y (assignment_expr): fixed the grammer so that assignment
126         to a cast object is no longer a syntax error ("fixes" bug #1030006,
127         and starts toward RFE #905167)
128
129 2004-09-17 Vangelis Rokas <vrokas AT otenet.gr>
130
131         * src/pic16/gen.c (mov2f): New function to move an operand to
132         another without considering if it is a literal or a register,
133         * (pic16_sameRegs): don't check if they are both AOP_REG,
134         * (AccRsh): removed andmask=0 lines,
135         * (genLeftShift): duplicated to be improved in future versions,
136         * src/pic16/main.c (_process_pragma): emit stack default size in hex,
137         * src/pic16/pcode.c: added POC_INFSNZW, updated inverted_op fields
138         in POC_INCFSZ, POC_INCFSZW, POC_INFSNZ,
139         * (pic16initMnemonics): added initialization for POC_INFSNZW,
140         * (insertBankSwitch): fixed inserting banksel directives algorithm
141         for instructions that follow a skip instruction, this fixes a report
142         for broken subtraction code generation,
143         * src/pic16/ralloc.c (deassignLRs): do not free register if current
144         iCode is a left op, just in case result and right share the same
145         registers
146
147 2004-09-16 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
148
149         * src/hc08/main.c,
150         * src/hc08/gen.c (genJumpTable): more efficient jump table, supports
151         preservation of HX
152         * src/hc08/gen.c (pullRegs): fixed order of HX & XA pairs
153         * src/mcs51/ralloc.c (packRegisters): removed the patch applied
154         on 2004-09-12; it was buggy
155
156 2004-09-15 Bernhard Held <bernhard AT bernhardheld.de>
157
158         * src/SDCCsymt.h: removed RESULT_CHECK
159         * src/SDCCast.c,
160         * src/SDCCglue.c,
161         * src/SDCCval.c,
162         * src/pic/glue.c,
163         * src/pic16/glue.c: replaced RESULT_CHECK with RESULT_TYPE_NONE
164
165 2004-09-15 Vangelis Rokas <vrokas AT otenet.gr>
166
167         * src/SDCCicode.c (piCode): applied patch from Raphael Neider,
168         * src/pic16/device.c (pic16_assignConfigWordValues): wrong
169         configuration values no more rejected by compiler, they are assigned
170         to configuration registers with a warning message instead,
171         * src/pic16/glue.c (pic16_emitConfigRegs): added +1 at top-limit of
172         the for-loop so last conf register is emitted too,
173         * (_pic16_initPaths): link library libsdcc.lib by default,
174         * (_hasNativeMulFor): modified test for multiplication according to
175         Raphael Neider's remarks. Integer multiplication is also done with
176         support functions,
177         * device/include/pic16/pic18fregs.h: corrected type error in while
178         testing and including 18f6720 header file
179
180 2004-09-14 Vangelis Rokas <vrokas AT otenet.gr>
181
182         * src/pic16/device.h (pic16_options): removed field use_crt,
183         * src/pic16/gen.c (genUnpackBits): added call to pic16_loadFSR0
184         until an optimization to handle single bits is added,
185         * (pic16_loadFSR0): moved before genUnpackBits,
186         * (genAnd): some white lines removed,
187         * src/pic16/main.c (_pic16_finaliseOptions): set omit_ivt and clear
188         leave_reset flags in pic16_options when using crt modules,
189
190 2004-09-12 Maarten Brock <sourceforge.brock AT dse.nl>
191
192         * src/mcs51/ralloc.c (packRegisters): applied fix by Bernhard Held
193           for bugs 898889 & 979599. Also used some safer print instructions.
194
195 2004-09-12 Vangelis Rokas <vrokas AT otenet.gr>
196
197         * src/pic16/device.h (pic16_options_t): added field use_crt,
198         crt_name, no_crt,
199         * src/pic16/genarith.c (pic16_genPlus): added an assert(0) line to
200         catch a probable future bug,
201         * src/pic16/gen.c: aopIdx function commented out,
202         * (genAssign): commented out old code which used aopIdx,
203         * src/pic16/glue.c (pic16glue): removed some legacy fragments of
204         code, added if conditionals to take into account the --use-crt
205         command line options,
206         * src/pic16/main.c (pic16_optionsTable): added new command line
207         options, --use-crt= and --no-crt,
208         * (_pic16_linkEdit): now the proper crt object is added in the
209         linker command line except than when --no-crt is specified,
210         * src/pic16/pcode.c,
211         * src/pic16/pcode.h: added some structures and functions for a new
212         optimization scheme to compansate for instruction overhead between
213         same iCodes, this scheme is currently under development and is not
214         working in any way,
215         * src/pic16/gen.c (genAnd): added patch provided by Aaron Collwell
216         to && operator,
217         * device/lib/pic16/startup/crt0i.c,
218         * device/lib/pic16/startup/crt0iz.c: added global char variable
219         __uflags to force the generation of an idata section
220
221 2004-09-12 Bernhard Held <bernhard AT bernhardheld.de>
222
223         * doc/Makefile,
224         * doc/clean.mk: added support for easy creation of sdcc-doc.tar.bz2
225         * doc/sdccman.lyx: updated sdcc version to 2.4.4
226
227 2004-09-10 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
228
229         * doc/sdccman.lyx: fixed a problem with my new index entries (thanks
230         Frieder) and clarified the default code optimization mode
231
232 2004-09-10 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
233
234         * src/SDCC.lex (doPragma, process_pragma),
235         * src/SDCCglobl.h (struct optimize): added pragmas "opt_code_speed",
236         "opt_code_size", and "opt_code_balanced"
237         * src/SDCCmain.c (optionsTable[], printOptions, scanOptionsTable):
238         regrouped options by category, added support for category headers
239         * src/SDCCmain.c (parseCmdLine): added options "--opt-code-speed"
240         and "--opt-code-size"
241         * doc/sdccman.lyx: documented these new options and pragmas
242         * src/hc08/gen.c (AccLsh, AccRsh): take speed/size optimization
243         preference into account
244
245 2004-09-08 Maarten Brock <sourceforge.brock AT dse.nl>
246
247         * src/SDCCicode.c (geniCodePostInc, geniCodePreInc, geniCodePostDec,
248           geniCodePreDec): Fixed bug 904237 by generating a warning
249         * src/SDCCerr.h,
250         * src/SDCCerr.c: added warning W_SIZEOF_VOID
251
252 2004-09-09 Slade Rich <slade_rich AT users.sourceforge.net>
253
254         * src/pic/device.c : When no max ram set validate full memory range.
255         * src/pic/pcode.c,
256         * src/pic/pcodepeep.c : Copy C code comments to optimised replacement code.
257
258 2004-09-08 Maarten Brock <sourceforge.brock AT dse.nl>
259
260         * device/lib/_gptrget.c,
261         * device/lib/_gptrput.c: updated comment
262         * device/lib/calloc.c,
263         * device/lib/free.c,
264         * device/lib/malloc.c,
265         * device/lib/realloc.c: added LGPL, made them reentrant-safe
266         * src/SDCCcse.c (cseBBlock),
267         * src/SDCCicode.c (printOperand, geniCodeArray),
268         * src/SDCCicode.h (struct operand): fixed bug 868103
269         * support/regression/tests/bug-868103.c: added
270         * src/SDCCast.c (searchLitOp),
271         * src/SDCCcse.h (struct cseDef),
272         * src/SDCCglue.c (printIvalArray, spacesToUnderscores),
273         * src/SDCCicode.h (struct operand),
274         * src/SDCCsymt.h (struct sym_link),
275         * src/avr/gen.c (hasInc),
276         * src/ds390/gen.c (hasInc),
277         * src/hc08/gen.c (genPlusIncr, hasInc),
278         * src/mcs51/gen.c (hasInc),
279         * src/pic16/glue.c (pic16_printIvalChar),
280         * src/pic16/ralloc.c (regWithIdx),
281         * src/xa51/gen.c (hasInc) : removed warnings
282         * src/SDCCast.c (createBlock): added comment ???
283         * src/hc08/ralloc.c: updated comments
284
285 2004-09-07 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
286
287         * doc/sdccman.lyx: updated section on switch statements, added
288         section about semaphore locking
289         * doc/Makefile: added option -info for latex2html
290         * device/lib/_gptrget.c,
291         * device/lib/_gptrput.c: __XPAGE instead of P2 in outcommented code
292
293 2004-09-06 Slade Rich <slade_rich AT users.sourceforge.net>
294
295         * src/pic/device.h,
296         * src/pic/device.c,
297         * src/pic/port.c : Changed PIC14 code to not set bit RP1 when
298          maxram is less than 0x100.
299
300 2004-09-06 Slade Rich <slade_rich AT users.sourceforge.net>
301
302         * Bug fixes for PIC14 - signed RSHIFT problem. Patch supplied by Allen(agschrum).
303
304 2004-09-06 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
305
306         * src/port.h,
307         * src/mcs51/main.c,
308         * src/ds390/main.c,
309         * src/z80/main.c,
310         * src/hc08/main.c,
311         * src/pic/main.c,
312         * src/pic16/main.c,
313         * src/avr/main.c,
314         * src/xa51/main.c
315         * src/SDCCicode.c (geniCodeJumpTable): Better logic to determine if a
316         a jump table is the best form for a switch statement, including
317         automatic insertion of missing cases to make the case range
318         continuous. Developed in collaboration with Frieder Ferlemann.
319
320 2004-09-02 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
321
322         * src/hc08/ralloc.c (canDefAccResult): multi-byte shift is unsafe for
323         accumulator result if it needs sign extension
324
325 2004-09-02 Maarten Brock <sourceforge.brock AT dse.nl>
326
327         * src/hc08/ralloc.c (canUseAccOperand): fixed comparison bug
328
329 2004-09-02 Maarten Brock <sourceforge.brock AT dse.nl>
330
331         * device/lib/gbz80/printf.c,
332         * device/lib/z80/printf.c: removed define for NULL
333
334 2004-09-02 Maarten Brock <sourceforge.brock AT dse.nl>
335
336         * as/xa51/xa_link.c,
337         * device/examples/ds390/ow390/ad26.c,
338         * device/examples/ds390/ow390/cnt1d.c,
339         * device/examples/ds390/ow390/counter.c,
340         * device/examples/ds390/ow390/ds2480.h,
341         * device/examples/ds390/ow390/ds2480ut.c,
342         * device/examples/ds390/ow390/findtype.c,
343         * device/examples/ds390/ow390/gethumd.c,
344         * device/examples/ds390/ow390/owllu.c,
345         * device/examples/ds390/ow390/ownetu.c,
346         * device/examples/ds390/ow390/swt12.c,
347         * device/examples/ds390/ow390/swtloop.c,
348         * device/examples/ds390/ow390/temp.c,
349         * device/examples/ds390/ow390/temp10.c,
350         * device/examples/ds390/ow390/thermo21.c,
351         * device/examples/ds390/ow390/tinilnk.c,
352         * device/examples/ds390/ow390/tstfind.c,
353         * device/examples/serialcomm/windows/serial.cpp,
354         * device/examples/serialcomm/windows/test_serialcomm.cpp,
355         * device/include/reg51.h: fixed line endings for cvs
356
357 2004-09-02 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
358
359         * src/hc08/ralloc.c (canDefAccResult, canUseAccOperand,
360         packRegsForAccUse, packRegisters): new accumulator register
361         packing algorithm
362         * support/regression/ports/hc08/support.c (_putchar): suppress
363         warning of unused variable
364         * src/SDCCicode.c: added SWAP entry to codeTable
365
366 2004-09-01 Maarten Brock <sourceforge.brock AT dse.nl>
367
368         * device/lib/sprintf.c: forgot to add this file before previous commit
369
370 2004-09-01 Vangelis Rokas <vrokas AT otenet.gr>
371
372         * src/pic16/gen.c (genPackBits): added operand right in function
373         parameters, load result directly if p_type is POINTER (that is
374         called by genNearPointerSet)
375         * (genUnPackBits): added operand left in function parameters,
376         * (genNearPointerGet, genNearPointerSet): prevent the loading of
377         FSR0 if accessing bitfields,
378
379 2004-08-31 Maarten Brock <sourceforge.brock AT dse.nl>
380
381         * device/include/stdio.h: added NULL, size_t, typedef pfn_outputchar,
382           _print_format; updated printf, sprintf, vsprintf
383         * device/include/asm/default/features.h: corrected comment/define
384         * device/lib/Makefile.in: added sprintf.c
385         * device/lib/libsdcc.lib: added sprintf module
386         * device/lib/printf_large.c,
387         * device/lib/vprintf.c,
388         * device/lib/sprintf.c: totally refactored printf_large and vprintf
389           into these 3 files
390         * support/regression/Makefile: changed ALL_PORTS into a usefull default
391         * support/regression/ports/mcs51-stack-auto/spec.mk: added sprintf
392         * support/regression/tests/bug-927659.c: removed dummy putchar, enabled
393           hc08 test
394         * support/regression/tests/zeropad.c: define idata as data for hc08
395
396 2004-08-31 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
397
398         * src/SDCCpeeph.c (labelIsReturnOnly): support hc08 rts opcode also
399         * src/SDCCpeeph.c (buildLabelRefCountHash): assume function entry point
400         labels are referenced at least once (even if a reference is not found)
401         * src/hc08/gen.c (emitcode): set isComment flag for comments
402         * src/hc08/peeph.def: added rules 5a..5f (optimize redundant immediate
403         loads), rules 6a..6b (optimize jumps to return)
404
405 2004-08-30 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
406
407         * device/lib/acosf.c (acosf),
408         * device/lib/asinf.c (asinf),
409         * device/lib/atanf.c (atanf),
410         * device/lib/ceilf.c (ceilf),
411         * device/lib/cosf.c (cosf),
412         * device/lib/coshf.c (coshf),
413         * device/lib/cotf.c (cotf),
414         * device/lib/fabsf.c (fabsf),
415         * device/lib/floorf.c (floorf),
416         * device/lib/log10f.c (log10f),
417         * device/lib/logf.c (logf),
418         * device/lib/sinf.c (sinf),
419         * device/lib/sinhf.c (sinhf),
420         * device/lib/sqrtf.c (sqrtf),
421         * device/lib/tanf.c (tanf),
422         * device/lib/tanhf.c (tanhf),
423         * device/include/math.h: defined _FLOAT_FUNC_REENTRANT macro and
424         replaced all instances of "reentrant" in the library functions
425         defined in math.h with this macro.
426         * support/regression/tests/float_trans.c: reenabled test for hc08
427
428 2004-08-30 Bernhard Held <bernhard AT bernhardheld.de>
429
430         * device/lib/pic16/Makefile.common.in: added MODELFLAGS again, it was
431         erroneously deleted
432
433 2004-08-30 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
434
435         * src/hc08/gen.c (loadRegFromAop): better use of clra & clrx
436         * src/hc08/gen.c (genAnd, genOr): fixed bug with conditional when
437         multi-byte volatile operands are used
438         * src/hc08/gen.c (shiftRLong): fixed bug with wrong rotate direction
439         * src/hc08/main.c (_hc08_genAssemblerPreamble): moved the built-in
440         initialization to area GSINIT0 so that it would always precede
441         any static initializers in GSINIT
442         * support/regression/tests/zeropad.c: fixed idata define for hc08
443         * support/regression/tests/bug-927659.c,
444         * support/regression/tests/float_trans.c: disabled tests for hc08
445         pending missing library routines
446         * .version: increased version number to 2.4.4 - hc08 port now passes
447         regression tests
448
449
450 2004-08-29 Bernhard Held <bernhard AT bernhardheld.de>
451
452         * device/lib/pic16/Makefile.common.in: added $(MM) to fix `make clean`
453         * Makefile.common.in,
454         * as/Makefile,
455         * as/hc08/Makefile.in,
456         * as/mcs51/Makefile.in,
457         * as/z80/Makefile.in,
458         * debugger/mcs51/Makefile.in,
459         * device/include/Makefile.in,
460         * device/lib/Makefile.in,
461         * doc/Makefile,
462         * link/Makefile,
463         * link/z80/Makefile.in,
464         * packihx/Makefile.in,
465         * sim/ucsim/main_in.mk,
466         * sim/ucsim/avr.src/Makefile.in,
467         * sim/ucsim/doc/Makefile.in,
468         * sim/ucsim/gui.src/serio.src/Makefile.in,
469         * sim/ucsim/hc08.src/Makefile.in,
470         * sim/ucsim/s51.src/Makefile.in,
471         * sim/ucsim/xa.src/Makefile.in,
472         * sim/ucsim/z80.src/Makefile.in,
473         * src/Makefile.in,
474         * support/cpp2/Makefile.in,
475         * support/librarian/Makefile,
476         * support/makebin/Makefile: added DESTDIR to the install path proposed
477         by "Maciej 'Agaran' Pijanka" <agaran AT pld-linux.org>
478         * doc/sdccman.lyx: added DESTDIR documentation
479
480 2004-08-29 Vangelis Rokas (vrokas AT otenet.gr>
481
482         * src/pic16/gen.c (genFunction, genEndFunction): fixed return
483         instruction for interrupt handlers, use fast returns when returning
484         from high priority interrupts
485
486 2004-08-29 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
487
488         * src/hc08/gen.c (genAnd, genOr, transferAopAop, rmwWithAop): optimized
489         code generation
490         * src/hc08/gen.c (genrshFour, genCpl): fixed bugs
491         * src/hc08/gen.c (genMultOneByte, genDivOneByte, genModOneByte): fixed
492         bugs, ported much of Bernhard's code from mcs51
493         * src/mcs51/gen.c (genSend),
494         * src/hc08/gen.c (genSend): fixed bug with lost SEND iCodes if more
495         than one when calling a reentrant function
496         * device/lib/_mullong.c: defined an alternate struct layout for big
497         endian ports (hc08)
498
499 2004-08-28 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
500
501         * src/hc08/gen.c (shiftL2Left2Result): fix for bug-500536 regression
502         test
503
504 2004-08-28 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
505
506         * src/SDCCsymt.c (processFuncArgs): make sure parameter types
507         are sane and complete before asking the port its prefered parameter
508         passing method (fixes bug #1017633)
509         * device/lib/hc08/_ret.c: added "data" storage class to _ret2
510         and _ret3
511
512 2004-08-27 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
513
514         * src/hc08/gen.c (genPackBitsImmed, genUnpackBitsImmed): fix offset
515         problem in bitfields >= 8 bits.
516
517 2004-08-27 Maarten Brock <sourceforge.brock AT dse.nl>
518
519         * src/SDCCsymt.c: undid changes that were not meant to be committed
520
521 2004-08-27 Maarten Brock <sourceforge.brock AT dse.nl>
522
523         * support/regression/ports/hc08spec.mk: REENTRANT must be reentrant
524
525 2004-08-27 Maarten Brock <sourceforge.brock AT dse.nl>
526
527         * src/hc08/gen.c (genUminusFloat): fixed bug where only 3 bytes were
528           copied and wrong bit got inverted
529
530 2004-08-27 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
531
532         * src/hc08/gen.c (genPointerSet, genFarPointerSet): moved code from
533         genFarPointerSet into genPointerSet; eliminated genFarPointerSet
534         * src/hc08/gen.c (genPointerGet, genFarPointerGet): moved code from
535         genFarPointerGet into genPointerGet; eliminated genFarPointerGet
536         * src/hc08/gen.c (genPackBitsImmed): generate optimized code for
537         assignments to bitfields at known addresses
538         * src/hc08/gen.c (genUnpackBitsImmed): generate optimized code for
539         reads from bitfields at known addresses
540         * src/hc08/ralloc.c (packRegisters),
541         * src/hc08/gen.c (genPointerGet, genUnpackBits, genUnpackBitsImmed,
542         genhc08Code): optimize pointer get values used as conditionals
543         * src/hc08/peeph.def: added rules 2e & 2f to optimize bit test
544         and branch
545
546 2004-08-24 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
547
548         * src/mcs51/gen.c (genPointerGet, genNearPointerGet, genPagedPointerGet,
549         genFarPointerGet, genCodePointerGet, genGenPointerGet, genUnpackBits),
550         * src/mcs51/ralloc.c (packRegisters): optimize pointer get values used
551         as conditionals
552
553 2004-08-22 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
554
555         * src/mcs51/peeph.def: peepholes 248.i-m for xdata bitfields
556
557 2004-08-21 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
558
559         * src/mcs51/ralloc.c (packRegsForOneuse): fixed bug #1012650 and some
560         related problems
561
562 2004-08-21 Bernhard Held <bernhard AT bernhardheld.de>
563
564         * sim/ucsim/cmd.src/Makefile.in: run lex only if $(PRJDIR)/devel exists
565
566 2004-08-18 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
567
568         * src/z80/ralloc.c (packRegsForAssign): ported some bug fixes from the
569         mcs51 port
570
571 2004-08-16 Slade Rich <slade_rich AT users.sourceforge.net>
572
573         * src/pic/gen.c: Restored fn genRet as previous fix was incorrect.
574
575 2004-08-14 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
576
577         * src/mcs51/gen.c (genJumpTab): jumptables for more than 16 switch
578         cases use more compact code.
579
580 2004-08-13 Slade Rich <slade_rich AT users.sourceforge.net>
581
582         * src/pic/gen.c: Fixed problem with fn returning a variable bigger than a char.
583
584 2004-08-12 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
585
586         * src/SDCClrange.c (findPrevUse): fixed bug #1007371
587
588 2004-08-12 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
589
590         * src/SDCCsymt.h,
591         * src/SDCCsymt.c (changePointer, checkDecl, addSymChain): changed
592         parameter of changePointer() from symbol* to sym_link*
593         * src/SDCCast.c (decorateType): call changePointer() for CAST op
594         * src/SDCCsymt.c (compareType): void* type is castable to other
595         pointers, but not necesarily an exact match.
596         * src/SDCCicode.c (geniCodeCast): allow void* casting here since it
597         is no longer blindly treated as an exact match.
598         * src/SDCCval.c (valCastLiteral): treat missing type as cast to void
599
600 2004-08-12 Slade Rich <slade_rich AT users.sourceforge.net>
601
602         * src/pic/glue.c: Added struct initialisation fn printIvalStruct.
603
604 2004-08-11 Slade Rich <slade_rich AT users.sourceforge.net>
605
606         * src/pic/gen.c,
607         * src/pic/pcode.c,
608         * src/pic/ralloc.h,
609         * src/pic/ralloc.c: Printing rIdx on internal verbose debug.
610
611 2004-08-10 Slade Rich <slade_rich AT users.sourceforge.net>
612
613         * src/pic/device.c,
614         * src/pic/device.h,
615         * src/pic/device.c: Will no longer exit if #pragma maxram has not been defined.
616
617 2004-08-06 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
618
619         * src/mcs51/gen.c (emitcode): fixed bug #992819
620
621 2004-08-05 Maarten Brock <sourceforge.brock AT dse.nl>
622
623         * src/pic/ralloc.c (deassignLR): allthough pic port is buggy already,
624           there's no need to make it worse
625
626 2004-08-05 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
627
628         * src/mcs51/ralloc.c (deassignLR),
629         * src/ds390/ralloc.c (deassignLR),
630         * src/hc08/ralloc.c (deassignLR),
631         * src/z80/ralloc.c (deassignLR),
632         * src/pic/ralloc.c (deassignLR),
633         * src/pic16/ralloc.c (deassignLR),
634         * src/avr/ralloc.c (deassignLR),
635         * src/SDCClrange.c (findRecursiveSucc, findRecursivePred, findPrevUse,
636         rlivePoint): fixed another part of bug #971834
637
638 2004-08-04 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
639
640         * src/z80/main.c: enabled "critical" keyword
641         * src/z80/mappings.i,
642         * src/z80/gen.c (genFunction, genEndFunction): support for interrupt
643         functions (fixes bug #979646)
644         * doc/sdccman.lyx: added a subsection explaining z80 interrupt support
645
646 2004-08-04 Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
647
648         * src/mcs51/gen.c (genInline): Add \n for labels, not DOS/WIN dirs
649           such as c:\mydir.
650
651 2004-08-03 Maarten Brock <sourceforge.brock AT dse.nl>
652
653         * src/SDCCloop.c (loopInvariants): fixed bug 983545, hope this
654           doesn't disable too much optimizations
655
656 2004-08-02 Slade Rich <slade_rich AT users.sourceforge.net>
657
658         * src/pic/glue.c Disabled "WARNING: function 'main' undefined" when -S option is used.
659
660 2004-08-02 Maarten Brock <sourceforge.brock AT dse.nl>
661
662         * src/SDCClrange.c (rlivePoint): fixed bug 988568, thanks to anonymous
663
664 2004-08-02 Slade Rich <slade_rich AT users.sourceforge.net>
665
666         * src/pic/gen.c tidied up tabs
667         * src/pic/genarith.c tidied up tabs and fixed bug with literal multiple where same register was used for hi and low byte
668         * src/pic/main.c tidied up tabs
669         * src/pic/pcode.c tidied up tabs and disabled verbose code generation
670         * src/pic/pcoderegs.c tidied up tabs
671         * src/pic/ralloc.c tidied up tabs
672
673 2004-07-30 Vangelis Rokas <vrokas AT otenet.gr>
674
675         * src/SDCCmem.c (allocGlobal): don't turn S_REGISTER storage class
676         to S_FIXED for pic16 port and when symbol is not in level 0,
677         allocate for S_REGISTER storage class and pic16 port, too,
678         * src/pic16/device.h: prototype for checkSym,
679         * src/pic16/device.c (pic16_dump_access, checkSym): NEW,
680         * (pic16_assignConfigWordValue): test the value and the mask to
681         validate that the value is suitable for the configuration word,
682         * src/pic16/glue.c (pic16_printIvalFuncPtr): use 'externs' to
683         collect extern declared symbols, don't emit symbol twice, check
684         first if symbol is in publics set first,
685         * src/pic16/main.c (_pic16_keywords[]): added keyword 'register',
686         * added command line '--fstack' which enables an experimental
687         feature for stack access, too buggy to be used yet...
688         * src/pic16/ralloc.c (pic16_accessregWithName): NEW,
689         * (pic16_allocDirReg): when register has storage class S_REGISTER
690         allocate in pic16_dynAccessRegs,
691         * device/include/pic16/pic18f????.h: modified configuration word
692         naming convention, words started as CONFIG0H but should be CONFIG1H
693
694 2004-07-29 Maarten Brock <sourceforge.brock AT dse.nl>
695
696         * device/include/mcs51reg.h: fixed bug 970993
697
698 2004-07-27 Maarten Brock <sourceforge.brock AT dse.nl>
699
700         * added lib/calloc.c, lib/free.c, lib/realloc.c, include/stddef.h
701         * updated lib/malloc.c, lib/libsdcc.lib, lib/Makefile.in, include/malloc.h
702         * src/SDCC.lex (doPragma): added pragma disable_warning <nnn>
703         * src/SDCCmain.c (parseCmdLine): added option --disable-warning <nnn>
704         * src/ds390/gen.c (genPlusIncr): fixed bug when incrementing generic pointers
705         * support/Util/SDCCerr.c (vwerror): suppress disabled warnings and output
706           error/warning numbers,
707           added function setWarningDisabled()
708         * support/Util/SDCCerr.h: added setWarningDisabled() and MAX_ERROR_WARNING
709         * support/regression/ports/mcs51-stack-auto/spec.mk: added dependencies
710           _memcmp.c _memmove.c calloc.c realloc.c free.c
711         * support/regression/tests/malloc.c: added tests for new functionality
712         * support/regression/tests/zeropad.c: added tests for truncated initializers
713           and initialized char arrays starting with '\x0'
714         * src/mcs51/peeph.def: fixed regression, added peephole 177.f
715
716 2004-07-26 Bernhard Held <bernhard AT bernhardheld.de>
717
718         * support/valdiag/tests/overflow.c: fixed warning on (1 >> 40)
719
720 2004-07-26 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
721
722         * doc/sdccman.lyx: updated example in section "Absolute Addressing"
723         * src/mcs51/peeph.def: added contributed fix for "bug" #995347 as
724         peephole 177.e. Thanks to anonymous
725
726 2004-07-25 Vangelis Rokas <vrokas AT otenet.gr>
727
728         * src/pic16/glue.c (pic16_printIvalFuncPtr): when an extern
729         function isn't used in the source but referenced as a
730         variable initializer then declare it as extern in .asm file
731
732 2004-07-24 Vangelis Rokas <vrokas AT otenet.gr>
733
734         * .version: increased version number to 2.4.3
735
736         Adding version extension according to ChangeLog CVS revision
737         * src/Makefile.in (target all): added dependency 'version.h'
738         * (rule version.h): added rule to create version.h from ChangeLog,
739         * (rule dep): added dependency version.h,
740         * src/version.awk: AWK script to create version.h
741         * src/SDCCdwarf2.c (dwWriteModule),
742         * src/SDCCglue.c (initialComments),
743         * src/SDCCmain.c (printVersionInfo): modified to write after
744         version string the version extension number,
745         * src/SDCCutil.c: included "version.h"
746         * (getBuildNumber): NEW, returns SDCC's ChangeLog minor revision
747         number,
748         * src/SDCCutil.h: added prototype for getBuildNumber
749
750         * src/SDCCmain.c (parseCmdLine): when sOpt is 'I' add rest in
751         includeDirsSet, too,
752         * src/SDCCsymt.c (checkSClass): don't emit error when a variable,
753         const char [] is found in function prototype...
754
755         * src/pic16/genarith.c (pic16_genUMult8XLit_8): optimization to omit
756         moving to WREG with source is already in WREG,
757         * src/pic16/gen.h: added AOP_FSR0 and AOP_FSR2 in enum,
758         * src/pic16/gen.c (getFreePtr): updated to look for FSR0 and FSR2,
759         * (aopForSym): stack'ed symbols are partially supported, added
760         if-clause to support symbols in FARSPACE,
761         * (sameRegs): added test for AOP_ACC to see if registers are same,
762         * (pic16_freeAsmop): added case for AOP_FSR0 and AOP_FSR2,
763         * (pic16_aopGet): added case for AOP_FSR0 and AOP_FSR2,
764         * (pic16_popRegFromString): will not allocate a new register if it
765         doesn't find one by name, bug may have introduced...
766         * (pic16_popGet): added case for AOP_FSR0 and AOP_FSR2,
767         * (genIpush): revived to use pic16 port's stack,
768         * (genAddrOf): added incomplete case for stack'ed operand,
769         * (genCast): optimized a pair of MOVFW,MOVWF to MOVFF
770         * src/pic16/genutils.c (pic16_genNot): almot new vesrion for NOT,
771         can handle multibyte operands,
772         * src/pic16/glue.c (pic16_printIval*): some debug info added,
773         * (pic16initialComments): added message for MPLAB compatibility
774         mode enabled,
775         * src/pic16/main.h: prototype for pic16_mplab_comp,
776         * src/pic16/main.c (pic16_optionsTable): new option --mplab-comp,
777         which enabled MPLAB compatibility mode (i.e. no #LINE/#FILE, BANKED)
778         * (_pic16_linkEdit): NEW, handles link stage, transferred here
779         because of increased complexity of procedure,
780         * (_process_pragma): stack pragma changed to format 'stack pos len',
781         emit symbol '_stack_end' to conform with gplink,
782         * src/pic16/pcode.c (pic16_newpCodeOpBit): using pic16_regWithName
783         to search for register,
784         * (pic16_get_op, pic16_get_op2): added case for PO_W, PO_WREG and
785         PO_GPR_REGISTER,
786         * (pic16_pCode2str): when in MPLAB compatibility mode, comment out
787         #LINE directives and replace 'B' with 'BANKED' in instruction opcodes
788         * (pic16_getRegFromInstruction, pic16_getRegFromInstruction2): added
789         case for PO_GPR_REGISTER,
790         * (pic16_AnalyzeBanking): removed the old message for inc2h.pl, past
791         dies, the new era is ahead !...
792         * src/pic16/ralloc.c: added hash reposits pic16_dynAllocRegNames and
793         pic16_dynInternalRegs,
794         * (pic16_allocregWithName, pic16_procregWithName, pic16_regWithname): NEW,
795         * (pic16_allocDirReg): minor optimizations and bug fixes,
796         * (pic16_allocWithIdx): when searching pic16_dynProcessorRegs use fixed,
797
798         * device/lib/pic16/startup/crt0*.c: extern definition of stack_end,
799         load stack and frame pointer with address of 'stack_end' symbol
800
801 2004-07-23 Vangelis Rokas <vrokas AT otenet.gr>
802
803         * src/pic16/glue.c (pic16emitStaticSeg): fixed bug with files
804         without source code but only variable initializers
805
806 2004-07-20 Vangelis Rokas <vrokas AT otenet.gr>
807
808         * src/pic16/glue.c (pic16emitRegularMap): unused functions marked as
809         external are not declared as extern to reduce overhead while linking
810
811 2004-07-20 Maarten Brock <sourceforge.brock AT dse.nl>
812
813         * src/SDCCast.c (decorateType): removed buggy fix for bug #979599
814
815 2004-07-11 Maarten Brock <sourceforge.brock AT dse.nl>
816
817         * src/SDCCglue.c (printIvalArray): fixed bug #984229, thanks to Phuah
818           Yee Keat for the patch
819         * src/SDCCast.c (decorateType): fixed bug #979599
820         * src/ds390/gen.h: removed local fReturnSizeDS390
821         * src/ds390/gen.c: made fReturnSizeDS390 signed short to remove a warning
822         * src/ds390/gen.c (genAnd, genOr, genXor),
823         * src/mcs51/gen.c (genAnd, genOr, genXor): generate better optimized code
824
825 2004-07-04 Vangelis Rokas <vrokas AT otenet.gr>
826
827         * src/SDCCmain.c (linkEdit): modifications only for pic16 port,
828         add relFilesSet to $3, manipulate $2 to handle linking of object
829         files without source files in command line,
830         * device/include/pic16 (all headers): added ID location macros,
831         * src/pic16/device.c (struct PIC16_device Pics16[]): added field
832         entries for ID location bytes,
833         * (pic16_assignIdByteValue): NEW,
834         * src/pic16/device.h: new structures idRegInfo_t and idBytesInfo_t,
835         added field dumpcalltree to pic16_options_t,
836         * src/pic16/gen.c (genCmp): fixed bug case so a temporary register
837         is used instead of pic16_Gstack_base_addr, check if (ifx) before
838         emitting rFalseIfx label after check_carry label,
839         * src/pic16/glue.c (PIC16_IS_IDLOC_ADDRESS, PIC16_IS_HWREG_ADDRESS,
840         pic16_emitDIRegs), NEW
841         * (pic16glue): dump .calltree file when option --calltree found,
842         * src/pic16/main.c (OPTION _pic16_optionsTable): new option --calltree
843         * (_pic16_genAssemblerPreamble): emit ID locations after
844         configuration registers,
845         * (pic16_linkCmd): modifications of the link command,
846         * src/pic16/pcode.c (pic16_pciMOVFF): PCC_REGISTER replaces PCC_REGISTER2
847         * (pic16_pCodeInitRegisters): don't init stack registers,
848         * (pic16_findPrevInstruction): fixed bug,
849         * (pic16_getRegFromInstruction, pic16_getRegFromInstruction2): fixed
850         bug with immediate registers,
851         * (buildCallTree): traces stack push and pop,
852         * (pct2): dump also stack usage for each function,
853         * src/pic16/ralloc.c (dynrIdx): registers names start from 0x00
854         * (pic16_allocDirReg): various modifications,
855         * (pic16_typeRegWithIdx): when searching pic16_dynProcessorRegs set
856         fixed to 1,
857
858 2004-07-02 Vangelis Rokas <vrokas AT otenet.gr>
859
860         * src/pic16/pcode.c: removed buggy double colon
861
862 2004-07-01 Borut Razem <borut.razem AT siol.net>
863
864         * support/scripts/sdcc.nsi: added include/pic16 to setup
865
866 2004-06-30 Vangelis Rokas <vrokas AT otenet.gr>
867
868         * device/lib/Makefile.in: fixed bug in target objects-pic16,
869         * device/lib/pic16/Makefile: prefixed with dash (-) command under
870         target 'clean',
871         * doc/sdccman.lyx: changed version to 2.4.2 and added some port
872         specific command line arguments. Also added sample lkr script
873         for placing a variable at a specific memory bank.
874         * src/pic16/device.c (pic16_dump_gsection): NEW, to dump variables
875         at a specific memory bank,
876         * (pic16_dump_isection): fixed bug which caused string literals to
877         be omitted when dumping idata section,
878         * (pic16_groupRegistersInSection): added code to handle registers
879         in specific memory banks,
880         * src/pic16/gen.c: labelOffset is prefixed with pic16_ and made
881         public, all references are renamed too,
882         * (pic16_aopGet): removed switch cases for AOP_R0,AOP_R1,AOP_DPTR,
883         AOP_DPTR2,
884         * (pic16_storeForReturn): added case to handle when dest is WREG,
885         * src/pic16/genarith.c (pic16_pCodeOpSubType): NEW,
886         * src/pic16/glue.c (pic16emitRegularMap): when adding a register in
887         pic16_rel_udata, check to see if that register is marked as being
888         a member of a specific memory bank,
889         * (pic16_printIvalCharPtr): added code to add string literals either
890         to code or the idata sections,
891         * src/pic16/main.c (_process_pragma): added \n to WHITE constant,
892         also accept the 'udata' pragma,
893         * src/pic16/main.h: new structure types sectName and sectSym
894         * src/pic16/pcode.c: added new pCodeInstruction entry for BANKSEL
895         * (newpCodeOpBit): added PIC_OPTYPE subt in function prototype,
896         * (pic16_findPrevInstruction): fixed, it returned nothing,
897         * (insertBankSwitch): fixed to emit banksel/skip and skip/banksel
898         instruction combinations,
899         * (pic16_FixRegisterBanking): heavily reorganised,
900         * (pic16_AnalyzeBanking): if generating banksel directives is
901         disabled, then don't call FixRegisterBanking at all,
902         * src/pic16/ralloc.c (bitEQUs, aliasEQUs, allDefsOutOfRange):
903         completely removed,
904         * (pic16_writeUsedRegisters): added call to pic16_dump_gsection
905
906 2004-06-29 Bernhard Held <bernhard AT bernhardheld.de>
907
908         * src/SDCCglue.c (printChar): fixed bug #973350, patch provided by
909         Phuah Yee Keat <yk.phuah AT nestac.com>
910
911 2004-06-28 Vangelis Rokas <vrokas AT otenet.gr>
912
913         * src/pic16/glue.c (pic16createInterruptVect): function now emits
914         correctly the IVT even if it is relocated to some other location
915
916 2004-06-28 Vangelis Rokas <vrokas AT otenet.gr>
917
918         * device/include/pic16/pic18fregs.h: added case for pic18f2220.h
919         * device/include/pic16/pic18f2220.h: NEW,
920         * device/lib/pic16/libdev/pic18f2220.c: NEW,
921         * device/lib/pic16/libdev/Makefile: added 18f2220 in DEVS,
922         * src/pic16/device.c (struct Pics16): added info for 18f2220,
923         * src/pic16/device.h (struct pic16_options): added ivt_loc and
924         nodefaultlibs, ivt_loc is the location of the interrupt vector
925         table, and nodefaultlibs signs that default libraries should not be
926         linked in link stage,
927         * src/pic16/gen.c (genFunction): relocate interrupt vector functions
928         according to --ivt-loc argument,
929         * src/pic16/main.c (_process_pragma): emit '_stack' as public symbol
930         when pragma stack is found,
931
932 2004-06-25 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
933
934         * src/mcs51/peeph.def: added peepholes 182.d (return 0.0),
935         256 (range check), 257 (do while), 258.a-f (bit banging
936         f.e. on 3-wire SPI bus)
937
938 2004-06-21 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
939
940         * src/SDCClrange.c (findNextUseSym): fixed a live range bug with
941         variables used exclusively within a loop
942
943 2004-06-21 Bernhard Held <bernhard AT bernhardheld.de>
944
945         * src/mcs51/gen.c (genCpl): quick fix for bug #974835
946
947 2004-06-21 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
948
949         * src/SDCClrange.c (computeClash): fixed bug #971834
950
951 2004-06-20 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
952
953         * src/mcs51/gen.c (genCmp): fixed bug #975903
954         * src/hc08/gen.c (operandsEqu),
955         * src/ds390/gen.c (operandsEqu),
956         * src/z80/gen.c (operandsEqu),
957         * src/pic/gen.c (operandsEqu),
958         * src/pic16/gen.c (operandsEqu),
959         * src/mcs51/gen.c (operandsEqu): fixed bug #976283
960         * src/SDCCmain.c (parseCmdLine): report --unknown-option only once
961
962 2004-06-15 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
963
964         * src/SDCCcse.c (cseBBlock): fixed bug #966963
965
966 2004-06-12 Vangelis Rokas <vrokas AT otenet.gr>
967
968         * src/pic16/gen.c (genPointerGet): added E_INTERNAL_ERROR for
969         default case in switch statement,
970         * glue.c (pic16_initPointer): expr is initialised via decoarteType
971         to eliminate problem with initialisation of pointers, but problem
972         still exists,
973         * (pic16_pointerTypeToGPByte): removed, no needed for pic16,
974         * (emitStaticSegment): removed various lines emitting debug info,
975         * src/pic16/pcode.c, src/pic16/pcode.h, src/pic16/ralloc.h:
976         added processor registers for utilizing EEPROM,
977         * src/pic16/pcode.c (pic16_emitDB): number of DBs emitted is not
978         configurable and set 8
979
980 2004-06-08 Vangelis Rokas <vrokas AT otenet.gr>
981
982         * .version: increased version number to 2.4.2,
983
984         Cumulative patch for pic16 port
985         * src/pic16/device.c: changed scheme to dump initial values for
986         variables in idata segment, all print_idata* functions were removed,
987         now the pic16_printIval* will be called,
988         * src/pic16/glue.c: (pic16_initPointer, pic16_pointerTypeToGPByte,
989         * _pic16_printPointerType, pic16_printPointerType,
990         * pic16_printGPointerType, pic16_printIvalArray, pic16_printIvalStruct,
991         * pic16_printIvalBitFields, pic16_printIvalFuncPtr, pic16_printIvalPtr:
992         NEW, similar to the respective functions in SDCCglue.c,
993         * src/pic16/pcode.c (pic16_emitDB, pic16_flushDB): reverted to old
994         way, emitting hex bytes,
995         * (pic16_emitDS): NEW, emits a string for pointer initialisation,
996
997 2004-06-08 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
998
999         * src/avr/ralloc.c (serialRegAssign),
1000         * src/xa51/ralloc.c (serialRegAssign),
1001         * src/pic/ralloc.c (serialRegAssign),
1002         * src/pic16/ralloc.c (serialRegAssign),
1003         * src/hc08/ralloc.c (serialRegAssign),
1004         * src/z80/ralloc.c (serialRegAssign),
1005         * src/ds390/ralloc.c (serialRegAssign),
1006         * src/mcs51/ralloc.c (serialRegAssign): fixed bug #964479
1007
1008 2004-06-08 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
1009
1010         * src/SDCCicode.c (geniCodeJumpTable): fixed bug #967601
1011         * src/SDCCpeeph.c (labelIsReturnOnly): fixed bug #966505
1012
1013 2004-06-07 Vangelis Rokas <vrokas AT otenet.gr>
1014
1015         Cumulative patch for pic16 port:
1016         * src/pic16/device.h (typedef PIC16_device) modified fields for
1017         defining microcontrollers,
1018         * src/pic16/device.c: added new info for all devices in Pics16 array,
1019         * src/pic16/gen.c (genPcall): fixed bug that caused the return label
1020         to be optimised out by the pCode optimiser,
1021         * src/pic16/glue.c (pic16emitRegularMap): treat implicit aggragates
1022         specially, bug reported by G.M. Gallant,
1023         * src/pic16/pcode.c (pic16_newpCodeLabelFORCE): NEW, marks a label
1024         as force'd so that cannot be optimised out by pCode optimiser,
1025         * src/pic16/pcode.c,
1026         * src/pic16/pcodepeeph.c,
1027         * src/pic16/pcoderegs.c: many modifications to re-enable peepholes,
1028         they are disabled by default, but can be enabled explicit with
1029         command argument --denable-peeps, for testing,
1030         * device/lib/pic16/startup/Makefile: added --no-peep,--pomit-config-words,
1031         --pomit-ivt in COMPILE_FLAGS
1032
1033 2004-06-06 Maarten Brock <sourceforge.brock AT dse.nl>
1034
1035         * src/pic16/pcode.c (pic16_emitDB): removed double semicolon which fails
1036           compilation on MSVC
1037
1038 2004-06-06 Maarten Brock <sourceforge.brock AT dse.nl>
1039
1040         * device/include/sab80515.h: added sfr P6, changed GPL to LGPL
1041
1042 2004-06-06 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
1043
1044         device/include/sab80515.h: fixed bug #967492, DAPR is defined at adress
1045         0xd8, but the correct adress is 0xda. Thanks to anonymous for reporting
1046
1047 2004-06-06 Vangelis Rokas <vrokas AT otenet.gr>
1048
1049         * src/pic16/device.c (pic16_assignConfigWord): fixed bug that
1050         would only assign 0x300001 register.
1051
1052 2004-06-05 Vangelis Rokas <vrokas AT otenet.gr>
1053
1054         * device/lib/pic16/startup/Makefile: added $(MODELFLAGS)
1055         in COMPILE_FLAGS. Thanks to G. Gallant for report.
1056
1057 2004-06-05 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
1058
1059         * doc/sdccman.lyx: minor changes, mentioned beta vendor support
1060         for ds80c400
1061         * src/mcs51/peeph.def: ran unexpand -a over peeph.def
1062         * src/mcs51/peeph.def: removed obsolete peephole 100.a,
1063         added peephole 254 (left shift), 255 (jump table)
1064
1065 2004-06-04 Vangelis Rokas <vrokas AT otenet.gr>
1066
1067         * device/lib/Makefile.in: removed comment line with model-pic16,
1068         * (target port-specific-objects-pic16): the libraries and objects
1069         are copied to the build directory form the device/lib/pic16/bin
1070         directory
1071
1072         Cumulative patch concerning pic16 port:
1073         * library directory has been re-organized,
1074         * added support for PIC18F1220,
1075         * added headers and library sources for chips 18f1220,18f6520,
1076         18f6620,18f6680,18f6720,18f8520,18f8620,18f8680,18f8720
1077
1078         * configuration registers setting has changed, now each supported
1079         device has a complete description of the registers it uses,
1080         * all initialisations are moved to idata sections, these section
1081         can be absolute or relocatable,
1082         * fixed initialisation of codespace variables,
1083         * fixed warning about PCLATU and gpsim,
1084         * src/pic16/gen.c (genCmp): now can handle partially iCodes with no ifx,
1085         * (genAssign): use table reads when assigning from variables in codespace,
1086         * src/pic16/glue.c (pic16emitStaticSeg): fixed to correctly initialise
1087         char/int variables placed in codespace,
1088         * (pic16_emitConfigRegs): NEW, emits a list with configuration
1089         registers set in .asm file, no need for --pomit-config-words anymore,
1090         * (pic16glue): some 8051 legacy segments are commented out
1091         (to be removed completely),
1092         * added support for alternative assembler and linker with --asm=
1093         and --link= command line arguments,
1094         * peepholes are disabled automatically in the port, no need to
1095         specify on command line,
1096         * port supports natively char/int/long multiplication, but converts
1097         all divisions to support functions,
1098         * main.c: pic16_linkCmd and pic16_asmCmd changed to force output
1099         to the file set in variable $2,
1100         * pcode.c (pic16_emitDB, pic16_flushDB): modified to print printable
1101         strings in ASCII format and not in hex,
1102         * ralloc.c (serialRegAssign): added a triplet of conditional calls
1103         to pic16_allocDirReg for IC_RESULT, IC_LEFT and IC_RIGHT so to
1104         allocate proper register if iCodes aren't temporary,
1105
1106 2004-06-02 Maarten Brock <sourceforge.brock AT dse.nl>
1107
1108         * support/regression/tests/zeropad.c: added TEST_G macro for alpha
1109
1110 2004-06-02 Vangelis Rokas <vrokas AT otenet.gr>
1111
1112         * src/pic16/gen.c (genPcall): warning about gpsim and PCLATU
1113         is commented out
1114
1115 2004-06-01 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
1116
1117         * src/hc08/gen.c (genPointerGetSetOfs): disabled optimization if
1118         computed address is reused
1119         * src/hc08/gen.c (genPackBits): fixed offsets in assignments to
1120         multi-byte bitfields
1121
1122 2004-06-01 Maarten Brock <sourceforge.brock AT dse.nl>
1123
1124         * src/z80/gen.c: (genArrayInit): must check for pointers too
1125
1126 2004-06-01 Maarten Brock <sourceforge.brock AT dse.nl>
1127
1128         * support/regression/tests/zeropad.c: never meant to commit the
1129           nestedstruct test: removed, added check for GCC version
1130
1131 2004-05-31 Maarten Brock <sourceforge.brock AT dse.nl>
1132
1133         * src/SDCCast.c (createIvalArray): fixed bug 770487 SIGSEGV
1134         * src/SDCCglue.c (emitRegularMap): fixed bug 770484 allocation problem
1135         * src/SDCCglue.c (initPointer, printIvalType, printIvalStruct,
1136           printIvalArray, printIvalFuncPtr, printIvalPtr, printIval): fixed
1137           bugs 928906 and 954082 half-empty initializers
1138         * src/SDCCsymt.h,
1139         * src/SDCCsymt.c (getAllocSize): added for above fix
1140         * src/z80/gen.c (genArrayInit): fixed bug 741044
1141         * support/regression/tests/zeropad.c: added tests
1142
1143 2004-05-30 Vangelis Rokas <vrokas AT otenet.gr>
1144
1145         * src/pic16/device.c (pic16_dump_section): corrected bug which
1146         caused some symbols of the libraries to be misplaced
1147
1148 2004-05-28 Vangelis Rokas <vrokas AT otenet.gr>
1149
1150         * src/pic16/glue.c,
1151         * src/pic16/ralloc.h,
1152         * src/pic16/ralloc.cc: prefixed IS_CONFIG_ADDRESS with PIC16_
1153         to fix conflict with pic port
1154
1155 2004-05-28 Vangelis Rokas <vrokas AT otenet.gr>
1156
1157         * src/pic16/glue.c (pic16emitStaticSeg): do not print as publics or
1158         externs configuration variables,
1159         * src/pic16/ralloc.h,
1160         * src/pic16/ralloc.cc: IS_CONFIG_ADDRESS is made public and added
1161         prototype in header, commented out some debug messages
1162
1163 2004-05-26 Vangelis Rokas <vrokas AT otenet.gr>
1164
1165         * src/pic16/glue.c,
1166         * src/pic16/main.c,
1167         * src/pic16/pcode.c: added gpasm directives #FILE/#LINE
1168         for gpasm COFF object generation. Thanks to D. Hawkins for
1169         his patch info
1170
1171 2004-05-25 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
1172
1173         * src/ds390/main.c,
1174         * src/mcs51/main.c: fixed sort order of mnemonics (thanks to Maarten
1175         Brock for spotting this)
1176         * src/ds390/gen.c (genEndFunction),
1177         * src/mcs51/gen.c (genEndFunction): always save psw if function is an
1178         interrupt handler and critical. Disable push/pop optimizations when
1179         peephole optimizations disabled.
1180
1181 2004-05-25 Vangelis Rokas <vrokas AT otenet.gr>
1182
1183         Updated pic16 library sources and headers.
1184         * device/lib/pic16/pic18f*/ ,
1185         * device/include/pic16/*.h: modified to handle structured SFR
1186         definitions
1187
1188 2004-05-25 Vangelis Rokas <vrokas AT otenet.gr>
1189
1190         * src/port.h (PORT structure): added hook initPaths, now each
1191         port can declare its own default search paths,
1192         which can been seen with the --print-search-dirs option,
1193         see pic16 port for example,
1194         * src/SDCCmain.c (setBinPaths, setIncludePaths, setLibPath,
1195         setDataPaths): test to options.printSearchDirs is ifdef'ed out,
1196         * (doPrintSearchDirs): NEW, replaces in a central manner the
1197         printing of search dirs which was split in set*Paths functions,
1198         * (main): added call to port->initPaths and doPrintSearchDirs,
1199         * src/avr/main.c,
1200         * src/ds390/main.c,
1201         * src/hc08/main.c,
1202         * src/izt/i186.c,
1203         * src/izt/tlcs900h.c,
1204         * src/mcs51/main.c,
1205         * src/pic/main.c,
1206         * src/pic16/main.c: modified port structures to reflect addition of
1207         initPaths hook,
1208
1209         * src/pic16/device.c (regCompare): registers are finally sorted by name,
1210         * (pic16_dump_section): for registers in same address reserve memory once,
1211         * src/pic16/device.h (struct PIC16_device): changed variable gen_banksel
1212         to no_banksel,
1213         * src/pic16/genarith.c (pic16_genPlus): added code to handle cases where
1214         result is greater in size than right or left,
1215         * (pic16_genUMult8X8_8): there are some cases where the result can
1216         be 16 bits size, so handle these,
1217         * src/pic16/gen.c: changed some pic16_emitpcomment to DEBUGpic16_emitcode,
1218         * (pic16_outBitC): modified to emit pcodes,
1219         * (pic16_storeForReturn): using is_LitOp to see if operand is literal
1220         or not,
1221         * (genDivOneByte): implemented algorithm to divide 8-bits,
1222         * (genCmp): uncommented goto, but issues still exist,
1223         * (genAnd): fixed a bug with variables >8bits,
1224         * (genPackBits): optimization added that uses BCF/BSF to change a
1225         single bit,
1226         * (genAssign): fixed bug when assigning floating point literals,
1227         * src/pic16/glue.c (pic16glue): added assembler directive 'code' before
1228         __sdcc_gsinit_startup label,
1229         * src/pic16/main.c (_pic16_init): removed search directory
1230         initialisations,
1231         * (_pic16_initPaths): NEW, used to initialise search directories,
1232         * (_hasNativeMulFor): support functions for all except char/int
1233         multiplication, and char division,
1234         * (PIC16_port struct): modified entry for native mul support,
1235         * src/pic16/pcode.c (insertBankSwitch): modified to support the renamed
1236         no_banksel option,
1237         * (buildCallTree): call to register_usage is ifdef'ed out,
1238
1239 2004-05-22 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
1240
1241         * device/include/string.h: applied Stas Sergeev's patch to make this
1242         header file compatible with the preprocessor -Wundef option
1243         * src/SDCCmain.c (main): abort compilation if preprocessor reports
1244         failure (fixes bug #941458)
1245
1246 2004-05-21 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
1247
1248         * src/SDCCopt.c (killDeadCode): fixed bug #907733
1249         * support/Util/SDCCerr.c: reworded E_AUTO_ASSUMED diagnostic to clarify
1250         that the variable, not the function, should be static
1251         * src/SDCCval.c (valCastLiteral): fixed bit initialization from literal
1252         to be consistent with non-literal case
1253
1254 2004-05-19 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
1255
1256         * src/SDCCast.c (isConformingBody): fixed bug #949967
1257         * src/SDCCopt.c (cnvToFcall, cnvToFloatCast, cnvFromFloatCast,
1258         convilong): fixed bug #952086
1259
1260 2004-05-18 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
1261
1262         * src/SDCCmem.c (allocVariables): fixed bug #955321
1263
1264 2004-05-18 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
1265
1266         * src/hc08/main.c (_hc08_genAssemblerEnd),
1267         * src/SDCCdwarf2.c (dwOpenFile, dwCloseFile, dwWriteFunction,
1268         dwWriteModule, dwWriteCLine, dwWriteALine, dwarf2FinalizeFile):
1269         completely eliminated the use of a temporary file
1270         * src/SDCCdwarf2.c (dwWriteAttr): fixed bug with location list offset
1271         when more than one file linked
1272         * src/SDCCloop.c (pointerAssigned): fixed bug #954163
1273
1274 2004-05-17 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
1275
1276         * src/SDCCval.c (valForArray): applied Maarten Brock's patch #947682
1277         which fixes bug #543481
1278         * support/regression/tests/bug-751703.c: fixed comments left from a
1279         cut and paste error
1280         * src/SDCCdwarf2.c (dwCloseFile): don't explicitly close a temp file
1281         * src/SDCCdwarf2.c (dwTagFromType): added bitfield support
1282         * src/SDCCdwarf2.c (dwWriteSymbolInternal): handle extern within local
1283         scopes
1284         * src/SDCCdwarf2.c (dwWriteLineNumber): line number deltas are signed
1285         * src/SDCCmain.c (processFile, parseCmdLine): non-alphanumeric chars
1286         are now changed to underscores in moduleName
1287
1288 2004-05-15 Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
1289
1290         * as/mcs51/lkmem.c: better fix for bug #954173
1291
1292 2004-05-15 Maarten Brock <sourceforge.brock AT dse.nl>
1293         committed by Frieder Ferlemann <Frieder.Ferlemann AT web.de>
1294
1295         * device/include/c8051f020.h: newly added SiLabs (Cygnal) header file
1296         * device/include/c8051f000.h,
1297         * device/include/c8051f120.h,
1298         * device/include/c8051f300.h,
1299         * device/include/c8051f310.h,
1300         * device/include/c8051f320.h: updated (added _XPAGE, CAPN, CAPP,
1301         PWM16) and detab'ed
1302
1303 2004-05-15 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
1304
1305         * doc/sdccman.lyx: mentioned sourceforge's delay between web frontend
1306         and mailing lists, doc'ed --no-peep-comments, removed reference
1307         to knoppix (newest version has no LyX/LaTeX), other minor changes
1308         * src/SDCCglue.c (glue): save 2 bytes stack space with
1309         option --main-return. The ljmp could probably be avoided too
1310
1311 2004-05-14 Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
1312
1313         * as/mcs51/lkmem.c, as/mcs51/lkaomf51: fixed bug 954173
1314
1315 2004-05-14 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
1316
1317         * src/SDCCsymt.h: added IS_AUTO(symbol) test macro
1318         * src/SDCCopt.c (isLocalWithoutDef),
1319         * src/SDCCicode.c (operandFromSymbol): use the IS_AUTO test macro
1320         which adds a !IS_EXTERN codition. Fixes bugs #877426 and #751703.
1321         (credit to Maarten Brock for patch #949363, on which this is based)
1322         * support/regression/tests/bug-751703.c: some test cases of extern used
1323         within inner scopes.
1324
1325 2004-05-14 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
1326
1327         * src/SDCCdwarf2.c (dwMatchTypes): structs must have matching
1328         SPEC_STRUCT
1329         * src/SDCCdwarf2.c (dwTagFromType): fix to handle recursive
1330         struct definitions
1331         * src/SDCCdwarf2.c (dwWriteModule, dwNewDebugSymbol, dwWriteEndFunction,
1332         dwWriteLabel): fix to create valid debugger symbols even when
1333         the module name has non-alphanumeric symbols in it
1334         * src/SDCCdwarf2.c (dwWriteSymbolInternal): better detection for
1335         when a variable's allocation has been optimized away
1336
1337
1338 2004-05-13 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
1339
1340         * src/hc08/gen.c (hc08_emitDebuggerSymbol),
1341         * src/hc08/main.c,
1342         * src/mcs51/gen.c (mcs51_emitDebuggerSymbol),
1343         * src/mcs51/main.c,
1344         * src/ds390/gen.c (ds390_emitDebuggerSymbol),
1345         * src/ds390/main.c,
1346         * src/z80/gen.c (z80_emitDebuggerSymbol),
1347         * src/z80/main.c,
1348         * src/pic/gen.c (pic14_emitDebuggerSymbol),
1349         * src/pic/main.c,
1350         * src/pic16/gen.c (pic14_emitDebuggerSymbol),
1351         * src/pic16/main.c,
1352         * src/avr/gen.c (avr_emitDebuggerSymbol),
1353         * src/avr/main.c,
1354         * src/xa51/gen.c (xa51_emitDebuggerSymbol),
1355         * src/xa51/main.c,
1356         * src/SDCCdebug.c (emitDebuggerSymbol),
1357         * src/SDCCdebug.h,
1358         * src/port.h: added a debugger struct to the port struct. Added a
1359         callback for defining debugger symbols
1360
1361         * src/SDCCast.c (createLabel),
1362         * src/SDCC.y (labeled_statement): mark all compiler generated labels
1363         with isitmp = 1
1364         * src/SDCCicode.h,
1365         * src/SDCCicode.c (geniCodeFunctionBody): added a link from the FUNCTION
1366         iCode back to the ast for the function
1367
1368         * src/hc08/ralloc.c (hc08_assignRegisters),
1369         * src/hc08/ralloc.h: define a regs struct for the stack pointer. Removed
1370         unneeded fields from the regs struct.
1371         * src/hc08/gen.c (transferRegReg, genFunction, genEndFunction): use the
1372         pushReg() & pullReg() functions instead of emitcode()
1373
1374         * src/hc08/gen.c (genLabel, genhc08Code),
1375         * src/SDCCdebug.h: Added additional debugger hooks needed for DWARF
1376
1377         * src/cdbFile.c (cdbWriteLabel, cdbWriteScope): Added stubs for unneeded
1378         debugger hooks
1379
1380         * src/hc08/gen.c (genEndFunction, genhc08Code),
1381         * src/hc08/gen.h,
1382         * src/mcs51/gen.c (genEndFunction, gen51Code),
1383         * src/mcs51/gen.h,
1384         * src/ds390/gen.c (genEndFunction, gen390Code),
1385         * src/ds390/gen.h,
1386         * src/z80/gen.c (genEndFunction, genZ80Code),
1387         * src/z80/gen.h,
1388         * src/z80/z80.h,
1389         * src/pic/gen.c (genEndFunction, genpic14Code),
1390         * src/pic/gen.h,
1391         * src/pic16/gen.c (genEndFunction, genpic16Code),
1392         * src/pic16/gen.h,
1393         * src/avr/gen.c (genEndFunction, genAVRCode),
1394         * src/avr/gen.h,
1395         * src/xa51/gen.c (genEndFunction, genXA51Code),
1396         * src/xa51/gen.h,
1397         * src/cdbFile.c (cdbWriteFunction, cdbWriteEndFunction): moved cdb
1398         specific code to cdbFile.c and out of the backend code generators
1399
1400         * as/hc08/lkmain.c (main): removed OMF51 support from link-hc08
1401         * as/hc08/lkarea.c (lnkarea): areas with NOLOAD attribute default
1402         starting address is now 0
1403
1404         * as/hc08/asm.h,
1405         * as/hc08/m08pst.c,
1406         * as/hc08/asmain.c (asmbl): implemented the .sleb128 and .uleb128
1407         assembler directive for DWARF support
1408         * as/hc08/lkelf.c (elf): only increment address when rtflg[] set
1409
1410         * src/src.dsp,
1411         * src/Makefile.in,
1412         * src/SDCCdwarf2.c: preliminary DWARF (ver 2) debugger data generator
1413
1414 2004-05-04 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
1415
1416         * src/hc08/gen.c (genJumpTab, emitcode, genhc08code): fixed stack error
1417         and inappropriate peephole optimization in jump tables
1418
1419 2004-04-30 Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
1420
1421         * as/hc08/m08pst.c,
1422         * src/SDCCglue.c: sdccopt works for the hc08 port now
1423
1424 2004-04-27 Bernhard Held <bernhard AT bernhardheld.de>
1425
1426         * src/SDCCicode.c (geniCodePreInc, geniCodePreDec): fixed bug #942130
1427
1428 2004-04-27 Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
1429
1430         * as/hc08/lkelf.c: sdccconf.h is not available in WIN32
1431
1432 2004-04-24 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
1433
1434         * src/SDCCpeeph.c (replaceRule): support empty replacement peephole
1435         rules
1436         * src/SDCCmain.c,
1437         * src/SDCCglobl.h,
1438         * src/SDCCpeeph.c (getPeepLine): new option --no-peep-comments omits
1439         comments from the peephole optimizer replacement rules
1440         * src/SDCCmem.c (printAllocInfoSeg): give actual location of spilled
1441         symbols
1442         * src/SDCCcse.c (updateSpillLocation),
1443         * src/SDCCopt.c (killDeadCode, findReqv): better tracking of register
1444         equivalents
1445         * src/hc08/ralloc.c (regTypeNum): pseudo symbols must be in DATA only
1446         * src/hc08/main.c (_hc08_finaliseOptions): made pointers to stack
1447         objects far pointers
1448
1449 2004-04-23 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
1450
1451         * src/SDCCsymt.h: a missing part of my last change
1452         * src/pic/ralloc.c (regTypeNum),
1453         * src/pic16/ralloc.c (regTypeNum): fixed statement/declaration order
1454
1455 2004-04-23 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
1456
1457         * src/SDCCicode.h,
1458         * src/SDCCicode.c (aggrToPtrDclType),
1459         * src/SDCCptropt.h,
1460         * src/SDCCptropt.c (ptrBaseRematSym, ptrPseudoSymSafe,
1461         ptrPseudoSymConvert),
1462         * src/pic/ralloc.c (regTypeNum),
1463         * src/pic16/ralloc.c (regTypeNum),
1464         * src/hc08/ralloc.c (regTypeNum),
1465         * src/ds390/ralloc.c (regTypeNum),
1466         * src/mcs51/ralloc.c (regTypeNum): check for dependancy hazards before
1467         creating pseudo symbols (fixed bugs #777768, #930484, and #933966)
1468
1469 2004-04-22 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
1470
1471         * link/z80/lkmain.c (afile),
1472         * as/hc08/lkmain.c (afile),
1473         * as/mcs51/lkmain.c (afile): fix suggested by Maarten Brock to
1474         prevent a pointer problem when a filename has no directory and
1475         no extension specified.
1476
1477 2004-04-21 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
1478
1479         * link/z80/lkmain.c (afile): allow periods in directory names
1480         * link/z80/lkmain.c (afile),
1481         * as/mcs51/lkmain.c (afile),
1482         * as/hc08/lkmain.c (afile): allow linker script file to have an
1483         extension other than ".lnk"
1484         * link/z80/lklex.c (getfid),
1485         * link/z80/lkmain.c (parse),
1486         * as/mcs51/lklex.c (getfid),
1487         * as/mcs51/lkmain.c (parse),
1488         * as/hc08/lklex.c (getfid),
1489         * as/hc08/lkmain.c (parse): Support comments in the linker script
1490         file on lines by themselves and after filenames
1491
1492 2004-04-20 Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
1493
1494         * as/link_hc08.dsp: Added as/hc08/lkelf.c to project.
1495
1496 2004-04-20 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
1497
1498         * src/z80/peeph-z80.def: removed some peephole rules that don't
1499         work with multibyte arithmetic (fixed bug #937126)
1500         * src/mcs51/peeph.def: fixed peephole rules 150-158 to apply only
1501         to registers and not global variables
1502         * src/SDCCicode.c (geniCodeAssign, ast2iCode, geniCodePostInc,
1503         geniCodePreInc, geniCodePostDec, geniCodePreDec,
1504         geniCodeLogicAndOr, geniCodeConditional): enforce strict lvalue
1505         checking for assignments not internally generated (fixed bug #931895)
1506         * src/SDCC.y (postfix_expr): ignore typedefs when looking for a
1507         structure member (fixed bug #930072)
1508
1509 2004-04-19 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
1510
1511         * src/SDCCmain.c (linkEdit),
1512         * src/hc08/main.c (_hc08_parseOptions),
1513         * as/hc08/Makefile.in,
1514         * as/hc08/aslink.h,
1515         * as/hc08/asm.h,
1516         * as/hc08/m08pst.c,
1517         * as/hc08/lkrloc.c (relr, rele),
1518         * as/hc08/lkarea.c (lnkarea)
1519         * as/hc08/lkmain.c (afile, parse),
1520         * as/hc08/lkelf.c: support for ELF output
1521         * as/hc08/lks19.c (s19),
1522         * as/hc08/lkihx.c (ihx): ignore areas with the NOLOAD attribute
1523
1524 2004-04-17 Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
1525
1526         * as/mcs51/lkihx.c: Fixed bug #899105.
1527
1528 2004-04-16 Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
1529
1530         * doc/sdccman.lyx: Added instructons on how to convert MSVC .dsw and
1531         .dsp files from Unix to DOS.
1532
1533 2004-04-16 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
1534
1535         * doc/sdccman.lyx: removed the ANSI-C noncompliance note regarding
1536         function pointers; we have been compliant for several months now.
1537         * src/mcs51/ralloc.c (serialRegAssign): enabled part of my 2004-04-13
1538         change that was accidently commented out
1539         * src/mcs51/gen.c (freeAsmop, getFreePtr, freeForBranchAsmop, genIfxJump,
1540         genCmpEq, jmpTrueOrFalse, genCmp, genAnd, genOr, genXor, genIfx): fixed
1541         bug #922319
1542
1543 2004-04-15 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
1544
1545         * src/hc08/gen.c: output of all of the internal debugging information
1546         is now controlled by the D() macro; it is disabled by default
1547
1548 2004-04-13 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
1549
1550         * src/mcs51/ralloc.c (serialRegAssign, fillGaps, allocThisReg): try
1551         harder to keep the same registers during a CAST iCode
1552         * src/SDCCopt.c (optimizeCastCast, eBBlockFromiCode): casts of char to
1553         long via int can be done in a single cast, if the signedness is
1554         correct.
1555         * support/regression/tests/bug-927659.c: fixed to avoid conflict with
1556         putchar() in tinibios.c in ds390's library
1557
1558 2004-04-12 Bernhard Held <bernhard AT bernhardheld.de>
1559
1560         * src/SDCCast.c (decorateType): fixed bug #898889,
1561         cast result of a literal complement too
1562         * src/mcs51/ralloc.c (packRegsForAssign): fixed bug #930931,
1563         fixed check for bitfields
1564
1565 2004-04-11 Bernhard Held <bernhard AT bernhardheld.de>
1566
1567         * src/SDCCicode.c (geniCodeLogic): made it static,
1568         (geniCodeLogicAndOr): added in order to fix bug #905492,
1569         (ast2iCode): fixed bug #905492
1570         * support/regression/tests/bug-905492.c: added
1571         * src/SDCCast.c (decorateType): don't decorate/process parms twice,
1572         (processParms): fixed bug #927659: don't copy parms, this will clear
1573         decorated flag
1574         * support/regression/tests/bug-927659.c: added
1575
1576 2004-03-29 Bernhard Held <bernhard AT bernhardheld.de>
1577
1578         * src/SDCCast.c (addCast): don't cast float to char
1579         * device/lib/libsdcc.lib: added _memmove
1580
1581 2004-03-28 Bernhard Held <bernhard AT bernhardheld.de>
1582
1583         * device/lib/large/Makefile: fixed parallel execution by
1584         replacing `make` by `$(MAKE)`
1585
1586 2004-03-28 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
1587
1588         * src/hc08/gen.c (genPointerGetSetOfs): correctly handle 1 byte array
1589         offsets (fixes bug #923936)
1590
1591 2004-03-26 Bernhard Held <bernhard AT bernhardheld.de>
1592
1593         * device/lib/small/Makefile: fixed parallel execution by
1594         replacing `make` by `$(MAKE)`
1595
1596 2004-03-23 Bernhard Held <bernhard AT bernhardheld.de>
1597
1598         * device/lib/vprintf.c (vsprintf): minor optimization, see bug #801101
1599
1600 2004-03-23  Scott Dattalo  <scott AT dattalo.com>
1601
1602         * src/pic/gen.c (genCpl): multi-byte complements were not working.
1603         * src/regression/Makefile: Regression test was not running.
1604
1605 2004-03-23 Bernhard Held <bernhard AT bernhardheld.de>
1606
1607         * src/SDCCast.c (resultTypePropagate, decorateType): avoid promotion to int for
1608         complement if possible
1609         * src/SDCCval.c (valComplement),
1610         * src/SDCCicode.c (operandOperation): fixed complement of literal
1611         * support/regression/tests/onebyte.c (testComplement): added
1612
1613 2004-03-22 Bernhard Held <bernhard AT bernhardheld.de>
1614
1615         * src/SDCCast.c (processParms): fixed bug #920866; decorateType() can
1616         return an optimized tree; actually replace actParm with the new tree
1617         * src/SDCCast.h: added some parantheses to remove side effects
1618         * support/regression/tests/bug-920866.c
1619
1620 2004-03-21  Scott Dattalo  <scott AT dattalo.com>
1621         * src/pic/gen.c, src/pic/gen.h, src/pic/genarith.c, src/pic/pcode.c:
1622         Bit operands were not being handled properly in the pic14 port.
1623         (now src/regression/add.c passes again).
1624
1625 2004-03-20 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
1626
1627         * src/SDCC.y (labeled_statement): case and default no longer require
1628         a following statement (RFE #893037)
1629
1630 2004-03-19 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
1631
1632         * src/mcs51/gen.c (pushSide, genSignedRightShift, genDjnz, geniPush):
1633         use MOVA macro to avoid "mov a,acc" when peephole optimizer is
1634         disabled (fixes bug #916294)
1635         * sim/ucsim/s51.src/mov.cc (inst_mov_a_addr): Throw an error on
1636         "mov a,acc"; patch provided by Lenny Story
1637         * device/include/mc68hc908gp32.h: header contibuted by Juan Gonzalez
1638
1639 2004-03-19 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
1640
1641         * src/mcs51/gen.c (genFunction): optimize RECEIVE in reentrant
1642         functions
1643         * src/ds390/gen.c (genFunction, genEndFunction),
1644         * src/ds390/ralloc.c (ds390_assignRegisters),
1645         * src/mcs51/gen.c (genFunction, genEndFunction, mcs51_assignRegisters):
1646         * src/mcs51/ralloc.c (mcs51_assignRegisters): Skip optimizing registers
1647         pushed if there are parameters passed on the stack. Also, a cleaner
1648         way to decide if r0/r1 should be pushed/popped. (Together they fix
1649         bug #918693)
1650
1651 2004-03-18 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
1652
1653         * doc/sdccman.lyx,
1654         * device/lib/mcs51/crtpagesfr.asm,
1655         * device/lib/mcs51/crtxinit.asm,
1656         * device/lib/mcs51/crtxstack.asm: Changed name of _PAGESFR to _XPAGE
1657         to avoid confusion with Si Lab's SFRPAGE register.
1658
1659 2004-03-17 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
1660
1661         * src/SDCCglue.c (emitMaps): allow public sfr variables
1662         * src/SDCCglue.c (initialComments): include compiler build date
1663         with compiler version and put the timestamp of the generated
1664         assembly file on a serperate line to be less confusing.
1665         * src/port.h: added genInitStartup hook
1666         * src/avr/main.c,
1667         * src/ds390/main.c,
1668         * src/hc08/main.c,
1669         * src/pic/main.c,
1670         * src/pic16/main.c,
1671         * src/xa51/main.c,
1672         * src/z80/main.c: genInitStartup initialize as NULL (default to
1673         historical behaviour)
1674         * src/SDCCglue.c (glue): _sdcc_gsinit_startup is now port specific.
1675         * src/mcs51/main.c: (_mcs51_genInitStartup, _mcs51_genExtraAreas,
1676         _mcs51_genXINIT, _mcs51_genRAMCLEAR): link initialization code from the
1677         library instead of hard coding it into the compiler.
1678         * support/regression/ports/mcs51-stack-auto/spec.mk,
1679         * src/SDCCmain.c (linkEdit): added mcs51.lib to the link libraries
1680         * device/lib/mcs51/Makefile,
1681         * device/lib/small/Makefile,
1682         * device/lib/large/Makefile,
1683         * device/lib/mcs51/crtpagesfr.asm,
1684         * device/lib/mcs51/crtstart.asm,
1685         * device/lib/mcs51/crtxclear.asm,
1686         * device/lib/mcs51/crtxinit.asm,
1687         * device/lib/mcs51/crtclear.asm,
1688         * device/lib/mcs51/crtxstack.asm: move most of the mcs51 C runtime
1689         startup/initialization out of src/SDCCglue.c and src/mcs51/main.c
1690         and into user configurable files.
1691         * device/lib/clean.mk: clean mcs51 directory too
1692         * support/regression/tests/longlit.c: added static to T1 declaration
1693         * doc/sdccman.lyx: documented _PAGESFR sfr for customizing pdata
1694         accesses in the initialization code
1695
1696 2004-03-14 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
1697
1698         * device/include/mc68hc908qy.h: corrected declarations of FLBPR and
1699         OSCTRIMVAL as noted in bug #916008
1700
1701 2004-03-14 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
1702
1703         * src/SDCCloop.c (basicInduction): fixed bug with loop induction
1704         in loops with multiple exits (reported as incorrect registers
1705         used by Martin Helmling in Sdcc-user list)
1706
1707 2004-03-12 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
1708
1709         * src/ds390/main.c (_ds390_genAssemblerPreamble): cosmetic change,
1710         made ds390 register extensions look less like error messages
1711
1712 2004-03-12 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
1713
1714         * src/SDCCglue.c (printIvalPtr): fixed bug with pointer initializer
1715         reported by Adam Wozniak in Sdcc-user list
1716
1717 2004-03-10 Bernhard Held <bernhard AT bernhardheld.de>
1718
1719         * src/SDCCast.c (decorateType): fixed with bug and promotion in
1720         arithmetic optimizations, added debug output
1721
1722 2004-03-09 Bernhard Held <bernhard AT bernhardheld.de>
1723
1724         * device/lib/time.c (mktime): fixed bug reported by Bert Thomas
1725         * sdcc.spec: updated and split sdcc into 3 rpms
1726         * src/SDCCast.c (decorateType): &|^ don't need addCast(); addCast() is
1727         needed for literals of LEFT_OP and '+'
1728         * src/SDCCicode.c (geniCodeLogic): I must have been braindead when I
1729         introduced RESULT_TYPE_NOPROM
1730         (geniCodeMultiply): fixed logic for decision if mul is optimized to
1731         left shift
1732         * src/SDCCsymt.c (computeType): op is int; added RESULT_TYPE_OTHER;
1733         limited promotion to int only for '*'
1734         * src/SDCCsymt.h (computeType): op is int, removed RESULT_TYPE_NOPROM
1735
1736 2004-03-09 Hans Dorn <hjdorn AT users.sourceforge.net>
1737
1738         * src/pic16/gen.c (genSkip),
1739         (genc16bit2lit), (gencjneshort): commented out
1740         (is_LitOp): new helper function, checks operand type
1741         (genCmpEq): rewritten
1742
1743 2004-03-08 Bernhard Held <bernhard AT bernhardheld.de>
1744
1745         * support/regression/tests/bug-908454.c: added
1746
1747 2004-03-07 Bernhard Held <bernhard AT bernhardheld.de>
1748
1749         * src/SDCCast.c (addCast): fixed bug #908454 by promoting bits to char
1750         * src/SDCCicode.c (usualBinaryConversions): op needs int type
1751         (geniCodeCast): cosmetic, don't preserve bit storage class
1752         (geniCodeLeftShift): added promotion
1753         (geniCodeLogic): fixed regression
1754         * src/SDCCsymt.c (computeTypeOr): accept bits too
1755         (compareType): 2nd part of fix for bug #908454, needed for bitfields
1756
1757 2004-03-07  Borut Razem <borut.razem AT siol.net>
1758
1759         * support/Util/findme.c: alloca() replaced with malloc()/free() pair
1760
1761 2004-03-06 Vangelis Rokas <vrokas AT otenet.gr>
1762
1763         * src/pic16/ralloc.c (pic16_genPackRegisters): reverted to old
1764         version of pic16_genPackRegisters which does not check if ic is a
1765         CAST operator,
1766         * src/pic16/gen.c (ifxForOp): disabled new and untested code in
1767         function cause string1.c regression test fails
1768
1769 2004-03-06 Bernhard Held <bernhard AT bernhardheld.de>
1770
1771         * sim/ucsim/configure.in,
1772         * sim/ucsim/configure,
1773         * sim/ucsim/doc/Makefile.in: use docdir
1774         * src/SDCC.y: fixed sbit atrributes
1775         * src/SDCCast.c (getResultTypeFromType): added support for bitfields
1776         * src/SDCCast.c (decorateType): |^& need special promotion handling
1777         * src/SDCCast.h,
1778         * src/SDCCsymt.h: moved definition of RESULT_TYPE
1779         * src/SDCCsymt.h (computeType),
1780         * src/SDCCicode.c: computeType() needs op
1781         * src/SDCCsymt.c (checkTypeSanity),
1782         * doc/sddman.lyx: "plain" bitfields are unsigned
1783         * src/SDCCsymt.c (computeTypeOr): added
1784         * src/SDCCsymt.c (computeType): added support for bitfields, fixed
1785         |^& ops
1786         * src/SDCCval.c (val*): computeType() needs op
1787         * src/SDCCval.c (valCastLiteral): fixed casting of bitfields
1788         * support/regression/tests/onebyte.c: added tests for |^&
1789
1790 2004-03-06 Hans Dorn <hjdorn AT users.sourceforge.net>
1791
1792         * src/pic16/gen.c: (genpic16Code) use copy of printILine's output
1793         for writing icode into asm output.
1794
1795 2004-03-05 Vangelis Rokas <vrokas AT otenet.gr>
1796
1797         * src/pic16/device.c: added some debug lines enabled
1798         with macro DEBUG_CHECK,
1799         * src/pic16/genarith.c: more debug in genPlus,
1800         * (pic16_genUMult8XLit_16, pic16_genUMult8X8_16): removed,
1801         * (pic16_genUMult16X16_16, pic16_genUMult16XLit_16): NEW,
1802         * src/pic16/gen.c: added prototypes for pic16_genMult16X16_16,
1803         * (aopForSym): onStack symbols are re-placed in data memspace,
1804         and onStack flag is cleared,
1805         * (pic16_popGetTempReg, pic16_popReleaseTempReg): modified to
1806         copy temporary pcodeop,
1807         * (genPcall): added warning for not updating PCLATU,
1808         * (genFunction): removed test with IFFUNC_CALLEESAVES, its
1809         always true for pic16 port,
1810         * (genMultOneWord): NEW, supports integer multiplication,
1811         * (genMult): modified to call genMultOneWord,
1812         * (ifxForOp): added warning when return NULL,
1813         * src/pic16/glue.c (pic16emitRegularMap): symbol implicit
1814         flag is set before call to operandFromSymbol for implicit
1815         added structures,
1816         * src/pic16/main.c (_pic16_finaliseOptions): options.float_rent,
1817         options.intlong_rent are set by default,
1818         * (_hasNativeMulFor): modified to allow port generation of integer
1819         multiplication,
1820         * src/pic16/ralloc.c (pic16_allocDirReg): commented out line which
1821         set regtype to REG_SFR for all registers, restricting seting the
1822         accessBank flag for registers 0<= r < 0x80 and 0xf80<=r<=0xfff,
1823
1824 2004-03-05 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
1825
1826         * src/mcs51/peephole.def: added 251.b and 253.x. 253.x are applied
1827         more than 500 times in the regression tests
1828
1829 2004-03-05 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
1830
1831         * support/Util/SDCCerr.h,
1832         * support/Util/SDCCerr.c,
1833         * src/SDCC.y (struct_or_union_specifier, enum_specifier,
1834         enumerator_list),
1835         * src/SDCCsymt.c (addSymChain): show location of oriignal definition
1836         for symbol conflicts.
1837         * support/valdiags/tests/enum.c,
1838         * support/valdiags/tests/tentdecl.c,
1839         * support/valdiags/tests/struct.c: expect possible error messages
1840         referring to original symbol definitions.
1841         * src/SDCC.y (struct_or_union_specifier, struct_declarator),
1842         * src/SDCCsymt.h,
1843         * src/SDCCsymt.c (promoteAnonStructs): support anonymous struct/union
1844
1845 2004-03-03 Hans Dorn <hjdorn AT users.sourceforge.net>
1846
1847         * src/pic16/gen.c (gencjne): fixed for right=REG / left=LIT
1848
1849 2004-02-03 Vangelis Rokas <vrokas AT otenet.gr>
1850
1851         * src/pic16/ralloc.c (newReg): fixed bug #908929
1852
1853 2004-03-02 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
1854
1855         * src/ds390/gen.c: added missing #include "main.h"
1856
1857 2004-03-02 Vangelis Rokas <vrokas AT otenet.gr>
1858
1859         * src/pic16/device.c (checkAddSym): NEW, adds a symbol to set while
1860         checking if symbol is already in set,
1861         * src/pic16/device.h: prototype for checkAddSym,
1862         * src/pic16/gen.c: (_G): added entry interruptvector,
1863         * (assignResultValue): removed some commented out lines,
1864         * (genFunction): check for ISR via sym->type, absolute section for
1865         interrupt code is created via a new pBlock, the goto instruction is
1866         placed now correctly at the interrupt vector position, changed all
1867         references from ivec to _G.interruptvector,
1868         * WREG,STATUS,BSR are not saved in stack upon an entry to interrupt
1869         is the interrupt is a high priority one, same for return from ISR,
1870         * src/pic16/glue.c: changed all calls of addSetHead for publics and
1871         externs to calls of checkAddSym,
1872         * src/pic16/pcode.c (pic16_pBlockConvert2*): emit warning when
1873         pic16_pcode_verbose flag is set,
1874         * src/pic16/pcode.h: extern to pic16_pcode_verbose,
1875         * src/pic16/pcoderegs.c: message about how many registers are saved
1876         will only be emitted if pic16_pcode_verbose flag is set,
1877
1878 2004-03-02 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
1879
1880         * src/ds390/ralloc.h,
1881         * src/ds390/ralloc.c (ds390_regWithIdx),
1882         * src/ds390/gen.c (emitcode),
1883         * src/ds390/main.h,
1884         * src/ds390/main.c (instructionSize, ds390newAsmLineNode, updateOpRW,
1885         ds390opcodeCompare, asmLineNodeFromLineNode, getInstructionSize,
1886         ds390operandCompare, getRegsRead, getRegsWritten,
1887         initializeAsmLineNode): customized instruction size calculation for
1888         ds390, started basis for some register optimizations
1889         * src/ds390/gen.c (gen390Code, emitcode): associate iCodes with
1890         corresponding assembly output
1891         * src/ds390/gen.c (genFunction, genEndFunction): added case to handle
1892         missing push/pop of r0/r1. Optimized push/pops
1893
1894 2004-03-01 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
1895
1896         * src/mcs51/main.c (instructionSize): fixed ACALL size
1897         * src/mcs51/main.c (updateOpRW): fixed bug with @dptr, @a+dptr operands
1898
1899 2004-03-01 Vangelis Rokas <vrokas AT otenet.gr>
1900
1901         * src/pic16/device.c (pic16_dump_section): fixed a bug that allowed
1902         the sorting of rlist with NULL elements
1903         * (print_idataType, print_idata): NEW to create idata sections
1904         * src/pic16/device.h: idataSymSet new variable
1905         * src/pic16/gen.c (genFunction): fixed some bugs in string
1906         comparing, improved the absolute section creation for ISRs,
1907         added FSR0L/FSR0H in registers that are saved in an ISR,
1908         * (genInline): fixed the processing of inline snippets,
1909         now they undergo no process by the peephole optimizer
1910         * src/pic16/glue.c (pic16emitRegularMap): symbols with initialiser
1911         are placed in idataSymSet,
1912         * (pic16emitStaticSeg): extern symbols are added in externs,
1913         * src/pic16/ralloc.c (pic16_allocDirReg): work around to reduce bank
1914         switching when aboslute variables are placed in access bank memory
1915         * (pic16_writeUsedRegs): added call to pic16_dump_idata,
1916         * (packRegsForSupport,packRegsForAccUse,packRegsForOneuse):
1917         commented out with #if,
1918         * (pic16_packRegisters): reintroduce the check for CAST because some
1919         symbols are not correctly handled,
1920         * src/pic16/pcode.h: changed the definition of pCodeAsmDir to hold a
1921         pCodeInstruction instead of pCode,
1922         * src/pic16/pcode.c (pic16_newpCodeAsmDir): modified for the new
1923         pCodeAsmDir definition,
1924         * (pic16_pCode2str, genericPrint): when an AsmDir pcode has a NULL
1925         directive, then the argument directive is emitted without the leading
1926         tab, hack for inline labels which must be in the first column,
1927         * (compareLabel,pic16_findNextInstruction),
1928         * (pic16_findPrevInstruction): added case for PO_ASMDIR,
1929         * (insertBankSwitch): modified for the new pCodeAsmDir,
1930
1931 2004-03-01 Hans-Juergen Dorn <hans.dorn AT apl-landau.de>
1932         patch applied by Vangelis Rokas <vrokas AT otenet.gr>
1933
1934         * src/pic16/gen.c (pic16_popGet): case PO_DIR, adds the offset to
1935         instance,
1936         * (pushSide): commented out with #if,
1937         * (assignResultValue): fixed some typos in saving
1938         registers,
1939         * (genPcall): FIXED and sync'ed with genCall,
1940         * (genDataPointerGet,genDataPointerSet): using offset not leoffset
1941         * (genNearPointerGet): fixed to handle some more cases,
1942         implementation scheme via table reads,
1943         * (genConstPointerGet): modified to access code memory correct,
1944         * (genCodePointerGet,genNearPointerSet,genGenPointerSet): modified
1945         and improved to handle some cases
1946         * glue.c (printIvalType,printIvalChar,emitStaticSeg): use "DB"
1947         instead of "RETLW" for init data
1948         * src/pic16/ralloc.c (pic16_allocDirReg): warning when a symbol is
1949         not IN_DIRSPACE, work around to reduce bank switching when aboslute
1950         variables are placed in access bank memory (<0x80 and >=0xf80),
1951         * src/pic16/pcode.c: added SFRs TBLPTR, TABLAT, added opcodes TBLRD,
1952         TBLRD_POSTINC,TBLRD_POSTDEC,TBLRD_PREINC,TBLWT,TBLWT_POSTINC,
1953         TBLWT_POSTDEC,TBLWT_PREINC
1954         * Fixed initialisation of BSR, set "alias" for SSAVE to "0"
1955         * (pic16_emitDB,pic16_flushDB): New functions to generate "DB"
1956         directives
1957         * (pic16_pCodeConstString): use "DB" instead of "RETLW"
1958         * src/pic16/pcode.h: added TBLRD*,TBLWT*, added pic16_emitDB,
1959         pic16_flushDB, made pic16_newpCodeAsmDir public, added TBLPTR, TABLAT
1960         * src/pic16/ralloc.h: added IDX_BSR,IDX_TBLPTR*,IDX_TABLAT
1961
1962 2004-02-29  Borut Razem <borut.razem AT siol.net>
1963
1964         * src/Makefile.in, src/SDCCutil.c, support/Util/findme.c,
1965         support/Util/findme.h, support/Util/system.h: enhance binary relative
1966         search for lib and include by using findProgramPath()
1967
1968 2004-02-28 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
1969
1970         * src/SDCCpeeph.h,
1971         * src/SDCCpeeph.c (pcDistance),
1972         * src/port.h,
1973         * src/mcs51/ralloc.h,
1974         * src/mcs51/ralloc.c (mcs51_regWithIdx),
1975         * src/mcs51/main.h,
1976         * src/mcs51/main.c (instructionSize, asmLineNode, updateOpRW,
1977         mcs51opcodeCompare, asmLineNodeFromLineNode, getInstructionSize,
1978         mcs51operandCompare, getRegsRead, getRegsWritten): made instruction
1979         size calculation port specific, started basis for some register
1980         optimizations
1981         * src/mcs51/gen.c (genFunction, genEndFunction): added case to handle
1982         missing push/pop of r0/r1. Optimized push/pops
1983         * src/mcs51/ralloc.c (packregisters): fixed bug #727095
1984         * device/lib/_modsint.c (_modsint),
1985         * device/lib/_modslong.c (_modslong): fixed sign of result in non-asm
1986         and stack version so regression tests pass
1987
1988 2004-02-26 Bernhard Held <bernhard AT bernhardheld.de>
1989
1990         * src/Makefile.in (dep): include SLIBOBJS in dependency check
1991         * src/SDCCast.c (decorateType): catch another small optimization
1992         with '?' operator
1993         * src/SDCCsymt.c (computeType): added comments and cosmetic changes
1994         * src/SDCCval.c (valMult, valDiv, valMod, valPlus, valMinus, valShift):
1995         modified to finally use computeType() all over SDCC,
1996         see Feature Request #877103
1997         * src/SDCCval.h: cosmetic
1998         * src/SDCCicode.c (operandOperation): fixed EQ_OP bug, now same as in
1999         valCompare(); regression tested in muldiv.c
2000         * support/regression/tests/muldiv.c (testMod): mod sign follows
2001         dividend only
2002
2003 2004-02-23 Bernhard Held <bernhard AT bernhardheld.de>
2004
2005         * src/SDCCast.c (decorateType): fixed bug #902362
2006         * doc/INSTALL.txt: fixed install instructions for win32
2007
2008 2004-02-21 Bernhard Held <bernhard AT bernhardheld.de>
2009
2010         * device/include/Makefile.in (install): fixed by replacing spaces
2011         by tabs
2012         * doc/README.txt,
2013         * doc/INSTALL.txt: updated for release
2014         * doc/sdccman.lyx: added warning for --xstack being buggy
2015
2016 2004-02-20 Bernhard Held <bernhard AT bernhardheld.de>
2017
2018         * src/pic16/ralloc.c (packRegsForAccUse):  disabled functions with #if
2019         to eliminate build warnings.
2020         * src/pic16/gen.c (pic16_popGet): fixed for gcc 2.95.4
2021
2022 2004-02-20 Vangelis Rokas <vrokas AT otenet.gr>
2023            Hans-Juergen Dorn <hans.dorn AT apl-landau.de>
2024
2025         * doc/sdccman.lyx: removed PIC16 from PIC16 Port Specific Options,
2026         removed -penable-stack, added comment for stack pragma, added
2027         warning for not initializing the stack/frame registers, removed
2028         comment at interrupts section
2029
2030         Stack is made permanent, there is no ability to disable stack usage.
2031         * src/pic16/device.h,
2032         * src/pic16/device.c: removed all references to USE_STACK macro,
2033         * src/pic16/device.c (pic16_dump_section): when no elements in
2034         rlist, free rlist before return,
2035         * (pic16_dump_int_registers): NEW, internal registers are a new set
2036         of general purpose registers reused by each function,
2037         * (checkAddReg): returns 1 if registers is added to set,
2038         * (pic16_groupRegistersInSection): when a registers is of type
2039         PO_GPR_TEMP add it in pic16_int_regs and not in pic16_rel_udata,
2040         * src/pic16/device.h: memRange and Assigned Memory are deleted,
2041         SRCASECMP macro is moved here from device.c
2042         * src/pic16/genarith.c (pic16_pCodeOpType): added cases for
2043         PO_PCLATU, PO_PRODL, PO_PRODH,
2044         * (pic16_pCodeOpType, genMinus,
2045         changed compares to "a" register, with AOP_ACC,
2046         * (pic16_genPlus): fixed some bugs and indented properly,
2047         * (pic16_addSign): changed size to size+offset in the MOVWF
2048         instruction,
2049         * (pic16_genUMult8XLit_8): NEW, uses processor MULLW instruction to
2050         multiply 8-bit operand by literal, result is 8-bit,
2051         * (pic16_genUMult8X8_8): NEW, uses processor MULWF instruction to
2052         multiply 2 8-bit operand, result is 8-bit,
2053         * (pic16_genMult8X8_8): modified to call genUMult8X*_8 functions and not
2054         genUMult8X*_16,
2055         * src/pic16/gen.c: changed accUse to contain WREG only,
2056         * (pic16_emitcomment): renamed to pic16_emitpcomment,
2057         * (aopForSym): allocated dir register when IN_DIRSPACE(space) is,
2058         true, do not use immediate addressing any more unless sym is a
2059         pointer in codespace,
2060         * (aopForRemat): do not use immediate addressing when symbol not in
2061         codespace and when symbol's address is requested,
2062         * (aopOp): for-loop in if(sym->accUse) is modified for the new
2063         accUse size (= 1),
2064         * (aopGet): added case for AOP_ACC and don't return "accumulator
2065         bug" but WREG instead,
2066         * (popGetTempReg): pushes contents of temporary register in stack,
2067         * (popReleaseTempReg): pops contents of temporary register from
2068         stack. Use popGetTempReg/popReleaseTempReg in aligned pairs,
2069         * (pic16_popGet): separated case AOP_ACC to return register WREG
2070         from processor registers, AOP_PCODE not checks if pcop is PO_DIR
2071         or PO_IMMEDIATE and initializes their instance/offset appropriately,
2072         * The whole issue with aopForSym,aopForRemat,popGet) is to minimize
2073         the use of immediate pointers to certain cases only.
2074
2075         * (pic16_pushpCodeOpReg, pic16_poppCodeOpReg): use pic16_popGet2p,
2076         * (pic16_loadFromReturn, pic16_storeForReturn: NEW,
2077         * (assignResultValue, genCall, genRet): modified to use the new
2078         function return value scheme with WREG,PRODL,PRODH,FSR0L and FSR0,
2079         genPcall is still broken,
2080         * (genFunction): added code to create 'A' type pBlocks when
2081         interrupt functions are generated, code not extensively tested yet,
2082         ISRs push WREG,STATUS,BSR,PRODL,PRODH,FSR0L,FSR0H registers on stack,
2083         * (genEndFunction): modified so ISRs pop stored registers from stack,
2084         * (genMultOneByte): cleanup,
2085         * (AccRsh): added flag andmask, to and result with appropriate mask,
2086         * (genUnpackBits,genPackBits): fixed and can handle bit fields,
2087         * (genDataPointerGet): fixed and reenabled its use,
2088         * (genNearDataPointerGet): bugs fixed,
2089         * (genDataPointerSet): bugs fixed,
2090         * src/pic16/genutils.c: added functions pic16_DumpValue,pic16_DumpAop,
2091         pic16_DumpSymbol, pic16_DumpOp,
2092         * src/pic16/genutils.h: function prototypes for the above functions,
2093         * src/pic16/glue.c: new flags initsfpnt, to initialize stack/frame
2094         pointers,
2095         * (pic16emitRegularMap): many many many improvements, but needs a
2096         major cleanup,
2097         * src/pic16/main.c: enable_stack in pic16_options is removed,
2098         * (_pic16_parseOptions): removed command line options -penable-stack,
2099         * (_process_pragma): emit stack symbol only when stack pragma is
2100         processed,
2101         * src/pic16/pcode.c: pic16_pc_fsr0 is removed, all operations are
2102         redirected to FSR0L/FSR0H pair,
2103         * (pic16_get_op, pic16_get_op2): modifications and improvements,
2104         * (pic16_getRegFromInstruction, pic16_getRegFromInstruction2): added
2105         cases PO_PRODL,PO_PRODH, pic16_getRegFromInstruction2 returns sane
2106         for immediates,
2107         * (insertBankSwitch): modified to handle cases like: (alfa + 1)
2108         * (dumpPicOptype): NEW,
2109         * src/pic16/pcode.h: added PO_PCLATU,PO_PRODL,PO_PRODH in enum,
2110         * src/pic16/pcoderegs.c (pCodeRegMapLiveRangesInFlow): fixed bug
2111         with movff instruction,
2112         * src/pic16/ralloc.c: renamed typeRegWithIdx to pic16_typeRegWithIdx,
2113         added pic16_int_regs, some packRegsFor* functions are commented out,
2114         because produce errors,
2115         * src/pic16/NOTES: minor modifications
2116
2117 2004-02-18  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
2118
2119         * as/mcs51/aslink.h, as/mcs51/lkarea.c, as/mcs51/lkdata.c, as/mcs51/lkmain.c,
2120         as/mcs51/lkmem.c, src/SDCCglob.h, src/SDCCmain.c: added options --stack-size and
2121         --pack-iram.
2122         * doc/sdccman.lyx: described options --stack-size and --pack-iram.
2123         * as/mcs51/lkaomf51.c: fixed bug #895763
2124
2125 2004-02-17 Bernhard Held <bernhard AT bernhardheld.de>
2126
2127         * device/include/c8051f320.h: added. Contributed by Maarten Brock.
2128
2129 2004-02-17 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
2130
2131         * doc/sdccman.lyx: added details about the HC08 storage classes and
2132         interrupts, fixed the register usage info for z80 & gbz80
2133
2134 2004-02-17 Vangelis Rokas <vrokas AT otenet.gr>
2135
2136         * doc/sdccman.lyx: added more pic16 port documentation
2137         * device/include/pic16/: added header pic18fregs.h
2138
2139 2004-02-16 Bernhard Held <bernhard AT bernhardheld.de>
2140
2141         * doc/sdccman.lyx: added Vangelis' contribution
2142
2143 2004-02-16 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
2144
2145         * src/SDCClrange.c (rlivePoint): live range of SEND operand should
2146         extend to the next CALL or PCALL, not just to the next CALL.
2147
2148 2004-02-16 Vangelis Rokas <vrokas AT otenet.gr>
2149
2150         * src/pic16/gen.c (genInline): fixed bug #896482 with inline assembly
2151
2152 2004-02-15 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
2153
2154         * src/mcs51/ralloc.c (packRegsForAssign, reassignAliasedSym): fixed
2155         bug #895752 and a better fix for bug #716790
2156
2157 2004-02-15 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
2158
2159         * src/SDCCsymt.c (processFuncArgs): fixed bug #896796
2160
2161 2004-02-14 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
2162
2163         * doc/sdccman.lyx: minor changes, minor changed
2164
2165 2004-02-13 Bernhard Held <bernhard AT bernhardheld.de>
2166
2167         * src/SDCCicode.c (usualBinaryConversions): removed pic16 from ports
2168         which can't handle SDCC_NEWONEBYTEOPS,
2169         (geniCodeMultiply): removed conversion from mult to shift for pic14
2170         and pic16
2171
2172 2004-02-12 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
2173
2174         * src/hc08/gen.h,
2175         * src/hc08/gen.c (storeRegToAop, aopOp, aopAdrStr, accopWithAop,
2176         rmwWithAop): Ported my 2003-10-02 fix for bug #663539 to the hc08,
2177         thus fixing bug #895406
2178
2179 2004-02-11 Bernhard Held <bernhard AT bernhardheld.de>
2180
2181         * device/lib/_modsint.c,
2182         * device/lib/_modslong.c: sign follows divisor only
2183         * src/hc08/gen.c (genMultOneByte): if result size is 1,
2184         signs or signedness can be ignored
2185         * src/SDCCast.c (addCast): cosmetic - added lineno to CAST
2186         * src/SDCCast.c (resultTypePropagate): added even more ops: +, - and *,
2187         added optimization for IFX,
2188         (decorateType): Mult/Div/ModOneByte ops can handle all kind of signed
2189         arguments;
2190         reenabled optimization for IFX, which was removed on 2004-01-11
2191         * src/SDCCast.h: added return type IFX
2192         * src/SDCCicode.c: Mult/Div/ModOneByte ops can handle all kind of signed
2193         arguments with 8 or 16 bit results; pic14 and pic16 ports use old
2194         promotion behaviour; env. var. SDCC_NEWONEBYTEOPS selects the new,
2195         SDCC_OLDONEBYTEOPS selects the old behaviour
2196         * src/SDCCsymt.c (computeType): type2 can be NULL (for LEFT_OP);
2197         changed again and commented promotion rule
2198         * src/SDCCval.c (valDiv): promotion no longer necessary
2199         * src/ds390/gen.c (genMultOneByte) (genDivOneByte) (genModOneByte),
2200         * src/mcs51/gen.c (genMultOneByte) (genDivOneByte) (genModOneByte):
2201         rewritten
2202         * support/regression/tests/onebyte.c: added
2203
2204 2004-02-11 Vangelis Rokas <vrokas AT otenet.gr>
2205
2206         * gen.c (genInline): reverted to old code for assemnling inline
2207         code because of bug reported James Chadd
2208
2209 2004-02-10 Vangelis Rokas <vrokas AT otenet.gr>
2210
2211         * ralloc.h: missing declarations from previous patch,
2212         seems that patch for ralloc.h was never applied, fixed
2213
2214 2004-02-10 Hans-Juergen Dorn <hans.dorn AT apl-landau.de>
2215            patch committed by Vangelis Rokas <vrokas AT otenet.gr>
2216
2217         * pcode.c,
2218         * pcode.h,
2219         * ralloc.h: added FSR0L, FSR0H and other missing PIC16 SFR's for
2220         indirect addressing. Marked FSR0 as deprecated
2221         * gen.c (pointerCode): commented out, not needed now
2222         (pic16_popGet2p): new MOVFF helper function
2223         (genGenPointerGet),
2224         (genGenPointerSet): reimplemented with MOVFF and POSTINC0
2225         (shiftRLong): removed duplicate debugging info
2226
2227 2004-02-10 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
2228
2229         * src/ds390/gen.c (genNearPointerGet),
2230         * src/mcs51/gen.c (genNearPointerGet): allow the genDataPointerGet()
2231         optimization with bits, but not bitfields.
2232         * src/ds390/ralloc.c (packRegisters),
2233         * src/mcs51/ralloc.c (packRegisters): fixed bug #884453 & #880832
2234
2235 2004-02-09 Bernhard Held <bernhard AT bernhardheld.de>
2236
2237         * src/SDCCcse.c (algebraicOpts): copy operands before modification
2238
2239 2004-02-09 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
2240
2241         * src/SDCCsymt.h,
2242         * src/SDCCicode.c (operandFromSymbol),
2243         * src/mcs51/ralloc.c (verifyRegsAssigned, serialRegAssign),
2244         * src/ds390/ralloc.c (verifyRegsAssigned, serialRegAssign),
2245         * src/z80/ralloc.c (verifyRegsAssigned, serialRegAssign),
2246         * src/hc08/ralloc.c (verifyRegsAssigned, serialRegAssign),
2247         * src/pic/ralloc.c (verifyRegsAssigned, serialRegAssign),
2248         * src/pic16/ralloc.c (verifyRegsAssigned, serialRegAssign): fixed
2249         bug #892038
2250         * src/SDCCast.c (createIvalStruct, createIvalArray, gatherAutoInit),
2251         * src/SDCCglue.c (emitRegularMap, printIvalStruct, printIvalArray,
2252         printIvalCharPtr, printIvalPtr, printIval, emitStaticSeg, emitOverlay)
2253         * src/SDCCsymt.c (newSymbol),
2254         * src/SDCC.y (struct_or_union_specifier, enum_specifier,
2255         enumerator_list),
2256         * src/SDCCval.h,
2257         * src/SDCCval.c (newiList): fixed bug #885705
2258
2259 2004-02-08  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
2260
2261         * doc/sdccman.lyx: added section 3.1.4: sdcclib.
2262         * as/mcs51/lkmem.c: report the size of the stack in .mem file.
2263
2264 2004-02-08 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
2265
2266         * device/include/c8051f120.h,
2267         * device/include/c8051f300.h,
2268         * device/include/c8051f310.h: added/updated header files for Silicon
2269         Laboratories (formerly Cygnal) CPUs. Contributed by Maarten Brock.
2270         * doc/sdccman.lyx: minor changes, recommended diff -Naur and diff -u
2271         in new section Submitting patches
2272
2273 2004-02-08 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
2274
2275         * src/mcs51/gen.c (genNearPointerGet, genPagedPointerGet,
2276         genFarPointerGet, genCodePointerGet, genGenPointerGet,
2277         genNearPointerSet, genPagedPointerSet, genFarPointerSet,
2278         genGenPointerSet),
2279         * src/ds390/gen.c (genNearPointerGet, genPagedPointerGet,
2280         genFarPointerGet, genCodePointerGet, genGenPointerGet,
2281         genNearPointerSet, genPagedPointerSet, genFarPointerSet,
2282         genGenPointerSet),
2283         * src/pic16/gen.c (genNearPointerGet, genPagedPointerGet,
2284         genFarPointerGet, genCodePointerGet, genGenPointerGet,
2285         genNearPointerSet, genPagedPointerSet, genFarPointerSet,
2286         genGenPointerSet),
2287         * src/pic/gen.c (genNearPointerGet, genPagedPointerGet,
2288         genFarPointerGet, genCodePointerGet, genGenPointerGet,
2289         genNearPointerSet, genPagedPointerSet, genFarPointerSet,
2290         genGenPointerSet): fixed bug #892400
2291         * src/pic16/gen.c (genSkipz, AccRol): disabled functions with #if 0
2292         to eliminate build warnings.
2293         * src/SDCCast.c (processParms),
2294         * src/SDCC.y (function_declarator2, declarator2_function_attributes):
2295         fixed bug 751859
2296         * support/valdiag/valdiag.py: added GCC to the list of defines active
2297         when compiling with gcc
2298
2299 2004-02-07 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
2300
2301         * support/Util/SDCCerr.h,
2302         * support/Util/SDCCerr.c,
2303         * src/SDCCast.c (decorateType, sizeofOp): complain when sizeof is used
2304         with an incomplete type (fixed bug #883734)
2305         * src/SDCCicode.c (geniCodeCast): fixed bug #890510
2306
2307 2004-02-07 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
2308
2309         * src/pic16/gen.c (genCmpEq, shiftRLong): fixed declarations
2310
2311 2004-02-06 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
2312
2313         * src/SDCCast.c (decorateType),
2314         * src/SDCCicode.c (geniCodeParms, geniCodeCall): fixed bugs in my ANSI
2315         function pointer implementation
2316         * support/regression/tests/funptrs.c: added tests to verify both forms
2317         of function pointers work correctly. Added tests to verify parameters
2318         are passed in the correct order.
2319
2320 2004-02-06  Vangelis Rokas <vrokas AT otenet.gr>
2321
2322         * device.c (regCompare): registers are sorted by ascending
2323         address and increasing size,
2324         * main.c (_pic16_finaliseOptions): removed the declaration
2325         of compiler macro MCU. Now a macro of the format pic18fxxxx
2326         will be defined from the command line
2327
2328 2004-02-06  Hans-Juergen Dorn <hans.dorn AT apl-landau.de>
2329             patch committed by Vangelis Rokas <vrokas AT otenet.gr>
2330
2331         * pcode.c (pic16initMnemonics): fixed typo in assignment to PCOP_RLNCF
2332         PCOP_RLCF was overwritten!
2333         * gen.c (genSkip): commented out calls to pic16_emitcode,
2334         * (genCmpEQ): fixed "long" compares, only high word did get compared,
2335         * (genlshTwo),
2336         * (genRRC): added debugging info,
2337         * (shiftL2Left2Result): Fixed bug, if offr > offl. Result got
2338         overwritten while shifting,
2339         * (shiftR2Left2Result): Fixed bug, if offr < offl. Result got
2340         overwritten while shifting,
2341         * (AccLsh),
2342         * (AccRsh),
2343         * (shiftLLeftOrResult),
2344         * (shiftRLeftOrResult),
2345         * (shiftRLong),
2346         * (shiftLLong): Implemented with pic16_emitpcode
2347         * (genlshFour): Replaced pic16_aopPut with pic16_emitpcode,
2348         * (genLeftShift): Fixed bug, operand for shift by variable always
2349         was "and"ed with 0x0f,
2350         * (genLeftShiftLiteral),
2351         * (genrshTwo),
2352         * (genRightShiftLiteral): added debugging info,
2353         * (genrshFour): added comment,
2354         * (genRightShift): determined signedness from operand "left"
2355         instead of "result"
2356
2357 2004-02-04 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
2358
2359         * src/SDCCicode.c (geniCodeParms),
2360         * src/SDCCast.c (decorateType, processParms): support for ANSI-style
2361         function pointers, fixed function pointer bugs #861242 and #861896
2362
2363 2004-01-31 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
2364
2365         * device/include/c8051f000.h,
2366         * device/include/c8051f120.h,
2367         * device/include/c8051f300.h: added header files for Silicon
2368         Laboratories (formerly Cygnal) CPUs. Contributed by Maarten Brock.
2369
2370 2004-01-31 Bernhard Held <bernhard AT bernhardheld.de>
2371
2372         * src/SDCCast.c (processParams): added new type flow and restructured
2373         (gatherAutoInit): added new type flow
2374         (addCast): cosmetic changes
2375         (getLeftResultType): added new type flow for array indices, patch
2376         provided by Stas, see FR #877103
2377         (decorateType): SDCC_NEWTYPEFLOW removed, new type flow is now standard;
2378         array index patch by Stas
2379         * src/SDCCast.h: added prototype getResultTypeFromType()
2380         * src/SDCCval.h,
2381         * src/SDCCval.c (resolveIvalSym) (resolveIvalSym),
2382         * src/pic/glue.c (pic14emitStaticSeg),
2383         * src/pic16/glue.c (pic16emitStaticSeg),
2384         * src/SDCCglue.c (emitRegularMap) (emitStaticSeg): added new type flow
2385         for initialization of symbols
2386         * src/SDCCicode.c (geniCodeArray): removed warning W_ARRAY_BOUND
2387         * support/Util/SDCCerr.h:
2388         * support/Util/SDCCerr.c: replaced W_ARRAY_BOUND by W_IDX_OUT_OF_BOUNDS
2389         * .version: bumped version number to 2.3.8
2390         * device/include/Makefile.in (install),
2391         * doc/Makefile (install): changed to 'rm `find ...`' construct to
2392         avoid warnings
2393
2394 2004-01-30 Bernhard Held <bernhard AT bernhardheld.de>
2395
2396         * support/regression/tests/libmullong.c: fixed for 64 bit hosts
2397         Slade Rich fixed an optimization bug
2398         * src/pic/pcodepeep.c,
2399         * src/pic/pcoderegs.c
2400         * doc/Makefile (install): added test for directory
2401
2402 2004-01-30 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
2403
2404         * src/mcs51/ralloc.c (getRegPtr, getRegGpr),
2405         * src/ds390/ralloc.c (getRegPtr, getRegGpr),
2406         * src/pic/ralloc.c (getRegPtr, getRegGpr),
2407         * src/pic16/ralloc.c (getRegPtr, getRegGpr),
2408         * src/z80/ralloc.c (getRegGpr): fixed bug #883361
2409         * as/mcs51/asexpr.c (term),
2410         * as/hc08/asexpr.c (term): fixed bug #887146
2411
2412 2004-01-29 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
2413
2414         * src/z80/gen.c (genMult): handle single byte result product
2415         * src/SDCCopt.c (killDeadCode): never convert ADDRESS_OF iCode to
2416         DUMMY_READ_VOLATILE (fixed bug #886367)
2417
2418 2004-01-27 Bernhard Held <bernhard AT bernhardheld.de>
2419
2420         * support/regression/tests/libmullong.c: fixed logic, on little endian
2421         hosts we ended without a mullong_wrapper()
2422
2423 2004-01-27 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
2424
2425         * ChangeLog: changed "@" to " AT " in hopes of reducing spam and
2426         virus/worm forged address usage.
2427
2428 2004-01-27 Bernhard Held <bernhard AT bernhardheld.de>
2429
2430         Fixed promotion, it should be done on AST level:
2431         * src/SDCCast.c (addCast): added promotion to int
2432         (decorateType): updated call to upCast()
2433         * src/SDCCicode.c (geniCodeLeftShift): removed call to
2434         usualUnaryConversions()
2435
2436 2004-01-26  Michael Hope  <michaelh AT juju.net.nz>
2437
2438         * support/regression/tests/literalop.c (mulWrapper): Added a
2439         wrapper to remove integer overflow warnings.
2440
2441         * support/regression/tests/float_trans.c: Made work on host.
2442
2443         * support/regression/ports/ucz80/spec.mk (UCZ80): Made detect the
2444         location of sz80.
2445
2446         * support/regression/generate-cases.py (main): Changed from inline
2447         to a main method.
2448
2449         * doc/Makefile (install): Changed to depth first to get rid of
2450         missing directory install warning.
2451
2452         * as/Makefile (install-doc): Made work on Mac.
2453
2454 2004-01-25 Bernhard Held <bernhard AT bernhardheld.de>
2455
2456         * src/SDCCast.c: added an additional type flow in decorateType() of
2457         opposite direction, see feature request #860006; it's enabled at runtime
2458         by setting the environment variable SDCC_NEWTYPEFLOW
2459         * src/SDCCast.h: changed prototype of decorateType()
2460         * src/SDCCglue.c (emitRegularMap): updated call of decorateType()
2461         * src/SDCCicode.c (geniCodeDivision) (geniCodeModulus): promotion from
2462         'char' to 'int' can be omitted, if both operands are 'unsigned char';
2463         see feature request #877103
2464         * src/SDCCval.c: updated call of decorateType()
2465         (valBitwise): fixed bug #882876
2466         (valMinus): added promotion
2467         (valLogicAndOr): result is unsigned
2468         (cheapestVal) (constVal): literals from 0...255 are 'unsigned char' now
2469         * src/SDCCsymt.c (computeType),
2470         * src/mcs51/gen.c (genCmpGt) (genCmpLt): literal 'unsigned char'
2471         must not cause an unsigned operation
2472         * src/pic/glue (pic14emitRegularMap),
2473         * src/pic16/glue.c (pic16emitRegularMap): updated call of decorateType()
2474
2475 2004-01-23 Bernhard Held <bernhard AT bernhardheld.de>
2476
2477         * src/pic/pcode.c (PCodeID): commented out left over debug code
2478
2479 2004-01-20 Bernhard Held <bernhard AT bernhardheld.de>
2480
2481         * support/valdiag/tests/overflow.c: added shift tests
2482         * src/pic/device.c,
2483         * src/pic/gen.c,
2484         * src/pic/gen.h,
2485         * src/pic/glue.c,
2486         * src/pic/main.c,
2487         * src/pic/pcode.c,
2488         * src/pic/pcode.h,
2489         * src/pic/pcodepeep.c,
2490         * src/pic/pcoderegs.c,
2491         * src/pic/ralloc.c,
2492         * src/pic/ralloc.h: applied patch from Slade Rich;
2493         added support for multiple code pages and multiple RAM banks on the
2494         PIC 14 port. The ASM files now no longer simply assume all the
2495         code / RAM are in the same page / bank. This means the linker can
2496         safely allocate code/RAM of separate ASM files to different pages/banks.
2497         * doc/sdccman.lyx: added Slade's tips
2498         * src/mcs51/peeph.def: fixed bug #880768
2499
2500 2004-01-20 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
2501
2502         * src/hc08/ralloc.c (rematStr): fixed bug #879282
2503         * src/SDCCast.c (decorateType): fixed bug #880197
2504
2505 2004-01-20  Michael Hope  <michaelh AT juju.net.nz>
2506
2507         * sim/ucsim/gui.src/serio.src/main.cc: Fixed unconditional use of
2508         getopt.h.
2509
2510         * debugger/mcs51/cmd.c (getValBasic): Changed strtof to strtod as
2511         strtof is not part of C89 and isn't included with Mac OS X.
2512
2513 2004-01-20 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
2514
2515         * src/hc08/gen.c (genPlusIncr, genUminus, genMinusDec, genCmp,
2516         shiftL2Left2Result): fixed bug #879326
2517         (genAnd, genOr, genXor): fixed bug when result was of type AOP_CRY
2518         (genMultOneByte): fixed bug in signed vs unsigned multiplication
2519         * sim/ucsim/hc08.src/inst.cc (inst_clr): added missing effective
2520         address fetch for clr instruction
2521         * device/lib/hc08/_mulint.c: created optimized assembly version
2522         * src/SDCCdflow.c (computeDataFlow): fixed bug #878209
2523
2524 2004-01-19 Bernhard Held <bernhard AT bernhardheld.de>
2525
2526         * src/SDCCicode.c (geniCodeArray): applied patch from Stas Sergeev
2527         proposed in FR #877103
2528
2529 2004-01-18 Bernhard Held <bernhard AT bernhardheld.de>
2530
2531         * src/SDCCval.c (cheapestVal): added missing checks
2532         * src/SDCCicode.c (usualBinaryConversions): fixed condition
2533         * src/SDCCicode.c (geniCodeAdd): fixed part of bug #877103
2534
2535 2004-01-16 Klaus Flittner <klaus_flittner AT gmx.de>
2536
2537         * src/ds390/gen.c (aopOp3): fixed the assignment of different dptrs to
2538         equal operands
2539
2540 2004-01-16 Vangelis Rokas <vrokas AT otenet.gr>
2541
2542         * src/SDCCmain.c (linkEdit): variable $3 of the linker command is
2543         loaded with the linker search paths (-L arguments) and the libraries
2544         to be linked with the current source (-l arguments). Changes
2545         currently will affect only the pic16 port.
2546         * src/pic16/main.c (_pic16_finaliseOptions): add to the linker
2547         include path the port specific paths and port specific libraries,
2548         * gplink command now contains the $3 argument,
2549         * src/pic16/device.h,
2550         * src/pic16/device.c,: structure PIC_device is made public and
2551         renamed to PIC16_device, the same for variable Pics which is renamed
2552         to Pics16. Updated all references to them.
2553         * src/pic16/glue.c (pic16glue): corrected bug with code
2554         initialization which bypassed the variable initializations block.
2555
2556         * device/lib/pic16/Makefile.rules: removed --penable-stack from
2557         COMPILE_FLAGS and added the --nostdinc option
2558
2559 2004-01-15 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
2560
2561         * device/include/mc68hc908jb8.h: Register defs for another member
2562         of the hc08 family. Contributed by Bjorn Bringert - thanks!
2563
2564 2004-01-14 Vangelis Rokas <vrokas AT otenet.gr>
2565
2566         Documenting changes from previous commits.
2567         * configure.in (version 1.56),
2568         * configure: initially I've added AC_CONFIG_SUBDIRS(device/lib/pic16)
2569         when generating output files to configure the pic16 library,
2570         but now I've commented it out, since gputils aren't installed in the
2571         SF compile farm, so library won't compile
2572
2573         * device/lib/Makefile.in (version 1.56): initially I've added in
2574         target 'all' the prerequestive 'model-pic16' so it compiled the
2575         pic16 library, but now I've commented it out for the same reasons
2576         above,
2577         * added targets 'model-pic16' and 'objects-pic16' to compile the
2578         library
2579         * added target 'port-specific-objects-pic16' to handle the
2580         generated libraries and copy them into the build/ directory
2581         * added target 'clean-intermediate-pic16' to clean intermediate
2582         files into pic16 directory
2583         * in target 'installdirs' added line to create directory pic16 in
2584         the installation path
2585
2586         * device/include/Makefile.in (version 1.11): in target 'install'
2587         added lines to copy all header files to installation path,
2588         * in target 'installdirs' added line create directory for pic16
2589         headers in the installation path
2590
2591 2004-01-13 Klaus Flittner <klaus_flittner AT gmx.de>
2592
2593         * src/ds390/gen.c (genCall): fixed a double use of acc and b after
2594          a function call
2595
2596 2004-01-13 Bernhard Held <bernhard AT bernhardheld.de>
2597
2598         * configure,
2599         * device/lib/configure.in,
2600         * device/lib/configure: fixed for autoconf 2.57
2601
2602 2004-01-13 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
2603
2604         * src/z80/main.c (_parseOptions): fixed the portmode= command line
2605         option so that it actually works. Made it specific to the z80, since
2606         the gbz80 doesn't have these kinds of I/O ports.
2607
2608 2004-01-13 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
2609
2610         * device/include/z180.h,
2611         * device/lib/_memcpy.c,
2612         * device/lib/_memmove.c,
2613         * device/lib/_mulint.c,
2614         * device/lib/ser_ir.c,
2615         * device/lib/ser_ir_cts_rts.c,
2616         * device/lib/_strcmp.c,
2617         * device/lib/_strtok.c: fixed pragmas to non-deprecated form
2618         * src/z80/main.c (_process_pragma): add support for pragmas bank and
2619         portmode; added deprecation warning for bank= and protmode= forms.
2620         Also, guard against buffer overflow.
2621         * src/z80/gen.c (aopGet): generate better code for sfr banked read
2622
2623 2004-01-13 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
2624
2625         * src/hc08/main.c (_hc08_genAssemblerPreamble): fixed bug #875487. Also
2626         changed interrupt vector table generation to only emit declared vectors.
2627         * device/include/Makefile.in: added missing backslash
2628         * device/lib/pic16/Makefile.rules: add $(MODELFLAGS) to $(CFLAGS)
2629
2630 2004-01-13 Vangelis Rokas <vrokas AT otenet.gr>
2631
2632         Mainly changes to support compilation of the device libraries
2633         * src/pic16/device.c: stack is allocated via symbol and not
2634         via literal number. The symbol is placed in the corresponding
2635         position of the data ram
2636         * (pic16_dump_section): relocatable and absolute uninitialized
2637         data are now emitted in sorted order to reduce section naming,
2638         * src/pic16/ralloc.c (newReg): fixed bug with SFR's that
2639         weren't marked as being in the access bank,
2640
2641 2004-01-13 Vangelis Rokas <vrokas AT otenet.gr>
2642
2643         Added portion of GNU PIC Library under the directory
2644         device/include/pic16 and device/lib/pic16. These files
2645         contain the declarations of SFRs for the PIC18Fxx2 devices.
2646         The directory is initialized via configure from toplevel.
2647
2648 2004-01-12 Klaus Flittner <klaus_flittner AT gmx.de>
2649
2650         * src/ds390/gen.c (operandsEqu): fixed a little typo, that prevented
2651         the spilllocations to be compared correctly
2652
2653 2004-01-12 Bernhard Held <bernhard AT bernhardheld.de>
2654
2655         * src/SDCCast.c (decorateType): fixed bug introduced today
2656
2657 2004-01-12  Borut Razem <borut.razem AT siol.net>
2658
2659         * src/SDCC.lex, support/Util/SDCCerr.h, support/Util/SDCCerr.c,
2660         doc/sdccman.lyx: upper case pragmas are deprecated
2661
2662 2004-01-12 Bernhard Held <bernhard AT bernhardheld.de>
2663
2664         * src/SDCCast.c (decorateType): replacing 'ul > 0' by  '!ul' results
2665         in simpler and even better code
2666
2667 2004-01-11 Bernhard Held <bernhard AT bernhardheld.de>
2668
2669         * src/SDCCicode.c (operandOperation): fixed bug #874819
2670         * src/SDCCast.c (decorateType): fixed
2671         char foo (unsigned long ul) { return ul > 0; }
2672
2673 2004-01-11 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
2674
2675         * doc/sdccman.lyx: Moved and added some sections, small changes
2676         all over. Telling LaTeX to be less strict with word spacing
2677         to better keep the right margin. Changed some notes about
2678         maintainance of the ports in section 3.2.1 - is it OK like this?
2679
2680 2004-01-11 Vangelis Rokas <vrokas AT otenet.gr>
2681
2682         SDCC source changes:
2683         * src/SDCCopt.c (cntToFcall, cnvToFloatCast, cnvFromFloatCast,
2684         convilong): modified to inform the pic16 port that builtin functions
2685         are external
2686
2687         PIC16 PORT specific changes:
2688         * src/pic16/device.c pic16_dump_equates() added,
2689         processor registers declared internally by the port are emitted in
2690         the translation as equates,
2691         * src/pic16/gen.c: inline code is passed unprocessed to the
2692         translation,
2693         * (pic16_popGetLit2): fnuction modified to take second operand as
2694         pCodeOp pointer and not as literal,
2695         * (popRegFromIdx): prefixed with pic16_,
2696         * (pic16_popCombine2): modified to receive already allocated pCode
2697         operands,
2698         * (pic16_pushpCodeOpReg, pic16_poppCodeOpReg): added
2699         * (genFunction): initializes local stack frame and pushes on stack
2700         all the registers used by this function,
2701         * (genEndFunction): restores all registers from stack and restores
2702         stack frame,
2703         * src/pic16/glue.c (pic16emitRegularMap): various changes and
2704         improvements,
2705         * (pic16glue): changed the program startup sequence,
2706         * added new dbName code 'A' for functions placed in absolute section
2707         * src/pic16/main.c: added function attribute _naked,
2708         * added pragma 'code' to place a fnuction at an absolute address,
2709         * added command line arguments --debug-ralloc and --pcode-verbose,
2710         * (_pic16_finiliseOptions): options.all_callee_saves is set by default
2711         * src/pic16/pcode.c (pic16_pBlockConvert2Absolute) added,
2712         * (pic16_newpCodeOpLit2): modified to take the second operand as
2713         pCodeOp pointer,
2714         * (pic16_printpBlock): modified to emit each function in a separate
2715         section,
2716         * (pic16_get_op): modified to use the gpasm modifiers LOW,HIGH and
2717         UPPER for immediate operands,
2718         * src/pic16/pcodepeeph.c: added peephole support for the LFSR
2719         instruction,
2720         * src/pic16/peeph.def: all peepholes with movff are commented out,
2721         because there is a problem in the pcode peep optimizer,
2722         * src/pic16/ralloc.c: the register allocator can now reuse local
2723         function symbols for another function. This saves register usage.
2724         * src/pic16/ralloc.h: added flag isLocal in structure regs,
2725
2726         Added file src/pic16/NOTES with information about program writing on
2727         the current port version.
2728
2729 2004-01-11 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
2730
2731         * src/mcs51/peephole.def: added peepholes 177.c,d (redundant moves)
2732         and peephole 252 (array access)
2733
2734 2004-01-09  Borut Razem <borut.razem AT siol.net>
2735
2736         * src/SDCCmain.c : fixed #872250: -l command line defined library
2737           files are scanned before standard library files
2738
2739 2004-01-10 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
2740
2741         * src/SDCCast.c (decorateType): fixed bug #874046
2742
2743 2004-01-09  Borut Razem <borut.razem AT siol.net>
2744
2745         * support/scripts/sdcc.nsi: remove previous installation
2746
2747 2004-01-09 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
2748
2749         * src/SDCCglue.c (createInterruptVect): don't append 7(5) padding
2750         bytes for last interrupt vector (mcs51)
2751         * sdcc.spec: fixed typo
2752
2753 2004-01-09 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
2754
2755         * src/mcs51/gen.c (genFunction, genEndFunction, genReceive, getTempRegs,
2756         gen51Code): more efficient parameter receive for --model-large
2757         ("bug" #845294)
2758
2759 2004-01-09 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
2760
2761         * src/ds390/main.c,
2762         * src/z80/main.c: added missed needLinkerScript flags (more than
2763         one port structure defined in these file)
2764         * src/ds390/gen.c (aopForSym, aopOp, operandsEqu, aopOp3): fixed
2765         bug #795325
2766
2767 2004-01-08 Vangelis Rokas <vrokas AT otenet.gr>
2768
2769         * src/SDCCmain.c: removed various references to DEFAULT_PORT
2770         * src/port.h: added flag needLinkerScript in port->linker
2771         structure to inform whether to create a .lnk file or not,
2772         * src/avr/main.c,
2773         * src/ds390/main.c,
2774         * src/hc08/main.c,
2775         * src/mcs51/main.c,
2776         * src/pic/main.c,
2777         * src/pic16/main.c,
2778         * src/xa51/main.c,
2779         * src/z80/main.c: changed appropriately to configure
2780         needLinkerScript flag
2781         * src/pic/gen.c,
2782         * src/pic16/gen.c (genAddrOf): fixed bug #863624
2783         * src/pic/glue.c: added variable udata_section_name to
2784         override default uninitialized data segment definition for
2785         devices only with SHAREBANK memory (reported from Erik Epetrich)
2786         * (pic14emitOverlay): modified to emit a commented overlay segment
2787         directive when no overlay data exist
2788         * (picglue): modified to emit uninitialized data segment
2789         according to udata_section_name
2790         * src/pic/main.c (_pic14_parseOptions): added command line
2791         options --udata-section-name=[name] to override default
2792         udata definition name
2793         * modified _linkCmd and _asmCmd to include compiler passed
2794         arguments via -W option
2795         * src/pic16/main.c: added $l in _asmCmd, changed extension for
2796         object file from '.rel' to '.o' in port->linker structure,
2797         changed size of fptr from 2 to 3 in port structure
2798
2799 2004-01-07  Borut Razem <borut.razem AT siol.net>
2800
2801         * support/scripts/sdcc.nsi: update PATH
2802         * support/scripts/sdcc.ico: craeted
2803
2804 2004-01-07 Bernhard Held <bernhard AT bernhardheld.de>
2805
2806         * device/include/Makefile.in: fix install
2807         * doc/Makefile: fix install
2808
2809 2004-01-07 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
2810
2811         * src/SDCCsymt.c (processFuncArgs): fixed superflous allocation noted
2812         in bug #860505
2813         * src/SDCCmem.c (printAllocInfoSeg, printAllocInfo): minor changes to
2814         how the function variable allocation summary is displayed; also
2815         include information about variables allocated to the overlay
2816         segment
2817
2818 2004-01-06  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
2819
2820         * as/mcs51/lkmain.c: Help about -Y option
2821         * as/mcs51/lkarea.c: Fixed gcc warnings
2822
2823 2004-01-06 Bernhard Held <bernhard AT bernhardheld.de>
2824
2825         * src/SDCCval.c (valShift): changed from 16 to 32 bit shift count,
2826         fixed warning
2827         * support/valdiag/tests/overflow.c: added
2828         * src/SDCCast.c (decorateType),
2829         * src/SDCCicode.c (geniCodeLeftShift): added promotion to int for
2830         LEFT_OP (left shift)
2831
2832 2004-01-06  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
2833
2834         * as/mcs51/lkmain.c: stack must be after data when option -Y is not used
2835         (default behaviour).
2836
2837 2004-01-06 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
2838
2839         A python script to validate compiler diagnostic messages. It can be
2840         used to verify that sdcc complains about bad c source code and
2841         gives a good location of the error.
2842         * support/valdiag/Makefile,
2843         * support/valdiag/valdiag.py,
2844         * support/valdiag/tests/*
2845
2846 2004-01-06 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
2847
2848         * src/SDCC.y (enum_specifier, enumerator_list, opt_assign_expr),
2849         * src/SDCCsymt.c (newEnumType),
2850         * src/SDCCsymt.h
2851         * support/Util/SDCCerr.c,
2852         * support/Util/SDCCerr.h: fixed bug #871258 and some other unreported
2853         enum related bugs.
2854         * support/regression/tests/enum.c: added test for enum values that
2855         require at least 2 bytes of storage.
2856
2857 2004-01-06 Vangelis Rokas <vrokas AT otenet.gr>
2858
2859         * src/common.h: added ifndef/define/endif macros
2860         around the header file.
2861         Bug reported from Jesus Calvino-Fraga
2862
2863 2004-01-06 Bernhard Held <bernhard AT bernhardheld.de>
2864
2865         * sdcc.spec: updated
2866         * device/include/Makefile.in: don't install CVS directories
2867         * device/lib/Makefile.in: added removal of CVS directories after install
2868         * doc/Makefile: fixed install, added local_icons
2869         * sim/ucsim/gui.src/Makefile.in: fixed an old typo
2870         * src/mcs51/gen.c (genRightShift): fixed bug #870788
2871         * src/ds390/gen.c (genRightShift): fixed bug #870788
2872         * src/SDCCast.c (decorateType): fixed bug #870781
2873
2874 2004-01-06 Vangelis Rokas <vrokas AT otenet.gr>
2875
2876         PIC16 port related changes:
2877         * device.c: removed pic16_finalMapping and pic16_finalMappingSize,
2878         added variable stackPos,
2879
2880         * gen.c: genCall, assignResultValue: added support for
2881         pushing/retrieving function parameters to/from stack,
2882         genFunction,genEndFunction: setup stack frame for the
2883         generated function,
2884         genAddrOf: will be changed according to bug 863624
2885
2886         * added files genutils.c and genutils.h which contain gen*
2887         debugged and optimised functions extracted from gen.c
2888
2889         * glue.c: added variable 'externs' which holds extern symbols,
2890         pic16emitRegularMap: is modified to properly handle relocatable
2891          symbols under the new scheme,
2892         pic16createInterruptVect: is modified
2893         pic16printPublics: is modified to emit 'global' assembler directives,
2894         added pic16_printExterns to print extern symbols,
2895         pic16glue: initializes stack/frame pointer in the beginning of
2896         the assembly output. Temporary hack, will be corrected later,
2897         because gplink yet does not support stack and SDCC does not
2898         yet support a type of crt0.o object to create the final binary.
2899
2900         * Removed many lines that contain 8051 legacy code.
2901         * The code is finally placed under a 'code' directive.
2902         * Added port specific options.
2903
2904         * _process_pragma: simplified since now we do not need *special*
2905         include file to define SFR registers. But a separate header
2906         will be needed. This will be developed later.
2907         * _pic16_parseOptions: added, parses port specific options:
2908         --pgen-banksel, --obanksel=, --pomit-config-words, --pomit-ivt,
2909         --pleave-reset-vector, --penable-stack, --pstack-model, --debug-xtra
2910         --preplace-udata-with=
2911
2912         * _pic16_setDefaultOptions: modified to initialize section names,
2913         but hack is temporarly out of order since it needs improvement.
2914         * _pic16_genAssemblerPreamble: configuration words are emitted by
2915         their address instead of their name. This part is incomplete and
2916         supports only the 18Fxx2 devices. Other devices will emit an error
2917         during assembly since they do not contain the same set of config
2918         registers
2919         * _pic16_genIVT: is modified,
2920
2921         * pcode.c: added definitions for some hardware registers that are needed
2922         for stack support
2923         * added flag is2LitOp and variable pci_magic in pCodeInstruction.
2924         All PCI entries are updated. Now LFSR is supported.
2925         * Removed pic16_pciTRIS is mentioned by mdubuc in source
2926         * added pic16_newpCodeOpLit2 to support instructions with
2927         two literal arguments
2928         * pic16_pCode2str: corrected code that emits assembler instructions
2929         with two literal operands and those that have an access bit modifier
2930         * genericPrint: now PC_ASMDIR pCodes, can emit a label if it exists,
2931         this fixes a bug which caused some labels to be lost, when an
2932         assembler directive was added, i.e. banksel,
2933         * pic16_FixRegisterBanking: improved logic that causes the insertion
2934         of bank switching,
2935         * InlineFunction: functions that are called once, are not any more
2936         inlined. This can be a port option in the future,
2937
2938         * pcode.h: added pCodeOpLit2 and added variable label in pCodeAsmDir
2939
2940         * ralloc.c: added pic16_rel_udata and pic16_fix_udata variables which
2941         hold the corresponding uninitialized symbols,
2942         * pic16_allocProcessorRegister: registers have explicit marked the
2943         accessBank field,
2944         * pic16_allocInternalRegister: registers are explicit marked as
2945         not used,
2946         * pic16_writeUsedRegs: pic16_dynDirectBitRegs was missing from the
2947         processing list, so bit registers were lost,
2948         *
2949
2950         * ralloc.h: added field 'accessBank' and original symbol operand
2951         in register definition,
2952         * removed the field isMapped from register definition,
2953
2954         ** Several functions have been removed from various sources:
2955         BanksUsedFlow2,BanksUsedFlow,FixBankFlow,InstructionRegBank,
2956         pic16_addMemRange,pic16_isREGinBank,pic16_dump_map,pic16_dump_cblock
2957         isSFR,validAddress,mapRegister,assignRegister,pic16_assignFixedRegisters
2958         pic16_assignRelocatableRegisters
2959
2960         ** others have been introduced:
2961         pic16_areRegsSame,pic16_dump_section,checkAddReg,pic16_groupRegistersInSection
2962         pic16_popGetLit2,pic16_popCombine2,pushw,pushaop
2963
2964 2004-01-05 Vangelis Rokas <vrokas AT otenet.gr>
2965
2966         * support/scripts/inc2h.pl: changed definition of BIT_AT
2967         to emit 'sbit at' instead of 'bit at'. This was a request.
2968
2969         PIC16 port related preliminary changes:
2970         * gen.c: prefixed function popRegFromString with
2971         pic16_ and all references to it corrected
2972         * pcode.c: all pic16_pc_* hardware registers prefixed
2973         with underscore (_),
2974         pic16_popCopyGPR2Bit(): function sets register wasUsed=1
2975         * ralloc.c: newReg(): when register is REG_SFR then
2976         set address to rIdx,
2977         pic16_allocProcessorRegister(): marks register wasUsed=0
2978         pic16_writeUsedRegs(): added a call to assign processor
2979         registers via pic16_assignFixedRegisters
2980
2981 2004-01-04  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
2982
2983         * as/mcs51/aslink.h, as/mcs51/lkarea.c, as/mcs51/lkdata.c,
2984         as/mcs51/lkmain.c, as/mcs51/lkmem.c: 8051 linker can now pack
2985         variables in unused register banks.  Also the SSEG is placed
2986         wherever there is enough space for it, and IDATA can be anywhere
2987         in internal RAM.  For now compile using -Wl-Y[stack_size].
2988         The mem file is different for this option as well, since it
2989         makes no sense of talking about DSEG lenght.
2990
2991 2004-01-02 Vangelis Rokas <vrokas AT otenet.gr>
2992
2993         * src/SDCClrange.c: fixed bug 869095 that caused segfault
2994         in certain cases, e.g. when ROM assignment, patch provided
2995         from Albert den Haan.
2996
2997 2004-01-01 Bernhard Held <bernhard AT bernhardheld.de>
2998
2999         Many signedness and type propagation fixes:
3000         * src/SDCCicode.c: made geniCodeCast() static
3001         replaced SPEC_ by IS_ (cosmetic)
3002         (operandOperation): fixed div and mod operation
3003         (usualBinaryConversions): added support for promotion of char
3004         (geniCodeMultiply): replaced (unsigned long) by (TYPE_UDWORD)
3005         (geniCodeDivision): replaced (unsigned long) by (TYPE_UDWORD)
3006         (geniCodeAdd): an array index will stay unsigned, even if promoted
3007         from char to int
3008         (geniCodeArray): ditto
3009         * src/SDCCicode.h: made geniCodeCast() static: removed prototype
3010         * src/SDCCsymt.c (computeType): added more support for char;
3011         promotion of char is selectable by promoteCharToInt, fixed signedness
3012         for all cases
3013         (powof2): replaced (unsigned long) by (TYPE_UDWORD)
3014         * src/SDCCsymt.h (powof2): replaced (unsigned long) by (TYPE_UDWORD)
3015         * src/SDCCval (val*): replaced signedness calculation by
3016         computeType()
3017         rearranged if-branches (cosmetic)
3018         (valShift): added warning W_SHIFT_CHANGED
3019         (valCompare): fixed problem with different types
3020         * src/hc08/rallo.c (leastUsedLR): fixed gcc 3.3 warning
3021         * support/regression/tests/literalop.c: added many cases
3022         * support/regression/tests/ast_constant_folding.c: changed finally to
3023         'unsigned int'
3024         * .version: new year, new version: 2.3.7
3025         * src/SDCCmain.c (main): applied patch #866468
3026         * debugger/mcs51/sdcdb.c (parseCmdLine): added -k for ucsim, patch
3027         provided by Scott Bronson
3028         * doc/sdccman.lyx: updated documentation for sdcdb
3029         updated and added chapter tips
3030
3031 2004-01-01 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
3032
3033         * src/SDCCsymt.h: missing from yesterday's commits
3034
3035 2003-12-31 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
3036
3037         * src/SDCC.y (struct_or_union_specifier),
3038         * support/Util/SDCCerr.c,
3039         * support/Util/SDCCerr.h: verify that struct & union tags are used
3040         as declared.
3041
3042 2003-12-29 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
3043
3044         * src/SDCCglobl.h: missing from yesterday's commits
3045
3046 2003-12-28 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
3047
3048         * src/SDCC.y (external_definition, type_specifier2, sfr_reg_bit,
3049         sft_attributes, struct_declaration, parameter_declaration,
3050         type_name, start_block, declaration_list),
3051         * src/SDCC.lex (check_type): support redefinition of typedef names
3052
3053 2003-12-22 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
3054
3055         * src/mcs51/gen.c (genPlus): added special handling for 256 byte
3056         aligned xdata arrays. Erik helped me with the if clause.
3057
3058 2003-12-20 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
3059
3060         * device/lib/ds390/tinibios.c (CpuSpeed): suppress unreachable code
3061         warning
3062
3063 2003-12-20 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
3064
3065         * src/SDCCast.h,
3066         * src/SDCCast.c (newAst_),
3067         * src/SDCCicode.h,
3068         * src/SDCCicode.c (ast2iCode, newiCode),
3069         * src/SDCCglobl.h,
3070         * src/SDCC.y (logical_and_expr, logical_or_expr, conditional_expr,
3071         expr, statement, expression_statement, selection_statement,
3072         iteration_statement, expr_opt, jump_statement): foundation for tracking
3073         sequence points
3074         * src/SDCCopt.c (killDeadCode): fixed bug #861580 (needs the sequence
3075         point code too)
3076
3077 2003-12-19 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
3078
3079         * support/Util/SDCCerr.c,
3080         * src/SDCCast.h,
3081         * src/SDCCast.c (createCase, createDefault, decorateType),
3082         * src/SDCClabel.c (labelUnreach),
3083         * src/SDCC.y (labeled_statement, jump_statement): More improvements
3084         to error messages.
3085         * support/Util/SDCCerr.c (werrorfl): fixed a non-standard declaration
3086         (with thanks to Stas Sergeev)
3087         * device/include/time.h,
3088         * device/lib/time.c (CheckTime): suppress unreachable code warning
3089
3090 2003-12-18 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
3091
3092         * src/SDCCast.c (createIvalCharPtr),
3093         * src/SDCCglue.c (printChar): fixed bug #862241 (an error in my fix for
3094         bug #753752)
3095         * support/regression/tests/nullstring.c: tests for these two bugs
3096
3097 2003-12-18 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
3098
3099         * support/Util/SDCCerr.h,
3100         * support/Util/SDCCerr.c (E_NOT_ALLOWED),
3101         * src/SDCC.y (struct_declaration, struct_or_union_specifier): complain
3102         about storage class and 'at' used inside struct or union
3103         * src/SDCCBBlock.c (iCodeFromeBBlock),
3104         * src/SDCCcse.c (ifxOptimize),
3105         * src/SDCCglue.c (emitRegularMap, initPointer, printIvalStruct,
3106         printIvalArray, printiValFuncPtr, printIvalCharPtr, printIvalPtr,
3107         printIval, emitStaticSeg, emitOverlay),
3108         * src/SDCClabel.c (deleteIfx),
3109         * src/SDCCopt.c (replaceRegEqv, eBBlockFromiCode),
3110         * src/SDCCast.c (resolveSymbols, createIvalStruct, createIvalArray,
3111         gatherAutoInit, processParms),
3112         * support/Util/SDCCerr.h,
3113         * support/Util/SDCCerr.c (werrorfl): Support for better error location
3114         reporting for post-parse errors.
3115
3116 2003-12-16 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
3117
3118         * src/SDCCval.c (valPlus, valMinus, valShift): fixed some problems with
3119         implicit casts via union; they don't work on big endian systems
3120         (possible fix for bug #861138)
3121
3122 2003-12-16 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
3123
3124         (committed by Erik Petrich <epetrich AT ivorytower.norman.ok.us> on Frieder's behalf)
3125         * src/mcs51/main.c: fixed the fix for bug #737001
3126
3127 2003-12-15  Borut Razem <borut.razem AT siol.net>
3128
3129         * support/scripts/sdcc.nsi: updated for NSIS 2.0 beta 4
3130
3131 2003-12-14 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
3132
3133         * support/makebin/makebin.c: put output in binary mode
3134
3135 2003-12-13 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
3136
3137         * src/mcs51/main.c: fixed bug #737001 for the mcs51. SDCC clears
3138         xdata and data memory on startup. Set the environment variable
3139         SDCC_NOGENRAMCLEAR to disable this.
3140         * src/mcs51/peephole.def,
3141         * src/ds390/peephole.def: using the atomic test and clear instruction jbc
3142         (allows non-interrupt and interrupt code to safely compete for a resource
3143         without the non-interrupt code having to disable interrupts)
3144
3145 2003-12-13 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
3146
3147         * src/SDCCicode.c (geniCodeAdd),
3148         * src/SDCCast.c (decorateType): fixed bug #857753 (need to be careful
3149         with valFromType if type might be a pointer and host is big endian).
3150         * src/SDCCast.c (decorateType): unary plus compatible with all arithmetic
3151         types, not just integer types.
3152         * src/SDCCsymt.c (addSymChain): clarified error message when symbol is
3153         multiply defined with mismatching "at" address.
3154
3155 2003-12-12 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
3156
3157         * src/ds390/main.c (PORT tininative_port): fixed bug #858416
3158         * src/SDCCglue.c (printChar, printIvalChar, emitStaticSeg),
3159         * src/SDCCast.c (createIvalCharPtr, stringToSymbol): handle strings
3160         with embedded nulls (fixed bug #753752)
3161
3162 2003-12-12 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
3163
3164         * src/mcs51/main.c(_mcs51_genRAMCLEAR): using r0 instead of r1/r2.
3165         Apparently this did not see much testing (endless loop)
3166
3167 2003-12-11 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
3168
3169         * src/z80/ralloc.c: set DISABLE_PACK_HL = 1 as a temporary fix to bug #855165
3170
3171 2003-12-10 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
3172
3173         * src/SDCCdebug.c (outputDebugSymbols, outputDebugStackSymbols, dumpSymInfo):
3174         gracefully handle NULL memmap pointers
3175
3176 2003-12-08 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
3177
3178         * src/SDCCopt.c (killDeadCode): change iCode type to DUMMY_READ_VOLATILE
3179         instead of deleting the iCode when an operand is volatile
3180         * src/z80/gen.c (genDummyRead),
3181         * src/mcs51/gen.c (genDummyRead),
3182         * src/ds390/gen.c (genDummyRead),
3183         * src/hc08/gen.c (genDummyRead): handle operands in IC_LEFT and/or IC_RIGHT,
3184         not just IC_RIGHT
3185         * src/SDCCicode.c (geniCodeCall): fixed bug #851607
3186         * src/SDCC.y: fixed bug #850420
3187
3188 2003-12-05 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
3189
3190         Applied z80 i/o port patch from Peter Townson and fixed some operators
3191         to better handle operands in A register.
3192         * device/include/z180.h
3193         * src/SDCC.y
3194         * src/SDCCglue.c
3195         * src/z80/gen.c
3196         * src/z80/gen.h
3197         * src/z80/main.c
3198         * src/z80/peeph-z80.def
3199         * src/z80/peeph.def
3200         * src/z80/z80.h
3201
3202 2003-12-03 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
3203
3204         * src/SDCCsymt.c (addSymChain, compareTypeExact): fixed bug #838241 again
3205
3206 2003-12-01 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
3207
3208         * device/lib/hc08/_mullong.c: Removed extra #endif
3209
3210 2003-12-01 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
3211
3212         * sim/ucsim/hc08.src/inst.cc,
3213         * sim/ucsim/hc08.src/hc08mac.h: fixed some problems with CC flag bits and
3214         carries from x to h
3215         * src/hc08/gen.c (aopAdrStr): fixed problem with 16 bit immediate
3216         * src/hc08/gen.c (XAccRsh): fixed problem with right shift
3217         * device/include/stdarg.h: fixed varargs for hc08
3218         * device/lib/Makefile.in,
3219         * device/lib/hc08/Makefile,
3220         * device/lib/hc08/_mulint.c,
3221         * device/lib/hc08/_mullong.c: fixed some endian problems
3222
3223 2003-11-28 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
3224
3225         * sdcc/src/mcs51/gen.c (genMultOneByte): help peephole 105
3226         * sdcc/src/mcs51/peeph.def: added peephole 186.e array access in code space
3227         * device/lib/_gptrget.c,
3228         * device/lib/_gptrput.c: P2 not used any more (related to #850747, #785979)
3229
3230 2003-11-27 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
3231
3232         * src/SDCClrange.c (findNextUseSym, rlivePoint): fixed bug #849795
3233         * src/SDCCast.c (astErrors): fixed bug #846007
3234         * src/SDCCsymt.c (checkFunction): fixed follow-up bug on bug #846007
3235
3236 2003-11-26 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
3237
3238         * src/SDCCast.c (decorateType): disabled a transformation I added in
3239         revision 1.188 (access to fields of a structure at an absolute address);
3240         it breaks with bitfields, extern declarations, and gcse analysis.
3241         * src/SDCCopt.c (isLocalWithoutDef): if ADDRESS_OF applied to a symbol, it
3242         could be assigned through a pointer, so don't complain.
3243         * src/SDCCast.c (astErrors),
3244         * src/SDCCast.h,
3245         * src/SDCCglue.c (emitRegularMap): fixed bug #847813
3246
3247 2003-11-26 Vangelis Rokas <vrokas AT otenet.gr>
3248
3249         * src/pic16/main.c (_pic16_genIVT): fixed interrupt vector table
3250         * src/pic16/main.c (_pic16_genAssemblerPreamble): re-enabled the
3251         output of __config directives, since gpasm now supports them
3252         * src/pic16/main.c (_pic16_finaliseOptions): define MCU
3253         pre-processor macro, i.e. -DMCU=p18f452
3254         * src/pic16/ralloc.c: renamed packRegisters to pic16_packRegisters,
3255         and modified to handle 'cast' icode similarly to '=' icode
3256         * src/pic16/device.h (typedef struct PIC_device): added field
3257         'extMIface' to indicate that chip has external memory interface
3258         * src/pic16/device.c: added chips 18F248, 18F258, 18F448, 18F458,
3259         18F6520, 18F6620, 18F6680, 18F6720, 18F8520, 18F8620, 18F8680,
3260         18F8720
3261
3262 2003-11-26 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
3263
3264         * src/SDCC.y (pointer): fixed bug #846006
3265         * support/Util/SDCCerr.c: made W_PTR_TYPE_INVALID message clearer
3266         * src/SDCCast.c (decorateType): fixed bug #846009
3267         * src/ds390/peeph.def,
3268         * src/ds390/gen.c (genAnd, genOr),
3269         * src/mcs51/peeph.def,
3270         * src/mcs51/gen.c (genAnd, genOr): fixed bug #846777
3271
3272 2003-11-25 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
3273
3274         Fixed several common-sub-expression bugs (#772861, #768380, & #755323)
3275         * src/SDCCdflow.c
3276         * src/SDCCcse.c
3277         * src/SDCCcse.h
3278         * src/SDCCBBlock.h
3279         * src/SDCCBBlock.c
3280
3281 2003-11-23 Klaus Flittner <klaus_flittner AT gmx.de>
3282
3283         fixed bug #845089
3284         * src/SDCCbitv.h,
3285         * src/SDCCbitv.c: added function to free a bitvector
3286         * src/SDCClrange.h,
3287         * src/SDCClrange.c: added function to recompute the liveranges
3288         * src/avr/ralloc.c,
3289         * src/ds390/ralloc.c,
3290         * src/hc08/ralloc.c,
3291         * src/mcs51/ralloc.c,
3292         * src/pic/ralloc.c,
3293         * src/pic16/ralloc.c,
3294         * src/xa51/ralloc.c,
3295         * src/z80/ralloc.c: recompute the liveranges after register packing
3296
3297 2003-11-21 Klaus Flittner <klaus_flittner AT gmx.de>
3298
3299         * src/SDCCloop.c (newInduction): fixed bug #845630
3300
3301 2003-11-21 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
3302
3303         * src/SDCCsymt.c (compareTypesExact): disabled debugging output
3304         inadvertantly left behind from my 2003-11-12 change
3305
3306 2003-11-20 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
3307
3308         Updated headers I neglected to commit yesterday.
3309         * src/SDCClrange.h,
3310         * src/SDCCicode.h
3311
3312 2003-11-19 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
3313
3314         * src/SDCCcse.c (algebraicOpts): fixed bug #773153
3315         * src/SDCClrange.c (rlivePoint): need to mark IC_RESULT used if POINTER_SET op
3316         * src/SDCCopt.c (eBBlockFromiCode),
3317         * src/SDCClrange.c (hashiCodeKeys, sequenceiCode, computeLiveRanges): seperated
3318         the creation of the key hash table from the sequencing so it can be used
3319         earlier (for some GCSE bug fixes still pending)
3320
3321 2003-11-15 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
3322
3323         * src/mcs51/gen.c (genPlus): generate shortcut for adding 0xab00
3324         * support/regression/tests/addsub.c: testing genPlus shortcut
3325
3326 2003-11-15  Borut Razem <borut.razem AT siol.net>
3327
3328         * src/SDCCmain.c: fixed bug #841645: -MM command line option passed to sdcpp
3329
3330 2003-11-15 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
3331
3332         * src/SDCCcse.c (cseBBlock): fixed bug #527779
3333         * src/SDCCcse.c (deleteGetPointers): rewrote so that the set
3334         ordering is immaterial.
3335         * src/SDCCdflow.c (mergeInExprs): fixed bug #587536
3336
3337 2003-11-14 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
3338
3339         * src/SDCCicode.c (geniCodeAddressOf): fixed part of bug #840381
3340         * src/SDCCopt.c (replaceRegEqv, isLocalWithoutDef): fixed other part
3341         (SIGSEV) of bug #840381
3342         * src/SDCCmain.c (linkEdit, assemble): fixed bug #841606 (don't
3343         unlink new file before rename if new and old filenames are the same)
3344
3345 2003-11-13 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
3346
3347         * src/mcs51/main.c: started fixing bug #737001 (SDCC not clearing
3348         uninitialized variables) for the mcs51. Set environment variable
3349         SDCC_GENRAMCLEAR to test.
3350         xdata initialization slightly shorter
3351
3352 2003-11-12 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
3353
3354         * src/SDCCsymt.h,
3355         * src/SDCCsymt.c (addSymTypeChain, compareTypesExact): fixed bugs
3356         #838241 & 780691 (basicly the same bug)
3357         * src/SDCCBBlock.c (iCode2eBBlock): fixed bug #840148
3358         * src/SDCCBBlock.c (iCodeFromeBBlock): fixed bug #840162
3359
3360 2003-11-11 Bernhard Held <bernhard AT bernhardheld.de>
3361
3362         * src/SDCCmain.c (linkEdit): "fix" #834252
3363
3364 2003-11-11 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
3365
3366         * src/SDCCast.c (removePostIncDecOps, removePreIncDecOps),
3367         * src/SDCCast.h,
3368         * src/SDCC.y: fixed bug #819403
3369
3370 2003-11-08 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
3371
3372         * support/regression/fwk/lib/testfwk.c: printn is recursive and thus needs
3373         the reentrant attribute.
3374         * src/hc08/gen.c (genPackBits): added missing stack readjustment
3375         * sim/ucsim/hc08.src/inst.cc (inst_mov): fixed bugs with mov instruction
3376         simulation
3377         * src/SDCCast.c (decorateType): fixed bug with storage class not being
3378         updated during pointer dereference; f.e. ~(((char *)1)*) was being
3379         erroneously reduced to a literal.
3380         * src/hc08/ralloc.c (packRegisters, rematStr),
3381         * src/hc08/gen.c (aopForRemat): allow literals to be rematerialized in
3382         some cases
3383
3384 2003-11-08 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
3385
3386         * src/mcs51/main.c: fixed bug #838385. Thanks to Josef Pavlik for finding and fixing
3387         * doc/sdccman.lyx: changed from 'article' to 'book'
3388         * doc/Makefile: readded test_suite_spec and cdbfileformat
3389
3390 2003-11-08 Bernhard Held <bernhard AT bernhardheld.de>
3391
3392         * device/include/stdlib.h: include malloc.h to comply with ANSI
3393         * support/regression/tests/malloc.c: include stdlib.h instead of malloc.h
3394
3395 2003-11-07 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
3396
3397         * doc/Makefile: sdccman.pdf should build with correct references (more info in commit msg)
3398         * doc/clean.mk: also remove *.out files
3399         * doc/sdccman.lyx: some additions, larger top/bottom margins
3400
3401 2003-11-07 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
3402
3403         * src/SDCC.y: fixed bug #837365
3404         * support/regression/tests/bitopcse.c
3405         * src/hc08/gen.c (genPointerGet): Don't assume pointer operand is
3406         a symbol (might be valop instead)
3407         * device/lib/Makefile.in: added errno.c to HC08SOURCES
3408         * device/lib/clean.mk: added hc08 to the cleaning list
3409
3410 2003-11-04  Borut Razem <borut.razem AT siol.net>
3411
3412         * configure, configure.in, sdcc_vc_in.h, sdcconf_in.h: reverted changes,
3413           made 2003-11-04
3414         * support/Util/NewAlloc.c, as/hc08/lklibr.c, as/mcs51/lklibr.c,
3415           as/z80/aslist.c, as/z80/assym.c: removed inclusion of nonstandard malloc.h;
3416           malloc is declared in standard stdlib.h
3417
3418 2003-11-06 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
3419
3420         * device/lib/hc08/Makefile: need to clean .rel not .o files
3421         * src/hc08/gen.c (genDjnz): can't use djnz with extended addressing mode
3422
3423 2003-11-06 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
3424
3425         * src/port.h,
3426         * src/hc08/main.c,
3427         * src/mcs51/main.c,
3428         * src/ds390/main.c,
3429         * src/z80/main.c,
3430         * src/avr/main.c,
3431         * src/pic/main.c,
3432         * src/pic16/main.c,
3433         * src/xa51/main.c: added hasExtBitOp & oclsExpense functions to ports
3434         * src/SDCCicode.c: changed several IS_FARSPACE tests to isOclsExpensive
3435         tests (which uses the port's oclsExpense function)
3436         * src/SDCC.y,
3437         * src/SDCCast.c,
3438         * src/SDCCicode.c,
3439         * src/hc08/gen.c,
3440         * src/ds390/gen.c,
3441         * src/mcs51/gen.c: added support for the SWAP iCode (RFE #834167)
3442
3443 2003-11-04 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
3444
3445         * src/SDCCcse.c (ifxOptimize),
3446         * src/SDCClabel.c (labelIfx, deleteIfx): When the condition to
3447         an IFX iCode is volatile, convert to DUMMY_READ_VOLATILE instead
3448         deleting the IFX iCode.
3449         * src/hc08/ralloc.c: reduced unneeded slocs
3450         * src/hc08/gen.c: fixed bug in asmopToBoolean
3451
3452 2003-11-04  Borut Razem <borut.razem AT siol.net>
3453
3454         * configure, configure.in, sdcc_vc_in.h, sdcconf_in.h,
3455           support/Util/NewAlloc.c, as/hc08/lklibr.c, as/mcs51/lklibr.c,
3456           as/z80/aslist.c, as/z80/assym.c: decision to include malloc.h
3457           transferred to configure
3458
3459 2003-11-03 Bernhard Held <bernhard AT bernhardheld.de>
3460
3461         Use headers defined in the C[++] standards:
3462         * sim/ucsim/gui.src/serio.src/fileio.cc
3463         * sim/ucsim/gui.src/serio.src/frontend.cc
3464         * sim/ucsim/gui.src/serio.src/main.cc
3465         * sim/ucsim/gui.src/serio.src/posix_signal.cc
3466         * support/Util/NewAlloc.c
3467         * as/hc08/lklibr.c
3468         * as/mcs51/lklibr.c
3469         * as/z80/aslist.c
3470         * as/z80/assym.c
3471
3472 2003-11-03  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
3473
3474         * Added MSVC projects for hc08 assembler and linker:
3475         all.dsp, config.dsp, sdcc.dsw, /as/hc08/as_hc08.dsp,
3476         /as/hc08/link_hc08.dsp
3477
3478 2003-11-03 Martin Helmling <Martin.Helmling AT octo-soft.de>
3479
3480         * debugger/mcs51/cmd.c: allows filename starting with digit(+ some debug)
3481
3482 2003-11-02 Bernhard Held <bernhard AT bernhardheld.de>
3483
3484         * src/SDCCmain.c (linkEdit): "fixed" again bug #833605
3485
3486 2003-11-01 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
3487
3488         * src/mcs51/main.c: xdata initialization is 13 bytes shorter now
3489
3490 2003-10-31  Borut Razem <borut.razem AT siol.net>
3491
3492         * support/cpp2/cpplib.h,
3493           support/cpp2/cpplib.c,
3494           support/cpp2/cpplex.c,
3495           support/cpp2/cppinit.c: introduced #pragma preproc_asm [ + | - ]
3496           to switch _asm block preprocessing on / off. Default is
3497           #pragma preproc_asm +
3498
3499 2003-10-31  Borut Razem <borut.razem AT siol.net>
3500
3501         * support/cpp2/cpplex.c: Fixed _WIN32 problem with CR-CR-LF sequences
3502           when outputting comment blocks (when executed with -C option) and
3503           _asm (SDCPP specific) blocks
3504
3505 2003-10-31 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
3506
3507         * as/hc08/lkrloc.c (relr): Fixed ihx output, fixed lastAreaIndex warning
3508
3509 2003-10-31 Klaus Flittner <klaus_flittner AT gmx.de>
3510
3511         * src/SDCCcse.c (updateSpillLocation): fixed bug #808027
3512
3513 2003-10-31 Bernhard Held <bernhard AT bernhardheld.de>
3514
3515         * src/SDCCmain.c (linkEdit): "fixed" bug #833605
3516         * src/SDCCast.c (decorateType): fixed bug #832664
3517
3518 2003-10-31  Borut Razem <borut.razem AT siol.net>
3519
3520         * support\cpp2\cpplex.c: fixed for SDCPP:
3521           comments(when executed with -C option) and _asm blocks
3522           were included even if they where in skipped #if block.
3523           Applied solution from GCC cpp 3.3.2
3524
3525 2003-10-31  Borut Razem <borut.razem AT siol.net>
3526
3527         * src/SDCC.lex: sdcc now understands both formats:
3528           '# <line_number> <file_name>' and
3529           '#line <line_number> <file_name>'
3530         * support/cpp2/cppmain.c: sdcpp now generates the standard
3531           '# <line_number> <file_name>' instead of former
3532           '#line <line_number> <file_name>'
3533
3534 2003-10-30  Borut Razem <borut.razem AT siol.net>
3535
3536         * support/cpp2/cpphash.h,
3537         * support/cpp2/cpplib.h
3538         * support/cpp2/cpplex.c,
3539         * support/cpp2/cppmain.c,
3540         * support/cpp2/cppinit.c: fixed bug #828015 - Syntax variation for _asm character constants
3541
3542 2003-10-30 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
3543
3544         Fixed a number of problems revealed by bug #827883.
3545         * src/SDCCloop.c (loopInvariants): Spill location of the
3546         result operand should be recomputed if extracted from
3547         a loop. Also, don't extract assignments of an iTemp
3548         from a literal.
3549         * src/SDCCast.c (isConformingBody): loop reversal should
3550         not occur if the control variable is involved with a
3551         relational operator.
3552
3553 2003-10-28 Bernhard Held <bernhard AT bernhardheld.de>
3554
3555         * .version: bumped to 2.3.6 to reflect the big improvements
3556         made by Erik and Klaus. Thanks!
3557
3558 2003-10-28 Klaus Flittner <klaus_flittner AT gmx.de>
3559
3560         Replaced the livrange code.
3561         * src/SDCClrange.c: added new LR code
3562         * src/SDCCloop.c,
3563         * src/SDCCBBlock.h: removed remainig parts from old LR code
3564         * src/ds390/ralloc.c,
3565         * src/ds390/gen.c: minor fixes to make it work with new code
3566
3567 2003-10-28 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
3568
3569         * as/hc08/asm.h,
3570         * as/hc08/lkrloc.c,
3571         * src/hc08/gen.c,
3572         * src/hc08/ralloc.c: Fix various warnings related to the hc08
3573         * src/SDCCicode.c (geniCodePreInc, geniCodePreDec): Fixed bug #829717
3574         (tweaked fix for bug #818696)
3575
3576 2003-10-23 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
3577
3578         * src/z80/ralloc.c (joinPushes): Fixed bug #828742
3579
3580 2003-10-23 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
3581
3582         * src/SDCCmain.c,
3583         * sdccconf_in.h: Fixed bug #828387 (--disable-hc08-port didn't work)
3584         * src/mcs51/gen.c (gencjneshort),
3585         * src/ds390/gen.c (gencjneshort): Made comparison with AOP_IMMD operand
3586         more efficient (per Scott Bronson's suggestion)
3587
3588 2003-10-22 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
3589
3590         Extended the semantics of the critical keyword to include
3591         individual statements. See RFE #827755 and #799831
3592         * src/SDCC.y
3593         * src/SDCCicode.c
3594         * src/SDCCopt.c
3595         * src/SDCCast.c
3596         * support/Util/SDCCerr.c
3597         * support/Util/SDCCerr.h
3598         * src/mcs51/gen.c
3599         * src/ds390/gen.c
3600         * src/hc08/gen.c
3601
3602 2003-10-19  Borut Razem <borut.razem AT siol.net>
3603
3604         * src/SDCC.lex: fixed bug #825944 - defined yytext_ptr to make it compile with flex 2.5.31
3605
3606 2003-10-19 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
3607
3608         * src/SDCCicode.c (geniCodePreInc, geniCodePreDec, ast2iCode):
3609         Fixed bug #818696
3610         * src/SDCCast.c (ast_print): Fixed --dumptree so that preincrement
3611         and predecrement operand is displayed
3612
3613 2003-10-13 Bernhard Held <bernhard AT bernhardheld.de>
3614
3615         * src/SDCCval.c (valMinus): fixed bug #826041
3616
3617 2003-10-15 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
3618
3619         Some hc08 related updates that I missed earlier
3620         * sim/ucsim/stypes.h
3621         * support/regression/ports/hc08/spec.mk
3622
3623 2003-10-15 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
3624
3625         New target "hc08" for the Motorola 68hc08 family of micros
3626
3627         * configure
3628         * configure.in
3629         * Makefile
3630         * src/hc08/*
3631         * src/SDCCmain.c
3632         * src/port.h
3633         * sim/ucsim/hc08.src/*
3634         * sim/ucsim/configure.in
3635         * src/ucsim/configure
3636         * sim/ucsim/packages_in.mk
3637         * as/hc08/*
3638         * as/Makefile
3639         * device/include/mc68hc908qy.h
3640         * device/lib/hc08/*
3641         * device/lib/Makefile.in
3642         * support/regression/ports/hc08/*
3643         * support/regression/Makefile
3644
3645 2003-10-14 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
3646
3647         * src/z80/gen.c: fixed bug revealed by ast_constant_folding.c
3648         regression test
3649         * src/ds390/gen.c (genCast): fixed bug #821957
3650
3651 2003-10-13 Bernhard Held <bernhard AT bernhardheld.de>
3652
3653         * device/lib/logf.c: "fixed" overlay bug
3654         * support/regression/ports/host/spec.mk: added m library
3655         * support/regression/ports/mcs51-stack-auto/spec.mk: added float funcs
3656         * support/regression/tests/float_trans: added (for Eric)
3657
3658 2003-10-12 Bernhard Held <bernhard AT bernhardheld.de>
3659
3660         * src/mcs51/gen.c (genCpl): fixed bug
3661         http://sf.net/mailarchive/message.php?msg_id=6263915
3662
3663 2003-10-10 Bernhard Held <bernhard AT bernhardheld.de>
3664
3665         * src/SDCCast.c (decorateType): added extended constant folding
3666         * src/SDCCsymt.c (computeType): cleanup
3667         * src/SDCCval.c (valShift): minor optimization
3668         * support/regression/tests/ast_constant_folding.c: added
3669
3670 2003-10-09  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
3671
3672         * src/SDCCmain.c: removed some unintended changes
3673
3674 2003-10-09  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
3675
3676         * src/SDCCmain.c (setParseWithComma): fixed bug #816685
3677         * src/z80/gen.c: fixed part of bug #817589
3678         * src/SDCCsymt.c (checkFunction): fixed bug #817895
3679
3680 2003-10-08 Bernhard Held <bernhard AT bernhardheld.de>
3681
3682         Replaced cast (void **) with (void *) to avoid gcc 3 warning:
3683         * src/SDCCcflow.c
3684         * src/SDCCcse.c
3685         * src/SDCCdflow.c
3686         * src/SDCClabel.c
3687         * src/SDCClrange.c
3688         * src/SDCCmem.c
3689         * src/SDCCopt.c
3690         * src/SDCCpeeph.c
3691         * src/SDCCset.c
3692         * src/avr/ralloc.c
3693         * src/ds390/ralloc.c
3694         * src/izt/ralloc.c
3695         * src/mcs51/ralloc.c
3696         * src/pic/ralloc.c
3697         * src/pic16/ralloc.c
3698         * src/xa51/ralloc.c
3699         * src/z80/ralloc.c
3700         * src/z80/gen.c: removed unused label "release:"
3701
3702 2003-10-06  Borut Razem <borut.razem AT siol.net>
3703
3704         * src/SDCC.lex: removed definition of unused variables
3705           save_optimize and save_options
3706
3707 2003-10-06 Bernhard Held <bernhard AT bernhardheld.de>
3708
3709         * clean.mk: removed '=' in "-maxdepth=1"
3710         * src/SDCCloop.c: replace LRKLAUS with SDCC_LRKLAUS
3711         * src/SDCClrange.c: replace LRKLAUS with SDCC_LRKLAUS
3712
3713 2003-10-06  Borut Razem <borut.razem AT siol.net>
3714
3715         * src/SDCC.lex, src/SDCC.lex: use dbuf for "_asm" definitions;
3716           my_unput() replaced by unput()
3717
3718 2003-10-05 Bernhard Held <bernhard AT bernhardheld.de>
3719
3720         * src/SDCCloop.c (assignmentsToSym, loopInduction): cast argument of
3721         setToNull() to (void *) to avoid gcc3.x's warning: "dereferencing
3722         type-punned pointer will break strict-aliasing rules"
3723         Old LR behaviour is again default; Klaus' LR can be choosen by
3724         defining the environment variable LRKLAUS
3725         * src/SDCCBBlock.h
3726         * src/SDCCloop.c
3727         * src/SDCClrange.c
3728         * src/ds390/ralloc.c (spillThis): applied Klaus' patch
3729         * clean.mk: fixed removal of files in bin/CVS/
3730         * device/lib/clean.mk: fixed removal of directories small and large
3731         * support/Util/SDCCerr.c: changed W_INT_OVL to ERROR_LEVEL_PEDANTIC
3732         * src/SDCCicode.c,
3733         * src/SDCCval.c: removed superflous test for pedantic
3734
3735 2003-10-05  Borut Razem <borut.razem AT siol.net>
3736
3737         * src/SDCC.lex, support/Util/SDCCerr.c, sdcc/support/Util/SDCCerr.h:
3738           Fixed bug #816692: introduced new ERROR_LEVEL_PEDANTIC warning
3739           message "unmatched #pragma SAVE and #pragma RESTORE"
3740
3741 2003-10-04  Frieder Ferlemann <Frieder.Ferlemann AT web.de>
3742
3743         * doc/sdccman.lyx: various additions and updates (interrupts, inline
3744           assembly, critical functions, atomic, nojtbound)
3745
3746 2003-10-04 Bernhard Held <bernhard AT bernhardheld.de>
3747
3748         Applied liferange patch from Klaus Flittner <klaus_flittner AT gmx.de>
3749         * src/SDCCBBlock.h
3750         * src/SDCCloop.c
3751         * src/SDCCloop.h
3752         * src/SDCClrange.c
3753
3754 2003-10-03  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
3755
3756         * src/z80/gen.h,
3757         * src/z80/gen.c (aopOp, aopGet, aopPut, genDummyRead),
3758         * src/mcs51/gen.h
3759         * src/mcs51/gen.c (aopOp, aopGet, aopPut, genDummyRead),
3760         * src/ds390/gen.h
3761         * src/ds390/gen.c (aopOp, aopGet, aopPut, genDummyRead),
3762         * src/SDCCicode.c (ast2iCode, geniCodeDummyRead): Fixed bug #663539
3763         * src/SDCCopt.c (killDeadCode): Fixed bugs #663539 & #816705
3764
3765 2003-10-02  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
3766
3767         * src/z80/gen.c (genRet): fixed bug #524753
3768         * src/z80/gen.c (genCast): fixed internal error on cast from
3769         pointer to long
3770         * src/z80/gen.c (_saveRegsForCall, emitCall): adapted Johan's
3771         fix for bug #477835 to the z80
3772         * src/z80/gen.c (genZ80code, _vemit2, _emit2): added support
3773         for tracking iCodes in the peephole optimizer for z80
3774
3775 2003-10-01  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
3776
3777         * src/SDCCicode.c (geniCodeJumpTable, geniCodeSwitch): fixed
3778         the other part of bug #814548
3779         * src/SDCCpeeph.c (labelInRange): fixed bug #814558
3780
3781 2003-09-30  Bernhard Held <bernhard AT bernhardheld.de>
3782
3783         * src/SDCCcse.c: fixed part of bug #814548
3784
3785 2003-09-28  Borut Razem <borut.razem AT siol.net>
3786
3787         * src/asm.c: rewrite of printILine() to use temporary file instead
3788           a pipe
3789         * src/xa51/main.c: commented out declaration of int rewinds
3790
3791 2003-09-27  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
3792
3793         * src/SDCCicode.c (geniCodeJumpTable): Fixed bug #813206
3794
3795 2003-09-26  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
3796
3797         * src/SDCCdflow.c (computeDataFlow): Fixed bug #810746
3798         * src/asm.c (printILine): Fixed bug #811015
3799
3800 2003-09-22  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
3801
3802         *link/z80/lklibr.c, as/mcs51/lklibr.c: Improved memory allocation and
3803         freeing.
3804
3805 2003-09-21  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
3806
3807         * src/z80/gen.c (setupToPreserveCarry): Fixed bug #796955
3808         * src/z80/gen.c (setupPair, genMovePairPair): Fixed setupPair
3809         to correctly handle general case of AOP_PAIRPTR
3810         * src/z80/gen.c (aopGet, aopPut): Generalized AOP_PAIRPTR handling
3811
3812 2003-09-21  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
3813
3814         * src/mcs51/ralloc.c (fillGaps),
3815         * src/ds390/ralloc.c (fillGaps): fixed bug #810093 (yet another
3816         register positioning bug)
3817
3818 2003-09-21  Bernhard Held <bernhard AT bernhardheld.de>
3819
3820         * device/lib/_fsdiv.c: replaced (1<<31) by (1ul<<31)
3821
3822 2003-09-19  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
3823
3824         * src/mcs51/gen.c (loadDptrFromOperand, genFarPointerGet,
3825         genCodePointerGet, genGenPointerGet, genFarPointerSet,
3826         genGenPointerSet): handle AOP_DPTR correctly when loading dptr
3827         (ralloc doesn't intentionally do this now, but perhaps later)
3828         * src/mcs51/ralloc.c (serialRegAssign, fillGaps),
3829         * src/ds390/ralloc.c (serialRegAssign, fillGaps): fixed some
3830         register positioning bugs (Fixed bug #762602 and #795325)
3831         * src/SDCCicode.c (geniCodeDerefPtr): Track output class correctly
3832         (Fixed bug #808779)
3833         * src/z80/gen.c: increased _vemit2's buffer[] to handle long
3834         lines that --i-code-in-asm generates
3835
3836 2003-09-18  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
3837
3838         *link/z80/lklibr.c, as/mcs51/lklibr.c: Fixed Linux segfaults when
3839         trying to fclose a FILE* that was already closed.
3840
3841 2003-09-18  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
3842
3843         * src/SDCCsymt.c (structElemType): fixed bug #808291 (members
3844         of const struct should be treated as if const themselves)
3845
3846 2003-09-18  Bernhard Held <bernhard AT bernhardheld.de>
3847
3848         * src/SDCCval.c (valPlus, valMinus): fixed bug #808337
3849
3850 2003-07-06  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
3851
3852         * support/librarian/sdcclib.c: Generate correct offsets for libraries with
3853         Unix (/n) and DOS (/r/n) line terminations.
3854
3855 2003-09-17  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
3856
3857         * src/SDCCopt.c (cnvFromFloatCast, cnvToFloatCast): fixed
3858         bug #613775
3859
3860 2003-09-16  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
3861
3862         * src/mcs51/gen.c (genFunction, genEndFunction),
3863         * src/ds390/gen.c (genFunction, genEndFunction): Moved save
3864         and restore of EA so that stack offsets to parameters are
3865         correct when using both critical and reentrant/stack-auto.
3866         * src/z80/gen.c (aopOp): removed erroneous assertion about sloc
3867         size (can be triggered in error if sloc is shared between
3868         different sized objects)
3869         * device/include/float.h: fixed macros to explicitly use
3870         unsigned long where needed
3871
3872 2003-09-15  Bernhard Held <bernhard AT bernhardheld.de>
3873
3874         Feature req. 799831: added code to allow nesting of critical functions
3875         * src/mcs51/gen.c (genFunction, genEndFunction)
3876         * src/ds390/gen.c (genFunction, genEndFunction)
3877
3878 2003-09-14  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
3879
3880         * src/SDCCsymt.c (sclsFromPtr),
3881         * src/SDCCsymt.h,
3882         * src/SDCCast.c (decorateType): fixed bug #462971. Also, better
3883         support for standard C idiom of memory mapped variables; for
3884         example, *((xdata int*)0x1234) = 1 is now internally equivalent
3885         to xdata int at 0x1234 tempvar = 1.
3886         * sim/ucsim/z80.src/inst_xd.cc: fixed bug #805483 with patch
3887         provided by Akiya ISHIDA
3888
3889 2003-09-13  Bernhard Held <bernhard AT bernhardheld.de>
3890
3891         * src/SDCCval.c (cheapestVal): reenabled to reduce int to char
3892         * src/SDCCval.c (constVal): added reduction from int to char
3893         * src/SDCCval.c (valMult, valDiv): fixed sign handling
3894         * src/SDCCval.c (valShift): fixed after change of cheapestVal()
3895         * src/SDCCval.c (valCompare): fixed EQ_OP and NE_OP; they have
3896         to ignore the sign
3897         * support/regression/tests/shifts.c: fixed
3898
3899 2003-09-13  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
3900
3901         * src/z80/gen.c (genXor): Fixed bug #805445
3902
3903 2003-09-12  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
3904
3905         Fixed bug #621531 (const & volatile confusion in the type chain).
3906         DCL_PTR_CONST, DCL_PTR_VOLATILE, & IS_PTR_CONST now exclusively
3907         refer to the const or volatile state of the pointer itself.
3908
3909         * src/SDCCast.c
3910         * src/SDCCglue.c
3911         * src/SDCCicode.c
3912         * src/SDCCsymt.c
3913         * src/SDCCval.c
3914         * src/SDCC.y
3915         * src/SDCCsymt.h
3916         * src/pic/gen.c
3917         * src/pic/ralloc.c
3918         * src/pic16/gen.c
3919         * src/pic16/ralloc.c
3920         * support/regression/tests/const.c
3921
3922 2003-09-10  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
3923
3924         When checking for duplicated modules, use absolute paths
3925         instead of relative paths.  Files changed:
3926
3927         * as/mcs51/lklib.c
3928         * link/z80/lklib.c
3929
3930 2003-09-09  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
3931
3932         * src/SDCCicode.c (geniCodeLogic): fixed bug #797572
3933
3934 2003-09-07  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
3935
3936         * device/include/string.h: added size_t typedef, changed
3937         prototypes to use size_t, eliminated separate reentrant and
3938         non-reentrant declarations, added _memmove declaration
3939         * device/lib/_memcpy.c: changed to use size_t instead of int,
3940         changed /4 to >>2 to avoid division library call
3941         * device/lib/_memcmp.c,
3942         * device/lib/_memset.c,
3943         * device/lib/_strncat.c,
3944         * device/lib/_strncpy.c,
3945         * device/lib/_strncmp.c: changed to use size_t instead of int
3946         * device/lib/_memmove.c: new file (fixed bug #772294)
3947         * device/lib/Makefile.in: added _memmove.c
3948         * device/lib/z80/asm_strings.s: fixed bug #772290
3949         * support/regression/tests/bitfields.c: attempt to fix host assertion
3950         failure on amd64-unknown-linux2.2
3951
3952 2003-09-06  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
3953
3954         * src/z80/gen.c (aopPut, spillPairReg): fixed bug #800998
3955         * src/z80/gen.c (genFunction, genEndFunction): fixed "bug" #774700
3956         * as/z80/asmain.c (main): fixed bug #801766
3957
3958 2003-09-06  Bernhard Held <bernhard AT bernhardheld.de>
3959
3960         * src/SDCCicode.c (ast2iCode): fixed differences in iCode with different
3961         compilers
3962
3963 2003-09-05  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
3964
3965         * src/SDCCast.c (isConformingBody): fixed loop reversal bug
3966         reported in bug #800609
3967
3968 2003-09-04  Vangelis Rokas <vrokas AT otenet.gr>
3969
3970         * Top header beautifications in src/pic16 directory:
3971           device.c, device.h, gen.c, gen.h, genarith.c, glue.c, pcode.c,
3972           pcodeflow.c, pcodeflow.h, pcode.h, pcodepeep.c, pcoderegs.c,
3973           pcoderegs.h, ralloc.c, ralloc.h
3974         * main.c: added top header and GPL license notice
3975         * pcode.c: fixed the if-conditional warning
3976
3977 2003-09-04  Bernhard Held <bernhard AT bernhardheld.de>
3978
3979         * device/lib/_mullong.c: replaced int by short for gcc
3980
3981 2003-08-31  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
3982
3983         * src/SDCCpeeph.c (notVolatile, notVolatileVariable): handle IFX
3984         and JUMPTABLE iCodes properly now (worked by accident before)
3985         * src/mcs51/gen.c (leftRightUseAcc),
3986         * src/ds390/gen.c (leftRightUseAcc): handle IFX and JUMPTABLE
3987         iCode properly now. Use getSize instead of nRegs since a & b
3988         aren't part of the nRegs tally.
3989
3990 2003-08-31  Vangelis Rokas <vrokas AT otenet.gr>
3991
3992         * src/pic16/main.c: corrected offsets of interrupt vectors in _pic16_genIVT()
3993         * src/pic16/pcode.c: fix to disable inserting BANKSEL directive
3994           before instructions that use the _STATUS register
3995
3996 2003-08-31  Bernhard Held <bernhard AT bernhardheld.de>
3997
3998         * src/mcs51/gen.c (freeAsmop): fixed off by one in stack offset (AOP_STK)
3999         * src/mcs51/gen.c (genNearPointerSet): added missing opcode for
4000         fetching of the pointer
4001         * src/mcs51/gen.c (genNearPointerGet): added reuse of PREG,
4002         copied from genNearPointerSet()
4003         * src/mcs51/gen.c (genNearPointerGet): don't pop r0/r1, if RESULTONSTACK
4004         * src/mcs51/gen.c: changed order of freeAsmop(left/right/result)-calls.
4005         If they pop r0/r1 they must be called in the opposite order than aopOp().
4006         * device/lib/_mullong.c: fixed for "--model-large --int-long-reent"
4007         (resp. --stack-auto), prepared for --xstack
4008
4009 2003-08-28  Frieder Ferlemann <Frieder.Ferlemann AT web.de>
4010
4011         * doc/sdccman.lyx: reverted tables to those in cvs 1.64
4012
4013 2003-08-28  Bernhard Held <bernhard AT bernhardheld.de>
4014
4015         * device/lib/_startup.c: quick & dirty fix for ds390/ds400;
4016         these ports have their own __sdcc_external_start()
4017
4018 2003-08-26  Bernhard Held <bernhard AT bernhardheld.de>
4019
4020         pic patch provided by Slade Rich <slade_rich AT yahoo.com>
4021         * src/pic/glue.c (pic14printPublics): fixed bug introduced when symbol
4022         type for bits was changed. It resulted in bit variables becoming
4023         global, which is not permitted in PIC 14 assembly output.
4024
4025 2003-08-23  Frieder Ferlemann <Frieder.Ferlemann AT web.de>
4026
4027         * doc/sdccman.lyx: various additions and updates. Rearranged sections
4028
4029 2003-08-22  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
4030
4031         Z80 and MCS51 linkers complaint if a public symbol is defined
4032         in more than one library module:
4033
4034         * as/mcs51/lklib.c
4035         * link/z80/lklib.c
4036         * as/mcs51/Makefile.in
4037
4038 2003-08-22  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
4039
4040         A few small changes that speed up the peephole optimizer.
4041
4042         * src/SDCCpeeph.c
4043
4044 2003-08-22  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
4045
4046         Try to make the peephole optimizer smarter by maintaining
4047         an association between the assembly source code and the
4048         iCodes that originated them. Put this information to use
4049         with a new peephole rule condition "notVolatile" so that
4050         the rules can be aggressive yet still safe.
4051
4052         * src/SDCCpeeph.c
4053         * src/SDCCpeeph.h
4054         * src/mcs51/gen.c
4055         * src/mcs51/peeph.def
4056
4057 2003-08-20  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
4058
4059         Fixed bug #741761
4060
4061         * src/mcs51/gen.c (aopForSym, leftRightUseAcc),
4062         * src/ds390/gen.c (aopForSym, leftRightUseAcc): preserve A and B
4063         if the left or right operand symbols have the accuse flag set.
4064
4065 2003-08-20  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
4066
4067         Changed the type of the result of the ! (NOT) operator to char;
4068         previously it returned the same type as the source. This allows
4069         us to eliminate all the genFloatNot functions (all of its target
4070         implementations were very buggy) since !float can use the same
4071         code as !long now.
4072
4073         * src/SDCCicode.c (ast2iCode): ! returns char
4074         * src/mcs51/gen.c (genNot, genNotFloat),
4075         * src/ds390/gen.c (genNot, genNotFloat),
4076         * src/z80/gen.c (genNot, genNotFloat),
4077         * src/pic/gen.c (genNot, genNotFloat),
4078         * src/pic16/gen.c (genNot, genNotFloat): eliminated genNotFloat
4079
4080 2003-08-19  Bernhard Held <bernhard AT bernhardheld.de>
4081
4082         pic patch provided by Slade Rich <slade_rich AT yahoo.com>
4083         1. Interrupt would not compile properly. Ensure PCLATH register is saved
4084            during interrupts. Ensure WSAVE is located at a shared bank address.
4085         2. Fixed page selection in some places
4086         3. Fixed BTFSS/C to where necessary use registers directly and not simply
4087            the registers name strings.
4088         4. Fixed "signed / unsigned compare" compiler warnings.
4089         5. The PIC port manages its own allocation of the general purpose
4090            registers, but makes no attempt to reuse them. As a result when
4091            compiling it soon runs out of general purpose registers. Some
4092            additional code was added to the files pcode.c and device.c to walk
4093            through the function call tree and rename the registers so that they
4094            get reused.
4095
4096         * src/pic/device.c
4097         * src/pic/gen.c
4098         * src/pic/glue.c
4099         * src/pic/pcode.c
4100         * src/pic/pcode.h
4101         * src/pic/ralloc.c
4102         * src/pic/ralloc.h
4103         * src/pic/genarith.c: Fixed problems with PIC 14 port in functions
4104         genPlus() & genMinus() when the result is the same as left or right
4105
4106 2003-08-18  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
4107
4108         * src/z80/gen.c (isUnsplitable, fetchPairLong): fixed bug #770454
4109
4110 2003-08-18  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
4111
4112         Made bitfield a distinct type from bit so that bitfields
4113         convert as per ANSI C and bits retain their traditional
4114         boolean style behaviour. Implemented bitfield support in
4115         the z80 port.
4116
4117         * src/SDCCsymt.h,
4118         * src/SDCCsymt.c,
4119         * src/SDCCast.c,
4120         * src/cdbFile.c,
4121         * src/mcs51/gen.c,
4122         * src/ds390/gen.c: bit v bitfield split
4123         * src/z80/gen.c: New support for bitfields
4124         * support/regression/tests/bitfields.c: reenabled z80,
4125         added more tests
4126
4127 2003-08-17  Frieder Ferlemann <Frieder.Ferlemann AT web.de>
4128
4129         Rules 246.x, 247.x relate to bitfields, the others speed up
4130         access to xdata mapped I/O devices.
4131
4132         * src/mcs51/peeph.def: added 26 peepholes 246.x - 248.x, 180.x
4133
4134 2003-08-16  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
4135
4136         Cleaned up genPackBits and genUnpackBits and added two helper
4137         functions, emitPtrByteGet & emitPtrByteSet. Added optimizations
4138         for literal assignments in genPackBits (thanks to Frieder for
4139         reminding me).
4140
4141         * src/mcs51/gen.c
4142         * src/ds390/gen.c
4143
4144 2003-08-16  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
4145
4146         Fixed bug #748310 (pointer to function type mishandled when the
4147         function name is omitted). Also fixed a SIGSEGV when a function
4148         attribute (reentrant, etc) is used on a non-function or on a
4149         function but misplaced before the parameter list.
4150
4151         * src/SDCC.y (abstract_declarator, abstract_declaractor2): fixed
4152         bug #748310
4153         * src/SDCC.y (declarator2_function_attributes): avoided SIGSEGV
4154         * support/Util/SDCCerr.h,
4155         * support/Util/SDCCerr.c: Added func attr misuse error msg
4156
4157 2003-08-13  Bernhard Held <bernhard AT bernhardheld.de>
4158
4159         Fixed bug #787649 by anonymous
4160         * src/SDCCglue.c (emitRegularMap): added emission of sloc for func ptr
4161         * src/ds390/gen.c (aopForSym): fixed func ptr in sloc
4162
4163 2003-08-14  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
4164
4165         Fixed numerous bitfield problems.
4166
4167         * src/SDCC.y: More bitfield related error checking
4168         * src/SDCCsymt.h,
4169         * src/SDCCsymt.c (compStructSize): fixed bitfield offset calc
4170         * support/Util/SDCCerr.h,
4171         * support/Util/SDCCerr.c: Added & edited some bitfield err msgs
4172         * src/mcs51/gen.c (genPackBits, genUnpackBits): fixed mask bugs
4173         * src/ds390/gen.c (genPackBits, genUnpackBits): fixed mask bugs
4174         * support/regression/tests/bitfields.c: tests added
4175
4176 2003-08-13  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
4177
4178         Made the constant following the "interrupt" keyword optional. If
4179         omitted, the function will not automatically be given an entry
4180         in the interrupt vector table (similar to #pragma NOIV, but
4181         less syntacticly kludgy). The interrupt number is also now
4182         range checked. Also fixed a bug in the high order bit example
4183         in the manual.
4184
4185         * src/SDCC.y
4186         * src/SDCCmem.c
4187         * src/SDCCglue.c
4188         * src/SDCCsymt.h
4189         * support/Util/SDCCerr.c
4190         * support/Util/SDCCerr.h
4191         * doc/sdccman.lyx
4192
4193 2003-08-13  Bernhard Held <bernhard AT bernhardheld.de>
4194
4195         * src/SDCCcse.c (algebraicOpts): fix bug converting op from value to type
4196         * src/SDCCicode.c (operandOperation): rewritten some ops
4197         (*, ==, unary_minus) to fix possible overflows and to accord with ANSI
4198         * src/SDCCsymt.c (computeType): literals are handled the same way as any
4199         other type
4200         * src/SDCCval.c (cheapestVal): removed, it doesn't accord with ANSI (can
4201         be re-activated by defining REDUCE_LITERALS)
4202         * src/SDCCval.c (constVal): fixed; hex and octal constants can be
4203         unsigned, but are signed by default
4204         * src/SDCCval.c (constVal): rearranged
4205         * src/SDCCval.c (valMod): preliminary fix
4206         * src/SDCCval.c (valCastLiteral): use TYPE_* types
4207         * support/regression/literalop.c: added, work in progress
4208
4209 2003-08-12  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
4210
4211         Generate warnings for useless declarations like "char data;"
4212         that don't do what new users expect.
4213
4214         * src/SDCC.y
4215         * support/Util/SDCCerr.h
4216         * support/Util/SDCCerr.c
4217
4218 2003-08-09  Bernhard Held <bernhard AT bernhardheld.de>
4219
4220         * src/SDCCval.c (valMult): fix overflow detection of negative int
4221
4222 2003-08-07  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
4223
4224         * src/z80/ralloc.c (joinPushes): made compatible with new signedness
4225
4226         Changes to support big endian targets:
4227
4228         * src/ports.h
4229         * src/SDCCglue.c
4230         * src/avr/main.c
4231         * src/ds390/main.c
4232         * src/izt/i186.c
4233         * src/mcs51/main.c
4234         * src/pic/main.c
4235         * src/pic16/main.c
4236         * src/xa51/main.c
4237         * src/z80/main.c
4238
4239 2003-08-06  Bernhard Held <bernhard AT bernhardheld.de>
4240
4241         * src/SDCCval.c (cheapestVal): changed behaviour to the same as constVal()
4242         * device/lib/time.c: fixed warning "integer overflow in expression"
4243
4244 2003-08-05  Bernhard Held <bernhard AT bernhardheld.de>
4245
4246         * src/SDCCval.c (cheapestVal, valueFromLit): use TYPE_* types
4247         * src/SDCCval.c (constVal): changed default to signed; hex and octal
4248         constants are unsigned; added recognition of "u" flag for unsigned
4249         * src/SDCCval.c (valMult): fixed signdness, added warning for overflow
4250         * src/SDCCval.c (valDiv, valMod): fixed signdness
4251         * src/SDCCicode.c (operandOperation): fixed critical typo; fixed
4252         signedness of modulo, left and right shift
4253         * support/Util/SDCCerr.c: added warning "integer overflow in expression"
4254         * support/Util/SDCCerr.h: added warning W_INT_OVL
4255         * src/SDCCast.c (decorateType): fixed gcc3.3 warning
4256         * src/SDCCast.c (ast_print): improved output of constants
4257
4258 2003-08-04  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
4259
4260         Fixed some warnings when building with MSVC:
4261
4262         * as\mcs51\asdata.c
4263         * as\z80\asdata.c
4264         * as\mcs51\asm.h
4265         * as\z80\asm.h
4266         * link\z80\aslink.h
4267         * link\z80\lkdata.c
4268         * link\z80\lkeval.c
4269         * link\z80\lkgb.c
4270         * link\z80\lkihx.c
4271         * link\z80\lks19.c
4272         * link\z80\lksym.c
4273         * support\cpp2\cpplib.c
4274         * src\ds390\gen.c
4275         * src\mcs51\gen.c
4276
4277 2003-08-03  Bernhard Held <bernhard AT bernhardheld.de>
4278
4279         * src/SDCCast.c (constExprTree): fix bug #781827 by Carl Worth <cworth AT isi.edu>
4280
4281 2003-08-01  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
4282
4283         * support\librarian\clean.mk: Do not remove Makefile.
4284         * support\librarian\Makefile: added.
4285
4286 2003-08-01  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
4287
4288         Added librarian to MSVC build:
4289         * all.dsp
4290         * sdcc.dsw
4291         * support\librarian\librarian.dsp
4292
4293         'configure' not needed for librarian, removed:
4294         * support\librarian\configure
4295         * support\librarian\configure.in
4296         * support\librarian\config_in.h
4297         * support\librarian\Makefile.in
4298
4299         Hopefully these ones built the librarian and the rest of sdcc properly:
4300         * Makefile
4301         * Makefile.common.in
4302
4303         Messed up 'configure', so revert to previous version:
4304         * configure
4305         * configure.in
4306
4307 2003-07-31  Bernhard Held <bernhard AT bernhardheld.de>
4308
4309         * src/SDCCicode.c (operandOperation): 3. fix, this time for Alpha; ULONG has 64 bits
4310         there, while the mantissa of a double is "only" 53 bits wide.
4311
4312 2003-07-31  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
4313
4314         Adding sdcclib to the build.  MSVC project coming soon.
4315         Files added/changed:
4316
4317         * support\librarian\clean.mk
4318         * support\librarian\configure
4319         * support\librarian\configure.in
4320         * support\librarian\config_in.h
4321         * support\librarian\Makefile.bcc
4322         * support\librarian\Makefile.in
4323         * support\librarian\sdcclib.c
4324         * Makefile.bcc
4325         * Makefile
4326         * Makefile.common.in
4327         * configure
4328         * configure.in
4329
4330 2003-07-29  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
4331
4332         Linker now complaints if linked modules have conflicting options, for
4333         example, one compiled using --model-large and another one compiled with
4334         --model-small.  The following files were modified:
4335
4336         * as\mcs51\asdata.c
4337         * as\mcs51\aslink.h
4338         * as\mcs51\asm.h
4339         * as\mcs51\asmain.c
4340         * as\mcs51\asout.c
4341         * as\mcs51\i51pst.c
4342         * as\mcs51\lkdata.c
4343         * as\mcs51\lklibr.c
4344         * as\mcs51\lkmain.c
4345         * as\z80\asdata.c
4346         * as\z80\asm.h
4347         * as\z80\asmain.c
4348         * as\z80\asout.c
4349         * as\z80\z80pst.c
4350         * link\z80\aslink.h
4351         * link\z80\lkdata.c
4352         * link\z80\lklibr.c
4353         * link\z80\lkmain.c
4354         * src\SDCCglue.c
4355
4356 2003-07-28  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
4357
4358         *link/z80/aslink.h, link/z80/lklibr.c, as/mcs51/aslink.h,
4359         as/mcs51/lklibr.c: Generate a warning when a library is not found.
4360
4361 2003-07-28  Bernhard Held <bernhard AT bernhardheld.de>
4362
4363         * src/z80/mappings.i: fix _mul[us][int,long] entries
4364
4365 2003-07-26  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
4366
4367         *src/SDCCmain.c: do not search for crt0.o when using --nostdlib
4368
4369 2003-07-24  Bernhard Held <bernhard AT bernhardheld.de>
4370
4371         * src/SDCCicode.c (operandOperation): really fixed problem with bitops
4372         * support/regression/tests/bitopcse.c: added
4373         fixed warning:
4374         * src/avr/gen.c:
4375         * src/pic/gen.c:
4376         * src/pic16/gen.c:
4377         * src/z80/gen.c:
4378         * src/xa51/gen.c:
4379
4380 2003-07-24  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
4381
4382         added support for new library format to z80, gbz80 linkers:
4383         *link/z80/aslink.h
4384         *link/z80/lklex.c
4385         *link/z80/lklib.c
4386         *link/z80/lklist.c
4387
4388 2003-07-24  Bernhard Held <bernhard AT bernhardheld.de>
4389
4390         * src/SDCCicode.c (operandOperation): fixed problem with bitops and 0xffffffff;
4391         after {double d = 0xffffffff; long l = d;} l will be 0x80000000 (LONG_MIN)
4392
4393 2003-07-23  Bernhard Held <bernhard AT bernhardheld.de>
4394
4395         added DUMMY_READ_VOLATILE:
4396         * src/SDCC.y:
4397         * src/avr/gen.c:
4398         * src/xa51/gen.c:
4399         * src/z80/gen.c:
4400         * src/pic/gen.c:
4401         * src/pic16/gen.c:
4402         * src/mcs51/gen.c:
4403         * src/ds390/gen.c:
4404         * src/SDCCcse.c (algebraicOpts): many improvements
4405         * src/SDCCcse.h: removed algebraicOpts()
4406         * src/SDCCicode.c (picDummyRead): added
4407
4408 2003-07-23  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
4409
4410         * as/mcs51/lkmem.c: Changed message "Insufficient DRAM memory" to
4411         "Insufficient space in data memory".
4412
4413 2003-07-20  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
4414
4415         * src/mcs51/gen.c: fixed bug #771358
4416         * src/z80/gen.c: fixed bug #759087
4417
4418 2003-07-20  Bernhard Held <bernhard AT bernhardheld.de>
4419
4420         * src/pic16/glue.c: minor cleanup by Vangelis
4421
4422 2003-07-19  Frieder Ferlemann <Frieder.Ferlemann AT web.de>
4423
4424         * device/include/regc515c.h: fixed #758477
4425         * device/lib/_gptrget.c: saving some cycles in generic pointer get
4426         * device/lib/_gptrput.c: saved a few bytes
4427         * my tab spacing is 8, yours too?)
4428         * device/lib/_ser.c: process RX bytes earlier than TX bytes
4429         * device/lib/serial.c: process RX bytes earlier than TX bytes
4430         * src/mcs51/gen.c(genGenPointerGet/Set): removed writing of type after postincrement
4431
4432 2003-07-18  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
4433
4434         * src/z80/gen.c: fixed some right shift bugs (#772726 among them)
4435
4436 2003-07-17  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
4437
4438     * link/z80/lklibr.c: fixed bug when there is a '.' in a library path.
4439
4440 2003-07-17  Bernhard Held <bernhard AT bernhardheld.de>
4441
4442         * device/lib/Makefile.in: bad fix, reverted to 1.43
4443
4444 2003-07-16  Bernhard Held <bernhard AT bernhardheld.de>
4445
4446         * device/lib/Makefile.in: added missing z80 object files
4447
4448 2003-07-14  Bernhard Held <bernhard AT bernhardheld.de>
4449
4450         * src/SDCCcse.c (algebraicOpts): CSE fun with &|^ and 0x00/0xff literals
4451         pic16 progress by Vangelis:
4452         * src/SDCCglobl.h:
4453         * src/SDCCmain.c:
4454         * src/pic/Makefile:
4455         * src/pic:
4456         * pic/Makefile:
4457         * pic16/device.c:
4458         * pic16/device.h:
4459         * pic16/gen.c:
4460         * pic16/gen.h:
4461         * pic16/genarith.c:
4462         * pic16/glue.c:
4463         * pic16/main.c:
4464         * pic16/pcode.c:
4465         * pic16/pcode.h:
4466         * pic16/pcodepeep.c:
4467         * pic16/peeph.def:
4468
4469 2003-07-13  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
4470
4471     * src/SDCCmain.c, src/SDCCglobl.h: added option --no-std-crt0
4472
4473 2003-07-12  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
4474
4475     * sdcc.dsw, all.dsp, link/z80/linkgbz80.dsp, as/z80/as-gbz80.dsp:
4476     added gbz80 build to MSVC project.
4477     * src/SDCCmain.c, src/SDCCglue.c, src/z80/main.c, src/z80/z80.dsp,
4478     link/z80/aslink.h, linkz80.dsp: cleaned up z80 and gbz80 asm files
4479     from 8051 stuff and setup so it links using a .lnk file.
4480
4481 2003-07-06  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
4482
4483     * support/librarian/sdcclib.c: sdcc librarian.
4484     * as/mcs51/aslink.h, as/mcs51/lklib.c: Support for libraries created
4485     with sdcclib.
4486
4487 2003-07-03  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
4488
4489     * as/mcs51/lkmain.c: properly handle extensions in function afile.
4490
4491 2003-07-02  Borut Razem <borut.razem AT siol.net>
4492
4493         * src/port.h, src/SDCCmain.c, src/pic/glue.h, src/pic/main.c,
4494         src/pic16/glue.h, sdcc/src/pic16/main.c, src/izt/i186.c,
4495         src/izt/tlcs900h.c, src/avr/main.c, src/ds390/main.c, src/mcs51/main.c,
4496         src/xa51/main.c, src/z80/main.c:
4497         virtualization of glue() function: each port has it's own glue function,
4498         which is accessed by do_glue function pointer in PORT.general structure
4499
4500 2003-07-01 Kevin Vigor <kevin AT vigor.nu>
4501
4502         * DS800C400 fun, improved ROM interface and tinibios.
4503
4504 2003-06-27 Kevin Vigor <kevin AT vigor.nu>
4505
4506         * More support for DS80C400. Now includes beginning of interface to ROM.
4507
4508 2003-06-25  Bernhard Held <bernhard AT bernhardheld.de>
4509
4510         * src/mcs51/gen.c (gencjneshort): fixed bug #760345
4511
4512 2003-06-20  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
4513
4514         * as/mcs51/lkaomf51.c: Make sure the size of the last procedure is correct.
4515
4516 2003-06-19  Borut Razem <borut.razem AT siol.net>
4517
4518         * src/z80/main.c: fixed Z80 port again: missing -k library paths in linker command line
4519
4520 2003-06-19  Borut Razem <borut.razem AT siol.net>
4521
4522         * src/SDCCutil.h, src/SDCCutil.c, src/SDCCglobl.h, src/SDCCmain.c, src/z80/main.c:
4523         fixed Z80 port - crt0.o: cannot open.
4524
4525 2003-06-19  Bernhard Held <bernhard AT bernhardheld.de>
4526
4527         * support/Util/MySystem.c (merge_command): revert bad fix
4528
4529 2003-06-18  Borut Razem <borut.razem AT siol.net>
4530
4531         * src/SDCC.lex, src/SDCCmain.c: fixed some warnings, introduced with changes made 15.06.1003
4532
4533 2003-06-18  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
4534
4535         * src/SDCCglobl.h, src/SDCCmain.c, doc/sdccman.lyx:
4536         option --use-stdout sends errors to stdout instead of stderr.
4537
4538 2003-06-18  Bernhard Held <bernhard AT bernhardheld.de>
4539
4540         * support/Util/MySystem.c (merge_command): quick fix for Linux segfault with \"cmd\" arg
4541
4542 2003-06-15  Borut Razem <borut.razem AT siol.net>
4543
4544         * support/cpp2/sdcc.h: HAVE_DOS_BASED_FILE_SYSTEM defined for _WIN32
4545         * src/SDCC.lex: cloneXxx and copyAndFreeXxx functions for options and optimize stack handling
4546         * src/SDCCglobl.h, src/SDCCmain.c, src/ds390/main.c, src/mcs51/main.c, src/z80/main.c:
4547         fixed width array of pointers replaced with sets;
4548         multiple include and lib paths ared transferred to preprocessor and linker
4549         * src/SDCCset.c, src/SDCCset.h: added function setFromSetNonRev() and mergeSets()
4550         * src/SDCCsymt.c: reimplemented function inCalleeSaveList() by using sets instead
4551         fixed width array of pointers
4552         * src/SDCCutil.c, src/SDCCutil.h: added functions fputStrSet(), appendStrSet(), joinStrSet();
4553         removed functions addToList(), join(), joinn(), pathCharsEquivalent(), pathCharTransform(),
4554         fixupPath(), getPathDifference()
4555         * src/ds390/gen.c, src/mcs51/gen.c: reimplemented function  inExcludeList() by using sets instead
4556         fixed width array of pointers
4557
4558 2003-06-11  Bernhard Held <bernhard AT bernhardheld.de>
4559
4560         * src/pic16/ralloc.c: fix warnings
4561         * src/pic16/pcode.c: fix warning
4562
4563 2003-06-10  Scott Dattalo  <scott AT dattalo.com>
4564
4565          Scott D. for Vangelis Rokas (vrokas AT otenet.gr). I (scott) don't
4566         know all the details, but essentially this set of changes enable
4567         the pic16 port to generate movff instructions and generate assembler
4568         directives,
4569         * src/SDCCmain.c:
4570         * src/pic16/gen.c:
4571         * src/pic16/glue.c:
4572         * src/pic16/pcode.c:
4573         * src/pic16/device.c:
4574         * src/pic16/main.c:
4575         * src/pic16/pcode.h:
4576         * src/pic16/pcoderegs.c:
4577         * src/pic16/ralloc.c:
4578         * src/pic16/ralloc.h:
4579
4580 2003-06-08  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
4581
4582         * support/Util/SDCCerr.c, src/SDCCglobl.h, src/SDCCmain.c, doc/sdccman.lyx:
4583         added option --vc, so sdcc errors and warnings are compatible with
4584         Microsoft Visual Studio.
4585
4586 2003-06-07  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
4587
4588         * device/lib/_atof.c, device/lib/Makefile.in, device/include/stdlib.h,
4589           device/lib/libfloat.lib: added atof function.
4590
4591 2003-06-04  Bernhard Held <bernhard AT bernhardheld.de>
4592
4593         * doc/sdccman.lyx: updated to Lyx 1.3
4594         * doc/cdbfileformat.lyx: updated to Lyx 1.3
4595         * doc/test_suite_spec.lyx: updated to Lyx 1.3
4596         * doc/Makefile: added fix for the \tabularnewline problem, thanks to Jesus
4597
4598 2003-06-03  Bernhard Held <bernhard AT bernhardheld.de>
4599
4600         * src/SDCCpeeph.c: separate peepRules2pCode() for pic16 by "Vangelis Rokas" <vrokas AT otenet.gr>
4601
4602 2003-06-02  Frieder Ferlemann <Frieder.Ferlemann AT web.de>
4603
4604         * doc/sdccman.lyx: cvs revision keywords, passing pdf information in latex preamble,
4605           additions to the "related tools/documentation" section
4606
4607 2003-06-02  Bernhard Held <bernhard AT bernhardheld.de>
4608
4609         * src/SDCCglue.c (tempfileandname): added check for missing TMP/TEMP/TMPDIR variable
4610
4611 2003-05-29  Bernhard Held <bernhard AT bernhardheld.de>
4612
4613         * src/pic/device.c: added 16F819, patch by "David I. Lehn" <dlehn AT vt.edu>
4614         * src/SDCCcse.c (algebraicOpts): fixed "c * 1"
4615
4616 2003-05-28  Bernhard Held <bernhard AT bernhardheld.de>
4617
4618         * doc/sdccman.lyx: fix double dash and other minor things
4619         * doc/Makefile: fix double dash
4620
4621 2003-05-28  Karl Bongers(patches from Martin Helmling)
4622         * debugger/mcs51/sdcdb.c,cmd.c,break.c and .h files. Martin adds
4623           condition and ignore commands.
4624
4625 2003-05-28  Frieder Ferlemann <Frieder.Ferlemann AT web.de>
4626
4627         * doc/sdccman.lyx: Changes all over, index improved, smaller margins. The manual
4628           is in parts still quite out of date, I did changes as far as I felt makes sense
4629           for a non-native english speaker.
4630           Please feel free to add to the manual or to correct my changes.
4631         * doc/Makefile: undid touching the date of intermediate tex files.
4632
4633 2003-05-26  Frieder Ferlemann <Frieder.Ferlemann AT web.de>
4634
4635         * doc/sdccman.lyx: Manual has an index now
4636
4637 2003-05-25  Bernhard Held <bernhard AT bernhardheld.de>
4638
4639         Finalize muluint/mulsint and mululong/mulslong merging:
4640         * device/lib/_mulint.c
4641         * device/lib/_mullong.c
4642         * device/lib/gbz80/mul.s
4643         * device/lib/gbz80/stubs.s
4644         * device/lib/z80/mul.s
4645         * device/lib/z80/stubs.s
4646         * src/SDCCsymt.c (initCSupport)
4647
4648 2003-05-25  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
4649
4650         * as/mcs51/lkaomf51.c: Address space 'z' was missing.
4651         * src/avr/avr.dsp, src/ds390/ds390.dsp, src/mcs51/mcs51.dsp,
4652           src/pic/pic.dsp, src/pic16/pic16.dsp, src/xa51/xa51.dsp,
4653           src/x80/z80.dsp: peep.rul is bigger now, so /Zm1000 is used
4654           instead of /Zm500.
4655
4656 2003-05-25  Frieder Ferlemann <Frieder.Ferlemann AT web.de>
4657
4658         * src/mcs51/peeph.def: added rules 244.x, 245.x. Although they pass
4659           the regression tests I'm not brave enough to enable 245.b, 245.c
4660         * doc/sdccman.lyx: added latex preamble for hyperref package.
4661           Using pdflatex this will give you a hyperlinked pdf file with
4662           bookmarks. (prepend '%' before /usepackage if this breaks something)
4663
4664 2003-05-24  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
4665
4666          * doc/sdccman.lyx: updated information about .adb files (fixed bug 742649)
4667
4668 2003-05-22  Bernhard Held <bernhard AT bernhardheld.de>
4669
4670         * src/pic16/pcode.c (pic16_get_op_from_instruction): fixed a gcc 3.x warning
4671
4672 2003-05-21    <johan AT balder>
4673
4674         * src/SDCCglue.c (printIval): fixed bug #739934
4675
4676 2003-05-19  Bernhard Held <bernhard AT bernhardheld.de>
4677
4678         Applied patch from bug 737905 (renamed yylineo to mylineno):
4679         * src/altlex.c
4680         * src/SDCCast.c
4681         * src/SDCglobl.h
4682         * src/SDCC.lex
4683         * src/SDCCsymt.c
4684         * src/SDCCval.c
4685         * src/pic16/pcode.c: Cleaned warnings
4686         * src/pic16/pcodeflow.c: Cleaned warnings
4687         * src/pic16/pcoderegs.c: Cleaned warnings
4688
4689 2003-05-19  Scott Dattalo  <scott AT dattalo.com>
4690
4691         * src/pic16/pcode.c: Cleaned warnings
4692         * src/pic16/pcodepeep.c: Cleaned warnings
4693         * src/pic16/ralloc.c: Cleaned warnings
4694
4695 2003-05-19  Bernhard Held <bernhard AT bernhardheld.de>
4696
4697         * doc/sdccman.lyx: fixed bug 739745
4698         * src/pic16/pcode.c (pic16_get_op): fixed warning on alpha
4699
4700 2003-05-18  Bernhard Held <bernhard AT bernhardheld.de>
4701
4702         * src/port.h: removed DEFAULT_PORT, it's not yet pic16 ;-)
4703         it can be defined with CFLAGS when running configure
4704         * src/SDCCmain.c: fixed compiling + linking with object files
4705
4706 2003-05-18  Vangelis Rokas (vrokas AT otenet.gr)
4707
4708         * configure.in: configure for pic16 port,
4709             added --disable-pic16-port
4710         * sdccconf_in.h: added macro OPT_DISABLE_PIC16
4711         * src/SDCCmain.c: linkOptions is changed to set *,
4712             added if/endif conditional macros to remove options help
4713             messages from optionsTable when a port is not configured, added
4714             support for the PIc16 port in the ports table, when executing
4715             the compiler with no port specified on command line, a default
4716             port is selected with the new macro DEFAULT_PORT which is
4717             defined in port.h, in setDefaultOptions() linkOptions is removed
4718             from initialization assignment, since now it is a set,
4719             parseCmdLine uses setParseWithComma for linkOptions, in
4720             linkEdit() linkOptions are accessed with new function indexSet()
4721             which returns the i'th item of a set variable. See SDCCset.c, in
4722             linkEdit() when calling buildCmdLine(), added linkOptions as
4723             last argument. Now users can pass arguments to gplink via the
4724             -Wl option, main() uses pic16glue() to glue up pic16 programs
4725         * src/SDCCpeeph.c: various changes to support pic16
4726         * src/SDCCset.c: added function  void *indexSet(set *, int)  to
4727             return the i'th item of the set
4728         * src/SDCCset.h: added function prototype for indexSet()
4729         * src/SDCCsymt.c: in checkSClass(), added support for PIC16
4730         * src/clean.mk: added pic16 in CLEANALLPORTS variable
4731         * src/port.h: added TARGET_ID_PIC16,TARGET_IS_PIC16 macro,
4732             added macro DEFAULT_PORT
4733         * src/pic/main.c: corrected arguments of gplnk in _linkCmd
4734         * src/pic16/gen.c: bug fix in genCpl(), now the correct code is
4735             generated
4736         * src/pic16/glue.c: commented out some error producing lines
4737         * src/pic16/main.c: __config directives are commented out to stop
4738             gpasm complaining and test the linkage with gplink, _linkCmd and
4739             _asmCmd changed to be more gplink and gpasm friendly
4740         * src/pic16/peeph.def: peep rule 3 is commented out, since it
4741             produced an error when parsed, peep rule 12 is added to utilize
4742             movff, but it is commented out since the pCode does not support
4743             yet a command with 2 address arguments
4744
4745 2003-05-18    <johan AT balder>
4746
4747         * src/ds390/gen.c (genArrayInit): removed obsolete and buggy ARRAYINIT
4748         * src/ds390/main.c (genArrayInit): removed obsolete and buggy ARRAYINIT
4749 2003-05-17  Karl Bongers(apply patches from Martin Helmling)
4750
4751         * debugger/mcs51/sdcdb.c,cmd.c,break.c and .h files.
4752   Added feature to script commands from file.
4753
4754 2003-05-14  Bernhard Held <bernhard AT bernhardheld.de>
4755
4756         * device/lib/_strtok.c: fixed bug #734355 by Lenny Story and Tim Woodall
4757         * src/SDCCutil.c: include ctype.h for win32
4758
4759 2003-05-13  Bernhard Held <bernhard AT bernhardheld.de>
4760
4761         * src/pic16/*: removed CR from many files, reported by Vangelis Rokas
4762
4763 2003-05-12  Karl Bongers(apply development patches from Martin Helmling)
4764
4765         * debugger/mcs51/sdcdb.c,simi.c,cmd.c,break.c and .h files.
4766   Fixed so you can set breakpoints prior to run, run does not stop
4767   on entry now.  Add tbreak.  Other enhancements and fixes for use
4768   with ddd.
4769
4770 2003-05-12  Borut Razem <borut.razem AT siol.net>
4771
4772         * src/SDCCmain.c: fixed the problem with searching the DATADIR as the last resort on *nix
4773
4774 2003-05-11  Borut Razem <borut.razem AT siol.net>
4775
4776         * src/SDCCutil.c: WIN32 version of getBinPath() calls GetModuleFileName() to determine
4777         the path of bin directory, so that PATH is the only env. variable, which has to be set
4778         in case of standard installation.
4779         * src/ds390/ds390.dsp: increased value of /Zm option to 1000
4780         * src/pic/main.c: add quotes to file name parameters for gplink and gpasm
4781         * src/SDCCglobl.h, src/SDCCmain.c, doc/sdccman.lyx: added --print-search-dirs command line option
4782
4783 2003-05-04  Bernhard Held <bernhard AT bernhardheld.de>
4784
4785         * src/SDCCmain.c (linkEdit): fixed buffer overflow for gbz80
4786         * support/regression/Makefile: inter-port-clean is no longer nesessary, the
4787         temp files are in the port dir; clean the gen/test directory when
4788         generating new test.c
4789         * support/regression/ports/host/spec.mk: defined OBJEXT for target clean
4790         * support/regression/tests/vaargs.c: fixed gcc 3.3 warning
4791         * support/regression/tests/zeropad.c: added
4792
4793 2003-05-09    <johan AT balder>
4794
4795         * src/SDCCglue.c: fixed bug #597940
4796
4797 2003-05-05  Karl Bongers(apply patches from Martin Helmling)
4798
4799         * debugger/mcs51/sdcdb.c,simi.c,cmd.c,symtab.c and .h files.
4800   cache sfr, optimize next,step, fix off by one sourceline,
4801   support ddd list function.
4802         * sim/ucsim/cmd.src/newcmd.cc - small fix for sdcdb use.
4803
4804 2003-05-04  Bernhard Held <bernhard AT bernhardheld.de>
4805
4806         * support/regression/HTMLgen.py: added compare_s2f()
4807         * support/regression/Makefile: redo 1.27
4808         * support/regression/generate-cases.py: redo 1.5
4809
4810 2003-04-30  Bernhard Held <bernhard AT bernhardheld.de>
4811
4812         * support/regression/tests/float.c: workaround 33 bit hex constant
4813         * support/regression/tests/simplefloat.c: fix division for host
4814
4815 2003-04-29  Scott Dattalo  <scott AT dattalo.com>
4816
4817         * src/pic/pcoderegs.c Applied patch from Jim Hawkridge <jim AT jimhawkridge.uk.eu.org>
4818         that tame's the PIC's over-aggressive optimizer.
4819
4820 2003-04-29  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
4821
4822          * src.dsw, link/z80/aslink.h, link/z80/linkz80.dsp: z80 linker
4823          support for MSVC.
4824
4825 2003-04-29  Kevin Vigor <kevin AT vigor.nu>
4826
4827         Initial support for DS80C400. "Hello world" runs on TINIm400
4828         (with polled I/O).
4829
4830 2003-04-28  Karl Bongers(apply patches for Martin Helmling)
4831
4832          * debugger/mcs51/sdcdb.c,simi.c,cmd.c,symtab.c and .h files.
4833          * Some notes on ddd usage added in debugger/README
4834          Martin Helmling adding more features and fixes for ddd GUI debugger.
4835          Code added for nexti, stepi, up, down, and other adjustments.
4836
4837 2003-04-28  Scott Dattalo  <scott AT DATTALO.COM>
4838
4839         * src/pic/pCodepeep.c non-wildcard asmops are now handled
4840         * src/pic/peeph.def Added two rules to optimize carry manipulation
4841         * src/pic/* removed debug printfs
4842
4843 2003-04-28  Bernhard Held <bernhard AT bernhardheld.de>
4844
4845         * debugger/mcs51/cmd.c: added header newalloc.h
4846
4847 2003-04-26  Bernhard Held <bernhard AT bernhardheld.de>
4848
4849         * as/Makefile: new EXEEXT
4850         * as/z80/Makefile: remove trailing slash of BUILDIR
4851         * as/z80/clean.mk: new EXEEXT
4852         * Makefile.common.in: add to CFLAGS (and others), don't replace it
4853         * support/cpp2/Makefile.in: new EXEEXT
4854         * src/pic/glue.c (pic14emitRegularMap): fixed warning
4855
4856 2003-04-24  Bernhard Held <bernhard AT bernhardheld.de>
4857
4858         Cygwin's gcc always appends .exe: 'gcc -o a a.c' creates a.exe;
4859         EXEEXT was introduced to fix all related problems with targets
4860         "clean", "install" and "uninstall"; a couple of further flaws
4861         especially with "clean" have been fixed too
4862         * as/mcs51/Makefile.in
4863         * as/mcs51/clean.mk
4864         * as/z80/Makefile
4865         * Makefile
4866         * clean.mk
4867         * debugger/mcs51/Makefile.in
4868         * debugger/mcs51/clean.mk
4869         * link/z80/Makefile
4870         * link/z80/Makefile.in
4871         * link/z80/clean.mk
4872         * link/Makefile
4873         * packihx/Makefile.in
4874         * packihx/clean.mk
4875         * sim/ucsim/Makefile
4876         * sim/ucsim/clean.mk
4877         * sim/ucsim/avr.src/Makefile.in
4878         * sim/ucsim/avr.src/clean.mk
4879         * sim/ucsim/s51.src/Makefile.in
4880         * sim/ucsim/s51.src/clean.mk
4881         * sim/ucsim/xa.src/Makefile.in
4882         * sim/ucsim/xa.src/clean.mk
4883         * sim/ucsim/z80.src/Makefile.in
4884         * sim/ucsim/z80.src/clean.mk
4885         * sim/ucsim/main_in.mk
4886         * sim/ucsim/packages_in.mk
4887         * sim/ucsim/gui.src/Makefile.in
4888         * sim/ucsim/gui.src/serio.src/Makefile.in
4889         * sim/ucsim/gui.src/serio.src/clean.mk
4890         * src/Makefile.in
4891         * src/clean.mk
4892         * support/cpp2/Makefile.in
4893         * support/cpp2/clean.mk
4894         * support/makebin/Makefile
4895         * support/makebin/clean.mk
4896         * support/scripts/sdcc_mingw32: --program-suffix no longer needed
4897         * doc/sdccman.lyx: --program-suffix no longer needed
4898
4899 2003-04-23  Karl Bongers(apply patches for Martin Helmling)
4900
4901          * debugger/mcs51/sdcdb.c,simi.c,cmd.c,..
4902          Martin Helmling added support for ddd GUI debugger.
4903          Code added to display assembly, set variables, and other commands
4904          to interface to ddd.
4905
4906 2003-04-23  Bernhard Held <bernhard AT bernhardheld.de>
4907
4908         * as/Makefile: fix target clean
4909         * as/clean.mk: fix target clean
4910         * as/z80/clean.mk: fix target clean
4911
4912 2003-04-22  Bernhard Held <bernhard AT bernhardheld.de>
4913
4914         * Makefile.common.in: added  AT EXEEXT AT
4915         * configure.in: removed all mingw32 stuff
4916         * configure: rebuilt from configure.in
4917         * doc/sdccman.lyx: updated section "installation"
4918         * support/scripts/sdcc_mingw32: adapted to configure
4919         * support/scripts/sdcc_cygwin_mingw32: added
4920
4921 2003-04-22  Scott Dattalo  <scott AT dattalo.com>
4922
4923         * src/pic Added object file support for the PIC port
4924         * src/pic Applied patch from Craig Franklin (this started the object file support)
4925         * src/regression Updated the PIC regression tests for object files
4926
4927 2003-04-20  Borut Razem <borut.razem AT siol.net>
4928
4929         * sdcc/as/mcs51/lklex.c: make getfid() more robust and fixed gcc warning:
4930           lklex.c: In function `getfid':
4931           lklex.c:203: warning: array subscript has type `char'
4932         * src/SDCCglobl.h: small change in stack handling macros, to avoid crash when compiled
4933           with MSVC with global optimization enabled (probably an cl compiler bug ;-)
4934         * support/Util/SDCCerr.c, support/Util/SDCCerr.h: added function fatal(), called from
4935           stack handling macros
4936
4937 2003-04-19  Borut Razem <borut.razem AT siol.net>
4938
4939         * "handling space characters in file path" task:
4940         * src/SDCCmacro.c: fixed bug in handlig quote at the end of line
4941         * support/Util/BuildCmd.c: define par as NULL if parameter value is invalid
4942         * support/Util/MySystem.h: make it self-sufficient
4943         * src/avr/main.c, src/ds390/main.c, src/mcs51/main.c, src/pic/main.c, src/xa51/main.c,
4944           src/z80/main.c, sdcc/as/mcs51/lklex.c:
4945           handling space characters in file path
4946         * src/SDCCmain.c: introduced setDataPaths() function, {datadir} macro
4947           (it will be used by assemblers, which have their own includes, e.g. gpasm)
4948         * support/Util/MySystem.c: handling space characters in executable's path
4949
4950 2003-04-19  Bernhard Held <bernhard AT bernhardheld.de>
4951
4952         * as/z80/Makefile: fix permanent rebuild of z80
4953         * sim/ucsim/gui.src/Makefile.in: target "install" builds the same packages as target "all"
4954         * support/regression/tests/bitfields.c: added Johan's bitfields.c
4955
4956 2003-04-18      Kevin Vigor <kevin AT vigor.nu>
4957
4958         * src/SDCCopt.c: add special case optimization to replace modulo by
4959           a power of two with a bitwise AND.
4960
4961 2003-04-18    <johan AT balder>
4962
4963         * src/mcs51/gen.c (getFreePtr): fixed bug #635354
4964
4965 2003-04-17    <johan AT balder>
4966
4967         * src/mcs51/ralloc.c (packRegsForAssign): fixed bug #716790 and removes lot's of redundant register usage around function calls
4968         * src/mcs51/ralloc.c (packRegisters): fixed bug #720667
4969
4970 2003-04-13  Borut Razem <borut.razem AT siol.net>
4971
4972         * doc/sdccman.lyx: updated info about #pragma SAVE/RESTORE nesting
4973         * configure.in, configure: fixed problems on cygwin/WinCVS environmet with ports.* line endings;
4974           fixed mingw problem in adl_NORMALIZE_PATH
4975
4976 2003-04-12  Borut Razem <borut.razem AT siol.net>
4977
4978         * fixed "#pragma SAVE/RESTORE can not be nested":
4979         * src/SDCC.lex: reworked pragma handling functions
4980         * sdcc/src/SDCCglobl.h: reworked stack handling macros
4981         * support/Util/SDCCerr.c, support/Util/SDCCerr.h: added E_STACK_VIOLATION error
4982
4983 2003-04-12  Bernhard Held <bernhard AT bernhardheld.de>
4984
4985         * src/SDCCutil.c (pathEquivalent): defined but not used
4986         * debugger/mcs51/sdcdb.c: replace SDCC_LIB_DIR
4987         * configure.in: remove sdcc_datadir, sdcc_lib_dir and sdcc_include_dir
4988         * configure: rebuilt from configure.in
4989         * sdccconf_in.h: remove SDCC_LIB_DIR and SDCC_INCLUDE_DIR
4990         * sdcc_vc_in.h: remove SDCC_LIB_DIR and SDCC_INCLUDE_DIR
4991         * device/include/Makefile.in: replace sdcc_datadir
4992         * device/lib/Makefile.in: replace sdcc_datadir
4993         * Makefile.common.in: add LDFLAGS from configure
4994         * packihx/Makefile.in: use LDFLAGS
4995         * src/Makefile.in: use LDFLAGS
4996         * support/cpp2/Makefile.in: add LDFLAGS from configure
4997         * support/makebin/Makefile: use LDFLAGS
4998         * .version: bumped version number to 2.3.5
4999
5000 2003-04-12  Borut Razem <borut.razem AT siol.net>
5001
5002         * completed "different paths" task:
5003         * src/SDCCmacro.c: fixed bug in handling quotes
5004         * src/SDCCutil.c, src/SDCCutil.c: rewritten getPrefixFromBinPath()
5005         * src/SDCCmain.c: _discoverPaths() replaced with setBinPaths(), setIncludePath() and setLibPath()
5006
5007 2003-04-12  Bernhard Held <bernhard AT bernhardheld.de>
5008
5009         * src/pic/pcoderegs.c (Remove1pcode): fix warning on alpha
5010
5011 2003-04-11 kevin Vigor <kevin AT vigor.nu>
5012
5013         * ds390/gen.c ds390/peeph.def: fix bug 706781
5014
5015 2003-04-11  Borut Razem <borut.razem AT siol.net>
5016
5017         * support/Util/dbuf.c, support/Util/dbuf.h: update to version 1.1.1 - re-added C++ stuff to make it still more portable
5018
5019 2003-04-10  Scott Dattalo  <scott AT dattalo.com>
5020
5021         * src/pic/* Applied the pointer-to-function patch from Steve Tell.
5022         * src/pic/* Fixed several pointer bugs. (PIC port broke when the ruonly bit was
5023          set - this bit used to not be set...).
5024         * src/pic/gen.c Fixed buf 609268 ==> x = (x+1) & 0xf; generated
5025           bad code in PIC Port
5026         * src/regression/and2.c added to test bug 609268
5027         * src/regression/Makefile added and2.c to regression test
5028
5029
5030 2003-04-08    <johan AT CP255758-A>
5031
5032         * src/mcs51/gen.c (gen51Code): display reg usage in --icode-in-asm
5033         * src/mcs51/ralloc.c (serialRegAssign): update the registers in use and save some slocs
5034         * src/SDCCicode.h: added riu to show the register usage in --icode-in-asm
5035
5036 2003-04-07  Bernhard Held <bernhard AT bernhardheld.de>
5037
5038         * configure.in: fully support prefix, exec_prefix, datadir, docdir;
5039         fix bug #487815
5040         * support/cpp2/Makefile.in: fix bug #487815
5041         * configure: rebuilt from configure.in
5042         * Makefile.common.in: docdir changed, new path suffixes
5043         * sdccconf_in.h: new RETSIGTYPE, and other PATHs
5044         * sdcc_vc_in.h: reflect changes from sdccconf.h
5045         * src/SDCCglobl.h: remove *SEPARATOR_CHARS, they are now in sdccconf.h
5046         * src/SDCCutil.h: remove BINDIR hack
5047         * doc/sdccman.lyx: update new path hierarchy
5048
5049 2003-04-06    Paul Stoffregen <paul AT pjrc.com>
5050
5051         * src/SDCCpeeph.c: added okToRemoveSLOC test
5052
5053 2003-04-06    Paul Stoffregen <paul AT pjrc.com>
5054
5055         * device/lib/printf_fast.c: added leading zero format ("%06d", etc)
5056
5057 2003-04-06    Paul Stoffregen <paul AT pjrc.com>
5058
5059         * src/SDCCpeeph.c: added labelIsReturnOnly test
5060         * src/mcs51/peeph.def: Peephole 244: replace ljmp to ret with ret
5061
5062 2003-04-05    <johan AT balder>
5063
5064         * src/SDCCcse.c (cseAllBlocks): fixed bug #460088
5065         * src/SDCCloop.c (DEFSETFUNC): fixed bug #460088
5066         * src/SDCCopt.c (eBBlockFromiCode): fixed bug #460088
5067         * src/SDCCast.c: fixed a warning
5068         * src/SDCCast.h: fixed a warning
5069         * src/SDCCicode.c (operandFromAst): fixed a warning
5070
5071 2003-04-04    <johan AT balder>
5072
5073         * src/SDCCloop.c (DEFSETFUNC): undid the fix for bug #519584
5074         * src/SDCCast.c (decorateType): fixed bug #715076
5075         * src/SDCC.y: fixed bug #702907
5076
5077 2003-04-03    <johan AT balder>
5078
5079         * device/lib/_mulint.c (_muluint): new #pragma LESS_PEDANTIC
5080         * src/SDCCopt.c (eBBlockFromiCode): new #pragma LESS_PEDANTIC
5081         * src/SDCCglobl.h (PRAGMA_LESSPEDANTIC): new #pragma LESS_PEDANTIC
5082         * src/SDCC.lex (doPragma): new #pragma LESS_PEDANTIC
5083         * src/SDCCmain.c (parseCmdLine): new #pragma LESS_PEDANTIC
5084
5085 2003-04-03  Bernhard Held <bernhard AT bernhardheld.de>
5086
5087         * _decdptr.c: fix return values
5088         * _gptrget.c: fix return values
5089         * _gptrgetc.c: fix return values
5090         * _gptrput.c: fix return values
5091         * _mulint.c: fix return values
5092         * as/z80/Makefile: fix 'make -j' problem
5093
5094 2003-04-02  Bernhard Held <bernhard AT bernhardheld.de>
5095
5096         * Makefile.common.in: unused PORT, SCC and SAS removed, fixed docdir
5097         * configure.in: big cleanup, updated to autoconf 2.5x
5098         * configure: rebuilt from configure.in
5099         * sdccconf_in.h: new RETSIGTYPE, and other PATHs
5100         * sdcc_vc_in.h: reflect changes from sdccconf.h
5101         * doc/Makefile: fixed a flaw in "make install"
5102
5103 2003-04-02    <johan AT balder>
5104
5105         * src/ds390/gen.c (genCmp): no comments
5106         * src/mcs51/gen.c (genCmp): no comments
5107         * src/SDCCopt.c (eBBlockFromiCode): detect missing return values
5108         * src/SDCCast.c (ast_print): fixed the function type in --dumptree
5109
5110 2003-04-01  Bernhard Held <bernhard AT bernhardheld.de>
5111
5112         * support/regression/generate-cases.py: place generated file in given sub directory
5113         * support/regression/ports/host/spec.mk: prevent removal of testfwk.o
5114         * support/regression/Makefile: improvements for 'make -j';
5115         side effect: it's simpler and faster now
5116
5117 2003-03-31  Borut Razem <borut.razem AT siol.net>
5118
5119         * src/z80/main.c: link-{port} and as-{port} defined without path
5120         * src/src.dsp: support/Util/MySystem.h and src/SDCCutil.h added to project
5121
5122 2003-03-31  Bernhard Held <bernhard AT bernhardheld.de>
5123
5124         * Makefile, src/Makefile.in: add dependencies, so that 'make -j' works
5125
5126 2003-03-30  Borut Razem <borut.razem AT siol.net>
5127
5128         * support/Util/BuildCmd.c, support/Util/BuildCmd.h: rewrite buildCmdLine(),
5129           changed type of list parameter to set
5130         * src/ds390/main.c: changed type of parameter asmOptions to set in _tininative_do_assemble()
5131         * src/port.h: changed type of do_assemble() parameter to set
5132         * src/SDCCmain.c: type of asmOptions changed to set, introduced setParseWithComma(),
5133           sdcpp defined without path, removed variable VersionString, introduced set binPathSet,
5134           definition of "cppoutfilename" macro with NULL value in preProcess()
5135         * src/SDCCglobl.h: included "SDCCset.h", added declaration of setParseWithComma()
5136         * src/SDCCglue.c: removed variable VersionString, inroduced spacesToUnderscores()
5137         * support/Util/MySystem.c, support/Util/MySystem.h: rewrite, char *ExePathList[]
5138           replaced with set *binPathSet
5139         * shash_add() deallocates the item, if allready exsists, before adding the new one
5140         * src/SDCCmacro.c: handling macros with empty or NULL values in _evalMacros()
5141
5142 2003-03-30  Scott Dattalo  <scott AT dattalo.com>
5143
5144         * src/pic/gen.c: Commit patch from Steve Tell <tell AT telltronics.org> that fixes
5145           a nested for loop bug in the PIC port
5146         * src/regression/nestfor.c: new regression test file Steve wrote to test nested
5147           for loops
5148
5149 2003-03-29  Bernhard Held <bernhard AT bernhardheld.de>
5150
5151         * support/Util/dbuf.h: remove C++ stuff to make it portable
5152
5153 2003-03-28  Borut Razem <borut.razem AT siol.net>
5154
5155         * src/SDCC.lex: Fix for bug #711240: dynamic buffer handling of C
5156           literal strings in stringLiteral()
5157         * support/Util/dbuf.c, support/Util/dbuf.h: added: dynamic buffer handling
5158         * src/Makefile.bcc, src/Makefile.in, src\src.dsp: added support/Util/dbuf.c
5159           to the project
5160
5161 2003-03-27  Paul Stoffregen <paul AT pjrc.com>
5162
5163         * src/SDCCpeeph.c (pcDistance): accurate byte distance for mcs51
5164
5165 2003-03-26    <johan AT balder>
5166
5167         * src/mcs51/gen.c (saveRegisters): catched symbol abuse
5168         * src/ds390/gen.c (saveRegisters): catched symbol abuse
5169         * src/SDCCast.c (decorateType): fixed " -v < 3"
5170
5171 2003-03-23  Bernhard Held <bernhard AT bernhardheld.de>
5172
5173         * doc/cdbfile.html: removed, replaced by cdbfileformat.lyx
5174         Added Lenny Story's debug infrastructure changes:
5175         * src/Makefile.in:  added new files cdbFile.c and SDCCdebug.c
5176         * src/Makefile.bcc: added new files cdbFile.c and SDCCdebug.c
5177         * src/cdbFile.c: added
5178         * src/SDCCdebug.c: added
5179         * src/SDCCdebug.h: added
5180         * src/SDCCast.c (createFunction)
5181         * src/SDCCglue.c (emitRegularMap, emitStaticSeg, emitOverlay, glue)
5182         * src/SDCCmain.c (parseCmdLine, main)
5183         * src/SDCCmem.c (redoStackOffsets)
5184         * src/SDCCsymt.c (cdbStructBlock, cdbTypeInfo, cdbSymbol, cdbStruct, cdbStructBlock)
5185         * src/SDCCsymt.h
5186         * src/common.h
5187         * src/avr/gen.c (genAVRCode)
5188         * src/ds390/gen.c (gen390Code)
5189         * src/mcs51/gen.c (gen51Code)
5190         * src/pic/gen.c (genpic14Code)
5191         * src/pic/glue.c (pic14emitRegularMap, pic14emitStaticSeg, pic14emitOverlay, picglue)
5192         * src/xa51/gen.c (genXA51Code)
5193         * src/SDCCast.c: fixed "void foo(void){char c; -c < 0;}"
5194
5195 2003-03-22  Frieder Ferlemann <Frieder.Ferlemann AT web.de>
5196
5197         * src/mcs51/gen.c (genCodePointerGet): quicker code for bug #700797
5198         * src/mcs51/peeph.def: added rules 177, 241.x to 243, touched 181, 182.x, 193.x
5199
5200 2003-03-22    <johan AT balder>
5201
5202         * src/SDCCicode.c (geniCodeDerefPtr): fixed bug #698231
5203
5204 2003-03-21  Bernhard Held <bernhard AT bernhardheld.de>
5205
5206         * support/scripts/sdcc_mingw32: adapted to configure from autoconf 2.54
5207         * doc/cdbfileformat.lyx: added, written by Lenny Story
5208         * doc/Makefile: added cdbfileformat.lyx
5209         * doc/clean.mk: added cdbfileformat.lyx
5210
5211 2003-03-20  Bernhard Held <bernhard AT bernhardheld.de>
5212
5213         * src/mcs51/peeph.def: fix bug #705773
5214
5215 2003-03-20    <johan AT balder>
5216
5217         An sfr/sbit can have an "at #" AND an initializer
5218         * src/SDCCsymt.c (checkSClass):
5219         * src/SDCCmem.c (allocGlobal):
5220         * src/SDCCmem.c (allocLocal):
5221         * src/SDCCast.c (createBlock):
5222
5223 2003-03-17  Bernhard Held <bernhard AT bernhardheld.de>
5224
5225         * src/ds390/peeph.def: fix bug #704878: added rule 213.b suggested by Jan Rejlek
5226
5227 2003-03-16    <johan AT balder>
5228
5229         Undid the hackup of const and volatile, the problem is much bigger
5230         * src/SDCC.y:1.65
5231         * src/SDCCast.c:1.171
5232         * src/SDCCglue.c:1.138
5233         * src/SDCCicode.c:1.146
5234         * src/SDCCsymt.c:1.150
5235         * src/SDCCval.c:1.65
5236
5237 2003-03-15  Bernhard Held <bernhard AT bernhardheld.de>
5238
5239         * src/mcs51/ralloc.c (packRegsForAssign): fixed bug #703541
5240         * src/ds390/gen.c (genAddrOf): fixed bug #704087
5241
5242 2003-03-13    <johan AT balder>
5243
5244         Hackup const and volatile modifiers in type chains a bit:
5245         * src/SDCC.y:1.63
5246         * src/SDCCast.c:1.169
5247         * src/SDCCglue.c:1.136
5248         * src/SDCCicode.c:1.143
5249         * src/SDCCsymt.c1.146
5250         * src/SDCCsymt.h1.59
5251         * src/SDCCval.c:1.63
5252
5253 2003-03-12    <johan AT balder>
5254
5255         * src/SDCCBBlock.h: more LRH debugging junk
5256         * src/SDCCcflow.h: more LRH debugging junk
5257         * src/SDCCloop.c: more LRH debugging junk
5258         * src/SDCC.y (struct_declaration): fixed bug #697590
5259         * src/SDCCsymt.[hc] (cloneSpec): NEVER EVER use this again
5260         * src/ds390/gen.c (aopForRemat): fixed bug #700031
5261         * src/SDCCglue.c (emitStaticSeg): fixed bug #700797
5262
5263 2003-03-11 Kevin Vigor <kevin AT vigor.nu>
5264         * src/SDCCpeeph.c: quit being lazy and made proper fix (peephole
5265         test function names must now match exactly).
5266         * src/SDCCcse.c: added special case in findCheaperOp to allow
5267         extending a short integer. Makes less awful code for bug 700121 test case.
5268
5269 2003-03-11  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
5270
5271         * as/mcs51/lkmain.c: Added ASlink-Warning to messages
5272         * as/mcs51/lkaomf51.c: Fixed bug when linking asmblink example
5273
5274 2003-03-11 Kevin Vigor <kevin AT vigor.nu>
5275
5276         * src/SDCCpeeph.c: fix so that operandsNotEqualX functions are
5277         actually called (operandsNotEqual() was called for all
5278         operandsNotEqualX tests).
5279
5280 2003-03-11 Kevin Vigor <kevin AT vigor.nu>
5281
5282         * src/SDCCcse.c: fix findCheaperOp to prevent replacing int types
5283         with shorter literals. Fixes bug 700121.
5284
5285 2003-03-11    <johan AT balder>
5286
5287         * src/SDCCsymt.c (compareType): a (void *) can be assigned to any pointer
5288
5289 2003-03-11  Bernhard Held <bernhard AT bernhardheld.de>
5290
5291         * src/SDCCloop.c (mergeRegions): an evil beast is dead
5292         * src/SDCCmain.c (preProcess): minor cleanup: eliminate preOutName
5293
5294 2003-03-10  Borut Razem <borut.razem AT siol.net>
5295
5296         * src/SDCCmain.c: pipe preprocessor's output
5297         * support/Util/MySystem.c, support/Util/MySystem.h: added my_popen()
5298         * sdcc_vc_in.h: define pclose as _pclose for WIN32
5299         * src/SDCCglue.c, src/SDCCglue.h: added set pipeSet, added function closePipes,
5300         which closes all pipes in pipeSet set
5301         * src/SDCCset.c: free deleted item in function deleteSetItem()
5302         * src/src.dsp, src/z80/z80.dsp: files support/Util/BuildCmd.c and support/Util/MySystem.c
5303         moved from z80 to src subproject
5304         * .version: increased version number to 2.3.4
5305
5306 2003-03-10  Bernhard Held <bernhard AT bernhardheld.de>
5307
5308         * support/regression/ports/mcs51/spec.mk: increase timeout for CF's sparc to 30s
5309         * support/regression/ports/ds390/spec.mk: increase timeout for CF's sparc to 25s
5310         * support/regression/ports/xa51/spec.mk: fix typo
5311
5312 2003-03-09  Bernhard Held <bernhard AT bernhardheld.de>
5313
5314         * src/SDCCglobl.h: PATH_MAX is already defined in mingw32 headers
5315
5316 2003-03-09  Borut Razem <borut.razem AT siol.net>
5317
5318         * src/SDCCmain.c: pipe preprocessor's output
5319         * support/Util/MySystem.c, support/Util/MySystem.h: added my_popen()
5320         * sdcc_vc_in.h: define pclose as _pclose for WIN32
5321         * src/SDCCglue.c, src/SDCCglue.h: added set pipeSet, added function closePipes,
5322         which closes all pipes in pipeSet set
5323         * src/SDCCset.c: free deleted item in function deleteSetItem()
5324         * src/src.dsp, src/z80/z80.dsp: files support/Util/BuildCmd.c and support/Util/MySystem.c
5325         moved from z80 to src subproject
5326
5327 2003-03-09  Borut Razem <borut.razem AT siol.net>
5328
5329         * src/SDCCglue.c: re-implemented tempfilename() and tempfile(): using mkstemp() if available
5330         * src/SDCCsymt.h: fixed MSVC and BORLANDC compilation (included SDCCglobl.h instead srccconf.h)
5331         * sdcc_vc_in.h: explicitly undefined HAVE_MKSTEMP which is not available on BORLANDC and MSVC
5332         * src/SDCCset.h: removed inclusion of sdccconf.h or sdcc_vc.h
5333         * src/SDCCglobl.h: unification of WIN32 native definitions
5334
5335 2003-03-09  Frieder Ferlemann <Frieder.Ferlemann AT web.de>
5336
5337         * src/mcs51/gen.c: applied in-/dec patch mentioned on sdcc-devel 2003-03-01
5338
5339 2003-03-08  Bernhard Held <bernhard AT bernhardheld.de>
5340
5341         * src/configure.in:   check for endianess (even while cross-compiling)
5342         * src/configure:      check for endianess (even while cross-compiling)
5343         * src/configure_in.h: check for endianess (even while cross-compiling)
5344         * src/avr/gen.c:        remove old endianess stuff
5345         * src/mcs51/gen.c:      remove old endianess stuff
5346         * src/ds390/gen.c:      remove old endianess stuff
5347         * src/pic/gen.c:        remove old endianess stuff
5348         * src/pic/genarith.c:   remove old endianess stuff
5349         * src/pic/glue.c:       fix endianess check
5350         * src/pic16/gen.c:      remove old endianess stuff
5351         * src/pic16/genarith.c: remove old endianess stuff
5352         * src/pic16/glue.c:     fix endianess check
5353         * src/xa51/gen.c:       remove old endianess stuff
5354         * src/z80/gen.c:        fix endianess check
5355         * src/SDCCglue.c:       fix endianess check
5356         * src/ds390/peeph.def: fix bug 700036
5357
5358 2003-03-08  Bernhard Held <bernhard AT bernhardheld.de>
5359
5360         * src/SDCCsymt.h: use appropriate data-types on host for SDCC's int and long
5361         * src/configure: find appropriate data-types on host for SDCC's int and long
5362         * src/configure.in: find appropriate data-types on host for SDCC's int and long
5363         * src/sdccconf_in.h: find appropriate data-types on host for SDCC's int and long
5364         * src/xa51/gen.c: use %d, not %ld for 4 byte variables
5365
5366 2003-03-07    <johan AT balder>
5367
5368         Just a big NOOP:
5369                 some minor cleanups before the big shot
5370                 OP_DEFS and OP_USES now use Kevin's protection
5371                 new option --nolabelopt
5372
5373         * src/SDCCBBlock.c:
5374         * src/SDCCast.c,:
5375         * src/SDCCcflow.c:
5376         * src/SDCCcse.c:
5377         * src/SDCCicode.c:
5378         * src/SDCCicode.h:
5379         * src/SDCClabel.c:
5380         * src/SDCCloop.c:
5381         * src/SDCCmain.c:
5382         * src/ds390/ralloc.c:
5383         * src/mcs51/ralloc.c:
5384         * src/pic/ralloc.c:
5385         * src/xa51/ralloc.c:
5386         * src/z80/ralloc.c:
5387
5388 2003-03-06  Bernhard Held <bernhard AT bernhardheld.de>
5389
5390         * src/pic/pcode.c (get_op): fix 64 bit warnings
5391         * src/pic/pcode.c (pCode2str): fix 64 bit warnings
5392         * src/SDCChasht.c (newHashTable): fix 64 bit warnings
5393         * src/SDCCsymt.c (checkTypeSanity): fix 64 bit warnings
5394         * support/regression/tests/malloc.c: fix 64 bit warnings
5395
5396 2003-03-04  Bernhard Held <bernhard AT bernhardheld.de>
5397
5398         * src/mcs51/gen.c (genMinus): fixed bug 696436
5399
5400 2003-03-02  Borut Razem <borut.razem AT siol.net>
5401
5402         * src/SDCCmain.c: added BORLANDC, corrected MSVC in printVersionInfo()
5403
5404 2003-02-26  Bernhard Held <bernhard AT bernhardheld.de>
5405
5406         * configure.in: test for mkstemp
5407         * sdccconf_in.h: add HAVE_MKSTEMP
5408
5409 2003-02-24  Bernhard Held <bernhard AT bernhardheld.de>
5410
5411         * device/include/ctype.h: removed warning while using --stack-auto
5412         * device/include/malloc.h: removed warning while using --stack-auto
5413         * device/include/string.h: removed warning while using --stack-auto
5414
5415 2003-02-23  Borut Razem <borut.razem AT siol.net>
5416
5417         * src/asm.h: corrected assertion in function printILine(): _pipe() was not executed on MSVC,
5418         because NDEBUG is defined (see man assert)
5419         * sdcc_vc_in.h: vsnprintf is defined as _vsnprintf on MSVC
5420
5421 2003-02-23  Frieder Ferlemann <Frieder.Ferlemann AT web.de>
5422
5423         * src/mcs51/gen.c (genUminusFloat): avoided dptr in-/decrement for xdata variables
5424         * src/mcs51/peeph.def: added rule suggested by Gernot Fink, white space/comment changes
5425
5426 2003-02-18  Frieder Ferlemann <Frieder.Ferlemann AT web.de>
5427
5428         * src/SDCCpeeph.c: added peephole conditions testing for same arguments
5429         * src/mcs51/peeph.def: added rules 238a-d which remove redundant moves
5430
5431 2003-02-18    <johan AT balder>
5432
5433         * as/mcs51/asmain.c (asmbl): module can start with a digit
5434         * as/z80/asmain.c (asmbl): module can start with a digit
5435
5436 2003-02-16  Bernhard Held <bernhard AT bernhardheld.de>
5437
5438         * sim/ucsim/mkecho: inserted #!/bin/sh for Cygwin, so that it's executable
5439         * src/asm.c: fix pipe() for Mingw32
5440
5441 2003-02-15  Bernhard Held <bernhard AT bernhardheld.de>
5442
5443         * src/SDCCglue.h: make tmpfileNameSet available for preOutName
5444         * src/SDCCmain.c (preProcess): make sure, that preOutName will be deleted;
5445         make -V work again; --c1mode reads now from stdin
5446         * doc/sdccman.lyx: added --c1mode
5447         * support/Util/SDCCerr.c: new messages for c1 mode
5448         * support/Util/SDCCerr.h: new messages for c1 mode
5449         * src/SDCC.lex (checkCurrFile): test if fullSrcFileName is NULL for c1mode
5450
5451 2003-02-15    <johan AT balder>
5452
5453         * src/asm.c: new options: --no-c-code-in-asm and --i-code-in-asm
5454
5455 2003-02-14  Bernhard Held <bernhard AT bernhardheld.de>
5456
5457         * doc/sdccman.lyx: Environment variables, -o and other minor things
5458
5459 2003-02-14    <johan AT balder>
5460
5461         * src/xa51/main.c: before anyone really tries to use it :)
5462
5463         * Install doc's in share/sdcc/doc
5464         * removed some obsolete files
5465         * Do a proper make distclean and uninstall
5466         M Makefile.common.in
5467         R sdccbuild.sh
5468         M as/Makefile
5469         M device/include/Makefile.in
5470         M device/lib/Makefile.in
5471         M doc/sdccman.lyx
5472         M link/Makefile
5473         M sim/ucsim/doc/Makefile.in
5474         M src/clean.mk
5475         R src/avr/peeph.rul
5476         R src/xa51/peeph.rul
5477         M support/cpp2/Makefile.in
5478         M support/makebin/Makefile
5479
5480
5481 2003-02-13  Bernhard Held <bernhard AT bernhardheld.de>
5482
5483         * support/regression/ports/host/spec.mk: use cc as host compiler for max osx
5484
5485 2003-02-10  Borut Razem <borut.razem AT siol.net>
5486
5487         * doc/bccinst.txt, packihx/packihx.c, sdcc_vc_in.h, src/SDCCset.h,
5488         support/cpp2/config.in: Borland C++ build doesn't depend on Cygwin configure
5489         * Bcc.ini, Makefile.bcc, as/mcs51/Makefile.bcc,
5490         device/examples/ds390/tinitalk/Makefile.bcc, packihx/Makefile.bcc,
5491         support/cpp2/Makefile.bcc, src/Makefile.bcc, src/avr/Makefile.bcc,
5492         src/ds390/Makefile.bcc, src/izt/Makefile.bcc, src/mcs51/Makefile.bcc,
5493         src/pic/Makefile.bcc, src/pic16/Makefile.bcc, src/xa15/Makefile.bcc,
5494         src/z80/Makefile.bcc: Borland Makefile cleanup
5495         * as/z80/Makefile.bcc: Added Borland Makefile
5496         * support/cpp2/borland.h: Removed
5497
5498 2003-02-10  Bernhard Held <bernhard AT bernhardheld.de>
5499
5500         * doc/sdccman.lyx: new pragma NOIV by "Johannes Stezenbach" <js AT convergence.de>
5501         * src/SDCC.lex: new pragma NOIV
5502         * src/SDCCglobl.h: new pragma NOIV
5503         * src/SDCCmem.c: new pragma NOIV
5504
5505 2003-02-09  Bernhard Held <bernhard AT bernhardheld.de>
5506
5507         * src/SDCCmain.c: signal handling is switched off by SDCC_LEAVE_SIGNALS
5508
5509 2003-02-09  Bernhard Held <bernhard AT bernhardheld.de>
5510
5511         * src/SDCCmain.c: signal handling is switched off by --debug
5512         * doc/Makefile: small fix for install; use clean.mk again
5513         * doc/clean.mk: clean *.pdf and *.html too
5514
5515 2003-02-08  Bernhard Held <bernhard AT bernhardheld.de>
5516
5517         * device/lib/_mulint.c: small fix for large/ds390 --int-long-reent resp. --stack-auto
5518         * device/lib/printfl.c: fix a ds390 bug by making it portable
5519         * src/SDCCsymt.c (initCSupport): fix compile warning on Cygwin
5520         * src/SDCCopt.c (cnvToFloatCast): fix compile warning on Cygwin
5521         * src/SDCCopt.c (cnvFromFloatCast): fix compile warning on Cygwin
5522         * debugger/mcs51/cmd.c: converted multi-line string literals
5523         * sim/ucsim/globals.cc: converted multi-line string literals
5524         * src/SDCCmain.c: introduced signal handler to remove temp files
5525         * doc/Makefile: small tweaks, implement clean
5526         * doc: removed generated files
5527
5528 2003-02-05  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
5529
5530         * as/mcs51/aslink.h, as/mcs51/lkihx.c, as/mcs51/lkrloc.c:  Applied
5531         patch from Jan Rejlek <jr AT apex-lib.cz> to fix Bug 677692: "Extended
5532         Address Record is not correctly generated for DS390."
5533
5534 2003-02-02  Borut Razem <borut.razem AT siol.net>
5535
5536         * Makefile.bcc: removed non existing cpp project and non compilable izt project from makefile
5537         * as/mcs51/asm.h: fixed compilation with Borland C
5538         * support/cpp2/Makefile.bcc: added rule to generate auto-host.h
5539         * support/cpp2/auto-host_vc_in.h: fixed compilation with Borland C
5540         * src/mcs51/mcs51a.dsp: corrected misspelled project name from msc51a to mcs51a
5541         * src/avr/Makefile.bcc, src/ds390/Makefile.bcc, src/izt/Makefile.bcc,
5542         src/mcs51/Makefile.bcc, src/pic16/Makefile.bcc, src/xa51/Makefile.bcc,
5543         src/z80/Makefile.bcc: delete $(LIB) only if exist
5544         * src/Makefile.bcc, src/pic/Makefile.bcc:  fixed compilation with Borland C
5545
5546 2003-02-02  Bernhard Held <bernhard AT bernhardheld.de>
5547
5548         * device/include/malloc.h: introduced NULL
5549         * device/include/string.h: introduced NULL
5550         * device/include/stdlib.h: introduced NULL
5551         * device/lib/_memcpy.c: removed NULL
5552         * device/lib/_strcat.c: removed NULL
5553         * device/lib/_strchr.c: removed NULL
5554         * device/lib/_strcmp.c: removed NULL
5555         * device/lib/_strcpy.c: removed NULL
5556         * device/lib/_strcspn.c: removed NULL
5557         * device/lib/_strlen.c: removed NULL
5558         * device/lib/_strncat.c: removed NULL
5559         * device/lib/_strncmp.c: removed NULL
5560         * device/lib/_strncpy.c: removed NULL
5561         * device/lib/_strpbrk.c: removed NULL
5562         * device/lib/_strrchr.c: removed NULL
5563         * device/lib/_strspn.c: removed NULL
5564         * device/lib/_strstr.c: removed NULL
5565         * device/lib/_strtok.c: removed NULL
5566         * device/lib/malloc.c: removed NULL, include own header
5567
5568 2003-02-02    <johan AT balder>
5569
5570         * 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
5571         * support/regression/fwk/lib/testfwk.c: div and mod isn't broken anymore
5572         * regressions ds390/spec.mk and mcs51/spec.mk (timeout): my good old balder isn't fast enough for some tests
5573         * src/z80/gen.c (genZ80Code): added c-lines in asm comments
5574         * as/z80/asm.h (NINPUT): increased for long c-comments in regression tests
5575         * src/z80/gen.c (genRightShiftLiteral): fixed the (char)(-3)>>8 (I think)
5576
5577 2003-02-01  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
5578
5579         * src/SDCCmain.c: Fixed bug 678574: "ds390: ASlink-Error-Stack overlaps
5580         area 'DATA'"
5581
5582 2003-02-01    <johan AT balder>
5583
5584         * src/SDCCval.c (valBitwise): fixed Karl's "2 | (1<<8)"
5585
5586 2003-01-31    <johan AT CP255758-A>
5587
5588         * src/ds390/main.c (_ds390_genAssemblerPreamble): applied Jan Rejlek's >64K startup patch
5589
5590 2003-01-30    <johan AT balder>
5591
5592         * src/SDCCBBlock.c: automatic bug detection
5593         * src/SDCCicode.c: automatic bug detection
5594
5595 2003-01-29  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
5596
5597         * src/SDCCglobl.h:   now --xram-size 0 works
5598         * src/SDCCmain.c:    now --xram-size 0 works
5599
5600 2003-01-29    <johan AT balder>
5601
5602         * src/almosteverything: changed OP_DEFS and OP_USES from macros to functions to catch symbol abuse (a hot topic in the bug list :)
5603
5604 2003-01-29  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
5605
5606         * as/mcs51/aslink.h: Added options --xram-size and --code-size
5607         * as/mcs51/lkdata.c: Added options --xram-size and --code-size
5608         * as/mcs51/lkmain.c: Added options --xram-size and --code-size
5609         * as/mcs51/lkmem.c:  Added options --xram-size and --code-size
5610         * src/SDCCglobl.h:   Added options --xram-size and --code-size
5611         * src/SDCCmain.c:    Added options --xram-size and --code-size
5612
5613 2003-01-28  Bernhard Held <bernhard AT bernhardheld.de>
5614
5615         * src/ds390/gen.c: fix deps by replacing <common.h> with "common.h"
5616         * src/SDCC.lex: rename P_OVERLAY to P_OVERLAY_ for cross-gcc 3.2 MINGW32
5617
5618 2003-01-27    <johan AT balder>
5619
5620         * src/SDCC.y: fixed bug #613764
5621
5622 2003-01-26    <johan AT balder>
5623
5624         * src/SDCClrange.c:  fixed Bernhard's "char * code ptr = &c"
5625         * src/SDCCsymt.h: fixed bug #673374
5626         * src/SDCCglue.c: fixed bug #661910
5627         * src/SDCCast.c: fixed bug #458099 and 673374
5628
5629 2003-01-26  Bernhard Held <bernhard AT bernhardheld.de>
5630
5631         * as/mcs51/strcmpi.c: added, provides Aurelien Jarno's as_strcmpi(); strcmpi() is not ANSI
5632         * as/mcs51/strcmpi.h: added
5633         * as/mcs51/asm.h: remove ugly "#define strcmpi strcmp"
5634         * as/mcs51/aslink.h: remove ugly "#define strcmpi strcmp"
5635         * as/mcs51/asmain.c: strcmpi -> as_strcmpi
5636         * as/mcs51/assym.c: strcmpi -> as_strcmpi
5637         * as/mcs51/lkmem.c: strcmpi -> as_strcmpi
5638         * as/mcs51/lknoice.c: strcmpi -> as_strcmpi
5639         * as/mcs51/lksym.c: strcmpi -> as_strcmpi
5640         * as/mcs51/Makefile.aslink: new module strcmpi
5641         * as/mcs51/Makefile.asx8051: new module strcmpi
5642         * as/mcs51/Makefil.bcc: new module strcmpi
5643         * as/mcs51/Makefile.in: new module strcmpi
5644         * sim/ucsim/s51.src/uc390.cc (get_mem_size): make RAM big enough for tinibios
5645
5646 2003-01-26    <johan AT balder>
5647
5648         * src/SDCCglue.c: reverted back to 1.124
5649         * src/SDCCast.c: reverted back to 1.156
5650         * src/mcs51/gen.c (aopGet): applied Frieder's efficiency patch
5651
5652 2003-01-25    <johan AT balder>
5653
5654         * src/SDCCglue.c: A better fix for bug #661910
5655         * src/SDCCast.c: A better fix for bug #661910
5656         * src/SDCCglue.c (emitRegularMap): That was a little too efficient
5657
5658 2003-01-24  Bernhard Held <bernhard AT bernhardheld.de>
5659
5660         * src/Makefile.in: remove spawn.o
5661         * src/SDCCmain.c: remove spawn.h
5662         * src/SDCCmain.c (printVersionInfo): report MINGW32 instead of UNIX
5663         * src/spawn.c: removed
5664         * src/spawn.h: removed
5665         * support/regression/ports/ds390/spec.mk: link with -r
5666
5667 2003-01-24    <johan AT CP255758-A>
5668
5669         * src/ds390/gen.c (aopOp): fixed bug #667458
5670         * src/SDCCglue.c (emitRegularMap): fixed bug #458099 again
5671         * src/SDCCast.c (createIvalCharPtr): fixed bug #661910
5672         (createIvalCharPtr): an ival doesn't always have a storage class anymore
5673
5674 2003-01-24  Bernhard Held <bernhard AT bernhardheld.de>
5675
5676         * src/mcs51/peeph.def: better assembler identation by Frieder
5677         * src/mcs51/gen.c: better assembler identation by Frieder
5678
5679 2003-01-22  Bernhard Held <bernhard AT bernhardheld.de>
5680
5681         * as/z80/string.h: removed for gcc 3.2
5682         * support/makebin/makebin.c: #include <string.h> for gcc 3.2
5683         * src/pic/pcode.c (get_op_from_instruction): fix concatenation of string literals with __FUNCTION__ for gcc 3.2
5684
5685 2003-01-19  Bernhard Held <bernhard AT bernhardheld.de>
5686
5687         * src/SDCCmain.c (linkEdit): rename mem and map files even in case of failure
5688         * src/SDCCpeeph.c (replaceRule): fix bug #663503
5689         * support/regression/Makefile: separate temp files for ports
5690         * support/regression/generate-cases.py: separate temp files for ports
5691         * src/mcs51/peeph.def: Frieder: removed 237 (obsolete by 236g and 105); added 237 a/b
5692         * src/ds390/peeph.def: Frieder: removed 237 (obsolete by 236g and 105); added 237 a/b
5693
5694 2003-01-19  Bernhard Held <bernhard AT bernhardheld.de>
5695
5696         * moved tinitalk to device/examples/ds390
5697
5698 2003-01-14  Bernhard Held <bernhard AT bernhardheld.de>
5699
5700         * as/mcs51/lkmem.c: rflag is for DS390
5701         * src/SDCCglobl.h: removed out_name and options stackOnData, genericPtr
5702         * src/SDCCmain.c (optionsTable, setDefaultOptions): removed --stack-after-data and --generic
5703                          (linkEdit): move mem- and map-files the same way as ihx-files
5704         * src/z80/main.c (_setDefaultOptions): removed --generic
5705         * src/SDCCmain.c (_processC1Arg, parseCmdLine, main): --c1mode works again
5706         * src/SDCCglue.c (createInterruptVect, glue): --c1mode works again
5707         * src/pic/glue.c (picglue): --c1mode works again
5708         * src/pic16/glue.c (pic16glue): --c1mode works again
5709         * src/asm.c (printCLine): fix #660034
5710
5711 2003-01-13  Bernhard Held <bernhard AT bernhardheld.de>
5712
5713         * src/ds390/peeph.def: fix #123; add 14 rules by Fiorenzo D. Ramaglia <fd.ramaglia AT tin.it>, 1 by Frieder
5714         * src/mcs51/peeph.def: fix #123; add 14 rules by Fiorenzo, 1 by Frieder
5715         * src/mcs51/gen.c (genFunction): emit r0 instead of ar0 by Fiorenzo
5716         * as/mcs51/lkmem (summary): better fix for sp problem
5717         * src/SDCCglue.c (glue): __start_stack - 1, saves 1 byte!
5718         * src/ds390/main.c (_ds390_finaliseOptions, _tininative_finaliseOptions): stack_loc = 0x400008
5719         * support/regression/ports/*/spec.mk: moving testfwk-object to port dir allow parallel execution of regression tests
5720                                               remove --stack-after-data
5721
5722 2003-01-12  Bernhard Held <bernhard AT bernhardheld.de>
5723
5724         * src/SDCCmain.c (main): port->finaliseOptions() moved for z80 linking
5725         * src/SDCCutil.c (join): ugly bug: missing '\0'
5726         * as/mcs51/lkmem.c (summary): sp on address 7 is safe
5727
5728 2003-01-11  Bernhard Held <bernhard AT bernhardheld.de>
5729
5730         * src/SDCCmain.c (assemble, linkEdit): preparations for -o
5731         * src/port.h: typo
5732         * src/pic/main.c (_asmCmd): gpasm supports -o
5733         * src/z80/main.c: more general macros
5734         * device/lib/Makefile.in: remove intermediate files
5735
5736 2003-01-11  Bernhard Held <bernhard AT bernhardheld.de>
5737
5738         * .version: Bumped version number to 2.3.3
5739         * src/SDCCBBlock.c: new option -o
5740         * src/SDCCglobl.h: new option -o
5741         * src/SDCCglue.c: new option -o
5742         * src/SDCCmain.c: new option -o
5743         * src/asm.c: new option -o
5744         * src/ds390/main.c: new option -o
5745         * src/pic/glue.c: new option -o
5746         * src/pic/pcode.c: new option -o
5747         * src/pic/ralloc.c: new option -o
5748         * src/pic16/glue.c: new option -o
5749         * src/pic16/pcode.c: new option -o
5750         * src/pic16/ralloc.c: new option -o
5751         * src/z80/main.c: new option -o
5752         * device/lib/Makefile.in: use -o
5753         * support/regression/ports/ds390/spec.mk: use -o
5754         * support/regression/ports/gbz80/spec.mk: use -o
5755         * support/regression/ports/mcs51/spec.mk: use -o
5756         * support/regression/ports/mcs51-stack-auto/spec.mk: use -o
5757         * support/regression/ports/z80/spec.mk: use -o
5758         * support/regression/ports/ucz80/spec.mk: use -o
5759         * support/regression/ports/xa51/spec.mk: use -o
5760         * support/regression/fwk/lib/timeout.c: fix usage string
5761
5762 2003-01-09  Bernhard Held <bernhard AT bernhardheld.de>
5763         * src/mcs51/gen.c (genPlus): replaced "mov b,acc" by "mov b,a" Fiorenzo D. Ramaglia <fd.ramaglia AT tin.it>
5764
5765 2003-01-07    <johan AT balder>
5766
5767         * src/SDCCast.c (decorateType): fixed bug #600035
5768
5769 2003-01-07  Bernhard Held <bernhard AT bernhardheld.de>
5770         * as/mcs51/lkmem.c: added several l-modifiers to printf to remove warnings
5771         * as/mcs51/lkaomf51.c: #include <ctype.h> to remove warnings
5772         * src/pic/main.c (_hasNativeMulFor): outcommented unused variables to remove warnings
5773         * src/pic/pcode.c: outcommented unused variable to remove warnings
5774         * src/pic/ralloc.c: outcommented unused variable to remove warnings
5775
5776 2003-01-06    <karl AT turbobit.com>
5777         * sim/ucsim/cmd.src/command.cc: fixed so "break xram r 0x7654" works again in
5778    regression tests.
5779
5780 2003-01-06    <johan AT balder>
5781
5782         * src/SDCCicode.c: fixed array add
5783
5784 2002-01-05  Bernhard Held <bernhard AT bernhardheld.de>
5785         * src/SDCCmacro.c: MAX_STRING_LENGTH increased to 2048; was too small for regression tests
5786         * support/regression/ports/host/support.c: #include <stdarg.h> for gcc 3.2
5787
5788 2003-01-04    <johan AT balder>
5789
5790         * src/SDCCval.c (getNelements): fixed the initialized array of structures
5791
5792 2002-12-29  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
5793         * as/mcs51/Makefile.bcc: fixed typo lkomf51.o -> lkaomf51.o
5794
5795 2002-12-28  Bernhard Held <bernhard AT bernhardheld.de>
5796         * src/mcs51/peeph.def: added rules 234 and 235 from Frieder Ferlemann <frieder.ferlemann AT web.de>
5797         * support/regression/tests/bug-524697.c: fit mem usage into 8032
5798
5799 2002-12-28  Bernhard Held <bernhard AT bernhardheld.de>
5800         * src/mcs51/gen.c (aopGetUsesAcc): inserted missing "return FALSE"
5801
5802 2002-12-27  Bernhard Held <bernhard AT bernhardheld.de>
5803         * as/mcs51/Makefile.in: fixed typo lkomf51.o -> lkaomf51.o
5804
5805 2002-12-26  Bernhard Held <bernhard AT bernhardheld.de>
5806         * src/mcs51/main.c: removed {bindir}{sep} from aslink
5807
5808 2002-12-10  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
5809
5810     * in \sdcc\as\mcs51\ changed these files in order to create an
5811     aomf51 file: aslink.h, lkdta.c, lklex.c, lklibr.c, lklist.c,
5812     lkmain.c.  Also added: lkmem.c and lkaomf51.c.  Changed the
5813     following files to include the previous two files: aslink.dsp,
5814     Makefile.aslink, Makefile.bcc, and Makefile.in.
5815
5816     * Changed \sdcc\src\SDCCmain.c so it creates files with extension
5817     .adb instead of .cdb
5818
5819 2002-11-09  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
5820
5821         * \sdcc\as\mcs51\lklist.c: Now reports memory usage using the
5822         value from option --iram-size.
5823
5824 2002-09-20  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
5825
5826         * \sdcc\as\mcs51\lklist.c: added boundary check before using
5827         dram[] array.
5828
5829 2002-09-18    <wiml AT hhhh.org>
5830
5831         * SDCClrange.h: exposed setFromRange() and setToRange()
5832         * mcs51/ralloc.c: fixed over-eager packRegsForSupport() and
5833           packRegsForAccUse() (bug 542397)
5834         * mcs51/gen.c: MOVA() is now a function to avoid calling aopGet()
5835           multiple times and emitting the fetch operations more than once
5836           added aopGetUsesAcc() function to allow binary operators to
5837           fetch their operands in the correct order; made genMinus() emit
5838           compact code for X = LITERAL - Y
5839
5840 2002-09-00  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
5841         * \sdcc\as\mcs51\lklist.c: Fixed incorrect number of parameters to
5842         sprintf() in line 1267.
5843
5844 2002-09-08  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
5845         * \sdcc\src\SDCCglue.c: Generate areas REG_BANK_[0-3] only for 8051
5846         like ports.
5847
5848 2002-09-04  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
5849         Changes to aslink (All the changes are marked with 'JCF'):
5850
5851         * \sdcc\as\mcs51\aslink.h: External definition of sflag and
5852         summary().
5853
5854         * \sdcc\as\mcs51\lkarea.c: Computes the size of area BSEG_BYTES from
5855         area BSEG.  Also moves, if possible, the DATA area down into the internal
5856         ram so more space is available.
5857
5858         * \sdcc\as\mcs51\lkdata.c: Definition of memory summary output flag
5859         sflag.
5860
5861         * \sdcc\as\mcs51\lklist.c: For the BSEG area report the size in bits,
5862         not bytes.  Function summary() which creates a memory usage summary
5863         file with extension .mem.  Reports of overlaping stack and small stack
5864         size.  If the space for the stack is less than 16 bytes aslink trows a
5865         warning.
5866
5867         * \sdcc\as\mcs51\lkmain.c: Creation of some of the default areas for
5868         the 8051.  Option 'y' for memory summary output file.
5869
5870         Changes to sdcc (All the changes are marked with 'JCF'):
5871
5872         * \sdcc\src\SDCCglobl.h: External definition of RegBankUsed[4].
5873
5874         * \sdcc\src\SDCCglue.c:  If a register bank is used, creates an
5875         overlaying area for it (uses RegBankUsed[4]).
5876
5877         * \sdcc\src\SDCCmain.c: Definition RegBankUsed[4]; marks register
5878         bank zero as used by default.  By default aslink locates the stack
5879         (equivalent to --stack-after-data).  Pass option 'y' to aslink for
5880         the creation of the .mem file.  Delegates the allocation of data area
5881         to aslink (it is not longer 0x30 by default).  If --stack-loc passes
5882         the begining of the stack area to aslink.
5883
5884         * \sdcc\src\SDCCmem.c:  If a register bank is used, marks it so
5885         glue() in SDCCglue.c creates an area for it.
5886
5887 2002-09-03  Borut Razem <borut.razem AT siol.net>
5888         * sdcc/src/SDCCglue.c, sdcc/src/SDCCglue.h, sdcc/src/SDCCmain.c,
5889         sdcc/src/pic/glue.c:
5890         introduced atexit() handler for teporay files removal in case of
5891         errors, assertions, ...
5892
5893 2002-08-29  Borut Razem <borut.razem AT siol.net>
5894         * sdcc/support/cpp2/auto-host_vc_in.h:
5895         re-definition of O_BINARY and other O_XXX as _O_BINARY and _O_XXX, so the problem
5896         with the returned value from read() in sdcc/support/cpp2/cppfiles.c is solved for MSC.
5897         Maybe there is a similar problem with BORLANDC? It should be checked!
5898
5899         * sdcc/src/ds390/ralloc.c, sdcc/src/mcs51/ralloc.c, sdcc/src/z80/ralloc.c:
5900         corrected improper use of assert: the assignment to clr variable was done inside the assert.
5901         In case that NDEBUG was defined, the assert macro was substituted with no-op, so the assignment
5902         was not executed, and the compiler (cl) launched a warning:
5903         ralloc.c(1442) : warning C4700: local variable 'clr' used without having been initialized
5904
5905 2002-08-28  Bernhard Held <bernhard AT bernhardheld.de>
5906         * src/SDCCglue.c (printIvalArray): iterative calculation of array length
5907
5908 2002-08-28  Jesus Calvino-Fraga and Borut Razem <borut.razem AT siol.net>
5909         * sdcc/sdcc.dsw: added sdcpp, sdcppa, yacc, conf projects
5910
5911         * sdcc/src/src.dsp, sdcc/src/avr/avr.dsp, sdcc/src/ds390/ds390.dsp,
5912           sdcc/src/mcs51/mcs51.dsp, sdcc/src/pic/pic.dsp, sdcc/src/z80/z80.dsp,
5913           sdcc/src/xa51/xa51.dsp, sdcc/src/avr/avra.dsp,
5914           sdcc/src/ds390/ds390a.dsp, sdcc/src/mcs51/mcs51a.dsp,
5915           sdcc/src/pic/pica.dsp, sdcc/src/z80/z80a.dsp,
5916           sdcc/src/xa51/xa51a.dsp, sdcc/as/as_z80.dsp,
5917           sdcc/as/aslink.dsp, sdcc/as/asx8051.dsp, sdcc/packihx/packihx.dsp:
5918         - added Release configuration in VS projects
5919         - review of compiler an linker options
5920         - VC .exe files are generated in bin_vc directory, not to interfere
5921           with binaries generated from other projects (cygwin, mingw, bcc ...)
5922
5923         * sdcc/src/yacc.dsp: added
5924
5925         * sdcc/config.dsp, sdcc/configure_vc.awk, sdcc/sdcc_vc_in.h:
5926         added - genarate sdcc_vc.h using sdcc_vc_in.h as template
5927         and insert the version number definitions from .version
5928
5929         * sdcc/support/cpp2/sdcpp.dsp: added - VC project for sdcpp
5930
5931         * sdcc/support/cpp2/sdcppa.dsp, sdcc/support/cpp2/auto-host_vc_in.h:
5932         added - genarate auto-host.h using auto-host_vc_in.h as template
5933
5934         * sdcc/sdcc_vc.h,
5935         removed from CVS, generated automatically
5936
5937 2002-08-25  Bernhard Held <bernhard AT bernhardheld.de>
5938         * support/scripts/inc2h.pl: use gputils or gpasm (from Nathan Hurst)
5939
5940 2002-08-11  Borut Razem <borut.razem AT siol.net>
5941         * support/Util/NewAlloc.c: removed unneeded #include "sdccconf.h" (suggested by Jesus Calvino-Fraga)
5942
5943 2002-08-10  Borut Razem <borut.razem AT siol.net>
5944         * src/SDCCmain.c (main):
5945         file preOutName was unlinked before closed. This seems to be OK on UNIX and cygwin
5946         platforms, but it doesn't work with Visual Studio: the opened file can not be removed.
5947         The consequence was that some temporary files were not removed.
5948
5949         * src/SDCCglue.c:
5950         unification of code in functions tempfilename() and tempfile():
5951         function tempnam() is defined in Visual Studio 6.0 and .NET
5952
5953         * sdcc/sdcc.dsw: removed project sdcpp, added project xa51a
5954
5955         * sdcc/src/src.dsp, sdcc/src/avr/avr.dsp, sdcc/src/ds390/ds390.dsp,
5956           sdcc/src/mcs51/mcs51.dsp, sdcc/src/pic/pic.dsp, sdcc/src/z80/z80.dsp:
5957         - removed compiler command line option /WX: Treats all warnings as errors
5958         - update a list of source files, included into the project
5959
5960         * sdcc/src/avr/avra.dsp, sdcc/src/ds390/ds390a.dsp, sdcc/src/mcs51/mcs51a.dsp,
5961           sdcc/src/pic/pica.dsp, sdcc/src/z80/z80a.dsp:
5962         changed project type to Generic Project so that can be correcly converted to VS.NET project
5963
5964         * sdcc/as/mcs51/asm.h: definition of PATH_MAX for MSC
5965
5966         * sdcc/src/SDCCast.c: solved MSC error in function decorateType()
5967
5968         * sdcc/src/SDCC.y: added missing ending ';' to rules to get rid of bison warnings
5969
5970         * dcc/src/ds390/ralloc.c, sdcc/src/mcs51/ralloc.c:
5971         added return 0 statements after assert() to make compiler happy
5972
5973         * sdcc/src/xa51/peeph.rul, sdcc/src/xa51/peeph.def, sdcc/src/z80/ralloc.c:
5974         added newline in the def file to keep MSC compiler satisfied
5975
5976         * sdcc/src/z80/gen.c:
5977         - function strcasecmp() is not defined in MSC (and probably also in BORLANDC),
5978           so it is replaced with STRCASECMP, which is defined as stricmp in case of MSC and BORLANDC
5979         - solved MSC error in function aopDump()
5980
5981         * sdcc_vc.h: define PREFIX as "\\sdcc"
5982
5983 2002-07-18  Bernhard Held <bernhard AT bernhardheld.de>
5984         * src/SDCCast.c (decorateType): fixed access to array of structures http://sourceforge.net/mailarchive/forum.php?thread_id=902690&forum_id=4107
5985
5986 2002-06-22  Scott Dattalo <scott AT dattalo.com>
5987         * src/pic/*: Numerous bug fixes. Flow analysis has been enhanced.
5988         - Rewrote the register banking algorithm.
5989         - Added pCode live-range analysis to registers (for now, only non-used and
5990         singly-used registers optimized away)
5991
5992         * src/pic/pcoderegs.[ch]: Added new files for pCode live-range analysis
5993
5994         * 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.
5995
5996 2002-05-10  Scott Dattalo <scott AT dattalo.com>
5997         * src/pic/*: Added support for multiplication. Fixed many,many bugs.
5998
5999 2002-04-22  Michael Hope  <michaelh AT vroom>
6000
6001         * device/lib/z80/printf.c: Changed emitter to volatile to work around a pcall bug.
6002
6003         * configure.in (DD_COPT): Added include support required for gbdk.
6004
6005         * .version: Bumped version number just to increase it.
6006
6007         * src/SDCCmain.c: Added -nostdinc to the default options.
6008
6009 2002-04-15  Michael Hope  <michaelh AT vroom>
6010
6011         * device/lib/z80/printf.c (sprintf): Added.
6012
6013         * src/z80/ralloc.c (packRegisters): Disabled pack HL use for GB as it's broken.
6014
6015         * src/z80/peeph.def: Added transpose redundent load rule.
6016
6017         * src/z80/main.c: Added force callee saves for jaune.
6018
6019         * src/port.h: Removed the i186 and tlcs-900h ports as they weren't being being developed.
6020
6021         * src/SDCCmain.c: Pulled the options definition out so that you can add port specific options without changing the main file.
6022
6023 2002-03-28  Johan Knol  <johan AT balder>
6024
6025         * src/SDCCval.c: fixed bug #532436
6026
6027 2002-03-14  Scott Dattalo <scott AT dattalo.com>
6028         * /src/port.h:
6029         Added "char *Processor" field to the port structure.
6030
6031         * /src/SDCCmain.c:
6032         Added -p option. Allows port dependent processor to be specified.
6033
6034         * all ports:
6035         Initialized the new field char *Processor field to NULL in all ports
6036
6037         * /src/pic/*:
6038         Compiler generated registers for interrupt context saving
6039         were not getting allocated.
6040
6041 2002-03-16  Sandeep Dutta  <sandeep AT ddi.com>
6042
6043         * /src/SDCCast.c:
6044         Fixed left shift. Will promote the left side of a left shift
6045         if a) left shifting more than size of operand or b) when assigned
6046         to something size > size of left side
6047
6048 2002-03-14  Scott Dattalo <scott AT dattalo.com>
6049         * src/pic/*
6050         tons of changes. Register allocation has been
6051         rewritten. Added customization for the various PICs. Flow
6052         analysis is restructured. ...
6053
6054         * src/pic/device.h:
6055         Added
6056
6057         * src/pic/device.c:
6058         Added. device.c is a PIC port hack to accomodate variations
6059         in PIC devices.
6060
6061 2002-03-13  Michael Hope  <michaelh AT vroom>
6062
6063         * src/z80/gen.c (genGenPointerGet): Fixed a bug where a pointer in HL is dereferenced into HL but HL is not spilled.  Yeah.
6064
6065 2002-03-04  johanknol  <johanknol AT manik>
6066
6067         * /src/SDCCval.c: fixed
6068
6069         const unsigned char arr[][2] = { { 0, 1 } };
6070         t18.c:1: error: Initializer element is not constant
6071
6072 2002-03-04  bela  <bela AT manik>
6073
6074         * /device/include/mcs51reg.h:
6075         ds89c420 register definition update
6076
6077 2002-03-03    <johan AT FRIJA>
6078
6079         * support/Util/SDCCerr.c: did something, but don't no why anymore
6080
6081         * support/regression/tests/bug-524691.c: made it a little less shy
6082
6083         * src/SDCCast.c (decorateType): fixed bug #524697
6084
6085         * src/SDCCast.c: made some lineno improvements
6086
6087         * src/SDCCval.c (getNelements): changed warning to error
6088
6089         * src/SDCCglue.c (printIvalArray): changed warning to error
6090
6091         * src/SDCCicode.c: fixed a warning for mingw
6092
6093         * src/SDCCast.c (decorateType): fixed the << promotion for ops
6094
6095         * src/SDCCicode.c (geniCodeDivision): divide is shift only for unsigned (bug #524685)
6096
6097 2002-03-02  Sandeep Dutta  <sandeep AT ddi.com>
6098
6099         * src/ds390/peeph.def:
6100         Added some more peephole rules
6101
6102         * src/ds390/gen.c: Various fixes & enhancements
6103
6104         * src/SDCClrange.c, src/SDCClrange.h:
6105         functions "alldefsoutofrange" and "notusedinblock" moved to SDCClrange.c
6106
6107         * src/ds390/ralloc.c:
6108         various fixes & enhancements (ds390) specific
6109
6110         * src/avr/ralloc.c, src/mcs51/ralloc.c, src/pic/ralloc.c, src/xa51/ralloc.c, src/z80/ralloc.c:
6111         Functions "allDefsOutOfRange" & "notUsedinBlock" moved to SDCClrange.c
6112         from rallocs.
6113
6114         * sdcc/src/SDCCcse.c: Better fix for bug # 514308
6115
6116 2002-03-02    <johan AT FRIJA>
6117
6118         * src/SDCCast.c (decorateType): fixed bug #524708
6119
6120         * src/SDCCval.c (floatFromVal): fixed the literal void (whatever that may be)
6121
6122         * src/SDCCicode.c (geniCodePtrPtrSubtract): fixed bug #524691
6123
6124 2002-03-01  Michael Hope  <michaelh AT vroom>
6125
6126         * src/SDCCsymt.c (initCSupport): Removed managling of support function names.
6127
6128         * src/z80/ralloc.c (packRegsForIYUse): Fixed fp bug where four byte operands were packed into IY.
6129
6130 2002-03-01    <johan AT FRIJA>
6131
6132         * src/SDCCglue.c (printIvalPtr): fixed bug #524211
6133
6134         * src/SDCCast.c (decorateType): fixed bug #524209
6135
6136         * src/SDCCval.c (valNot): fixed bug #524195
6137
6138 2002-02-26    <johan AT balder>
6139
6140         * src/xa51/gen.c: fixed a warning
6141
6142         * src/SDCCglue.c (printIvalFuncPtr): fixed bug #522534
6143
6144         * src/SDCCast.c (decorateType): fixed bug #522534
6145
6146 2002-02-23    <johan AT balder>
6147
6148         * src/SDCCdflow.c (computeDataFlow): fixed bug #460088
6149
6150 2002-02-22    <johan AT balder>
6151
6152         * src/SDCCast.c: fixed bug #514865
6153
6154         * src/SDCCy.c ("SDCC.y"): fixed bug #516625
6155
6156 2002-02-21  Sandeep Dutta  <sandeep AT ddi.com>
6157
6158         * sdcc/src/SDCCloop.c:
6159         Previous fix was not good. basic blocks that have "break" or "return" are
6160         not really partof a loop , but live ranges used in these blocks should
6161         be live thru the entire loop, so set partOfLoop but don't add them to
6162         loop region
6163
6164 2002-02-21    <johan AT FRIJA>
6165
6166         * src/SDCCcse.c: fixed bug #514308
6167
6168 2002-02-20  Sandeep Dutta  <sandeep AT ddi.com>
6169
6170         * src/SDCCloop.c:
6171         Fixed BUG #519583. If a conditional block ended in a return/break
6172         statement inside a loop, it was not being considered part of the loop.
6173
6174         * src/SDCCcflow.c: Removed fix (Fixed in SDCCloop.c)
6175
6176 2002-02-10  Karl Bongers <karl AT turbobit.com>
6177
6178         * debugger/*:
6179         Fixed up SDCDB debugger somewhat.  Updated debugger/README
6180         with lots of comments and notes.
6181
6182         * device/examples/test2.c:
6183         Fix bug, "red" variable not being initialized(compiler complained).
6184
6185         * device/examples/Makefile, examples/test3.c:
6186         Add Makefile in device/examples folder, compiles test3.c
6187         for use as a multiple module SDCDB test case.
6188
6189         * sim/ucsim/cmd.src/cmdset.cc:
6190         Took out debug printfs in ucsim "next" command.
6191
6192         * sim/ucsim/xa.src:
6193         Karl and Johan start ucsim XA support.  Most dissassembly working,
6194         about 75% emulation done(plenty of work remaining).
6195
6196         * sim/ucsim/z80.src:
6197         Add Z80 support to ucsim, add test-ucz80 regression test,
6198         notice ucsim/z80 emulation fails on examples/test3.c/itoa code.
6199         Notice z80 compiler fails on examples/test3.c/crc code.
6200
6201 2002-01-30  Sandeep Dutta  <sandeep AT ddi.com>
6202
6203         * src/mcs51/gen.c, src/mcs51/main.c, src/mcs51/ralloc.c:
6204         Added support for --parms-in-bank1
6205
6206         * src/ds390/peeph.def:
6207         added a few more peephole optimzations
6208
6209         * src/ds390/main.c:
6210         1) added __builtin_inp & __builtin_outp used to read in data of given length
6211            from a memory mapped port
6212         2) added __builtin_memcmp
6213         3) added __builtin_swapw swap bytes of a short
6214
6215         * src/ds390/gen.c, src/ds390/gen.h, src/ds390/ralloc.c:
6216         1) handle multiple send & receives from register bank1
6217         2) ralloc can now allocate DPTR1 to some liveRanges
6218
6219         * src/SDCCsymt.c, src/SDCCsymt.h:
6220         changes to handle multiple sends & receives
6221
6222         * src/SDCCptropt.h:
6223         added some pointer arithmetic optimization
6224
6225         * src/SDCCptropt.c:
6226         added some pointer arithmetic optimizations but not stable yet so not
6227         called from anywhere (will get this working shortly)
6228
6229         * src/SDCCopt.c: fixed for multiple sends & receives
6230
6231         * src/SDCCmain.c:
6232         1) added options --parms-in-bank1 (ds390/mcs51) & --protect-sp-update
6233         2) preprocessing done AFTER port->finalizeoptions . This allows ports to
6234            set preprocessor defines (depending on options)
6235
6236         * src/SDCCicode.c, src/SDCCicode.h:
6237         changes made to handle multiple sends & receives
6238
6239         * src/SDCCglobl.h:
6240         Added options --protect-sp-update (ds390) and --parms-in-bank1 (ds390/mcs51)
6241
6242         * src/SDCCcse.c, src/SDCCcse.h:
6243         added function findbackward def (to be used in upcoming optimization)
6244
6245         * src/SDCCcflow.c, src/SDCCcflow.h:
6246         added function returnAtEnd - to determine if a basic block terminates with
6247         a RETURN iCode
6248
6249         * src/SDCCast.c, src/SDCCast.h:
6250         added option parms-in-bank1
6251
6252         * device/lib/_divsint.c, device/lib/_divslong.c, device/lib/_divuint.c
6253         * device/lib/_divulong.c, device/lib/_modsint.c, device/lib/_modslong.c
6254         * device/lib/_modulong.c, device/lib/_mulint.c, device/lib/_mullong.c:
6255         adjusted for --parms-in-bank1 option
6256
6257         * device/include/string.h:
6258         donot redefine "reentrant" keyword
6259
6260         * device/include/ds80c390.h: Added some more SFRs
6261
6262 2002-01-28  Bernhard Held  <bernhard AT bernhardheld.de>
6263
6264         * sim/ucsim: Merged branch ucsim-034-pre3 to main trunk; new version 0.4
6265
6266 2002-01-26  Bernhard Held  <bernhard AT bernhardheld.de>
6267
6268         * src/SDCCast.c (funcOfType): fix usage of double --float-reent
6269
6270 2002-01-22  Bernhard Held  <bernhard AT bernhardheld.de>
6271
6272         * support/regression/fwk/lib/testfwk.c (main): Removed workaround for bug #505387
6273
6274 2002-01-18  Paul Stoffregen  <paul AT pjrc.com>
6275
6276         * Added --xram-movc option
6277
6278 2002-01-13  Bernhard Held  <bernhard AT bernhardheld.de>
6279
6280         * support/regression/Makefile: don't include test-mcs51-stack-auto in target all
6281
6282 2002-01-11  Johan Knol
6283
6284         * Added math lib of Jesus Calvino-Fraga
6285
6286 2002-01-08  Bernhard Held  <bernhard AT bernhardheld.de>
6287
6288         * src/SDCCmain.c (processFile): fix processing of ../../src.c
6289         * support/regression/Makefile: new target test-mcs51-stack-auto
6290         * support/regression/ports/mcs51-stack-auto/spec.mk: added
6291
6292 2002-01-04  Bernhard Held  <bernhard AT bernhardheld.de>
6293
6294         * src/SDCCglue.h: printIvalCharPtr(), not printIvalChar()
6295
6296 2002-01-04  Bernhard Held  <bernhard AT bernhardheld.de>
6297
6298         * support/regression/ports/mcs51/support.c: correct setup of timer / UART
6299
6300 2002-01-03  Bernhard Held  <bernhard AT bernhardheld.de>
6301
6302         * src/SDCCsymt.c (processFuncArgs): fix #498307 by Johan
6303
6304         * src/SDCCglue.h: add definition for printIvalChar()
6305
6306 2002-01-02  Bernhard Held  <bernhard AT bernhardheld.de>
6307
6308         * src/SDCCast.c: fix #498138 by Johan
6309
6310         * src/SDCCglue.c: fix #498138 by Johan
6311
6312 2002-01-02  Bernhard Held  <bernhard AT bernhardheld.de>
6313
6314         * support/regression/Makefile: fix clean
6315
6316         * support/regression/ports/ds390/support.c: fix transmission of last character
6317
6318 2001-12-29  Sandeep Dutta  <sandeep AT ddi.com>
6319
6320         * /sdcc/src/ds390/gen.c:
6321         a) improved computing address of stack variable
6322         b) took out some #if 0 code
6323         c) improved parmBytes adjustment
6324         d) improved genPlusIncr & genMinusIncr
6325         e) genCmp could generate bad code (when left assigned to DPTR)
6326         f) Fixed bug in hasInc
6327
6328         * /sdcc/src/ds390/ralloc.c:
6329         a) packRegsForSupport could mess up live information (Fixed)
6330         b) packRegsDPTRuse could be incorrect for left & right shift
6331
6332         * /sdcc/src/mcs51/ralloc.c:
6333         packRegsForSupport could mess up the live information (Fixed)
6334
6335         * /sdcc/src/mcs51/gen.c: Fixed a bug in hasInc
6336
6337         * /sdcc/src/SDCCast.c:
6338         can reverse a loop even if function call is present as long
6339         as the loop control variable is local & is not passed as parameter
6340
6341 2001-12-24  Sandeep Dutta  <sandeep AT ddi.com>
6342
6343         * /sdcc/ChangeLog: *** empty log message ***
6344
6345         * /sdcc/src/ds390/gen.c, /sdcc/src/ds390/main.c:
6346         More builtin function additions for TININative
6347
6348         * /sdcc/src/ds390/ralloc.c:
6349         Had broken the regression testsuite
6350
6351         * /sdcc/src/SDCCast.c: Fixed a bug in dumptree
6352
6353         * /sdcc/src/SDCCsymt.c, /sdcc/src/SDCCsymt.h:
6354         Added funcattr hasStackParms will be set for reentrant functions when there
6355         are paramteres on the stack, this helps in minimizing frame pointer generation
6356         typeFromStr can handle function pointers now
6357
6358         * /sdcc/doc/builtins.txt, /sdcc/doc/TININative.txt:
6359         *** empty log message ***
6360
6361 2001-12-24  Sandeep Dutta  <sandeep AT ddi.com>
6362
6363         * /src/ds390/gen.c, /src/ds390/main.c:
6364         More builtin function additions for TININative
6365
6366         * /src/ds390/ralloc.c:
6367         Had broken the regression testsuite
6368
6369         * /src/SDCCast.c: Fixed a bug in dumptree
6370
6371         * /src/SDCCsymt.c, /src/SDCCsymt.h:
6372         Added funcattr hasStackParms will be set for reentrant functions when there
6373         are paramteres on the stack, this helps in minimizing frame pointer generation
6374         typeFromStr can handle function pointers now
6375
6376         * /doc/builtins.txt, /doc/TININative.txt:
6377         *** empty log message ***
6378
6379
6380 2001-12-24  Sandeep Dutta  <sandeep AT ddi.com>
6381
6382         * /src/ds390/gen.c, /src/ds390/main.c, /src/ds390/peeph.def, /src/ds390/ralloc.c:
6383         ALPHA version for -mTININative
6384
6385         * /src/izt/i186.c, /src/izt/tlcs900h.c, /src/mcs51/main.c, /src/pic/main.c, /src/z80/main.c, /src/avr/main.c:
6386         updated to reflect changes in the port structure
6387
6388         * /src/port.h:
6389         added function do_assemble (similar to do_link) if non-null this function
6390         will be called to do assembly (-mTININative) requires a multi command
6391         assembly
6392         added function genAssemblerEnd will be called to generate assembler Epilogue
6393
6394         * /src/SDCCsymt.c:
6395         added _JavaNative to debug info printing
6396
6397         * /src/SDCCmain.c: added option --tini-libid
6398         added port->do_assemble function (-mTININative) has a multi command assemble
6399
6400         * /src/SDCCglue.c: Disabled "constExpr" check
6401         added port->genAssemblerEnd function
6402
6403         * /src/SDCCglobl.h: Added option --tini-libid value
6404
6405         * /src/SDCCast.h:
6406         tookout optimizeCompare from the header (has no external references)
6407
6408         * /src/SDCCast.c: made one more function "static"
6409
6410 2001-12-23  Michael Hope  <michaelh AT juju.net.nz>
6411
6412         * src/z80/mappings.i: Added z80asm support.
6413
6414         * src/z80/main.c: Added z80asm support on --asm=z80asm
6415
6416         * src/z80/gen.c: Fixed asm portability issues.
6417
6418         * src/asm.c (tvsprintf): Removed old code, added 'N' for function name.  For extern support.
6419
6420         * src/SDCCglue.c (printExterns): Added global/extern split.
6421
6422 2001-12-17  Bernhard Held  <bernhard AT bernhardheld.de>
6423
6424         * support/regression/Makefile: added test for mcs51 model large
6425
6426         * support/regression/ports/mcs51-large/spec.mk: added test for mcs51 model large
6427
6428         * support/regression/ports/gbz80/spec.mk: added -mgbz80
6429
6430 2001-12-05  Michael Hope  <michaelh AT juju.net.nz>
6431
6432         * src/diff.1 (Index): Many, many optmisiations.  Dhrystone up to 201.
6433
6434 1904-01-06  Michael Hope  <michaelh AT juju.net.nz>
6435
6436         * src/z80/ralloc.c (packRegsForIYUse): Fixed the case where an operand is in direct space.
6437
6438         * src/z80/gen.c (makeFreePairId): Optimised IY load by using a spare pair.
6439
6440 2001-12-02  Bernhard Held  <bernhard AT bernhardheld.de>
6441
6442         * src/mcs51/gen.c (genFunction): avoid excess "inc sp"
6443
6444         * support/regression/tests/simplefloat.c: Port to mcs51.
6445
6446 2001-11-25  Michael Hope  <michaelh AT juju.net.nz>
6447         * support/regression/tests/bug-485362.c: Added.
6448
6449         * support/regression/tests/simplefloat.c (testDivNearOne): Added.
6450
6451         * src/z80/gen.c (aopOp): Fixed case where left and result are in the same spill loc and they have different sizes.
6452
6453         * src/z80/peeph.def: Added rules for optimising two byte compares on the same thing, and to optimise two ptr assign.
6454
6455         * src/z80/gen.c (aopDump): Added a dump function.
6456
6457 2001-11-25  Bernhard Held  <bernhard AT bernhardheld.de>
6458         * sim/ucsim/s51.src/glob.cc: DS390 SFRs and bits added.
6459
6460         * sim/ucsim/s51.src/port.cc: Port 4 and 5 added.
6461
6462         * sim/ucsim/s51.src/regs51.h: DS390 SFRs added.
6463
6464         * sim/ucsim/s51.src/uc390.cc: Some details improved, CKRDY works for tinibios.
6465
6466         * sim/ucsim/s51.src/uc390cl.h: Work in progress.
6467
6468         * sim/ucsim/sim.src/uccl.h: 6 ports for DS390.
6469
6470         * support/regression/fwk/lib/testfwk.c: Run with tinibios.
6471
6472         * support/regression/ports/mcs51/spec.mk: Fine tuninig.
6473
6474         * support/regression/ports/ds390/support.c: Use tinibios.
6475
6476         * support/regression/ports/ds390/spec.mk: Fine tuning, use tinibios.
6477
6478 2001-11-23  Michael Hope  <michaelh AT juju.net.nz>support/regression/tests/bug-460010.c
6479
6480         * src/z80/ralloc.c (packRegsForHLUse3): Changed to not pack into HL if anything is in direct space.
6481         (packRegsForHLUse3): Added packing support for send, cast, and return value from a call.
6482
6483         * src/z80/peeph.def: Added rules for optimising pushes of part of a pair.
6484
6485         * src/z80/gen.c (emitCall): Changed the stack fixup to not use HL.
6486
6487 2001-11-18  Michael Hope  <michaelh AT juju.net.nz>
6488
6489         * src/z80/gen.c (genCmp): Fixed compare on unsigned.
6490
6491         * src/z80/ralloc.c (packRegsForHLUse3): Created and optimised.
6492         (packRegsForIYUse): Created and optimised.
6493
6494 2001-11-07  Michael Hope  <michaelh AT juju.net.nz>
6495
6496         * support/regression/tests/float.c (testFloatAdd): Fixed up warning.
6497 2001-11-18  Bernhard Held  <bernhard AT bernhardheld.de>
6498
6499         * sdcc/support/regression/tests/bug-460010.c: fix seg violation on host
6500
6501         * sdcc/support/regression/tests/muldiv.c: fix output on mcs51
6502
6503         * sdcc/support/regression/tests/stacks.c: fix DSEG overflow on mcs51
6504
6505 2001-11-07  Bernhard Held  <bernhard AT bernhardheld.de>
6506
6507         * sdcc/sim/device/lib/_gptrget.c: mem region 5 (idata) added
6508
6509         * sdcc/sim/device/lib/_gptrput.c: mem region 5 (idata) added
6510
6511 2001-11-07  Bernhard Held  <bernhard AT bernhardheld.de>
6512
6513         * sdcc/sim/ucsim/globals.cc: New: IXRAM.
6514
6515         * sdcc/sim/ucsim/stypes.h: New: IXRAM.
6516
6517         * sdcc/sim/ucsim/s51.src/uc390.cc: New: IXRAM.
6518
6519 2001-11-07  Michael Hope  <michaelh AT juju.net.nz>
6520
6521         * src/z80/ralloc.c (packRegsForHLUse): Banned IFXs from being packed into HL.
6522         (packRegsForHLUse): Added rule to pack address of/pointer get for itemps into HL for the Z80.
6523         (packRegsForAccUse2): Added rule to pack hbit IFXs into A.
6524
6525         * src/z80/main.c (_setDefaultOptions): Made float code re-entrant by default.
6526
6527         * src/z80/gen.c (aopGetLitWordLong): Added word support for floats.
6528         (genNotFloat): Added.
6529         (genUminusFloat): Added.
6530
6531         * device/lib/z80/Makefile: Added floating pt stubs.
6532
6533         * device/lib/Makefile.in (Z80SOURCES): Added floating pt support.
6534
6535         * src/z80/gen.c (genIpush): Fixed up a push of one byte when left is in a pair.
6536
6537         * device/lib/_fsadd.c (__fsadd): Fixed up return where the numbers are hugely different.
6538
6539 2001-11-07  Bernhard Held  <bernhard AT bernhardheld.de>
6540
6541         * sdcc/sim/ucsim/s51.src/glob.cc: Minor fix.
6542
6543         * sdcc/sim/ucsim/s51.src/regs51.h: Minor fix.
6544
6545         * sdcc/support/regression/Makefile: Add port ds390.
6546
6547         * sdcc/support/regression/ports/mcs51/spec.mk: Minor change.
6548
6549         * sdcc/support/regression/ports/z80/spec.mk: Minor change.
6550
6551         * sdcc/support/regression/ports/ds390/spec.mk: Added.
6552
6553         * sdcc/support/regression/ports/ds390/support.c: Added.
6554
6555         * sdcc/support/regression/ports/ds390/uCsim.cmd: Added.
6556
6557         * sdcc/support/regression/ports/mcs51/timeout.c: Cut.
6558
6559         * sdcc/support/regression/fwk/lib/timeout.c: Paste.
6560
6561 2001-11-04  Michael Hope  <michaelh AT juju.net.nz>
6562
6563         * device/include/malloc.h: Added z80 and gbz80 support.
6564
6565         * device/lib/gbz80/heap.s: Added.
6566
6567         * device/lib/z80/heap.s: Added.
6568
6569         * device/lib/malloc.c: Added z80 and gbz80 support.
6570
6571         * support/regression/tests/malloc.c (testMalloc): Added.
6572
6573         * src/SDCCmain.c (parseCmdLine): Added support for -Wp.
6574
6575         * support/regression/tests/bug-478094.c: Added.
6576
6577         * src/z80/gen.c (commitPair): Fixed silly gbz80/z80 commit to static bug.
6578
6579 2001-11-04  Bernhard Held  <bernhard AT bernhardheld.de>
6580
6581         * sdcc/sim/ucsim/s51.src/uc390cl.h: Improvement for ds390 to run regression tests
6582
6583         * sdcc/sim/ucsim/s51.src/uc390.h: Improvement for ds390 to run regression tests
6584
6585         * sdcc/sim/ucsim/s51.src/regs51.h: Improvement for ds390 to run regression tests
6586
6587         * sdcc/sim/ucsim/s51.src/glob.cc: Improvement for ds390 to run regression tests
6588
6589         * sdcc/support/regression/tests/bug-460010.c: Small change for ds390
6590
6591 2001-11-04  Michael Hope  <michaelh AT juju.net.nz>
6592
6593         * src/z80/peeph-gbz80.def: Removed a bad sub optimisation.
6594
6595 2001-11-03  Michael Hope  <michaelh AT juju.net.nz>
6596
6597         * support/regression/tests/bug-477927.c: Added.
6598
6599         * src/z80/peeph.def: Added minor rules.
6600
6601         * src/z80/gen.c (genPlusIncr): Added an extra plusinc rule.
6602
6603         * src/z80/peeph.def: Added jump optimisation modification.
6604
6605 2001-11-01  Michael Hope  <michaelh AT juju.net.nz>
6606
6607         * src/SDCCmain.c (linkEdit): Added runtime path detection to the mcs51 port.
6608
6609 2001-10-30  Michael Hope  <michaelh AT juju.net.nz>
6610
6611         * support/regression/tests/funptrs.c: Added.
6612
6613 2001-10-29  Michael Hope  <michaelh AT juju.net.nz>
6614
6615         * src/z80/ralloc.c (packRegsForHLUse): Fixed up bad spill due to pushing one byte via HL.
6616
6617 2001-10-28  Michael Hope  <michaelh AT juju.net.nz>
6618
6619         * src/z80/gen.c (genArrayInit): Made it work for on stack arrays.
6620
6621         * src/z80/main.c (gbz80_port =): Added rle support to the gbz80 port.
6622
6623         * src/z80/gen.c (genMinus): Fixed for where the result is one byte.
6624         (movLeft2ResultLong): Created.
6625
6626         * src/z80/ralloc.c (packRegsForHLUse): Added a couple of simple cases for the GB.
6627         (joinPushes): Added.  Joins two char pushes into a word push.
6628
6629 2001-10-27  Michael Hope  <michaelh AT juju.net.nz>
6630
6631         * support/cpp2/Makefile.in (install): Added creation of dest dir.
6632
6633         * support/makebin/Makefile (install): Added creation of dest dir.
6634
6635 2001-10-24 Karl Bongers <karl AT turbobit.com>
6636
6637         * configure.in, configure, Makefile, support/cpp: Removed cpp folder, since we have new cpp2 preprocessor code.
6638
6639 2001-10-21  Michael Hope  <michaelh AT juju.net.nz>
6640
6641         * src/z80/ralloc.c: Turned off faulty pack for one use.
6642
6643         * src/z80/peeph-gbz80.def: Removed redundent restart options.
6644
6645         * src/z80/gen.c (genMult): Added native mul for constants on the z80 and gbz80.
6646
6647 2001-10-21  Bernhard Held  <bernhard AT bernhardheld.de>
6648
6649         * support/regression/Makefile: Improved clean
6650
6651         * support/regression/ports/gbz80/spec.mk: Added clean
6652
6653         * support/regression/ports/host/spec.mk: Added clean
6654
6655         * support/regression/ports/z80/spec.mk: Added clean
6656
6657         * support/regression/ports/mcs51/spec.mk: Added clean, little improvements
6658
6659         * support/regression/ports/mcs51/timeout.c: little improvements
6660
6661 2001-10-17  Michael Hope  <michaelh AT juju.net.nz>
6662
6663         * device/lib/malloc.c (MEMHEADER): Fixed against new pedantic pointers.
6664
6665         * support/regression/fwk/include/testfwk.h: Fixed up to use function pts correctly.
6666
6667         * support/regression/generate-cases.py: Fixed up to use function pts correctly.
6668
6669 2001-10-16  Bernhard Held  <bernhard AT bernhardheld.de>
6670
6671         * support/regression/port/mcs51/spec.mk: add timeout for uCsim
6672
6673         * support/regression/port/mcs51/timeout.c: add timeout for uCsim
6674
6675 2001-10-13  Michael Hope  <michaelh AT juju.net.nz>
6676         * src/z80/gen.c (emitCall): Fixed up missing spill of HL when used to assign the result value.
6677
6678         * src/z80/ralloc.c: Turned off pack for one use as it's quite broken.
6679
6680         * src/SDCCmain.c (linkEdit): Added support for passing a legacy command line through the processor.
6681
6682         * src/mcs51/main.c (_linkCmd): Added bin path to command.
6683
6684         * src/SDCCmain.c (initValues): Added support for when it it called just to link.
6685
6686         * as/mcs51/lklibr.c (libfil;): Turned off 'library file' message.
6687
6688         * src/SDCCval.c (constVal): Fixed usage of 'L' modifier problems on ppc.
6689
6690         * support/regression/tests/longor.c: Added.
6691
6692 2001-10-11  Bernhard Held  <bernhard AT bernhardheld.de>
6693
6694         * as/mcs51/asdata.c: replaced FILENAME_MAX with PATH_MAX
6695
6696         * as/mcs51/aslink.h: define PATH_MAX
6697
6698         * as/mcs51/asm.h: define PATH_MAX
6699
6700         * as/mcs51/asmain.c: replaced FILENAME_MAX with PATH_MAX
6701
6702         * as/mcs51/asnoice.c: replaced FILENAME_MAX with PATH_MAX
6703
6704         * as/mcs51/lklex.c: replaced FILENAME_MAX with PATH_MAX
6705
6706         * as/mcs51/lkmain.c: replaced FILENAME_MAX with PATH_MAX
6707
6708         * src/SDCCglobl.h: define PATH_MAX
6709
6710         * src/SDCCmacro.c: replaced FILENAME_MAX with PATH_MAX
6711
6712         * src/SDCCmain.c: replaced FILENAME_MAX with PATH_MAX
6713
6714 2001-10-11  Michael Hope  <michaelh AT juju.net.nz>
6715
6716         * src/z80/gen.c (gencjneshort): Fixed
6717
6718         * src/z80/ralloc.c (packRegsForHLUse): Added pack into HL for cast then ipush.
6719
6720 2001-10-09  Michael Hope  <michaelh AT juju.net.nz>
6721
6722         * support/regression/tests/bug-469671.c: Added.
6723
6724         * src/z80/gen.c (shiftIntoPair): Fixed up warning.
6725
6726 2001-10-08  Michael Hope  <michaelh AT juju.net.nz>
6727
6728         * src/SDCCmain.c: Added --fommit-frame-pointer option and implemented in the z80 port.
6729
6730         * src/z80/gen.c (genPlus): Fixed to work with extended stack.  Also fixed genMinus, genCmp.  genUMinus is still left.
6731
6732 2001-10-08  Bernhar Held  <bernhard AT bernhardheld.de>
6733
6734         * src/SDCCmain.c (preProcess): added define SDCC_NOOVERLAY
6735
6736         * src/device/lib/_mulint.c  : removed hint: nooverlay bug
6737
6738         * src/device/lib/_mullong.c : removed hint: nooverlay bug
6739
6740         * src/device/lib/_divuint.c : removed hint: nooverlay bug
6741
6742         * src/device/lib/_divulong.c: removed hint: nooverlay bug
6743
6744         * src/device/lib/_moduint.c : removed hint: nooverlay bug
6745
6746         * src/device/lib/_modulong.c: removed hint: nooverlay bug
6747
6748 2001-10-07  Michael Hope  <michaelh AT juju.net.nz>
6749
6750         * 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.
6751
6752         * support/Util/NewAlloc.c (freeTrace): Changed free for the gc case to not free at all.  Fixes runtime segfault.
6753
6754         * support/regression/tests/scott-compare3.c (c_abcd): Fixed up casts.
6755
6756 2001-10-07    <johan AT FRIJA>
6757
6758         * device/lib/gets.c (gets): fixed the return value.
6759
6760 2001-10-06  Michael Hope  <michaelh AT juju.net.nz>
6761         * src/SDCCmain.c (WRITE_SEG_LOC): Fixed up to use Safe_strdup.
6762
6763         * 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.
6764
6765         * 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.
6766
6767         * src/z80/gen.c (genZ80Code): Added de-allocation via trace support.
6768
6769         * src/pic/gen.c: Removed Safe_strdup.
6770
6771         * configure.in: Added option to enable libgc support.
6772
6773         * src/SDCCbitv.c (bitVectnBitsOn): Optimised.
6774         (bitVectUnion): Optimised.
6775         (bitVectIntersect): Optimised.
6776         (bitVectBitsInCommon): Optimised.
6777         (bitVectCplAnd): Optimised.
6778
6779         * support/makebin/makebin.c (usage): Removed getopt as mingw32 doesn't have it.  Sigh.
6780
6781 2001-10-03 Bernhard Held <bernhard AT bernhardheld.de>
6782
6783         * src/SDCCmain.c: distinguish between assembler debug and plain options
6784
6785         * src/avr/main.c:   remove standard assembler options
6786
6787         * src/ds390/main.c: remove standard assembler options
6788
6789         * src/mcs51/main.c: remove standard assembler options
6790
6791         * src/port.h: removed "PENDING" comment
6792
6793 2001-10-03 Bernhard Held <bernhard AT bernhardheld.de>
6794
6795         * src/device/lib/_mulint.c  : new, with assember functions
6796
6797         * src/device/lib/_mullong.c : new, with assember functions
6798
6799         * src/device/lib/_divuint.c : with assember functions
6800
6801         * src/device/lib/_divsint.c : with assember functions
6802
6803         * src/device/lib/_divulong.c: with assember functions
6804
6805         * src/device/lib/_divslong.c: with assember functions
6806
6807         * src/device/lib/_moduint.c : with assember functions
6808
6809         * src/device/lib/_modsint.c : with assember functions
6810
6811         * src/device/lib/_modulong.c: with assember functions
6812
6813         * src/device/lib/_modslong.c: with assember functions
6814
6815         * src/device/lib/libint.lib:  replaced _muluint.c  and _mulsint.c  by _mulint.c
6816
6817         * src/device/lib/liblong.lib: replaced _mululong.c and _mulslong.c by _mullong.c
6818
6819         * src/device/lib/Makefile.in: replaced _muluint.c  and _mulsint.c  by _mulint.c
6820                                       replaced _mululong.c and _mulslong.c by _mullong.c
6821
6822 2001-10-03 Bernhard Held <bernhard AT bernhardheld.de>
6823
6824         * src/SDCCsymt.c: sequence of specifiers in pintTypeChain() corrected
6825
6826 2001-10-01 Bernhard Held <bernhard AT bernhardheld.de>
6827
6828         * src/SDCCglue.c: test, if win32api is available for MINGW
6829
6830 2001-10-01 Bernhard Held <bernhard AT bernhardheld.de>
6831
6832         * src/SDCCsymt.c: no more _modifier in printTypeChain()
6833         * support/regression/tests/driverstruct.c: REENTRANT for mcs51
6834         * support/regression/ports/gbz80/spec.mk: removed GENERIC
6835         * support/regression/ports/host/spec.mk: removed GENERIC
6836         * support/regression/ports/mcs51/spec.mk: removed GENERIC
6837         * support/regression/ports/z80/spec.mk: removed GENERIC
6838
6839 2001-10-01  Michael Hope  <michaelh AT juju.net.nz>
6840
6841         * support/regression/fwk/lib/testfwk.c (__printf): Removed GENERIC.
6842
6843         * support/regression/tests/bug-467035.c: Created.
6844
6845 2001-10-01    <johan AT FRIJA>
6846
6847         * src/SDCC.y: fixed bug #466586 part 1
6848
6849 2001-10-01  Johan Knol <johan.knol AT iduna.nl>
6850
6851         * SDCCicode.c: z80 has no generic pointers
6852         * removed -s from strip in all Makefile(.in)'s. It is not needed, but Solaris chocks on it.
6853
6854 2001-09-30  Michael Hope  <michaelh AT juju.net.nz>
6855
6856         * sim/ucsim/cmd.src/Makefile.in ($(PRJDIR)/libcmd.a): Changed all ar references to $(AR) for Solaris.
6857
6858 2001-09-29  Michael Hope  <michaelh AT juju.net.nz>
6859
6860         * Makefile (sdcc-libs): Added makebin to the list of standard targets.
6861
6862         * support/regression/ports/z80/spec.mk: Updated to use env for sdcc bin dir for automatic regression.
6863
6864 2001-09-25  Michael Hope  <michaelh AT juju.net.nz>
6865
6866         * configure.in: Fixed up so that ucsim is only configured once.
6867
6868         * support/cpp2/configure.in: Fixed to use the program transform to append the .exe for the win32 build.
6869
6870         * src/SDCCutil.c (getPrefixFromBinPath): Fixed up to work with win32 in all of its glory.
6871         (getPathDifference): As above.
6872
6873         * src/SDCCmain.c (preProcess): Changed to use a temporary file in a proper temp directory.  Fixed case where pre-processing only.
6874
6875         * src/SDCCglue.c (tempfilename): Added function for pre-processor.
6876
6877 2001-09-23  Michael Hope  <michaelh AT juju.net.nz>
6878         * .version: Updated to 2.3.1
6879
6880         * src/z80/main.c (z80_port =): Added macro based linker and assembler command line support.
6881         Added copyright header.
6882
6883         * src/SDCCmain.c: Shifted various functions into SDCCutil.c
6884         (assemble): Added support for macro based assembler commands.
6885         (linkEdit): Added support for macro based linker commands.
6886         (preProcess): Changed the pre-processor to use macros.
6887         (_setPaths): Added functionality to autodetect the include, lib and bin dir paths.
6888         (_discoverPaths): Added support for overriding the install directory using the SDCCDIR env variable.
6889
6890         * device/lib/z80/crt0.s: Added module name for debugging.
6891
6892 2001-09-20  Michael Hope  <michaelh AT juju.net.nz>
6893
6894         * src/SDCCmain.c (printVersionInfo): Added the build date to the version info.
6895
6896         * src/SDCChasht.c (hTabDeleteByKey): Fixed delete as it would delete the last item from a bucket even if it wasn't the real one.
6897
6898         * src/SDCCglue.c: Moved gc_strdup to SDCCutil.c
6899
6900         * src/Makefile.in: Added SDCCmacro and SDCCutil
6901
6902 2001-09-19  Michael Hope  <michaelh AT juju.net.nz>
6903
6904         * src/SDCCmain.c (printVersionInfo): Added the build date to the version info.
6905
6906 2001-09-16    <johan AT FRIJA>
6907
6908         * 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.
6909
6910 2001-09-15    <johan AT FRIJA>
6911
6912         * src/mcs51/ralloc.c: (findAssignToSym): fixed bug #460662 part 1
6913         * src/ds390/ralloc.c (findAssignToSym): fixed bug #460662 part 1
6914
6915 2001-09-11    <johan AT FRIJA>
6916
6917         * src/SDCCval.c (valDiv Mod Minus Plus Shift): keep litteral expressions as small as possible (bug #460010)
6918
6919 2001-09-10  Michael Hope  <michaelh AT juju.net.nz>
6920
6921         * support/regression/tests/bug-460444.c: Added test case.
6922
6923         * src/z80/gen.c (genOr): bug 460444: if (a ^ lit) was broken for &, |, and ^.
6924         (genCast): Added justification for all of the asserts.
6925
6926 2001-09-10  Bernhard Held <bernhard AT bernhardheld.de>
6927
6928         * support/regression/support.c: _xdata replaced by xdata
6929
6930         * support/regression/spec.mk: removed _generic
6931
6932 2001-09-09  Michael Hope  <michaelh AT juju.net.nz>
6933
6934         * src/pic/ralloc.c (debugLogRegType): Removed some old types to get it to compile.
6935
6936         * src/z80/gen.c (shiftR2Left2Result): Improved the case when v = v >> n for small values of n to use less code space and time.
6937         (genrshTwo): Fixed v = v >> n where v is a negative int and n is > 8: bug 460010.
6938
6939         * src/z80/peeph.def: Added a rule to optimise shift then compare.
6940
6941         * support/regression/tests/bug-460000.c (testShiftByParam): Added test case.
6942
6943         * support/regression/tests/bug-460010.c: Added test case.
6944
6945         * support/regression/Makefile (test-host): Removed a silly 'clean' target when testing against gcc.
6946
6947 2001-09-09  Bernhard Held <bernhard AT bernhardheld.de>
6948
6949         * support/regression/Makefile: inter-port-clean adjusted for mcs51
6950
6951         * support/regression/testfwk.c: removed workaround for bug #436344
6952
6953         * support/regression/tests/bp.c: use less memory with mcs51
6954
6955         * support/regression/tests/bug-441448.c: use less memory
6956
6957         * support/regression/tests/ports/mcs51/spec.mk: cleanup, use --stack-after-data
6958
6959         * support/regression/collate-results.py: typo
6960
6961 2001-09-08  Michael Hope  <michaelh AT juju.net.nz>
6962
6963         * support/regression/tests/fetchoverlap.c: Added new test case.
6964
6965         * support/regression/tests/bp.c: Added new test case.
6966
6967         * support/regression/tests/bug-448984.c: Added new test case.
6968
6969         * support/regression/tests/pow2shifts.c: Added new test case.
6970
6971         * src/z80/gen.c: Turned off the noise it normally generates for the release.
6972         (genlshTwo): Fixed right shift for count > 8.
6973
6974         * src/z80/ralloc.c: Disabled most of the ACC packing rules as they weren't getting hit and weren't at all safe.
6975
6976 2001-09-08    <johan AT FRIJA>
6977
6978         * src/SDCCicode.c (geniCodeCall): a CPOINTER can be used as a function
6979
6980 2001-09-07    <johan AT FRIJA>
6981
6982         * src/SDCCicode.c (newiCodeCondition): fixed bug #456235 (1.77)
6983
6984         * src/SDCCglue.c (emitRegularMap): only delete a symbol when it is a symbol
6985
6986 2001-09-06    <johan AT FRIJA>
6987
6988         * src/SDCC.y: this could be a fix for bug #458744 (1.37)
6989         * bernhard noted me at this: "() equals to (void)" (1.38)
6990
6991 2001-09-05    <johan AT FRIJA>
6992
6993         * src/SDCCglue.c (emitRegularMap): a fix for bug #458099/2
6994
6995 2001-09-04    <johan AT FRIJA>
6996
6997         * src/SDCCsymt.c (checkSClass): a fix for bug #458099/1
6998
6999
7000 2001-09-04  Paul Stoffregen  <paul AT pjrc.com>
7001
7002         * pragma noinduction broke memcpy on mcs51 large model.  Moved it inside z80 optimization
7003
7004 2001-09-03  Michael Hope  <michaelh AT juju.net.nz>
7005
7006         * link/z80/aslink.h: Fixed path for PATH_MAX
7007
7008 2001-09-02  Michael Hope  <michaelh AT juju.net.nz>
7009
7010         * src/z80/gen.c (fetchLitPair): Changed so that it properly caches direct space references.
7011
7012         * support/regression/tests/addsub.c: Added cases to cover all the +, - combinations.
7013
7014         * support/regression/tests/uminus.c: Added a test for the unary minus operator.
7015
7016         * 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.
7017
7018 2001-09-01  Michael Hope  <michaelh AT juju.net.nz>
7019
7020         * src/z80/gen.c: Fixed up generator to pass the regresion tests, specifically fixing loads for longs, genCmp, and turned on the map file.
7021         (genCmp): Fixed up genCmp for the GB with longs.
7022
7023         * device/lib/gbz80/Makefile: Fixed up all the libraries to pass the regression tests.
7024
7025         * support/regression/ports/host/spec.mk: Updated to compile with the new type specifiers.
7026
7027         * device/lib/Makefile.in (Z80SOURCES): Removed old _mululong, _mulslong, and unneeded _mulint.
7028
7029         * device/lib/_mullong.c (_mulslong): Changed to actually return a value :)
7030
7031 2001-08-30  Paul Stoffregen  <paul AT pjrc.com>
7032
7033         * added peepholes 223 to 231 to mcs51 port.  These improve code when using large model.
7034
7035 2001-08-30  Michael Hope  <michaelh AT juju.net.nz>
7036
7037         * 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.
7038
7039         * src/z80/gen.c (genPlus): Changed bad long add for gb to a fall through.
7040
7041 2001-08-29  Michael Hope  <michaelh AT juju.net.nz>
7042
7043         * link/z80/aslink.h: Fixed long file name support.  Is now based off PATH_MAX instead of a constant.
7044
7045         * src/z80/gen.c: Fixed add and sub for the case where left or right are in static space.
7046
7047 2001-08-30 Bernhard Held   <bernhard AT bernhardheld.de>
7048
7049   * sim/ucsim/configure:    little improvement of Cygwin-detection
7050   * sim/ucsim/configure.in: little improvement of Cygwin-detection
7051   * sim/ucsim/cmd.src/newcmdcl.h: include <sys/types.h> to define fd_set automated build
7052   * support/regression/tests/bug-221100.c: small changes for mcs51
7053   * support/regression/tests/bug-221168.c: small changes for mcs51
7054   * support/regression/tests/bug-227710.c: small changes for mcs51
7055   * support/regression/tests/staticinit.c: small changes for mcs51
7056   * as/mcs51/aslink.h: accept everything as symbol name in rel-files, bug fix ID 452601
7057   * as/mcs51/lklex.c:  accept everything as symbol name in rel-files, bug fix ID 452601
7058   * as/mcs51/lksym.c:  accept everything as symbol name in rel-files, bug fix ID 452601
7059
7060 $Revision$