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