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