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