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