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