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