bb749a95be515be8f1ff93de1ffa8b8e83dcb706
[fw/sdcc] / ChangeLog
1 2004-01-19 Bernhard Held <bernhard@bernhardheld.de>
2
3         * support/valdiag/tests/overflow.c: added shift tests
4         * src/pic/device.c,
5         * src/pic/gen.c,
6         * src/pic/gen.h,
7         * src/pic/glue.c,
8         * src/pic/main.c,
9         * src/pic/pcode.c,
10         * src/pic/pcode.h,
11         * src/pic/pcodepeep.c,
12         * src/pic/pcoderegs.c,
13         * src/pic/ralloc.c,
14         * src/pic/ralloc.h: applied patch from Slade Rich;
15         added support for multiple code pages and multiple RAM banks on the
16         PIC 14 port. The ASM files now no longer simply assume all the
17         code / RAM are in the same page / bank. This means the linker can
18         safely allocate code/RAM of separate ASM files to different pages/banks.
19         * doc/sdccman.lyx: added Slade's tips
20         * src/mcs51/peeph.def: fixed bug #880768
21
22 2004-01-20 Erik Petrich <epetrich@ivorytower.norman.ok.us>
23
24         * src/hc08/ralloc.c (rematStr): fixed bug #879282
25         * src/SDCCast.c (decorateType): fixed bug #880197
26
27 2004-01-20  Michael Hope  <michaelh@juju.net.nz>
28
29         * sim/ucsim/gui.src/serio.src/main.cc: Fixed unconditional use of
30         getopt.h.
31
32         * debugger/mcs51/cmd.c (getValBasic): Changed strtof to strtod as
33         strtof is not part of C89 and isn't included with Mac OS X.
34
35 2004-01-20 Erik Petrich <epetrich@ivorytower.norman.ok.us>
36
37         * src/hc08/gen.c (genPlusIncr, genUminus, genMinusDec, genCmp,
38         shiftL2Left2Result): fixed bug #879326
39         (genAnd, genOr, genXor): fixed bug when result was of type AOP_CRY
40         (genMultOneByte): fixed bug in signed vs unsigned multiplication
41         * sim/ucsim/hc08.src/inst.cc (inst_clr): added missing effective
42         address fetch for clr instruction
43         * device/lib/hc08/_mulint.c: created optimized assembly version
44         * src/SDCCdflow.c (computeDataFlow): fixed bug #878209
45
46 2004-01-19 Bernhard Held <bernhard@bernhardheld.de>
47
48         * src/SDCCicode.c (geniCodeArray): applied patch from Stas Sergeev
49         proposed in FR #877103
50
51 2004-01-18 Bernhard Held <bernhard@bernhardheld.de>
52
53         * src/SDCCval.c (cheapestVal): added missing checks
54         * src/SDCCicode.c (usualBinaryConversions): fixed condition
55         * src/SDCCicode.c (geniCodeAdd): fixed part of bug #877103
56
57 2004-01-16 Klaus Flittner <klaus_flittner@gmx.de>
58
59         * src/ds390/gen.c (aopOp3): fixed the assignment of different dptrs to
60         equal operands
61
62 2004-01-16 Vangelis Rokas <vrokas@otenet.gr>
63
64         * src/SDCCmain.c (linkEdit): variable $3 of the linker command is
65         loaded with the linker search paths (-L arguments) and the libraries
66         to be linked with the current source (-l arguments). Changes
67         currently will affect only the pic16 port.
68         * src/pic16/main.c (_pic16_finaliseOptions): add to the linker
69         include path the port specific paths and port specific libraries,
70         * gplink command now contains the $3 argument,
71         * src/pic16/device.h,
72         * src/pic16/device.c,: structure PIC_device is made public and
73         renamed to PIC16_device, the same for variable Pics which is renamed
74         to Pics16. Updated all references to them.
75         * src/pic16/glue.c (pic16glue): corrected bug with code
76         initialization which bypassed the variable initializations block.
77
78         * device/lib/pic16/Makefile.rules: removed --penable-stack from
79         COMPILE_FLAGS and added the --nostdinc option
80
81 2004-01-15 Erik Petrich <epetrich@ivorytower.norman.ok.us>
82
83         * device/include/mc68hc908jb8.h: Register defs for another member
84         of the hc08 family. Contributed by Bjorn Bringert - thanks!
85
86 2004-01-14 Vangelis Rokas <vrokas@otenet.gr>
87
88         Documenting changes from previous commits.
89         * configure.in (version 1.56),
90         * configure: initially I've added AC_CONFIG_SUBDIRS(device/lib/pic16)
91         when generating output files to configure the pic16 library,
92         but now I've commented it out, since gputils aren't installed in the
93         SF compile farm, so library won't compile
94
95         * device/lib/Makefile.in (version 1.56): initially I've added in
96         target 'all' the prerequestive 'model-pic16' so it compiled the
97         pic16 library, but now I've commented it out for the same reasons
98         above,
99         * added targets 'model-pic16' and 'objects-pic16' to compile the
100         library
101         * added target 'port-specific-objects-pic16' to handle the
102         generated libraries and copy them into the build/ directory
103         * added target 'clean-intermediate-pic16' to clean intermediate
104         files into pic16 directory
105         * in target 'installdirs' added line to create directory pic16 in
106         the installation path
107
108         * device/include/Makefile.in (version 1.11): in target 'install'
109         added lines to copy all header files to installation path,
110         * in target 'installdirs' added line create directory for pic16
111         headers in the installation path
112
113 2004-01-13 Klaus Flittner <klaus_flittner@gmx.de>
114
115         * src/ds390/gen.c (genCall): fixed a double use of acc and b after
116          a function call
117
118 2004-01-13 Bernhard Held <bernhard@bernhardheld.de>
119
120         * configure,
121         * device/lib/configure.in,
122         * device/lib/configure: fixed for autoconf 2.57
123
124 2004-01-13 Erik Petrich <epetrich@ivorytower.norman.ok.us>
125
126         * src/z80/main.c (_parseOptions): fixed the portmode= command line
127         option so that it actually works. Made it specific to the z80, since
128         the gbz80 doesn't have these kinds of I/O ports.
129
130 2004-01-13 Erik Petrich <epetrich@ivorytower.norman.ok.us>
131
132         * device/include/z180.h,
133         * device/lib/_memcpy.c,
134         * device/lib/_memmove.c,
135         * device/lib/_mulint.c,
136         * device/lib/ser_ir.c,
137         * device/lib/ser_ir_cts_rts.c,
138         * device/lib/_strcmp.c,
139         * device/lib/_strtok.c: fixed pragmas to non-deprecated form
140         * src/z80/main.c (_process_pragma): add support for pragmas bank and
141         portmode; added deprecation warning for bank= and protmode= forms.
142         Also, guard against buffer overflow.
143         * src/z80/gen.c (aopGet): generate better code for sfr banked read
144
145 2004-01-13 Erik Petrich <epetrich@ivorytower.norman.ok.us>
146
147         * src/hc08/main.c (_hc08_genAssemblerPreamble): fixed bug #875487. Also
148         changed interrupt vector table generation to only emit declared vectors.
149         * device/include/Makefile.in: added missing backslash
150         * device/lib/pic16/Makefile.rules: add $(MODELFLAGS) to $(CFLAGS)
151
152 2004-01-13 Vangelis Rokas <vrokas@otenet.gr>
153
154         Mainly changes to support compilation of the device libraries
155         * src/pic16/device.c: stack is allocated via symbol and not
156         via literal number. The symbol is placed in the corresponding
157         position of the data ram
158         * (pic16_dump_section): relocatable and absolute uninitialized
159         data are now emitted in sorted order to reduce section naming,
160         * src/pic16/ralloc.c (newReg): fixed bug with SFR's that
161         weren't marked as being in the access bank,
162
163 2004-01-13 Vangelis Rokas <vrokas@otenet.gr>
164
165         Added portion of GNU PIC Library under the directory
166         device/include/pic16 and device/lib/pic16. These files
167         contain the declarations of SFRs for the PIC18Fxx2 devices.
168         The directory is initialized via configure from toplevel.
169         
170 2004-01-12 Klaus Flittner <klaus_flittner@gmx.de>
171
172         * src/ds390/gen.c (operandsEqu): fixed a little typo, that prevented
173         the spilllocations to be compared correctly
174
175 2004-01-12 Bernhard Held <bernhard@bernhardheld.de>
176
177         * src/SDCCast.c (decorateType): fixed bug introduced today
178
179 2004-01-12  Borut Razem <borut.razem@siol.net>
180
181         * src/SDCC.lex, support/Util/SDCCerr.h, support/Util/SDCCerr.c,
182         doc/sdccman.lyx: upper case pragmas are deprecated
183
184 2004-01-12 Bernhard Held <bernhard@bernhardheld.de>
185
186         * src/SDCCast.c (decorateType): replacing 'ul > 0' by  '!ul' results
187         in simpler and even better code
188
189 2004-01-11 Bernhard Held <bernhard@bernhardheld.de>
190
191         * src/SDCCicode.c (operandOperation): fixed bug #874819
192         * src/SDCCast.c (decorateType): fixed
193         char foo (unsigned long ul) { return ul > 0; }
194
195 2004-01-11 Frieder Ferlemann <Frieder.Ferlemann@web.de>
196
197         * doc/sdccman.lyx: Moved and added some sections, small changes
198         all over. Telling LaTeX to be less strict with word spacing
199         to better keep the right margin. Changed some notes about
200         maintainance of the ports in section 3.2.1 - is it OK like this?
201
202 2004-01-11 Vangelis Rokas <vrokas@otenet.gr>
203
204         SDCC source changes:
205         * src/SDCCopt.c (cntToFcall, cnvToFloatCast, cnvFromFloatCast,
206         convilong): modified to inform the pic16 port that builtin functions
207         are external
208
209         PIC16 PORT specific changes:
210         * src/pic16/device.c pic16_dump_equates() added,
211         processor registers declared internally by the port are emitted in
212         the translation as equates,
213         * src/pic16/gen.c: inline code is passed unprocessed to the
214         translation,
215         * (pic16_popGetLit2): fnuction modified to take second operand as
216         pCodeOp pointer and not as literal,
217         * (popRegFromIdx): prefixed with pic16_,
218         * (pic16_popCombine2): modified to receive already allocated pCode
219         operands,
220         * (pic16_pushpCodeOpReg, pic16_poppCodeOpReg): added
221         * (genFunction): initializes local stack frame and pushes on stack
222         all the registers used by this function,
223         * (genEndFunction): restores all registers from stack and restores
224         stack frame,
225         * src/pic16/glue.c (pic16emitRegularMap): various changes and
226         improvements,
227         * (pic16glue): changed the program startup sequence,
228         * added new dbName code 'A' for functions placed in absolute section
229         * src/pic16/main.c: added function attribute _naked,
230         * added pragma 'code' to place a fnuction at an absolute address,
231         * added command line arguments --debug-ralloc and --pcode-verbose,
232         * (_pic16_finiliseOptions): options.all_callee_saves is set by default
233         * src/pic16/pcode.c (pic16_pBlockConvert2Absolute) added,
234         * (pic16_newpCodeOpLit2): modified to take the second operand as
235         pCodeOp pointer,
236         * (pic16_printpBlock): modified to emit each function in a separate
237         section,
238         * (pic16_get_op): modified to use the gpasm modifiers LOW,HIGH and
239         UPPER for immediate operands,
240         * src/pic16/pcodepeeph.c: added peephole support for the LFSR
241         instruction,
242         * src/pic16/peeph.def: all peepholes with movff are commented out,
243         because there is a problem in the pcode peep optimizer,
244         * src/pic16/ralloc.c: the register allocator can now reuse local
245         function symbols for another function. This saves register usage.
246         * src/pic16/ralloc.h: added flag isLocal in structure regs,
247
248         Added file src/pic16/NOTES with information about program writing on
249         the current port version.
250
251 2004-01-11 Frieder Ferlemann <Frieder.Ferlemann@web.de>
252
253         * src/mcs51/peephole.def: added peepholes 177.c,d (redundant moves)
254         and peephole 252 (array access)
255
256 2004-01-09  Borut Razem <borut.razem@siol.net>
257
258         * src/SDCCmain.c : fixed #872250: -l command line defined library
259           files are scanned before standard library files
260
261 2004-01-10 Erik Petrich <epetrich@ivorytower.norman.ok.us>
262
263         * src/SDCCast.c (decorateType): fixed bug #874046
264
265 2004-01-09  Borut Razem <borut.razem@siol.net>
266
267         * support/scripts/sdcc.nsi: remove previous installation
268
269 2004-01-09 Frieder Ferlemann <Frieder.Ferlemann@web.de>
270
271         * src/SDCCglue.c (createInterruptVect): don't append 7(5) padding
272         bytes for last interrupt vector (mcs51)
273         * sdcc.spec: fixed typo
274
275 2004-01-09 Erik Petrich <epetrich@ivorytower.norman.ok.us>
276
277         * src/mcs51/gen.c (genFunction, genEndFunction, genReceive, getTempRegs,
278         gen51Code): more efficient parameter receive for --model-large
279         ("bug" #845294)
280
281 2004-01-09 Erik Petrich <epetrich@ivorytower.norman.ok.us>
282
283         * src/ds390/main.c,
284         * src/z80/main.c: added missed needLinkerScript flags (more than
285         one port structure defined in these file)
286         * src/ds390/gen.c (aopForSym, aopOp, operandsEqu, aopOp3): fixed
287         bug #795325
288
289 2004-01-08 Vangelis Rokas <vrokas@otenet.gr>
290
291         * src/SDCCmain.c: removed various references to DEFAULT_PORT
292         * src/port.h: added flag needLinkerScript in port->linker
293         structure to inform whether to create a .lnk file or not,
294         * src/avr/main.c,
295         * src/ds390/main.c,
296         * src/hc08/main.c,
297         * src/mcs51/main.c,
298         * src/pic/main.c,
299         * src/pic16/main.c,
300         * src/xa51/main.c,
301         * src/z80/main.c: changed appropriately to configure
302         needLinkerScript flag
303         * src/pic/gen.c,
304         * src/pic16/gen.c (genAddrOf): fixed bug #863624
305         * src/pic/glue.c: added variable udata_section_name to
306         override default uninitialized data segment definition for
307         devices only with SHAREBANK memory (reported from Erik Epetrich)
308         * (pic14emitOverlay): modified to emit a commented overlay segment
309         directive when no overlay data exist
310         * (picglue): modified to emit uninitialized data segment
311         according to udata_section_name
312         * src/pic/main.c (_pic14_parseOptions): added command line
313         options --udata-section-name=[name] to override default
314         udata definition name
315         * modified _linkCmd and _asmCmd to include compiler passed
316         arguments via -W option
317         * src/pic16/main.c: added $l in _asmCmd, changed extension for
318         object file from '.rel' to '.o' in port->linker structure,
319         changed size of fptr from 2 to 3 in port structure
320
321 2004-01-07  Borut Razem <borut.razem@siol.net>
322
323         * support/scripts/sdcc.nsi: update PATH
324         * support/scripts/sdcc.ico: craeted
325
326 2004-01-07 Bernhard Held <bernhard@bernhardheld.de>
327
328         * device/include/Makefile.in: fix install
329         * doc/Makefile: fix install
330
331 2004-01-07 Erik Petrich <epetrich@ivorytower.norman.ok.us>
332
333         * src/SDCCsymt.c (processFuncArgs): fixed superflous allocation noted
334         in bug #860505
335         * src/SDCCmem.c (printAllocInfoSeg, printAllocInfo): minor changes to
336         how the function variable allocation summary is displayed; also
337         include information about variables allocated to the overlay
338         segment
339
340 2004-01-06  Jesus Calvino-Fraga <jesusc@ece.ubc.ca>
341
342         * as/mcs51/lkmain.c: Help about -Y option
343         * as/mcs51/lkarea.c: Fixed gcc warnings
344
345 2004-01-06 Bernhard Held <bernhard@bernhardheld.de>
346
347         * src/SDCCval.c (valShift): changed from 16 to 32 bit shift count,
348         fixed warning
349         * support/valdiag/tests/overflow.c: added
350         * src/SDCCast.c (decorateType),
351         * src/SDCCicode.c (geniCodeLeftShift): added promotion to int for
352         LEFT_OP (left shift)
353
354 2004-01-06  Jesus Calvino-Fraga <jesusc@ece.ubc.ca>
355
356         * as/mcs51/lkmain.c: stack must be after data when option -Y is not used
357         (default behaviour).
358
359 2004-01-06 Erik Petrich <epetrich@ivorytower.norman.ok.us>
360
361         A python script to validate compiler diagnostic messages. It can be
362         used to verify that sdcc complains about bad c source code and
363         gives a good location of the error.
364         * support/valdiag/Makefile,
365         * support/valdiag/valdiag.py,
366         * support/valdiag/tests/*
367
368 2004-01-06 Erik Petrich <epetrich@ivorytower.norman.ok.us>
369
370         * src/SDCC.y (enum_specifier, enumerator_list, opt_assign_expr),
371         * src/SDCCsymt.c (newEnumType),
372         * src/SDCCsymt.h
373         * support/Util/SDCCerr.c,
374         * support/Util/SDCCerr.h: fixed bug #871258 and some other unreported
375         enum related bugs.
376         * support/regression/tests/enum.c: added test for enum values that
377         require at least 2 bytes of storage.
378
379 2004-01-06 Vangelis Rokas <vrokas@otenet.gr>
380
381         * src/common.h: added ifndef/define/endif macros
382         around the header file.
383         Bug reported from Jesus Calvino-Fraga
384
385 2004-01-06 Bernhard Held <bernhard@bernhardheld.de>
386
387         * sdcc.spec: updated
388         * device/include/Makefile.in: don't install CVS directories
389         * device/lib/Makefile.in: added removal of CVS directories after install
390         * doc/Makefile: fixed install, added local_icons
391         * sim/ucsim/gui.src/Makefile.in: fixed an old typo
392         * src/mcs51/gen.c (genRightShift): fixed bug #870788
393         * src/ds390/gen.c (genRightShift): fixed bug #870788
394         * src/SDCCast.c (decorateType): fixed bug #870781
395
396 2004-01-06 Vangelis Rokas <vrokas@otenet.gr>
397
398         PIC16 port related changes:
399         * device.c: removed pic16_finalMapping and pic16_finalMappingSize,
400         added variable stackPos,
401
402         * gen.c: genCall, assignResultValue: added support for
403         pushing/retrieving function parameters to/from stack,
404         genFunction,genEndFunction: setup stack frame for the
405         generated function,
406         genAddrOf: will be changed according to bug 863624
407
408         * added files genutils.c and genutils.h which contain gen*
409         debugged and optimised functions extracted from gen.c
410         
411         * glue.c: added variable 'externs' which holds extern symbols,
412         pic16emitRegularMap: is modified to properly handle relocatable
413          symbols under the new scheme,
414         pic16createInterruptVect: is modified
415         pic16printPublics: is modified to emit 'global' assembler directives,
416         added pic16_printExterns to print extern symbols,
417         pic16glue: initializes stack/frame pointer in the beginning of
418         the assembly output. Temporary hack, will be corrected later,
419         because gplink yet does not support stack and SDCC does not
420         yet support a type of crt0.o object to create the final binary.
421         
422         * Removed many lines that contain 8051 legacy code.
423         * The code is finally placed under a 'code' directive.
424         * Added port specific options.
425         
426         * _process_pragma: simplified since now we do not need *special*
427         include file to define SFR registers. But a separate header
428         will be needed. This will be developed later.
429         * _pic16_parseOptions: added, parses port specific options:
430         --pgen-banksel, --obanksel=, --pomit-config-words, --pomit-ivt,
431         --pleave-reset-vector, --penable-stack, --pstack-model, --debug-xtra
432         --preplace-udata-with=
433         
434         * _pic16_setDefaultOptions: modified to initialize section names,
435         but hack is temporarly out of order since it needs improvement.
436         * _pic16_genAssemblerPreamble: configuration words are emitted by
437         their address instead of their name. This part is incomplete and
438         supports only the 18Fxx2 devices. Other devices will emit an error
439         during assembly since they do not contain the same set of config
440         registers
441         * _pic16_genIVT: is modified,
442         
443         * pcode.c: added definitions for some hardware registers that are needed
444         for stack support
445         * added flag is2LitOp and variable pci_magic in pCodeInstruction.
446         All PCI entries are updated. Now LFSR is supported.
447         * Removed pic16_pciTRIS is mentioned by mdubuc in source
448         * added pic16_newpCodeOpLit2 to support instructions with
449         two literal arguments
450         * pic16_pCode2str: corrected code that emits assembler instructions
451         with two literal operands and those that have an access bit modifier
452         * genericPrint: now PC_ASMDIR pCodes, can emit a label if it exists,
453         this fixes a bug which caused some labels to be lost, when an
454         assembler directive was added, i.e. banksel,
455         * pic16_FixRegisterBanking: improved logic that causes the insertion
456         of bank switching,
457         * InlineFunction: functions that are called once, are not any more
458         inlined. This can be a port option in the future,
459         
460         * pcode.h: added pCodeOpLit2 and added variable label in pCodeAsmDir
461         
462         * ralloc.c: added pic16_rel_udata and pic16_fix_udata variables which
463         hold the corresponding uninitialized symbols,
464         * pic16_allocProcessorRegister: registers have explicit marked the
465         accessBank field,
466         * pic16_allocInternalRegister: registers are explicit marked as
467         not used,
468         * pic16_writeUsedRegs: pic16_dynDirectBitRegs was missing from the
469         processing list, so bit registers were lost,
470         * 
471
472         * ralloc.h: added field 'accessBank' and original symbol operand
473         in register definition,
474         * removed the field isMapped from register definition,
475
476         ** Several functions have been removed from various sources:
477         BanksUsedFlow2,BanksUsedFlow,FixBankFlow,InstructionRegBank,
478         pic16_addMemRange,pic16_isREGinBank,pic16_dump_map,pic16_dump_cblock
479         isSFR,validAddress,mapRegister,assignRegister,pic16_assignFixedRegisters
480         pic16_assignRelocatableRegisters
481         
482         ** others have been introduced:
483         pic16_areRegsSame,pic16_dump_section,checkAddReg,pic16_groupRegistersInSection
484         pic16_popGetLit2,pic16_popCombine2,pushw,pushaop
485         
486 2004-01-05 Vangelis Rokas <vrokas@otenet.gr>
487
488         * support/scripts/inc2h.pl: changed definition of BIT_AT
489         to emit 'sbit at' instead of 'bit at'. This was a request.
490
491         PIC16 port related preliminary changes:
492         * gen.c: prefixed function popRegFromString with
493         pic16_ and all references to it corrected
494         * pcode.c: all pic16_pc_* hardware registers prefixed
495         with underscore (_),
496         pic16_popCopyGPR2Bit(): function sets register wasUsed=1
497         * ralloc.c: newReg(): when register is REG_SFR then
498         set address to rIdx,
499         pic16_allocProcessorRegister(): marks register wasUsed=0
500         pic16_writeUsedRegs(): added a call to assign processor
501         registers via pic16_assignFixedRegisters
502
503 2004-01-04  Jesus Calvino-Fraga <jesusc@ece.ubc.ca>
504
505         * as/mcs51/aslink.h, as/mcs51/lkarea.c, as/mcs51/lkdata.c,
506         as/mcs51/lkmain.c, as/mcs51/lkmem.c: 8051 linker can now pack
507         variables in unused register banks.  Also the SSEG is placed
508         wherever there is enough space for it, and IDATA can be anywhere
509         in internal RAM.  For now compile using -Wl-Y[stack_size].
510         The mem file is different for this option as well, since it
511         makes no sense of talking about DSEG lenght.
512
513 2004-01-02 Vangelis Rokas <vrokas@otenet.gr>
514
515         * src/SDCClrange.c: fixed bug 869095 that caused segfault
516         in certain cases, e.g. when ROM assignment, patch provided
517         from Albert den Haan.
518
519 2004-01-01 Bernhard Held <bernhard@bernhardheld.de>
520
521         Many signedness and type propagation fixes:
522         * src/SDCCicode.c: made geniCodeCast() static
523         replaced SPEC_ by IS_ (cosmetic)
524         (operandOperation): fixed div and mod operation
525         (usualBinaryConversions): added support for promotion of char
526         (geniCodeMultiply): replaced (unsigned long) by (TYPE_UDWORD)
527         (geniCodeDivision): replaced (unsigned long) by (TYPE_UDWORD)
528         (geniCodeAdd): an array index will stay unsigned, even if promoted
529         from char to int
530         (geniCodeArray): ditto
531         * src/SDCCicode.h: made geniCodeCast() static: removed prototype
532         * src/SDCCsymt.c (computeType): added more support for char;
533         promotion of char is selectable by promoteCharToInt, fixed signedness
534         for all cases
535         (powof2): replaced (unsigned long) by (TYPE_UDWORD)
536         * src/SDCCsymt.h (powof2): replaced (unsigned long) by (TYPE_UDWORD)
537         * src/SDCCval (val*): replaced signedness calculation by
538         computeType()
539         rearranged if-branches (cosmetic)
540         (valShift): added warning W_SHIFT_CHANGED
541         (valCompare): fixed problem with different types
542         * src/hc08/rallo.c (leastUsedLR): fixed gcc 3.3 warning
543         * support/regression/tests/literalop.c: added many cases
544         * support/regression/tests/ast_constant_folding.c: changed finally to
545         'unsigned int'
546         * .version: new year, new version: 2.3.7
547         * src/SDCCmain.c (main): applied patch #866468
548         * debugger/mcs51/sdcdb.c (parseCmdLine): added -k for ucsim, patch
549         provided by Scott Bronson
550         * doc/sdccman.lyx: updated documentation for sdcdb
551         updated and added chapter tips
552
553 2004-01-01 Erik Petrich <epetrich@ivorytower.norman.ok.us>
554
555         * src/SDCCsymt.h: missing from yesterday's commits
556
557 2003-12-31 Erik Petrich <epetrich@ivorytower.norman.ok.us>
558
559         * src/SDCC.y (struct_or_union_specifier),
560         * support/Util/SDCCerr.c,
561         * support/Util/SDCCerr.h: verify that struct & union tags are used
562         as declared.
563
564 2003-12-29 Erik Petrich <epetrich@ivorytower.norman.ok.us>
565
566         * src/SDCCglobl.h: missing from yesterday's commits
567
568 2003-12-28 Erik Petrich <epetrich@ivorytower.norman.ok.us>
569
570         * src/SDCC.y (external_definition, type_specifier2, sfr_reg_bit,
571         sft_attributes, struct_declaration, parameter_declaration,
572         type_name, start_block, declaration_list),
573         * src/SDCC.lex (check_type): support redefinition of typedef names
574
575 2003-12-22 Frieder Ferlemann <Frieder.Ferlemann@web.de>
576
577         * src/mcs51/gen.c (genPlus): added special handling for 256 byte
578         aligned xdata arrays. Erik helped me with the if clause.
579
580 2003-12-20 Erik Petrich <epetrich@ivorytower.norman.ok.us>
581
582         * device/lib/ds390/tinibios.c (CpuSpeed): suppress unreachable code
583         warning
584
585 2003-12-20 Erik Petrich <epetrich@ivorytower.norman.ok.us>
586
587         * src/SDCCast.h,
588         * src/SDCCast.c (newAst_),
589         * src/SDCCicode.h,
590         * src/SDCCicode.c (ast2iCode, newiCode),
591         * src/SDCCglobl.h,
592         * src/SDCC.y (logical_and_expr, logical_or_expr, conditional_expr,
593         expr, statement, expression_statement, selection_statement,
594         iteration_statement, expr_opt, jump_statement): foundation for tracking
595         sequence points
596         * src/SDCCopt.c (killDeadCode): fixed bug #861580 (needs the sequence
597         point code too)
598
599 2003-12-19 Erik Petrich <epetrich@ivorytower.norman.ok.us>
600
601         * support/Util/SDCCerr.c,
602         * src/SDCCast.h,
603         * src/SDCCast.c (createCase, createDefault, decorateType),
604         * src/SDCClabel.c (labelUnreach),
605         * src/SDCC.y (labeled_statement, jump_statement): More improvements
606         to error messages.
607         * support/Util/SDCCerr.c (werrorfl): fixed a non-standard declaration
608         (with thanks to Stas Sergeev)
609         * device/include/time.h,
610         * device/lib/time.c (CheckTime): suppress unreachable code warning
611
612 2003-12-18 Erik Petrich <epetrich@ivorytower.norman.ok.us>
613
614         * src/SDCCast.c (createIvalCharPtr),
615         * src/SDCCglue.c (printChar): fixed bug #862241 (an error in my fix for
616         bug #753752)
617         * support/regression/tests/nullstring.c: tests for these two bugs
618
619 2003-12-18 Erik Petrich <epetrich@ivorytower.norman.ok.us>
620
621         * support/Util/SDCCerr.h,
622         * support/Util/SDCCerr.c (E_NOT_ALLOWED),
623         * src/SDCC.y (struct_declaration, struct_or_union_specifier): complain
624         about storage class and 'at' used inside struct or union
625         * src/SDCCBBlock.c (iCodeFromeBBlock),
626         * src/SDCCcse.c (ifxOptimize),
627         * src/SDCCglue.c (emitRegularMap, initPointer, printIvalStruct,
628         printIvalArray, printiValFuncPtr, printIvalCharPtr, printIvalPtr,
629         printIval, emitStaticSeg, emitOverlay),
630         * src/SDCClabel.c (deleteIfx),
631         * src/SDCCopt.c (replaceRegEqv, eBBlockFromiCode),
632         * src/SDCCast.c (resolveSymbols, createIvalStruct, createIvalArray,
633         gatherAutoInit, processParms),
634         * support/Util/SDCCerr.h,
635         * support/Util/SDCCerr.c (werrorfl): Support for better error location
636         reporting for post-parse errors.
637
638 2003-12-16 Erik Petrich <epetrich@ivorytower.norman.ok.us>
639
640         * src/SDCCval.c (valPlus, valMinus, valShift): fixed some problems with
641         implicit casts via union; they don't work on big endian systems
642         (possible fix for bug #861138)
643
644 2003-12-16 Frieder Ferlemann <Frieder.Ferlemann@web.de>
645
646         (committed by Erik Petrich <epetrich@ivorytower.norman.ok.us> on Frieder's behalf)
647         * src/mcs51/main.c: fixed the fix for bug #737001
648
649 2003-12-15  Borut Razem <borut.razem@siol.net>
650
651         * support/scripts/sdcc.nsi: updated for NSIS 2.0 beta 4
652
653 2003-12-14 Erik Petrich <epetrich@ivorytower.norman.ok.us>
654
655         * support/makebin/makebin.c: put output in binary mode
656
657 2003-12-13 Frieder Ferlemann <Frieder.Ferlemann@web.de>
658
659         * src/mcs51/main.c: fixed bug #737001 for the mcs51. SDCC clears
660         xdata and data memory on startup. Set the environment variable
661         SDCC_NOGENRAMCLEAR to disable this.
662         * src/mcs51/peephole.def,
663         * src/ds390/peephole.def: using the atomic test and clear instruction jbc
664         (allows non-interrupt and interrupt code to safely compete for a resource
665         without the non-interrupt code having to disable interrupts)
666
667 2003-12-13 Erik Petrich <epetrich@ivorytower.norman.ok.us>
668
669         * src/SDCCicode.c (geniCodeAdd),
670         * src/SDCCast.c (decorateType): fixed bug #857753 (need to be careful
671         with valFromType if type might be a pointer and host is big endian).
672         * src/SDCCast.c (decorateType): unary plus compatible with all arithmetic
673         types, not just integer types.
674         * src/SDCCsymt.c (addSymChain): clarified error message when symbol is
675         multiply defined with mismatching "at" address.
676
677 2003-12-12 Erik Petrich <epetrich@ivorytower.norman.ok.us>
678
679         * src/ds390/main.c (PORT tininative_port): fixed bug #858416
680         * src/SDCCglue.c (printChar, printIvalChar, emitStaticSeg),
681         * src/SDCCast.c (createIvalCharPtr, stringToSymbol): handle strings
682         with embedded nulls (fixed bug #753752)
683
684 2003-12-12 Frieder Ferlemann <Frieder.Ferlemann@web.de>
685
686         * src/mcs51/main.c(_mcs51_genRAMCLEAR): using r0 instead of r1/r2.
687         Apparently this did not see much testing (endless loop)
688
689 2003-12-11 Erik Petrich <epetrich@ivorytower.norman.ok.us>
690
691         * src/z80/ralloc.c: set DISABLE_PACK_HL = 1 as a temporary fix to bug #855165
692
693 2003-12-10 Erik Petrich <epetrich@ivorytower.norman.ok.us>
694
695         * src/SDCCdebug.c (outputDebugSymbols, outputDebugStackSymbols, dumpSymInfo):
696         gracefully handle NULL memmap pointers
697
698 2003-12-08 Erik Petrich <epetrich@ivorytower.norman.ok.us>
699
700         * src/SDCCopt.c (killDeadCode): change iCode type to DUMMY_READ_VOLATILE
701         instead of deleting the iCode when an operand is volatile
702         * src/z80/gen.c (genDummyRead),
703         * src/mcs51/gen.c (genDummyRead),
704         * src/ds390/gen.c (genDummyRead),
705         * src/hc08/gen.c (genDummyRead): handle operands in IC_LEFT and/or IC_RIGHT,
706         not just IC_RIGHT
707         * src/SDCCicode.c (geniCodeCall): fixed bug #851607
708         * src/SDCC.y: fixed bug #850420
709
710 2003-12-05 Erik Petrich <epetrich@ivorytower.norman.ok.us>
711
712         Applied z80 i/o port patch from Peter Townson and fixed some operators
713         to better handle operands in A register.
714         * device/include/z180.h
715         * src/SDCC.y
716         * src/SDCCglue.c
717         * src/z80/gen.c
718         * src/z80/gen.h
719         * src/z80/main.c
720         * src/z80/peeph-z80.def
721         * src/z80/peeph.def
722         * src/z80/z80.h
723
724 2003-12-03 Erik Petrich <epetrich@ivorytower.norman.ok.us>
725
726         * src/SDCCsymt.c (addSymChain, compareTypeExact): fixed bug #838241 again
727
728 2003-12-01 Erik Petrich <epetrich@ivorytower.norman.ok.us>
729
730         * device/lib/hc08/_mullong.c: Removed extra #endif
731
732 2003-12-01 Erik Petrich <epetrich@ivorytower.norman.ok.us>
733
734         * sim/ucsim/hc08.src/inst.cc,
735         * sim/ucsim/hc08.src/hc08mac.h: fixed some problems with CC flag bits and
736         carries from x to h
737         * src/hc08/gen.c (aopAdrStr): fixed problem with 16 bit immediate
738         * src/hc08/gen.c (XAccRsh): fixed problem with right shift
739         * device/include/stdarg.h: fixed varargs for hc08
740         * device/lib/Makefile.in,
741         * device/lib/hc08/Makefile,
742         * device/lib/hc08/_mulint.c,
743         * device/lib/hc08/_mullong.c: fixed some endian problems
744
745 2003-11-28 Frieder Ferlemann <Frieder.Ferlemann@web.de>
746
747         * sdcc/src/mcs51/gen.c (genMultOneByte): help peephole 105
748         * sdcc/src/mcs51/peeph.def: added peephole 186.e array access in code space
749         * device/lib/_gptrget.c,
750         * device/lib/_gptrput.c: P2 not used any more (related to #850747, #785979)
751
752 2003-11-27 Erik Petrich <epetrich@ivorytower.norman.ok.us>
753
754         * src/SDCClrange.c (findNextUseSym, rlivePoint): fixed bug #849795
755         * src/SDCCast.c (astErrors): fixed bug #846007
756         * src/SDCCsymt.c (checkFunction): fixed follow-up bug on bug #846007
757
758 2003-11-26 Erik Petrich <epetrich@ivorytower.norman.ok.us>
759
760         * src/SDCCast.c (decorateType): disabled a transformation I added in
761         revision 1.188 (access to fields of a structure at an absolute address);
762         it breaks with bitfields, extern declarations, and gcse analysis.
763         * src/SDCCopt.c (isLocalWithoutDef): if ADDRESS_OF applied to a symbol, it
764         could be assigned through a pointer, so don't complain.
765         * src/SDCCast.c (astErrors),
766         * src/SDCCast.h,
767         * src/SDCCglue.c (emitRegularMap): fixed bug #847813
768
769 2003-11-26 Vangelis Rokas <vrokas@otenet.gr>
770         
771         * src/pic16/main.c (_pic16_genIVT): fixed interrupt vector table
772         * src/pic16/main.c (_pic16_genAssemblerPreamble): re-enabled the
773         output of __config directives, since gpasm now supports them
774         * src/pic16/main.c (_pic16_finaliseOptions): define MCU
775         pre-processor macro, i.e. -DMCU=p18f452
776         * src/pic16/ralloc.c: renamed packRegisters to pic16_packRegisters,
777         and modified to handle 'cast' icode similarly to '=' icode
778         * src/pic16/device.h (typedef struct PIC_device): added field
779         'extMIface' to indicate that chip has external memory interface
780         * src/pic16/device.c: added chips 18F248, 18F258, 18F448, 18F458,
781         18F6520, 18F6620, 18F6680, 18F6720, 18F8520, 18F8620, 18F8680,
782         18F8720
783
784 2003-11-26 Erik Petrich <epetrich@ivorytower.norman.ok.us>
785
786         * src/SDCC.y (pointer): fixed bug #846006
787         * support/Util/SDCCerr.c: made W_PTR_TYPE_INVALID message clearer
788         * src/SDCCast.c (decorateType): fixed bug #846009
789         * src/ds390/peeph.def,        
790         * src/ds390/gen.c (genAnd, genOr),
791         * src/mcs51/peeph.def,        
792         * src/mcs51/gen.c (genAnd, genOr): fixed bug #846777
793
794 2003-11-25 Erik Petrich <epetrich@ivorytower.norman.ok.us>
795
796         Fixed several common-sub-expression bugs (#772861, #768380, & #755323)
797         * src/SDCCdflow.c
798         * src/SDCCcse.c
799         * src/SDCCcse.h
800         * src/SDCCBBlock.h
801         * src/SDCCBBlock.c
802
803 2003-11-23 Klaus Flittner <klaus_flittner@gmx.de>
804
805         fixed bug #845089
806         * src/SDCCbitv.h,
807         * src/SDCCbitv.c: added function to free a bitvector
808         * src/SDCClrange.h,
809         * src/SDCClrange.c: added function to recompute the liveranges
810         * src/avr/ralloc.c,
811         * src/ds390/ralloc.c,
812         * src/hc08/ralloc.c,
813         * src/mcs51/ralloc.c,
814         * src/pic/ralloc.c,
815         * src/pic16/ralloc.c,
816         * src/xa51/ralloc.c,
817         * src/z80/ralloc.c: recompute the liveranges after register packing
818
819 2003-11-21 Klaus Flittner <klaus_flittner@gmx.de>
820
821         * src/SDCCloop.c (newInduction): fixed bug #845630
822
823 2003-11-21 Erik Petrich <epetrich@ivorytower.norman.ok.us>
824
825         * src/SDCCsymt.c (compareTypesExact): disabled debugging output
826         inadvertantly left behind from my 2003-11-12 change
827
828 2003-11-20 Erik Petrich <epetrich@ivorytower.norman.ok.us>
829
830         Updated headers I neglected to commit yesterday.
831         * src/SDCClrange.h,
832         * src/SDCCicode.h
833
834 2003-11-19 Erik Petrich <epetrich@ivorytower.norman.ok.us>
835
836         * src/SDCCcse.c (algebraicOpts): fixed bug #773153
837         * src/SDCClrange.c (rlivePoint): need to mark IC_RESULT used if POINTER_SET op
838         * src/SDCCopt.c (eBBlockFromiCode),
839         * src/SDCClrange.c (hashiCodeKeys, sequenceiCode, computeLiveRanges): seperated
840         the creation of the key hash table from the sequencing so it can be used
841         earlier (for some GCSE bug fixes still pending)
842
843 2003-11-15 Frieder Ferlemann <Frieder.Ferlemann@web.de>
844
845         * src/mcs51/gen.c (genPlus): generate shortcut for adding 0xab00
846         * support/regression/tests/addsub.c: testing genPlus shortcut
847
848 2003-11-15  Borut Razem <borut.razem@siol.net>
849
850         * src/SDCCmain.c: fixed bug #841645: -MM command line option passed to sdcpp
851
852 2003-11-15 Erik Petrich <epetrich@ivorytower.norman.ok.us>
853
854         * src/SDCCcse.c (cseBBlock): fixed bug #527779
855         * src/SDCCcse.c (deleteGetPointers): rewrote so that the set
856         ordering is immaterial.
857         * src/SDCCdflow.c (mergeInExprs): fixed bug #587536
858
859 2003-11-14 Erik Petrich <epetrich@ivorytower.norman.ok.us>
860         
861         * src/SDCCicode.c (geniCodeAddressOf): fixed part of bug #840381
862         * src/SDCCopt.c (replaceRegEqv, isLocalWithoutDef): fixed other part
863         (SIGSEV) of bug #840381
864         * src/SDCCmain.c (linkEdit, assemble): fixed bug #841606 (don't
865         unlink new file before rename if new and old filenames are the same)
866
867 2003-11-13 Frieder Ferlemann <Frieder.Ferlemann@web.de>
868
869         * src/mcs51/main.c: started fixing bug #737001 (SDCC not clearing
870         uninitialized variables) for the mcs51. Set environment variable 
871         SDCC_GENRAMCLEAR to test. 
872         xdata initialization slightly shorter
873
874 2003-11-12 Erik Petrich <epetrich@ivorytower.norman.ok.us>
875
876         * src/SDCCsymt.h,
877         * src/SDCCsymt.c (addSymTypeChain, compareTypesExact): fixed bugs
878         #838241 & 780691 (basicly the same bug)
879         * src/SDCCBBlock.c (iCode2eBBlock): fixed bug #840148
880         * src/SDCCBBlock.c (iCodeFromeBBlock): fixed bug #840162
881
882 2003-11-11 Bernhard Held <bernhard@bernhardheld.de>
883
884         * src/SDCCmain.c (linkEdit): "fix" #834252
885
886 2003-11-11 Erik Petrich <epetrich@ivorytower.norman.ok.us>
887
888         * src/SDCCast.c (removePostIncDecOps, removePreIncDecOps),
889         * src/SDCCast.h,
890         * src/SDCC.y: fixed bug #819403
891
892 2003-11-08 Erik Petrich <epetrich@ivorytower.norman.ok.us>
893
894         * support/regression/fwk/lib/testfwk.c: printn is recursive and thus needs
895         the reentrant attribute.
896         * src/hc08/gen.c (genPackBits): added missing stack readjustment
897         * sim/ucsim/hc08.src/inst.cc (inst_mov): fixed bugs with mov instruction
898         simulation
899         * src/SDCCast.c (decorateType): fixed bug with storage class not being
900         updated during pointer dereference; f.e. ~(((char *)1)*) was being
901         erroneously reduced to a literal.
902         * src/hc08/ralloc.c (packRegisters, rematStr),
903         * src/hc08/gen.c (aopForRemat): allow literals to be rematerialized in
904         some cases
905
906 2003-11-08 Frieder Ferlemann <Frieder.Ferlemann@web.de>
907
908         * src/mcs51/main.c: fixed bug #838385. Thanks to Josef Pavlik for finding and fixing
909         * doc/sdccman.lyx: changed from 'article' to 'book'
910         * doc/Makefile: readded test_suite_spec and cdbfileformat
911
912 2003-11-08 Bernhard Held <bernhard@bernhardheld.de>
913
914         * device/include/stdlib.h: include malloc.h to comply with ANSI
915         * support/regression/tests/malloc.c: include stdlib.h instead of malloc.h
916
917 2003-11-07 Frieder Ferlemann <Frieder.Ferlemann@web.de>
918
919         * doc/Makefile: sdccman.pdf should build with correct references (more info in commit msg)
920         * doc/clean.mk: also remove *.out files
921         * doc/sdccman.lyx: some additions, larger top/bottom margins
922
923 2003-11-07 Erik Petrich <epetrich@ivorytower.norman.ok.us>
924
925         * src/SDCC.y: fixed bug #837365
926         * support/regression/tests/bitopcse.c
927         * src/hc08/gen.c (genPointerGet): Don't assume pointer operand is
928         a symbol (might be valop instead)
929         * device/lib/Makefile.in: added errno.c to HC08SOURCES
930         * device/lib/clean.mk: added hc08 to the cleaning list
931
932 2003-11-04  Borut Razem <borut.razem@siol.net>
933
934         * configure, configure.in, sdcc_vc_in.h, sdcconf_in.h: reverted changes,
935           made 2003-11-04
936         * support/Util/NewAlloc.c, as/hc08/lklibr.c, as/mcs51/lklibr.c,
937           as/z80/aslist.c, as/z80/assym.c: removed inclusion of nonstandard malloc.h;
938           malloc is declared in standard stdlib.h
939
940 2003-11-06 Erik Petrich <epetrich@ivorytower.norman.ok.us>
941
942         * device/lib/hc08/Makefile: need to clean .rel not .o files
943         * src/hc08/gen.c (genDjnz): can't use djnz with extended addressing mode
944
945 2003-11-06 Erik Petrich <epetrich@ivorytower.norman.ok.us>
946
947         * src/port.h,
948         * src/hc08/main.c,
949         * src/mcs51/main.c,
950         * src/ds390/main.c,
951         * src/z80/main.c,
952         * src/avr/main.c,
953         * src/pic/main.c,
954         * src/pic16/main.c,
955         * src/xa51/main.c: added hasExtBitOp & oclsExpense functions to ports
956         * src/SDCCicode.c: changed several IS_FARSPACE tests to isOclsExpensive
957         tests (which uses the port's oclsExpense function)
958         * src/SDCC.y,
959         * src/SDCCast.c,
960         * src/SDCCicode.c,
961         * src/hc08/gen.c,
962         * src/ds390/gen.c,
963         * src/mcs51/gen.c: added support for the SWAP iCode (RFE #834167)
964
965 2003-11-04 Erik Petrich <epetrich@ivorytower.norman.ok.us>
966
967         * src/SDCCcse.c (ifxOptimize),
968         * src/SDCClabel.c (labelIfx, deleteIfx): When the condition to
969         an IFX iCode is volatile, convert to DUMMY_READ_VOLATILE instead
970         deleting the IFX iCode.
971         * src/hc08/ralloc.c: reduced unneeded slocs
972         * src/hc08/gen.c: fixed bug in asmopToBoolean
973
974 2003-11-04  Borut Razem <borut.razem@siol.net>
975
976         * configure, configure.in, sdcc_vc_in.h, sdcconf_in.h,
977           support/Util/NewAlloc.c, as/hc08/lklibr.c, as/mcs51/lklibr.c,
978           as/z80/aslist.c, as/z80/assym.c: decision to include malloc.h
979           transferred to configure
980
981 2003-11-03 Bernhard Held <bernhard@bernhardheld.de>
982
983         Use headers defined in the C[++] standards:
984         * sim/ucsim/gui.src/serio.src/fileio.cc
985         * sim/ucsim/gui.src/serio.src/frontend.cc
986         * sim/ucsim/gui.src/serio.src/main.cc
987         * sim/ucsim/gui.src/serio.src/posix_signal.cc
988         * support/Util/NewAlloc.c
989         * as/hc08/lklibr.c
990         * as/mcs51/lklibr.c
991         * as/z80/aslist.c
992         * as/z80/assym.c
993
994 2003-11-03  Jesus Calvino-Fraga <jesusc@ece.ubc.ca>
995
996         * Added MSVC projects for hc08 assembler and linker:
997         all.dsp, config.dsp, sdcc.dsw, /as/hc08/as_hc08.dsp,
998         /as/hc08/link_hc08.dsp
999
1000 2003-11-03 Martin Helmling <Martin.Helmling@octo-soft.de>
1001
1002         * debugger/mcs51/cmd.c: allows filename starting with digit(+ some debug)
1003
1004 2003-11-02 Bernhard Held <bernhard@bernhardheld.de>
1005
1006         * src/SDCCmain.c (linkEdit): "fixed" again bug #833605
1007
1008 2003-11-01 Frieder Ferlemann <Frieder.Ferlemann@web.de>
1009
1010         * src/mcs51/main.c: xdata initialization is 13 bytes shorter now
1011
1012 2003-10-31  Borut Razem <borut.razem@siol.net>
1013
1014         * support/cpp2/cpplib.h,
1015           support/cpp2/cpplib.c,
1016           support/cpp2/cpplex.c,
1017           support/cpp2/cppinit.c: introduced #pragma preproc_asm [ + | - ]
1018           to switch _asm block preprocessing on / off. Default is
1019           #pragma preproc_asm +
1020
1021 2003-10-31  Borut Razem <borut.razem@siol.net>
1022
1023         * support/cpp2/cpplex.c: Fixed _WIN32 problem with CR-CR-LF sequences
1024           when outputting comment blocks (when executed with -C option) and
1025           _asm (SDCPP specific) blocks
1026
1027 2003-10-31 Erik Petrich <epetrich@ivorytower.norman.ok.us>
1028         
1029         * as/hc08/lkrloc.c (relr): Fixed ihx output, fixed lastAreaIndex warning
1030
1031 2003-10-31 Klaus Flittner <klaus_flittner@gmx.de>
1032
1033         * src/SDCCcse.c (updateSpillLocation): fixed bug #808027
1034
1035 2003-10-31 Bernhard Held <bernhard@bernhardheld.de>
1036
1037         * src/SDCCmain.c (linkEdit): "fixed" bug #833605
1038         * src/SDCCast.c (decorateType): fixed bug #832664
1039
1040 2003-10-31  Borut Razem <borut.razem@siol.net>
1041
1042         * support\cpp2\cpplex.c: fixed for SDCPP:
1043           comments(when executed with -C option) and _asm blocks
1044           were included even if they where in skipped #if block.
1045           Applied solution from GCC cpp 3.3.2
1046
1047 2003-10-31  Borut Razem <borut.razem@siol.net>
1048
1049         * src/SDCC.lex: sdcc now understands both formats:
1050           '# <line_number> <file_name>' and
1051           '#line <line_number> <file_name>'
1052         * support/cpp2/cppmain.c: sdcpp now generates the standard
1053           '# <line_number> <file_name>' instead of former
1054           '#line <line_number> <file_name>'
1055
1056 2003-10-30  Borut Razem <borut.razem@siol.net>
1057
1058         * support/cpp2/cpphash.h,
1059         * support/cpp2/cpplib.h
1060         * support/cpp2/cpplex.c,
1061         * support/cpp2/cppmain.c,
1062         * support/cpp2/cppinit.c: fixed bug #828015 - Syntax variation for _asm character constants
1063
1064 2003-10-30 Erik Petrich <epetrich@ivorytower.norman.ok.us>
1065
1066         Fixed a number of problems revealed by bug #827883.
1067         * src/SDCCloop.c (loopInvariants): Spill location of the
1068         result operand should be recomputed if extracted from
1069         a loop. Also, don't extract assignments of an iTemp
1070         from a literal.
1071         * src/SDCCast.c (isConformingBody): loop reversal should
1072         not occur if the control variable is involved with a
1073         relational operator.
1074
1075 2003-10-28 Bernhard Held <bernhard@bernhardheld.de>
1076
1077         * .version: bumped to 2.3.6 to reflect the big improvements
1078         made by Erik and Klaus. Thanks!
1079
1080 2003-10-28 Klaus Flittner <klaus_flittner@gmx.de>
1081
1082         Replaced the livrange code.
1083         * src/SDCClrange.c: added new LR code
1084         * src/SDCCloop.c,
1085         * src/SDCCBBlock.h: removed remainig parts from old LR code
1086         * src/ds390/ralloc.c,
1087         * src/ds390/gen.c: minor fixes to make it work with new code
1088
1089 2003-10-28 Erik Petrich <epetrich@ivorytower.norman.ok.us>
1090
1091         * as/hc08/asm.h,
1092         * as/hc08/lkrloc.c,
1093         * src/hc08/gen.c,
1094         * src/hc08/ralloc.c: Fix various warnings related to the hc08
1095         * src/SDCCicode.c (geniCodePreInc, geniCodePreDec): Fixed bug #829717
1096         (tweaked fix for bug #818696)
1097
1098 2003-10-23 Erik Petrich <epetrich@ivorytower.norman.ok.us>
1099
1100         * src/z80/ralloc.c (joinPushes): Fixed bug #828742
1101
1102 2003-10-23 Erik Petrich <epetrich@ivorytower.norman.ok.us>
1103
1104         * src/SDCCmain.c,
1105         * sdccconf_in.h: Fixed bug #828387 (--disable-hc08-port didn't work)
1106         * src/mcs51/gen.c (gencjneshort),
1107         * src/ds390/gen.c (gencjneshort): Made comparison with AOP_IMMD operand
1108         more efficient (per Scott Bronson's suggestion)
1109
1110 2003-10-22 Erik Petrich <epetrich@ivorytower.norman.ok.us>
1111
1112         Extended the semantics of the critical keyword to include
1113         individual statements. See RFE #827755 and #799831
1114         * src/SDCC.y
1115         * src/SDCCicode.c
1116         * src/SDCCopt.c
1117         * src/SDCCast.c
1118         * support/Util/SDCCerr.c
1119         * support/Util/SDCCerr.h
1120         * src/mcs51/gen.c
1121         * src/ds390/gen.c
1122         * src/hc08/gen.c
1123
1124 2003-10-19  Borut Razem <borut.razem@siol.net>
1125
1126         * src/SDCC.lex: fixed bug #825944 - defined yytext_ptr to make it compile with flex 2.5.31
1127
1128 2003-10-19 Erik Petrich <epetrich@ivorytower.norman.ok.us>
1129
1130         * src/SDCCicode.c (geniCodePreInc, geniCodePreDec, ast2iCode):
1131         Fixed bug #818696
1132         * src/SDCCast.c (ast_print): Fixed --dumptree so that preincrement
1133         and predecrement operand is displayed
1134
1135 2003-10-13 Bernhard Held <bernhard@bernhardheld.de>
1136
1137         * src/SDCCval.c (valMinus): fixed bug #826041
1138
1139 2003-10-15 Erik Petrich <epetrich@ivorytower.norman.ok.us>
1140
1141         Some hc08 related updates that I missed earlier
1142         * sim/ucsim/stypes.h
1143         * support/regression/ports/hc08/spec.mk
1144
1145 2003-10-15 Erik Petrich <epetrich@ivorytower.norman.ok.us>
1146
1147         New target "hc08" for the Motorola 68hc08 family of micros
1148
1149         * configure
1150         * configure.in
1151         * Makefile
1152         * src/hc08/*
1153         * src/SDCCmain.c
1154         * src/port.h
1155         * sim/ucsim/hc08.src/*
1156         * sim/ucsim/configure.in
1157         * src/ucsim/configure
1158         * sim/ucsim/packages_in.mk
1159         * as/hc08/*
1160         * as/Makefile
1161         * device/include/mc68hc908qy.h
1162         * device/lib/hc08/*
1163         * device/lib/Makefile.in
1164         * support/regression/ports/hc08/*
1165         * support/regression/Makefile
1166
1167 2003-10-14 Erik Petrich <epetrich@ivorytower.norman.ok.us>
1168
1169         * src/z80/gen.c: fixed bug revealed by ast_constant_folding.c
1170         regression test
1171         * src/ds390/gen.c (genCast): fixed bug #821957
1172
1173 2003-10-13 Bernhard Held <bernhard@bernhardheld.de>
1174
1175         * device/lib/logf.c: "fixed" overlay bug
1176         * support/regression/ports/host/spec.mk: added m library
1177         * support/regression/ports/mcs51-stack-auto/spec.mk: added float funcs
1178         * support/regression/tests/float_trans: added (for Eric)
1179
1180 2003-10-12 Bernhard Held <bernhard@bernhardheld.de>
1181
1182         * src/mcs51/gen.c (genCpl): fixed bug
1183         http://sf.net/mailarchive/message.php?msg_id=6263915
1184
1185 2003-10-10 Bernhard Held <bernhard@bernhardheld.de>
1186
1187         * src/SDCCast.c (decorateType): added extended constant folding
1188         * src/SDCCsymt.c (computeType): cleanup
1189         * src/SDCCval.c (valShift): minor optimization
1190         * support/regression/tests/ast_constant_folding.c: added
1191
1192 2003-10-09  Erik Petrich <epetrich@ivorytower.norman.ok.us>
1193
1194         * src/SDCCmain.c: removed some unintended changes
1195
1196 2003-10-09  Erik Petrich <epetrich@ivorytower.norman.ok.us>
1197
1198         * src/SDCCmain.c (setParseWithComma): fixed bug #816685
1199         * src/z80/gen.c: fixed part of bug #817589
1200         * src/SDCCsymt.c (checkFunction): fixed bug #817895
1201
1202 2003-10-08 Bernhard Held <bernhard@bernhardheld.de>
1203
1204         Replaced cast (void **) with (void *) to avoid gcc 3 warning:
1205         * src/SDCCcflow.c
1206         * src/SDCCcse.c
1207         * src/SDCCdflow.c
1208         * src/SDCClabel.c
1209         * src/SDCClrange.c
1210         * src/SDCCmem.c
1211         * src/SDCCopt.c
1212         * src/SDCCpeeph.c
1213         * src/SDCCset.c
1214         * src/avr/ralloc.c
1215         * src/ds390/ralloc.c
1216         * src/izt/ralloc.c
1217         * src/mcs51/ralloc.c
1218         * src/pic/ralloc.c
1219         * src/pic16/ralloc.c
1220         * src/xa51/ralloc.c
1221         * src/z80/ralloc.c
1222         * src/z80/gen.c: removed unused label "release:"
1223
1224 2003-10-06  Borut Razem <borut.razem@siol.net>
1225
1226         * src/SDCC.lex: removed definition of unused variables
1227           save_optimize and save_options
1228
1229 2003-10-06 Bernhard Held <bernhard@bernhardheld.de>
1230
1231         * clean.mk: removed '=' in "-maxdepth=1"
1232         * src/SDCCloop.c: replace LRKLAUS with SDCC_LRKLAUS
1233         * src/SDCClrange.c: replace LRKLAUS with SDCC_LRKLAUS
1234
1235 2003-10-06  Borut Razem <borut.razem@siol.net>
1236
1237         * src/SDCC.lex, src/SDCC.lex: use dbuf for "_asm" definitions;
1238           my_unput() replaced by unput()
1239
1240 2003-10-05 Bernhard Held <bernhard@bernhardheld.de>
1241
1242         * src/SDCCloop.c (assignmentsToSym, loopInduction): cast argument of
1243         setToNull() to (void *) to avoid gcc3.x's warning: "dereferencing
1244         type-punned pointer will break strict-aliasing rules"
1245         Old LR behaviour is again default; Klaus' LR can be choosen by
1246         defining the environment variable LRKLAUS
1247         * src/SDCCBBlock.h
1248         * src/SDCCloop.c
1249         * src/SDCClrange.c
1250         * src/ds390/ralloc.c (spillThis): applied Klaus' patch
1251         * clean.mk: fixed removal of files in bin/CVS/
1252         * device/lib/clean.mk: fixed removal of directories small and large
1253         * support/Util/SDCCerr.c: changed W_INT_OVL to ERROR_LEVEL_PEDANTIC
1254         * src/SDCCicode.c,
1255         * src/SDCCval.c: removed superflous test for pedantic
1256
1257 2003-10-05  Borut Razem <borut.razem@siol.net>
1258
1259         * src/SDCC.lex, support/Util/SDCCerr.c, sdcc/support/Util/SDCCerr.h:
1260           Fixed bug #816692: introduced new ERROR_LEVEL_PEDANTIC warning
1261           message "unmatched #pragma SAVE and #pragma RESTORE"
1262
1263 2003-10-04  Frieder Ferlemann <Frieder.Ferlemann@web.de>
1264
1265         * doc/sdccman.lyx: various additions and updates (interrupts, inline
1266           assembly, critical functions, atomic, nojtbound)
1267
1268 2003-10-04 Bernhard Held <bernhard@bernhardheld.de>
1269
1270         Applied liferange patch from Klaus Flittner <klaus_flittner@gmx.de>
1271         * src/SDCCBBlock.h
1272         * src/SDCCloop.c
1273         * src/SDCCloop.h
1274         * src/SDCClrange.c
1275
1276 2003-10-03  Erik Petrich <epetrich@ivorytower.norman.ok.us>
1277
1278         * src/z80/gen.h,
1279         * src/z80/gen.c (aopOp, aopGet, aopPut, genDummyRead),
1280         * src/mcs51/gen.h
1281         * src/mcs51/gen.c (aopOp, aopGet, aopPut, genDummyRead),
1282         * src/ds390/gen.h
1283         * src/ds390/gen.c (aopOp, aopGet, aopPut, genDummyRead),
1284         * src/SDCCicode.c (ast2iCode, geniCodeDummyRead): Fixed bug #663539
1285         * src/SDCCopt.c (killDeadCode): Fixed bugs #663539 & #816705
1286
1287 2003-10-02  Erik Petrich <epetrich@ivorytower.norman.ok.us>
1288
1289         * src/z80/gen.c (genRet): fixed bug #524753
1290         * src/z80/gen.c (genCast): fixed internal error on cast from
1291         pointer to long
1292         * src/z80/gen.c (_saveRegsForCall, emitCall): adapted Johan's
1293         fix for bug #477835 to the z80
1294         * src/z80/gen.c (genZ80code, _vemit2, _emit2): added support
1295         for tracking iCodes in the peephole optimizer for z80
1296
1297 2003-10-01  Erik Petrich <epetrich@ivorytower.norman.ok.us>
1298
1299         * src/SDCCicode.c (geniCodeJumpTable, geniCodeSwitch): fixed
1300         the other part of bug #814548
1301         * src/SDCCpeeph.c (labelInRange): fixed bug #814558
1302
1303 2003-09-30  Bernhard Held <bernhard@bernhardheld.de>
1304
1305         * src/SDCCcse.c: fixed part of bug #814548
1306
1307 2003-09-28  Borut Razem <borut.razem@siol.net>
1308
1309         * src/asm.c: rewrite of printILine() to use temporary file instead
1310           a pipe
1311         * src/xa51/main.c: commented out declaration of int rewinds
1312
1313 2003-09-27  Erik Petrich <epetrich@ivorytower.norman.ok.us>
1314
1315         * src/SDCCicode.c (geniCodeJumpTable): Fixed bug #813206
1316
1317 2003-09-26  Erik Petrich <epetrich@ivorytower.norman.ok.us>
1318
1319         * src/SDCCdflow.c (computeDataFlow): Fixed bug #810746
1320         * src/asm.c (printILine): Fixed bug #811015
1321
1322 2003-09-22  Jesus Calvino-Fraga <jesusc@ece.ubc.ca>
1323
1324         *link/z80/lklibr.c, as/mcs51/lklibr.c: Improved memory allocation and
1325         freeing.
1326
1327 2003-09-21  Erik Petrich <epetrich@ivorytower.norman.ok.us>
1328
1329         * src/z80/gen.c (setupToPreserveCarry): Fixed bug #796955
1330         * src/z80/gen.c (setupPair, genMovePairPair): Fixed setupPair
1331         to correctly handle general case of AOP_PAIRPTR
1332         * src/z80/gen.c (aopGet, aopPut): Generalized AOP_PAIRPTR handling
1333
1334 2003-09-21  Erik Petrich <epetrich@ivorytower.norman.ok.us>
1335
1336         * src/mcs51/ralloc.c (fillGaps),
1337         * src/ds390/ralloc.c (fillGaps): fixed bug #810093 (yet another
1338         register positioning bug)
1339
1340 2003-09-21  Bernhard Held <bernhard@bernhardheld.de>
1341
1342         * device/lib/_fsdiv.c: replaced (1<<31) by (1ul<<31)
1343
1344 2003-09-19  Erik Petrich <epetrich@ivorytower.norman.ok.us>
1345
1346         * src/mcs51/gen.c (loadDptrFromOperand, genFarPointerGet,
1347         genCodePointerGet, genGenPointerGet, genFarPointerSet,
1348         genGenPointerSet): handle AOP_DPTR correctly when loading dptr
1349         (ralloc doesn't intentionally do this now, but perhaps later)
1350         * src/mcs51/ralloc.c (serialRegAssign, fillGaps),
1351         * src/ds390/ralloc.c (serialRegAssign, fillGaps): fixed some
1352         register positioning bugs (Fixed bug #762602 and #795325)
1353         * src/SDCCicode.c (geniCodeDerefPtr): Track output class correctly
1354         (Fixed bug #808779)
1355         * src/z80/gen.c: increased _vemit2's buffer[] to handle long
1356         lines that --i-code-in-asm generates
1357
1358 2003-09-18  Jesus Calvino-Fraga <jesusc@ece.ubc.ca>
1359
1360         *link/z80/lklibr.c, as/mcs51/lklibr.c: Fixed Linux segfaults when
1361         trying to fclose a FILE* that was already closed.
1362
1363 2003-09-18  Erik Petrich <epetrich@ivorytower.norman.ok.us>
1364
1365         * src/SDCCsymt.c (structElemType): fixed bug #808291 (members
1366         of const struct should be treated as if const themselves)
1367
1368 2003-09-18  Bernhard Held <bernhard@bernhardheld.de>
1369
1370         * src/SDCCval.c (valPlus, valMinus): fixed bug #808337
1371
1372 2003-07-06  Jesus Calvino-Fraga <jesusc@ece.ubc.ca>
1373
1374         * support/librarian/sdcclib.c: Generate correct offsets for libraries with
1375         Unix (/n) and DOS (/r/n) line terminations.
1376
1377 2003-09-17  Erik Petrich <epetrich@ivorytower.norman.ok.us>
1378
1379         * src/SDCCopt.c (cnvFromFloatCast, cnvToFloatCast): fixed
1380         bug #613775
1381
1382 2003-09-16  Erik Petrich <epetrich@ivorytower.norman.ok.us>
1383
1384         * src/mcs51/gen.c (genFunction, genEndFunction),
1385         * src/ds390/gen.c (genFunction, genEndFunction): Moved save
1386         and restore of EA so that stack offsets to parameters are
1387         correct when using both critical and reentrant/stack-auto.
1388         * src/z80/gen.c (aopOp): removed erroneous assertion about sloc
1389         size (can be triggered in error if sloc is shared between
1390         different sized objects)
1391         * device/include/float.h: fixed macros to explicitly use
1392         unsigned long where needed
1393
1394 2003-09-15  Bernhard Held <bernhard@bernhardheld.de>
1395
1396         Feature req. 799831: added code to allow nesting of critical functions
1397         * src/mcs51/gen.c (genFunction, genEndFunction)
1398         * src/ds390/gen.c (genFunction, genEndFunction)
1399
1400 2003-09-14  Erik Petrich <epetrich@ivorytower.norman.ok.us>
1401
1402         * src/SDCCsymt.c (sclsFromPtr),
1403         * src/SDCCsymt.h,
1404         * src/SDCCast.c (decorateType): fixed bug #462971. Also, better
1405         support for standard C idiom of memory mapped variables; for
1406         example, *((xdata int*)0x1234) = 1 is now internally equivalent
1407         to xdata int at 0x1234 tempvar = 1.
1408         * sim/ucsim/z80.src/inst_xd.cc: fixed bug #805483 with patch
1409         provided by Akiya ISHIDA
1410
1411 2003-09-13  Bernhard Held <bernhard@bernhardheld.de>
1412
1413         * src/SDCCval.c (cheapestVal): reenabled to reduce int to char
1414         * src/SDCCval.c (constVal): added reduction from int to char
1415         * src/SDCCval.c (valMult, valDiv): fixed sign handling
1416         * src/SDCCval.c (valShift): fixed after change of cheapestVal()
1417         * src/SDCCval.c (valCompare): fixed EQ_OP and NE_OP; they have
1418         to ignore the sign
1419         * support/regression/tests/shifts.c: fixed
1420
1421 2003-09-13  Erik Petrich <epetrich@ivorytower.norman.ok.us>
1422
1423         * src/z80/gen.c (genXor): Fixed bug #805445
1424
1425 2003-09-12  Erik Petrich <epetrich@ivorytower.norman.ok.us>
1426
1427         Fixed bug #621531 (const & volatile confusion in the type chain).
1428         DCL_PTR_CONST, DCL_PTR_VOLATILE, & IS_PTR_CONST now exclusively
1429         refer to the const or volatile state of the pointer itself.
1430
1431         * src/SDCCast.c
1432         * src/SDCCglue.c
1433         * src/SDCCicode.c
1434         * src/SDCCsymt.c
1435         * src/SDCCval.c
1436         * src/SDCC.y
1437         * src/SDCCsymt.h
1438         * src/pic/gen.c
1439         * src/pic/ralloc.c
1440         * src/pic16/gen.c
1441         * src/pic16/ralloc.c
1442         * support/regression/tests/const.c
1443
1444 2003-09-10  Jesus Calvino-Fraga <jesusc@ece.ubc.ca>
1445
1446         When checking for duplicated modules, use absolute paths
1447         instead of relative paths.  Files changed:
1448
1449         * as/mcs51/lklib.c
1450         * link/z80/lklib.c
1451
1452 2003-09-09  Erik Petrich <epetrich@ivorytower.norman.ok.us>
1453
1454         * src/SDCCicode.c (geniCodeLogic): fixed bug #797572
1455
1456 2003-09-07  Erik Petrich <epetrich@ivorytower.norman.ok.us>
1457
1458         * device/include/string.h: added size_t typedef, changed
1459         prototypes to use size_t, eliminated separate reentrant and
1460         non-reentrant declarations, added _memmove declaration
1461         * device/lib/_memcpy.c: changed to use size_t instead of int,
1462         changed /4 to >>2 to avoid division library call
1463         * device/lib/_memcmp.c,
1464         * device/lib/_memset.c,
1465         * device/lib/_strncat.c,
1466         * device/lib/_strncpy.c,
1467         * device/lib/_strncmp.c: changed to use size_t instead of int
1468         * device/lib/_memmove.c: new file (fixed bug #772294)
1469         * device/lib/Makefile.in: added _memmove.c
1470         * device/lib/z80/asm_strings.s: fixed bug #772290
1471         * support/regression/tests/bitfields.c: attempt to fix host assertion
1472         failure on amd64-unknown-linux2.2
1473
1474 2003-09-06  Erik Petrich <epetrich@ivorytower.norman.ok.us>
1475
1476         * src/z80/gen.c (aopPut, spillPairReg): fixed bug #800998
1477         * src/z80/gen.c (genFunction, genEndFunction): fixed "bug" #774700
1478         * as/z80/asmain.c (main): fixed bug #801766
1479
1480 2003-09-06  Bernhard Held <bernhard@bernhardheld.de>
1481
1482         * src/SDCCicode.c (ast2iCode): fixed differences in iCode with different
1483         compilers
1484
1485 2003-09-05  Erik Petrich <epetrich@ivorytower.norman.ok.us>
1486
1487         * src/SDCCast.c (isConformingBody): fixed loop reversal bug
1488         reported in bug #800609
1489
1490 2003-09-04  Vangelis Rokas <vrokas@otenet.gr>
1491
1492         * Top header beautifications in src/pic16 directory:
1493           device.c, device.h, gen.c, gen.h, genarith.c, glue.c, pcode.c,
1494           pcodeflow.c, pcodeflow.h, pcode.h, pcodepeep.c, pcoderegs.c,
1495           pcoderegs.h, ralloc.c, ralloc.h
1496         * main.c: added top header and GPL license notice
1497         * pcode.c: fixed the if-conditional warning
1498  
1499 2003-09-04  Bernhard Held <bernhard@bernhardheld.de>
1500
1501         * device/lib/_mullong.c: replaced int by short for gcc
1502
1503 2003-08-31  Erik Petrich <epetrich@ivorytower.norman.ok.us>
1504
1505         * src/SDCCpeeph.c (notVolatile, notVolatileVariable): handle IFX
1506         and JUMPTABLE iCodes properly now (worked by accident before)
1507         * src/mcs51/gen.c (leftRightUseAcc),
1508         * src/ds390/gen.c (leftRightUseAcc): handle IFX and JUMPTABLE
1509         iCode properly now. Use getSize instead of nRegs since a & b
1510         aren't part of the nRegs tally.
1511
1512 2003-08-31  Vangelis Rokas <vrokas@otenet.gr>
1513
1514         * src/pic16/main.c: corrected offsets of interrupt vectors in _pic16_genIVT()
1515         * src/pic16/pcode.c: fix to disable inserting BANKSEL directive
1516           before instructions that use the _STATUS register
1517
1518 2003-08-31  Bernhard Held <bernhard@bernhardheld.de>
1519
1520         * src/mcs51/gen.c (freeAsmop): fixed off by one in stack offset (AOP_STK)
1521         * src/mcs51/gen.c (genNearPointerSet): added missing opcode for
1522         fetching of the pointer
1523         * src/mcs51/gen.c (genNearPointerGet): added reuse of PREG,
1524         copied from genNearPointerSet()
1525         * src/mcs51/gen.c (genNearPointerGet): don't pop r0/r1, if RESULTONSTACK
1526         * src/mcs51/gen.c: changed order of freeAsmop(left/right/result)-calls.
1527         If they pop r0/r1 they must be called in the opposite order than aopOp().
1528         * device/lib/_mullong.c: fixed for "--model-large --int-long-reent"
1529         (resp. --stack-auto), prepared for --xstack
1530
1531 2003-08-28  Frieder Ferlemann <Frieder.Ferlemann@web.de>
1532
1533         * doc/sdccman.lyx: reverted tables to those in cvs 1.64
1534
1535 2003-08-28  Bernhard Held <bernhard@bernhardheld.de>
1536
1537         * device/lib/_startup.c: quick & dirty fix for ds390/ds400;
1538         these ports have their own __sdcc_external_start()
1539
1540 2003-08-26  Bernhard Held <bernhard@bernhardheld.de>
1541
1542         pic patch provided by Slade Rich <slade_rich@yahoo.com>
1543         * src/pic/glue.c (pic14printPublics): fixed bug introduced when symbol
1544         type for bits was changed. It resulted in bit variables becoming
1545         global, which is not permitted in PIC 14 assembly output.
1546
1547 2003-08-23  Frieder Ferlemann <Frieder.Ferlemann@web.de>
1548
1549         * doc/sdccman.lyx: various additions and updates. Rearranged sections
1550
1551 2003-08-22  Jesus Calvino-Fraga <jesusc@ece.ubc.ca>
1552
1553         Z80 and MCS51 linkers complaint if a public symbol is defined
1554         in more than one library module:
1555
1556         * as/mcs51/lklib.c
1557         * link/z80/lklib.c
1558         * as/mcs51/Makefile.in
1559
1560 2003-08-22  Erik Petrich <epetrich@ivorytower.norman.ok.us>
1561
1562         A few small changes that speed up the peephole optimizer.
1563
1564         * src/SDCCpeeph.c
1565
1566 2003-08-22  Erik Petrich <epetrich@ivorytower.norman.ok.us>
1567
1568         Try to make the peephole optimizer smarter by maintaining
1569         an association between the assembly source code and the
1570         iCodes that originated them. Put this information to use
1571         with a new peephole rule condition "notVolatile" so that
1572         the rules can be aggressive yet still safe.
1573
1574         * src/SDCCpeeph.c
1575         * src/SDCCpeeph.h
1576         * src/mcs51/gen.c
1577         * src/mcs51/peeph.def
1578
1579 2003-08-20  Erik Petrich <epetrich@ivorytower.norman.ok.us>
1580
1581         Fixed bug #741761
1582
1583         * src/mcs51/gen.c (aopForSym, leftRightUseAcc),
1584         * src/ds390/gen.c (aopForSym, leftRightUseAcc): preserve A and B
1585         if the left or right operand symbols have the accuse flag set.
1586
1587 2003-08-20  Erik Petrich <epetrich@ivorytower.norman.ok.us>
1588
1589         Changed the type of the result of the ! (NOT) operator to char;
1590         previously it returned the same type as the source. This allows
1591         us to eliminate all the genFloatNot functions (all of its target
1592         implementations were very buggy) since !float can use the same
1593         code as !long now.
1594
1595         * src/SDCCicode.c (ast2iCode): ! returns char
1596         * src/mcs51/gen.c (genNot, genNotFloat),
1597         * src/ds390/gen.c (genNot, genNotFloat),
1598         * src/z80/gen.c (genNot, genNotFloat),
1599         * src/pic/gen.c (genNot, genNotFloat),
1600         * src/pic16/gen.c (genNot, genNotFloat): eliminated genNotFloat
1601
1602 2003-08-19  Bernhard Held <bernhard@bernhardheld.de>
1603
1604         pic patch provided by Slade Rich <slade_rich@yahoo.com>
1605         1. Interrupt would not compile properly. Ensure PCLATH register is saved
1606            during interrupts. Ensure WSAVE is located at a shared bank address.
1607         2. Fixed page selection in some places
1608         3. Fixed BTFSS/C to where necessary use registers directly and not simply
1609            the registers name strings.
1610         4. Fixed "signed / unsigned compare" compiler warnings.
1611         5. The PIC port manages its own allocation of the general purpose
1612            registers, but makes no attempt to reuse them. As a result when
1613            compiling it soon runs out of general purpose registers. Some
1614            additional code was added to the files pcode.c and device.c to walk
1615            through the function call tree and rename the registers so that they
1616            get reused.
1617
1618         * src/pic/device.c
1619         * src/pic/gen.c
1620         * src/pic/glue.c
1621         * src/pic/pcode.c
1622         * src/pic/pcode.h
1623         * src/pic/ralloc.c
1624         * src/pic/ralloc.h
1625         * src/pic/genarith.c: Fixed problems with PIC 14 port in functions
1626         genPlus() & genMinus() when the result is the same as left or right
1627
1628 2003-08-18  Erik Petrich <epetrich@ivorytower.norman.ok.us>
1629
1630         * src/z80/gen.c (isUnsplitable, fetchPairLong): fixed bug #770454
1631
1632 2003-08-18  Erik Petrich <epetrich@ivorytower.norman.ok.us>
1633
1634         Made bitfield a distinct type from bit so that bitfields
1635         convert as per ANSI C and bits retain their traditional
1636         boolean style behaviour. Implemented bitfield support in
1637         the z80 port.
1638
1639         * src/SDCCsymt.h,
1640         * src/SDCCsymt.c,
1641         * src/SDCCast.c,
1642         * src/cdbFile.c,
1643         * src/mcs51/gen.c,
1644         * src/ds390/gen.c: bit v bitfield split
1645         * src/z80/gen.c: New support for bitfields
1646         * support/regression/tests/bitfields.c: reenabled z80,
1647         added more tests
1648
1649 2003-08-17  Frieder Ferlemann <Frieder.Ferlemann@web.de>
1650
1651         Rules 246.x, 247.x relate to bitfields, the others speed up
1652         access to xdata mapped I/O devices.
1653
1654         * src/mcs51/peeph.def: added 26 peepholes 246.x - 248.x, 180.x
1655
1656 2003-08-16  Erik Petrich <epetrich@ivorytower.norman.ok.us>
1657
1658         Cleaned up genPackBits and genUnpackBits and added two helper
1659         functions, emitPtrByteGet & emitPtrByteSet. Added optimizations
1660         for literal assignments in genPackBits (thanks to Frieder for
1661         reminding me).
1662
1663         * src/mcs51/gen.c
1664         * src/ds390/gen.c
1665
1666 2003-08-16  Erik Petrich <epetrich@ivorytower.norman.ok.us>
1667
1668         Fixed bug #748310 (pointer to function type mishandled when the
1669         function name is omitted). Also fixed a SIGSEGV when a function
1670         attribute (reentrant, etc) is used on a non-function or on a
1671         function but misplaced before the parameter list.
1672
1673         * src/SDCC.y (abstract_declarator, abstract_declaractor2): fixed
1674         bug #748310
1675         * src/SDCC.y (declarator2_function_attributes): avoided SIGSEGV
1676         * support/Util/SDCCerr.h,
1677         * support/Util/SDCCerr.c: Added func attr misuse error msg
1678
1679 2003-08-13  Bernhard Held <bernhard@bernhardheld.de>
1680
1681         Fixed bug #787649 by anonymous
1682         * src/SDCCglue.c (emitRegularMap): added emission of sloc for func ptr
1683         * src/ds390/gen.c (aopForSym): fixed func ptr in sloc
1684
1685 2003-08-14  Erik Petrich <epetrich@ivorytower.norman.ok.us>
1686
1687         Fixed numerous bitfield problems.
1688
1689         * src/SDCC.y: More bitfield related error checking
1690         * src/SDCCsymt.h,
1691         * src/SDCCsymt.c (compStructSize): fixed bitfield offset calc
1692         * support/Util/SDCCerr.h,
1693         * support/Util/SDCCerr.c: Added & edited some bitfield err msgs
1694         * src/mcs51/gen.c (genPackBits, genUnpackBits): fixed mask bugs
1695         * src/ds390/gen.c (genPackBits, genUnpackBits): fixed mask bugs
1696         * support/regression/tests/bitfields.c: tests added
1697
1698 2003-08-13  Erik Petrich <epetrich@ivorytower.norman.ok.us>
1699
1700         Made the constant following the "interrupt" keyword optional. If
1701         omitted, the function will not automatically be given an entry
1702         in the interrupt vector table (similar to #pragma NOIV, but
1703         less syntacticly kludgy). The interrupt number is also now
1704         range checked. Also fixed a bug in the high order bit example
1705         in the manual.
1706
1707         * src/SDCC.y
1708         * src/SDCCmem.c
1709         * src/SDCCglue.c
1710         * src/SDCCsymt.h
1711         * support/Util/SDCCerr.c
1712         * support/Util/SDCCerr.h
1713         * doc/sdccman.lyx
1714
1715 2003-08-13  Bernhard Held <bernhard@bernhardheld.de>
1716
1717         * src/SDCCcse.c (algebraicOpts): fix bug converting op from value to type
1718         * src/SDCCicode.c (operandOperation): rewritten some ops
1719         (*, ==, unary_minus) to fix possible overflows and to accord with ANSI
1720         * src/SDCCsymt.c (computeType): literals are handled the same way as any
1721         other type
1722         * src/SDCCval.c (cheapestVal): removed, it doesn't accord with ANSI (can
1723         be re-activated by defining REDUCE_LITERALS)
1724         * src/SDCCval.c (constVal): fixed; hex and octal constants can be
1725         unsigned, but are signed by default
1726         * src/SDCCval.c (constVal): rearranged
1727         * src/SDCCval.c (valMod): preliminary fix
1728         * src/SDCCval.c (valCastLiteral): use TYPE_* types
1729         * support/regression/literalop.c: added, work in progress
1730
1731 2003-08-12  Erik Petrich <epetrich@ivorytower.norman.ok.us>
1732
1733         Generate warnings for useless declarations like "char data;"
1734         that don't do what new users expect.
1735
1736         * src/SDCC.y
1737         * support/Util/SDCCerr.h
1738         * support/Util/SDCCerr.c
1739
1740 2003-08-09  Bernhard Held <bernhard@bernhardheld.de>
1741
1742         * src/SDCCval.c (valMult): fix overflow detection of negative int
1743
1744 2003-08-07  Erik Petrich <epetrich@ivorytower.norman.ok.us>
1745
1746         * src/z80/ralloc.c (joinPushes): made compatible with new signedness
1747
1748         Changes to support big endian targets:
1749
1750         * src/ports.h
1751         * src/SDCCglue.c
1752         * src/avr/main.c
1753         * src/ds390/main.c
1754         * src/izt/i186.c
1755         * src/mcs51/main.c
1756         * src/pic/main.c
1757         * src/pic16/main.c
1758         * src/xa51/main.c
1759         * src/z80/main.c
1760
1761 2003-08-06  Bernhard Held <bernhard@bernhardheld.de>
1762
1763         * src/SDCCval.c (cheapestVal): changed behaviour to the same as constVal()
1764         * device/lib/time.c: fixed warning "integer overflow in expression"
1765
1766 2003-08-05  Bernhard Held <bernhard@bernhardheld.de>
1767
1768         * src/SDCCval.c (cheapestVal, valueFromLit): use TYPE_* types
1769         * src/SDCCval.c (constVal): changed default to signed; hex and octal
1770         constants are unsigned; added recognition of "u" flag for unsigned
1771         * src/SDCCval.c (valMult): fixed signdness, added warning for overflow
1772         * src/SDCCval.c (valDiv, valMod): fixed signdness
1773         * src/SDCCicode.c (operandOperation): fixed critical typo; fixed
1774         signedness of modulo, left and right shift
1775         * support/Util/SDCCerr.c: added warning "integer overflow in expression"
1776         * support/Util/SDCCerr.h: added warning W_INT_OVL
1777         * src/SDCCast.c (decorateType): fixed gcc3.3 warning
1778         * src/SDCCast.c (ast_print): improved output of constants
1779
1780 2003-08-04  Jesus Calvino-Fraga <jesusc@ece.ubc.ca>
1781
1782         Fixed some warnings when building with MSVC:
1783
1784         * as\mcs51\asdata.c
1785         * as\z80\asdata.c
1786         * as\mcs51\asm.h
1787         * as\z80\asm.h
1788         * link\z80\aslink.h
1789         * link\z80\lkdata.c
1790         * link\z80\lkeval.c
1791         * link\z80\lkgb.c
1792         * link\z80\lkihx.c
1793         * link\z80\lks19.c
1794         * link\z80\lksym.c
1795         * support\cpp2\cpplib.c
1796         * src\ds390\gen.c
1797         * src\mcs51\gen.c
1798     
1799 2003-08-03  Bernhard Held <bernhard@bernhardheld.de>
1800
1801         * src/SDCCast.c (constExprTree): fix bug #781827 by Carl Worth <cworth@isi.edu>
1802
1803 2003-08-01  Jesus Calvino-Fraga <jesusc@ece.ubc.ca>
1804
1805         * support\librarian\clean.mk: Do not remove Makefile.
1806         * support\librarian\Makefile: added.
1807
1808 2003-08-01  Jesus Calvino-Fraga <jesusc@ece.ubc.ca>
1809
1810         Added librarian to MSVC build:
1811         * all.dsp
1812         * sdcc.dsw
1813         * support\librarian\librarian.dsp
1814
1815         'configure' not needed for librarian, removed:
1816         * support\librarian\configure
1817         * support\librarian\configure.in
1818         * support\librarian\config_in.h
1819         * support\librarian\Makefile.in
1820
1821         Hopefully these ones built the librarian and the rest of sdcc properly:
1822         * Makefile
1823         * Makefile.common.in
1824
1825         Messed up 'configure', so revert to previous version:
1826         * configure
1827         * configure.in
1828
1829 2003-07-31  Bernhard Held <bernhard@bernhardheld.de>
1830
1831         * src/SDCCicode.c (operandOperation): 3. fix, this time for Alpha; ULONG has 64 bits
1832         there, while the mantissa of a double is "only" 53 bits wide.
1833
1834 2003-07-31  Jesus Calvino-Fraga <jesusc@ece.ubc.ca>
1835
1836         Adding sdcclib to the build.  MSVC project coming soon.
1837         Files added/changed:
1838
1839         * support\librarian\clean.mk
1840         * support\librarian\configure
1841         * support\librarian\configure.in
1842         * support\librarian\config_in.h
1843         * support\librarian\Makefile.bcc
1844         * support\librarian\Makefile.in
1845         * support\librarian\sdcclib.c
1846         * Makefile.bcc
1847         * Makefile
1848         * Makefile.common.in
1849         * configure
1850         * configure.in
1851
1852 2003-07-29  Jesus Calvino-Fraga <jesusc@ece.ubc.ca>
1853
1854         Linker now complaints if linked modules have conflicting options, for
1855         example, one compiled using --model-large and another one compiled with
1856         --model-small.  The following files were modified:
1857
1858         * as\mcs51\asdata.c
1859         * as\mcs51\aslink.h
1860         * as\mcs51\asm.h
1861         * as\mcs51\asmain.c
1862         * as\mcs51\asout.c
1863         * as\mcs51\i51pst.c
1864         * as\mcs51\lkdata.c
1865         * as\mcs51\lklibr.c
1866         * as\mcs51\lkmain.c
1867         * as\z80\asdata.c
1868         * as\z80\asm.h
1869         * as\z80\asmain.c
1870         * as\z80\asout.c
1871         * as\z80\z80pst.c
1872         * link\z80\aslink.h
1873         * link\z80\lkdata.c
1874         * link\z80\lklibr.c
1875         * link\z80\lkmain.c
1876         * src\SDCCglue.c
1877
1878 2003-07-28  Jesus Calvino-Fraga <jesusc@ece.ubc.ca>
1879
1880         *link/z80/aslink.h, link/z80/lklibr.c, as/mcs51/aslink.h,
1881         as/mcs51/lklibr.c: Generate a warning when a library is not found.
1882
1883 2003-07-28  Bernhard Held <bernhard@bernhardheld.de>
1884
1885         * src/z80/mappings.i: fix _mul[us][int,long] entries
1886
1887 2003-07-26  Jesus Calvino-Fraga <jesusc@ece.ubc.ca>
1888
1889         *src/SDCCmain.c: do not search for crt0.o when using --nostdlib
1890
1891 2003-07-24  Bernhard Held <bernhard@bernhardheld.de>
1892
1893         * src/SDCCicode.c (operandOperation): really fixed problem with bitops
1894         * support/regression/tests/bitopcse.c: added
1895         fixed warning:
1896         * src/avr/gen.c:
1897         * src/pic/gen.c:
1898         * src/pic16/gen.c:
1899         * src/z80/gen.c:
1900         * src/xa51/gen.c:
1901
1902 2003-07-24  Jesus Calvino-Fraga <jesusc@ece.ubc.ca>
1903
1904         added support for new library format to z80, gbz80 linkers:
1905         *link/z80/aslink.h
1906         *link/z80/lklex.c
1907         *link/z80/lklib.c
1908         *link/z80/lklist.c
1909
1910 2003-07-24  Bernhard Held <bernhard@bernhardheld.de>
1911
1912         * src/SDCCicode.c (operandOperation): fixed problem with bitops and 0xffffffff;
1913         after {double d = 0xffffffff; long l = d;} l will be 0x80000000 (LONG_MIN)
1914
1915 2003-07-23  Bernhard Held <bernhard@bernhardheld.de>
1916
1917         added DUMMY_READ_VOLATILE:
1918         * src/SDCC.y:
1919         * src/avr/gen.c:
1920         * src/xa51/gen.c:
1921         * src/z80/gen.c:
1922         * src/pic/gen.c:
1923         * src/pic16/gen.c:
1924         * src/mcs51/gen.c:
1925         * src/ds390/gen.c:
1926         * src/SDCCcse.c (algebraicOpts): many improvements
1927         * src/SDCCcse.h: removed algebraicOpts()
1928         * src/SDCCicode.c (picDummyRead): added
1929
1930 2003-07-23  Jesus Calvino-Fraga <jesusc@ece.ubc.ca>
1931
1932         * as/mcs51/lkmem.c: Changed message "Insufficient DRAM memory" to
1933         "Insufficient space in data memory".
1934
1935 2003-07-20  Erik Petrich <epetrich@ivorytower.norman.ok.us>
1936
1937         * src/mcs51/gen.c: fixed bug #771358
1938         * src/z80/gen.c: fixed bug #759087
1939
1940 2003-07-20  Bernhard Held <bernhard@bernhardheld.de>
1941
1942         * src/pic16/glue.c: minor cleanup by Vangelis
1943
1944 2003-07-19  Frieder Ferlemann <Frieder.Ferlemann@web.de>
1945
1946         * device/include/regc515c.h: fixed #758477
1947         * device/lib/_gptrget.c: saving some cycles in generic pointer get
1948         * device/lib/_gptrput.c: saved a few bytes
1949         * my tab spacing is 8, yours too?)
1950         * device/lib/_ser.c: process RX bytes earlier than TX bytes
1951         * device/lib/serial.c: process RX bytes earlier than TX bytes
1952         * src/mcs51/gen.c(genGenPointerGet/Set): removed writing of type after postincrement
1953
1954 2003-07-18  Erik Petrich <epetrich@ivorytower.norman.ok.us>
1955
1956         * src/z80/gen.c: fixed some right shift bugs (#772726 among them)
1957
1958 2003-07-17  Jesus Calvino-Fraga <jesusc@ece.ubc.ca>
1959
1960     * link/z80/lklibr.c: fixed bug when there is a '.' in a library path.
1961
1962 2003-07-17  Bernhard Held <bernhard@bernhardheld.de>
1963
1964         * device/lib/Makefile.in: bad fix, reverted to 1.43
1965
1966 2003-07-16  Bernhard Held <bernhard@bernhardheld.de>
1967
1968         * device/lib/Makefile.in: added missing z80 object files
1969
1970 2003-07-14  Bernhard Held <bernhard@bernhardheld.de>
1971
1972         * src/SDCCcse.c (algebraicOpts): CSE fun with &|^ and 0x00/0xff literals
1973         pic16 progress by Vangelis:
1974         * src/SDCCglobl.h:
1975         * src/SDCCmain.c:
1976         * src/pic/Makefile:
1977         * src/pic:
1978         * pic/Makefile:
1979         * pic16/device.c:
1980         * pic16/device.h:
1981         * pic16/gen.c:
1982         * pic16/gen.h:
1983         * pic16/genarith.c:
1984         * pic16/glue.c:
1985         * pic16/main.c:
1986         * pic16/pcode.c:
1987         * pic16/pcode.h:
1988         * pic16/pcodepeep.c:
1989         * pic16/peeph.def:
1990
1991 2003-07-13  Jesus Calvino-Fraga <jesusc@ece.ubc.ca>
1992
1993     * src/SDCCmain.c, src/SDCCglobl.h: added option --no-std-crt0
1994
1995 2003-07-12  Jesus Calvino-Fraga <jesusc@ece.ubc.ca>
1996
1997     * sdcc.dsw, all.dsp, link/z80/linkgbz80.dsp, as/z80/as-gbz80.dsp:
1998     added gbz80 build to MSVC project.
1999     * src/SDCCmain.c, src/SDCCglue.c, src/z80/main.c, src/z80/z80.dsp,
2000     link/z80/aslink.h, linkz80.dsp: cleaned up z80 and gbz80 asm files
2001     from 8051 stuff and setup so it links using a .lnk file.
2002
2003 2003-07-06  Jesus Calvino-Fraga <jesusc@ece.ubc.ca>
2004
2005     * support/librarian/sdcclib.c: sdcc librarian.
2006     * as/mcs51/aslink.h, as/mcs51/lklib.c: Support for libraries created
2007     with sdcclib.
2008
2009 2003-07-03  Jesus Calvino-Fraga <jesusc@ece.ubc.ca>
2010
2011     * as/mcs51/lkmain.c: properly handle extensions in function afile.
2012
2013 2003-07-02  Borut Razem <borut.razem@siol.net>
2014
2015         * src/port.h, src/SDCCmain.c, src/pic/glue.h, src/pic/main.c,
2016         src/pic16/glue.h, sdcc/src/pic16/main.c, src/izt/i186.c,
2017         src/izt/tlcs900h.c, src/avr/main.c, src/ds390/main.c, src/mcs51/main.c,
2018         src/xa51/main.c, src/z80/main.c:
2019         virtualization of glue() function: each port has it's own glue function,
2020         which is accessed by do_glue function pointer in PORT.general structure
2021
2022 2003-07-01 Kevin Vigor <kevin@vigor.nu>
2023
2024         * DS800C400 fun, improved ROM interface and tinibios.
2025
2026 2003-06-27 Kevin Vigor <kevin@vigor.nu>
2027
2028         * More support for DS80C400. Now includes beginning of interface to ROM.
2029
2030 2003-06-25  Bernhard Held <bernhard@bernhardheld.de>
2031
2032         * src/mcs51/gen.c (gencjneshort): fixed bug #760345
2033
2034 2003-06-20  Jesus Calvino-Fraga <jesusc@ece.ubc.ca>
2035
2036         * as/mcs51/lkaomf51.c: Make sure the size of the last procedure is correct.
2037
2038 2003-06-19  Borut Razem <borut.razem@siol.net>
2039
2040         * src/z80/main.c: fixed Z80 port again: missing -k library paths in linker command line
2041
2042 2003-06-19  Borut Razem <borut.razem@siol.net>
2043
2044         * src/SDCCutil.h, src/SDCCutil.c, src/SDCCglobl.h, src/SDCCmain.c, src/z80/main.c:
2045         fixed Z80 port - crt0.o: cannot open.
2046
2047 2003-06-19  Bernhard Held <bernhard@bernhardheld.de>
2048
2049         * support/Util/MySystem.c (merge_command): revert bad fix
2050
2051 2003-06-18  Borut Razem <borut.razem@siol.net>
2052
2053         * src/SDCC.lex, src/SDCCmain.c: fixed some warnings, introduced with changes made 15.06.1003
2054
2055 2003-06-18  Jesus Calvino-Fraga <jesusc@ece.ubc.ca>
2056
2057         * src/SDCCglobl.h, src/SDCCmain.c, doc/sdccman.lyx:
2058         option --use-stdout sends errors to stdout instead of stderr.
2059
2060 2003-06-18  Bernhard Held <bernhard@bernhardheld.de>
2061
2062         * support/Util/MySystem.c (merge_command): quick fix for Linux segfault with \"cmd\" arg
2063
2064 2003-06-15  Borut Razem <borut.razem@siol.net>
2065
2066         * support/cpp2/sdcc.h: HAVE_DOS_BASED_FILE_SYSTEM defined for _WIN32
2067         * src/SDCC.lex: cloneXxx and copyAndFreeXxx functions for options and optimize stack handling
2068         * src/SDCCglobl.h, src/SDCCmain.c, src/ds390/main.c, src/mcs51/main.c, src/z80/main.c:
2069         fixed width array of pointers replaced with sets;
2070         multiple include and lib paths ared transferred to preprocessor and linker
2071         * src/SDCCset.c, src/SDCCset.h: added function setFromSetNonRev() and mergeSets()
2072         * src/SDCCsymt.c: reimplemented function inCalleeSaveList() by using sets instead
2073         fixed width array of pointers
2074         * src/SDCCutil.c, src/SDCCutil.h: added functions fputStrSet(), appendStrSet(), joinStrSet();
2075         removed functions addToList(), join(), joinn(), pathCharsEquivalent(), pathCharTransform(),
2076         fixupPath(), getPathDifference()
2077         * src/ds390/gen.c, src/mcs51/gen.c: reimplemented function  inExcludeList() by using sets instead
2078         fixed width array of pointers
2079
2080 2003-06-11  Bernhard Held <bernhard@bernhardheld.de>
2081
2082         * src/pic16/ralloc.c: fix warnings
2083         * src/pic16/pcode.c: fix warning
2084
2085 2003-06-10  Scott Dattalo  <scott@dattalo.com>
2086
2087          Scott D. for Vangelis Rokas (vrokas@otenet.gr). I (scott) don't
2088         know all the details, but essentially this set of changes enable
2089         the pic16 port to generate movff instructions and generate assembler
2090         directives,
2091         * src/SDCCmain.c:
2092         * src/pic16/gen.c:
2093         * src/pic16/glue.c:
2094         * src/pic16/pcode.c:
2095         * src/pic16/device.c:
2096         * src/pic16/main.c:
2097         * src/pic16/pcode.h:
2098         * src/pic16/pcoderegs.c:
2099         * src/pic16/ralloc.c:
2100         * src/pic16/ralloc.h:
2101
2102 2003-06-08  Jesus Calvino-Fraga <jesusc@ece.ubc.ca>
2103
2104         * support/Util/SDCCerr.c, src/SDCCglobl.h, src/SDCCmain.c, doc/sdccman.lyx:
2105         added option --vc, so sdcc errors and warnings are compatible with
2106         Microsoft Visual Studio.
2107
2108 2003-06-07  Jesus Calvino-Fraga <jesusc@ece.ubc.ca>
2109
2110         * device/lib/_atof.c, device/lib/Makefile.in, device/include/stdlib.h,
2111           device/lib/libfloat.lib: added atof function.
2112
2113 2003-06-04  Bernhard Held <bernhard@bernhardheld.de>
2114
2115         * doc/sdccman.lyx: updated to Lyx 1.3
2116         * doc/cdbfileformat.lyx: updated to Lyx 1.3
2117         * doc/test_suite_spec.lyx: updated to Lyx 1.3
2118         * doc/Makefile: added fix for the \tabularnewline problem, thanks to Jesus
2119
2120 2003-06-03  Bernhard Held <bernhard@bernhardheld.de>
2121
2122         * src/SDCCpeeph.c: separate peepRules2pCode() for pic16 by "Vangelis Rokas" <vrokas@otenet.gr>
2123
2124 2003-06-02  Frieder Ferlemann <Frieder.Ferlemann@web.de>
2125
2126         * doc/sdccman.lyx: cvs revision keywords, passing pdf information in latex preamble,
2127           additions to the "related tools/documentation" section
2128
2129 2003-06-02  Bernhard Held <bernhard@bernhardheld.de>
2130
2131         * src/SDCCglue.c (tempfileandname): added check for missing TMP/TEMP/TMPDIR variable
2132
2133 2003-05-29  Bernhard Held <bernhard@bernhardheld.de>
2134
2135         * src/pic/device.c: added 16F819, patch by "David I. Lehn" <dlehn@vt.edu>
2136         * src/SDCCcse.c (algebraicOpts): fixed "c * 1"
2137
2138 2003-05-28  Bernhard Held <bernhard@bernhardheld.de>
2139
2140         * doc/sdccman.lyx: fix double dash and other minor things
2141         * doc/Makefile: fix double dash
2142
2143 2003-05-28  Karl Bongers(patches from Martin Helmling)
2144         * debugger/mcs51/sdcdb.c,cmd.c,break.c and .h files. Martin adds
2145           condition and ignore commands.
2146
2147 2003-05-28  Frieder Ferlemann <Frieder.Ferlemann@web.de>
2148
2149         * doc/sdccman.lyx: Changes all over, index improved, smaller margins. The manual
2150           is in parts still quite out of date, I did changes as far as I felt makes sense
2151           for a non-native english speaker.
2152           Please feel free to add to the manual or to correct my changes.
2153         * doc/Makefile: undid touching the date of intermediate tex files.
2154
2155 2003-05-26  Frieder Ferlemann <Frieder.Ferlemann@web.de>
2156
2157         * doc/sdccman.lyx: Manual has an index now
2158
2159 2003-05-25  Bernhard Held <bernhard@bernhardheld.de>
2160
2161         Finalize muluint/mulsint and mululong/mulslong merging:
2162         * device/lib/_mulint.c
2163         * device/lib/_mullong.c
2164         * device/lib/gbz80/mul.s
2165         * device/lib/gbz80/stubs.s
2166         * device/lib/z80/mul.s
2167         * device/lib/z80/stubs.s
2168         * src/SDCCsymt.c (initCSupport)
2169
2170 2003-05-25  Jesus Calvino-Fraga <jesusc@ece.ubc.ca>
2171
2172         * as/mcs51/lkaomf51.c: Address space 'z' was missing.
2173         * src/avr/avr.dsp, src/ds390/ds390.dsp, src/mcs51/mcs51.dsp,
2174           src/pic/pic.dsp, src/pic16/pic16.dsp, src/xa51/xa51.dsp,
2175           src/x80/z80.dsp: peep.rul is bigger now, so /Zm1000 is used
2176           instead of /Zm500.
2177
2178 2003-05-25  Frieder Ferlemann <Frieder.Ferlemann@web.de>
2179
2180         * src/mcs51/peeph.def: added rules 244.x, 245.x. Although they pass
2181           the regression tests I'm not brave enough to enable 245.b, 245.c
2182         * doc/sdccman.lyx: added latex preamble for hyperref package.
2183           Using pdflatex this will give you a hyperlinked pdf file with
2184           bookmarks. (prepend '%' before /usepackage if this breaks something)
2185
2186 2003-05-24  Jesus Calvino-Fraga <jesusc@ece.ubc.ca>
2187
2188          * doc/sdccman.lyx: updated information about .adb files (fixed bug 742649)
2189          
2190 2003-05-22  Bernhard Held <bernhard@bernhardheld.de>
2191
2192         * src/pic16/pcode.c (pic16_get_op_from_instruction): fixed a gcc 3.x warning
2193
2194 2003-05-21    <johan@balder>
2195
2196         * src/SDCCglue.c (printIval): fixed bug #739934
2197
2198 2003-05-19  Bernhard Held <bernhard@bernhardheld.de>
2199
2200         Applied patch from bug 737905 (renamed yylineo to mylineno):
2201         * src/altlex.c
2202         * src/SDCCast.c
2203         * src/SDCglobl.h
2204         * src/SDCC.lex
2205         * src/SDCCsymt.c
2206         * src/SDCCval.c 
2207         * src/pic16/pcode.c: Cleaned warnings
2208         * src/pic16/pcodeflow.c: Cleaned warnings
2209         * src/pic16/pcoderegs.c: Cleaned warnings
2210
2211 2003-05-19  Scott Dattalo  <scott@dattalo.com>
2212
2213         * src/pic16/pcode.c: Cleaned warnings
2214         * src/pic16/pcodepeep.c: Cleaned warnings
2215         * src/pic16/ralloc.c: Cleaned warnings
2216
2217 2003-05-19  Bernhard Held <bernhard@bernhardheld.de>
2218
2219         * doc/sdccman.lyx: fixed bug 739745
2220         * src/pic16/pcode.c (pic16_get_op): fixed warning on alpha
2221
2222 2003-05-18  Bernhard Held <bernhard@bernhardheld.de>
2223
2224         * src/port.h: removed DEFAULT_PORT, it's not yet pic16 ;-)
2225         it can be defined with CFLAGS when running configure
2226         * src/SDCCmain.c: fixed compiling + linking with object files
2227
2228 2003-05-18  Vangelis Rokas (vrokas@otenet.gr)
2229
2230         * configure.in: configure for pic16 port,
2231             added --disable-pic16-port
2232         * sdccconf_in.h: added macro OPT_DISABLE_PIC16
2233         * src/SDCCmain.c: linkOptions is changed to set *,
2234             added if/endif conditional macros to remove options help
2235             messages from optionsTable when a port is not configured, added
2236             support for the PIc16 port in the ports table, when executing
2237             the compiler with no port specified on command line, a default
2238             port is selected with the new macro DEFAULT_PORT which is
2239             defined in port.h, in setDefaultOptions() linkOptions is removed
2240             from initialization assignment, since now it is a set,
2241             parseCmdLine uses setParseWithComma for linkOptions, in
2242             linkEdit() linkOptions are accessed with new function indexSet()
2243             which returns the i'th item of a set variable. See SDCCset.c, in
2244             linkEdit() when calling buildCmdLine(), added linkOptions as
2245             last argument. Now users can pass arguments to gplink via the
2246             -Wl option, main() uses pic16glue() to glue up pic16 programs
2247         * src/SDCCpeeph.c: various changes to support pic16
2248         * src/SDCCset.c: added function  void *indexSet(set *, int)  to
2249             return the i'th item of the set
2250         * src/SDCCset.h: added function prototype for indexSet()
2251         * src/SDCCsymt.c: in checkSClass(), added support for PIC16
2252         * src/clean.mk: added pic16 in CLEANALLPORTS variable
2253         * src/port.h: added TARGET_ID_PIC16,TARGET_IS_PIC16 macro,
2254             added macro DEFAULT_PORT
2255         * src/pic/main.c: corrected arguments of gplnk in _linkCmd
2256         * src/pic16/gen.c: bug fix in genCpl(), now the correct code is
2257             generated
2258         * src/pic16/glue.c: commented out some error producing lines
2259         * src/pic16/main.c: __config directives are commented out to stop
2260             gpasm complaining and test the linkage with gplink, _linkCmd and
2261             _asmCmd changed to be more gplink and gpasm friendly
2262         * src/pic16/peeph.def: peep rule 3 is commented out, since it
2263             produced an error when parsed, peep rule 12 is added to utilize
2264             movff, but it is commented out since the pCode does not support
2265             yet a command with 2 address arguments
2266
2267 2003-05-18    <johan@balder>
2268
2269         * src/ds390/gen.c (genArrayInit): removed obsolete and buggy ARRAYINIT
2270         * src/ds390/main.c (genArrayInit): removed obsolete and buggy ARRAYINIT
2271 2003-05-17  Karl Bongers(apply patches from Martin Helmling)
2272
2273         * debugger/mcs51/sdcdb.c,cmd.c,break.c and .h files.
2274   Added feature to script commands from file.
2275
2276 2003-05-14  Bernhard Held <bernhard@bernhardheld.de>
2277
2278         * device/lib/_strtok.c: fixed bug #734355 by Lenny Story and Tim Woodall
2279         * src/SDCCutil.c: include ctype.h for win32
2280
2281 2003-05-13  Bernhard Held <bernhard@bernhardheld.de>
2282
2283         * src/pic16/*: removed CR from many files, reported by Vangelis Rokas
2284
2285 2003-05-12  Karl Bongers(apply development patches from Martin Helmling)
2286
2287         * debugger/mcs51/sdcdb.c,simi.c,cmd.c,break.c and .h files.
2288   Fixed so you can set breakpoints prior to run, run does not stop
2289   on entry now.  Add tbreak.  Other enhancements and fixes for use
2290   with ddd.
2291
2292 2003-05-12  Borut Razem <borut.razem@siol.net>
2293
2294         * src/SDCCmain.c: fixed the problem with searching the DATADIR as the last resort on *nix
2295
2296 2003-05-11  Borut Razem <borut.razem@siol.net>
2297
2298         * src/SDCCutil.c: WIN32 version of getBinPath() calls GetModuleFileName() to determine
2299         the path of bin directory, so that PATH is the only env. variable, which has to be set
2300         in case of standard installation.
2301         * src/ds390/ds390.dsp: increased value of /Zm option to 1000
2302         * src/pic/main.c: add quotes to file name parameters for gplink and gpasm
2303         * src/SDCCglobl.h, src/SDCCmain.c, doc/sdccman.lyx: added --print-search-dirs command line option
2304
2305 2003-05-04  Bernhard Held <bernhard@bernhardheld.de>
2306
2307         * src/SDCCmain.c (linkEdit): fixed buffer overflow for gbz80
2308         * support/regression/Makefile: inter-port-clean is no longer nesessary, the
2309         temp files are in the port dir; clean the gen/test directory when
2310         generating new test.c
2311         * support/regression/ports/host/spec.mk: defined OBJEXT for target clean
2312         * support/regression/tests/vaargs.c: fixed gcc 3.3 warning
2313         * support/regression/tests/zeropad.c: added
2314
2315 2003-05-09    <johan@balder>
2316
2317         * src/SDCCglue.c: fixed bug #597940
2318
2319 2003-05-05  Karl Bongers(apply patches from Martin Helmling)
2320
2321         * debugger/mcs51/sdcdb.c,simi.c,cmd.c,symtab.c and .h files.
2322   cache sfr, optimize next,step, fix off by one sourceline,
2323   support ddd list function.
2324         * sim/ucsim/cmd.src/newcmd.cc - small fix for sdcdb use.
2325
2326 2003-05-04  Bernhard Held <bernhard@bernhardheld.de>
2327
2328         * support/regression/HTMLgen.py: added compare_s2f()
2329         * support/regression/Makefile: redo 1.27
2330         * support/regression/generate-cases.py: redo 1.5
2331
2332 2003-04-30  Bernhard Held <bernhard@bernhardheld.de>
2333
2334         * support/regression/tests/float.c: workaround 33 bit hex constant
2335         * support/regression/tests/simplefloat.c: fix division for host
2336
2337 2003-04-29  Scott Dattalo  <scott@dattalo.com>
2338
2339         * src/pic/pcoderegs.c Applied patch from Jim Hawkridge <jim@jimhawkridge.uk.eu.org>
2340         that tame's the PIC's over-aggressive optimizer.
2341
2342 2003-04-29  Jesus Calvino-Fraga <jesusc@ece.ubc.ca>
2343
2344          * src.dsw, link/z80/aslink.h, link/z80/linkz80.dsp: z80 linker
2345          support for MSVC.
2346          
2347 2003-04-29  Kevin Vigor <kevin@vigor.nu>
2348
2349         Initial support for DS80C400. "Hello world" runs on TINIm400
2350         (with polled I/O).
2351
2352 2003-04-28  Karl Bongers(apply patches for Martin Helmling)
2353
2354          * debugger/mcs51/sdcdb.c,simi.c,cmd.c,symtab.c and .h files.
2355          * Some notes on ddd usage added in debugger/README
2356          Martin Helmling adding more features and fixes for ddd GUI debugger.
2357          Code added for nexti, stepi, up, down, and other adjustments.
2358
2359 2003-04-28  Scott Dattalo  <scott@DATTALO.COM>
2360
2361         * src/pic/pCodepeep.c non-wildcard asmops are now handled
2362         * src/pic/peeph.def Added two rules to optimize carry manipulation
2363         * src/pic/* removed debug printfs
2364
2365 2003-04-28  Bernhard Held <bernhard@bernhardheld.de>
2366
2367         * debugger/mcs51/cmd.c: added header newalloc.h
2368
2369 2003-04-26  Bernhard Held <bernhard@bernhardheld.de>
2370
2371         * as/Makefile: new EXEEXT
2372         * as/z80/Makefile: remove trailing slash of BUILDIR
2373         * as/z80/clean.mk: new EXEEXT
2374         * Makefile.common.in: add to CFLAGS (and others), don't replace it
2375         * support/cpp2/Makefile.in: new EXEEXT
2376         * src/pic/glue.c (pic14emitRegularMap): fixed warning
2377
2378 2003-04-24  Bernhard Held <bernhard@bernhardheld.de>
2379
2380         Cygwin's gcc always appends .exe: 'gcc -o a a.c' creates a.exe;
2381         EXEEXT was introduced to fix all related problems with targets
2382         "clean", "install" and "uninstall"; a couple of further flaws
2383         especially with "clean" have been fixed too
2384         * as/mcs51/Makefile.in
2385         * as/mcs51/clean.mk
2386         * as/z80/Makefile
2387         * Makefile
2388         * clean.mk
2389         * debugger/mcs51/Makefile.in
2390         * debugger/mcs51/clean.mk
2391         * link/z80/Makefile
2392         * link/z80/Makefile.in
2393         * link/z80/clean.mk
2394         * link/Makefile
2395         * packihx/Makefile.in
2396         * packihx/clean.mk
2397         * sim/ucsim/Makefile
2398         * sim/ucsim/clean.mk
2399         * sim/ucsim/avr.src/Makefile.in
2400         * sim/ucsim/avr.src/clean.mk
2401         * sim/ucsim/s51.src/Makefile.in
2402         * sim/ucsim/s51.src/clean.mk
2403         * sim/ucsim/xa.src/Makefile.in
2404         * sim/ucsim/xa.src/clean.mk
2405         * sim/ucsim/z80.src/Makefile.in
2406         * sim/ucsim/z80.src/clean.mk
2407         * sim/ucsim/main_in.mk
2408         * sim/ucsim/packages_in.mk
2409         * sim/ucsim/gui.src/Makefile.in
2410         * sim/ucsim/gui.src/serio.src/Makefile.in
2411         * sim/ucsim/gui.src/serio.src/clean.mk
2412         * src/Makefile.in
2413         * src/clean.mk
2414         * support/cpp2/Makefile.in
2415         * support/cpp2/clean.mk
2416         * support/makebin/Makefile
2417         * support/makebin/clean.mk
2418         * support/scripts/sdcc_mingw32: --program-suffix no longer needed
2419         * doc/sdccman.lyx: --program-suffix no longer needed
2420
2421 2003-04-23  Karl Bongers(apply patches for Martin Helmling)
2422
2423          * debugger/mcs51/sdcdb.c,simi.c,cmd.c,..
2424          Martin Helmling added support for ddd GUI debugger.
2425          Code added to display assembly, set variables, and other commands
2426          to interface to ddd.
2427
2428 2003-04-23  Bernhard Held <bernhard@bernhardheld.de>
2429
2430         * as/Makefile: fix target clean
2431         * as/clean.mk: fix target clean
2432         * as/z80/clean.mk: fix target clean
2433
2434 2003-04-22  Bernhard Held <bernhard@bernhardheld.de>
2435
2436         * Makefile.common.in: added @EXEEXT@
2437         * configure.in: removed all mingw32 stuff
2438         * configure: rebuilt from configure.in
2439         * doc/sdccman.lyx: updated section "installation"
2440         * support/scripts/sdcc_mingw32: adapted to configure
2441         * support/scripts/sdcc_cygwin_mingw32: added
2442
2443 2003-04-22  Scott Dattalo  <scott@dattalo.com>
2444
2445         * src/pic Added object file support for the PIC port
2446         * src/pic Applied patch from Craig Franklin (this started the object file support)
2447         * src/regression Updated the PIC regression tests for object files
2448
2449 2003-04-20  Borut Razem <borut.razem@siol.net>
2450
2451         * sdcc/as/mcs51/lklex.c: make getfid() more robust and fixed gcc warning:
2452           lklex.c: In function `getfid':
2453           lklex.c:203: warning: array subscript has type `char'
2454         * src/SDCCglobl.h: small change in stack handling macros, to avoid crash when compiled
2455           with MSVC with global optimization enabled (probably an cl compiler bug ;-)
2456         * support/Util/SDCCerr.c, support/Util/SDCCerr.h: added function fatal(), called from
2457           stack handling macros
2458
2459 2003-04-19  Borut Razem <borut.razem@siol.net>
2460
2461         * "handling space characters in file path" task:
2462         * src/SDCCmacro.c: fixed bug in handlig quote at the end of line
2463         * support/Util/BuildCmd.c: define par as NULL if parameter value is invalid
2464         * support/Util/MySystem.h: make it self-sufficient
2465         * src/avr/main.c, src/ds390/main.c, src/mcs51/main.c, src/pic/main.c, src/xa51/main.c,
2466           src/z80/main.c, sdcc/as/mcs51/lklex.c:
2467           handling space characters in file path
2468         * src/SDCCmain.c: introduced setDataPaths() function, {datadir} macro
2469           (it will be used by assemblers, which have their own includes, e.g. gpasm)
2470         * support/Util/MySystem.c: handling space characters in executable's path
2471
2472 2003-04-19  Bernhard Held <bernhard@bernhardheld.de>
2473
2474         * as/z80/Makefile: fix permanent rebuild of z80
2475         * sim/ucsim/gui.src/Makefile.in: target "install" builds the same packages as target "all"
2476         * support/regression/tests/bitfields.c: added Johan's bitfields.c
2477
2478 2003-04-18      Kevin Vigor <kevin@vigor.nu>
2479
2480         * src/SDCCopt.c: add special case optimization to replace modulo by
2481           a power of two with a bitwise AND.
2482
2483 2003-04-18    <johan@balder>
2484
2485         * src/mcs51/gen.c (getFreePtr): fixed bug #635354
2486
2487 2003-04-17    <johan@balder>
2488
2489         * src/mcs51/ralloc.c (packRegsForAssign): fixed bug #716790 and removes lot's of redundant register usage around function calls
2490         * src/mcs51/ralloc.c (packRegisters): fixed bug #720667
2491
2492 2003-04-13  Borut Razem <borut.razem@siol.net>
2493
2494         * doc/sdccman.lyx: updated info about #pragma SAVE/RESTORE nesting
2495         * configure.in, configure: fixed problems on cygwin/WinCVS environmet with ports.* line endings;
2496           fixed mingw problem in adl_NORMALIZE_PATH
2497
2498 2003-04-12  Borut Razem <borut.razem@siol.net>
2499
2500         * fixed "#pragma SAVE/RESTORE can not be nested":
2501         * src/SDCC.lex: reworked pragma handling functions
2502         * sdcc/src/SDCCglobl.h: reworked stack handling macros
2503         * support/Util/SDCCerr.c, support/Util/SDCCerr.h: added E_STACK_VIOLATION error
2504
2505 2003-04-12  Bernhard Held <bernhard@bernhardheld.de>
2506
2507         * src/SDCCutil.c (pathEquivalent): defined but not used
2508         * debugger/mcs51/sdcdb.c: replace SDCC_LIB_DIR
2509         * configure.in: remove sdcc_datadir, sdcc_lib_dir and sdcc_include_dir
2510         * configure: rebuilt from configure.in
2511         * sdccconf_in.h: remove SDCC_LIB_DIR and SDCC_INCLUDE_DIR
2512         * sdcc_vc_in.h: remove SDCC_LIB_DIR and SDCC_INCLUDE_DIR
2513         * device/include/Makefile.in: replace sdcc_datadir
2514         * device/lib/Makefile.in: replace sdcc_datadir
2515         * Makefile.common.in: add LDFLAGS from configure
2516         * packihx/Makefile.in: use LDFLAGS
2517         * src/Makefile.in: use LDFLAGS
2518         * support/cpp2/Makefile.in: add LDFLAGS from configure
2519         * support/makebin/Makefile: use LDFLAGS
2520         * .version: bumped version number to 2.3.5
2521
2522 2003-04-12  Borut Razem <borut.razem@siol.net>
2523
2524         * completed "different paths" task:
2525         * src/SDCCmacro.c: fixed bug in handling quotes
2526         * src/SDCCutil.c, src/SDCCutil.c: rewritten getPrefixFromBinPath()
2527         * src/SDCCmain.c: _discoverPaths() replaced with setBinPaths(), setIncludePath() and setLibPath()
2528
2529 2003-04-12  Bernhard Held <bernhard@bernhardheld.de>
2530
2531         * src/pic/pcoderegs.c (Remove1pcode): fix warning on alpha
2532
2533 2003-04-11 kevin Vigor <kevin@vigor.nu>
2534
2535         * ds390/gen.c ds390/peeph.def: fix bug 706781
2536
2537 2003-04-11  Borut Razem <borut.razem@siol.net>
2538
2539         * support/Util/dbuf.c, support/Util/dbuf.h: update to version 1.1.1 - re-added C++ stuff to make it still more portable
2540
2541 2003-04-10  Scott Dattalo  <scott@dattalo.com>
2542
2543         * src/pic/* Applied the pointer-to-function patch from Steve Tell.
2544         * src/pic/* Fixed several pointer bugs. (PIC port broke when the ruonly bit was
2545          set - this bit used to not be set...).
2546         * src/pic/gen.c Fixed buf 609268 ==> x = (x+1) & 0xf; generated 
2547           bad code in PIC Port
2548         * src/regression/and2.c added to test bug 609268
2549         * src/regression/Makefile added and2.c to regression test
2550
2551
2552 2003-04-08    <johan@CP255758-A>
2553
2554         * src/mcs51/gen.c (gen51Code): display reg usage in --icode-in-asm
2555         * src/mcs51/ralloc.c (serialRegAssign): update the registers in use and save some slocs
2556         * src/SDCCicode.h: added riu to show the register usage in --icode-in-asm
2557
2558 2003-04-07  Bernhard Held <bernhard@bernhardheld.de>
2559
2560         * configure.in: fully support prefix, exec_prefix, datadir, docdir;
2561         fix bug #487815
2562         * support/cpp2/Makefile.in: fix bug #487815
2563         * configure: rebuilt from configure.in
2564         * Makefile.common.in: docdir changed, new path suffixes
2565         * sdccconf_in.h: new RETSIGTYPE, and other PATHs
2566         * sdcc_vc_in.h: reflect changes from sdccconf.h
2567         * src/SDCCglobl.h: remove *SEPARATOR_CHARS, they are now in sdccconf.h
2568         * src/SDCCutil.h: remove BINDIR hack
2569         * doc/sdccman.lyx: update new path hierarchy
2570
2571 2003-04-06    Paul Stoffregen <paul@pjrc.com>
2572
2573         * src/SDCCpeeph.c: added okToRemoveSLOC test
2574
2575 2003-04-06    Paul Stoffregen <paul@pjrc.com>
2576
2577         * device/lib/printf_fast.c: added leading zero format ("%06d", etc)
2578
2579 2003-04-06    Paul Stoffregen <paul@pjrc.com>
2580
2581         * src/SDCCpeeph.c: added labelIsReturnOnly test
2582         * src/mcs51/peeph.def: Peephole 244: replace ljmp to ret with ret
2583
2584 2003-04-05    <johan@balder>
2585
2586         * src/SDCCcse.c (cseAllBlocks): fixed bug #460088
2587         * src/SDCCloop.c (DEFSETFUNC): fixed bug #460088
2588         * src/SDCCopt.c (eBBlockFromiCode): fixed bug #460088
2589         * src/SDCCast.c: fixed a warning
2590         * src/SDCCast.h: fixed a warning
2591         * src/SDCCicode.c (operandFromAst): fixed a warning
2592
2593 2003-04-04    <johan@balder>
2594
2595         * src/SDCCloop.c (DEFSETFUNC): undid the fix for bug #519584
2596         * src/SDCCast.c (decorateType): fixed bug #715076
2597         * src/SDCC.y: fixed bug #702907
2598
2599 2003-04-03    <johan@balder>
2600
2601         * device/lib/_mulint.c (_muluint): new #pragma LESS_PEDANTIC
2602         * src/SDCCopt.c (eBBlockFromiCode): new #pragma LESS_PEDANTIC
2603         * src/SDCCglobl.h (PRAGMA_LESSPEDANTIC): new #pragma LESS_PEDANTIC
2604         * src/SDCC.lex (doPragma): new #pragma LESS_PEDANTIC
2605         * src/SDCCmain.c (parseCmdLine): new #pragma LESS_PEDANTIC
2606
2607 2003-04-03  Bernhard Held <bernhard@bernhardheld.de>
2608
2609         * _decdptr.c: fix return values
2610         * _gptrget.c: fix return values
2611         * _gptrgetc.c: fix return values
2612         * _gptrput.c: fix return values
2613         * _mulint.c: fix return values
2614         * as/z80/Makefile: fix 'make -j' problem
2615
2616 2003-04-02  Bernhard Held <bernhard@bernhardheld.de>
2617
2618         * Makefile.common.in: unused PORT, SCC and SAS removed, fixed docdir
2619         * configure.in: big cleanup, updated to autoconf 2.5x
2620         * configure: rebuilt from configure.in
2621         * sdccconf_in.h: new RETSIGTYPE, and other PATHs
2622         * sdcc_vc_in.h: reflect changes from sdccconf.h
2623         * doc/Makefile: fixed a flaw in "make install"
2624
2625 2003-04-02    <johan@balder>
2626
2627         * src/ds390/gen.c (genCmp): no comments
2628         * src/mcs51/gen.c (genCmp): no comments
2629         * src/SDCCopt.c (eBBlockFromiCode): detect missing return values
2630         * src/SDCCast.c (ast_print): fixed the function type in --dumptree
2631
2632 2003-04-01  Bernhard Held <bernhard@bernhardheld.de>
2633
2634         * support/regression/generate-cases.py: place generated file in given sub directory
2635         * support/regression/ports/host/spec.mk: prevent removal of testfwk.o
2636         * support/regression/Makefile: improvements for 'make -j';
2637         side effect: it's simpler and faster now
2638
2639 2003-03-31  Borut Razem <borut.razem@siol.net>
2640
2641         * src/z80/main.c: link-{port} and as-{port} defined without path
2642         * src/src.dsp: support/Util/MySystem.h and src/SDCCutil.h added to project
2643
2644 2003-03-31  Bernhard Held <bernhard@bernhardheld.de>
2645
2646         * Makefile, src/Makefile.in: add dependencies, so that 'make -j' works
2647
2648 2003-03-30  Borut Razem <borut.razem@siol.net>
2649
2650         * support/Util/BuildCmd.c, support/Util/BuildCmd.h: rewrite buildCmdLine(),
2651           changed type of list parameter to set
2652         * src/ds390/main.c: changed type of parameter asmOptions to set in _tininative_do_assemble()
2653         * src/port.h: changed type of do_assemble() parameter to set
2654         * src/SDCCmain.c: type of asmOptions changed to set, introduced setParseWithComma(),
2655           sdcpp defined without path, removed variable VersionString, introduced set binPathSet,
2656           definition of "cppoutfilename" macro with NULL value in preProcess()
2657         * src/SDCCglobl.h: included "SDCCset.h", added declaration of setParseWithComma()
2658         * src/SDCCglue.c: removed variable VersionString, inroduced spacesToUnderscores()
2659         * support/Util/MySystem.c, support/Util/MySystem.h: rewrite, char *ExePathList[]
2660           replaced with set *binPathSet
2661         * shash_add() deallocates the item, if allready exsists, before adding the new one
2662         * src/SDCCmacro.c: handling macros with empty or NULL values in _evalMacros()
2663
2664 2003-03-30  Scott Dattalo  <scott@dattalo.com>
2665
2666         * src/pic/gen.c: Commit patch from Steve Tell <tell@telltronics.org> that fixes
2667           a nested for loop bug in the PIC port
2668         * src/regression/nestfor.c: new regression test file Steve wrote to test nested
2669           for loops
2670
2671 2003-03-29  Bernhard Held <bernhard@bernhardheld.de>
2672
2673         * support/Util/dbuf.h: remove C++ stuff to make it portable
2674
2675 2003-03-28  Borut Razem <borut.razem@siol.net>
2676
2677         * src/SDCC.lex: Fix for bug #711240: dynamic buffer handling of C
2678           literal strings in stringLiteral()
2679         * support/Util/dbuf.c, support/Util/dbuf.h: added: dynamic buffer handling
2680         * src/Makefile.bcc, src/Makefile.in, src\src.dsp: added support/Util/dbuf.c
2681           to the project
2682
2683 2003-03-27  Paul Stoffregen <paul@pjrc.com>
2684
2685         * src/SDCCpeeph.c (pcDistance): accurate byte distance for mcs51
2686
2687 2003-03-26    <johan@balder>
2688
2689         * src/mcs51/gen.c (saveRegisters): catched symbol abuse
2690         * src/ds390/gen.c (saveRegisters): catched symbol abuse
2691         * src/SDCCast.c (decorateType): fixed " -v < 3"
2692
2693 2003-03-23  Bernhard Held <bernhard@bernhardheld.de>
2694
2695         * doc/cdbfile.html: removed, replaced by cdbfileformat.lyx
2696         Added Lenny Story's debug infrastructure changes:
2697         * src/Makefile.in:  added new files cdbFile.c and SDCCdebug.c
2698         * src/Makefile.bcc: added new files cdbFile.c and SDCCdebug.c
2699         * src/cdbFile.c: added
2700         * src/SDCCdebug.c: added
2701         * src/SDCCdebug.h: added
2702         * src/SDCCast.c (createFunction)
2703         * src/SDCCglue.c (emitRegularMap, emitStaticSeg, emitOverlay, glue)
2704         * src/SDCCmain.c (parseCmdLine, main)
2705         * src/SDCCmem.c (redoStackOffsets)
2706         * src/SDCCsymt.c (cdbStructBlock, cdbTypeInfo, cdbSymbol, cdbStruct, cdbStructBlock)
2707         * src/SDCCsymt.h
2708         * src/common.h
2709         * src/avr/gen.c (genAVRCode)
2710         * src/ds390/gen.c (gen390Code)
2711         * src/mcs51/gen.c (gen51Code) 
2712         * src/pic/gen.c (genpic14Code)
2713         * src/pic/glue.c (pic14emitRegularMap, pic14emitStaticSeg, pic14emitOverlay, picglue)
2714         * src/xa51/gen.c (genXA51Code)
2715         * src/SDCCast.c: fixed "void foo(void){char c; -c < 0;}"
2716
2717 2003-03-22  Frieder Ferlemann <Frieder.Ferlemann@web.de>
2718
2719         * src/mcs51/gen.c (genCodePointerGet): quicker code for bug #700797
2720         * src/mcs51/peeph.def: added rules 177, 241.x to 243, touched 181, 182.x, 193.x
2721
2722 2003-03-22    <johan@balder>
2723
2724         * src/SDCCicode.c (geniCodeDerefPtr): fixed bug #698231
2725
2726 2003-03-21  Bernhard Held <bernhard@bernhardheld.de>
2727
2728         * support/scripts/sdcc_mingw32: adapted to configure from autoconf 2.54
2729         * doc/cdbfileformat.lyx: added, written by Lenny Story
2730         * doc/Makefile: added cdbfileformat.lyx
2731         * doc/clean.mk: added cdbfileformat.lyx
2732
2733 2003-03-20  Bernhard Held <bernhard@bernhardheld.de>
2734
2735         * src/mcs51/peeph.def: fix bug #705773
2736
2737 2003-03-20    <johan@balder>
2738
2739         An sfr/sbit can have an "at #" AND an initializer
2740         * src/SDCCsymt.c (checkSClass): 
2741         * src/SDCCmem.c (allocGlobal): 
2742         * src/SDCCmem.c (allocLocal):
2743         * src/SDCCast.c (createBlock): 
2744
2745 2003-03-17  Bernhard Held <bernhard@bernhardheld.de>
2746
2747         * src/ds390/peeph.def: fix bug #704878: added rule 213.b suggested by Jan Rejlek
2748
2749 2003-03-16    <johan@balder>
2750
2751         Undid the hackup of const and volatile, the problem is much bigger
2752         * src/SDCC.y:1.65
2753         * src/SDCCast.c:1.171
2754         * src/SDCCglue.c:1.138
2755         * src/SDCCicode.c:1.146
2756         * src/SDCCsymt.c:1.150
2757         * src/SDCCval.c:1.65
2758
2759 2003-03-15  Bernhard Held <bernhard@bernhardheld.de>
2760
2761         * src/mcs51/ralloc.c (packRegsForAssign): fixed bug #703541
2762         * src/ds390/gen.c (genAddrOf): fixed bug #704087
2763
2764 2003-03-13    <johan@balder>
2765
2766         Hackup const and volatile modifiers in type chains a bit:
2767         * src/SDCC.y:1.63
2768         * src/SDCCast.c:1.169
2769         * src/SDCCglue.c:1.136
2770         * src/SDCCicode.c:1.143
2771         * src/SDCCsymt.c1.146
2772         * src/SDCCsymt.h1.59
2773         * src/SDCCval.c:1.63
2774
2775 2003-03-12    <johan@balder>
2776
2777         * src/SDCCBBlock.h: more LRH debugging junk
2778         * src/SDCCcflow.h: more LRH debugging junk
2779         * src/SDCCloop.c: more LRH debugging junk
2780         * src/SDCC.y (struct_declaration): fixed bug #697590
2781         * src/SDCCsymt.[hc] (cloneSpec): NEVER EVER use this again
2782         * src/ds390/gen.c (aopForRemat): fixed bug #700031
2783         * src/SDCCglue.c (emitStaticSeg): fixed bug #700797
2784
2785 2003-03-11 Kevin Vigor <kevin@vigor.nu>
2786         * src/SDCCpeeph.c: quit being lazy and made proper fix (peephole
2787         test function names must now match exactly).
2788         * src/SDCCcse.c: added special case in findCheaperOp to allow
2789         extending a short integer. Makes less awful code for bug 700121 test case.
2790
2791 2003-03-11  Jesus Calvino-Fraga <jesusc@ece.ubc.ca>
2792
2793         * as/mcs51/lkmain.c: Added ASlink-Warning to messages 
2794         * as/mcs51/lkaomf51.c: Fixed bug when linking asmblink example
2795
2796 2003-03-11 Kevin Vigor <kevin@vigor.nu>
2797
2798         * src/SDCCpeeph.c: fix so that operandsNotEqualX functions are
2799         actually called (operandsNotEqual() was called for all 
2800         operandsNotEqualX tests).
2801
2802 2003-03-11 Kevin Vigor <kevin@vigor.nu>
2803
2804         * src/SDCCcse.c: fix findCheaperOp to prevent replacing int types
2805         with shorter literals. Fixes bug 700121.
2806
2807 2003-03-11    <johan@balder>
2808
2809         * src/SDCCsymt.c (compareType): a (void *) can be assigned to any pointer
2810
2811 2003-03-11  Bernhard Held <bernhard@bernhardheld.de>
2812
2813         * src/SDCCloop.c (mergeRegions): an evil beast is dead
2814         * src/SDCCmain.c (preProcess): minor cleanup: eliminate preOutName
2815
2816 2003-03-10  Borut Razem <borut.razem@siol.net>
2817
2818         * src/SDCCmain.c: pipe preprocessor's output
2819         * support/Util/MySystem.c, support/Util/MySystem.h: added my_popen()
2820         * sdcc_vc_in.h: define pclose as _pclose for WIN32
2821         * src/SDCCglue.c, src/SDCCglue.h: added set pipeSet, added function closePipes,
2822         which closes all pipes in pipeSet set
2823         * src/SDCCset.c: free deleted item in function deleteSetItem()
2824         * src/src.dsp, src/z80/z80.dsp: files support/Util/BuildCmd.c and support/Util/MySystem.c
2825         moved from z80 to src subproject
2826         * .version: increased version number to 2.3.4
2827
2828 2003-03-10  Bernhard Held <bernhard@bernhardheld.de>
2829
2830         * support/regression/ports/mcs51/spec.mk: increase timeout for CF's sparc to 30s
2831         * support/regression/ports/ds390/spec.mk: increase timeout for CF's sparc to 25s
2832         * support/regression/ports/xa51/spec.mk: fix typo
2833
2834 2003-03-09  Bernhard Held <bernhard@bernhardheld.de>
2835
2836         * src/SDCCglobl.h: PATH_MAX is already defined in mingw32 headers
2837
2838 2003-03-09  Borut Razem <borut.razem@siol.net>
2839
2840         * src/SDCCmain.c: pipe preprocessor's output
2841         * support/Util/MySystem.c, support/Util/MySystem.h: added my_popen()
2842         * sdcc_vc_in.h: define pclose as _pclose for WIN32
2843         * src/SDCCglue.c, src/SDCCglue.h: added set pipeSet, added function closePipes,
2844         which closes all pipes in pipeSet set
2845         * src/SDCCset.c: free deleted item in function deleteSetItem()
2846         * src/src.dsp, src/z80/z80.dsp: files support/Util/BuildCmd.c and support/Util/MySystem.c
2847         moved from z80 to src subproject
2848
2849 2003-03-09  Borut Razem <borut.razem@siol.net>
2850
2851         * src/SDCCglue.c: re-implemented tempfilename() and tempfile(): using mkstemp() if available
2852         * src/SDCCsymt.h: fixed MSVC and BORLANDC compilation (included SDCCglobl.h instead srccconf.h)
2853         * sdcc_vc_in.h: explicitly undefined HAVE_MKSTEMP which is not available on BORLANDC and MSVC
2854         * src/SDCCset.h: removed inclusion of sdccconf.h or sdcc_vc.h
2855         * src/SDCCglobl.h: unification of WIN32 native definitions
2856
2857 2003-03-09  Frieder Ferlemann <Frieder.Ferlemann@web.de>
2858
2859         * src/mcs51/gen.c: applied in-/dec patch mentioned on sdcc-devel 2003-03-01
2860
2861 2003-03-08  Bernhard Held <bernhard@bernhardheld.de>
2862
2863         * src/configure.in:   check for endianess (even while cross-compiling)
2864         * src/configure:      check for endianess (even while cross-compiling)
2865         * src/configure_in.h: check for endianess (even while cross-compiling)
2866         * src/avr/gen.c:        remove old endianess stuff
2867         * src/mcs51/gen.c:      remove old endianess stuff
2868         * src/ds390/gen.c:      remove old endianess stuff
2869         * src/pic/gen.c:        remove old endianess stuff
2870         * src/pic/genarith.c:   remove old endianess stuff
2871         * src/pic/glue.c:       fix endianess check
2872         * src/pic16/gen.c:      remove old endianess stuff
2873         * src/pic16/genarith.c: remove old endianess stuff
2874         * src/pic16/glue.c:     fix endianess check
2875         * src/xa51/gen.c:       remove old endianess stuff
2876         * src/z80/gen.c:        fix endianess check
2877         * src/SDCCglue.c:       fix endianess check
2878         * src/ds390/peeph.def: fix bug 700036
2879
2880 2003-03-08  Bernhard Held <bernhard@bernhardheld.de>
2881
2882         * src/SDCCsymt.h: use appropriate data-types on host for SDCC's int and long
2883         * src/configure: find appropriate data-types on host for SDCC's int and long
2884         * src/configure.in: find appropriate data-types on host for SDCC's int and long
2885         * src/sdccconf_in.h: find appropriate data-types on host for SDCC's int and long
2886         * src/xa51/gen.c: use %d, not %ld for 4 byte variables
2887
2888 2003-03-07    <johan@balder>
2889
2890         Just a big NOOP:
2891                 some minor cleanups before the big shot
2892                 OP_DEFS and OP_USES now use Kevin's protection
2893                 new option --nolabelopt
2894
2895         * src/SDCCBBlock.c:
2896         * src/SDCCast.c,:
2897         * src/SDCCcflow.c:
2898         * src/SDCCcse.c:
2899         * src/SDCCicode.c:
2900         * src/SDCCicode.h:
2901         * src/SDCClabel.c:
2902         * src/SDCCloop.c:
2903         * src/SDCCmain.c:
2904         * src/ds390/ralloc.c:
2905         * src/mcs51/ralloc.c:
2906         * src/pic/ralloc.c:
2907         * src/xa51/ralloc.c:
2908         * src/z80/ralloc.c:
2909
2910 2003-03-06  Bernhard Held <bernhard@bernhardheld.de>
2911
2912         * src/pic/pcode.c (get_op): fix 64 bit warnings
2913         * src/pic/pcode.c (pCode2str): fix 64 bit warnings
2914         * src/SDCChasht.c (newHashTable): fix 64 bit warnings
2915         * src/SDCCsymt.c (checkTypeSanity): fix 64 bit warnings
2916         * support/regression/tests/malloc.c: fix 64 bit warnings
2917
2918 2003-03-04  Bernhard Held <bernhard@bernhardheld.de>
2919
2920         * src/mcs51/gen.c (genMinus): fixed bug 696436
2921
2922 2003-03-02  Borut Razem <borut.razem@siol.net>
2923
2924         * src/SDCCmain.c: added BORLANDC, corrected MSVC in printVersionInfo()
2925
2926 2003-02-26  Bernhard Held <bernhard@bernhardheld.de>
2927
2928         * configure.in: test for mkstemp
2929         * sdccconf_in.h: add HAVE_MKSTEMP
2930
2931 2003-02-24  Bernhard Held <bernhard@bernhardheld.de>
2932
2933         * device/include/ctype.h: removed warning while using --stack-auto
2934         * device/include/malloc.h: removed warning while using --stack-auto
2935         * device/include/string.h: removed warning while using --stack-auto
2936
2937 2003-02-23  Borut Razem <borut.razem@siol.net>
2938
2939         * src/asm.h: corrected assertion in function printILine(): _pipe() was not executed on MSVC,
2940         because NDEBUG is defined (see man assert)
2941         * sdcc_vc_in.h: vsnprintf is defined as _vsnprintf on MSVC
2942
2943 2003-02-23  Frieder Ferlemann <Frieder.Ferlemann@web.de>
2944
2945         * src/mcs51/gen.c (genUminusFloat): avoided dptr in-/decrement for xdata variables
2946         * src/mcs51/peeph.def: added rule suggested by Gernot Fink, white space/comment changes
2947
2948 2003-02-18  Frieder Ferlemann <Frieder.Ferlemann@web.de>
2949
2950         * src/SDCCpeeph.c: added peephole conditions testing for same arguments
2951         * src/mcs51/peeph.def: added rules 238a-d which remove redundant moves
2952
2953 2003-02-18    <johan@balder>
2954
2955         * as/mcs51/asmain.c (asmbl): module can start with a digit
2956         * as/z80/asmain.c (asmbl): module can start with a digit
2957
2958 2003-02-16  Bernhard Held <bernhard@bernhardheld.de>
2959
2960         * sim/ucsim/mkecho: inserted #!/bin/sh for Cygwin, so that it's executable
2961         * src/asm.c: fix pipe() for Mingw32
2962
2963 2003-02-15  Bernhard Held <bernhard@bernhardheld.de>
2964
2965         * src/SDCCglue.h: make tmpfileNameSet available for preOutName
2966         * src/SDCCmain.c (preProcess): make sure, that preOutName will be deleted;
2967         make -V work again; --c1mode reads now from stdin
2968         * doc/sdccman.lyx: added --c1mode
2969         * support/Util/SDCCerr.c: new messages for c1 mode
2970         * support/Util/SDCCerr.h: new messages for c1 mode
2971         * src/SDCC.lex (checkCurrFile): test if fullSrcFileName is NULL for c1mode
2972
2973 2003-02-15    <johan@balder>
2974
2975         * src/asm.c: new options: --no-c-code-in-asm and --i-code-in-asm
2976
2977 2003-02-14  Bernhard Held <bernhard@bernhardheld.de>
2978
2979         * doc/sdccman.lyx: Environment variables, -o and other minor things
2980
2981 2003-02-14    <johan@balder>
2982
2983         * src/xa51/main.c: before anyone really tries to use it :)
2984
2985         * Install doc's in share/sdcc/doc
2986         * removed some obsolete files
2987         * Do a proper make distclean and uninstall
2988         M Makefile.common.in
2989         R sdccbuild.sh
2990         M as/Makefile
2991         M device/include/Makefile.in
2992         M device/lib/Makefile.in
2993         M doc/sdccman.lyx
2994         M link/Makefile
2995         M sim/ucsim/doc/Makefile.in
2996         M src/clean.mk
2997         R src/avr/peeph.rul
2998         R src/xa51/peeph.rul
2999         M support/cpp2/Makefile.in
3000         M support/makebin/Makefile
3001
3002
3003 2003-02-13  Bernhard Held <bernhard@bernhardheld.de>
3004
3005         * support/regression/ports/host/spec.mk: use cc as host compiler for max osx
3006
3007 2003-02-10  Borut Razem <borut.razem@siol.net>
3008
3009         * doc/bccinst.txt, packihx/packihx.c, sdcc_vc_in.h, src/SDCCset.h,
3010         support/cpp2/config.in: Borland C++ build doesn't depend on Cygwin configure
3011         * Bcc.ini, Makefile.bcc, as/mcs51/Makefile.bcc,
3012         device/examples/ds390/tinitalk/Makefile.bcc, packihx/Makefile.bcc,
3013         support/cpp2/Makefile.bcc, src/Makefile.bcc, src/avr/Makefile.bcc,
3014         src/ds390/Makefile.bcc, src/izt/Makefile.bcc, src/mcs51/Makefile.bcc,
3015         src/pic/Makefile.bcc, src/pic16/Makefile.bcc, src/xa15/Makefile.bcc,
3016         src/z80/Makefile.bcc: Borland Makefile cleanup
3017         * as/z80/Makefile.bcc: Added Borland Makefile
3018         * support/cpp2/borland.h: Removed
3019
3020 2003-02-10  Bernhard Held <bernhard@bernhardheld.de>
3021
3022         * doc/sdccman.lyx: new pragma NOIV by "Johannes Stezenbach" <js@convergence.de>
3023         * src/SDCC.lex: new pragma NOIV
3024         * src/SDCCglobl.h: new pragma NOIV
3025         * src/SDCCmem.c: new pragma NOIV
3026
3027 2003-02-09  Bernhard Held <bernhard@bernhardheld.de>
3028
3029         * src/SDCCmain.c: signal handling is switched off by SDCC_LEAVE_SIGNALS
3030
3031 2003-02-09  Bernhard Held <bernhard@bernhardheld.de>
3032
3033         * src/SDCCmain.c: signal handling is switched off by --debug
3034         * doc/Makefile: small fix for install; use clean.mk again
3035         * doc/clean.mk: clean *.pdf and *.html too
3036
3037 2003-02-08  Bernhard Held <bernhard@bernhardheld.de>
3038
3039         * device/lib/_mulint.c: small fix for large/ds390 --int-long-reent resp. --stack-auto
3040         * device/lib/printfl.c: fix a ds390 bug by making it portable
3041         * src/SDCCsymt.c (initCSupport): fix compile warning on Cygwin
3042         * src/SDCCopt.c (cnvToFloatCast): fix compile warning on Cygwin
3043         * src/SDCCopt.c (cnvFromFloatCast): fix compile warning on Cygwin
3044         * debugger/mcs51/cmd.c: converted multi-line string literals
3045         * sim/ucsim/globals.cc: converted multi-line string literals
3046         * src/SDCCmain.c: introduced signal handler to remove temp files
3047         * doc/Makefile: small tweaks, implement clean
3048         * doc: removed generated files
3049
3050 2003-02-05  Jesus Calvino-Fraga <jesusc@ece.ubc.ca>
3051
3052         * as/mcs51/aslink.h, as/mcs51/lkihx.c, as/mcs51/lkrloc.c:  Applied
3053         patch from Jan Rejlek <jr@apex-lib.cz> to fix Bug 677692: "Extended
3054         Address Record is not correctly generated for DS390."
3055
3056 2003-02-02  Borut Razem <borut.razem@siol.net>
3057
3058         * Makefile.bcc: removed non existing cpp project and non compilable izt project from makefile
3059         * as/mcs51/asm.h: fixed compilation with Borland C
3060         * support/cpp2/Makefile.bcc: added rule to generate auto-host.h
3061         * support/cpp2/auto-host_vc_in.h: fixed compilation with Borland C
3062         * src/mcs51/mcs51a.dsp: corrected misspelled project name from msc51a to mcs51a
3063         * src/avr/Makefile.bcc, src/ds390/Makefile.bcc, src/izt/Makefile.bcc,
3064         src/mcs51/Makefile.bcc, src/pic16/Makefile.bcc, src/xa51/Makefile.bcc,
3065         src/z80/Makefile.bcc: delete $(LIB) only if exist
3066         * src/Makefile.bcc, src/pic/Makefile.bcc:  fixed compilation with Borland C
3067
3068 2003-02-02  Bernhard Held <bernhard@bernhardheld.de>
3069
3070         * device/include/malloc.h: introduced NULL
3071         * device/include/string.h: introduced NULL
3072         * device/include/stdlib.h: introduced NULL
3073         * device/lib/_memcpy.c: removed NULL
3074         * device/lib/_strcat.c: removed NULL
3075         * device/lib/_strchr.c: removed NULL
3076         * device/lib/_strcmp.c: removed NULL
3077         * device/lib/_strcpy.c: removed NULL
3078         * device/lib/_strcspn.c: removed NULL
3079         * device/lib/_strlen.c: removed NULL
3080         * device/lib/_strncat.c: removed NULL
3081         * device/lib/_strncmp.c: removed NULL
3082         * device/lib/_strncpy.c: removed NULL
3083         * device/lib/_strpbrk.c: removed NULL
3084         * device/lib/_strrchr.c: removed NULL
3085         * device/lib/_strspn.c: removed NULL
3086         * device/lib/_strstr.c: removed NULL
3087         * device/lib/_strtok.c: removed NULL
3088         * device/lib/malloc.c: removed NULL, include own header
3089
3090 2003-02-02    <johan@balder>
3091
3092         * 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
3093         * support/regression/fwk/lib/testfwk.c: div and mod isn't broken anymore
3094         * regressions ds390/spec.mk and mcs51/spec.mk (timeout): my good old balder isn't fast enough for some tests
3095         * src/z80/gen.c (genZ80Code): added c-lines in asm comments
3096         * as/z80/asm.h (NINPUT): increased for long c-comments in regression tests
3097         * src/z80/gen.c (genRightShiftLiteral): fixed the (char)(-3)>>8 (I think)
3098
3099 2003-02-01  Jesus Calvino-Fraga <jesusc@ece.ubc.ca>
3100
3101         * src/SDCCmain.c: Fixed bug 678574: "ds390: ASlink-Error-Stack overlaps
3102         area 'DATA'"
3103
3104 2003-02-01    <johan@balder>
3105
3106         * src/SDCCval.c (valBitwise): fixed Karl's "2 | (1<<8)"
3107
3108 2003-01-31    <johan@CP255758-A>
3109
3110         * src/ds390/main.c (_ds390_genAssemblerPreamble): applied Jan Rejlek's >64K startup patch
3111
3112 2003-01-30    <johan@balder>
3113
3114         * src/SDCCBBlock.c: automatic bug detection
3115         * src/SDCCicode.c: automatic bug detection
3116
3117 2003-01-29  Jesus Calvino-Fraga <jesusc@ece.ubc.ca>
3118
3119         * src/SDCCglobl.h:   now --xram-size 0 works
3120         * src/SDCCmain.c:    now --xram-size 0 works
3121
3122 2003-01-29    <johan@balder>
3123
3124         * src/almosteverything: changed OP_DEFS and OP_USES from macros to functions to catch symbol abuse (a hot topic in the bug list :)
3125
3126 2003-01-29  Jesus Calvino-Fraga <jesusc@ece.ubc.ca>
3127
3128         * as/mcs51/aslink.h: Added options --xram-size and --code-size 
3129         * as/mcs51/lkdata.c: Added options --xram-size and --code-size 
3130         * as/mcs51/lkmain.c: Added options --xram-size and --code-size 
3131         * as/mcs51/lkmem.c:  Added options --xram-size and --code-size 
3132         * src/SDCCglobl.h:   Added options --xram-size and --code-size 
3133         * src/SDCCmain.c:    Added options --xram-size and --code-size 
3134
3135 2003-01-28  Bernhard Held <bernhard@bernhardheld.de>
3136
3137         * src/ds390/gen.c: fix deps by replacing <common.h> with "common.h"
3138         * src/SDCC.lex: rename P_OVERLAY to P_OVERLAY_ for cross-gcc 3.2 MINGW32
3139
3140 2003-01-27    <johan@balder>
3141
3142         * src/SDCC.y: fixed bug #613764
3143
3144 2003-01-26    <johan@balder>
3145
3146         * src/SDCClrange.c:  fixed Bernhard's "char * code ptr = &c"
3147         * src/SDCCsymt.h: fixed bug #673374
3148         * src/SDCCglue.c: fixed bug #661910
3149         * src/SDCCast.c: fixed bug #458099 and 673374
3150
3151 2003-01-26  Bernhard Held <bernhard@bernhardheld.de>
3152
3153         * as/mcs51/strcmpi.c: added, provides Aurelien Jarno's as_strcmpi(); strcmpi() is not ANSI
3154         * as/mcs51/strcmpi.h: added
3155         * as/mcs51/asm.h: remove ugly "#define strcmpi strcmp"
3156         * as/mcs51/aslink.h: remove ugly "#define strcmpi strcmp"
3157         * as/mcs51/asmain.c: strcmpi -> as_strcmpi
3158         * as/mcs51/assym.c: strcmpi -> as_strcmpi
3159         * as/mcs51/lkmem.c: strcmpi -> as_strcmpi
3160         * as/mcs51/lknoice.c: strcmpi -> as_strcmpi
3161         * as/mcs51/lksym.c: strcmpi -> as_strcmpi
3162         * as/mcs51/Makefile.aslink: new module strcmpi
3163         * as/mcs51/Makefile.asx8051: new module strcmpi
3164         * as/mcs51/Makefil.bcc: new module strcmpi
3165         * as/mcs51/Makefile.in: new module strcmpi
3166         * sim/ucsim/s51.src/uc390.cc (get_mem_size): make RAM big enough for tinibios
3167
3168 2003-01-26    <johan@balder>
3169
3170         * src/SDCCglue.c: reverted back to 1.124
3171         * src/SDCCast.c: reverted back to 1.156
3172         * src/mcs51/gen.c (aopGet): applied Frieder's efficiency patch
3173
3174 2003-01-25    <johan@balder>
3175
3176         * src/SDCCglue.c: A better fix for bug #661910
3177         * src/SDCCast.c: A better fix for bug #661910
3178         * src/SDCCglue.c (emitRegularMap): That was a little too efficient
3179
3180 2003-01-24  Bernhard Held <bernhard@bernhardheld.de>
3181
3182         * src/Makefile.in: remove spawn.o
3183         * src/SDCCmain.c: remove spawn.h
3184         * src/SDCCmain.c (printVersionInfo): report MINGW32 instead of UNIX
3185         * src/spawn.c: removed
3186         * src/spawn.h: removed
3187         * support/regression/ports/ds390/spec.mk: link with -r
3188
3189 2003-01-24    <johan@CP255758-A>
3190
3191         * src/ds390/gen.c (aopOp): fixed bug #667458
3192         * src/SDCCglue.c (emitRegularMap): fixed bug #458099 again
3193         * src/SDCCast.c (createIvalCharPtr): fixed bug #661910
3194         (createIvalCharPtr): an ival doesn't always have a storage class anymore
3195
3196 2003-01-24  Bernhard Held <bernhard@bernhardheld.de>
3197
3198         * src/mcs51/peeph.def: better assembler identation by Frieder
3199         * src/mcs51/gen.c: better assembler identation by Frieder
3200
3201 2003-01-22  Bernhard Held <bernhard@bernhardheld.de>
3202
3203         * as/z80/string.h: removed for gcc 3.2
3204         * support/makebin/makebin.c: #include <string.h> for gcc 3.2
3205         * src/pic/pcode.c (get_op_from_instruction): fix concatenation of string literals with __FUNCTION__ for gcc 3.2
3206
3207 2003-01-19  Bernhard Held <bernhard@bernhardheld.de>
3208
3209         * src/SDCCmain.c (linkEdit): rename mem and map files even in case of failure
3210         * src/SDCCpeeph.c (replaceRule): fix bug #663503
3211         * support/regression/Makefile: separate temp files for ports
3212         * support/regression/generate-cases.py: separate temp files for ports
3213         * src/mcs51/peeph.def: Frieder: removed 237 (obsolete by 236g and 105); added 237 a/b
3214         * src/ds390/peeph.def: Frieder: removed 237 (obsolete by 236g and 105); added 237 a/b
3215
3216 2003-01-19  Bernhard Held <bernhard@bernhardheld.de>
3217
3218         * moved tinitalk to device/examples/ds390
3219
3220 2003-01-14  Bernhard Held <bernhard@bernhardheld.de>
3221
3222         * as/mcs51/lkmem.c: rflag is for DS390
3223         * src/SDCCglobl.h: removed out_name and options stackOnData, genericPtr
3224         * src/SDCCmain.c (optionsTable, setDefaultOptions): removed --stack-after-data and --generic
3225                          (linkEdit): move mem- and map-files the same way as ihx-files
3226         * src/z80/main.c (_setDefaultOptions): removed --generic
3227         * src/SDCCmain.c (_processC1Arg, parseCmdLine, main): --c1mode works again
3228         * src/SDCCglue.c (createInterruptVect, glue): --c1mode works again
3229         * src/pic/glue.c (picglue): --c1mode works again
3230         * src/pic16/glue.c (pic16glue): --c1mode works again
3231         * src/asm.c (printCLine): fix #660034
3232
3233 2003-01-13  Bernhard Held <bernhard@bernhardheld.de>
3234
3235         * src/ds390/peeph.def: fix #123; add 14 rules by Fiorenzo D. Ramaglia <fd.ramaglia@tin.it>, 1 by Frieder
3236         * src/mcs51/peeph.def: fix #123; add 14 rules by Fiorenzo, 1 by Frieder
3237         * src/mcs51/gen.c (genFunction): emit r0 instead of ar0 by Fiorenzo
3238         * as/mcs51/lkmem (summary): better fix for sp problem
3239         * src/SDCCglue.c (glue): __start_stack - 1, saves 1 byte!
3240         * src/ds390/main.c (_ds390_finaliseOptions, _tininative_finaliseOptions): stack_loc = 0x400008
3241         * support/regression/ports/*/spec.mk: moving testfwk-object to port dir allow parallel execution of regression tests
3242                                               remove --stack-after-data
3243
3244 2003-01-12  Bernhard Held <bernhard@bernhardheld.de>
3245
3246         * src/SDCCmain.c (main): port->finaliseOptions() moved for z80 linking
3247         * src/SDCCutil.c (join): ugly bug: missing '\0'
3248         * as/mcs51/lkmem.c (summary): sp on address 7 is safe
3249
3250 2003-01-11  Bernhard Held <bernhard@bernhardheld.de>
3251
3252         * src/SDCCmain.c (assemble, linkEdit): preparations for -o
3253         * src/port.h: typo
3254         * src/pic/main.c (_asmCmd): gpasm supports -o
3255         * src/z80/main.c: more general macros
3256         * device/lib/Makefile.in: remove intermediate files
3257
3258 2003-01-11  Bernhard Held <bernhard@bernhardheld.de>
3259
3260         * .version: Bumped version number to 2.3.3
3261         * src/SDCCBBlock.c: new option -o
3262         * src/SDCCglobl.h: new option -o
3263         * src/SDCCglue.c: new option -o
3264         * src/SDCCmain.c: new option -o
3265         * src/asm.c: new option -o
3266         * src/ds390/main.c: new option -o
3267         * src/pic/glue.c: new option -o
3268         * src/pic/pcode.c: new option -o
3269         * src/pic/ralloc.c: new option -o
3270         * src/pic16/glue.c: new option -o
3271         * src/pic16/pcode.c: new option -o
3272         * src/pic16/ralloc.c: new option -o
3273         * src/z80/main.c: new option -o
3274         * device/lib/Makefile.in: use -o
3275         * support/regression/ports/ds390/spec.mk: use -o
3276         * support/regression/ports/gbz80/spec.mk: use -o
3277         * support/regression/ports/mcs51/spec.mk: use -o
3278         * support/regression/ports/mcs51-stack-auto/spec.mk: use -o
3279         * support/regression/ports/z80/spec.mk: use -o
3280         * support/regression/ports/ucz80/spec.mk: use -o
3281         * support/regression/ports/xa51/spec.mk: use -o
3282         * support/regression/fwk/lib/timeout.c: fix usage string
3283
3284 2003-01-09  Bernhard Held <bernhard@bernhardheld.de>
3285         * src/mcs51/gen.c (genPlus): replaced "mov b,acc" by "mov b,a" Fiorenzo D. Ramaglia <fd.ramaglia@tin.it>
3286         
3287 2003-01-07    <johan@balder>
3288
3289         * src/SDCCast.c (decorateType): fixed bug #600035
3290
3291 2003-01-07  Bernhard Held <bernhard@bernhardheld.de>
3292         * as/mcs51/lkmem.c: added several l-modifiers to printf to remove warnings
3293         * as/mcs51/lkaomf51.c: #include <ctype.h> to remove warnings
3294         * src/pic/main.c (_hasNativeMulFor): outcommented unused variables to remove warnings
3295         * src/pic/pcode.c: outcommented unused variable to remove warnings
3296         * src/pic/ralloc.c: outcommented unused variable to remove warnings
3297
3298 2003-01-06    <karl@turbobit.com>
3299         * sim/ucsim/cmd.src/command.cc: fixed so "break xram r 0x7654" works again in
3300    regression tests.
3301
3302 2003-01-06    <johan@balder>
3303
3304         * src/SDCCicode.c: fixed array add
3305
3306 2002-01-05  Bernhard Held <bernhard@bernhardheld.de>
3307         * src/SDCCmacro.c: MAX_STRING_LENGTH increased to 2048; was too small for regression tests
3308         * support/regression/ports/host/support.c: #include <stdarg.h> for gcc 3.2
3309
3310 2003-01-04    <johan@balder>
3311
3312         * src/SDCCval.c (getNelements): fixed the initialized array of structures
3313
3314 2002-12-29  Jesus Calvino-Fraga <jesusc@ece.ubc.ca>
3315         * as/mcs51/Makefile.bcc: fixed typo lkomf51.o -> lkaomf51.o
3316
3317 2002-12-28  Bernhard Held <bernhard@bernhardheld.de>
3318         * src/mcs51/peeph.def: added rules 234 and 235 from Frieder Ferlemann <frieder.ferlemann@web.de>
3319         * support/regression/tests/bug-524697.c: fit mem usage into 8032
3320
3321 2002-12-28  Bernhard Held <bernhard@bernhardheld.de>
3322         * src/mcs51/gen.c (aopGetUsesAcc): inserted missing "return FALSE"
3323
3324 2002-12-27  Bernhard Held <bernhard@bernhardheld.de>
3325         * as/mcs51/Makefile.in: fixed typo lkomf51.o -> lkaomf51.o
3326
3327 2002-12-26  Bernhard Held <bernhard@bernhardheld.de>
3328         * src/mcs51/main.c: removed {bindir}{sep} from aslink
3329
3330 2002-12-10  Jesus Calvino-Fraga <jesusc@ece.ubc.ca>
3331
3332     * in \sdcc\as\mcs51\ changed these files in order to create an
3333     aomf51 file: aslink.h, lkdta.c, lklex.c, lklibr.c, lklist.c,
3334     lkmain.c.  Also added: lkmem.c and lkaomf51.c.  Changed the 
3335     following files to include the previous two files: aslink.dsp,
3336     Makefile.aslink, Makefile.bcc, and Makefile.in.
3337
3338     * Changed \sdcc\src\SDCCmain.c so it creates files with extension
3339     .adb instead of .cdb
3340     
3341 2002-11-09  Jesus Calvino-Fraga <jesusc@ece.ubc.ca>
3342
3343         * \sdcc\as\mcs51\lklist.c: Now reports memory usage using the
3344         value from option --iram-size.
3345
3346 2002-09-20  Jesus Calvino-Fraga <jesusc@ece.ubc.ca>
3347
3348         * \sdcc\as\mcs51\lklist.c: added boundary check before using
3349         dram[] array.
3350
3351 2002-09-18    <wiml@hhhh.org>
3352
3353         * SDCClrange.h: exposed setFromRange() and setToRange()
3354         * mcs51/ralloc.c: fixed over-eager packRegsForSupport() and
3355           packRegsForAccUse() (bug 542397)
3356         * mcs51/gen.c: MOVA() is now a function to avoid calling aopGet()
3357           multiple times and emitting the fetch operations more than once
3358           added aopGetUsesAcc() function to allow binary operators to
3359           fetch their operands in the correct order; made genMinus() emit
3360           compact code for X = LITERAL - Y 
3361
3362 2002-09-00  Jesus Calvino-Fraga <jesusc@ece.ubc.ca>
3363         * \sdcc\as\mcs51\lklist.c: Fixed incorrect number of parameters to
3364         sprintf() in line 1267.
3365
3366 2002-09-08  Jesus Calvino-Fraga <jesusc@ece.ubc.ca>
3367         * \sdcc\src\SDCCglue.c: Generate areas REG_BANK_[0-3] only for 8051
3368         like ports.
3369
3370 2002-09-04  Jesus Calvino-Fraga <jesusc@ece.ubc.ca>
3371         Changes to aslink (All the changes are marked with 'JCF'):
3372
3373         * \sdcc\as\mcs51\aslink.h: External definition of sflag and
3374         summary().
3375
3376         * \sdcc\as\mcs51\lkarea.c: Computes the size of area BSEG_BYTES from
3377         area BSEG.  Also moves, if possible, the DATA area down into the internal
3378         ram so more space is available.
3379
3380         * \sdcc\as\mcs51\lkdata.c: Definition of memory summary output flag
3381         sflag.
3382
3383         * \sdcc\as\mcs51\lklist.c: For the BSEG area report the size in bits,
3384         not bytes.  Function summary() which creates a memory usage summary
3385         file with extension .mem.  Reports of overlaping stack and small stack
3386         size.  If the space for the stack is less than 16 bytes aslink trows a
3387         warning.
3388         
3389         * \sdcc\as\mcs51\lkmain.c: Creation of some of the default areas for
3390         the 8051.  Option 'y' for memory summary output file.
3391
3392         Changes to sdcc (All the changes are marked with 'JCF'):
3393
3394         * \sdcc\src\SDCCglobl.h: External definition of RegBankUsed[4].
3395
3396         * \sdcc\src\SDCCglue.c:  If a register bank is used, creates an
3397         overlaying area for it (uses RegBankUsed[4]).
3398
3399         * \sdcc\src\SDCCmain.c: Definition RegBankUsed[4]; marks register
3400         bank zero as used by default.  By default aslink locates the stack
3401         (equivalent to --stack-after-data).  Pass option 'y' to aslink for
3402         the creation of the .mem file.  Delegates the allocation of data area
3403         to aslink (it is not longer 0x30 by default).  If --stack-loc passes
3404         the begining of the stack area to aslink.
3405
3406         * \sdcc\src\SDCCmem.c:  If a register bank is used, marks it so
3407         glue() in SDCCglue.c creates an area for it.
3408         
3409 2002-09-03  Borut Razem <borut.razem@siol.net>
3410         * sdcc/src/SDCCglue.c, sdcc/src/SDCCglue.h, sdcc/src/SDCCmain.c,
3411         sdcc/src/pic/glue.c:
3412         introduced atexit() handler for teporay files removal in case of
3413         errors, assertions, ...
3414
3415 2002-08-29  Borut Razem <borut.razem@siol.net>
3416         * sdcc/support/cpp2/auto-host_vc_in.h:
3417         re-definition of O_BINARY and other O_XXX as _O_BINARY and _O_XXX, so the problem
3418         with the returned value from read() in sdcc/support/cpp2/cppfiles.c is solved for MSC.
3419         Maybe there is a similar problem with BORLANDC? It should be checked!
3420
3421         * sdcc/src/ds390/ralloc.c, sdcc/src/mcs51/ralloc.c, sdcc/src/z80/ralloc.c:
3422         corrected improper use of assert: the assignment to clr variable was done inside the assert.
3423         In case that NDEBUG was defined, the assert macro was substituted with no-op, so the assignment
3424         was not executed, and the compiler (cl) launched a warning:
3425         ralloc.c(1442) : warning C4700: local variable 'clr' used without having been initialized
3426
3427 2002-08-28  Bernhard Held <bernhard@bernhardheld.de>
3428         * src/SDCCglue.c (printIvalArray): iterative calculation of array length
3429
3430 2002-08-28  Jesus Calvino-Fraga and Borut Razem <borut.razem@siol.net>
3431         * sdcc/sdcc.dsw: added sdcpp, sdcppa, yacc, conf projects
3432
3433         * sdcc/src/src.dsp, sdcc/src/avr/avr.dsp, sdcc/src/ds390/ds390.dsp,
3434           sdcc/src/mcs51/mcs51.dsp, sdcc/src/pic/pic.dsp, sdcc/src/z80/z80.dsp,
3435           sdcc/src/xa51/xa51.dsp, sdcc/src/avr/avra.dsp,
3436           sdcc/src/ds390/ds390a.dsp, sdcc/src/mcs51/mcs51a.dsp,
3437           sdcc/src/pic/pica.dsp, sdcc/src/z80/z80a.dsp,
3438           sdcc/src/xa51/xa51a.dsp, sdcc/as/as_z80.dsp,
3439           sdcc/as/aslink.dsp, sdcc/as/asx8051.dsp, sdcc/packihx/packihx.dsp:
3440         - added Release configuration in VS projects
3441         - review of compiler an linker options
3442         - VC .exe files are generated in bin_vc directory, not to interfere
3443           with binaries generated from other projects (cygwin, mingw, bcc ...)
3444
3445         * sdcc/src/yacc.dsp: added
3446
3447         * sdcc/config.dsp, sdcc/configure_vc.awk, sdcc/sdcc_vc_in.h:
3448         added - genarate sdcc_vc.h using sdcc_vc_in.h as template
3449         and insert the version number definitions from .version 
3450
3451         * sdcc/support/cpp2/sdcpp.dsp: added - VC project for sdcpp
3452
3453         * sdcc/support/cpp2/sdcppa.dsp, sdcc/support/cpp2/auto-host_vc_in.h:
3454         added - genarate auto-host.h using auto-host_vc_in.h as template
3455
3456         * sdcc/sdcc_vc.h,
3457         removed from CVS, generated automatically
3458
3459 2002-08-25  Bernhard Held <bernhard@bernhardheld.de>
3460         * support/scripts/inc2h.pl: use gputils or gpasm (from Nathan Hurst)
3461
3462 2002-08-11  Borut Razem <borut.razem@siol.net>
3463         * support/Util/NewAlloc.c: removed unneeded #include "sdccconf.h" (suggested by Jesus Calvino-Fraga)
3464
3465 2002-08-10  Borut Razem <borut.razem@siol.net>
3466         * src/SDCCmain.c (main):
3467         file preOutName was unlinked before closed. This seems to be OK on UNIX and cygwin
3468         platforms, but it doesn't work with Visual Studio: the opened file can not be removed.
3469         The consequence was that some temporary files were not removed.
3470
3471         * src/SDCCglue.c:
3472         unification of code in functions tempfilename() and tempfile():
3473         function tempnam() is defined in Visual Studio 6.0 and .NET
3474
3475         * sdcc/sdcc.dsw: removed project sdcpp, added project xa51a
3476
3477         * sdcc/src/src.dsp, sdcc/src/avr/avr.dsp, sdcc/src/ds390/ds390.dsp,
3478           sdcc/src/mcs51/mcs51.dsp, sdcc/src/pic/pic.dsp, sdcc/src/z80/z80.dsp:
3479         - removed compiler command line option /WX: Treats all warnings as errors
3480         - update a list of source files, included into the project
3481
3482         * sdcc/src/avr/avra.dsp, sdcc/src/ds390/ds390a.dsp, sdcc/src/mcs51/mcs51a.dsp,
3483           sdcc/src/pic/pica.dsp, sdcc/src/z80/z80a.dsp:
3484         changed project type to Generic Project so that can be correcly converted to VS.NET project
3485
3486         * sdcc/as/mcs51/asm.h: definition of PATH_MAX for MSC
3487
3488         * sdcc/src/SDCCast.c: solved MSC error in function decorateType()
3489
3490         * sdcc/src/SDCC.y: added missing ending ';' to rules to get rid of bison warnings
3491
3492         * dcc/src/ds390/ralloc.c, sdcc/src/mcs51/ralloc.c:
3493         added return 0 statements after assert() to make compiler happy
3494
3495         * sdcc/src/xa51/peeph.rul, sdcc/src/xa51/peeph.def, sdcc/src/z80/ralloc.c:
3496         added newline in the def file to keep MSC compiler satisfied
3497
3498         * sdcc/src/z80/gen.c:
3499         - function strcasecmp() is not defined in MSC (and probably also in BORLANDC),
3500           so it is replaced with STRCASECMP, which is defined as stricmp in case of MSC and BORLANDC
3501         - solved MSC error in function aopDump()
3502
3503         * sdcc_vc.h: define PREFIX as "\\sdcc"
3504
3505 2002-07-18  Bernhard Held <bernhard@bernhardheld.de>
3506         * src/SDCCast.c (decorateType): fixed access to array of structures http://sourceforge.net/mailarchive/forum.php?thread_id=902690&forum_id=4107
3507
3508 2002-06-22  Scott Dattalo <scott@dattalo.com>
3509         * src/pic/*: Numerous bug fixes. Flow analysis has been enhanced. 
3510         - Rewrote the register banking algorithm. 
3511         - Added pCode live-range analysis to registers (for now, only non-used and 
3512         singly-used registers optimized away)
3513
3514         * src/pic/pcoderegs.[ch]: Added new files for pCode live-range analysis
3515
3516         * support/scripts/inc2h.pl Kevin L. Pauba <klpauba@cox.net> submitted this perl script for converting MicroChip include files into SDCC Pic include files.
3517         
3518 2002-05-10  Scott Dattalo <scott@dattalo.com>
3519         * src/pic/*: Added support for multiplication. Fixed many,many bugs.
3520         
3521 2002-04-22  Michael Hope  <michaelh@vroom>
3522
3523         * device/lib/z80/printf.c: Changed emitter to volatile to work around a pcall bug.
3524
3525         * configure.in (DD_COPT): Added include support required for gbdk.
3526
3527         * .version: Bumped version number just to increase it.
3528
3529         * src/SDCCmain.c: Added -nostdinc to the default options.
3530
3531 2002-04-15  Michael Hope  <michaelh@vroom>
3532
3533         * device/lib/z80/printf.c (sprintf): Added.
3534
3535         * src/z80/ralloc.c (packRegisters): Disabled pack HL use for GB as it's broken.
3536
3537         * src/z80/peeph.def: Added transpose redundent load rule.
3538
3539         * src/z80/main.c: Added force callee saves for jaune.
3540
3541         * src/port.h: Removed the i186 and tlcs-900h ports as they weren't being being developed.
3542
3543         * src/SDCCmain.c: Pulled the options definition out so that you can add port specific options without changing the main file.
3544
3545 2002-03-28  Johan Knol  <johan@balder>
3546
3547         * src/SDCCval.c: fixed bug #532436
3548
3549 2002-03-14  Scott Dattalo <scott@dattalo.com>
3550         * /src/port.h:
3551         Added "char *Processor" field to the port structure.
3552
3553         * /src/SDCCmain.c:
3554         Added -p option. Allows port dependent processor to be specified.
3555
3556         * all ports:
3557         Initialized the new field char *Processor field to NULL in all ports
3558
3559         * /src/pic/*:
3560         Compiler generated registers for interrupt context saving
3561         were not getting allocated.
3562                 
3563 2002-03-16  Sandeep Dutta  <sandeep@ddi.com>
3564
3565         * /src/SDCCast.c:
3566         Fixed left shift. Will promote the left side of a left shift
3567         if a) left shifting more than size of operand or b) when assigned
3568         to something size > size of left side
3569
3570 2002-03-14  Scott Dattalo <scott@dattalo.com>
3571         * src/pic/*
3572         tons of changes. Register allocation has been 
3573         rewritten. Added customization for the various PICs. Flow
3574         analysis is restructured. ...
3575
3576         * src/pic/device.h:
3577         Added
3578
3579         * src/pic/device.c:
3580         Added. device.c is a PIC port hack to accomodate variations
3581         in PIC devices.
3582
3583 2002-03-13  Michael Hope  <michaelh@vroom>
3584
3585         * src/z80/gen.c (genGenPointerGet): Fixed a bug where a pointer in HL is dereferenced into HL but HL is not spilled.  Yeah.
3586
3587 2002-03-04  johanknol  <johanknol@manik>
3588
3589         * /src/SDCCval.c: fixed
3590
3591         const unsigned char arr[][2] = { { 0, 1 } };
3592         t18.c:1: error: Initializer element is not constant
3593
3594 2002-03-04  bela  <bela@manik>
3595
3596         * /device/include/mcs51reg.h:
3597         ds89c420 register definition update
3598
3599 2002-03-03    <johan@FRIJA>
3600
3601         * support/Util/SDCCerr.c: did something, but don't no why anymore
3602
3603         * support/regression/tests/bug-524691.c: made it a little less shy 
3604
3605         * src/SDCCast.c (decorateType): fixed bug #524697
3606
3607         * src/SDCCast.c: made some lineno improvements
3608
3609         * src/SDCCval.c (getNelements): changed warning to error
3610
3611         * src/SDCCglue.c (printIvalArray): changed warning to error
3612
3613         * src/SDCCicode.c: fixed a warning for mingw
3614
3615         * src/SDCCast.c (decorateType): fixed the << promotion for ops
3616
3617         * src/SDCCicode.c (geniCodeDivision): divide is shift only for unsigned (bug #524685)
3618
3619 2002-03-02  Sandeep Dutta  <sandeep@ddi.com>
3620
3621         * src/ds390/peeph.def:
3622         Added some more peephole rules
3623
3624         * src/ds390/gen.c: Various fixes & enhancements
3625
3626         * src/SDCClrange.c, src/SDCClrange.h:
3627         functions "alldefsoutofrange" and "notusedinblock" moved to SDCClrange.c
3628
3629         * src/ds390/ralloc.c:
3630         various fixes & enhancements (ds390) specific
3631
3632         * src/avr/ralloc.c, src/mcs51/ralloc.c, src/pic/ralloc.c, src/xa51/ralloc.c, src/z80/ralloc.c:
3633         Functions "allDefsOutOfRange" & "notUsedinBlock" moved to SDCClrange.c
3634         from rallocs.
3635
3636         * sdcc/src/SDCCcse.c: Better fix for bug # 514308
3637
3638 2002-03-02    <johan@FRIJA>
3639
3640         * src/SDCCast.c (decorateType): fixed bug #524708
3641
3642         * src/SDCCval.c (floatFromVal): fixed the literal void (whatever that may be)
3643
3644         * src/SDCCicode.c (geniCodePtrPtrSubtract): fixed bug #524691
3645
3646 2002-03-01  Michael Hope  <michaelh@vroom>
3647
3648         * src/SDCCsymt.c (initCSupport): Removed managling of support function names.
3649
3650         * src/z80/ralloc.c (packRegsForIYUse): Fixed fp bug where four byte operands were packed into IY.
3651
3652 2002-03-01    <johan@FRIJA>
3653
3654         * src/SDCCglue.c (printIvalPtr): fixed bug #524211
3655
3656         * src/SDCCast.c (decorateType): fixed bug #524209
3657
3658         * src/SDCCval.c (valNot): fixed bug #524195
3659
3660 2002-02-26    <johan@balder>
3661
3662         * src/xa51/gen.c: fixed a warning
3663
3664         * src/SDCCglue.c (printIvalFuncPtr): fixed bug #522534
3665
3666         * src/SDCCast.c (decorateType): fixed bug #522534
3667
3668 2002-02-23    <johan@balder>
3669
3670         * src/SDCCdflow.c (computeDataFlow): fixed bug #460088
3671
3672 2002-02-22    <johan@balder>
3673
3674         * src/SDCCast.c: fixed bug #514865
3675
3676         * src/SDCCy.c ("SDCC.y"): fixed bug #516625
3677
3678 2002-02-21  Sandeep Dutta  <sandeep@ddi.com>
3679
3680         * sdcc/src/SDCCloop.c:
3681         Previous fix was not good. basic blocks that have "break" or "return" are
3682         not really partof a loop , but live ranges used in these blocks should
3683         be live thru the entire loop, so set partOfLoop but don't add them to
3684         loop region
3685
3686 2002-02-21    <johan@FRIJA>
3687
3688         * src/SDCCcse.c: fixed bug #514308
3689
3690 2002-02-20  Sandeep Dutta  <sandeep@ddi.com>
3691
3692         * src/SDCCloop.c:
3693         Fixed BUG #519583. If a conditional block ended in a return/break
3694         statement inside a loop, it was not being considered part of the loop.
3695
3696         * src/SDCCcflow.c: Removed fix (Fixed in SDCCloop.c)
3697
3698 2002-02-10  Karl Bongers <karl@turbobit.com>
3699
3700         * debugger/*:
3701         Fixed up SDCDB debugger somewhat.  Updated debugger/README
3702         with lots of comments and notes.
3703
3704         * device/examples/test2.c:
3705         Fix bug, "red" variable not being initialized(compiler complained).
3706
3707         * device/examples/Makefile, examples/test3.c:
3708         Add Makefile in device/examples folder, compiles test3.c
3709         for use as a multiple module SDCDB test case.
3710
3711         * sim/ucsim/cmd.src/cmdset.cc:
3712         Took out debug printfs in ucsim "next" command.
3713
3714         * sim/ucsim/xa.src:
3715         Karl and Johan start ucsim XA support.  Most dissassembly working,
3716         about 75% emulation done(plenty of work remaining).
3717
3718         * sim/ucsim/z80.src:
3719         Add Z80 support to ucsim, add test-ucz80 regression test,
3720         notice ucsim/z80 emulation fails on examples/test3.c/itoa code.
3721         Notice z80 compiler fails on examples/test3.c/crc code.
3722
3723 2002-01-30  Sandeep Dutta  <sandeep@ddi.com>
3724
3725         * src/mcs51/gen.c, src/mcs51/main.c, src/mcs51/ralloc.c:
3726         Added support for --parms-in-bank1
3727
3728         * src/ds390/peeph.def:
3729         added a few more peephole optimzations
3730
3731         * src/ds390/main.c:
3732         1) added __builtin_inp & __builtin_outp used to read in data of given length
3733            from a memory mapped port
3734         2) added __builtin_memcmp
3735         3) added __builtin_swapw swap bytes of a short
3736
3737         * src/ds390/gen.c, src/ds390/gen.h, src/ds390/ralloc.c:
3738         1) handle multiple send & receives from register bank1
3739         2) ralloc can now allocate DPTR1 to some liveRanges
3740
3741         * src/SDCCsymt.c, src/SDCCsymt.h:
3742         changes to handle multiple sends & receives
3743
3744         * src/SDCCptropt.h:
3745         added some pointer arithmetic optimization
3746
3747         * src/SDCCptropt.c:
3748         added some pointer arithmetic optimizations but not stable yet so not
3749         called from anywhere (will get this working shortly)
3750
3751         * src/SDCCopt.c: fixed for multiple sends & receives
3752
3753         * src/SDCCmain.c:
3754         1) added options --parms-in-bank1 (ds390/mcs51) & --protect-sp-update
3755         2) preprocessing done AFTER port->finalizeoptions . This allows ports to
3756            set preprocessor defines (depending on options)
3757
3758         * src/SDCCicode.c, src/SDCCicode.h:
3759         changes made to handle multiple sends & receives
3760
3761         * src/SDCCglobl.h:
3762         Added options --protect-sp-update (ds390) and --parms-in-bank1 (ds390/mcs51)
3763
3764         * src/SDCCcse.c, src/SDCCcse.h:
3765         added function findbackward def (to be used in upcoming optimization)
3766
3767         * src/SDCCcflow.c, src/SDCCcflow.h:
3768         added function returnAtEnd - to determine if a basic block terminates with
3769         a RETURN iCode
3770
3771         * src/SDCCast.c, src/SDCCast.h:
3772         added option parms-in-bank1
3773
3774         * device/lib/_divsint.c, device/lib/_divslong.c, device/lib/_divuint.c 
3775         * device/lib/_divulong.c, device/lib/_modsint.c, device/lib/_modslong.c 
3776         * device/lib/_modulong.c, device/lib/_mulint.c, device/lib/_mullong.c:
3777         adjusted for --parms-in-bank1 option
3778
3779         * device/include/string.h:
3780         donot redefine "reentrant" keyword
3781
3782         * device/include/ds80c390.h: Added some more SFRs
3783
3784 2002-01-28  Bernhard Held  <bernhard@bernhardheld.de>
3785
3786         * sim/ucsim: Merged branch ucsim-034-pre3 to main trunk; new version 0.4 
3787
3788 2002-01-26  Bernhard Held  <bernhard@bernhardheld.de>
3789
3790         * src/SDCCast.c (funcOfType): fix usage of double --float-reent
3791
3792 2002-01-22  Bernhard Held  <bernhard@bernhardheld.de>
3793
3794         * support/regression/fwk/lib/testfwk.c (main): Removed workaround for bug #505387
3795
3796 2002-01-18  Paul Stoffregen  <paul@pjrc.com>
3797
3798         * Added --xram-movc option
3799
3800 2002-01-13  Bernhard Held  <bernhard@bernhardheld.de>
3801
3802         * support/regression/Makefile: don't include test-mcs51-stack-auto in target all
3803
3804 2002-01-11  Johan Knol
3805
3806         * Added math lib of Jesus Calvino-Fraga
3807
3808 2002-01-08  Bernhard Held  <bernhard@bernhardheld.de>
3809
3810         * src/SDCCmain.c (processFile): fix processing of ../../src.c
3811         * support/regression/Makefile: new target test-mcs51-stack-auto
3812         * support/regression/ports/mcs51-stack-auto/spec.mk: added
3813
3814 2002-01-04  Bernhard Held  <bernhard@bernhardheld.de>
3815
3816         * src/SDCCglue.h: printIvalCharPtr(), not printIvalChar()
3817
3818 2002-01-04  Bernhard Held  <bernhard@bernhardheld.de>
3819
3820         * support/regression/ports/mcs51/support.c: correct setup of timer / UART
3821
3822 2002-01-03  Bernhard Held  <bernhard@bernhardheld.de>
3823
3824         * src/SDCCsymt.c (processFuncArgs): fix #498307 by Johan
3825
3826         * src/SDCCglue.h: add definition for printIvalChar()
3827
3828 2002-01-02  Bernhard Held  <bernhard@bernhardheld.de>
3829
3830         * src/SDCCast.c: fix #498138 by Johan
3831
3832         * src/SDCCglue.c: fix #498138 by Johan
3833
3834 2002-01-02  Bernhard Held  <bernhard@bernhardheld.de>
3835
3836         * support/regression/Makefile: fix clean
3837
3838         * support/regression/ports/ds390/support.c: fix transmission of last character
3839
3840 2001-12-29  Sandeep Dutta  <sandeep@ddi.com>
3841
3842         * /sdcc/src/ds390/gen.c:
3843         a) improved computing address of stack variable
3844         b) took out some #if 0 code
3845         c) improved parmBytes adjustment
3846         d) improved genPlusIncr & genMinusIncr
3847         e) genCmp could generate bad code (when left assigned to DPTR)
3848         f) Fixed bug in hasInc
3849
3850         * /sdcc/src/ds390/ralloc.c:
3851         a) packRegsForSupport could mess up live information (Fixed)
3852         b) packRegsDPTRuse could be incorrect for left & right shift
3853
3854         * /sdcc/src/mcs51/ralloc.c:
3855         packRegsForSupport could mess up the live information (Fixed)
3856
3857         * /sdcc/src/mcs51/gen.c: Fixed a bug in hasInc
3858
3859         * /sdcc/src/SDCCast.c:
3860         can reverse a loop even if function call is present as long
3861         as the loop control variable is local & is not passed as parameter
3862
3863 2001-12-24  Sandeep Dutta  <sandeep@ddi.com>
3864
3865         * /sdcc/ChangeLog: *** empty log message ***
3866
3867         * /sdcc/src/ds390/gen.c, /sdcc/src/ds390/main.c:
3868         More builtin function additions for TININative
3869
3870         * /sdcc/src/ds390/ralloc.c:
3871         Had broken the regression testsuite
3872
3873         * /sdcc/src/SDCCast.c: Fixed a bug in dumptree
3874
3875         * /sdcc/src/SDCCsymt.c, /sdcc/src/SDCCsymt.h:
3876         Added funcattr hasStackParms will be set for reentrant functions when there
3877         are paramteres on the stack, this helps in minimizing frame pointer generation
3878         typeFromStr can handle function pointers now
3879
3880         * /sdcc/doc/builtins.txt, /sdcc/doc/TININative.txt:
3881         *** empty log message ***
3882
3883 2001-12-24  Sandeep Dutta  <sandeep@ddi.com>
3884
3885         * /src/ds390/gen.c, /src/ds390/main.c:
3886         More builtin function additions for TININative
3887
3888         * /src/ds390/ralloc.c:
3889         Had broken the regression testsuite
3890
3891         * /src/SDCCast.c: Fixed a bug in dumptree
3892
3893         * /src/SDCCsymt.c, /src/SDCCsymt.h:
3894         Added funcattr hasStackParms will be set for reentrant functions when there
3895         are paramteres on the stack, this helps in minimizing frame pointer generation
3896         typeFromStr can handle function pointers now
3897
3898         * /doc/builtins.txt, /doc/TININative.txt:
3899         *** empty log message ***
3900
3901
3902 2001-12-24  Sandeep Dutta  <sandeep@ddi.com>
3903
3904         * /src/ds390/gen.c, /src/ds390/main.c, /src/ds390/peeph.def, /src/ds390/ralloc.c:
3905         ALPHA version for -mTININative
3906
3907         * /src/izt/i186.c, /src/izt/tlcs900h.c, /src/mcs51/main.c, /src/pic/main.c, /src/z80/main.c, /src/avr/main.c:
3908         updated to reflect changes in the port structure
3909
3910         * /src/port.h:
3911         added function do_assemble (similar to do_link) if non-null this function
3912         will be called to do assembly (-mTININative) requires a multi command
3913         assembly
3914         added function genAssemblerEnd will be called to generate assembler Epilogue
3915
3916         * /src/SDCCsymt.c:
3917         added _JavaNative to debug info printing
3918
3919         * /src/SDCCmain.c: added option --tini-libid
3920         added port->do_assemble function (-mTININative) has a multi command assemble
3921
3922         * /src/SDCCglue.c: Disabled "constExpr" check
3923         added port->genAssemblerEnd function
3924
3925         * /src/SDCCglobl.h: Added option --tini-libid value
3926
3927         * /src/SDCCast.h:
3928         tookout optimizeCompare from the header (has no external references)
3929
3930         * /src/SDCCast.c: made one more function "static"
3931
3932 2001-12-23  Michael Hope  <michaelh@juju.net.nz>
3933
3934         * src/z80/mappings.i: Added z80asm support.
3935
3936         * src/z80/main.c: Added z80asm support on --asm=z80asm
3937
3938         * src/z80/gen.c: Fixed asm portability issues.
3939
3940         * src/asm.c (tvsprintf): Removed old code, added 'N' for function name.  For extern support.
3941
3942         * src/SDCCglue.c (printExterns): Added global/extern split.
3943
3944 2001-12-17  Bernhard Held  <bernhard@bernhardheld.de>
3945
3946         * support/regression/Makefile: added test for mcs51 model large
3947
3948         * support/regression/ports/mcs51-large/spec.mk: added test for mcs51 model large
3949
3950         * support/regression/ports/gbz80/spec.mk: added -mgbz80
3951
3952 2001-12-05  Michael Hope  <michaelh@juju.net.nz>
3953
3954         * src/diff.1 (Index): Many, many optmisiations.  Dhrystone up to 201.
3955
3956 1904-01-06  Michael Hope  <michaelh@juju.net.nz>
3957
3958         * src/z80/ralloc.c (packRegsForIYUse): Fixed the case where an operand is in direct space.
3959
3960         * src/z80/gen.c (makeFreePairId): Optimised IY load by using a spare pair.
3961
3962 2001-12-02  Bernhard Held  <bernhard@bernhardheld.de>
3963
3964         * src/mcs51/gen.c (genFunction): avoid excess "inc sp"
3965
3966         * support/regression/tests/simplefloat.c: Port to mcs51.
3967
3968 2001-11-25  Michael Hope  <michaelh@juju.net.nz>
3969         * support/regression/tests/bug-485362.c: Added.
3970
3971         * support/regression/tests/simplefloat.c (testDivNearOne): Added.
3972
3973         * src/z80/gen.c (aopOp): Fixed case where left and result are in the same spill loc and they have different sizes.
3974
3975         * src/z80/peeph.def: Added rules for optimising two byte compares on the same thing, and to optimise two ptr assign.
3976
3977         * src/z80/gen.c (aopDump): Added a dump function.
3978
3979 2001-11-25  Bernhard Held  <bernhard@bernhardheld.de>
3980         * sim/ucsim/s51.src/glob.cc: DS390 SFRs and bits added.
3981
3982         * sim/ucsim/s51.src/port.cc: Port 4 and 5 added.
3983
3984         * sim/ucsim/s51.src/regs51.h: DS390 SFRs added.
3985
3986         * sim/ucsim/s51.src/uc390.cc: Some details improved, CKRDY works for tinibios.
3987
3988         * sim/ucsim/s51.src/uc390cl.h: Work in progress.
3989
3990         * sim/ucsim/sim.src/uccl.h: 6 ports for DS390.
3991
3992         * support/regression/fwk/lib/testfwk.c: Run with tinibios.
3993
3994         * support/regression/ports/mcs51/spec.mk: Fine tuninig.
3995
3996         * support/regression/ports/ds390/support.c: Use tinibios.
3997
3998         * support/regression/ports/ds390/spec.mk: Fine tuning, use tinibios.
3999
4000 2001-11-23  Michael Hope  <michaelh@juju.net.nz>support/regression/tests/bug-460010.c
4001
4002         * src/z80/ralloc.c (packRegsForHLUse3): Changed to not pack into HL if anything is in direct space.
4003         (packRegsForHLUse3): Added packing support for send, cast, and return value from a call.
4004
4005         * src/z80/peeph.def: Added rules for optimising pushes of part of a pair.
4006
4007         * src/z80/gen.c (emitCall): Changed the stack fixup to not use HL.
4008
4009 2001-11-18  Michael Hope  <michaelh@juju.net.nz>
4010
4011         * src/z80/gen.c (genCmp): Fixed compare on unsigned.
4012
4013         * src/z80/ralloc.c (packRegsForHLUse3): Created and optimised.
4014         (packRegsForIYUse): Created and optimised.
4015
4016 2001-11-07  Michael Hope  <michaelh@juju.net.nz>
4017
4018         * support/regression/tests/float.c (testFloatAdd): Fixed up warning.
4019 2001-11-18  Bernhard Held  <bernhard@bernhardheld.de>
4020
4021         * sdcc/support/regression/tests/bug-460010.c: fix seg violation on host
4022
4023         * sdcc/support/regression/tests/muldiv.c: fix output on mcs51
4024
4025         * sdcc/support/regression/tests/stacks.c: fix DSEG overflow on mcs51
4026
4027 2001-11-07  Bernhard Held  <bernhard@bernhardheld.de>
4028
4029         * sdcc/sim/device/lib/_gptrget.c: mem region 5 (idata) added
4030
4031         * sdcc/sim/device/lib/_gptrput.c: mem region 5 (idata) added
4032
4033 2001-11-07  Bernhard Held  <bernhard@bernhardheld.de>
4034
4035         * sdcc/sim/ucsim/globals.cc: New: IXRAM.
4036
4037         * sdcc/sim/ucsim/stypes.h: New: IXRAM.
4038
4039         * sdcc/sim/ucsim/s51.src/uc390.cc: New: IXRAM.
4040
4041 2001-11-07  Michael Hope  <michaelh@juju.net.nz>
4042
4043         * src/z80/ralloc.c (packRegsForHLUse): Banned IFXs from being packed into HL.
4044         (packRegsForHLUse): Added rule to pack address of/pointer get for itemps into HL for the Z80.
4045         (packRegsForAccUse2): Added rule to pack hbit IFXs into A.
4046
4047         * src/z80/main.c (_setDefaultOptions): Made float code re-entrant by default.
4048
4049         * src/z80/gen.c (aopGetLitWordLong): Added word support for floats.
4050         (genNotFloat): Added.
4051         (genUminusFloat): Added.
4052
4053         * device/lib/z80/Makefile: Added floating pt stubs.
4054
4055         * device/lib/Makefile.in (Z80SOURCES): Added floating pt support.
4056
4057         * src/z80/gen.c (genIpush): Fixed up a push of one byte when left is in a pair.
4058
4059         * device/lib/_fsadd.c (__fsadd): Fixed up return where the numbers are hugely different.
4060
4061 2001-11-07  Bernhard Held  <bernhard@bernhardheld.de>
4062
4063         * sdcc/sim/ucsim/s51.src/glob.cc: Minor fix.
4064
4065         * sdcc/sim/ucsim/s51.src/regs51.h: Minor fix.
4066
4067         * sdcc/support/regression/Makefile: Add port ds390.
4068
4069         * sdcc/support/regression/ports/mcs51/spec.mk: Minor change.
4070
4071         * sdcc/support/regression/ports/z80/spec.mk: Minor change.
4072
4073         * sdcc/support/regression/ports/ds390/spec.mk: Added.
4074
4075         * sdcc/support/regression/ports/ds390/support.c: Added.
4076
4077         * sdcc/support/regression/ports/ds390/uCsim.cmd: Added.
4078
4079         * sdcc/support/regression/ports/mcs51/timeout.c: Cut.
4080
4081         * sdcc/support/regression/fwk/lib/timeout.c: Paste.
4082
4083 2001-11-04  Michael Hope  <michaelh@juju.net.nz>
4084
4085         * device/include/malloc.h: Added z80 and gbz80 support.
4086
4087         * device/lib/gbz80/heap.s: Added.
4088
4089         * device/lib/z80/heap.s: Added.
4090
4091         * device/lib/malloc.c: Added z80 and gbz80 support.
4092
4093         * support/regression/tests/malloc.c (testMalloc): Added.
4094
4095         * src/SDCCmain.c (parseCmdLine): Added support for -Wp.
4096
4097         * support/regression/tests/bug-478094.c: Added.
4098
4099         * src/z80/gen.c (commitPair): Fixed silly gbz80/z80 commit to static bug.
4100
4101 2001-11-04  Bernhard Held  <bernhard@bernhardheld.de>
4102
4103         * sdcc/sim/ucsim/s51.src/uc390cl.h: Improvement for ds390 to run regression tests
4104
4105         * sdcc/sim/ucsim/s51.src/uc390.h: Improvement for ds390 to run regression tests
4106
4107         * sdcc/sim/ucsim/s51.src/regs51.h: Improvement for ds390 to run regression tests
4108
4109         * sdcc/sim/ucsim/s51.src/glob.cc: Improvement for ds390 to run regression tests
4110
4111         * sdcc/support/regression/tests/bug-460010.c: Small change for ds390
4112
4113 2001-11-04  Michael Hope  <michaelh@juju.net.nz>
4114
4115         * src/z80/peeph-gbz80.def: Removed a bad sub optimisation.
4116
4117 2001-11-03  Michael Hope  <michaelh@juju.net.nz>
4118
4119         * support/regression/tests/bug-477927.c: Added.
4120
4121         * src/z80/peeph.def: Added minor rules.
4122
4123         * src/z80/gen.c (genPlusIncr): Added an extra plusinc rule.
4124
4125         * src/z80/peeph.def: Added jump optimisation modification.
4126
4127 2001-11-01  Michael Hope  <michaelh@juju.net.nz>
4128
4129         * src/SDCCmain.c (linkEdit): Added runtime path detection to the mcs51 port.
4130
4131 2001-10-30  Michael Hope  <michaelh@juju.net.nz>
4132
4133         * support/regression/tests/funptrs.c: Added.
4134
4135 2001-10-29  Michael Hope  <michaelh@juju.net.nz>
4136
4137         * src/z80/ralloc.c (packRegsForHLUse): Fixed up bad spill due to pushing one byte via HL.
4138
4139 2001-10-28  Michael Hope  <michaelh@juju.net.nz>
4140
4141         * src/z80/gen.c (genArrayInit): Made it work for on stack arrays.
4142
4143         * src/z80/main.c (gbz80_port =): Added rle support to the gbz80 port.
4144
4145         * src/z80/gen.c (genMinus): Fixed for where the result is one byte.
4146         (movLeft2ResultLong): Created.
4147
4148         * src/z80/ralloc.c (packRegsForHLUse): Added a couple of simple cases for the GB.
4149         (joinPushes): Added.  Joins two char pushes into a word push.
4150
4151 2001-10-27  Michael Hope  <michaelh@juju.net.nz>
4152
4153         * support/cpp2/Makefile.in (install): Added creation of dest dir.
4154
4155         * support/makebin/Makefile (install): Added creation of dest dir.
4156
4157 2001-10-24 Karl Bongers <karl@turbobit.com>
4158
4159         * configure.in, configure, Makefile, support/cpp: Removed cpp folder, since we have new cpp2 preprocessor code.
4160
4161 2001-10-21  Michael Hope  <michaelh@juju.net.nz>
4162
4163         * src/z80/ralloc.c: Turned off faulty pack for one use.
4164
4165         * src/z80/peeph-gbz80.def: Removed redundent restart options.
4166
4167         * src/z80/gen.c (genMult): Added native mul for constants on the z80 and gbz80.
4168
4169 2001-10-21  Bernhard Held  <bernhard@bernhardheld.de>
4170
4171         * support/regression/Makefile: Improved clean
4172
4173         * support/regression/ports/gbz80/spec.mk: Added clean
4174
4175         * support/regression/ports/host/spec.mk: Added clean
4176
4177         * support/regression/ports/z80/spec.mk: Added clean
4178
4179         * support/regression/ports/mcs51/spec.mk: Added clean, little improvements
4180
4181         * support/regression/ports/mcs51/timeout.c: little improvements
4182
4183 2001-10-17  Michael Hope  <michaelh@juju.net.nz>
4184
4185         * device/lib/malloc.c (MEMHEADER): Fixed against new pedantic pointers.
4186
4187         * support/regression/fwk/include/testfwk.h: Fixed up to use function pts correctly.
4188
4189         * support/regression/generate-cases.py: Fixed up to use function pts correctly.
4190
4191 2001-10-16  Bernhard Held  <bernhard@bernhardheld.de>
4192
4193         * support/regression/port/mcs51/spec.mk: add timeout for uCsim
4194
4195         * support/regression/port/mcs51/timeout.c: add timeout for uCsim
4196
4197 2001-10-13  Michael Hope  <michaelh@juju.net.nz>
4198         * src/z80/gen.c (emitCall): Fixed up missing spill of HL when used to assign the result value.
4199
4200         * src/z80/ralloc.c: Turned off pack for one use as it's quite broken.
4201
4202         * src/SDCCmain.c (linkEdit): Added support for passing a legacy command line through the processor.
4203
4204         * src/mcs51/main.c (_linkCmd): Added bin path to command.
4205
4206         * src/SDCCmain.c (initValues): Added support for when it it called just to link.
4207
4208         * as/mcs51/lklibr.c (libfil;): Turned off 'library file' message.
4209
4210         * src/SDCCval.c (constVal): Fixed usage of 'L' modifier problems on ppc.
4211
4212         * support/regression/tests/longor.c: Added.
4213
4214 2001-10-11  Bernhard Held  <bernhard@bernhardheld.de>
4215
4216         * as/mcs51/asdata.c: replaced FILENAME_MAX with PATH_MAX
4217
4218         * as/mcs51/aslink.h: define PATH_MAX
4219
4220         * as/mcs51/asm.h: define PATH_MAX
4221
4222         * as/mcs51/asmain.c: replaced FILENAME_MAX with PATH_MAX
4223
4224         * as/mcs51/asnoice.c: replaced FILENAME_MAX with PATH_MAX
4225
4226         * as/mcs51/lklex.c: replaced FILENAME_MAX with PATH_MAX
4227
4228         * as/mcs51/lkmain.c: replaced FILENAME_MAX with PATH_MAX
4229
4230         * src/SDCCglobl.h: define PATH_MAX
4231
4232         * src/SDCCmacro.c: replaced FILENAME_MAX with PATH_MAX
4233
4234         * src/SDCCmain.c: replaced FILENAME_MAX with PATH_MAX
4235
4236 2001-10-11  Michael Hope  <michaelh@juju.net.nz>
4237
4238         * src/z80/gen.c (gencjneshort): Fixed
4239
4240         * src/z80/ralloc.c (packRegsForHLUse): Added pack into HL for cast then ipush.
4241
4242 2001-10-09  Michael Hope  <michaelh@juju.net.nz>
4243
4244         * support/regression/tests/bug-469671.c: Added.
4245
4246         * src/z80/gen.c (shiftIntoPair): Fixed up warning.
4247
4248 2001-10-08  Michael Hope  <michaelh@juju.net.nz>
4249
4250         * src/SDCCmain.c: Added --fommit-frame-pointer option and implemented in the z80 port.
4251
4252         * src/z80/gen.c (genPlus): Fixed to work with extended stack.  Also fixed genMinus, genCmp.  genUMinus is still left.
4253
4254 2001-10-08  Bernhar Held  <bernhard@bernhardheld.de>
4255
4256         * src/SDCCmain.c (preProcess): added define SDCC_NOOVERLAY
4257
4258         * src/device/lib/_mulint.c  : removed hint: nooverlay bug
4259
4260         * src/device/lib/_mullong.c : removed hint: nooverlay bug
4261
4262         * src/device/lib/_divuint.c : removed hint: nooverlay bug
4263
4264         * src/device/lib/_divulong.c: removed hint: nooverlay bug
4265
4266         * src/device/lib/_moduint.c : removed hint: nooverlay bug
4267
4268         * src/device/lib/_modulong.c: removed hint: nooverlay bug
4269
4270 2001-10-07  Michael Hope  <michaelh@juju.net.nz>
4271
4272         * 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.
4273
4274         * support/Util/NewAlloc.c (freeTrace): Changed free for the gc case to not free at all.  Fixes runtime segfault.
4275
4276         * support/regression/tests/scott-compare3.c (c_abcd): Fixed up casts.
4277
4278 2001-10-07    <johan@FRIJA>
4279
4280         * device/lib/gets.c (gets): fixed the return value.
4281
4282 2001-10-06  Michael Hope  <michaelh@juju.net.nz>
4283         * src/SDCCmain.c (WRITE_SEG_LOC): Fixed up to use Safe_strdup.
4284
4285         * 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.
4286
4287         * 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.
4288
4289         * src/z80/gen.c (genZ80Code): Added de-allocation via trace support.
4290
4291         * src/pic/gen.c: Removed Safe_strdup.
4292
4293         * configure.in: Added option to enable libgc support.
4294
4295         * src/SDCCbitv.c (bitVectnBitsOn): Optimised.
4296         (bitVectUnion): Optimised.
4297         (bitVectIntersect): Optimised.
4298         (bitVectBitsInCommon): Optimised.
4299         (bitVectCplAnd): Optimised.
4300
4301         * support/makebin/makebin.c (usage): Removed getopt as mingw32 doesn't have it.  Sigh.
4302
4303 2001-10-03 Bernhard Held <bernhard@bernhardheld.de>
4304
4305         * src/SDCCmain.c: distinguish between assembler debug and plain options
4306
4307         * src/avr/main.c:   remove standard assembler options
4308
4309         * src/ds390/main.c: remove standard assembler options
4310
4311         * src/mcs51/main.c: remove standard assembler options
4312
4313         * src/port.h: removed "PENDING" comment
4314
4315 2001-10-03 Bernhard Held <bernhard@bernhardheld.de>
4316
4317         * src/device/lib/_mulint.c  : new, with assember functions
4318
4319         * src/device/lib/_mullong.c : new, with assember functions
4320
4321         * src/device/lib/_divuint.c : with assember functions
4322
4323         * src/device/lib/_divsint.c : with assember functions
4324
4325         * src/device/lib/_divulong.c: with assember functions
4326
4327         * src/device/lib/_divslong.c: with assember functions
4328
4329         * src/device/lib/_moduint.c : with assember functions
4330
4331         * src/device/lib/_modsint.c : with assember functions
4332
4333         * src/device/lib/_modulong.c: with assember functions
4334
4335         * src/device/lib/_modslong.c: with assember functions
4336
4337         * src/device/lib/libint.lib:  replaced _muluint.c  and _mulsint.c  by _mulint.c
4338
4339         * src/device/lib/liblong.lib: replaced _mululong.c and _mulslong.c by _mullong.c
4340
4341         * src/device/lib/Makefile.in: replaced _muluint.c  and _mulsint.c  by _mulint.c
4342                                       replaced _mululong.c and _mulslong.c by _mullong.c
4343
4344 2001-10-03 Bernhard Held <bernhard@bernhardheld.de>
4345
4346         * src/SDCCsymt.c: sequence of specifiers in pintTypeChain() corrected
4347
4348 2001-10-01 Bernhard Held <bernhard@bernhardheld.de>
4349
4350         * src/SDCCglue.c: test, if win32api is available for MINGW
4351
4352 2001-10-01 Bernhard Held <bernhard@bernhardheld.de>
4353
4354         * src/SDCCsymt.c: no more _modifier in printTypeChain()
4355         * support/regression/tests/driverstruct.c: REENTRANT for mcs51
4356         * support/regression/ports/gbz80/spec.mk: removed GENERIC
4357         * support/regression/ports/host/spec.mk: removed GENERIC
4358         * support/regression/ports/mcs51/spec.mk: removed GENERIC
4359         * support/regression/ports/z80/spec.mk: removed GENERIC
4360
4361 2001-10-01  Michael Hope  <michaelh@juju.net.nz>
4362
4363         * support/regression/fwk/lib/testfwk.c (__printf): Removed GENERIC.
4364
4365         * support/regression/tests/bug-467035.c: Created.
4366
4367 2001-10-01    <johan@FRIJA>
4368
4369         * src/SDCC.y: fixed bug #466586 part 1
4370
4371 2001-10-01  Johan Knol <johan.knol@iduna.nl>
4372
4373         * SDCCicode.c: z80 has no generic pointers
4374         * removed -s from strip in all Makefile(.in)'s. It is not needed, but Solaris chocks on it.
4375         
4376 2001-09-30  Michael Hope  <michaelh@juju.net.nz>
4377
4378         * sim/ucsim/cmd.src/Makefile.in ($(PRJDIR)/libcmd.a): Changed all ar references to $(AR) for Solaris.
4379
4380 2001-09-29  Michael Hope  <michaelh@juju.net.nz>
4381
4382         * Makefile (sdcc-libs): Added makebin to the list of standard targets.
4383
4384         * support/regression/ports/z80/spec.mk: Updated to use env for sdcc bin dir for automatic regression.
4385
4386 2001-09-25  Michael Hope  <michaelh@juju.net.nz>
4387
4388         * configure.in: Fixed up so that ucsim is only configured once.
4389
4390         * support/cpp2/configure.in: Fixed to use the program transform to append the .exe for the win32 build.
4391
4392         * src/SDCCutil.c (getPrefixFromBinPath): Fixed up to work with win32 in all of its glory.
4393         (getPathDifference): As above.
4394
4395         * src/SDCCmain.c (preProcess): Changed to use a temporary file in a proper temp directory.  Fixed case where pre-processing only.
4396
4397         * src/SDCCglue.c (tempfilename): Added function for pre-processor.
4398
4399 2001-09-23  Michael Hope  <michaelh@juju.net.nz>
4400         * .version: Updated to 2.3.1
4401
4402         * src/z80/main.c (z80_port =): Added macro based linker and assembler command line support.
4403         Added copyright header.
4404
4405         * src/SDCCmain.c: Shifted various functions into SDCCutil.c
4406         (assemble): Added support for macro based assembler commands.
4407         (linkEdit): Added support for macro based linker commands.
4408         (preProcess): Changed the pre-processor to use macros.
4409         (_setPaths): Added functionality to autodetect the include, lib and bin dir paths.
4410         (_discoverPaths): Added support for overriding the install directory using the SDCCDIR env variable.
4411
4412         * device/lib/z80/crt0.s: Added module name for debugging.
4413
4414 2001-09-20  Michael Hope  <michaelh@juju.net.nz>
4415
4416         * src/SDCCmain.c (printVersionInfo): Added the build date to the version info.
4417
4418         * src/SDCChasht.c (hTabDeleteByKey): Fixed delete as it would delete the last item from a bucket even if it wasn't the real one.
4419
4420         * src/SDCCglue.c: Moved gc_strdup to SDCCutil.c
4421
4422         * src/Makefile.in: Added SDCCmacro and SDCCutil
4423
4424 2001-09-19  Michael Hope  <michaelh@juju.net.nz>
4425
4426         * src/SDCCmain.c (printVersionInfo): Added the build date to the version info.
4427
4428 2001-09-16    <johan@FRIJA>
4429
4430         * 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.
4431
4432 2001-09-15    <johan@FRIJA>
4433
4434         * src/mcs51/ralloc.c: (findAssignToSym): fixed bug #460662 part 1
4435         * src/ds390/ralloc.c (findAssignToSym): fixed bug #460662 part 1
4436
4437 2001-09-11    <johan@FRIJA>
4438
4439         * src/SDCCval.c (valDiv Mod Minus Plus Shift): keep litteral expressions as small as possible (bug #460010)
4440
4441 2001-09-10  Michael Hope  <michaelh@juju.net.nz>
4442
4443         * support/regression/tests/bug-460444.c: Added test case.
4444
4445         * src/z80/gen.c (genOr): bug 460444: if (a ^ lit) was broken for &, |, and ^.
4446         (genCast): Added justification for all of the asserts.
4447
4448 2001-09-10  Bernhard Held <bernhard@bernhardheld.de>
4449
4450         * support/regression/support.c: _xdata replaced by xdata
4451
4452         * support/regression/spec.mk: removed _generic
4453
4454 2001-09-09  Michael Hope  <michaelh@juju.net.nz>
4455
4456         * src/pic/ralloc.c (debugLogRegType): Removed some old types to get it to compile.
4457
4458         * src/z80/gen.c (shiftR2Left2Result): Improved the case when v = v >> n for small values of n to use less code space and time.
4459         (genrshTwo): Fixed v = v >> n where v is a negative int and n is > 8: bug 460010.
4460
4461         * src/z80/peeph.def: Added a rule to optimise shift then compare.
4462
4463         * support/regression/tests/bug-460000.c (testShiftByParam): Added test case.
4464
4465         * support/regression/tests/bug-460010.c: Added test case.
4466
4467         * support/regression/Makefile (test-host): Removed a silly 'clean' target when testing against gcc.
4468
4469 2001-09-09  Bernhard Held <bernhard@bernhardheld.de>
4470
4471         * support/regression/Makefile: inter-port-clean adjusted for mcs51
4472
4473         * support/regression/testfwk.c: removed workaround for bug #436344
4474
4475         * support/regression/tests/bp.c: use less memory with mcs51
4476
4477         * support/regression/tests/bug-441448.c: use less memory
4478
4479         * support/regression/tests/ports/mcs51/spec.mk: cleanup, use --stack-after-data
4480
4481         * support/regression/collate-results.py: typo
4482
4483 2001-09-08  Michael Hope  <michaelh@juju.net.nz>
4484
4485         * support/regression/tests/fetchoverlap.c: Added new test case.
4486
4487         * support/regression/tests/bp.c: Added new test case.
4488
4489         * support/regression/tests/bug-448984.c: Added new test case.
4490
4491         * support/regression/tests/pow2shifts.c: Added new test case.
4492
4493         * src/z80/gen.c: Turned off the noise it normally generates for the release.
4494         (genlshTwo): Fixed right shift for count > 8.
4495
4496         * src/z80/ralloc.c: Disabled most of the ACC packing rules as they weren't getting hit and weren't at all safe.
4497
4498 2001-09-08    <johan@FRIJA>
4499
4500         * src/SDCCicode.c (geniCodeCall): a CPOINTER can be used as a function
4501
4502 2001-09-07    <johan@FRIJA>
4503
4504         * src/SDCCicode.c (newiCodeCondition): fixed bug #456235 (1.77)
4505
4506         * src/SDCCglue.c (emitRegularMap): only delete a symbol when it is a symbol
4507
4508 2001-09-06    <johan@FRIJA>
4509
4510         * src/SDCC.y: this could be a fix for bug #458744 (1.37)
4511         * bernhard noted me at this: "() equals to (void)" (1.38)
4512
4513 2001-09-05    <johan@FRIJA>
4514
4515         * src/SDCCglue.c (emitRegularMap): a fix for bug #458099/2
4516
4517 2001-09-04    <johan@FRIJA>
4518
4519         * src/SDCCsymt.c (checkSClass): a fix for bug #458099/1
4520
4521
4522 2001-09-04  Paul Stoffregen  <paul@pjrc.com>
4523
4524         * pragma noinduction broke memcpy on mcs51 large model.  Moved it inside z80 optimization
4525
4526 2001-09-03  Michael Hope  <michaelh@juju.net.nz>
4527
4528         * link/z80/aslink.h: Fixed path for PATH_MAX
4529
4530 2001-09-02  Michael Hope  <michaelh@juju.net.nz>
4531
4532         * src/z80/gen.c (fetchLitPair): Changed so that it properly caches direct space references.
4533
4534         * support/regression/tests/addsub.c: Added cases to cover all the +, - combinations.
4535
4536         * support/regression/tests/uminus.c: Added a test for the unary minus operator.
4537
4538         * 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.
4539
4540 2001-09-01  Michael Hope  <michaelh@juju.net.nz>
4541
4542         * src/z80/gen.c: Fixed up generator to pass the regresion tests, specifically fixing loads for longs, genCmp, and turned on the map file.
4543         (genCmp): Fixed up genCmp for the GB with longs.
4544
4545         * device/lib/gbz80/Makefile: Fixed up all the libraries to pass the regression tests.
4546
4547         * support/regression/ports/host/spec.mk: Updated to compile with the new type specifiers.
4548
4549         * device/lib/Makefile.in (Z80SOURCES): Removed old _mululong, _mulslong, and unneeded _mulint.
4550
4551         * device/lib/_mullong.c (_mulslong): Changed to actually return a value :)
4552
4553 2001-08-30  Paul Stoffregen  <paul@pjrc.com>
4554
4555         * added peepholes 223 to 231 to mcs51 port.  These improve code when using large model.
4556
4557 2001-08-30  Michael Hope  <michaelh@juju.net.nz>
4558
4559         * 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.
4560
4561         * src/z80/gen.c (genPlus): Changed bad long add for gb to a fall through.
4562
4563 2001-08-29  Michael Hope  <michaelh@juju.net.nz>
4564
4565         * link/z80/aslink.h: Fixed long file name support.  Is now based off PATH_MAX instead of a constant.
4566
4567         * src/z80/gen.c: Fixed add and sub for the case where left or right are in static space.
4568
4569 2001-08-30 Bernhard Held   <bernhard@bernhardheld.de>
4570
4571   * sim/ucsim/configure:    little improvement of Cygwin-detection      
4572   * sim/ucsim/configure.in: little improvement of Cygwin-detection      
4573   * sim/ucsim/cmd.src/newcmdcl.h: include <sys/types.h> to define fd_set automated build
4574   * support/regression/tests/bug-221100.c: small changes for mcs51
4575   * support/regression/tests/bug-221168.c: small changes for mcs51
4576   * support/regression/tests/bug-227710.c: small changes for mcs51
4577   * support/regression/tests/staticinit.c: small changes for mcs51
4578   * as/mcs51/aslink.h: accept everything as symbol name in rel-files, bug fix ID 452601
4579   * as/mcs51/lklex.c:  accept everything as symbol name in rel-files, bug fix ID 452601
4580   * as/mcs51/lksym.c:  accept everything as symbol name in rel-files, bug fix ID 452601