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