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