* device/lib/Makefile.in: fixed bug in target objects-pic16,
[fw/sdcc] / ChangeLog
1 2004-06-30 Vangelis Rokas <vrokas AT otenet.gr>
2
3         * device/lib/Makefile.in: fixed bug in target objects-pic16,
4         * device/lib/pic16/Makefile: prefixed with dash (-) command under
5         target 'clean',
6         * doc/sdccman.lyx: changed version to 2.4.2 and added some port
7         specific command line arguments. Also added sample lkr script
8         for placing a variable at a specific memory bank.
9         * src/pic16/device.c (pic16_dump_gsection): NEW, to dump variables
10         at a specific memory bank,
11         * (pic16_dump_isection): fixed bug which caused string literals to
12         be omitted when dumping idata section,
13         * (pic16_groupRegistersInSection): added code to handle registers
14         in specific memory banks,
15         * src/pic16/gen.c: labelOffset is prefixed with pic16_ and made
16         public, all references are renamed too,
17         * (pic16_aopGet): removed switch cases for AOP_R0,AOP_R1,AOP_DPTR,
18         AOP_DPTR2,
19         * (pic16_storeForReturn): added case to handle when dest is WREG,
20         * src/pic16/genarith.c (pic16_pCodeOpSubType): NEW,
21         * src/pic16/glue.c (pic16emitRegularMap): when adding a register in
22         pic16_rel_udata, check to see if that register is marked as being
23         a member of a specific memory bank,
24         * (pic16_printIvalCharPtr): added code to add string literals either
25         to code or the idata sections,
26         * src/pic16/main.c (_process_pragma): added \n to WHITE constant,
27         also accept the 'udata' pragma,
28         * src/pic16/main.h: new structure types sectName and sectSym
29         * src/pic16/pcode.c: added new pCodeInstruction entry for BANKSEL
30         * (newpCodeOpBit): added PIC_OPTYPE subt in function prototype,
31         * (pic16_findPrevInstruction): fixed, it returned nothing,
32         * (insertBankSwitch): fixed to emit banksel/skip and skip/banksel
33         instruction combinations,
34         * (pic16_FixRegisterBanking): heavily reorganised,
35         * (pic16_AnalyzeBanking): if generating banksel directives is
36         disabled, then don't call FixRegisterBanking at all,
37         * src/pic16/ralloc.c (bitEQUs, aliasEQUs, allDefsOutOfRange):
38         completely removed,
39         * (pic16_writeUsedRegisters): added call to pic16_dump_gsection
40
41 2004-06-29 Bernhard Held <bernhard AT bernhardheld.de>
42
43         * src/SDCCglue.c (printChar): fixed bug #973350, patch provided by
44         Phuah Yee Keat <yk.phuah AT nestac.com>
45
46 2004-06-28 Vangelis Rokas <vrokas AT otenet.gr>
47
48         * src/pic16/glue.c (pic16createInterruptVect): function now emits
49         correctly the IVT even if it is relocated to some other location
50
51 2004-06-28 Vangelis Rokas <vrokas AT otenet.gr>
52
53         * device/include/pic16/pic18fregs.h: added case for pic18f2220.h
54         * device/include/pic16/pic18f2220.h: NEW,
55         * device/lib/pic16/libdev/pic18f2220.c: NEW,
56         * device/lib/pic16/libdev/Makefile: added 18f2220 in DEVS,
57         * src/pic16/device.c (struct Pics16): added info for 18f2220,
58         * src/pic16/device.h (struct pic16_options): added ivt_loc and
59         nodefaultlibs, ivt_loc is the location of the interrupt vector
60         table, and nodefaultlibs signs that default libraries should not be
61         linked in link stage,
62         * src/pic16/gen.c (genFunction): relocate interrupt vector functions
63         according to --ivt-loc argument,
64         * src/pic16/main.c (_process_pragma): emit '_stack' as public symbol
65         when pragma stack is found,
66
67 2004-06-25 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
68
69         * src/mcs51/peeph.def: added peepholes 182.d (return 0.0), 
70         256 (range check), 257 (do while), 258.a-f (bit banging 
71         f.e. on 3-wire SPI bus)
72
73 2004-06-21 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
74
75         * src/SDCClrange.c (findNextUseSym): fixed a live range bug with
76         variables used exclusively within a loop
77
78 2004-06-21 Bernhard Held <bernhard AT bernhardheld.de>
79
80         * src/mcs51/gen.c (genCpl): quick fix for bug #974835
81
82 2004-06-21 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
83
84         * src/SDCClrange.c (computeClash): fixed bug #971834
85
86 2004-06-20 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
87
88         * src/mcs51/gen.c (genCmp): fixed bug #975903
89         * src/hc08/gen.c (operandsEqu),
90         * src/ds390/gen.c (operandsEqu),
91         * src/z80/gen.c (operandsEqu),
92         * src/pic/gen.c (operandsEqu),
93         * src/pic16/gen.c (operandsEqu),
94         * src/mcs51/gen.c (operandsEqu): fixed bug #976283
95         * src/SDCCmain.c (parseCmdLine): report --unknown-option only once
96
97 2004-06-15 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
98
99         * src/SDCCcse.c (cseBBlock): fixed bug #966963
100
101 2004-06-12 Vangelis Rokas <vrokas AT otenet.gr>
102
103         * src/pic16/gen.c (genPointerGet): added E_INTERNAL_ERROR for
104         default case in switch statement,
105         * glue.c (pic16_initPointer): expr is initialised via decoarteType
106         to eliminate problem with initialisation of pointers, but problem
107         still exists,
108         * (pic16_pointerTypeToGPByte): removed, no needed for pic16,
109         * (emitStaticSegment): removed various lines emitting debug info,
110         * src/pic16/pcode.c, src/pic16/pcode.h, src/pic16/ralloc.h:
111         added processor registers for utilizing EEPROM,
112         * src/pic16/pcode.c (pic16_emitDB): number of DBs emitted is not
113         configurable and set 8
114
115 2004-06-08 Vangelis Rokas <vrokas AT otenet.gr>
116
117         * .version: increased version number to 2.4.2,
118
119         Cumulative patch for pic16 port
120         * src/pic16/device.c: changed scheme to dump initial values for
121         variables in idata segment, all print_idata* functions were removed,
122         now the pic16_printIval* will be called,
123         * src/pic16/glue.c: (pic16_initPointer, pic16_pointerTypeToGPByte,
124         * _pic16_printPointerType, pic16_printPointerType,
125         * pic16_printGPointerType, pic16_printIvalArray, pic16_printIvalStruct,
126         * pic16_printIvalBitFields, pic16_printIvalFuncPtr, pic16_printIvalPtr:
127         NEW, similar to the respective functions in SDCCglue.c,
128         * src/pic16/pcode.c (pic16_emitDB, pic16_flushDB): reverted to old
129         way, emitting hex bytes,
130         * (pic16_emitDS): NEW, emits a string for pointer initialisation,
131
132 2004-06-08 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
133
134         * src/avr/ralloc.c (serialRegAssign),
135         * src/xa51/ralloc.c (serialRegAssign),
136         * src/pic/ralloc.c (serialRegAssign),
137         * src/pic16/ralloc.c (serialRegAssign),
138         * src/hc08/ralloc.c (serialRegAssign),
139         * src/z80/ralloc.c (serialRegAssign),
140         * src/ds390/ralloc.c (serialRegAssign),
141         * src/mcs51/ralloc.c (serialRegAssign): fixed bug #964479
142         
143 2004-06-08 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
144
145         * src/SDCCicode.c (geniCodeJumpTable): fixed bug #967601
146         * src/SDCCpeeph.c (labelIsReturnOnly): fixed bug #966505
147
148 2004-06-07 Vangelis Rokas <vrokas AT otenet.gr>
149
150         Cumulative patch for pic16 port:
151         * src/pic16/device.h (typedef PIC16_device) modified fields for
152         defining microcontrollers,
153         * src/pic16/device.c: added new info for all devices in Pics16 array,
154         * src/pic16/gen.c (genPcall): fixed bug that caused the return label
155         to be optimised out by the pCode optimiser,
156         * src/pic16/glue.c (pic16emitRegularMap): treat implicit aggragates
157         specially, bug reported by G.M. Gallant,
158         * src/pic16/pcode.c (pic16_newpCodeLabelFORCE): NEW, marks a label
159         as force'd so that cannot be optimised out by pCode optimiser,
160         * src/pic16/pcode.c,
161         * src/pic16/pcodepeeph.c,
162         * src/pic16/pcoderegs.c: many modifications to re-enable peepholes,
163         they are disabled by default, but can be enabled explicit with
164         command argument --denable-peeps, for testing,
165         * device/lib/pic16/startup/Makefile: added --no-peep,--pomit-config-words,
166         --pomit-ivt in COMPILE_FLAGS
167  
168 2004-06-06 Maarten Brock <sourceforge.brock AT dse.nl>
169
170         * src/pic16/pcode.c (pic16_emitDB): removed double semicolon which fails
171           compilation on MSVC
172
173 2004-06-06 Maarten Brock <sourceforge.brock AT dse.nl>
174
175         * device/include/sab80515.h: added sfr P6, changed GPL to LGPL
176
177 2004-06-06 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
178
179         device/include/sab80515.h: fixed bug #967492, DAPR is defined at adress
180         0xd8, but the correct adress is 0xda. Thanks to anonymous for reporting
181
182 2004-06-06 Vangelis Rokas <vrokas AT otenet.gr>
183
184         * src/pic16/device.c (pic16_assignConfigWord): fixed bug that
185         would only assign 0x300001 register.
186
187 2004-06-05 Vangelis Rokas <vrokas AT otenet.gr>
188
189         * device/lib/pic16/startup/Makefile: added $(MODELFLAGS)
190         in COMPILE_FLAGS. Thanks to G. Gallant for report.
191
192 2004-06-05 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
193
194         * doc/sdccman.lyx: minor changes, mentioned beta vendor support
195         for ds80c400
196         * src/mcs51/peeph.def: ran unexpand -a over peeph.def
197         * src/mcs51/peeph.def: removed obsolete peephole 100.a,
198         added peephole 254 (left shift), 255 (jump table)
199
200 2004-06-04 Vangelis Rokas <vrokas AT otenet.gr>
201
202         * device/lib/Makefile.in: removed comment line with model-pic16,
203         * (target port-specific-objects-pic16): the libraries and objects
204         are copied to the build directory form the device/lib/pic16/bin
205         directory
206
207         Cumulative patch concerning pic16 port:
208         * library directory has been re-organized,
209         * added support for PIC18F1220,
210         * added headers and library sources for chips 18f1220,18f6520,
211         18f6620,18f6680,18f6720,18f8520,18f8620,18f8680,18f8720
212
213         * configuration registers setting has changed, now each supported
214         device has a complete description of the registers it uses,
215         * all initialisations are moved to idata sections, these section
216         can be absolute or relocatable,
217         * fixed initialisation of codespace variables,
218         * fixed warning about PCLATU and gpsim,
219         * src/pic16/gen.c (genCmp): now can handle partially iCodes with no ifx,
220         * (genAssign): use table reads when assigning from variables in codespace,
221         * src/pic16/glue.c (pic16emitStaticSeg): fixed to correctly initialise
222         char/int variables placed in codespace,
223         * (pic16_emitConfigRegs): NEW, emits a list with configuration
224         registers set in .asm file, no need for --pomit-config-words anymore,
225         * (pic16glue): some 8051 legacy segments are commented out
226         (to be removed completely),
227         * added support for alternative assembler and linker with --asm=
228         and --link= command line arguments,
229         * peepholes are disabled automatically in the port, no need to
230         specify on command line,
231         * port supports natively char/int/long multiplication, but converts
232         all divisions to support functions,
233         * main.c: pic16_linkCmd and pic16_asmCmd changed to force output
234         to the file set in variable $2,
235         * pcode.c (pic16_emitDB, pic16_flushDB): modified to print printable
236         strings in ASCII format and not in hex,
237         * ralloc.c (serialRegAssign): added a triplet of conditional calls
238         to pic16_allocDirReg for IC_RESULT, IC_LEFT and IC_RIGHT so to
239         allocate proper register if iCodes aren't temporary,
240
241 2004-06-02 Maarten Brock <sourceforge.brock AT dse.nl>
242
243         * support/regression/tests/zeropad.c: added TEST_G macro for alpha
244
245 2004-06-02 Vangelis Rokas <vrokas AT otenet.gr>
246
247         * src/pic16/gen.c (genPcall): warning about gpsim and PCLATU
248         is commented out
249
250 2004-06-01 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
251
252         * src/hc08/gen.c (genPointerGetSetOfs): disabled optimization if
253         computed address is reused
254         * src/hc08/gen.c (genPackBits): fixed offsets in assignments to
255         multi-byte bitfields
256
257 2004-06-01 Maarten Brock <sourceforge.brock AT dse.nl>
258
259         * src/z80/gen.c: (genArrayInit): must check for pointers too
260
261 2004-06-01 Maarten Brock <sourceforge.brock AT dse.nl>
262
263         * support/regression/tests/zeropad.c: never meant to commit the
264           nestedstruct test: removed, added check for GCC version
265
266 2004-05-31 Maarten Brock <sourceforge.brock AT dse.nl>
267
268         * src/SDCCast.c (createIvalArray): fixed bug 770487 SIGSEGV
269         * src/SDCCglue.c (emitRegularMap): fixed bug 770484 allocation problem
270         * src/SDCCglue.c (initPointer, printIvalType, printIvalStruct,
271           printIvalArray, printIvalFuncPtr, printIvalPtr, printIval): fixed
272           bugs 928906 and 954082 half-empty initializers
273         * src/SDCCsymt.h,
274         * src/SDCCsymt.c (getAllocSize): added for above fix
275         * src/z80/gen.c (genArrayInit): fixed bug 741044
276         * support/regression/tests/zeropad.c: added tests
277
278 2004-05-30 Vangelis Rokas <vrokas AT otenet.gr>
279
280         * src/pic16/device.c (pic16_dump_section): corrected bug which
281         caused some symbols of the libraries to be misplaced
282
283 2004-05-28 Vangelis Rokas <vrokas AT otenet.gr>
284
285         * src/pic16/glue.c,
286         * src/pic16/ralloc.h,
287         * src/pic16/ralloc.cc: prefixed IS_CONFIG_ADDRESS with PIC16_
288         to fix conflict with pic port
289
290 2004-05-28 Vangelis Rokas <vrokas AT otenet.gr>
291
292         * src/pic16/glue.c (pic16emitStaticSeg): do not print as publics or
293         externs configuration variables,
294         * src/pic16/ralloc.h,
295         * src/pic16/ralloc.cc: IS_CONFIG_ADDRESS is made public and added
296         prototype in header, commented out some debug messages
297
298 2004-05-26 Vangelis Rokas <vrokas AT otenet.gr>
299
300         * src/pic16/glue.c,
301         * src/pic16/main.c,
302         * src/pic16/pcode.c: added gpasm directives #FILE/#LINE
303         for gpasm COFF object generation. Thanks to D. Hawkins for
304         his patch info
305
306 2004-05-25 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
307
308         * src/ds390/main.c,
309         * src/mcs51/main.c: fixed sort order of mnemonics (thanks to Maarten
310         Brock for spotting this)
311         * src/ds390/gen.c (genEndFunction),
312         * src/mcs51/gen.c (genEndFunction): always save psw if function is an
313         interrupt handler and critical. Disable push/pop optimizations when
314         peephole optimizations disabled.
315
316 2004-05-25 Vangelis Rokas <vrokas AT otenet.gr>
317
318         Updated pic16 library sources and headers.
319         * device/lib/pic16/pic18f*/ ,
320         * device/include/pic16/*.h: modified to handle structured SFR
321         definitions
322
323 2004-05-25 Vangelis Rokas <vrokas AT otenet.gr>
324
325         * src/port.h (PORT structure): added hook initPaths, now each
326         port can declare its own default search paths,
327         which can been seen with the --print-search-dirs option,
328         see pic16 port for example,
329         * src/SDCCmain.c (setBinPaths, setIncludePaths, setLibPath,
330         setDataPaths): test to options.printSearchDirs is ifdef'ed out,
331         * (doPrintSearchDirs): NEW, replaces in a central manner the
332         printing of search dirs which was split in set*Paths functions,
333         * (main): added call to port->initPaths and doPrintSearchDirs,
334         * src/avr/main.c,
335         * src/ds390/main.c,
336         * src/hc08/main.c,
337         * src/izt/i186.c,
338         * src/izt/tlcs900h.c,
339         * src/mcs51/main.c,
340         * src/pic/main.c,
341         * src/pic16/main.c: modified port structures to reflect addition of
342         initPaths hook,
343
344         * src/pic16/device.c (regCompare): registers are finally sorted by name,
345         * (pic16_dump_section): for registers in same address reserve memory once,
346         * src/pic16/device.h (struct PIC16_device): changed variable gen_banksel
347         to no_banksel,
348         * src/pic16/genarith.c (pic16_genPlus): added code to handle cases where
349         result is greater in size than right or left,
350         * (pic16_genUMult8X8_8): there are some cases where the result can
351         be 16 bits size, so handle these,
352         * src/pic16/gen.c: changed some pic16_emitpcomment to DEBUGpic16_emitcode,
353         * (pic16_outBitC): modified to emit pcodes,
354         * (pic16_storeForReturn): using is_LitOp to see if operand is literal
355         or not,
356         * (genDivOneByte): implemented algorithm to divide 8-bits,
357         * (genCmp): uncommented goto, but issues still exist,
358         * (genAnd): fixed a bug with variables >8bits,
359         * (genPackBits): optimization added that uses BCF/BSF to change a
360         single bit,
361         * (genAssign): fixed bug when assigning floating point literals,
362         * src/pic16/glue.c (pic16glue): added assembler directive 'code' before
363         __sdcc_gsinit_startup label,
364         * src/pic16/main.c (_pic16_init): removed search directory
365         initialisations,
366         * (_pic16_initPaths): NEW, used to initialise search directories,
367         * (_hasNativeMulFor): support functions for all except char/int
368         multiplication, and char division,
369         * (PIC16_port struct): modified entry for native mul support,
370         * src/pic16/pcode.c (insertBankSwitch): modified to support the renamed
371         no_banksel option,
372         * (buildCallTree): call to register_usage is ifdef'ed out,
373
374 2004-05-22 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
375
376         * device/include/string.h: applied Stas Sergeev's patch to make this
377         header file compatible with the preprocessor -Wundef option
378         * src/SDCCmain.c (main): abort compilation if preprocessor reports
379         failure (fixes bug #941458)
380
381 2004-05-21 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
382
383         * src/SDCCopt.c (killDeadCode): fixed bug #907733
384         * support/Util/SDCCerr.c: reworded E_AUTO_ASSUMED diagnostic to clarify
385         that the variable, not the function, should be static
386         * src/SDCCval.c (valCastLiteral): fixed bit initialization from literal
387         to be consistent with non-literal case
388
389 2004-05-19 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
390
391         * src/SDCCast.c (isConformingBody): fixed bug #949967
392         * src/SDCCopt.c (cnvToFcall, cnvToFloatCast, cnvFromFloatCast,
393         convilong): fixed bug #952086
394
395 2004-05-18 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
396
397         * src/SDCCmem.c (allocVariables): fixed bug #955321
398
399 2004-05-18 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
400
401         * src/hc08/main.c (_hc08_genAssemblerEnd),
402         * src/SDCCdwarf2.c (dwOpenFile, dwCloseFile, dwWriteFunction,
403         dwWriteModule, dwWriteCLine, dwWriteALine, dwarf2FinalizeFile):
404         completely eliminated the use of a temporary file
405         * src/SDCCdwarf2.c (dwWriteAttr): fixed bug with location list offset
406         when more than one file linked
407         * src/SDCCloop.c (pointerAssigned): fixed bug #954163
408
409 2004-05-17 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
410
411         * src/SDCCval.c (valForArray): applied Maarten Brock's patch #947682
412         which fixes bug #543481
413         * support/regression/tests/bug-751703.c: fixed comments left from a
414         cut and paste error
415         * src/SDCCdwarf2.c (dwCloseFile): don't explicitly close a temp file
416         * src/SDCCdwarf2.c (dwTagFromType): added bitfield support
417         * src/SDCCdwarf2.c (dwWriteSymbolInternal): handle extern within local
418         scopes
419         * src/SDCCdwarf2.c (dwWriteLineNumber): line number deltas are signed
420         * src/SDCCmain.c (processFile, parseCmdLine): non-alphanumeric chars
421         are now changed to underscores in moduleName
422
423 2004-05-15 Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
424
425         * as/mcs51/lkmem.c: better fix for bug #954173
426
427 2004-05-15 Maarten Brock <sourceforge.brock AT dse.nl>
428         committed by Frieder Ferlemann <Frieder.Ferlemann AT web.de>
429
430         * device/include/c8051f020.h: newly added SiLabs (Cygnal) header file
431         * device/include/c8051f000.h,
432         * device/include/c8051f120.h,
433         * device/include/c8051f300.h,
434         * device/include/c8051f310.h,
435         * device/include/c8051f320.h: updated (added _XPAGE, CAPN, CAPP,
436         PWM16) and detab'ed
437
438 2004-05-15 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
439
440         * doc/sdccman.lyx: mentioned sourceforge's delay between web frontend
441         and mailing lists, doc'ed --no-peep-comments, removed reference
442         to knoppix (newest version has no LyX/LaTeX), other minor changes
443         * src/SDCCglue.c (glue): save 2 bytes stack space with
444         option --main-return. The ljmp could probably be avoided too
445
446 2004-05-14 Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
447
448         * as/mcs51/lkmem.c, as/mcs51/lkaomf51: fixed bug 954173
449
450 2004-05-14 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
451
452         * src/SDCCsymt.h: added IS_AUTO(symbol) test macro
453         * src/SDCCopt.c (isLocalWithoutDef),
454         * src/SDCCicode.c (operandFromSymbol): use the IS_AUTO test macro
455         which adds a !IS_EXTERN codition. Fixes bugs #877426 and #751703.
456         (credit to Maarten Brock for patch #949363, on which this is based)
457         * support/regression/tests/bug-751703.c: some test cases of extern used
458         within inner scopes.
459
460 2004-05-14 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
461
462         * src/SDCCdwarf2.c (dwMatchTypes): structs must have matching
463         SPEC_STRUCT
464         * src/SDCCdwarf2.c (dwTagFromType): fix to handle recursive
465         struct definitions
466         * src/SDCCdwarf2.c (dwWriteModule, dwNewDebugSymbol, dwWriteEndFunction,
467         dwWriteLabel): fix to create valid debugger symbols even when
468         the module name has non-alphanumeric symbols in it
469         * src/SDCCdwarf2.c (dwWriteSymbolInternal): better detection for
470         when a variable's allocation has been optimized away
471
472
473 2004-05-13 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
474
475         * src/hc08/gen.c (hc08_emitDebuggerSymbol),
476         * src/hc08/main.c,
477         * src/mcs51/gen.c (mcs51_emitDebuggerSymbol),
478         * src/mcs51/main.c,
479         * src/ds390/gen.c (ds390_emitDebuggerSymbol),
480         * src/ds390/main.c,
481         * src/z80/gen.c (z80_emitDebuggerSymbol),
482         * src/z80/main.c,
483         * src/pic/gen.c (pic14_emitDebuggerSymbol),
484         * src/pic/main.c,
485         * src/pic16/gen.c (pic14_emitDebuggerSymbol),
486         * src/pic16/main.c,
487         * src/avr/gen.c (avr_emitDebuggerSymbol),
488         * src/avr/main.c,
489         * src/xa51/gen.c (xa51_emitDebuggerSymbol),
490         * src/xa51/main.c,
491         * src/SDCCdebug.c (emitDebuggerSymbol),
492         * src/SDCCdebug.h,
493         * src/port.h: added a debugger struct to the port struct. Added a
494         callback for defining debugger symbols
495
496         * src/SDCCast.c (createLabel),
497         * src/SDCC.y (labeled_statement): mark all compiler generated labels
498         with isitmp = 1
499         * src/SDCCicode.h,
500         * src/SDCCicode.c (geniCodeFunctionBody): added a link from the FUNCTION
501         iCode back to the ast for the function
502
503         * src/hc08/ralloc.c (hc08_assignRegisters),
504         * src/hc08/ralloc.h: define a regs struct for the stack pointer. Removed
505         unneeded fields from the regs struct.
506         * src/hc08/gen.c (transferRegReg, genFunction, genEndFunction): use the
507         pushReg() & pullReg() functions instead of emitcode()
508
509         * src/hc08/gen.c (genLabel, genhc08Code),
510         * src/SDCCdebug.h: Added additional debugger hooks needed for DWARF
511
512         * src/cdbFile.c (cdbWriteLabel, cdbWriteScope): Added stubs for unneeded
513         debugger hooks
514
515         * src/hc08/gen.c (genEndFunction, genhc08Code),
516         * src/hc08/gen.h,
517         * src/mcs51/gen.c (genEndFunction, gen51Code),
518         * src/mcs51/gen.h,
519         * src/ds390/gen.c (genEndFunction, gen390Code),
520         * src/ds390/gen.h,
521         * src/z80/gen.c (genEndFunction, genZ80Code),
522         * src/z80/gen.h,
523         * src/z80/z80.h,
524         * src/pic/gen.c (genEndFunction, genpic14Code),
525         * src/pic/gen.h,
526         * src/pic16/gen.c (genEndFunction, genpic16Code),
527         * src/pic16/gen.h,
528         * src/avr/gen.c (genEndFunction, genAVRCode),
529         * src/avr/gen.h,
530         * src/xa51/gen.c (genEndFunction, genXA51Code),
531         * src/xa51/gen.h,
532         * src/cdbFile.c (cdbWriteFunction, cdbWriteEndFunction): moved cdb
533         specific code to cdbFile.c and out of the backend code generators
534
535         * as/hc08/lkmain.c (main): removed OMF51 support from link-hc08
536         * as/hc08/lkarea.c (lnkarea): areas with NOLOAD attribute default
537         starting address is now 0
538
539         * as/hc08/asm.h,
540         * as/hc08/m08pst.c,
541         * as/hc08/asmain.c (asmbl): implemented the .sleb128 and .uleb128
542         assembler directive for DWARF support
543         * as/hc08/lkelf.c (elf): only increment address when rtflg[] set
544
545         * src/src.dsp,
546         * src/Makefile.in,
547         * src/SDCCdwarf2.c: preliminary DWARF (ver 2) debugger data generator
548
549 2004-05-04 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
550
551         * src/hc08/gen.c (genJumpTab, emitcode, genhc08code): fixed stack error
552         and inappropriate peephole optimization in jump tables
553
554 2004-04-30 Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
555
556         * as/hc08/m08pst.c,
557         * src/SDCCglue.c: sdccopt works for the hc08 port now
558
559 2004-04-27 Bernhard Held <bernhard AT bernhardheld.de>
560
561         * src/SDCCicode.c (geniCodePreInc, geniCodePreDec): fixed bug #942130
562
563 2004-04-27 Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
564
565         * as/hc08/lkelf.c: sdccconf.h is not available in WIN32
566
567 2004-04-24 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
568
569         * src/SDCCpeeph.c (replaceRule): support empty replacement peephole
570         rules
571         * src/SDCCmain.c,
572         * src/SDCCglobl.h,
573         * src/SDCCpeeph.c (getPeepLine): new option --no-peep-comments omits
574         comments from the peephole optimizer replacement rules
575         * src/SDCCmem.c (printAllocInfoSeg): give actual location of spilled
576         symbols
577         * src/SDCCcse.c (updateSpillLocation),
578         * src/SDCCopt.c (killDeadCode, findReqv): better tracking of register
579         equivalents
580         * src/hc08/ralloc.c (regTypeNum): pseudo symbols must be in DATA only
581         * src/hc08/main.c (_hc08_finaliseOptions): made pointers to stack
582         objects far pointers
583
584 2004-04-23 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
585
586         * src/SDCCsymt.h: a missing part of my last change
587         * src/pic/ralloc.c (regTypeNum),
588         * src/pic16/ralloc.c (regTypeNum): fixed statement/declaration order
589
590 2004-04-23 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
591
592         * src/SDCCicode.h,
593         * src/SDCCicode.c (aggrToPtrDclType),
594         * src/SDCCptropt.h,
595         * src/SDCCptropt.c (ptrBaseRematSym, ptrPseudoSymSafe,
596         ptrPseudoSymConvert),
597         * src/pic/ralloc.c (regTypeNum),
598         * src/pic16/ralloc.c (regTypeNum),
599         * src/hc08/ralloc.c (regTypeNum),
600         * src/ds390/ralloc.c (regTypeNum),
601         * src/mcs51/ralloc.c (regTypeNum): check for dependancy hazards before
602         creating pseudo symbols (fixed bugs #777768, #930484, and #933966)
603
604 2004-04-22 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
605
606         * link/z80/lkmain.c (afile),
607         * as/hc08/lkmain.c (afile),
608         * as/mcs51/lkmain.c (afile): fix suggested by Maarten Brock to
609         prevent a pointer problem when a filename has no directory and
610         no extension specified.
611
612 2004-04-21 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
613
614         * link/z80/lkmain.c (afile): allow periods in directory names
615         * link/z80/lkmain.c (afile),
616         * as/mcs51/lkmain.c (afile),
617         * as/hc08/lkmain.c (afile): allow linker script file to have an
618         extension other than ".lnk"
619         * link/z80/lklex.c (getfid),
620         * link/z80/lkmain.c (parse),
621         * as/mcs51/lklex.c (getfid),
622         * as/mcs51/lkmain.c (parse),
623         * as/hc08/lklex.c (getfid),
624         * as/hc08/lkmain.c (parse): Support comments in the linker script
625         file on lines by themselves and after filenames
626
627 2004-04-20 Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
628
629         * as/link_hc08.dsp: Added as/hc08/lkelf.c to project.
630
631 2004-04-20 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
632
633         * src/z80/peeph-z80.def: removed some peephole rules that don't
634         work with multibyte arithmetic (fixed bug #937126)
635         * src/mcs51/peeph.def: fixed peephole rules 150-158 to apply only
636         to registers and not global variables
637         * src/SDCCicode.c (geniCodeAssign, ast2iCode, geniCodePostInc,
638         geniCodePreInc, geniCodePostDec, geniCodePreDec,
639         geniCodeLogicAndOr, geniCodeConditional): enforce strict lvalue
640         checking for assignments not internally generated (fixed bug #931895)
641         * src/SDCC.y (postfix_expr): ignore typedefs when looking for a
642         structure member (fixed bug #930072)
643
644 2004-04-19 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
645
646         * src/SDCCmain.c (linkEdit),
647         * src/hc08/main.c (_hc08_parseOptions),
648         * as/hc08/Makefile.in,
649         * as/hc08/aslink.h,
650         * as/hc08/asm.h,
651         * as/hc08/m08pst.c,
652         * as/hc08/lkrloc.c (relr, rele),
653         * as/hc08/lkarea.c (lnkarea)
654         * as/hc08/lkmain.c (afile, parse),
655         * as/hc08/lkelf.c: support for ELF output
656         * as/hc08/lks19.c (s19),
657         * as/hc08/lkihx.c (ihx): ignore areas with the NOLOAD attribute
658
659 2004-04-17 Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
660
661         * as/mcs51/lkihx.c: Fixed bug #899105.
662
663 2004-04-16 Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
664
665         * doc/sdccman.lyx: Added instructons on how to convert MSVC .dsw and
666         .dsp files from Unix to DOS.
667
668 2004-04-16 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
669
670         * doc/sdccman.lyx: removed the ANSI-C noncompliance note regarding
671         function pointers; we have been compliant for several months now.
672         * src/mcs51/ralloc.c (serialRegAssign): enabled part of my 2004-04-13
673         change that was accidently commented out
674         * src/mcs51/gen.c (freeAsmop, getFreePtr, freeForBranchAsmop, genIfxJump,
675         genCmpEq, jmpTrueOrFalse, genCmp, genAnd, genOr, genXor, genIfx): fixed
676         bug #922319
677
678 2004-04-15 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
679
680         * src/hc08/gen.c: output of all of the internal debugging information
681         is now controlled by the D() macro; it is disabled by default
682
683 2004-04-13 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
684
685         * src/mcs51/ralloc.c (serialRegAssign, fillGaps, allocThisReg): try
686         harder to keep the same registers during a CAST iCode
687         * src/SDCCopt.c (optimizeCastCast, eBBlockFromiCode): casts of char to
688         long via int can be done in a single cast, if the signedness is
689         correct.
690         * support/regression/tests/bug-927659.c: fixed to avoid conflict with
691         putchar() in tinibios.c in ds390's library
692
693 2004-04-12 Bernhard Held <bernhard AT bernhardheld.de>
694
695         * src/SDCCast.c (decorateType): fixed bug #898889,
696         cast result of a literal complement too
697         * src/mcs51/ralloc.c (packRegsForAssign): fixed bug #930931,
698         fixed check for bitfields
699
700 2004-04-11 Bernhard Held <bernhard AT bernhardheld.de>
701
702         * src/SDCCicode.c (geniCodeLogic): made it static,
703         (geniCodeLogicAndOr): added in order to fix bug #905492,
704         (ast2iCode): fixed bug #905492
705         * support/regression/tests/bug-905492.c: added
706         * src/SDCCast.c (decorateType): don't decorate/process parms twice,
707         (processParms): fixed bug #927659: don't copy parms, this will clear
708         decorated flag
709         * support/regression/tests/bug-927659.c: added
710
711 2004-03-29 Bernhard Held <bernhard AT bernhardheld.de>
712
713         * src/SDCCast.c (addCast): don't cast float to char
714         * device/lib/libsdcc.lib: added _memmove
715
716 2004-03-28 Bernhard Held <bernhard AT bernhardheld.de>
717
718         * device/lib/large/Makefile: fixed parallel execution by
719         replacing `make` by `$(MAKE)`
720
721 2004-03-28 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
722
723         * src/hc08/gen.c (genPointerGetSetOfs): correctly handle 1 byte array
724         offsets (fixes bug #923936)
725
726 2004-03-26 Bernhard Held <bernhard AT bernhardheld.de>
727
728         * device/lib/small/Makefile: fixed parallel execution by
729         replacing `make` by `$(MAKE)`
730
731 2004-03-23 Bernhard Held <bernhard AT bernhardheld.de>
732
733         * device/lib/vprintf.c (vsprintf): minor optimization, see bug #801101
734
735 2004-03-23  Scott Dattalo  <scott AT dattalo.com>
736
737         * src/pic/gen.c (genCpl): multi-byte complements were not working.
738         * src/regression/Makefile: Regression test was not running.
739
740 2004-03-23 Bernhard Held <bernhard AT bernhardheld.de>
741
742         * src/SDCCast.c (resultTypePropagate, decorateType): avoid promotion to int for
743         complement if possible
744         * src/SDCCval.c (valComplement),
745         * src/SDCCicode.c (operandOperation): fixed complement of literal
746         * support/regression/tests/onebyte.c (testComplement): added
747
748 2004-03-22 Bernhard Held <bernhard AT bernhardheld.de>
749
750         * src/SDCCast.c (processParms): fixed bug #920866; decorateType() can
751         return an optimized tree; actually replace actParm with the new tree
752         * src/SDCCast.h: added some parantheses to remove side effects
753         * support/regression/tests/bug-920866.c
754
755 2004-03-21  Scott Dattalo  <scott AT dattalo.com>
756         * src/pic/gen.c, src/pic/gen.h, src/pic/genarith.c, src/pic/pcode.c:
757         Bit operands were not being handled properly in the pic14 port.
758         (now src/regression/add.c passes again).
759
760 2004-03-20 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
761
762         * src/SDCC.y (labeled_statement): case and default no longer require
763         a following statement (RFE #893037)
764
765 2004-03-19 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
766
767         * src/mcs51/gen.c (pushSide, genSignedRightShift, genDjnz, geniPush):
768         use MOVA macro to avoid "mov a,acc" when peephole optimizer is
769         disabled (fixes bug #916294)
770         * sim/ucsim/s51.src/mov.cc (inst_mov_a_addr): Throw an error on
771         "mov a,acc"; patch provided by Lenny Story
772         * device/include/mc68hc908gp32.h: header contibuted by Juan Gonzalez
773
774 2004-03-19 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
775
776         * src/mcs51/gen.c (genFunction): optimize RECEIVE in reentrant
777         functions
778         * src/ds390/gen.c (genFunction, genEndFunction),
779         * src/ds390/ralloc.c (ds390_assignRegisters),
780         * src/mcs51/gen.c (genFunction, genEndFunction, mcs51_assignRegisters):
781         * src/mcs51/ralloc.c (mcs51_assignRegisters): Skip optimizing registers
782         pushed if there are parameters passed on the stack. Also, a cleaner
783         way to decide if r0/r1 should be pushed/popped. (Together they fix
784         bug #918693)
785
786 2004-03-18 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
787
788         * doc/sdccman.lyx,
789         * device/lib/mcs51/crtpagesfr.asm,
790         * device/lib/mcs51/crtxinit.asm,
791         * device/lib/mcs51/crtxstack.asm: Changed name of _PAGESFR to _XPAGE
792         to avoid confusion with Si Lab's SFRPAGE register.
793
794 2004-03-17 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
795
796         * src/SDCCglue.c (emitMaps): allow public sfr variables
797         * src/SDCCglue.c (initialComments): include compiler build date
798         with compiler version and put the timestamp of the generated
799         assembly file on a serperate line to be less confusing.
800         * src/port.h: added genInitStartup hook
801         * src/avr/main.c,
802         * src/ds390/main.c,
803         * src/hc08/main.c,
804         * src/pic/main.c,
805         * src/pic16/main.c,
806         * src/xa51/main.c,
807         * src/z80/main.c: genInitStartup initialize as NULL (default to
808         historical behaviour)
809         * src/SDCCglue.c (glue): _sdcc_gsinit_startup is now port specific.
810         * src/mcs51/main.c: (_mcs51_genInitStartup, _mcs51_genExtraAreas,
811         _mcs51_genXINIT, _mcs51_genRAMCLEAR): link initialization code from the
812         library instead of hard coding it into the compiler.
813         * support/regression/ports/mcs51-stack-auto/spec.mk,
814         * src/SDCCmain.c (linkEdit): added mcs51.lib to the link libraries
815         * device/lib/mcs51/Makefile,
816         * device/lib/small/Makefile,
817         * device/lib/large/Makefile,
818         * device/lib/mcs51/crtpagesfr.asm,
819         * device/lib/mcs51/crtstart.asm,
820         * device/lib/mcs51/crtxclear.asm,
821         * device/lib/mcs51/crtxinit.asm,
822         * device/lib/mcs51/crtclear.asm,
823         * device/lib/mcs51/crtxstack.asm: move most of the mcs51 C runtime
824         startup/initialization out of src/SDCCglue.c and src/mcs51/main.c
825         and into user configurable files.
826         * device/lib/clean.mk: clean mcs51 directory too
827         * support/regression/tests/longlit.c: added static to T1 declaration
828         * doc/sdccman.lyx: documented _PAGESFR sfr for customizing pdata
829         accesses in the initialization code
830
831 2004-03-14 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
832
833         * device/include/mc68hc908qy.h: corrected declarations of FLBPR and
834         OSCTRIMVAL as noted in bug #916008
835
836 2004-03-14 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
837
838         * src/SDCCloop.c (basicInduction): fixed bug with loop induction
839         in loops with multiple exits (reported as incorrect registers
840         used by Martin Helmling in Sdcc-user list)
841
842 2004-03-12 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
843
844         * src/ds390/main.c (_ds390_genAssemblerPreamble): cosmetic change,
845         made ds390 register extensions look less like error messages
846
847 2004-03-12 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
848
849         * src/SDCCglue.c (printIvalPtr): fixed bug with pointer initializer
850         reported by Adam Wozniak in Sdcc-user list
851
852 2004-03-10 Bernhard Held <bernhard AT bernhardheld.de>
853
854         * src/SDCCast.c (decorateType): fixed with bug and promotion in
855         arithmetic optimizations, added debug output
856
857 2004-03-09 Bernhard Held <bernhard AT bernhardheld.de>
858
859         * device/lib/time.c (mktime): fixed bug reported by Bert Thomas
860         * sdcc.spec: updated and split sdcc into 3 rpms
861         * src/SDCCast.c (decorateType): &|^ don't need addCast(); addCast() is
862         needed for literals of LEFT_OP and '+'
863         * src/SDCCicode.c (geniCodeLogic): I must have been braindead when I
864         introduced RESULT_TYPE_NOPROM
865         (geniCodeMultiply): fixed logic for decision if mul is optimized to
866         left shift
867         * src/SDCCsymt.c (computeType): op is int; added RESULT_TYPE_OTHER;
868         limited promotion to int only for '*'
869         * src/SDCCsymt.h (computeType): op is int, removed RESULT_TYPE_NOPROM
870
871 2004-03-09 Hans Dorn <hjdorn AT users.sourceforge.net>
872
873         * src/pic16/gen.c (genSkip),
874         (genc16bit2lit), (gencjneshort): commented out
875         (is_LitOp): new helper function, checks operand type
876         (genCmpEq): rewritten
877
878 2004-03-08 Bernhard Held <bernhard AT bernhardheld.de>
879
880         * support/regression/tests/bug-908454.c: added
881
882 2004-03-07 Bernhard Held <bernhard AT bernhardheld.de>
883
884         * src/SDCCast.c (addCast): fixed bug #908454 by promoting bits to char
885         * src/SDCCicode.c (usualBinaryConversions): op needs int type
886         (geniCodeCast): cosmetic, don't preserve bit storage class
887         (geniCodeLeftShift): added promotion
888         (geniCodeLogic): fixed regression
889         * src/SDCCsymt.c (computeTypeOr): accept bits too
890         (compareType): 2nd part of fix for bug #908454, needed for bitfields
891
892 2004-03-07  Borut Razem <borut.razem AT siol.net>
893
894         * support/Util/findme.c: alloca() replaced with malloc()/free() pair
895
896 2004-03-06 Vangelis Rokas <vrokas AT otenet.gr>
897
898         * src/pic16/ralloc.c (pic16_genPackRegisters): reverted to old
899         version of pic16_genPackRegisters which does not check if ic is a
900         CAST operator,
901         * src/pic16/gen.c (ifxForOp): disabled new and untested code in
902         function cause string1.c regression test fails
903
904 2004-03-06 Bernhard Held <bernhard AT bernhardheld.de>
905
906         * sim/ucsim/configure.in,
907         * sim/ucsim/configure,
908         * sim/ucsim/doc/Makefile.in: use docdir
909         * src/SDCC.y: fixed sbit atrributes
910         * src/SDCCast.c (getResultTypeFromType): added support for bitfields
911         * src/SDCCast.c (decorateType): |^& need special promotion handling
912         * src/SDCCast.h,
913         * src/SDCCsymt.h: moved definition of RESULT_TYPE
914         * src/SDCCsymt.h (computeType),
915         * src/SDCCicode.c: computeType() needs op
916         * src/SDCCsymt.c (checkTypeSanity),
917         * doc/sddman.lyx: "plain" bitfields are unsigned
918         * src/SDCCsymt.c (computeTypeOr): added
919         * src/SDCCsymt.c (computeType): added support for bitfields, fixed
920         |^& ops
921         * src/SDCCval.c (val*): computeType() needs op
922         * src/SDCCval.c (valCastLiteral): fixed casting of bitfields
923         * support/regression/tests/onebyte.c: added tests for |^&
924
925 2004-03-06 Hans Dorn <hjdorn AT users.sourceforge.net>
926
927         * src/pic16/gen.c: (genpic16Code) use copy of printILine's output
928         for writing icode into asm output.
929
930 2004-03-05 Vangelis Rokas <vrokas AT otenet.gr>
931
932         * src/pic16/device.c: added some debug lines enabled
933         with macro DEBUG_CHECK,
934         * src/pic16/genarith.c: more debug in genPlus,
935         * (pic16_genUMult8XLit_16, pic16_genUMult8X8_16): removed,
936         * (pic16_genUMult16X16_16, pic16_genUMult16XLit_16): NEW,
937         * src/pic16/gen.c: added prototypes for pic16_genMult16X16_16,
938         * (aopForSym): onStack symbols are re-placed in data memspace,
939         and onStack flag is cleared,
940         * (pic16_popGetTempReg, pic16_popReleaseTempReg): modified to
941         copy temporary pcodeop,
942         * (genPcall): added warning for not updating PCLATU,
943         * (genFunction): removed test with IFFUNC_CALLEESAVES, its
944         always true for pic16 port,
945         * (genMultOneWord): NEW, supports integer multiplication,
946         * (genMult): modified to call genMultOneWord,
947         * (ifxForOp): added warning when return NULL,
948         * src/pic16/glue.c (pic16emitRegularMap): symbol implicit
949         flag is set before call to operandFromSymbol for implicit
950         added structures,
951         * src/pic16/main.c (_pic16_finaliseOptions): options.float_rent,
952         options.intlong_rent are set by default,
953         * (_hasNativeMulFor): modified to allow port generation of integer
954         multiplication,
955         * src/pic16/ralloc.c (pic16_allocDirReg): commented out line which
956         set regtype to REG_SFR for all registers, restricting seting the
957         accessBank flag for registers 0<= r < 0x80 and 0xf80<=r<=0xfff,
958
959 2004-03-05 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
960
961         * src/mcs51/peephole.def: added 251.b and 253.x. 253.x are applied
962         more than 500 times in the regression tests
963
964 2004-03-05 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
965
966         * support/Util/SDCCerr.h,
967         * support/Util/SDCCerr.c,
968         * src/SDCC.y (struct_or_union_specifier, enum_specifier,
969         enumerator_list),
970         * src/SDCCsymt.c (addSymChain): show location of oriignal definition
971         for symbol conflicts.
972         * support/valdiags/tests/enum.c,
973         * support/valdiags/tests/tentdecl.c,
974         * support/valdiags/tests/struct.c: expect possible error messages
975         referring to original symbol definitions.
976         * src/SDCC.y (struct_or_union_specifier, struct_declarator),
977         * src/SDCCsymt.h,
978         * src/SDCCsymt.c (promoteAnonStructs): support anonymous struct/union
979
980 2004-03-03 Hans Dorn <hjdorn AT users.sourceforge.net>
981
982         * src/pic16/gen.c (gencjne): fixed for right=REG / left=LIT
983
984 2004-02-03 Vangelis Rokas <vrokas AT otenet.gr>
985
986         * src/pic16/ralloc.c (newReg): fixed bug #908929
987
988 2004-03-02 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
989
990         * src/ds390/gen.c: added missing #include "main.h"
991
992 2004-03-02 Vangelis Rokas <vrokas AT otenet.gr>
993
994         * src/pic16/device.c (checkAddSym): NEW, adds a symbol to set while
995         checking if symbol is already in set,
996         * src/pic16/device.h: prototype for checkAddSym,
997         * src/pic16/gen.c: (_G): added entry interruptvector,
998         * (assignResultValue): removed some commented out lines,
999         * (genFunction): check for ISR via sym->type, absolute section for
1000         interrupt code is created via a new pBlock, the goto instruction is
1001         placed now correctly at the interrupt vector position, changed all
1002         references from ivec to _G.interruptvector,
1003         * WREG,STATUS,BSR are not saved in stack upon an entry to interrupt
1004         is the interrupt is a high priority one, same for return from ISR,
1005         * src/pic16/glue.c: changed all calls of addSetHead for publics and
1006         externs to calls of checkAddSym,
1007         * src/pic16/pcode.c (pic16_pBlockConvert2*): emit warning when
1008         pic16_pcode_verbose flag is set,
1009         * src/pic16/pcode.h: extern to pic16_pcode_verbose,
1010         * src/pic16/pcoderegs.c: message about how many registers are saved
1011         will only be emitted if pic16_pcode_verbose flag is set,
1012
1013 2004-03-02 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
1014
1015         * src/ds390/ralloc.h,
1016         * src/ds390/ralloc.c (ds390_regWithIdx),
1017         * src/ds390/gen.c (emitcode),
1018         * src/ds390/main.h,
1019         * src/ds390/main.c (instructionSize, ds390newAsmLineNode, updateOpRW,
1020         ds390opcodeCompare, asmLineNodeFromLineNode, getInstructionSize,
1021         ds390operandCompare, getRegsRead, getRegsWritten,
1022         initializeAsmLineNode): customized instruction size calculation for
1023         ds390, started basis for some register optimizations
1024         * src/ds390/gen.c (gen390Code, emitcode): associate iCodes with
1025         corresponding assembly output
1026         * src/ds390/gen.c (genFunction, genEndFunction): added case to handle
1027         missing push/pop of r0/r1. Optimized push/pops
1028
1029 2004-03-01 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
1030
1031         * src/mcs51/main.c (instructionSize): fixed ACALL size
1032         * src/mcs51/main.c (updateOpRW): fixed bug with @dptr, @a+dptr operands
1033
1034 2004-03-01 Vangelis Rokas <vrokas AT otenet.gr>
1035
1036         * src/pic16/device.c (pic16_dump_section): fixed a bug that allowed
1037         the sorting of rlist with NULL elements
1038         * (print_idataType, print_idata): NEW to create idata sections
1039         * src/pic16/device.h: idataSymSet new variable
1040         * src/pic16/gen.c (genFunction): fixed some bugs in string
1041         comparing, improved the absolute section creation for ISRs,
1042         added FSR0L/FSR0H in registers that are saved in an ISR,
1043         * (genInline): fixed the processing of inline snippets,
1044         now they undergo no process by the peephole optimizer
1045         * src/pic16/glue.c (pic16emitRegularMap): symbols with initialiser
1046         are placed in idataSymSet,
1047         * (pic16emitStaticSeg): extern symbols are added in externs,
1048         * src/pic16/ralloc.c (pic16_allocDirReg): work around to reduce bank
1049         switching when aboslute variables are placed in access bank memory
1050         * (pic16_writeUsedRegs): added call to pic16_dump_idata,
1051         * (packRegsForSupport,packRegsForAccUse,packRegsForOneuse):
1052         commented out with #if,
1053         * (pic16_packRegisters): reintroduce the check for CAST because some
1054         symbols are not correctly handled,
1055         * src/pic16/pcode.h: changed the definition of pCodeAsmDir to hold a
1056         pCodeInstruction instead of pCode,
1057         * src/pic16/pcode.c (pic16_newpCodeAsmDir): modified for the new
1058         pCodeAsmDir definition,
1059         * (pic16_pCode2str, genericPrint): when an AsmDir pcode has a NULL
1060         directive, then the argument directive is emitted without the leading
1061         tab, hack for inline labels which must be in the first column,
1062         * (compareLabel,pic16_findNextInstruction),
1063         * (pic16_findPrevInstruction): added case for PO_ASMDIR,
1064         * (insertBankSwitch): modified for the new pCodeAsmDir,
1065
1066 2004-03-01 Hans-Juergen Dorn <hans.dorn AT apl-landau.de>
1067         patch applied by Vangelis Rokas <vrokas AT otenet.gr>
1068
1069         * src/pic16/gen.c (pic16_popGet): case PO_DIR, adds the offset to
1070         instance,
1071         * (pushSide): commented out with #if,
1072         * (assignResultValue): fixed some typos in saving
1073         registers,
1074         * (genPcall): FIXED and sync'ed with genCall,
1075         * (genDataPointerGet,genDataPointerSet): using offset not leoffset
1076         * (genNearPointerGet): fixed to handle some more cases,
1077         implementation scheme via table reads,
1078         * (genConstPointerGet): modified to access code memory correct,
1079         * (genCodePointerGet,genNearPointerSet,genGenPointerSet): modified
1080         and improved to handle some cases
1081         * glue.c (printIvalType,printIvalChar,emitStaticSeg): use "DB"
1082         instead of "RETLW" for init data
1083         * src/pic16/ralloc.c (pic16_allocDirReg): warning when a symbol is
1084         not IN_DIRSPACE, work around to reduce bank switching when aboslute
1085         variables are placed in access bank memory (<0x80 and >=0xf80),
1086         * src/pic16/pcode.c: added SFRs TBLPTR, TABLAT, added opcodes TBLRD,
1087         TBLRD_POSTINC,TBLRD_POSTDEC,TBLRD_PREINC,TBLWT,TBLWT_POSTINC,
1088         TBLWT_POSTDEC,TBLWT_PREINC
1089         * Fixed initialisation of BSR, set "alias" for SSAVE to "0"
1090         * (pic16_emitDB,pic16_flushDB): New functions to generate "DB"
1091         directives
1092         * (pic16_pCodeConstString): use "DB" instead of "RETLW"
1093         * src/pic16/pcode.h: added TBLRD*,TBLWT*, added pic16_emitDB,
1094         pic16_flushDB, made pic16_newpCodeAsmDir public, added TBLPTR, TABLAT
1095         * src/pic16/ralloc.h: added IDX_BSR,IDX_TBLPTR*,IDX_TABLAT
1096
1097 2004-02-29  Borut Razem <borut.razem AT siol.net>
1098
1099         * src/Makefile.in, src/SDCCutil.c, support/Util/findme.c,
1100         support/Util/findme.h, support/Util/system.h: enhance binary relative
1101         search for lib and include by using findProgramPath()
1102
1103 2004-02-28 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
1104
1105         * src/SDCCpeeph.h,
1106         * src/SDCCpeeph.c (pcDistance),
1107         * src/port.h,
1108         * src/mcs51/ralloc.h,
1109         * src/mcs51/ralloc.c (mcs51_regWithIdx),
1110         * src/mcs51/main.h,
1111         * src/mcs51/main.c (instructionSize, asmLineNode, updateOpRW,
1112         mcs51opcodeCompare, asmLineNodeFromLineNode, getInstructionSize,
1113         mcs51operandCompare, getRegsRead, getRegsWritten): made instruction
1114         size calculation port specific, started basis for some register
1115         optimizations
1116         * src/mcs51/gen.c (genFunction, genEndFunction): added case to handle
1117         missing push/pop of r0/r1. Optimized push/pops
1118         * src/mcs51/ralloc.c (packregisters): fixed bug #727095
1119         * device/lib/_modsint.c (_modsint),
1120         * device/lib/_modslong.c (_modslong): fixed sign of result in non-asm
1121         and stack version so regression tests pass
1122
1123 2004-02-26 Bernhard Held <bernhard AT bernhardheld.de>
1124
1125         * src/Makefile.in (dep): include SLIBOBJS in dependency check
1126         * src/SDCCast.c (decorateType): catch another small optimization
1127         with '?' operator
1128         * src/SDCCsymt.c (computeType): added comments and cosmetic changes
1129         * src/SDCCval.c (valMult, valDiv, valMod, valPlus, valMinus, valShift):
1130         modified to finally use computeType() all over SDCC,
1131         see Feature Request #877103
1132         * src/SDCCval.h: cosmetic
1133         * src/SDCCicode.c (operandOperation): fixed EQ_OP bug, now same as in
1134         valCompare(); regression tested in muldiv.c
1135         * support/regression/tests/muldiv.c (testMod): mod sign follows
1136         dividend only
1137
1138 2004-02-23 Bernhard Held <bernhard AT bernhardheld.de>
1139
1140         * src/SDCCast.c (decorateType): fixed bug #902362
1141         * doc/INSTALL.txt: fixed install instructions for win32
1142
1143 2004-02-21 Bernhard Held <bernhard AT bernhardheld.de>
1144
1145         * device/include/Makefile.in (install): fixed by replacing spaces
1146         by tabs
1147         * doc/README.txt,
1148         * doc/INSTALL.txt: updated for release
1149         * doc/sdccman.lyx: added warning for --xstack being buggy
1150
1151 2004-02-20 Bernhard Held <bernhard AT bernhardheld.de>
1152
1153         * src/pic16/ralloc.c (packRegsForAccUse):  disabled functions with #if
1154         to eliminate build warnings.
1155         * src/pic16/gen.c (pic16_popGet): fixed for gcc 2.95.4
1156
1157 2004-02-20 Vangelis Rokas <vrokas AT otenet.gr>
1158            Hans-Juergen Dorn <hans.dorn AT apl-landau.de>
1159
1160         * doc/sdccman.lyx: removed PIC16 from PIC16 Port Specific Options,
1161         removed -penable-stack, added comment for stack pragma, added
1162         warning for not initializing the stack/frame registers, removed
1163         comment at interrupts section
1164
1165         Stack is made permanent, there is no ability to disable stack usage.
1166         * src/pic16/device.h,
1167         * src/pic16/device.c: removed all references to USE_STACK macro,
1168         * src/pic16/device.c (pic16_dump_section): when no elements in
1169         rlist, free rlist before return,
1170         * (pic16_dump_int_registers): NEW, internal registers are a new set
1171         of general purpose registers reused by each function,
1172         * (checkAddReg): returns 1 if registers is added to set,
1173         * (pic16_groupRegistersInSection): when a registers is of type
1174         PO_GPR_TEMP add it in pic16_int_regs and not in pic16_rel_udata,
1175         * src/pic16/device.h: memRange and Assigned Memory are deleted,
1176         SRCASECMP macro is moved here from device.c
1177         * src/pic16/genarith.c (pic16_pCodeOpType): added cases for
1178         PO_PCLATU, PO_PRODL, PO_PRODH,
1179         * (pic16_pCodeOpType, genMinus,
1180         changed compares to "a" register, with AOP_ACC,
1181         * (pic16_genPlus): fixed some bugs and indented properly,
1182         * (pic16_addSign): changed size to size+offset in the MOVWF
1183         instruction,
1184         * (pic16_genUMult8XLit_8): NEW, uses processor MULLW instruction to
1185         multiply 8-bit operand by literal, result is 8-bit,
1186         * (pic16_genUMult8X8_8): NEW, uses processor MULWF instruction to
1187         multiply 2 8-bit operand, result is 8-bit,
1188         * (pic16_genMult8X8_8): modified to call genUMult8X*_8 functions and not
1189         genUMult8X*_16,
1190         * src/pic16/gen.c: changed accUse to contain WREG only,
1191         * (pic16_emitcomment): renamed to pic16_emitpcomment,
1192         * (aopForSym): allocated dir register when IN_DIRSPACE(space) is,
1193         true, do not use immediate addressing any more unless sym is a
1194         pointer in codespace,
1195         * (aopForRemat): do not use immediate addressing when symbol not in
1196         codespace and when symbol's address is requested,
1197         * (aopOp): for-loop in if(sym->accUse) is modified for the new
1198         accUse size (= 1),
1199         * (aopGet): added case for AOP_ACC and don't return "accumulator
1200         bug" but WREG instead,
1201         * (popGetTempReg): pushes contents of temporary register in stack,
1202         * (popReleaseTempReg): pops contents of temporary register from
1203         stack. Use popGetTempReg/popReleaseTempReg in aligned pairs,
1204         * (pic16_popGet): separated case AOP_ACC to return register WREG
1205         from processor registers, AOP_PCODE not checks if pcop is PO_DIR
1206         or PO_IMMEDIATE and initializes their instance/offset appropriately,
1207         * The whole issue with aopForSym,aopForRemat,popGet) is to minimize
1208         the use of immediate pointers to certain cases only.
1209
1210         * (pic16_pushpCodeOpReg, pic16_poppCodeOpReg): use pic16_popGet2p,
1211         * (pic16_loadFromReturn, pic16_storeForReturn: NEW,
1212         * (assignResultValue, genCall, genRet): modified to use the new
1213         function return value scheme with WREG,PRODL,PRODH,FSR0L and FSR0,
1214         genPcall is still broken,
1215         * (genFunction): added code to create 'A' type pBlocks when
1216         interrupt functions are generated, code not extensively tested yet,
1217         ISRs push WREG,STATUS,BSR,PRODL,PRODH,FSR0L,FSR0H registers on stack,
1218         * (genEndFunction): modified so ISRs pop stored registers from stack,
1219         * (genMultOneByte): cleanup,
1220         * (AccRsh): added flag andmask, to and result with appropriate mask,
1221         * (genUnpackBits,genPackBits): fixed and can handle bit fields,
1222         * (genDataPointerGet): fixed and reenabled its use,
1223         * (genNearDataPointerGet): bugs fixed,
1224         * (genDataPointerSet): bugs fixed,
1225         * src/pic16/genutils.c: added functions pic16_DumpValue,pic16_DumpAop,
1226         pic16_DumpSymbol, pic16_DumpOp,
1227         * src/pic16/genutils.h: function prototypes for the above functions,
1228         * src/pic16/glue.c: new flags initsfpnt, to initialize stack/frame
1229         pointers,
1230         * (pic16emitRegularMap): many many many improvements, but needs a
1231         major cleanup,
1232         * src/pic16/main.c: enable_stack in pic16_options is removed,
1233         * (_pic16_parseOptions): removed command line options -penable-stack,
1234         * (_process_pragma): emit stack symbol only when stack pragma is
1235         processed,
1236         * src/pic16/pcode.c: pic16_pc_fsr0 is removed, all operations are
1237         redirected to FSR0L/FSR0H pair,
1238         * (pic16_get_op, pic16_get_op2): modifications and improvements,
1239         * (pic16_getRegFromInstruction, pic16_getRegFromInstruction2): added
1240         cases PO_PRODL,PO_PRODH, pic16_getRegFromInstruction2 returns sane
1241         for immediates,
1242         * (insertBankSwitch): modified to handle cases like: (alfa + 1)
1243         * (dumpPicOptype): NEW,
1244         * src/pic16/pcode.h: added PO_PCLATU,PO_PRODL,PO_PRODH in enum,
1245         * src/pic16/pcoderegs.c (pCodeRegMapLiveRangesInFlow): fixed bug
1246         with movff instruction,
1247         * src/pic16/ralloc.c: renamed typeRegWithIdx to pic16_typeRegWithIdx,
1248         added pic16_int_regs, some packRegsFor* functions are commented out,
1249         because produce errors,
1250         * src/pic16/NOTES: minor modifications
1251
1252 2004-02-18  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
1253
1254         * as/mcs51/aslink.h, as/mcs51/lkarea.c, as/mcs51/lkdata.c, as/mcs51/lkmain.c,
1255         as/mcs51/lkmem.c, src/SDCCglob.h, src/SDCCmain.c: added options --stack-size and
1256         --pack-iram.
1257         * doc/sdccman.lyx: described options --stack-size and --pack-iram.
1258         * as/mcs51/lkaomf51.c: fixed bug #895763
1259
1260 2004-02-17 Bernhard Held <bernhard AT bernhardheld.de>
1261
1262         * device/include/c8051f320.h: added. Contributed by Maarten Brock.
1263
1264 2004-02-17 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
1265
1266         * doc/sdccman.lyx: added details about the HC08 storage classes and
1267         interrupts, fixed the register usage info for z80 & gbz80
1268
1269 2004-02-17 Vangelis Rokas <vrokas AT otenet.gr>
1270
1271         * doc/sdccman.lyx: added more pic16 port documentation
1272         * device/include/pic16/: added header pic18fregs.h
1273
1274 2004-02-16 Bernhard Held <bernhard AT bernhardheld.de>
1275
1276         * doc/sdccman.lyx: added Vangelis' contribution
1277
1278 2004-02-16 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
1279
1280         * src/SDCClrange.c (rlivePoint): live range of SEND operand should
1281         extend to the next CALL or PCALL, not just to the next CALL.
1282
1283 2004-02-16 Vangelis Rokas <vrokas AT otenet.gr>
1284
1285         * src/pic16/gen.c (genInline): fixed bug #896482 with inline assembly
1286
1287 2004-02-15 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
1288
1289         * src/mcs51/ralloc.c (packRegsForAssign, reassignAliasedSym): fixed
1290         bug #895752 and a better fix for bug #716790
1291
1292 2004-02-15 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
1293
1294         * src/SDCCsymt.c (processFuncArgs): fixed bug #896796
1295
1296 2004-02-14 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
1297
1298         * doc/sdccman.lyx: minor changes, minor changed
1299
1300 2004-02-13 Bernhard Held <bernhard AT bernhardheld.de>
1301
1302         * src/SDCCicode.c (usualBinaryConversions): removed pic16 from ports
1303         which can't handle SDCC_NEWONEBYTEOPS,
1304         (geniCodeMultiply): removed conversion from mult to shift for pic14
1305         and pic16
1306
1307 2004-02-12 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
1308
1309         * src/hc08/gen.h,
1310         * src/hc08/gen.c (storeRegToAop, aopOp, aopAdrStr, accopWithAop,
1311         rmwWithAop): Ported my 2003-10-02 fix for bug #663539 to the hc08,
1312         thus fixing bug #895406
1313
1314 2004-02-11 Bernhard Held <bernhard AT bernhardheld.de>
1315
1316         * device/lib/_modsint.c,
1317         * device/lib/_modslong.c: sign follows divisor only
1318         * src/hc08/gen.c (genMultOneByte): if result size is 1,
1319         signs or signedness can be ignored
1320         * src/SDCCast.c (addCast): cosmetic - added lineno to CAST
1321         * src/SDCCast.c (resultTypePropagate): added even more ops: +, - and *,
1322         added optimization for IFX,
1323         (decorateType): Mult/Div/ModOneByte ops can handle all kind of signed
1324         arguments;
1325         reenabled optimization for IFX, which was removed on 2004-01-11
1326         * src/SDCCast.h: added return type IFX
1327         * src/SDCCicode.c: Mult/Div/ModOneByte ops can handle all kind of signed
1328         arguments with 8 or 16 bit results; pic14 and pic16 ports use old
1329         promotion behaviour; env. var. SDCC_NEWONEBYTEOPS selects the new,
1330         SDCC_OLDONEBYTEOPS selects the old behaviour
1331         * src/SDCCsymt.c (computeType): type2 can be NULL (for LEFT_OP);
1332         changed again and commented promotion rule
1333         * src/SDCCval.c (valDiv): promotion no longer necessary
1334         * src/ds390/gen.c (genMultOneByte) (genDivOneByte) (genModOneByte),
1335         * src/mcs51/gen.c (genMultOneByte) (genDivOneByte) (genModOneByte):
1336         rewritten
1337         * support/regression/tests/onebyte.c: added
1338
1339 2004-02-11 Vangelis Rokas <vrokas AT otenet.gr>
1340
1341         * gen.c (genInline): reverted to old code for assemnling inline
1342         code because of bug reported James Chadd
1343
1344 2004-02-10 Vangelis Rokas <vrokas AT otenet.gr>
1345
1346         * ralloc.h: missing declarations from previous patch,
1347         seems that patch for ralloc.h was never applied, fixed
1348
1349 2004-02-10 Hans-Juergen Dorn <hans.dorn AT apl-landau.de>
1350            patch committed by Vangelis Rokas <vrokas AT otenet.gr>
1351
1352         * pcode.c,
1353         * pcode.h,
1354         * ralloc.h: added FSR0L, FSR0H and other missing PIC16 SFR's for
1355         indirect addressing. Marked FSR0 as deprecated
1356         * gen.c (pointerCode): commented out, not needed now
1357         (pic16_popGet2p): new MOVFF helper function
1358         (genGenPointerGet),
1359         (genGenPointerSet): reimplemented with MOVFF and POSTINC0
1360         (shiftRLong): removed duplicate debugging info
1361
1362 2004-02-10 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
1363
1364         * src/ds390/gen.c (genNearPointerGet),
1365         * src/mcs51/gen.c (genNearPointerGet): allow the genDataPointerGet()
1366         optimization with bits, but not bitfields.
1367         * src/ds390/ralloc.c (packRegisters),
1368         * src/mcs51/ralloc.c (packRegisters): fixed bug #884453 & #880832
1369
1370 2004-02-09 Bernhard Held <bernhard AT bernhardheld.de>
1371
1372         * src/SDCCcse.c (algebraicOpts): copy operands before modification
1373
1374 2004-02-09 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
1375
1376         * src/SDCCsymt.h,
1377         * src/SDCCicode.c (operandFromSymbol),
1378         * src/mcs51/ralloc.c (verifyRegsAssigned, serialRegAssign),
1379         * src/ds390/ralloc.c (verifyRegsAssigned, serialRegAssign),
1380         * src/z80/ralloc.c (verifyRegsAssigned, serialRegAssign),
1381         * src/hc08/ralloc.c (verifyRegsAssigned, serialRegAssign),
1382         * src/pic/ralloc.c (verifyRegsAssigned, serialRegAssign),
1383         * src/pic16/ralloc.c (verifyRegsAssigned, serialRegAssign): fixed
1384         bug #892038
1385         * src/SDCCast.c (createIvalStruct, createIvalArray, gatherAutoInit),
1386         * src/SDCCglue.c (emitRegularMap, printIvalStruct, printIvalArray,
1387         printIvalCharPtr, printIvalPtr, printIval, emitStaticSeg, emitOverlay)
1388         * src/SDCCsymt.c (newSymbol),
1389         * src/SDCC.y (struct_or_union_specifier, enum_specifier,
1390         enumerator_list),
1391         * src/SDCCval.h,
1392         * src/SDCCval.c (newiList): fixed bug #885705
1393
1394 2004-02-08  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
1395
1396         * doc/sdccman.lyx: added section 3.1.4: sdcclib.
1397         * as/mcs51/lkmem.c: report the size of the stack in .mem file.
1398
1399 2004-02-08 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
1400
1401         * device/include/c8051f120.h,
1402         * device/include/c8051f300.h,
1403         * device/include/c8051f310.h: added/updated header files for Silicon
1404         Laboratories (formerly Cygnal) CPUs. Contributed by Maarten Brock.
1405         * doc/sdccman.lyx: minor changes, recommended diff -Naur and diff -u
1406         in new section Submitting patches
1407
1408 2004-02-08 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
1409
1410         * src/mcs51/gen.c (genNearPointerGet, genPagedPointerGet,
1411         genFarPointerGet, genCodePointerGet, genGenPointerGet,
1412         genNearPointerSet, genPagedPointerSet, genFarPointerSet,
1413         genGenPointerSet),
1414         * src/ds390/gen.c (genNearPointerGet, genPagedPointerGet,
1415         genFarPointerGet, genCodePointerGet, genGenPointerGet,
1416         genNearPointerSet, genPagedPointerSet, genFarPointerSet,
1417         genGenPointerSet),
1418         * src/pic16/gen.c (genNearPointerGet, genPagedPointerGet,
1419         genFarPointerGet, genCodePointerGet, genGenPointerGet,
1420         genNearPointerSet, genPagedPointerSet, genFarPointerSet,
1421         genGenPointerSet),
1422         * src/pic/gen.c (genNearPointerGet, genPagedPointerGet,
1423         genFarPointerGet, genCodePointerGet, genGenPointerGet,
1424         genNearPointerSet, genPagedPointerSet, genFarPointerSet,
1425         genGenPointerSet): fixed bug #892400
1426         * src/pic16/gen.c (genSkipz, AccRol): disabled functions with #if 0
1427         to eliminate build warnings.
1428         * src/SDCCast.c (processParms),
1429         * src/SDCC.y (function_declarator2, declarator2_function_attributes):
1430         fixed bug 751859
1431         * support/valdiag/valdiag.py: added GCC to the list of defines active
1432         when compiling with gcc
1433
1434 2004-02-07 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
1435
1436         * support/Util/SDCCerr.h,
1437         * support/Util/SDCCerr.c,
1438         * src/SDCCast.c (decorateType, sizeofOp): complain when sizeof is used
1439         with an incomplete type (fixed bug #883734)
1440         * src/SDCCicode.c (geniCodeCast): fixed bug #890510
1441
1442 2004-02-07 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
1443
1444         * src/pic16/gen.c (genCmpEq, shiftRLong): fixed declarations
1445
1446 2004-02-06 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
1447
1448         * src/SDCCast.c (decorateType),
1449         * src/SDCCicode.c (geniCodeParms, geniCodeCall): fixed bugs in my ANSI
1450         function pointer implementation
1451         * support/regression/tests/funptrs.c: added tests to verify both forms
1452         of function pointers work correctly. Added tests to verify parameters
1453         are passed in the correct order.
1454
1455 2004-02-06  Vangelis Rokas <vrokas AT otenet.gr>
1456
1457         * device.c (regCompare): registers are sorted by ascending
1458         address and increasing size,
1459         * main.c (_pic16_finaliseOptions): removed the declaration
1460         of compiler macro MCU. Now a macro of the format pic18fxxxx
1461         will be defined from the command line
1462
1463 2004-02-06  Hans-Juergen Dorn <hans.dorn AT apl-landau.de>
1464             patch committed by Vangelis Rokas <vrokas AT otenet.gr>
1465
1466         * pcode.c (pic16initMnemonics): fixed typo in assignment to PCOP_RLNCF
1467         PCOP_RLCF was overwritten!
1468         * gen.c (genSkip): commented out calls to pic16_emitcode,
1469         * (genCmpEQ): fixed "long" compares, only high word did get compared,
1470         * (genlshTwo),
1471         * (genRRC): added debugging info,
1472         * (shiftL2Left2Result): Fixed bug, if offr > offl. Result got
1473         overwritten while shifting,
1474         * (shiftR2Left2Result): Fixed bug, if offr < offl. Result got
1475         overwritten while shifting,
1476         * (AccLsh),
1477         * (AccRsh),
1478         * (shiftLLeftOrResult),
1479         * (shiftRLeftOrResult),
1480         * (shiftRLong),
1481         * (shiftLLong): Implemented with pic16_emitpcode
1482         * (genlshFour): Replaced pic16_aopPut with pic16_emitpcode,
1483         * (genLeftShift): Fixed bug, operand for shift by variable always
1484         was "and"ed with 0x0f,
1485         * (genLeftShiftLiteral),
1486         * (genrshTwo),
1487         * (genRightShiftLiteral): added debugging info,
1488         * (genrshFour): added comment,
1489         * (genRightShift): determined signedness from operand "left"
1490         instead of "result"
1491
1492 2004-02-04 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
1493
1494         * src/SDCCicode.c (geniCodeParms),
1495         * src/SDCCast.c (decorateType, processParms): support for ANSI-style
1496         function pointers, fixed function pointer bugs #861242 and #861896
1497
1498 2004-01-31 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
1499
1500         * device/include/c8051f000.h,
1501         * device/include/c8051f120.h,
1502         * device/include/c8051f300.h: added header files for Silicon
1503         Laboratories (formerly Cygnal) CPUs. Contributed by Maarten Brock.
1504
1505 2004-01-31 Bernhard Held <bernhard AT bernhardheld.de>
1506
1507         * src/SDCCast.c (processParams): added new type flow and restructured
1508         (gatherAutoInit): added new type flow
1509         (addCast): cosmetic changes
1510         (getLeftResultType): added new type flow for array indices, patch
1511         provided by Stas, see FR #877103
1512         (decorateType): SDCC_NEWTYPEFLOW removed, new type flow is now standard;
1513         array index patch by Stas
1514         * src/SDCCast.h: added prototype getResultTypeFromType()
1515         * src/SDCCval.h,
1516         * src/SDCCval.c (resolveIvalSym) (resolveIvalSym),
1517         * src/pic/glue.c (pic14emitStaticSeg),
1518         * src/pic16/glue.c (pic16emitStaticSeg),
1519         * src/SDCCglue.c (emitRegularMap) (emitStaticSeg): added new type flow
1520         for initialization of symbols
1521         * src/SDCCicode.c (geniCodeArray): removed warning W_ARRAY_BOUND
1522         * support/Util/SDCCerr.h:
1523         * support/Util/SDCCerr.c: replaced W_ARRAY_BOUND by W_IDX_OUT_OF_BOUNDS
1524         * .version: bumped version number to 2.3.8
1525         * device/include/Makefile.in (install),
1526         * doc/Makefile (install): changed to 'rm `find ...`' construct to
1527         avoid warnings
1528
1529 2004-01-30 Bernhard Held <bernhard AT bernhardheld.de>
1530
1531         * support/regression/tests/libmullong.c: fixed for 64 bit hosts
1532         Slade Rich fixed an optimization bug
1533         * src/pic/pcodepeep.c,
1534         * src/pic/pcoderegs.c
1535         * doc/Makefile (install): added test for directory
1536
1537 2004-01-30 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
1538
1539         * src/mcs51/ralloc.c (getRegPtr, getRegGpr),
1540         * src/ds390/ralloc.c (getRegPtr, getRegGpr),
1541         * src/pic/ralloc.c (getRegPtr, getRegGpr),
1542         * src/pic16/ralloc.c (getRegPtr, getRegGpr),
1543         * src/z80/ralloc.c (getRegGpr): fixed bug #883361
1544         * as/mcs51/asexpr.c (term),
1545         * as/hc08/asexpr.c (term): fixed bug #887146
1546
1547 2004-01-29 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
1548
1549         * src/z80/gen.c (genMult): handle single byte result product
1550         * src/SDCCopt.c (killDeadCode): never convert ADDRESS_OF iCode to
1551         DUMMY_READ_VOLATILE (fixed bug #886367)
1552
1553 2004-01-27 Bernhard Held <bernhard AT bernhardheld.de>
1554
1555         * support/regression/tests/libmullong.c: fixed logic, on little endian
1556         hosts we ended without a mullong_wrapper()
1557
1558 2004-01-27 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
1559
1560         * ChangeLog: changed "@" to " AT " in hopes of reducing spam and
1561         virus/worm forged address usage.
1562
1563 2004-01-27 Bernhard Held <bernhard AT bernhardheld.de>
1564
1565         Fixed promotion, it should be done on AST level:
1566         * src/SDCCast.c (addCast): added promotion to int
1567         (decorateType): updated call to upCast()
1568         * src/SDCCicode.c (geniCodeLeftShift): removed call to
1569         usualUnaryConversions()
1570
1571 2004-01-26  Michael Hope  <michaelh AT juju.net.nz>
1572
1573         * support/regression/tests/literalop.c (mulWrapper): Added a
1574         wrapper to remove integer overflow warnings.
1575
1576         * support/regression/tests/float_trans.c: Made work on host.
1577
1578         * support/regression/ports/ucz80/spec.mk (UCZ80): Made detect the
1579         location of sz80.
1580
1581         * support/regression/generate-cases.py (main): Changed from inline
1582         to a main method.
1583
1584         * doc/Makefile (install): Changed to depth first to get rid of
1585         missing directory install warning.
1586
1587         * as/Makefile (install-doc): Made work on Mac.
1588
1589 2004-01-25 Bernhard Held <bernhard AT bernhardheld.de>
1590
1591         * src/SDCCast.c: added an additional type flow in decorateType() of
1592         opposite direction, see feature request #860006; it's enabled at runtime
1593         by setting the environment variable SDCC_NEWTYPEFLOW
1594         * src/SDCCast.h: changed prototype of decorateType()
1595         * src/SDCCglue.c (emitRegularMap): updated call of decorateType()
1596         * src/SDCCicode.c (geniCodeDivision) (geniCodeModulus): promotion from
1597         'char' to 'int' can be omitted, if both operands are 'unsigned char';
1598         see feature request #877103
1599         * src/SDCCval.c: updated call of decorateType()
1600         (valBitwise): fixed bug #882876
1601         (valMinus): added promotion
1602         (valLogicAndOr): result is unsigned
1603         (cheapestVal) (constVal): literals from 0...255 are 'unsigned char' now
1604         * src/SDCCsymt.c (computeType),
1605         * src/mcs51/gen.c (genCmpGt) (genCmpLt): literal 'unsigned char'
1606         must not cause an unsigned operation
1607         * src/pic/glue (pic14emitRegularMap),
1608         * src/pic16/glue.c (pic16emitRegularMap): updated call of decorateType()
1609
1610 2004-01-23 Bernhard Held <bernhard AT bernhardheld.de>
1611
1612         * src/pic/pcode.c (PCodeID): commented out left over debug code
1613
1614 2004-01-20 Bernhard Held <bernhard AT bernhardheld.de>
1615
1616         * support/valdiag/tests/overflow.c: added shift tests
1617         * src/pic/device.c,
1618         * src/pic/gen.c,
1619         * src/pic/gen.h,
1620         * src/pic/glue.c,
1621         * src/pic/main.c,
1622         * src/pic/pcode.c,
1623         * src/pic/pcode.h,
1624         * src/pic/pcodepeep.c,
1625         * src/pic/pcoderegs.c,
1626         * src/pic/ralloc.c,
1627         * src/pic/ralloc.h: applied patch from Slade Rich;
1628         added support for multiple code pages and multiple RAM banks on the
1629         PIC 14 port. The ASM files now no longer simply assume all the
1630         code / RAM are in the same page / bank. This means the linker can
1631         safely allocate code/RAM of separate ASM files to different pages/banks.
1632         * doc/sdccman.lyx: added Slade's tips
1633         * src/mcs51/peeph.def: fixed bug #880768
1634
1635 2004-01-20 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
1636
1637         * src/hc08/ralloc.c (rematStr): fixed bug #879282
1638         * src/SDCCast.c (decorateType): fixed bug #880197
1639
1640 2004-01-20  Michael Hope  <michaelh AT juju.net.nz>
1641
1642         * sim/ucsim/gui.src/serio.src/main.cc: Fixed unconditional use of
1643         getopt.h.
1644
1645         * debugger/mcs51/cmd.c (getValBasic): Changed strtof to strtod as
1646         strtof is not part of C89 and isn't included with Mac OS X.
1647
1648 2004-01-20 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
1649
1650         * src/hc08/gen.c (genPlusIncr, genUminus, genMinusDec, genCmp,
1651         shiftL2Left2Result): fixed bug #879326
1652         (genAnd, genOr, genXor): fixed bug when result was of type AOP_CRY
1653         (genMultOneByte): fixed bug in signed vs unsigned multiplication
1654         * sim/ucsim/hc08.src/inst.cc (inst_clr): added missing effective
1655         address fetch for clr instruction
1656         * device/lib/hc08/_mulint.c: created optimized assembly version
1657         * src/SDCCdflow.c (computeDataFlow): fixed bug #878209
1658
1659 2004-01-19 Bernhard Held <bernhard AT bernhardheld.de>
1660
1661         * src/SDCCicode.c (geniCodeArray): applied patch from Stas Sergeev
1662         proposed in FR #877103
1663
1664 2004-01-18 Bernhard Held <bernhard AT bernhardheld.de>
1665
1666         * src/SDCCval.c (cheapestVal): added missing checks
1667         * src/SDCCicode.c (usualBinaryConversions): fixed condition
1668         * src/SDCCicode.c (geniCodeAdd): fixed part of bug #877103
1669
1670 2004-01-16 Klaus Flittner <klaus_flittner AT gmx.de>
1671
1672         * src/ds390/gen.c (aopOp3): fixed the assignment of different dptrs to
1673         equal operands
1674
1675 2004-01-16 Vangelis Rokas <vrokas AT otenet.gr>
1676
1677         * src/SDCCmain.c (linkEdit): variable $3 of the linker command is
1678         loaded with the linker search paths (-L arguments) and the libraries
1679         to be linked with the current source (-l arguments). Changes
1680         currently will affect only the pic16 port.
1681         * src/pic16/main.c (_pic16_finaliseOptions): add to the linker
1682         include path the port specific paths and port specific libraries,
1683         * gplink command now contains the $3 argument,
1684         * src/pic16/device.h,
1685         * src/pic16/device.c,: structure PIC_device is made public and
1686         renamed to PIC16_device, the same for variable Pics which is renamed
1687         to Pics16. Updated all references to them.
1688         * src/pic16/glue.c (pic16glue): corrected bug with code
1689         initialization which bypassed the variable initializations block.
1690
1691         * device/lib/pic16/Makefile.rules: removed --penable-stack from
1692         COMPILE_FLAGS and added the --nostdinc option
1693
1694 2004-01-15 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
1695
1696         * device/include/mc68hc908jb8.h: Register defs for another member
1697         of the hc08 family. Contributed by Bjorn Bringert - thanks!
1698
1699 2004-01-14 Vangelis Rokas <vrokas AT otenet.gr>
1700
1701         Documenting changes from previous commits.
1702         * configure.in (version 1.56),
1703         * configure: initially I've added AC_CONFIG_SUBDIRS(device/lib/pic16)
1704         when generating output files to configure the pic16 library,
1705         but now I've commented it out, since gputils aren't installed in the
1706         SF compile farm, so library won't compile
1707
1708         * device/lib/Makefile.in (version 1.56): initially I've added in
1709         target 'all' the prerequestive 'model-pic16' so it compiled the
1710         pic16 library, but now I've commented it out for the same reasons
1711         above,
1712         * added targets 'model-pic16' and 'objects-pic16' to compile the
1713         library
1714         * added target 'port-specific-objects-pic16' to handle the
1715         generated libraries and copy them into the build/ directory
1716         * added target 'clean-intermediate-pic16' to clean intermediate
1717         files into pic16 directory
1718         * in target 'installdirs' added line to create directory pic16 in
1719         the installation path
1720
1721         * device/include/Makefile.in (version 1.11): in target 'install'
1722         added lines to copy all header files to installation path,
1723         * in target 'installdirs' added line create directory for pic16
1724         headers in the installation path
1725
1726 2004-01-13 Klaus Flittner <klaus_flittner AT gmx.de>
1727
1728         * src/ds390/gen.c (genCall): fixed a double use of acc and b after
1729          a function call
1730
1731 2004-01-13 Bernhard Held <bernhard AT bernhardheld.de>
1732
1733         * configure,
1734         * device/lib/configure.in,
1735         * device/lib/configure: fixed for autoconf 2.57
1736
1737 2004-01-13 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
1738
1739         * src/z80/main.c (_parseOptions): fixed the portmode= command line
1740         option so that it actually works. Made it specific to the z80, since
1741         the gbz80 doesn't have these kinds of I/O ports.
1742
1743 2004-01-13 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
1744
1745         * device/include/z180.h,
1746         * device/lib/_memcpy.c,
1747         * device/lib/_memmove.c,
1748         * device/lib/_mulint.c,
1749         * device/lib/ser_ir.c,
1750         * device/lib/ser_ir_cts_rts.c,
1751         * device/lib/_strcmp.c,
1752         * device/lib/_strtok.c: fixed pragmas to non-deprecated form
1753         * src/z80/main.c (_process_pragma): add support for pragmas bank and
1754         portmode; added deprecation warning for bank= and protmode= forms.
1755         Also, guard against buffer overflow.
1756         * src/z80/gen.c (aopGet): generate better code for sfr banked read
1757
1758 2004-01-13 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
1759
1760         * src/hc08/main.c (_hc08_genAssemblerPreamble): fixed bug #875487. Also
1761         changed interrupt vector table generation to only emit declared vectors.
1762         * device/include/Makefile.in: added missing backslash
1763         * device/lib/pic16/Makefile.rules: add $(MODELFLAGS) to $(CFLAGS)
1764
1765 2004-01-13 Vangelis Rokas <vrokas AT otenet.gr>
1766
1767         Mainly changes to support compilation of the device libraries
1768         * src/pic16/device.c: stack is allocated via symbol and not
1769         via literal number. The symbol is placed in the corresponding
1770         position of the data ram
1771         * (pic16_dump_section): relocatable and absolute uninitialized
1772         data are now emitted in sorted order to reduce section naming,
1773         * src/pic16/ralloc.c (newReg): fixed bug with SFR's that
1774         weren't marked as being in the access bank,
1775
1776 2004-01-13 Vangelis Rokas <vrokas AT otenet.gr>
1777
1778         Added portion of GNU PIC Library under the directory
1779         device/include/pic16 and device/lib/pic16. These files
1780         contain the declarations of SFRs for the PIC18Fxx2 devices.
1781         The directory is initialized via configure from toplevel.
1782
1783 2004-01-12 Klaus Flittner <klaus_flittner AT gmx.de>
1784
1785         * src/ds390/gen.c (operandsEqu): fixed a little typo, that prevented
1786         the spilllocations to be compared correctly
1787
1788 2004-01-12 Bernhard Held <bernhard AT bernhardheld.de>
1789
1790         * src/SDCCast.c (decorateType): fixed bug introduced today
1791
1792 2004-01-12  Borut Razem <borut.razem AT siol.net>
1793
1794         * src/SDCC.lex, support/Util/SDCCerr.h, support/Util/SDCCerr.c,
1795         doc/sdccman.lyx: upper case pragmas are deprecated
1796
1797 2004-01-12 Bernhard Held <bernhard AT bernhardheld.de>
1798
1799         * src/SDCCast.c (decorateType): replacing 'ul > 0' by  '!ul' results
1800         in simpler and even better code
1801
1802 2004-01-11 Bernhard Held <bernhard AT bernhardheld.de>
1803
1804         * src/SDCCicode.c (operandOperation): fixed bug #874819
1805         * src/SDCCast.c (decorateType): fixed
1806         char foo (unsigned long ul) { return ul > 0; }
1807
1808 2004-01-11 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
1809
1810         * doc/sdccman.lyx: Moved and added some sections, small changes
1811         all over. Telling LaTeX to be less strict with word spacing
1812         to better keep the right margin. Changed some notes about
1813         maintainance of the ports in section 3.2.1 - is it OK like this?
1814
1815 2004-01-11 Vangelis Rokas <vrokas AT otenet.gr>
1816
1817         SDCC source changes:
1818         * src/SDCCopt.c (cntToFcall, cnvToFloatCast, cnvFromFloatCast,
1819         convilong): modified to inform the pic16 port that builtin functions
1820         are external
1821
1822         PIC16 PORT specific changes:
1823         * src/pic16/device.c pic16_dump_equates() added,
1824         processor registers declared internally by the port are emitted in
1825         the translation as equates,
1826         * src/pic16/gen.c: inline code is passed unprocessed to the
1827         translation,
1828         * (pic16_popGetLit2): fnuction modified to take second operand as
1829         pCodeOp pointer and not as literal,
1830         * (popRegFromIdx): prefixed with pic16_,
1831         * (pic16_popCombine2): modified to receive already allocated pCode
1832         operands,
1833         * (pic16_pushpCodeOpReg, pic16_poppCodeOpReg): added
1834         * (genFunction): initializes local stack frame and pushes on stack
1835         all the registers used by this function,
1836         * (genEndFunction): restores all registers from stack and restores
1837         stack frame,
1838         * src/pic16/glue.c (pic16emitRegularMap): various changes and
1839         improvements,
1840         * (pic16glue): changed the program startup sequence,
1841         * added new dbName code 'A' for functions placed in absolute section
1842         * src/pic16/main.c: added function attribute _naked,
1843         * added pragma 'code' to place a fnuction at an absolute address,
1844         * added command line arguments --debug-ralloc and --pcode-verbose,
1845         * (_pic16_finiliseOptions): options.all_callee_saves is set by default
1846         * src/pic16/pcode.c (pic16_pBlockConvert2Absolute) added,
1847         * (pic16_newpCodeOpLit2): modified to take the second operand as
1848         pCodeOp pointer,
1849         * (pic16_printpBlock): modified to emit each function in a separate
1850         section,
1851         * (pic16_get_op): modified to use the gpasm modifiers LOW,HIGH and
1852         UPPER for immediate operands,
1853         * src/pic16/pcodepeeph.c: added peephole support for the LFSR
1854         instruction,
1855         * src/pic16/peeph.def: all peepholes with movff are commented out,
1856         because there is a problem in the pcode peep optimizer,
1857         * src/pic16/ralloc.c: the register allocator can now reuse local
1858         function symbols for another function. This saves register usage.
1859         * src/pic16/ralloc.h: added flag isLocal in structure regs,
1860
1861         Added file src/pic16/NOTES with information about program writing on
1862         the current port version.
1863
1864 2004-01-11 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
1865
1866         * src/mcs51/peephole.def: added peepholes 177.c,d (redundant moves)
1867         and peephole 252 (array access)
1868
1869 2004-01-09  Borut Razem <borut.razem AT siol.net>
1870
1871         * src/SDCCmain.c : fixed #872250: -l command line defined library
1872           files are scanned before standard library files
1873
1874 2004-01-10 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
1875
1876         * src/SDCCast.c (decorateType): fixed bug #874046
1877
1878 2004-01-09  Borut Razem <borut.razem AT siol.net>
1879
1880         * support/scripts/sdcc.nsi: remove previous installation
1881
1882 2004-01-09 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
1883
1884         * src/SDCCglue.c (createInterruptVect): don't append 7(5) padding
1885         bytes for last interrupt vector (mcs51)
1886         * sdcc.spec: fixed typo
1887
1888 2004-01-09 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
1889
1890         * src/mcs51/gen.c (genFunction, genEndFunction, genReceive, getTempRegs,
1891         gen51Code): more efficient parameter receive for --model-large
1892         ("bug" #845294)
1893
1894 2004-01-09 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
1895
1896         * src/ds390/main.c,
1897         * src/z80/main.c: added missed needLinkerScript flags (more than
1898         one port structure defined in these file)
1899         * src/ds390/gen.c (aopForSym, aopOp, operandsEqu, aopOp3): fixed
1900         bug #795325
1901
1902 2004-01-08 Vangelis Rokas <vrokas AT otenet.gr>
1903
1904         * src/SDCCmain.c: removed various references to DEFAULT_PORT
1905         * src/port.h: added flag needLinkerScript in port->linker
1906         structure to inform whether to create a .lnk file or not,
1907         * src/avr/main.c,
1908         * src/ds390/main.c,
1909         * src/hc08/main.c,
1910         * src/mcs51/main.c,
1911         * src/pic/main.c,
1912         * src/pic16/main.c,
1913         * src/xa51/main.c,
1914         * src/z80/main.c: changed appropriately to configure
1915         needLinkerScript flag
1916         * src/pic/gen.c,
1917         * src/pic16/gen.c (genAddrOf): fixed bug #863624
1918         * src/pic/glue.c: added variable udata_section_name to
1919         override default uninitialized data segment definition for
1920         devices only with SHAREBANK memory (reported from Erik Epetrich)
1921         * (pic14emitOverlay): modified to emit a commented overlay segment
1922         directive when no overlay data exist
1923         * (picglue): modified to emit uninitialized data segment
1924         according to udata_section_name
1925         * src/pic/main.c (_pic14_parseOptions): added command line
1926         options --udata-section-name=[name] to override default
1927         udata definition name
1928         * modified _linkCmd and _asmCmd to include compiler passed
1929         arguments via -W option
1930         * src/pic16/main.c: added $l in _asmCmd, changed extension for
1931         object file from '.rel' to '.o' in port->linker structure,
1932         changed size of fptr from 2 to 3 in port structure
1933
1934 2004-01-07  Borut Razem <borut.razem AT siol.net>
1935
1936         * support/scripts/sdcc.nsi: update PATH
1937         * support/scripts/sdcc.ico: craeted
1938
1939 2004-01-07 Bernhard Held <bernhard AT bernhardheld.de>
1940
1941         * device/include/Makefile.in: fix install
1942         * doc/Makefile: fix install
1943
1944 2004-01-07 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
1945
1946         * src/SDCCsymt.c (processFuncArgs): fixed superflous allocation noted
1947         in bug #860505
1948         * src/SDCCmem.c (printAllocInfoSeg, printAllocInfo): minor changes to
1949         how the function variable allocation summary is displayed; also
1950         include information about variables allocated to the overlay
1951         segment
1952
1953 2004-01-06  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
1954
1955         * as/mcs51/lkmain.c: Help about -Y option
1956         * as/mcs51/lkarea.c: Fixed gcc warnings
1957
1958 2004-01-06 Bernhard Held <bernhard AT bernhardheld.de>
1959
1960         * src/SDCCval.c (valShift): changed from 16 to 32 bit shift count,
1961         fixed warning
1962         * support/valdiag/tests/overflow.c: added
1963         * src/SDCCast.c (decorateType),
1964         * src/SDCCicode.c (geniCodeLeftShift): added promotion to int for
1965         LEFT_OP (left shift)
1966
1967 2004-01-06  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
1968
1969         * as/mcs51/lkmain.c: stack must be after data when option -Y is not used
1970         (default behaviour).
1971
1972 2004-01-06 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
1973
1974         A python script to validate compiler diagnostic messages. It can be
1975         used to verify that sdcc complains about bad c source code and
1976         gives a good location of the error.
1977         * support/valdiag/Makefile,
1978         * support/valdiag/valdiag.py,
1979         * support/valdiag/tests/*
1980
1981 2004-01-06 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
1982
1983         * src/SDCC.y (enum_specifier, enumerator_list, opt_assign_expr),
1984         * src/SDCCsymt.c (newEnumType),
1985         * src/SDCCsymt.h
1986         * support/Util/SDCCerr.c,
1987         * support/Util/SDCCerr.h: fixed bug #871258 and some other unreported
1988         enum related bugs.
1989         * support/regression/tests/enum.c: added test for enum values that
1990         require at least 2 bytes of storage.
1991
1992 2004-01-06 Vangelis Rokas <vrokas AT otenet.gr>
1993
1994         * src/common.h: added ifndef/define/endif macros
1995         around the header file.
1996         Bug reported from Jesus Calvino-Fraga
1997
1998 2004-01-06 Bernhard Held <bernhard AT bernhardheld.de>
1999
2000         * sdcc.spec: updated
2001         * device/include/Makefile.in: don't install CVS directories
2002         * device/lib/Makefile.in: added removal of CVS directories after install
2003         * doc/Makefile: fixed install, added local_icons
2004         * sim/ucsim/gui.src/Makefile.in: fixed an old typo
2005         * src/mcs51/gen.c (genRightShift): fixed bug #870788
2006         * src/ds390/gen.c (genRightShift): fixed bug #870788
2007         * src/SDCCast.c (decorateType): fixed bug #870781
2008
2009 2004-01-06 Vangelis Rokas <vrokas AT otenet.gr>
2010
2011         PIC16 port related changes:
2012         * device.c: removed pic16_finalMapping and pic16_finalMappingSize,
2013         added variable stackPos,
2014
2015         * gen.c: genCall, assignResultValue: added support for
2016         pushing/retrieving function parameters to/from stack,
2017         genFunction,genEndFunction: setup stack frame for the
2018         generated function,
2019         genAddrOf: will be changed according to bug 863624
2020
2021         * added files genutils.c and genutils.h which contain gen*
2022         debugged and optimised functions extracted from gen.c
2023
2024         * glue.c: added variable 'externs' which holds extern symbols,
2025         pic16emitRegularMap: is modified to properly handle relocatable
2026          symbols under the new scheme,
2027         pic16createInterruptVect: is modified
2028         pic16printPublics: is modified to emit 'global' assembler directives,
2029         added pic16_printExterns to print extern symbols,
2030         pic16glue: initializes stack/frame pointer in the beginning of
2031         the assembly output. Temporary hack, will be corrected later,
2032         because gplink yet does not support stack and SDCC does not
2033         yet support a type of crt0.o object to create the final binary.
2034
2035         * Removed many lines that contain 8051 legacy code.
2036         * The code is finally placed under a 'code' directive.
2037         * Added port specific options.
2038
2039         * _process_pragma: simplified since now we do not need *special*
2040         include file to define SFR registers. But a separate header
2041         will be needed. This will be developed later.
2042         * _pic16_parseOptions: added, parses port specific options:
2043         --pgen-banksel, --obanksel=, --pomit-config-words, --pomit-ivt,
2044         --pleave-reset-vector, --penable-stack, --pstack-model, --debug-xtra
2045         --preplace-udata-with=
2046
2047         * _pic16_setDefaultOptions: modified to initialize section names,
2048         but hack is temporarly out of order since it needs improvement.
2049         * _pic16_genAssemblerPreamble: configuration words are emitted by
2050         their address instead of their name. This part is incomplete and
2051         supports only the 18Fxx2 devices. Other devices will emit an error
2052         during assembly since they do not contain the same set of config
2053         registers
2054         * _pic16_genIVT: is modified,
2055
2056         * pcode.c: added definitions for some hardware registers that are needed
2057         for stack support
2058         * added flag is2LitOp and variable pci_magic in pCodeInstruction.
2059         All PCI entries are updated. Now LFSR is supported.
2060         * Removed pic16_pciTRIS is mentioned by mdubuc in source
2061         * added pic16_newpCodeOpLit2 to support instructions with
2062         two literal arguments
2063         * pic16_pCode2str: corrected code that emits assembler instructions
2064         with two literal operands and those that have an access bit modifier
2065         * genericPrint: now PC_ASMDIR pCodes, can emit a label if it exists,
2066         this fixes a bug which caused some labels to be lost, when an
2067         assembler directive was added, i.e. banksel,
2068         * pic16_FixRegisterBanking: improved logic that causes the insertion
2069         of bank switching,
2070         * InlineFunction: functions that are called once, are not any more
2071         inlined. This can be a port option in the future,
2072
2073         * pcode.h: added pCodeOpLit2 and added variable label in pCodeAsmDir
2074
2075         * ralloc.c: added pic16_rel_udata and pic16_fix_udata variables which
2076         hold the corresponding uninitialized symbols,
2077         * pic16_allocProcessorRegister: registers have explicit marked the
2078         accessBank field,
2079         * pic16_allocInternalRegister: registers are explicit marked as
2080         not used,
2081         * pic16_writeUsedRegs: pic16_dynDirectBitRegs was missing from the
2082         processing list, so bit registers were lost,
2083         *
2084
2085         * ralloc.h: added field 'accessBank' and original symbol operand
2086         in register definition,
2087         * removed the field isMapped from register definition,
2088
2089         ** Several functions have been removed from various sources:
2090         BanksUsedFlow2,BanksUsedFlow,FixBankFlow,InstructionRegBank,
2091         pic16_addMemRange,pic16_isREGinBank,pic16_dump_map,pic16_dump_cblock
2092         isSFR,validAddress,mapRegister,assignRegister,pic16_assignFixedRegisters
2093         pic16_assignRelocatableRegisters
2094
2095         ** others have been introduced:
2096         pic16_areRegsSame,pic16_dump_section,checkAddReg,pic16_groupRegistersInSection
2097         pic16_popGetLit2,pic16_popCombine2,pushw,pushaop
2098
2099 2004-01-05 Vangelis Rokas <vrokas AT otenet.gr>
2100
2101         * support/scripts/inc2h.pl: changed definition of BIT_AT
2102         to emit 'sbit at' instead of 'bit at'. This was a request.
2103
2104         PIC16 port related preliminary changes:
2105         * gen.c: prefixed function popRegFromString with
2106         pic16_ and all references to it corrected
2107         * pcode.c: all pic16_pc_* hardware registers prefixed
2108         with underscore (_),
2109         pic16_popCopyGPR2Bit(): function sets register wasUsed=1
2110         * ralloc.c: newReg(): when register is REG_SFR then
2111         set address to rIdx,
2112         pic16_allocProcessorRegister(): marks register wasUsed=0
2113         pic16_writeUsedRegs(): added a call to assign processor
2114         registers via pic16_assignFixedRegisters
2115
2116 2004-01-04  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
2117
2118         * as/mcs51/aslink.h, as/mcs51/lkarea.c, as/mcs51/lkdata.c,
2119         as/mcs51/lkmain.c, as/mcs51/lkmem.c: 8051 linker can now pack
2120         variables in unused register banks.  Also the SSEG is placed
2121         wherever there is enough space for it, and IDATA can be anywhere
2122         in internal RAM.  For now compile using -Wl-Y[stack_size].
2123         The mem file is different for this option as well, since it
2124         makes no sense of talking about DSEG lenght.
2125
2126 2004-01-02 Vangelis Rokas <vrokas AT otenet.gr>
2127
2128         * src/SDCClrange.c: fixed bug 869095 that caused segfault
2129         in certain cases, e.g. when ROM assignment, patch provided
2130         from Albert den Haan.
2131
2132 2004-01-01 Bernhard Held <bernhard AT bernhardheld.de>
2133
2134         Many signedness and type propagation fixes:
2135         * src/SDCCicode.c: made geniCodeCast() static
2136         replaced SPEC_ by IS_ (cosmetic)
2137         (operandOperation): fixed div and mod operation
2138         (usualBinaryConversions): added support for promotion of char
2139         (geniCodeMultiply): replaced (unsigned long) by (TYPE_UDWORD)
2140         (geniCodeDivision): replaced (unsigned long) by (TYPE_UDWORD)
2141         (geniCodeAdd): an array index will stay unsigned, even if promoted
2142         from char to int
2143         (geniCodeArray): ditto
2144         * src/SDCCicode.h: made geniCodeCast() static: removed prototype
2145         * src/SDCCsymt.c (computeType): added more support for char;
2146         promotion of char is selectable by promoteCharToInt, fixed signedness
2147         for all cases
2148         (powof2): replaced (unsigned long) by (TYPE_UDWORD)
2149         * src/SDCCsymt.h (powof2): replaced (unsigned long) by (TYPE_UDWORD)
2150         * src/SDCCval (val*): replaced signedness calculation by
2151         computeType()
2152         rearranged if-branches (cosmetic)
2153         (valShift): added warning W_SHIFT_CHANGED
2154         (valCompare): fixed problem with different types
2155         * src/hc08/rallo.c (leastUsedLR): fixed gcc 3.3 warning
2156         * support/regression/tests/literalop.c: added many cases
2157         * support/regression/tests/ast_constant_folding.c: changed finally to
2158         'unsigned int'
2159         * .version: new year, new version: 2.3.7
2160         * src/SDCCmain.c (main): applied patch #866468
2161         * debugger/mcs51/sdcdb.c (parseCmdLine): added -k for ucsim, patch
2162         provided by Scott Bronson
2163         * doc/sdccman.lyx: updated documentation for sdcdb
2164         updated and added chapter tips
2165
2166 2004-01-01 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
2167
2168         * src/SDCCsymt.h: missing from yesterday's commits
2169
2170 2003-12-31 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
2171
2172         * src/SDCC.y (struct_or_union_specifier),
2173         * support/Util/SDCCerr.c,
2174         * support/Util/SDCCerr.h: verify that struct & union tags are used
2175         as declared.
2176
2177 2003-12-29 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
2178
2179         * src/SDCCglobl.h: missing from yesterday's commits
2180
2181 2003-12-28 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
2182
2183         * src/SDCC.y (external_definition, type_specifier2, sfr_reg_bit,
2184         sft_attributes, struct_declaration, parameter_declaration,
2185         type_name, start_block, declaration_list),
2186         * src/SDCC.lex (check_type): support redefinition of typedef names
2187
2188 2003-12-22 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
2189
2190         * src/mcs51/gen.c (genPlus): added special handling for 256 byte
2191         aligned xdata arrays. Erik helped me with the if clause.
2192
2193 2003-12-20 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
2194
2195         * device/lib/ds390/tinibios.c (CpuSpeed): suppress unreachable code
2196         warning
2197
2198 2003-12-20 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
2199
2200         * src/SDCCast.h,
2201         * src/SDCCast.c (newAst_),
2202         * src/SDCCicode.h,
2203         * src/SDCCicode.c (ast2iCode, newiCode),
2204         * src/SDCCglobl.h,
2205         * src/SDCC.y (logical_and_expr, logical_or_expr, conditional_expr,
2206         expr, statement, expression_statement, selection_statement,
2207         iteration_statement, expr_opt, jump_statement): foundation for tracking
2208         sequence points
2209         * src/SDCCopt.c (killDeadCode): fixed bug #861580 (needs the sequence
2210         point code too)
2211
2212 2003-12-19 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
2213
2214         * support/Util/SDCCerr.c,
2215         * src/SDCCast.h,
2216         * src/SDCCast.c (createCase, createDefault, decorateType),
2217         * src/SDCClabel.c (labelUnreach),
2218         * src/SDCC.y (labeled_statement, jump_statement): More improvements
2219         to error messages.
2220         * support/Util/SDCCerr.c (werrorfl): fixed a non-standard declaration
2221         (with thanks to Stas Sergeev)
2222         * device/include/time.h,
2223         * device/lib/time.c (CheckTime): suppress unreachable code warning
2224
2225 2003-12-18 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
2226
2227         * src/SDCCast.c (createIvalCharPtr),
2228         * src/SDCCglue.c (printChar): fixed bug #862241 (an error in my fix for
2229         bug #753752)
2230         * support/regression/tests/nullstring.c: tests for these two bugs
2231
2232 2003-12-18 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
2233
2234         * support/Util/SDCCerr.h,
2235         * support/Util/SDCCerr.c (E_NOT_ALLOWED),
2236         * src/SDCC.y (struct_declaration, struct_or_union_specifier): complain
2237         about storage class and 'at' used inside struct or union
2238         * src/SDCCBBlock.c (iCodeFromeBBlock),
2239         * src/SDCCcse.c (ifxOptimize),
2240         * src/SDCCglue.c (emitRegularMap, initPointer, printIvalStruct,
2241         printIvalArray, printiValFuncPtr, printIvalCharPtr, printIvalPtr,
2242         printIval, emitStaticSeg, emitOverlay),
2243         * src/SDCClabel.c (deleteIfx),
2244         * src/SDCCopt.c (replaceRegEqv, eBBlockFromiCode),
2245         * src/SDCCast.c (resolveSymbols, createIvalStruct, createIvalArray,
2246         gatherAutoInit, processParms),
2247         * support/Util/SDCCerr.h,
2248         * support/Util/SDCCerr.c (werrorfl): Support for better error location
2249         reporting for post-parse errors.
2250
2251 2003-12-16 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
2252
2253         * src/SDCCval.c (valPlus, valMinus, valShift): fixed some problems with
2254         implicit casts via union; they don't work on big endian systems
2255         (possible fix for bug #861138)
2256
2257 2003-12-16 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
2258
2259         (committed by Erik Petrich <epetrich AT ivorytower.norman.ok.us> on Frieder's behalf)
2260         * src/mcs51/main.c: fixed the fix for bug #737001
2261
2262 2003-12-15  Borut Razem <borut.razem AT siol.net>
2263
2264         * support/scripts/sdcc.nsi: updated for NSIS 2.0 beta 4
2265
2266 2003-12-14 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
2267
2268         * support/makebin/makebin.c: put output in binary mode
2269
2270 2003-12-13 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
2271
2272         * src/mcs51/main.c: fixed bug #737001 for the mcs51. SDCC clears
2273         xdata and data memory on startup. Set the environment variable
2274         SDCC_NOGENRAMCLEAR to disable this.
2275         * src/mcs51/peephole.def,
2276         * src/ds390/peephole.def: using the atomic test and clear instruction jbc
2277         (allows non-interrupt and interrupt code to safely compete for a resource
2278         without the non-interrupt code having to disable interrupts)
2279
2280 2003-12-13 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
2281
2282         * src/SDCCicode.c (geniCodeAdd),
2283         * src/SDCCast.c (decorateType): fixed bug #857753 (need to be careful
2284         with valFromType if type might be a pointer and host is big endian).
2285         * src/SDCCast.c (decorateType): unary plus compatible with all arithmetic
2286         types, not just integer types.
2287         * src/SDCCsymt.c (addSymChain): clarified error message when symbol is
2288         multiply defined with mismatching "at" address.
2289
2290 2003-12-12 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
2291
2292         * src/ds390/main.c (PORT tininative_port): fixed bug #858416
2293         * src/SDCCglue.c (printChar, printIvalChar, emitStaticSeg),
2294         * src/SDCCast.c (createIvalCharPtr, stringToSymbol): handle strings
2295         with embedded nulls (fixed bug #753752)
2296
2297 2003-12-12 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
2298
2299         * src/mcs51/main.c(_mcs51_genRAMCLEAR): using r0 instead of r1/r2.
2300         Apparently this did not see much testing (endless loop)
2301
2302 2003-12-11 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
2303
2304         * src/z80/ralloc.c: set DISABLE_PACK_HL = 1 as a temporary fix to bug #855165
2305
2306 2003-12-10 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
2307
2308         * src/SDCCdebug.c (outputDebugSymbols, outputDebugStackSymbols, dumpSymInfo):
2309         gracefully handle NULL memmap pointers
2310
2311 2003-12-08 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
2312
2313         * src/SDCCopt.c (killDeadCode): change iCode type to DUMMY_READ_VOLATILE
2314         instead of deleting the iCode when an operand is volatile
2315         * src/z80/gen.c (genDummyRead),
2316         * src/mcs51/gen.c (genDummyRead),
2317         * src/ds390/gen.c (genDummyRead),
2318         * src/hc08/gen.c (genDummyRead): handle operands in IC_LEFT and/or IC_RIGHT,
2319         not just IC_RIGHT
2320         * src/SDCCicode.c (geniCodeCall): fixed bug #851607
2321         * src/SDCC.y: fixed bug #850420
2322
2323 2003-12-05 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
2324
2325         Applied z80 i/o port patch from Peter Townson and fixed some operators
2326         to better handle operands in A register.
2327         * device/include/z180.h
2328         * src/SDCC.y
2329         * src/SDCCglue.c
2330         * src/z80/gen.c
2331         * src/z80/gen.h
2332         * src/z80/main.c
2333         * src/z80/peeph-z80.def
2334         * src/z80/peeph.def
2335         * src/z80/z80.h
2336
2337 2003-12-03 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
2338
2339         * src/SDCCsymt.c (addSymChain, compareTypeExact): fixed bug #838241 again
2340
2341 2003-12-01 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
2342
2343         * device/lib/hc08/_mullong.c: Removed extra #endif
2344
2345 2003-12-01 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
2346
2347         * sim/ucsim/hc08.src/inst.cc,
2348         * sim/ucsim/hc08.src/hc08mac.h: fixed some problems with CC flag bits and
2349         carries from x to h
2350         * src/hc08/gen.c (aopAdrStr): fixed problem with 16 bit immediate
2351         * src/hc08/gen.c (XAccRsh): fixed problem with right shift
2352         * device/include/stdarg.h: fixed varargs for hc08
2353         * device/lib/Makefile.in,
2354         * device/lib/hc08/Makefile,
2355         * device/lib/hc08/_mulint.c,
2356         * device/lib/hc08/_mullong.c: fixed some endian problems
2357
2358 2003-11-28 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
2359
2360         * sdcc/src/mcs51/gen.c (genMultOneByte): help peephole 105
2361         * sdcc/src/mcs51/peeph.def: added peephole 186.e array access in code space
2362         * device/lib/_gptrget.c,
2363         * device/lib/_gptrput.c: P2 not used any more (related to #850747, #785979)
2364
2365 2003-11-27 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
2366
2367         * src/SDCClrange.c (findNextUseSym, rlivePoint): fixed bug #849795
2368         * src/SDCCast.c (astErrors): fixed bug #846007
2369         * src/SDCCsymt.c (checkFunction): fixed follow-up bug on bug #846007
2370
2371 2003-11-26 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
2372
2373         * src/SDCCast.c (decorateType): disabled a transformation I added in
2374         revision 1.188 (access to fields of a structure at an absolute address);
2375         it breaks with bitfields, extern declarations, and gcse analysis.
2376         * src/SDCCopt.c (isLocalWithoutDef): if ADDRESS_OF applied to a symbol, it
2377         could be assigned through a pointer, so don't complain.
2378         * src/SDCCast.c (astErrors),
2379         * src/SDCCast.h,
2380         * src/SDCCglue.c (emitRegularMap): fixed bug #847813
2381
2382 2003-11-26 Vangelis Rokas <vrokas AT otenet.gr>
2383
2384         * src/pic16/main.c (_pic16_genIVT): fixed interrupt vector table
2385         * src/pic16/main.c (_pic16_genAssemblerPreamble): re-enabled the
2386         output of __config directives, since gpasm now supports them
2387         * src/pic16/main.c (_pic16_finaliseOptions): define MCU
2388         pre-processor macro, i.e. -DMCU=p18f452
2389         * src/pic16/ralloc.c: renamed packRegisters to pic16_packRegisters,
2390         and modified to handle 'cast' icode similarly to '=' icode
2391         * src/pic16/device.h (typedef struct PIC_device): added field
2392         'extMIface' to indicate that chip has external memory interface
2393         * src/pic16/device.c: added chips 18F248, 18F258, 18F448, 18F458,
2394         18F6520, 18F6620, 18F6680, 18F6720, 18F8520, 18F8620, 18F8680,
2395         18F8720
2396
2397 2003-11-26 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
2398
2399         * src/SDCC.y (pointer): fixed bug #846006
2400         * support/Util/SDCCerr.c: made W_PTR_TYPE_INVALID message clearer
2401         * src/SDCCast.c (decorateType): fixed bug #846009
2402         * src/ds390/peeph.def,
2403         * src/ds390/gen.c (genAnd, genOr),
2404         * src/mcs51/peeph.def,
2405         * src/mcs51/gen.c (genAnd, genOr): fixed bug #846777
2406
2407 2003-11-25 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
2408
2409         Fixed several common-sub-expression bugs (#772861, #768380, & #755323)
2410         * src/SDCCdflow.c
2411         * src/SDCCcse.c
2412         * src/SDCCcse.h
2413         * src/SDCCBBlock.h
2414         * src/SDCCBBlock.c
2415
2416 2003-11-23 Klaus Flittner <klaus_flittner AT gmx.de>
2417
2418         fixed bug #845089
2419         * src/SDCCbitv.h,
2420         * src/SDCCbitv.c: added function to free a bitvector
2421         * src/SDCClrange.h,
2422         * src/SDCClrange.c: added function to recompute the liveranges
2423         * src/avr/ralloc.c,
2424         * src/ds390/ralloc.c,
2425         * src/hc08/ralloc.c,
2426         * src/mcs51/ralloc.c,
2427         * src/pic/ralloc.c,
2428         * src/pic16/ralloc.c,
2429         * src/xa51/ralloc.c,
2430         * src/z80/ralloc.c: recompute the liveranges after register packing
2431
2432 2003-11-21 Klaus Flittner <klaus_flittner AT gmx.de>
2433
2434         * src/SDCCloop.c (newInduction): fixed bug #845630
2435
2436 2003-11-21 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
2437
2438         * src/SDCCsymt.c (compareTypesExact): disabled debugging output
2439         inadvertantly left behind from my 2003-11-12 change
2440
2441 2003-11-20 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
2442
2443         Updated headers I neglected to commit yesterday.
2444         * src/SDCClrange.h,
2445         * src/SDCCicode.h
2446
2447 2003-11-19 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
2448
2449         * src/SDCCcse.c (algebraicOpts): fixed bug #773153
2450         * src/SDCClrange.c (rlivePoint): need to mark IC_RESULT used if POINTER_SET op
2451         * src/SDCCopt.c (eBBlockFromiCode),
2452         * src/SDCClrange.c (hashiCodeKeys, sequenceiCode, computeLiveRanges): seperated
2453         the creation of the key hash table from the sequencing so it can be used
2454         earlier (for some GCSE bug fixes still pending)
2455
2456 2003-11-15 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
2457
2458         * src/mcs51/gen.c (genPlus): generate shortcut for adding 0xab00
2459         * support/regression/tests/addsub.c: testing genPlus shortcut
2460
2461 2003-11-15  Borut Razem <borut.razem AT siol.net>
2462
2463         * src/SDCCmain.c: fixed bug #841645: -MM command line option passed to sdcpp
2464
2465 2003-11-15 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
2466
2467         * src/SDCCcse.c (cseBBlock): fixed bug #527779
2468         * src/SDCCcse.c (deleteGetPointers): rewrote so that the set
2469         ordering is immaterial.
2470         * src/SDCCdflow.c (mergeInExprs): fixed bug #587536
2471
2472 2003-11-14 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
2473
2474         * src/SDCCicode.c (geniCodeAddressOf): fixed part of bug #840381
2475         * src/SDCCopt.c (replaceRegEqv, isLocalWithoutDef): fixed other part
2476         (SIGSEV) of bug #840381
2477         * src/SDCCmain.c (linkEdit, assemble): fixed bug #841606 (don't
2478         unlink new file before rename if new and old filenames are the same)
2479
2480 2003-11-13 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
2481
2482         * src/mcs51/main.c: started fixing bug #737001 (SDCC not clearing
2483         uninitialized variables) for the mcs51. Set environment variable
2484         SDCC_GENRAMCLEAR to test.
2485         xdata initialization slightly shorter
2486
2487 2003-11-12 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
2488
2489         * src/SDCCsymt.h,
2490         * src/SDCCsymt.c (addSymTypeChain, compareTypesExact): fixed bugs
2491         #838241 & 780691 (basicly the same bug)
2492         * src/SDCCBBlock.c (iCode2eBBlock): fixed bug #840148
2493         * src/SDCCBBlock.c (iCodeFromeBBlock): fixed bug #840162
2494
2495 2003-11-11 Bernhard Held <bernhard AT bernhardheld.de>
2496
2497         * src/SDCCmain.c (linkEdit): "fix" #834252
2498
2499 2003-11-11 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
2500
2501         * src/SDCCast.c (removePostIncDecOps, removePreIncDecOps),
2502         * src/SDCCast.h,
2503         * src/SDCC.y: fixed bug #819403
2504
2505 2003-11-08 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
2506
2507         * support/regression/fwk/lib/testfwk.c: printn is recursive and thus needs
2508         the reentrant attribute.
2509         * src/hc08/gen.c (genPackBits): added missing stack readjustment
2510         * sim/ucsim/hc08.src/inst.cc (inst_mov): fixed bugs with mov instruction
2511         simulation
2512         * src/SDCCast.c (decorateType): fixed bug with storage class not being
2513         updated during pointer dereference; f.e. ~(((char *)1)*) was being
2514         erroneously reduced to a literal.
2515         * src/hc08/ralloc.c (packRegisters, rematStr),
2516         * src/hc08/gen.c (aopForRemat): allow literals to be rematerialized in
2517         some cases
2518
2519 2003-11-08 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
2520
2521         * src/mcs51/main.c: fixed bug #838385. Thanks to Josef Pavlik for finding and fixing
2522         * doc/sdccman.lyx: changed from 'article' to 'book'
2523         * doc/Makefile: readded test_suite_spec and cdbfileformat
2524
2525 2003-11-08 Bernhard Held <bernhard AT bernhardheld.de>
2526
2527         * device/include/stdlib.h: include malloc.h to comply with ANSI
2528         * support/regression/tests/malloc.c: include stdlib.h instead of malloc.h
2529
2530 2003-11-07 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
2531
2532         * doc/Makefile: sdccman.pdf should build with correct references (more info in commit msg)
2533         * doc/clean.mk: also remove *.out files
2534         * doc/sdccman.lyx: some additions, larger top/bottom margins
2535
2536 2003-11-07 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
2537
2538         * src/SDCC.y: fixed bug #837365
2539         * support/regression/tests/bitopcse.c
2540         * src/hc08/gen.c (genPointerGet): Don't assume pointer operand is
2541         a symbol (might be valop instead)
2542         * device/lib/Makefile.in: added errno.c to HC08SOURCES
2543         * device/lib/clean.mk: added hc08 to the cleaning list
2544
2545 2003-11-04  Borut Razem <borut.razem AT siol.net>
2546
2547         * configure, configure.in, sdcc_vc_in.h, sdcconf_in.h: reverted changes,
2548           made 2003-11-04
2549         * support/Util/NewAlloc.c, as/hc08/lklibr.c, as/mcs51/lklibr.c,
2550           as/z80/aslist.c, as/z80/assym.c: removed inclusion of nonstandard malloc.h;
2551           malloc is declared in standard stdlib.h
2552
2553 2003-11-06 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
2554
2555         * device/lib/hc08/Makefile: need to clean .rel not .o files
2556         * src/hc08/gen.c (genDjnz): can't use djnz with extended addressing mode
2557
2558 2003-11-06 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
2559
2560         * src/port.h,
2561         * src/hc08/main.c,
2562         * src/mcs51/main.c,
2563         * src/ds390/main.c,
2564         * src/z80/main.c,
2565         * src/avr/main.c,
2566         * src/pic/main.c,
2567         * src/pic16/main.c,
2568         * src/xa51/main.c: added hasExtBitOp & oclsExpense functions to ports
2569         * src/SDCCicode.c: changed several IS_FARSPACE tests to isOclsExpensive
2570         tests (which uses the port's oclsExpense function)
2571         * src/SDCC.y,
2572         * src/SDCCast.c,
2573         * src/SDCCicode.c,
2574         * src/hc08/gen.c,
2575         * src/ds390/gen.c,
2576         * src/mcs51/gen.c: added support for the SWAP iCode (RFE #834167)
2577
2578 2003-11-04 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
2579
2580         * src/SDCCcse.c (ifxOptimize),
2581         * src/SDCClabel.c (labelIfx, deleteIfx): When the condition to
2582         an IFX iCode is volatile, convert to DUMMY_READ_VOLATILE instead
2583         deleting the IFX iCode.
2584         * src/hc08/ralloc.c: reduced unneeded slocs
2585         * src/hc08/gen.c: fixed bug in asmopToBoolean
2586
2587 2003-11-04  Borut Razem <borut.razem AT siol.net>
2588
2589         * configure, configure.in, sdcc_vc_in.h, sdcconf_in.h,
2590           support/Util/NewAlloc.c, as/hc08/lklibr.c, as/mcs51/lklibr.c,
2591           as/z80/aslist.c, as/z80/assym.c: decision to include malloc.h
2592           transferred to configure
2593
2594 2003-11-03 Bernhard Held <bernhard AT bernhardheld.de>
2595
2596         Use headers defined in the C[++] standards:
2597         * sim/ucsim/gui.src/serio.src/fileio.cc
2598         * sim/ucsim/gui.src/serio.src/frontend.cc
2599         * sim/ucsim/gui.src/serio.src/main.cc
2600         * sim/ucsim/gui.src/serio.src/posix_signal.cc
2601         * support/Util/NewAlloc.c
2602         * as/hc08/lklibr.c
2603         * as/mcs51/lklibr.c
2604         * as/z80/aslist.c
2605         * as/z80/assym.c
2606
2607 2003-11-03  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
2608
2609         * Added MSVC projects for hc08 assembler and linker:
2610         all.dsp, config.dsp, sdcc.dsw, /as/hc08/as_hc08.dsp,
2611         /as/hc08/link_hc08.dsp
2612
2613 2003-11-03 Martin Helmling <Martin.Helmling AT octo-soft.de>
2614
2615         * debugger/mcs51/cmd.c: allows filename starting with digit(+ some debug)
2616
2617 2003-11-02 Bernhard Held <bernhard AT bernhardheld.de>
2618
2619         * src/SDCCmain.c (linkEdit): "fixed" again bug #833605
2620
2621 2003-11-01 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
2622
2623         * src/mcs51/main.c: xdata initialization is 13 bytes shorter now
2624
2625 2003-10-31  Borut Razem <borut.razem AT siol.net>
2626
2627         * support/cpp2/cpplib.h,
2628           support/cpp2/cpplib.c,
2629           support/cpp2/cpplex.c,
2630           support/cpp2/cppinit.c: introduced #pragma preproc_asm [ + | - ]
2631           to switch _asm block preprocessing on / off. Default is
2632           #pragma preproc_asm +
2633
2634 2003-10-31  Borut Razem <borut.razem AT siol.net>
2635
2636         * support/cpp2/cpplex.c: Fixed _WIN32 problem with CR-CR-LF sequences
2637           when outputting comment blocks (when executed with -C option) and
2638           _asm (SDCPP specific) blocks
2639
2640 2003-10-31 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
2641
2642         * as/hc08/lkrloc.c (relr): Fixed ihx output, fixed lastAreaIndex warning
2643
2644 2003-10-31 Klaus Flittner <klaus_flittner AT gmx.de>
2645
2646         * src/SDCCcse.c (updateSpillLocation): fixed bug #808027
2647
2648 2003-10-31 Bernhard Held <bernhard AT bernhardheld.de>
2649
2650         * src/SDCCmain.c (linkEdit): "fixed" bug #833605
2651         * src/SDCCast.c (decorateType): fixed bug #832664
2652
2653 2003-10-31  Borut Razem <borut.razem AT siol.net>
2654
2655         * support\cpp2\cpplex.c: fixed for SDCPP:
2656           comments(when executed with -C option) and _asm blocks
2657           were included even if they where in skipped #if block.
2658           Applied solution from GCC cpp 3.3.2
2659
2660 2003-10-31  Borut Razem <borut.razem AT siol.net>
2661
2662         * src/SDCC.lex: sdcc now understands both formats:
2663           '# <line_number> <file_name>' and
2664           '#line <line_number> <file_name>'
2665         * support/cpp2/cppmain.c: sdcpp now generates the standard
2666           '# <line_number> <file_name>' instead of former
2667           '#line <line_number> <file_name>'
2668
2669 2003-10-30  Borut Razem <borut.razem AT siol.net>
2670
2671         * support/cpp2/cpphash.h,
2672         * support/cpp2/cpplib.h
2673         * support/cpp2/cpplex.c,
2674         * support/cpp2/cppmain.c,
2675         * support/cpp2/cppinit.c: fixed bug #828015 - Syntax variation for _asm character constants
2676
2677 2003-10-30 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
2678
2679         Fixed a number of problems revealed by bug #827883.
2680         * src/SDCCloop.c (loopInvariants): Spill location of the
2681         result operand should be recomputed if extracted from
2682         a loop. Also, don't extract assignments of an iTemp
2683         from a literal.
2684         * src/SDCCast.c (isConformingBody): loop reversal should
2685         not occur if the control variable is involved with a
2686         relational operator.
2687
2688 2003-10-28 Bernhard Held <bernhard AT bernhardheld.de>
2689
2690         * .version: bumped to 2.3.6 to reflect the big improvements
2691         made by Erik and Klaus. Thanks!
2692
2693 2003-10-28 Klaus Flittner <klaus_flittner AT gmx.de>
2694
2695         Replaced the livrange code.
2696         * src/SDCClrange.c: added new LR code
2697         * src/SDCCloop.c,
2698         * src/SDCCBBlock.h: removed remainig parts from old LR code
2699         * src/ds390/ralloc.c,
2700         * src/ds390/gen.c: minor fixes to make it work with new code
2701
2702 2003-10-28 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
2703
2704         * as/hc08/asm.h,
2705         * as/hc08/lkrloc.c,
2706         * src/hc08/gen.c,
2707         * src/hc08/ralloc.c: Fix various warnings related to the hc08
2708         * src/SDCCicode.c (geniCodePreInc, geniCodePreDec): Fixed bug #829717
2709         (tweaked fix for bug #818696)
2710
2711 2003-10-23 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
2712
2713         * src/z80/ralloc.c (joinPushes): Fixed bug #828742
2714
2715 2003-10-23 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
2716
2717         * src/SDCCmain.c,
2718         * sdccconf_in.h: Fixed bug #828387 (--disable-hc08-port didn't work)
2719         * src/mcs51/gen.c (gencjneshort),
2720         * src/ds390/gen.c (gencjneshort): Made comparison with AOP_IMMD operand
2721         more efficient (per Scott Bronson's suggestion)
2722
2723 2003-10-22 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
2724
2725         Extended the semantics of the critical keyword to include
2726         individual statements. See RFE #827755 and #799831
2727         * src/SDCC.y
2728         * src/SDCCicode.c
2729         * src/SDCCopt.c
2730         * src/SDCCast.c
2731         * support/Util/SDCCerr.c
2732         * support/Util/SDCCerr.h
2733         * src/mcs51/gen.c
2734         * src/ds390/gen.c
2735         * src/hc08/gen.c
2736
2737 2003-10-19  Borut Razem <borut.razem AT siol.net>
2738
2739         * src/SDCC.lex: fixed bug #825944 - defined yytext_ptr to make it compile with flex 2.5.31
2740
2741 2003-10-19 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
2742
2743         * src/SDCCicode.c (geniCodePreInc, geniCodePreDec, ast2iCode):
2744         Fixed bug #818696
2745         * src/SDCCast.c (ast_print): Fixed --dumptree so that preincrement
2746         and predecrement operand is displayed
2747
2748 2003-10-13 Bernhard Held <bernhard AT bernhardheld.de>
2749
2750         * src/SDCCval.c (valMinus): fixed bug #826041
2751
2752 2003-10-15 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
2753
2754         Some hc08 related updates that I missed earlier
2755         * sim/ucsim/stypes.h
2756         * support/regression/ports/hc08/spec.mk
2757
2758 2003-10-15 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
2759
2760         New target "hc08" for the Motorola 68hc08 family of micros
2761
2762         * configure
2763         * configure.in
2764         * Makefile
2765         * src/hc08/*
2766         * src/SDCCmain.c
2767         * src/port.h
2768         * sim/ucsim/hc08.src/*
2769         * sim/ucsim/configure.in
2770         * src/ucsim/configure
2771         * sim/ucsim/packages_in.mk
2772         * as/hc08/*
2773         * as/Makefile
2774         * device/include/mc68hc908qy.h
2775         * device/lib/hc08/*
2776         * device/lib/Makefile.in
2777         * support/regression/ports/hc08/*
2778         * support/regression/Makefile
2779
2780 2003-10-14 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
2781
2782         * src/z80/gen.c: fixed bug revealed by ast_constant_folding.c
2783         regression test
2784         * src/ds390/gen.c (genCast): fixed bug #821957
2785
2786 2003-10-13 Bernhard Held <bernhard AT bernhardheld.de>
2787
2788         * device/lib/logf.c: "fixed" overlay bug
2789         * support/regression/ports/host/spec.mk: added m library
2790         * support/regression/ports/mcs51-stack-auto/spec.mk: added float funcs
2791         * support/regression/tests/float_trans: added (for Eric)
2792
2793 2003-10-12 Bernhard Held <bernhard AT bernhardheld.de>
2794
2795         * src/mcs51/gen.c (genCpl): fixed bug
2796         http://sf.net/mailarchive/message.php?msg_id=6263915
2797
2798 2003-10-10 Bernhard Held <bernhard AT bernhardheld.de>
2799
2800         * src/SDCCast.c (decorateType): added extended constant folding
2801         * src/SDCCsymt.c (computeType): cleanup
2802         * src/SDCCval.c (valShift): minor optimization
2803         * support/regression/tests/ast_constant_folding.c: added
2804
2805 2003-10-09  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
2806
2807         * src/SDCCmain.c: removed some unintended changes
2808
2809 2003-10-09  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
2810
2811         * src/SDCCmain.c (setParseWithComma): fixed bug #816685
2812         * src/z80/gen.c: fixed part of bug #817589
2813         * src/SDCCsymt.c (checkFunction): fixed bug #817895
2814
2815 2003-10-08 Bernhard Held <bernhard AT bernhardheld.de>
2816
2817         Replaced cast (void **) with (void *) to avoid gcc 3 warning:
2818         * src/SDCCcflow.c
2819         * src/SDCCcse.c
2820         * src/SDCCdflow.c
2821         * src/SDCClabel.c
2822         * src/SDCClrange.c
2823         * src/SDCCmem.c
2824         * src/SDCCopt.c
2825         * src/SDCCpeeph.c
2826         * src/SDCCset.c
2827         * src/avr/ralloc.c
2828         * src/ds390/ralloc.c
2829         * src/izt/ralloc.c
2830         * src/mcs51/ralloc.c
2831         * src/pic/ralloc.c
2832         * src/pic16/ralloc.c
2833         * src/xa51/ralloc.c
2834         * src/z80/ralloc.c
2835         * src/z80/gen.c: removed unused label "release:"
2836
2837 2003-10-06  Borut Razem <borut.razem AT siol.net>
2838
2839         * src/SDCC.lex: removed definition of unused variables
2840           save_optimize and save_options
2841
2842 2003-10-06 Bernhard Held <bernhard AT bernhardheld.de>
2843
2844         * clean.mk: removed '=' in "-maxdepth=1"
2845         * src/SDCCloop.c: replace LRKLAUS with SDCC_LRKLAUS
2846         * src/SDCClrange.c: replace LRKLAUS with SDCC_LRKLAUS
2847
2848 2003-10-06  Borut Razem <borut.razem AT siol.net>
2849
2850         * src/SDCC.lex, src/SDCC.lex: use dbuf for "_asm" definitions;
2851           my_unput() replaced by unput()
2852
2853 2003-10-05 Bernhard Held <bernhard AT bernhardheld.de>
2854
2855         * src/SDCCloop.c (assignmentsToSym, loopInduction): cast argument of
2856         setToNull() to (void *) to avoid gcc3.x's warning: "dereferencing
2857         type-punned pointer will break strict-aliasing rules"
2858         Old LR behaviour is again default; Klaus' LR can be choosen by
2859         defining the environment variable LRKLAUS
2860         * src/SDCCBBlock.h
2861         * src/SDCCloop.c
2862         * src/SDCClrange.c
2863         * src/ds390/ralloc.c (spillThis): applied Klaus' patch
2864         * clean.mk: fixed removal of files in bin/CVS/
2865         * device/lib/clean.mk: fixed removal of directories small and large
2866         * support/Util/SDCCerr.c: changed W_INT_OVL to ERROR_LEVEL_PEDANTIC
2867         * src/SDCCicode.c,
2868         * src/SDCCval.c: removed superflous test for pedantic
2869
2870 2003-10-05  Borut Razem <borut.razem AT siol.net>
2871
2872         * src/SDCC.lex, support/Util/SDCCerr.c, sdcc/support/Util/SDCCerr.h:
2873           Fixed bug #816692: introduced new ERROR_LEVEL_PEDANTIC warning
2874           message "unmatched #pragma SAVE and #pragma RESTORE"
2875
2876 2003-10-04  Frieder Ferlemann <Frieder.Ferlemann AT web.de>
2877
2878         * doc/sdccman.lyx: various additions and updates (interrupts, inline
2879           assembly, critical functions, atomic, nojtbound)
2880
2881 2003-10-04 Bernhard Held <bernhard AT bernhardheld.de>
2882
2883         Applied liferange patch from Klaus Flittner <klaus_flittner AT gmx.de>
2884         * src/SDCCBBlock.h
2885         * src/SDCCloop.c
2886         * src/SDCCloop.h
2887         * src/SDCClrange.c
2888
2889 2003-10-03  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
2890
2891         * src/z80/gen.h,
2892         * src/z80/gen.c (aopOp, aopGet, aopPut, genDummyRead),
2893         * src/mcs51/gen.h
2894         * src/mcs51/gen.c (aopOp, aopGet, aopPut, genDummyRead),
2895         * src/ds390/gen.h
2896         * src/ds390/gen.c (aopOp, aopGet, aopPut, genDummyRead),
2897         * src/SDCCicode.c (ast2iCode, geniCodeDummyRead): Fixed bug #663539
2898         * src/SDCCopt.c (killDeadCode): Fixed bugs #663539 & #816705
2899
2900 2003-10-02  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
2901
2902         * src/z80/gen.c (genRet): fixed bug #524753
2903         * src/z80/gen.c (genCast): fixed internal error on cast from
2904         pointer to long
2905         * src/z80/gen.c (_saveRegsForCall, emitCall): adapted Johan's
2906         fix for bug #477835 to the z80
2907         * src/z80/gen.c (genZ80code, _vemit2, _emit2): added support
2908         for tracking iCodes in the peephole optimizer for z80
2909
2910 2003-10-01  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
2911
2912         * src/SDCCicode.c (geniCodeJumpTable, geniCodeSwitch): fixed
2913         the other part of bug #814548
2914         * src/SDCCpeeph.c (labelInRange): fixed bug #814558
2915
2916 2003-09-30  Bernhard Held <bernhard AT bernhardheld.de>
2917
2918         * src/SDCCcse.c: fixed part of bug #814548
2919
2920 2003-09-28  Borut Razem <borut.razem AT siol.net>
2921
2922         * src/asm.c: rewrite of printILine() to use temporary file instead
2923           a pipe
2924         * src/xa51/main.c: commented out declaration of int rewinds
2925
2926 2003-09-27  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
2927
2928         * src/SDCCicode.c (geniCodeJumpTable): Fixed bug #813206
2929
2930 2003-09-26  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
2931
2932         * src/SDCCdflow.c (computeDataFlow): Fixed bug #810746
2933         * src/asm.c (printILine): Fixed bug #811015
2934
2935 2003-09-22  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
2936
2937         *link/z80/lklibr.c, as/mcs51/lklibr.c: Improved memory allocation and
2938         freeing.
2939
2940 2003-09-21  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
2941
2942         * src/z80/gen.c (setupToPreserveCarry): Fixed bug #796955
2943         * src/z80/gen.c (setupPair, genMovePairPair): Fixed setupPair
2944         to correctly handle general case of AOP_PAIRPTR
2945         * src/z80/gen.c (aopGet, aopPut): Generalized AOP_PAIRPTR handling
2946
2947 2003-09-21  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
2948
2949         * src/mcs51/ralloc.c (fillGaps),
2950         * src/ds390/ralloc.c (fillGaps): fixed bug #810093 (yet another
2951         register positioning bug)
2952
2953 2003-09-21  Bernhard Held <bernhard AT bernhardheld.de>
2954
2955         * device/lib/_fsdiv.c: replaced (1<<31) by (1ul<<31)
2956
2957 2003-09-19  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
2958
2959         * src/mcs51/gen.c (loadDptrFromOperand, genFarPointerGet,
2960         genCodePointerGet, genGenPointerGet, genFarPointerSet,
2961         genGenPointerSet): handle AOP_DPTR correctly when loading dptr
2962         (ralloc doesn't intentionally do this now, but perhaps later)
2963         * src/mcs51/ralloc.c (serialRegAssign, fillGaps),
2964         * src/ds390/ralloc.c (serialRegAssign, fillGaps): fixed some
2965         register positioning bugs (Fixed bug #762602 and #795325)
2966         * src/SDCCicode.c (geniCodeDerefPtr): Track output class correctly
2967         (Fixed bug #808779)
2968         * src/z80/gen.c: increased _vemit2's buffer[] to handle long
2969         lines that --i-code-in-asm generates
2970
2971 2003-09-18  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
2972
2973         *link/z80/lklibr.c, as/mcs51/lklibr.c: Fixed Linux segfaults when
2974         trying to fclose a FILE* that was already closed.
2975
2976 2003-09-18  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
2977
2978         * src/SDCCsymt.c (structElemType): fixed bug #808291 (members
2979         of const struct should be treated as if const themselves)
2980
2981 2003-09-18  Bernhard Held <bernhard AT bernhardheld.de>
2982
2983         * src/SDCCval.c (valPlus, valMinus): fixed bug #808337
2984
2985 2003-07-06  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
2986
2987         * support/librarian/sdcclib.c: Generate correct offsets for libraries with
2988         Unix (/n) and DOS (/r/n) line terminations.
2989
2990 2003-09-17  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
2991
2992         * src/SDCCopt.c (cnvFromFloatCast, cnvToFloatCast): fixed
2993         bug #613775
2994
2995 2003-09-16  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
2996
2997         * src/mcs51/gen.c (genFunction, genEndFunction),
2998         * src/ds390/gen.c (genFunction, genEndFunction): Moved save
2999         and restore of EA so that stack offsets to parameters are
3000         correct when using both critical and reentrant/stack-auto.
3001         * src/z80/gen.c (aopOp): removed erroneous assertion about sloc
3002         size (can be triggered in error if sloc is shared between
3003         different sized objects)
3004         * device/include/float.h: fixed macros to explicitly use
3005         unsigned long where needed
3006
3007 2003-09-15  Bernhard Held <bernhard AT bernhardheld.de>
3008
3009         Feature req. 799831: added code to allow nesting of critical functions
3010         * src/mcs51/gen.c (genFunction, genEndFunction)
3011         * src/ds390/gen.c (genFunction, genEndFunction)
3012
3013 2003-09-14  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
3014
3015         * src/SDCCsymt.c (sclsFromPtr),
3016         * src/SDCCsymt.h,
3017         * src/SDCCast.c (decorateType): fixed bug #462971. Also, better
3018         support for standard C idiom of memory mapped variables; for
3019         example, *((xdata int*)0x1234) = 1 is now internally equivalent
3020         to xdata int at 0x1234 tempvar = 1.
3021         * sim/ucsim/z80.src/inst_xd.cc: fixed bug #805483 with patch
3022         provided by Akiya ISHIDA
3023
3024 2003-09-13  Bernhard Held <bernhard AT bernhardheld.de>
3025
3026         * src/SDCCval.c (cheapestVal): reenabled to reduce int to char
3027         * src/SDCCval.c (constVal): added reduction from int to char
3028         * src/SDCCval.c (valMult, valDiv): fixed sign handling
3029         * src/SDCCval.c (valShift): fixed after change of cheapestVal()
3030         * src/SDCCval.c (valCompare): fixed EQ_OP and NE_OP; they have
3031         to ignore the sign
3032         * support/regression/tests/shifts.c: fixed
3033
3034 2003-09-13  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
3035
3036         * src/z80/gen.c (genXor): Fixed bug #805445
3037
3038 2003-09-12  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
3039
3040         Fixed bug #621531 (const & volatile confusion in the type chain).
3041         DCL_PTR_CONST, DCL_PTR_VOLATILE, & IS_PTR_CONST now exclusively
3042         refer to the const or volatile state of the pointer itself.
3043
3044         * src/SDCCast.c
3045         * src/SDCCglue.c
3046         * src/SDCCicode.c
3047         * src/SDCCsymt.c
3048         * src/SDCCval.c
3049         * src/SDCC.y
3050         * src/SDCCsymt.h
3051         * src/pic/gen.c
3052         * src/pic/ralloc.c
3053         * src/pic16/gen.c
3054         * src/pic16/ralloc.c
3055         * support/regression/tests/const.c
3056
3057 2003-09-10  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
3058
3059         When checking for duplicated modules, use absolute paths
3060         instead of relative paths.  Files changed:
3061
3062         * as/mcs51/lklib.c
3063         * link/z80/lklib.c
3064
3065 2003-09-09  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
3066
3067         * src/SDCCicode.c (geniCodeLogic): fixed bug #797572
3068
3069 2003-09-07  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
3070
3071         * device/include/string.h: added size_t typedef, changed
3072         prototypes to use size_t, eliminated separate reentrant and
3073         non-reentrant declarations, added _memmove declaration
3074         * device/lib/_memcpy.c: changed to use size_t instead of int,
3075         changed /4 to >>2 to avoid division library call
3076         * device/lib/_memcmp.c,
3077         * device/lib/_memset.c,
3078         * device/lib/_strncat.c,
3079         * device/lib/_strncpy.c,
3080         * device/lib/_strncmp.c: changed to use size_t instead of int
3081         * device/lib/_memmove.c: new file (fixed bug #772294)
3082         * device/lib/Makefile.in: added _memmove.c
3083         * device/lib/z80/asm_strings.s: fixed bug #772290
3084         * support/regression/tests/bitfields.c: attempt to fix host assertion
3085         failure on amd64-unknown-linux2.2
3086
3087 2003-09-06  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
3088
3089         * src/z80/gen.c (aopPut, spillPairReg): fixed bug #800998
3090         * src/z80/gen.c (genFunction, genEndFunction): fixed "bug" #774700
3091         * as/z80/asmain.c (main): fixed bug #801766
3092
3093 2003-09-06  Bernhard Held <bernhard AT bernhardheld.de>
3094
3095         * src/SDCCicode.c (ast2iCode): fixed differences in iCode with different
3096         compilers
3097
3098 2003-09-05  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
3099
3100         * src/SDCCast.c (isConformingBody): fixed loop reversal bug
3101         reported in bug #800609
3102
3103 2003-09-04  Vangelis Rokas <vrokas AT otenet.gr>
3104
3105         * Top header beautifications in src/pic16 directory:
3106           device.c, device.h, gen.c, gen.h, genarith.c, glue.c, pcode.c,
3107           pcodeflow.c, pcodeflow.h, pcode.h, pcodepeep.c, pcoderegs.c,
3108           pcoderegs.h, ralloc.c, ralloc.h
3109         * main.c: added top header and GPL license notice
3110         * pcode.c: fixed the if-conditional warning
3111
3112 2003-09-04  Bernhard Held <bernhard AT bernhardheld.de>
3113
3114         * device/lib/_mullong.c: replaced int by short for gcc
3115
3116 2003-08-31  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
3117
3118         * src/SDCCpeeph.c (notVolatile, notVolatileVariable): handle IFX
3119         and JUMPTABLE iCodes properly now (worked by accident before)
3120         * src/mcs51/gen.c (leftRightUseAcc),
3121         * src/ds390/gen.c (leftRightUseAcc): handle IFX and JUMPTABLE
3122         iCode properly now. Use getSize instead of nRegs since a & b
3123         aren't part of the nRegs tally.
3124
3125 2003-08-31  Vangelis Rokas <vrokas AT otenet.gr>
3126
3127         * src/pic16/main.c: corrected offsets of interrupt vectors in _pic16_genIVT()
3128         * src/pic16/pcode.c: fix to disable inserting BANKSEL directive
3129           before instructions that use the _STATUS register
3130
3131 2003-08-31  Bernhard Held <bernhard AT bernhardheld.de>
3132
3133         * src/mcs51/gen.c (freeAsmop): fixed off by one in stack offset (AOP_STK)
3134         * src/mcs51/gen.c (genNearPointerSet): added missing opcode for
3135         fetching of the pointer
3136         * src/mcs51/gen.c (genNearPointerGet): added reuse of PREG,
3137         copied from genNearPointerSet()
3138         * src/mcs51/gen.c (genNearPointerGet): don't pop r0/r1, if RESULTONSTACK
3139         * src/mcs51/gen.c: changed order of freeAsmop(left/right/result)-calls.
3140         If they pop r0/r1 they must be called in the opposite order than aopOp().
3141         * device/lib/_mullong.c: fixed for "--model-large --int-long-reent"
3142         (resp. --stack-auto), prepared for --xstack
3143
3144 2003-08-28  Frieder Ferlemann <Frieder.Ferlemann AT web.de>
3145
3146         * doc/sdccman.lyx: reverted tables to those in cvs 1.64
3147
3148 2003-08-28  Bernhard Held <bernhard AT bernhardheld.de>
3149
3150         * device/lib/_startup.c: quick & dirty fix for ds390/ds400;
3151         these ports have their own __sdcc_external_start()
3152
3153 2003-08-26  Bernhard Held <bernhard AT bernhardheld.de>
3154
3155         pic patch provided by Slade Rich <slade_rich AT yahoo.com>
3156         * src/pic/glue.c (pic14printPublics): fixed bug introduced when symbol
3157         type for bits was changed. It resulted in bit variables becoming
3158         global, which is not permitted in PIC 14 assembly output.
3159
3160 2003-08-23  Frieder Ferlemann <Frieder.Ferlemann AT web.de>
3161
3162         * doc/sdccman.lyx: various additions and updates. Rearranged sections
3163
3164 2003-08-22  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
3165
3166         Z80 and MCS51 linkers complaint if a public symbol is defined
3167         in more than one library module:
3168
3169         * as/mcs51/lklib.c
3170         * link/z80/lklib.c
3171         * as/mcs51/Makefile.in
3172
3173 2003-08-22  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
3174
3175         A few small changes that speed up the peephole optimizer.
3176
3177         * src/SDCCpeeph.c
3178
3179 2003-08-22  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
3180
3181         Try to make the peephole optimizer smarter by maintaining
3182         an association between the assembly source code and the
3183         iCodes that originated them. Put this information to use
3184         with a new peephole rule condition "notVolatile" so that
3185         the rules can be aggressive yet still safe.
3186
3187         * src/SDCCpeeph.c
3188         * src/SDCCpeeph.h
3189         * src/mcs51/gen.c
3190         * src/mcs51/peeph.def
3191
3192 2003-08-20  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
3193
3194         Fixed bug #741761
3195
3196         * src/mcs51/gen.c (aopForSym, leftRightUseAcc),
3197         * src/ds390/gen.c (aopForSym, leftRightUseAcc): preserve A and B
3198         if the left or right operand symbols have the accuse flag set.
3199
3200 2003-08-20  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
3201
3202         Changed the type of the result of the ! (NOT) operator to char;
3203         previously it returned the same type as the source. This allows
3204         us to eliminate all the genFloatNot functions (all of its target
3205         implementations were very buggy) since !float can use the same
3206         code as !long now.
3207
3208         * src/SDCCicode.c (ast2iCode): ! returns char
3209         * src/mcs51/gen.c (genNot, genNotFloat),
3210         * src/ds390/gen.c (genNot, genNotFloat),
3211         * src/z80/gen.c (genNot, genNotFloat),
3212         * src/pic/gen.c (genNot, genNotFloat),
3213         * src/pic16/gen.c (genNot, genNotFloat): eliminated genNotFloat
3214
3215 2003-08-19  Bernhard Held <bernhard AT bernhardheld.de>
3216
3217         pic patch provided by Slade Rich <slade_rich AT yahoo.com>
3218         1. Interrupt would not compile properly. Ensure PCLATH register is saved
3219            during interrupts. Ensure WSAVE is located at a shared bank address.
3220         2. Fixed page selection in some places
3221         3. Fixed BTFSS/C to where necessary use registers directly and not simply
3222            the registers name strings.
3223         4. Fixed "signed / unsigned compare" compiler warnings.
3224         5. The PIC port manages its own allocation of the general purpose
3225            registers, but makes no attempt to reuse them. As a result when
3226            compiling it soon runs out of general purpose registers. Some
3227            additional code was added to the files pcode.c and device.c to walk
3228            through the function call tree and rename the registers so that they
3229            get reused.
3230
3231         * src/pic/device.c
3232         * src/pic/gen.c
3233         * src/pic/glue.c
3234         * src/pic/pcode.c
3235         * src/pic/pcode.h
3236         * src/pic/ralloc.c
3237         * src/pic/ralloc.h
3238         * src/pic/genarith.c: Fixed problems with PIC 14 port in functions
3239         genPlus() & genMinus() when the result is the same as left or right
3240
3241 2003-08-18  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
3242
3243         * src/z80/gen.c (isUnsplitable, fetchPairLong): fixed bug #770454
3244
3245 2003-08-18  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
3246
3247         Made bitfield a distinct type from bit so that bitfields
3248         convert as per ANSI C and bits retain their traditional
3249         boolean style behaviour. Implemented bitfield support in
3250         the z80 port.
3251
3252         * src/SDCCsymt.h,
3253         * src/SDCCsymt.c,
3254         * src/SDCCast.c,
3255         * src/cdbFile.c,
3256         * src/mcs51/gen.c,
3257         * src/ds390/gen.c: bit v bitfield split
3258         * src/z80/gen.c: New support for bitfields
3259         * support/regression/tests/bitfields.c: reenabled z80,
3260         added more tests
3261
3262 2003-08-17  Frieder Ferlemann <Frieder.Ferlemann AT web.de>
3263
3264         Rules 246.x, 247.x relate to bitfields, the others speed up
3265         access to xdata mapped I/O devices.
3266
3267         * src/mcs51/peeph.def: added 26 peepholes 246.x - 248.x, 180.x
3268
3269 2003-08-16  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
3270
3271         Cleaned up genPackBits and genUnpackBits and added two helper
3272         functions, emitPtrByteGet & emitPtrByteSet. Added optimizations
3273         for literal assignments in genPackBits (thanks to Frieder for
3274         reminding me).
3275
3276         * src/mcs51/gen.c
3277         * src/ds390/gen.c
3278
3279 2003-08-16  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
3280
3281         Fixed bug #748310 (pointer to function type mishandled when the
3282         function name is omitted). Also fixed a SIGSEGV when a function
3283         attribute (reentrant, etc) is used on a non-function or on a
3284         function but misplaced before the parameter list.
3285
3286         * src/SDCC.y (abstract_declarator, abstract_declaractor2): fixed
3287         bug #748310
3288         * src/SDCC.y (declarator2_function_attributes): avoided SIGSEGV
3289         * support/Util/SDCCerr.h,
3290         * support/Util/SDCCerr.c: Added func attr misuse error msg
3291
3292 2003-08-13  Bernhard Held <bernhard AT bernhardheld.de>
3293
3294         Fixed bug #787649 by anonymous
3295         * src/SDCCglue.c (emitRegularMap): added emission of sloc for func ptr
3296         * src/ds390/gen.c (aopForSym): fixed func ptr in sloc
3297
3298 2003-08-14  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
3299
3300         Fixed numerous bitfield problems.
3301
3302         * src/SDCC.y: More bitfield related error checking
3303         * src/SDCCsymt.h,
3304         * src/SDCCsymt.c (compStructSize): fixed bitfield offset calc
3305         * support/Util/SDCCerr.h,
3306         * support/Util/SDCCerr.c: Added & edited some bitfield err msgs
3307         * src/mcs51/gen.c (genPackBits, genUnpackBits): fixed mask bugs
3308         * src/ds390/gen.c (genPackBits, genUnpackBits): fixed mask bugs
3309         * support/regression/tests/bitfields.c: tests added
3310
3311 2003-08-13  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
3312
3313         Made the constant following the "interrupt" keyword optional. If
3314         omitted, the function will not automatically be given an entry
3315         in the interrupt vector table (similar to #pragma NOIV, but
3316         less syntacticly kludgy). The interrupt number is also now
3317         range checked. Also fixed a bug in the high order bit example
3318         in the manual.
3319
3320         * src/SDCC.y
3321         * src/SDCCmem.c
3322         * src/SDCCglue.c
3323         * src/SDCCsymt.h
3324         * support/Util/SDCCerr.c
3325         * support/Util/SDCCerr.h
3326         * doc/sdccman.lyx
3327
3328 2003-08-13  Bernhard Held <bernhard AT bernhardheld.de>
3329
3330         * src/SDCCcse.c (algebraicOpts): fix bug converting op from value to type
3331         * src/SDCCicode.c (operandOperation): rewritten some ops
3332         (*, ==, unary_minus) to fix possible overflows and to accord with ANSI
3333         * src/SDCCsymt.c (computeType): literals are handled the same way as any
3334         other type
3335         * src/SDCCval.c (cheapestVal): removed, it doesn't accord with ANSI (can
3336         be re-activated by defining REDUCE_LITERALS)
3337         * src/SDCCval.c (constVal): fixed; hex and octal constants can be
3338         unsigned, but are signed by default
3339         * src/SDCCval.c (constVal): rearranged
3340         * src/SDCCval.c (valMod): preliminary fix
3341         * src/SDCCval.c (valCastLiteral): use TYPE_* types
3342         * support/regression/literalop.c: added, work in progress
3343
3344 2003-08-12  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
3345
3346         Generate warnings for useless declarations like "char data;"
3347         that don't do what new users expect.
3348
3349         * src/SDCC.y
3350         * support/Util/SDCCerr.h
3351         * support/Util/SDCCerr.c
3352
3353 2003-08-09  Bernhard Held <bernhard AT bernhardheld.de>
3354
3355         * src/SDCCval.c (valMult): fix overflow detection of negative int
3356
3357 2003-08-07  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
3358
3359         * src/z80/ralloc.c (joinPushes): made compatible with new signedness
3360
3361         Changes to support big endian targets:
3362
3363         * src/ports.h
3364         * src/SDCCglue.c
3365         * src/avr/main.c
3366         * src/ds390/main.c
3367         * src/izt/i186.c
3368         * src/mcs51/main.c
3369         * src/pic/main.c
3370         * src/pic16/main.c
3371         * src/xa51/main.c
3372         * src/z80/main.c
3373
3374 2003-08-06  Bernhard Held <bernhard AT bernhardheld.de>
3375
3376         * src/SDCCval.c (cheapestVal): changed behaviour to the same as constVal()
3377         * device/lib/time.c: fixed warning "integer overflow in expression"
3378
3379 2003-08-05  Bernhard Held <bernhard AT bernhardheld.de>
3380
3381         * src/SDCCval.c (cheapestVal, valueFromLit): use TYPE_* types
3382         * src/SDCCval.c (constVal): changed default to signed; hex and octal
3383         constants are unsigned; added recognition of "u" flag for unsigned
3384         * src/SDCCval.c (valMult): fixed signdness, added warning for overflow
3385         * src/SDCCval.c (valDiv, valMod): fixed signdness
3386         * src/SDCCicode.c (operandOperation): fixed critical typo; fixed
3387         signedness of modulo, left and right shift
3388         * support/Util/SDCCerr.c: added warning "integer overflow in expression"
3389         * support/Util/SDCCerr.h: added warning W_INT_OVL
3390         * src/SDCCast.c (decorateType): fixed gcc3.3 warning
3391         * src/SDCCast.c (ast_print): improved output of constants
3392
3393 2003-08-04  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
3394
3395         Fixed some warnings when building with MSVC:
3396
3397         * as\mcs51\asdata.c
3398         * as\z80\asdata.c
3399         * as\mcs51\asm.h
3400         * as\z80\asm.h
3401         * link\z80\aslink.h
3402         * link\z80\lkdata.c
3403         * link\z80\lkeval.c
3404         * link\z80\lkgb.c
3405         * link\z80\lkihx.c
3406         * link\z80\lks19.c
3407         * link\z80\lksym.c
3408         * support\cpp2\cpplib.c
3409         * src\ds390\gen.c
3410         * src\mcs51\gen.c
3411
3412 2003-08-03  Bernhard Held <bernhard AT bernhardheld.de>
3413
3414         * src/SDCCast.c (constExprTree): fix bug #781827 by Carl Worth <cworth AT isi.edu>
3415
3416 2003-08-01  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
3417
3418         * support\librarian\clean.mk: Do not remove Makefile.
3419         * support\librarian\Makefile: added.
3420
3421 2003-08-01  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
3422
3423         Added librarian to MSVC build:
3424         * all.dsp
3425         * sdcc.dsw
3426         * support\librarian\librarian.dsp
3427
3428         'configure' not needed for librarian, removed:
3429         * support\librarian\configure
3430         * support\librarian\configure.in
3431         * support\librarian\config_in.h
3432         * support\librarian\Makefile.in
3433
3434         Hopefully these ones built the librarian and the rest of sdcc properly:
3435         * Makefile
3436         * Makefile.common.in
3437
3438         Messed up 'configure', so revert to previous version:
3439         * configure
3440         * configure.in
3441
3442 2003-07-31  Bernhard Held <bernhard AT bernhardheld.de>
3443
3444         * src/SDCCicode.c (operandOperation): 3. fix, this time for Alpha; ULONG has 64 bits
3445         there, while the mantissa of a double is "only" 53 bits wide.
3446
3447 2003-07-31  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
3448
3449         Adding sdcclib to the build.  MSVC project coming soon.
3450         Files added/changed:
3451
3452         * support\librarian\clean.mk
3453         * support\librarian\configure
3454         * support\librarian\configure.in
3455         * support\librarian\config_in.h
3456         * support\librarian\Makefile.bcc
3457         * support\librarian\Makefile.in
3458         * support\librarian\sdcclib.c
3459         * Makefile.bcc
3460         * Makefile
3461         * Makefile.common.in
3462         * configure
3463         * configure.in
3464
3465 2003-07-29  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
3466
3467         Linker now complaints if linked modules have conflicting options, for
3468         example, one compiled using --model-large and another one compiled with
3469         --model-small.  The following files were modified:
3470
3471         * as\mcs51\asdata.c
3472         * as\mcs51\aslink.h
3473         * as\mcs51\asm.h
3474         * as\mcs51\asmain.c
3475         * as\mcs51\asout.c
3476         * as\mcs51\i51pst.c
3477         * as\mcs51\lkdata.c
3478         * as\mcs51\lklibr.c
3479         * as\mcs51\lkmain.c
3480         * as\z80\asdata.c
3481         * as\z80\asm.h
3482         * as\z80\asmain.c
3483         * as\z80\asout.c
3484         * as\z80\z80pst.c
3485         * link\z80\aslink.h
3486         * link\z80\lkdata.c
3487         * link\z80\lklibr.c
3488         * link\z80\lkmain.c
3489         * src\SDCCglue.c
3490
3491 2003-07-28  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
3492
3493         *link/z80/aslink.h, link/z80/lklibr.c, as/mcs51/aslink.h,
3494         as/mcs51/lklibr.c: Generate a warning when a library is not found.
3495
3496 2003-07-28  Bernhard Held <bernhard AT bernhardheld.de>
3497
3498         * src/z80/mappings.i: fix _mul[us][int,long] entries
3499
3500 2003-07-26  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
3501
3502         *src/SDCCmain.c: do not search for crt0.o when using --nostdlib
3503
3504 2003-07-24  Bernhard Held <bernhard AT bernhardheld.de>
3505
3506         * src/SDCCicode.c (operandOperation): really fixed problem with bitops
3507         * support/regression/tests/bitopcse.c: added
3508         fixed warning:
3509         * src/avr/gen.c:
3510         * src/pic/gen.c:
3511         * src/pic16/gen.c:
3512         * src/z80/gen.c:
3513         * src/xa51/gen.c:
3514
3515 2003-07-24  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
3516
3517         added support for new library format to z80, gbz80 linkers:
3518         *link/z80/aslink.h
3519         *link/z80/lklex.c
3520         *link/z80/lklib.c
3521         *link/z80/lklist.c
3522
3523 2003-07-24  Bernhard Held <bernhard AT bernhardheld.de>
3524
3525         * src/SDCCicode.c (operandOperation): fixed problem with bitops and 0xffffffff;
3526         after {double d = 0xffffffff; long l = d;} l will be 0x80000000 (LONG_MIN)
3527
3528 2003-07-23  Bernhard Held <bernhard AT bernhardheld.de>
3529
3530         added DUMMY_READ_VOLATILE:
3531         * src/SDCC.y:
3532         * src/avr/gen.c:
3533         * src/xa51/gen.c:
3534         * src/z80/gen.c:
3535         * src/pic/gen.c:
3536         * src/pic16/gen.c:
3537         * src/mcs51/gen.c:
3538         * src/ds390/gen.c:
3539         * src/SDCCcse.c (algebraicOpts): many improvements
3540         * src/SDCCcse.h: removed algebraicOpts()
3541         * src/SDCCicode.c (picDummyRead): added
3542
3543 2003-07-23  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
3544
3545         * as/mcs51/lkmem.c: Changed message "Insufficient DRAM memory" to
3546         "Insufficient space in data memory".
3547
3548 2003-07-20  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
3549
3550         * src/mcs51/gen.c: fixed bug #771358
3551         * src/z80/gen.c: fixed bug #759087
3552
3553 2003-07-20  Bernhard Held <bernhard AT bernhardheld.de>
3554
3555         * src/pic16/glue.c: minor cleanup by Vangelis
3556
3557 2003-07-19  Frieder Ferlemann <Frieder.Ferlemann AT web.de>
3558
3559         * device/include/regc515c.h: fixed #758477
3560         * device/lib/_gptrget.c: saving some cycles in generic pointer get
3561         * device/lib/_gptrput.c: saved a few bytes
3562         * my tab spacing is 8, yours too?)
3563         * device/lib/_ser.c: process RX bytes earlier than TX bytes
3564         * device/lib/serial.c: process RX bytes earlier than TX bytes
3565         * src/mcs51/gen.c(genGenPointerGet/Set): removed writing of type after postincrement
3566
3567 2003-07-18  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
3568
3569         * src/z80/gen.c: fixed some right shift bugs (#772726 among them)
3570
3571 2003-07-17  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
3572
3573     * link/z80/lklibr.c: fixed bug when there is a '.' in a library path.
3574
3575 2003-07-17  Bernhard Held <bernhard AT bernhardheld.de>
3576
3577         * device/lib/Makefile.in: bad fix, reverted to 1.43
3578
3579 2003-07-16  Bernhard Held <bernhard AT bernhardheld.de>
3580
3581         * device/lib/Makefile.in: added missing z80 object files
3582
3583 2003-07-14  Bernhard Held <bernhard AT bernhardheld.de>
3584
3585         * src/SDCCcse.c (algebraicOpts): CSE fun with &|^ and 0x00/0xff literals
3586         pic16 progress by Vangelis:
3587         * src/SDCCglobl.h:
3588         * src/SDCCmain.c:
3589         * src/pic/Makefile:
3590         * src/pic:
3591         * pic/Makefile:
3592         * pic16/device.c:
3593         * pic16/device.h:
3594         * pic16/gen.c:
3595         * pic16/gen.h:
3596         * pic16/genarith.c:
3597         * pic16/glue.c:
3598         * pic16/main.c:
3599         * pic16/pcode.c:
3600         * pic16/pcode.h:
3601         * pic16/pcodepeep.c:
3602         * pic16/peeph.def:
3603
3604 2003-07-13  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
3605
3606     * src/SDCCmain.c, src/SDCCglobl.h: added option --no-std-crt0
3607
3608 2003-07-12  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
3609
3610     * sdcc.dsw, all.dsp, link/z80/linkgbz80.dsp, as/z80/as-gbz80.dsp:
3611     added gbz80 build to MSVC project.
3612     * src/SDCCmain.c, src/SDCCglue.c, src/z80/main.c, src/z80/z80.dsp,
3613     link/z80/aslink.h, linkz80.dsp: cleaned up z80 and gbz80 asm files
3614     from 8051 stuff and setup so it links using a .lnk file.
3615
3616 2003-07-06  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
3617
3618     * support/librarian/sdcclib.c: sdcc librarian.
3619     * as/mcs51/aslink.h, as/mcs51/lklib.c: Support for libraries created
3620     with sdcclib.
3621
3622 2003-07-03  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
3623
3624     * as/mcs51/lkmain.c: properly handle extensions in function afile.
3625
3626 2003-07-02  Borut Razem <borut.razem AT siol.net>
3627
3628         * src/port.h, src/SDCCmain.c, src/pic/glue.h, src/pic/main.c,
3629         src/pic16/glue.h, sdcc/src/pic16/main.c, src/izt/i186.c,
3630         src/izt/tlcs900h.c, src/avr/main.c, src/ds390/main.c, src/mcs51/main.c,
3631         src/xa51/main.c, src/z80/main.c:
3632         virtualization of glue() function: each port has it's own glue function,
3633         which is accessed by do_glue function pointer in PORT.general structure
3634
3635 2003-07-01 Kevin Vigor <kevin AT vigor.nu>
3636
3637         * DS800C400 fun, improved ROM interface and tinibios.
3638
3639 2003-06-27 Kevin Vigor <kevin AT vigor.nu>
3640
3641         * More support for DS80C400. Now includes beginning of interface to ROM.
3642
3643 2003-06-25  Bernhard Held <bernhard AT bernhardheld.de>
3644
3645         * src/mcs51/gen.c (gencjneshort): fixed bug #760345
3646
3647 2003-06-20  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
3648
3649         * as/mcs51/lkaomf51.c: Make sure the size of the last procedure is correct.
3650
3651 2003-06-19  Borut Razem <borut.razem AT siol.net>
3652
3653         * src/z80/main.c: fixed Z80 port again: missing -k library paths in linker command line
3654
3655 2003-06-19  Borut Razem <borut.razem AT siol.net>
3656
3657         * src/SDCCutil.h, src/SDCCutil.c, src/SDCCglobl.h, src/SDCCmain.c, src/z80/main.c:
3658         fixed Z80 port - crt0.o: cannot open.
3659
3660 2003-06-19  Bernhard Held <bernhard AT bernhardheld.de>
3661
3662         * support/Util/MySystem.c (merge_command): revert bad fix
3663
3664 2003-06-18  Borut Razem <borut.razem AT siol.net>
3665
3666         * src/SDCC.lex, src/SDCCmain.c: fixed some warnings, introduced with changes made 15.06.1003
3667
3668 2003-06-18  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
3669
3670         * src/SDCCglobl.h, src/SDCCmain.c, doc/sdccman.lyx:
3671         option --use-stdout sends errors to stdout instead of stderr.
3672
3673 2003-06-18  Bernhard Held <bernhard AT bernhardheld.de>
3674
3675         * support/Util/MySystem.c (merge_command): quick fix for Linux segfault with \"cmd\" arg
3676
3677 2003-06-15  Borut Razem <borut.razem AT siol.net>
3678
3679         * support/cpp2/sdcc.h: HAVE_DOS_BASED_FILE_SYSTEM defined for _WIN32
3680         * src/SDCC.lex: cloneXxx and copyAndFreeXxx functions for options and optimize stack handling
3681         * src/SDCCglobl.h, src/SDCCmain.c, src/ds390/main.c, src/mcs51/main.c, src/z80/main.c:
3682         fixed width array of pointers replaced with sets;
3683         multiple include and lib paths ared transferred to preprocessor and linker
3684         * src/SDCCset.c, src/SDCCset.h: added function setFromSetNonRev() and mergeSets()
3685         * src/SDCCsymt.c: reimplemented function inCalleeSaveList() by using sets instead
3686         fixed width array of pointers
3687         * src/SDCCutil.c, src/SDCCutil.h: added functions fputStrSet(), appendStrSet(), joinStrSet();
3688         removed functions addToList(), join(), joinn(), pathCharsEquivalent(), pathCharTransform(),
3689         fixupPath(), getPathDifference()
3690         * src/ds390/gen.c, src/mcs51/gen.c: reimplemented function  inExcludeList() by using sets instead
3691         fixed width array of pointers
3692
3693 2003-06-11  Bernhard Held <bernhard AT bernhardheld.de>
3694
3695         * src/pic16/ralloc.c: fix warnings
3696         * src/pic16/pcode.c: fix warning
3697
3698 2003-06-10  Scott Dattalo  <scott AT dattalo.com>
3699
3700          Scott D. for Vangelis Rokas (vrokas AT otenet.gr). I (scott) don't
3701         know all the details, but essentially this set of changes enable
3702         the pic16 port to generate movff instructions and generate assembler
3703         directives,
3704         * src/SDCCmain.c:
3705         * src/pic16/gen.c:
3706         * src/pic16/glue.c:
3707         * src/pic16/pcode.c:
3708         * src/pic16/device.c:
3709         * src/pic16/main.c:
3710         * src/pic16/pcode.h:
3711         * src/pic16/pcoderegs.c:
3712         * src/pic16/ralloc.c:
3713         * src/pic16/ralloc.h:
3714
3715 2003-06-08  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
3716
3717         * support/Util/SDCCerr.c, src/SDCCglobl.h, src/SDCCmain.c, doc/sdccman.lyx:
3718         added option --vc, so sdcc errors and warnings are compatible with
3719         Microsoft Visual Studio.
3720
3721 2003-06-07  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
3722
3723         * device/lib/_atof.c, device/lib/Makefile.in, device/include/stdlib.h,
3724           device/lib/libfloat.lib: added atof function.
3725
3726 2003-06-04  Bernhard Held <bernhard AT bernhardheld.de>
3727
3728         * doc/sdccman.lyx: updated to Lyx 1.3
3729         * doc/cdbfileformat.lyx: updated to Lyx 1.3
3730         * doc/test_suite_spec.lyx: updated to Lyx 1.3
3731         * doc/Makefile: added fix for the \tabularnewline problem, thanks to Jesus
3732
3733 2003-06-03  Bernhard Held <bernhard AT bernhardheld.de>
3734
3735         * src/SDCCpeeph.c: separate peepRules2pCode() for pic16 by "Vangelis Rokas" <vrokas AT otenet.gr>
3736
3737 2003-06-02  Frieder Ferlemann <Frieder.Ferlemann AT web.de>
3738
3739         * doc/sdccman.lyx: cvs revision keywords, passing pdf information in latex preamble,
3740           additions to the "related tools/documentation" section
3741
3742 2003-06-02  Bernhard Held <bernhard AT bernhardheld.de>
3743
3744         * src/SDCCglue.c (tempfileandname): added check for missing TMP/TEMP/TMPDIR variable
3745
3746 2003-05-29  Bernhard Held <bernhard AT bernhardheld.de>
3747
3748         * src/pic/device.c: added 16F819, patch by "David I. Lehn" <dlehn AT vt.edu>
3749         * src/SDCCcse.c (algebraicOpts): fixed "c * 1"
3750
3751 2003-05-28  Bernhard Held <bernhard AT bernhardheld.de>
3752
3753         * doc/sdccman.lyx: fix double dash and other minor things
3754         * doc/Makefile: fix double dash
3755
3756 2003-05-28  Karl Bongers(patches from Martin Helmling)
3757         * debugger/mcs51/sdcdb.c,cmd.c,break.c and .h files. Martin adds
3758           condition and ignore commands.
3759
3760 2003-05-28  Frieder Ferlemann <Frieder.Ferlemann AT web.de>
3761
3762         * doc/sdccman.lyx: Changes all over, index improved, smaller margins. The manual
3763           is in parts still quite out of date, I did changes as far as I felt makes sense
3764           for a non-native english speaker.
3765           Please feel free to add to the manual or to correct my changes.
3766         * doc/Makefile: undid touching the date of intermediate tex files.
3767
3768 2003-05-26  Frieder Ferlemann <Frieder.Ferlemann AT web.de>
3769
3770         * doc/sdccman.lyx: Manual has an index now
3771
3772 2003-05-25  Bernhard Held <bernhard AT bernhardheld.de>
3773
3774         Finalize muluint/mulsint and mululong/mulslong merging:
3775         * device/lib/_mulint.c
3776         * device/lib/_mullong.c
3777         * device/lib/gbz80/mul.s
3778         * device/lib/gbz80/stubs.s
3779         * device/lib/z80/mul.s
3780         * device/lib/z80/stubs.s
3781         * src/SDCCsymt.c (initCSupport)
3782
3783 2003-05-25  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
3784
3785         * as/mcs51/lkaomf51.c: Address space 'z' was missing.
3786         * src/avr/avr.dsp, src/ds390/ds390.dsp, src/mcs51/mcs51.dsp,
3787           src/pic/pic.dsp, src/pic16/pic16.dsp, src/xa51/xa51.dsp,
3788           src/x80/z80.dsp: peep.rul is bigger now, so /Zm1000 is used
3789           instead of /Zm500.
3790
3791 2003-05-25  Frieder Ferlemann <Frieder.Ferlemann AT web.de>
3792
3793         * src/mcs51/peeph.def: added rules 244.x, 245.x. Although they pass
3794           the regression tests I'm not brave enough to enable 245.b, 245.c
3795         * doc/sdccman.lyx: added latex preamble for hyperref package.
3796           Using pdflatex this will give you a hyperlinked pdf file with
3797           bookmarks. (prepend '%' before /usepackage if this breaks something)
3798
3799 2003-05-24  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
3800
3801          * doc/sdccman.lyx: updated information about .adb files (fixed bug 742649)
3802
3803 2003-05-22  Bernhard Held <bernhard AT bernhardheld.de>
3804
3805         * src/pic16/pcode.c (pic16_get_op_from_instruction): fixed a gcc 3.x warning
3806
3807 2003-05-21    <johan AT balder>
3808
3809         * src/SDCCglue.c (printIval): fixed bug #739934
3810
3811 2003-05-19  Bernhard Held <bernhard AT bernhardheld.de>
3812
3813         Applied patch from bug 737905 (renamed yylineo to mylineno):
3814         * src/altlex.c
3815         * src/SDCCast.c
3816         * src/SDCglobl.h
3817         * src/SDCC.lex
3818         * src/SDCCsymt.c
3819         * src/SDCCval.c
3820         * src/pic16/pcode.c: Cleaned warnings
3821         * src/pic16/pcodeflow.c: Cleaned warnings
3822         * src/pic16/pcoderegs.c: Cleaned warnings
3823
3824 2003-05-19  Scott Dattalo  <scott AT dattalo.com>
3825
3826         * src/pic16/pcode.c: Cleaned warnings
3827         * src/pic16/pcodepeep.c: Cleaned warnings
3828         * src/pic16/ralloc.c: Cleaned warnings
3829
3830 2003-05-19  Bernhard Held <bernhard AT bernhardheld.de>
3831
3832         * doc/sdccman.lyx: fixed bug 739745
3833         * src/pic16/pcode.c (pic16_get_op): fixed warning on alpha
3834
3835 2003-05-18  Bernhard Held <bernhard AT bernhardheld.de>
3836
3837         * src/port.h: removed DEFAULT_PORT, it's not yet pic16 ;-)
3838         it can be defined with CFLAGS when running configure
3839         * src/SDCCmain.c: fixed compiling + linking with object files
3840
3841 2003-05-18  Vangelis Rokas (vrokas AT otenet.gr)
3842
3843         * configure.in: configure for pic16 port,
3844             added --disable-pic16-port
3845         * sdccconf_in.h: added macro OPT_DISABLE_PIC16
3846         * src/SDCCmain.c: linkOptions is changed to set *,
3847             added if/endif conditional macros to remove options help
3848             messages from optionsTable when a port is not configured, added
3849             support for the PIc16 port in the ports table, when executing
3850             the compiler with no port specified on command line, a default
3851             port is selected with the new macro DEFAULT_PORT which is
3852             defined in port.h, in setDefaultOptions() linkOptions is removed
3853             from initialization assignment, since now it is a set,
3854             parseCmdLine uses setParseWithComma for linkOptions, in
3855             linkEdit() linkOptions are accessed with new function indexSet()
3856             which returns the i'th item of a set variable. See SDCCset.c, in
3857             linkEdit() when calling buildCmdLine(), added linkOptions as
3858             last argument. Now users can pass arguments to gplink via the
3859             -Wl option, main() uses pic16glue() to glue up pic16 programs
3860         * src/SDCCpeeph.c: various changes to support pic16
3861         * src/SDCCset.c: added function  void *indexSet(set *, int)  to
3862             return the i'th item of the set
3863         * src/SDCCset.h: added function prototype for indexSet()
3864         * src/SDCCsymt.c: in checkSClass(), added support for PIC16
3865         * src/clean.mk: added pic16 in CLEANALLPORTS variable
3866         * src/port.h: added TARGET_ID_PIC16,TARGET_IS_PIC16 macro,
3867             added macro DEFAULT_PORT
3868         * src/pic/main.c: corrected arguments of gplnk in _linkCmd
3869         * src/pic16/gen.c: bug fix in genCpl(), now the correct code is
3870             generated
3871         * src/pic16/glue.c: commented out some error producing lines
3872         * src/pic16/main.c: __config directives are commented out to stop
3873             gpasm complaining and test the linkage with gplink, _linkCmd and
3874             _asmCmd changed to be more gplink and gpasm friendly
3875         * src/pic16/peeph.def: peep rule 3 is commented out, since it
3876             produced an error when parsed, peep rule 12 is added to utilize
3877             movff, but it is commented out since the pCode does not support
3878             yet a command with 2 address arguments
3879
3880 2003-05-18    <johan AT balder>
3881
3882         * src/ds390/gen.c (genArrayInit): removed obsolete and buggy ARRAYINIT
3883         * src/ds390/main.c (genArrayInit): removed obsolete and buggy ARRAYINIT
3884 2003-05-17  Karl Bongers(apply patches from Martin Helmling)
3885
3886         * debugger/mcs51/sdcdb.c,cmd.c,break.c and .h files.
3887   Added feature to script commands from file.
3888
3889 2003-05-14  Bernhard Held <bernhard AT bernhardheld.de>
3890
3891         * device/lib/_strtok.c: fixed bug #734355 by Lenny Story and Tim Woodall
3892         * src/SDCCutil.c: include ctype.h for win32
3893
3894 2003-05-13  Bernhard Held <bernhard AT bernhardheld.de>
3895
3896         * src/pic16/*: removed CR from many files, reported by Vangelis Rokas
3897
3898 2003-05-12  Karl Bongers(apply development patches from Martin Helmling)
3899
3900         * debugger/mcs51/sdcdb.c,simi.c,cmd.c,break.c and .h files.
3901   Fixed so you can set breakpoints prior to run, run does not stop
3902   on entry now.  Add tbreak.  Other enhancements and fixes for use
3903   with ddd.
3904
3905 2003-05-12  Borut Razem <borut.razem AT siol.net>
3906
3907         * src/SDCCmain.c: fixed the problem with searching the DATADIR as the last resort on *nix
3908
3909 2003-05-11  Borut Razem <borut.razem AT siol.net>
3910
3911         * src/SDCCutil.c: WIN32 version of getBinPath() calls GetModuleFileName() to determine
3912         the path of bin directory, so that PATH is the only env. variable, which has to be set
3913         in case of standard installation.
3914         * src/ds390/ds390.dsp: increased value of /Zm option to 1000
3915         * src/pic/main.c: add quotes to file name parameters for gplink and gpasm
3916         * src/SDCCglobl.h, src/SDCCmain.c, doc/sdccman.lyx: added --print-search-dirs command line option
3917
3918 2003-05-04  Bernhard Held <bernhard AT bernhardheld.de>
3919
3920         * src/SDCCmain.c (linkEdit): fixed buffer overflow for gbz80
3921         * support/regression/Makefile: inter-port-clean is no longer nesessary, the
3922         temp files are in the port dir; clean the gen/test directory when
3923         generating new test.c
3924         * support/regression/ports/host/spec.mk: defined OBJEXT for target clean
3925         * support/regression/tests/vaargs.c: fixed gcc 3.3 warning
3926         * support/regression/tests/zeropad.c: added
3927
3928 2003-05-09    <johan AT balder>
3929
3930         * src/SDCCglue.c: fixed bug #597940
3931
3932 2003-05-05  Karl Bongers(apply patches from Martin Helmling)
3933
3934         * debugger/mcs51/sdcdb.c,simi.c,cmd.c,symtab.c and .h files.
3935   cache sfr, optimize next,step, fix off by one sourceline,
3936   support ddd list function.
3937         * sim/ucsim/cmd.src/newcmd.cc - small fix for sdcdb use.
3938
3939 2003-05-04  Bernhard Held <bernhard AT bernhardheld.de>
3940
3941         * support/regression/HTMLgen.py: added compare_s2f()
3942         * support/regression/Makefile: redo 1.27
3943         * support/regression/generate-cases.py: redo 1.5
3944
3945 2003-04-30  Bernhard Held <bernhard AT bernhardheld.de>
3946
3947         * support/regression/tests/float.c: workaround 33 bit hex constant
3948         * support/regression/tests/simplefloat.c: fix division for host
3949
3950 2003-04-29  Scott Dattalo  <scott AT dattalo.com>
3951
3952         * src/pic/pcoderegs.c Applied patch from Jim Hawkridge <jim AT jimhawkridge.uk.eu.org>
3953         that tame's the PIC's over-aggressive optimizer.
3954
3955 2003-04-29  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
3956
3957          * src.dsw, link/z80/aslink.h, link/z80/linkz80.dsp: z80 linker
3958          support for MSVC.
3959
3960 2003-04-29  Kevin Vigor <kevin AT vigor.nu>
3961
3962         Initial support for DS80C400. "Hello world" runs on TINIm400
3963         (with polled I/O).
3964
3965 2003-04-28  Karl Bongers(apply patches for Martin Helmling)
3966
3967          * debugger/mcs51/sdcdb.c,simi.c,cmd.c,symtab.c and .h files.
3968          * Some notes on ddd usage added in debugger/README
3969          Martin Helmling adding more features and fixes for ddd GUI debugger.
3970          Code added for nexti, stepi, up, down, and other adjustments.
3971
3972 2003-04-28  Scott Dattalo  <scott AT DATTALO.COM>
3973
3974         * src/pic/pCodepeep.c non-wildcard asmops are now handled
3975         * src/pic/peeph.def Added two rules to optimize carry manipulation
3976         * src/pic/* removed debug printfs
3977
3978 2003-04-28  Bernhard Held <bernhard AT bernhardheld.de>
3979
3980         * debugger/mcs51/cmd.c: added header newalloc.h
3981
3982 2003-04-26  Bernhard Held <bernhard AT bernhardheld.de>
3983
3984         * as/Makefile: new EXEEXT
3985         * as/z80/Makefile: remove trailing slash of BUILDIR
3986         * as/z80/clean.mk: new EXEEXT
3987         * Makefile.common.in: add to CFLAGS (and others), don't replace it
3988         * support/cpp2/Makefile.in: new EXEEXT
3989         * src/pic/glue.c (pic14emitRegularMap): fixed warning
3990
3991 2003-04-24  Bernhard Held <bernhard AT bernhardheld.de>
3992
3993         Cygwin's gcc always appends .exe: 'gcc -o a a.c' creates a.exe;
3994         EXEEXT was introduced to fix all related problems with targets
3995         "clean", "install" and "uninstall"; a couple of further flaws
3996         especially with "clean" have been fixed too
3997         * as/mcs51/Makefile.in
3998         * as/mcs51/clean.mk
3999         * as/z80/Makefile
4000         * Makefile
4001         * clean.mk
4002         * debugger/mcs51/Makefile.in
4003         * debugger/mcs51/clean.mk
4004         * link/z80/Makefile
4005         * link/z80/Makefile.in
4006         * link/z80/clean.mk
4007         * link/Makefile
4008         * packihx/Makefile.in
4009         * packihx/clean.mk
4010         * sim/ucsim/Makefile
4011         * sim/ucsim/clean.mk
4012         * sim/ucsim/avr.src/Makefile.in
4013         * sim/ucsim/avr.src/clean.mk
4014         * sim/ucsim/s51.src/Makefile.in
4015         * sim/ucsim/s51.src/clean.mk
4016         * sim/ucsim/xa.src/Makefile.in
4017         * sim/ucsim/xa.src/clean.mk
4018         * sim/ucsim/z80.src/Makefile.in
4019         * sim/ucsim/z80.src/clean.mk
4020         * sim/ucsim/main_in.mk
4021         * sim/ucsim/packages_in.mk
4022         * sim/ucsim/gui.src/Makefile.in
4023         * sim/ucsim/gui.src/serio.src/Makefile.in
4024         * sim/ucsim/gui.src/serio.src/clean.mk
4025         * src/Makefile.in
4026         * src/clean.mk
4027         * support/cpp2/Makefile.in
4028         * support/cpp2/clean.mk
4029         * support/makebin/Makefile
4030         * support/makebin/clean.mk
4031         * support/scripts/sdcc_mingw32: --program-suffix no longer needed
4032         * doc/sdccman.lyx: --program-suffix no longer needed
4033
4034 2003-04-23  Karl Bongers(apply patches for Martin Helmling)
4035
4036          * debugger/mcs51/sdcdb.c,simi.c,cmd.c,..
4037          Martin Helmling added support for ddd GUI debugger.
4038          Code added to display assembly, set variables, and other commands
4039          to interface to ddd.
4040
4041 2003-04-23  Bernhard Held <bernhard AT bernhardheld.de>
4042
4043         * as/Makefile: fix target clean
4044         * as/clean.mk: fix target clean
4045         * as/z80/clean.mk: fix target clean
4046
4047 2003-04-22  Bernhard Held <bernhard AT bernhardheld.de>
4048
4049         * Makefile.common.in: added  AT EXEEXT AT
4050         * configure.in: removed all mingw32 stuff
4051         * configure: rebuilt from configure.in
4052         * doc/sdccman.lyx: updated section "installation"
4053         * support/scripts/sdcc_mingw32: adapted to configure
4054         * support/scripts/sdcc_cygwin_mingw32: added
4055
4056 2003-04-22  Scott Dattalo  <scott AT dattalo.com>
4057
4058         * src/pic Added object file support for the PIC port
4059         * src/pic Applied patch from Craig Franklin (this started the object file support)
4060         * src/regression Updated the PIC regression tests for object files
4061
4062 2003-04-20  Borut Razem <borut.razem AT siol.net>
4063
4064         * sdcc/as/mcs51/lklex.c: make getfid() more robust and fixed gcc warning:
4065           lklex.c: In function `getfid':
4066           lklex.c:203: warning: array subscript has type `char'
4067         * src/SDCCglobl.h: small change in stack handling macros, to avoid crash when compiled
4068           with MSVC with global optimization enabled (probably an cl compiler bug ;-)
4069         * support/Util/SDCCerr.c, support/Util/SDCCerr.h: added function fatal(), called from
4070           stack handling macros
4071
4072 2003-04-19  Borut Razem <borut.razem AT siol.net>
4073
4074         * "handling space characters in file path" task:
4075         * src/SDCCmacro.c: fixed bug in handlig quote at the end of line
4076         * support/Util/BuildCmd.c: define par as NULL if parameter value is invalid
4077         * support/Util/MySystem.h: make it self-sufficient
4078         * src/avr/main.c, src/ds390/main.c, src/mcs51/main.c, src/pic/main.c, src/xa51/main.c,
4079           src/z80/main.c, sdcc/as/mcs51/lklex.c:
4080           handling space characters in file path
4081         * src/SDCCmain.c: introduced setDataPaths() function, {datadir} macro
4082           (it will be used by assemblers, which have their own includes, e.g. gpasm)
4083         * support/Util/MySystem.c: handling space characters in executable's path
4084
4085 2003-04-19  Bernhard Held <bernhard AT bernhardheld.de>
4086
4087         * as/z80/Makefile: fix permanent rebuild of z80
4088         * sim/ucsim/gui.src/Makefile.in: target "install" builds the same packages as target "all"
4089         * support/regression/tests/bitfields.c: added Johan's bitfields.c
4090
4091 2003-04-18      Kevin Vigor <kevin AT vigor.nu>
4092
4093         * src/SDCCopt.c: add special case optimization to replace modulo by
4094           a power of two with a bitwise AND.
4095
4096 2003-04-18    <johan AT balder>
4097
4098         * src/mcs51/gen.c (getFreePtr): fixed bug #635354
4099
4100 2003-04-17    <johan AT balder>
4101
4102         * src/mcs51/ralloc.c (packRegsForAssign): fixed bug #716790 and removes lot's of redundant register usage around function calls
4103         * src/mcs51/ralloc.c (packRegisters): fixed bug #720667
4104
4105 2003-04-13  Borut Razem <borut.razem AT siol.net>
4106
4107         * doc/sdccman.lyx: updated info about #pragma SAVE/RESTORE nesting
4108         * configure.in, configure: fixed problems on cygwin/WinCVS environmet with ports.* line endings;
4109           fixed mingw problem in adl_NORMALIZE_PATH
4110
4111 2003-04-12  Borut Razem <borut.razem AT siol.net>
4112
4113         * fixed "#pragma SAVE/RESTORE can not be nested":
4114         * src/SDCC.lex: reworked pragma handling functions
4115         * sdcc/src/SDCCglobl.h: reworked stack handling macros
4116         * support/Util/SDCCerr.c, support/Util/SDCCerr.h: added E_STACK_VIOLATION error
4117
4118 2003-04-12  Bernhard Held <bernhard AT bernhardheld.de>
4119
4120         * src/SDCCutil.c (pathEquivalent): defined but not used
4121         * debugger/mcs51/sdcdb.c: replace SDCC_LIB_DIR
4122         * configure.in: remove sdcc_datadir, sdcc_lib_dir and sdcc_include_dir
4123         * configure: rebuilt from configure.in
4124         * sdccconf_in.h: remove SDCC_LIB_DIR and SDCC_INCLUDE_DIR
4125         * sdcc_vc_in.h: remove SDCC_LIB_DIR and SDCC_INCLUDE_DIR
4126         * device/include/Makefile.in: replace sdcc_datadir
4127         * device/lib/Makefile.in: replace sdcc_datadir
4128         * Makefile.common.in: add LDFLAGS from configure
4129         * packihx/Makefile.in: use LDFLAGS
4130         * src/Makefile.in: use LDFLAGS
4131         * support/cpp2/Makefile.in: add LDFLAGS from configure
4132         * support/makebin/Makefile: use LDFLAGS
4133         * .version: bumped version number to 2.3.5
4134
4135 2003-04-12  Borut Razem <borut.razem AT siol.net>
4136
4137         * completed "different paths" task:
4138         * src/SDCCmacro.c: fixed bug in handling quotes
4139         * src/SDCCutil.c, src/SDCCutil.c: rewritten getPrefixFromBinPath()
4140         * src/SDCCmain.c: _discoverPaths() replaced with setBinPaths(), setIncludePath() and setLibPath()
4141
4142 2003-04-12  Bernhard Held <bernhard AT bernhardheld.de>
4143
4144         * src/pic/pcoderegs.c (Remove1pcode): fix warning on alpha
4145
4146 2003-04-11 kevin Vigor <kevin AT vigor.nu>
4147
4148         * ds390/gen.c ds390/peeph.def: fix bug 706781
4149
4150 2003-04-11  Borut Razem <borut.razem AT siol.net>
4151
4152         * support/Util/dbuf.c, support/Util/dbuf.h: update to version 1.1.1 - re-added C++ stuff to make it still more portable
4153
4154 2003-04-10  Scott Dattalo  <scott AT dattalo.com>
4155
4156         * src/pic/* Applied the pointer-to-function patch from Steve Tell.
4157         * src/pic/* Fixed several pointer bugs. (PIC port broke when the ruonly bit was
4158          set - this bit used to not be set...).
4159         * src/pic/gen.c Fixed buf 609268 ==> x = (x+1) & 0xf; generated
4160           bad code in PIC Port
4161         * src/regression/and2.c added to test bug 609268
4162         * src/regression/Makefile added and2.c to regression test
4163
4164
4165 2003-04-08    <johan AT CP255758-A>
4166
4167         * src/mcs51/gen.c (gen51Code): display reg usage in --icode-in-asm
4168         * src/mcs51/ralloc.c (serialRegAssign): update the registers in use and save some slocs
4169         * src/SDCCicode.h: added riu to show the register usage in --icode-in-asm
4170
4171 2003-04-07  Bernhard Held <bernhard AT bernhardheld.de>
4172
4173         * configure.in: fully support prefix, exec_prefix, datadir, docdir;
4174         fix bug #487815
4175         * support/cpp2/Makefile.in: fix bug #487815
4176         * configure: rebuilt from configure.in
4177         * Makefile.common.in: docdir changed, new path suffixes
4178         * sdccconf_in.h: new RETSIGTYPE, and other PATHs
4179         * sdcc_vc_in.h: reflect changes from sdccconf.h
4180         * src/SDCCglobl.h: remove *SEPARATOR_CHARS, they are now in sdccconf.h
4181         * src/SDCCutil.h: remove BINDIR hack
4182         * doc/sdccman.lyx: update new path hierarchy
4183
4184 2003-04-06    Paul Stoffregen <paul AT pjrc.com>
4185
4186         * src/SDCCpeeph.c: added okToRemoveSLOC test
4187
4188 2003-04-06    Paul Stoffregen <paul AT pjrc.com>
4189
4190         * device/lib/printf_fast.c: added leading zero format ("%06d", etc)
4191
4192 2003-04-06    Paul Stoffregen <paul AT pjrc.com>
4193
4194         * src/SDCCpeeph.c: added labelIsReturnOnly test
4195         * src/mcs51/peeph.def: Peephole 244: replace ljmp to ret with ret
4196
4197 2003-04-05    <johan AT balder>
4198
4199         * src/SDCCcse.c (cseAllBlocks): fixed bug #460088
4200         * src/SDCCloop.c (DEFSETFUNC): fixed bug #460088
4201         * src/SDCCopt.c (eBBlockFromiCode): fixed bug #460088
4202         * src/SDCCast.c: fixed a warning
4203         * src/SDCCast.h: fixed a warning
4204         * src/SDCCicode.c (operandFromAst): fixed a warning
4205
4206 2003-04-04    <johan AT balder>
4207
4208         * src/SDCCloop.c (DEFSETFUNC): undid the fix for bug #519584
4209         * src/SDCCast.c (decorateType): fixed bug #715076
4210         * src/SDCC.y: fixed bug #702907
4211
4212 2003-04-03    <johan AT balder>
4213
4214         * device/lib/_mulint.c (_muluint): new #pragma LESS_PEDANTIC
4215         * src/SDCCopt.c (eBBlockFromiCode): new #pragma LESS_PEDANTIC
4216         * src/SDCCglobl.h (PRAGMA_LESSPEDANTIC): new #pragma LESS_PEDANTIC
4217         * src/SDCC.lex (doPragma): new #pragma LESS_PEDANTIC
4218         * src/SDCCmain.c (parseCmdLine): new #pragma LESS_PEDANTIC
4219
4220 2003-04-03  Bernhard Held <bernhard AT bernhardheld.de>
4221
4222         * _decdptr.c: fix return values
4223         * _gptrget.c: fix return values
4224         * _gptrgetc.c: fix return values
4225         * _gptrput.c: fix return values
4226         * _mulint.c: fix return values
4227         * as/z80/Makefile: fix 'make -j' problem
4228
4229 2003-04-02  Bernhard Held <bernhard AT bernhardheld.de>
4230
4231         * Makefile.common.in: unused PORT, SCC and SAS removed, fixed docdir
4232         * configure.in: big cleanup, updated to autoconf 2.5x
4233         * configure: rebuilt from configure.in
4234         * sdccconf_in.h: new RETSIGTYPE, and other PATHs
4235         * sdcc_vc_in.h: reflect changes from sdccconf.h
4236         * doc/Makefile: fixed a flaw in "make install"
4237
4238 2003-04-02    <johan AT balder>
4239
4240         * src/ds390/gen.c (genCmp): no comments
4241         * src/mcs51/gen.c (genCmp): no comments
4242         * src/SDCCopt.c (eBBlockFromiCode): detect missing return values
4243         * src/SDCCast.c (ast_print): fixed the function type in --dumptree
4244
4245 2003-04-01  Bernhard Held <bernhard AT bernhardheld.de>
4246
4247         * support/regression/generate-cases.py: place generated file in given sub directory
4248         * support/regression/ports/host/spec.mk: prevent removal of testfwk.o
4249         * support/regression/Makefile: improvements for 'make -j';
4250         side effect: it's simpler and faster now
4251
4252 2003-03-31  Borut Razem <borut.razem AT siol.net>
4253
4254         * src/z80/main.c: link-{port} and as-{port} defined without path
4255         * src/src.dsp: support/Util/MySystem.h and src/SDCCutil.h added to project
4256
4257 2003-03-31  Bernhard Held <bernhard AT bernhardheld.de>
4258
4259         * Makefile, src/Makefile.in: add dependencies, so that 'make -j' works
4260
4261 2003-03-30  Borut Razem <borut.razem AT siol.net>
4262
4263         * support/Util/BuildCmd.c, support/Util/BuildCmd.h: rewrite buildCmdLine(),
4264           changed type of list parameter to set
4265         * src/ds390/main.c: changed type of parameter asmOptions to set in _tininative_do_assemble()
4266         * src/port.h: changed type of do_assemble() parameter to set
4267         * src/SDCCmain.c: type of asmOptions changed to set, introduced setParseWithComma(),
4268           sdcpp defined without path, removed variable VersionString, introduced set binPathSet,
4269           definition of "cppoutfilename" macro with NULL value in preProcess()
4270         * src/SDCCglobl.h: included "SDCCset.h", added declaration of setParseWithComma()
4271         * src/SDCCglue.c: removed variable VersionString, inroduced spacesToUnderscores()
4272         * support/Util/MySystem.c, support/Util/MySystem.h: rewrite, char *ExePathList[]
4273           replaced with set *binPathSet
4274         * shash_add() deallocates the item, if allready exsists, before adding the new one
4275         * src/SDCCmacro.c: handling macros with empty or NULL values in _evalMacros()
4276
4277 2003-03-30  Scott Dattalo  <scott AT dattalo.com>
4278
4279         * src/pic/gen.c: Commit patch from Steve Tell <tell AT telltronics.org> that fixes
4280           a nested for loop bug in the PIC port
4281         * src/regression/nestfor.c: new regression test file Steve wrote to test nested
4282           for loops
4283
4284 2003-03-29  Bernhard Held <bernhard AT bernhardheld.de>
4285
4286         * support/Util/dbuf.h: remove C++ stuff to make it portable
4287
4288 2003-03-28  Borut Razem <borut.razem AT siol.net>
4289
4290         * src/SDCC.lex: Fix for bug #711240: dynamic buffer handling of C
4291           literal strings in stringLiteral()
4292         * support/Util/dbuf.c, support/Util/dbuf.h: added: dynamic buffer handling
4293         * src/Makefile.bcc, src/Makefile.in, src\src.dsp: added support/Util/dbuf.c
4294           to the project
4295
4296 2003-03-27  Paul Stoffregen <paul AT pjrc.com>
4297
4298         * src/SDCCpeeph.c (pcDistance): accurate byte distance for mcs51
4299
4300 2003-03-26    <johan AT balder>
4301
4302         * src/mcs51/gen.c (saveRegisters): catched symbol abuse
4303         * src/ds390/gen.c (saveRegisters): catched symbol abuse
4304         * src/SDCCast.c (decorateType): fixed " -v < 3"
4305
4306 2003-03-23  Bernhard Held <bernhard AT bernhardheld.de>
4307
4308         * doc/cdbfile.html: removed, replaced by cdbfileformat.lyx
4309         Added Lenny Story's debug infrastructure changes:
4310         * src/Makefile.in:  added new files cdbFile.c and SDCCdebug.c
4311         * src/Makefile.bcc: added new files cdbFile.c and SDCCdebug.c
4312         * src/cdbFile.c: added
4313         * src/SDCCdebug.c: added
4314         * src/SDCCdebug.h: added
4315         * src/SDCCast.c (createFunction)
4316         * src/SDCCglue.c (emitRegularMap, emitStaticSeg, emitOverlay, glue)
4317         * src/SDCCmain.c (parseCmdLine, main)
4318         * src/SDCCmem.c (redoStackOffsets)
4319         * src/SDCCsymt.c (cdbStructBlock, cdbTypeInfo, cdbSymbol, cdbStruct, cdbStructBlock)
4320         * src/SDCCsymt.h
4321         * src/common.h
4322         * src/avr/gen.c (genAVRCode)
4323         * src/ds390/gen.c (gen390Code)
4324         * src/mcs51/gen.c (gen51Code)
4325         * src/pic/gen.c (genpic14Code)
4326         * src/pic/glue.c (pic14emitRegularMap, pic14emitStaticSeg, pic14emitOverlay, picglue)
4327         * src/xa51/gen.c (genXA51Code)
4328         * src/SDCCast.c: fixed "void foo(void){char c; -c < 0;}"
4329
4330 2003-03-22  Frieder Ferlemann <Frieder.Ferlemann AT web.de>
4331
4332         * src/mcs51/gen.c (genCodePointerGet): quicker code for bug #700797
4333         * src/mcs51/peeph.def: added rules 177, 241.x to 243, touched 181, 182.x, 193.x
4334
4335 2003-03-22    <johan AT balder>
4336
4337         * src/SDCCicode.c (geniCodeDerefPtr): fixed bug #698231
4338
4339 2003-03-21  Bernhard Held <bernhard AT bernhardheld.de>
4340
4341         * support/scripts/sdcc_mingw32: adapted to configure from autoconf 2.54
4342         * doc/cdbfileformat.lyx: added, written by Lenny Story
4343         * doc/Makefile: added cdbfileformat.lyx
4344         * doc/clean.mk: added cdbfileformat.lyx
4345
4346 2003-03-20  Bernhard Held <bernhard AT bernhardheld.de>
4347
4348         * src/mcs51/peeph.def: fix bug #705773
4349
4350 2003-03-20    <johan AT balder>
4351
4352         An sfr/sbit can have an "at #" AND an initializer
4353         * src/SDCCsymt.c (checkSClass):
4354         * src/SDCCmem.c (allocGlobal):
4355         * src/SDCCmem.c (allocLocal):
4356         * src/SDCCast.c (createBlock):
4357
4358 2003-03-17  Bernhard Held <bernhard AT bernhardheld.de>
4359
4360         * src/ds390/peeph.def: fix bug #704878: added rule 213.b suggested by Jan Rejlek
4361
4362 2003-03-16    <johan AT balder>
4363
4364         Undid the hackup of const and volatile, the problem is much bigger
4365         * src/SDCC.y:1.65
4366         * src/SDCCast.c:1.171
4367         * src/SDCCglue.c:1.138
4368         * src/SDCCicode.c:1.146
4369         * src/SDCCsymt.c:1.150
4370         * src/SDCCval.c:1.65
4371
4372 2003-03-15  Bernhard Held <bernhard AT bernhardheld.de>
4373
4374         * src/mcs51/ralloc.c (packRegsForAssign): fixed bug #703541
4375         * src/ds390/gen.c (genAddrOf): fixed bug #704087
4376
4377 2003-03-13    <johan AT balder>
4378
4379         Hackup const and volatile modifiers in type chains a bit:
4380         * src/SDCC.y:1.63
4381         * src/SDCCast.c:1.169
4382         * src/SDCCglue.c:1.136
4383         * src/SDCCicode.c:1.143
4384         * src/SDCCsymt.c1.146
4385         * src/SDCCsymt.h1.59
4386         * src/SDCCval.c:1.63
4387
4388 2003-03-12    <johan AT balder>
4389
4390         * src/SDCCBBlock.h: more LRH debugging junk
4391         * src/SDCCcflow.h: more LRH debugging junk
4392         * src/SDCCloop.c: more LRH debugging junk
4393         * src/SDCC.y (struct_declaration): fixed bug #697590
4394         * src/SDCCsymt.[hc] (cloneSpec): NEVER EVER use this again
4395         * src/ds390/gen.c (aopForRemat): fixed bug #700031
4396         * src/SDCCglue.c (emitStaticSeg): fixed bug #700797
4397
4398 2003-03-11 Kevin Vigor <kevin AT vigor.nu>
4399         * src/SDCCpeeph.c: quit being lazy and made proper fix (peephole
4400         test function names must now match exactly).
4401         * src/SDCCcse.c: added special case in findCheaperOp to allow
4402         extending a short integer. Makes less awful code for bug 700121 test case.
4403
4404 2003-03-11  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
4405
4406         * as/mcs51/lkmain.c: Added ASlink-Warning to messages
4407         * as/mcs51/lkaomf51.c: Fixed bug when linking asmblink example
4408
4409 2003-03-11 Kevin Vigor <kevin AT vigor.nu>
4410
4411         * src/SDCCpeeph.c: fix so that operandsNotEqualX functions are
4412         actually called (operandsNotEqual() was called for all
4413         operandsNotEqualX tests).
4414
4415 2003-03-11 Kevin Vigor <kevin AT vigor.nu>
4416
4417         * src/SDCCcse.c: fix findCheaperOp to prevent replacing int types
4418         with shorter literals. Fixes bug 700121.
4419
4420 2003-03-11    <johan AT balder>
4421
4422         * src/SDCCsymt.c (compareType): a (void *) can be assigned to any pointer
4423
4424 2003-03-11  Bernhard Held <bernhard AT bernhardheld.de>
4425
4426         * src/SDCCloop.c (mergeRegions): an evil beast is dead
4427         * src/SDCCmain.c (preProcess): minor cleanup: eliminate preOutName
4428
4429 2003-03-10  Borut Razem <borut.razem AT siol.net>
4430
4431         * src/SDCCmain.c: pipe preprocessor's output
4432         * support/Util/MySystem.c, support/Util/MySystem.h: added my_popen()
4433         * sdcc_vc_in.h: define pclose as _pclose for WIN32
4434         * src/SDCCglue.c, src/SDCCglue.h: added set pipeSet, added function closePipes,
4435         which closes all pipes in pipeSet set
4436         * src/SDCCset.c: free deleted item in function deleteSetItem()
4437         * src/src.dsp, src/z80/z80.dsp: files support/Util/BuildCmd.c and support/Util/MySystem.c
4438         moved from z80 to src subproject
4439         * .version: increased version number to 2.3.4
4440
4441 2003-03-10  Bernhard Held <bernhard AT bernhardheld.de>
4442
4443         * support/regression/ports/mcs51/spec.mk: increase timeout for CF's sparc to 30s
4444         * support/regression/ports/ds390/spec.mk: increase timeout for CF's sparc to 25s
4445         * support/regression/ports/xa51/spec.mk: fix typo
4446
4447 2003-03-09  Bernhard Held <bernhard AT bernhardheld.de>
4448
4449         * src/SDCCglobl.h: PATH_MAX is already defined in mingw32 headers
4450
4451 2003-03-09  Borut Razem <borut.razem AT siol.net>
4452
4453         * src/SDCCmain.c: pipe preprocessor's output
4454         * support/Util/MySystem.c, support/Util/MySystem.h: added my_popen()
4455         * sdcc_vc_in.h: define pclose as _pclose for WIN32
4456         * src/SDCCglue.c, src/SDCCglue.h: added set pipeSet, added function closePipes,
4457         which closes all pipes in pipeSet set
4458         * src/SDCCset.c: free deleted item in function deleteSetItem()
4459         * src/src.dsp, src/z80/z80.dsp: files support/Util/BuildCmd.c and support/Util/MySystem.c
4460         moved from z80 to src subproject
4461
4462 2003-03-09  Borut Razem <borut.razem AT siol.net>
4463
4464         * src/SDCCglue.c: re-implemented tempfilename() and tempfile(): using mkstemp() if available
4465         * src/SDCCsymt.h: fixed MSVC and BORLANDC compilation (included SDCCglobl.h instead srccconf.h)
4466         * sdcc_vc_in.h: explicitly undefined HAVE_MKSTEMP which is not available on BORLANDC and MSVC
4467         * src/SDCCset.h: removed inclusion of sdccconf.h or sdcc_vc.h
4468         * src/SDCCglobl.h: unification of WIN32 native definitions
4469
4470 2003-03-09  Frieder Ferlemann <Frieder.Ferlemann AT web.de>
4471
4472         * src/mcs51/gen.c: applied in-/dec patch mentioned on sdcc-devel 2003-03-01
4473
4474 2003-03-08  Bernhard Held <bernhard AT bernhardheld.de>
4475
4476         * src/configure.in:   check for endianess (even while cross-compiling)
4477         * src/configure:      check for endianess (even while cross-compiling)
4478         * src/configure_in.h: check for endianess (even while cross-compiling)
4479         * src/avr/gen.c:        remove old endianess stuff
4480         * src/mcs51/gen.c:      remove old endianess stuff
4481         * src/ds390/gen.c:      remove old endianess stuff
4482         * src/pic/gen.c:        remove old endianess stuff
4483         * src/pic/genarith.c:   remove old endianess stuff
4484         * src/pic/glue.c:       fix endianess check
4485         * src/pic16/gen.c:      remove old endianess stuff
4486         * src/pic16/genarith.c: remove old endianess stuff
4487         * src/pic16/glue.c:     fix endianess check
4488         * src/xa51/gen.c:       remove old endianess stuff
4489         * src/z80/gen.c:        fix endianess check
4490         * src/SDCCglue.c:       fix endianess check
4491         * src/ds390/peeph.def: fix bug 700036
4492
4493 2003-03-08  Bernhard Held <bernhard AT bernhardheld.de>
4494
4495         * src/SDCCsymt.h: use appropriate data-types on host for SDCC's int and long
4496         * src/configure: find appropriate data-types on host for SDCC's int and long
4497         * src/configure.in: find appropriate data-types on host for SDCC's int and long
4498         * src/sdccconf_in.h: find appropriate data-types on host for SDCC's int and long
4499         * src/xa51/gen.c: use %d, not %ld for 4 byte variables
4500
4501 2003-03-07    <johan AT balder>
4502
4503         Just a big NOOP:
4504                 some minor cleanups before the big shot
4505                 OP_DEFS and OP_USES now use Kevin's protection
4506                 new option --nolabelopt
4507
4508         * src/SDCCBBlock.c:
4509         * src/SDCCast.c,:
4510         * src/SDCCcflow.c:
4511         * src/SDCCcse.c:
4512         * src/SDCCicode.c:
4513         * src/SDCCicode.h:
4514         * src/SDCClabel.c:
4515         * src/SDCCloop.c:
4516         * src/SDCCmain.c:
4517         * src/ds390/ralloc.c:
4518         * src/mcs51/ralloc.c:
4519         * src/pic/ralloc.c:
4520         * src/xa51/ralloc.c:
4521         * src/z80/ralloc.c:
4522
4523 2003-03-06  Bernhard Held <bernhard AT bernhardheld.de>
4524
4525         * src/pic/pcode.c (get_op): fix 64 bit warnings
4526         * src/pic/pcode.c (pCode2str): fix 64 bit warnings
4527         * src/SDCChasht.c (newHashTable): fix 64 bit warnings
4528         * src/SDCCsymt.c (checkTypeSanity): fix 64 bit warnings
4529         * support/regression/tests/malloc.c: fix 64 bit warnings
4530
4531 2003-03-04  Bernhard Held <bernhard AT bernhardheld.de>
4532
4533         * src/mcs51/gen.c (genMinus): fixed bug 696436
4534
4535 2003-03-02  Borut Razem <borut.razem AT siol.net>
4536
4537         * src/SDCCmain.c: added BORLANDC, corrected MSVC in printVersionInfo()
4538
4539 2003-02-26  Bernhard Held <bernhard AT bernhardheld.de>
4540
4541         * configure.in: test for mkstemp
4542         * sdccconf_in.h: add HAVE_MKSTEMP
4543
4544 2003-02-24  Bernhard Held <bernhard AT bernhardheld.de>
4545
4546         * device/include/ctype.h: removed warning while using --stack-auto
4547         * device/include/malloc.h: removed warning while using --stack-auto
4548         * device/include/string.h: removed warning while using --stack-auto
4549
4550 2003-02-23  Borut Razem <borut.razem AT siol.net>
4551
4552         * src/asm.h: corrected assertion in function printILine(): _pipe() was not executed on MSVC,
4553         because NDEBUG is defined (see man assert)
4554         * sdcc_vc_in.h: vsnprintf is defined as _vsnprintf on MSVC
4555
4556 2003-02-23  Frieder Ferlemann <Frieder.Ferlemann AT web.de>
4557
4558         * src/mcs51/gen.c (genUminusFloat): avoided dptr in-/decrement for xdata variables
4559         * src/mcs51/peeph.def: added rule suggested by Gernot Fink, white space/comment changes
4560
4561 2003-02-18  Frieder Ferlemann <Frieder.Ferlemann AT web.de>
4562
4563         * src/SDCCpeeph.c: added peephole conditions testing for same arguments
4564         * src/mcs51/peeph.def: added rules 238a-d which remove redundant moves
4565
4566 2003-02-18    <johan AT balder>
4567
4568         * as/mcs51/asmain.c (asmbl): module can start with a digit
4569         * as/z80/asmain.c (asmbl): module can start with a digit
4570
4571 2003-02-16  Bernhard Held <bernhard AT bernhardheld.de>
4572
4573         * sim/ucsim/mkecho: inserted #!/bin/sh for Cygwin, so that it's executable
4574         * src/asm.c: fix pipe() for Mingw32
4575
4576 2003-02-15  Bernhard Held <bernhard AT bernhardheld.de>
4577
4578         * src/SDCCglue.h: make tmpfileNameSet available for preOutName
4579         * src/SDCCmain.c (preProcess): make sure, that preOutName will be deleted;
4580         make -V work again; --c1mode reads now from stdin
4581         * doc/sdccman.lyx: added --c1mode
4582         * support/Util/SDCCerr.c: new messages for c1 mode
4583         * support/Util/SDCCerr.h: new messages for c1 mode
4584         * src/SDCC.lex (checkCurrFile): test if fullSrcFileName is NULL for c1mode
4585
4586 2003-02-15    <johan AT balder>
4587
4588         * src/asm.c: new options: --no-c-code-in-asm and --i-code-in-asm
4589
4590 2003-02-14  Bernhard Held <bernhard AT bernhardheld.de>
4591
4592         * doc/sdccman.lyx: Environment variables, -o and other minor things
4593
4594 2003-02-14    <johan AT balder>
4595
4596         * src/xa51/main.c: before anyone really tries to use it :)
4597
4598         * Install doc's in share/sdcc/doc
4599         * removed some obsolete files
4600         * Do a proper make distclean and uninstall
4601         M Makefile.common.in
4602         R sdccbuild.sh
4603         M as/Makefile
4604         M device/include/Makefile.in
4605         M device/lib/Makefile.in
4606         M doc/sdccman.lyx
4607         M link/Makefile
4608         M sim/ucsim/doc/Makefile.in
4609         M src/clean.mk
4610         R src/avr/peeph.rul
4611         R src/xa51/peeph.rul
4612         M support/cpp2/Makefile.in
4613         M support/makebin/Makefile
4614
4615
4616 2003-02-13  Bernhard Held <bernhard AT bernhardheld.de>
4617
4618         * support/regression/ports/host/spec.mk: use cc as host compiler for max osx
4619
4620 2003-02-10  Borut Razem <borut.razem AT siol.net>
4621
4622         * doc/bccinst.txt, packihx/packihx.c, sdcc_vc_in.h, src/SDCCset.h,
4623         support/cpp2/config.in: Borland C++ build doesn't depend on Cygwin configure
4624         * Bcc.ini, Makefile.bcc, as/mcs51/Makefile.bcc,
4625         device/examples/ds390/tinitalk/Makefile.bcc, packihx/Makefile.bcc,
4626         support/cpp2/Makefile.bcc, src/Makefile.bcc, src/avr/Makefile.bcc,
4627         src/ds390/Makefile.bcc, src/izt/Makefile.bcc, src/mcs51/Makefile.bcc,
4628         src/pic/Makefile.bcc, src/pic16/Makefile.bcc, src/xa15/Makefile.bcc,
4629         src/z80/Makefile.bcc: Borland Makefile cleanup
4630         * as/z80/Makefile.bcc: Added Borland Makefile
4631         * support/cpp2/borland.h: Removed
4632
4633 2003-02-10  Bernhard Held <bernhard AT bernhardheld.de>
4634
4635         * doc/sdccman.lyx: new pragma NOIV by "Johannes Stezenbach" <js AT convergence.de>
4636         * src/SDCC.lex: new pragma NOIV
4637         * src/SDCCglobl.h: new pragma NOIV
4638         * src/SDCCmem.c: new pragma NOIV
4639
4640 2003-02-09  Bernhard Held <bernhard AT bernhardheld.de>
4641
4642         * src/SDCCmain.c: signal handling is switched off by SDCC_LEAVE_SIGNALS
4643
4644 2003-02-09  Bernhard Held <bernhard AT bernhardheld.de>
4645
4646         * src/SDCCmain.c: signal handling is switched off by --debug
4647         * doc/Makefile: small fix for install; use clean.mk again
4648         * doc/clean.mk: clean *.pdf and *.html too
4649
4650 2003-02-08  Bernhard Held <bernhard AT bernhardheld.de>
4651
4652         * device/lib/_mulint.c: small fix for large/ds390 --int-long-reent resp. --stack-auto
4653         * device/lib/printfl.c: fix a ds390 bug by making it portable
4654         * src/SDCCsymt.c (initCSupport): fix compile warning on Cygwin
4655         * src/SDCCopt.c (cnvToFloatCast): fix compile warning on Cygwin
4656         * src/SDCCopt.c (cnvFromFloatCast): fix compile warning on Cygwin
4657         * debugger/mcs51/cmd.c: converted multi-line string literals
4658         * sim/ucsim/globals.cc: converted multi-line string literals
4659         * src/SDCCmain.c: introduced signal handler to remove temp files
4660         * doc/Makefile: small tweaks, implement clean
4661         * doc: removed generated files
4662
4663 2003-02-05  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
4664
4665         * as/mcs51/aslink.h, as/mcs51/lkihx.c, as/mcs51/lkrloc.c:  Applied
4666         patch from Jan Rejlek <jr AT apex-lib.cz> to fix Bug 677692: "Extended
4667         Address Record is not correctly generated for DS390."
4668
4669 2003-02-02  Borut Razem <borut.razem AT siol.net>
4670
4671         * Makefile.bcc: removed non existing cpp project and non compilable izt project from makefile
4672         * as/mcs51/asm.h: fixed compilation with Borland C
4673         * support/cpp2/Makefile.bcc: added rule to generate auto-host.h
4674         * support/cpp2/auto-host_vc_in.h: fixed compilation with Borland C
4675         * src/mcs51/mcs51a.dsp: corrected misspelled project name from msc51a to mcs51a
4676         * src/avr/Makefile.bcc, src/ds390/Makefile.bcc, src/izt/Makefile.bcc,
4677         src/mcs51/Makefile.bcc, src/pic16/Makefile.bcc, src/xa51/Makefile.bcc,
4678         src/z80/Makefile.bcc: delete $(LIB) only if exist
4679         * src/Makefile.bcc, src/pic/Makefile.bcc:  fixed compilation with Borland C
4680
4681 2003-02-02  Bernhard Held <bernhard AT bernhardheld.de>
4682
4683         * device/include/malloc.h: introduced NULL
4684         * device/include/string.h: introduced NULL
4685         * device/include/stdlib.h: introduced NULL
4686         * device/lib/_memcpy.c: removed NULL
4687         * device/lib/_strcat.c: removed NULL
4688         * device/lib/_strchr.c: removed NULL
4689         * device/lib/_strcmp.c: removed NULL
4690         * device/lib/_strcpy.c: removed NULL
4691         * device/lib/_strcspn.c: removed NULL
4692         * device/lib/_strlen.c: removed NULL
4693         * device/lib/_strncat.c: removed NULL
4694         * device/lib/_strncmp.c: removed NULL
4695         * device/lib/_strncpy.c: removed NULL
4696         * device/lib/_strpbrk.c: removed NULL
4697         * device/lib/_strrchr.c: removed NULL
4698         * device/lib/_strspn.c: removed NULL
4699         * device/lib/_strstr.c: removed NULL
4700         * device/lib/_strtok.c: removed NULL
4701         * device/lib/malloc.c: removed NULL, include own header
4702
4703 2003-02-02    <johan AT balder>
4704
4705         * 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
4706         * support/regression/fwk/lib/testfwk.c: div and mod isn't broken anymore
4707         * regressions ds390/spec.mk and mcs51/spec.mk (timeout): my good old balder isn't fast enough for some tests
4708         * src/z80/gen.c (genZ80Code): added c-lines in asm comments
4709         * as/z80/asm.h (NINPUT): increased for long c-comments in regression tests
4710         * src/z80/gen.c (genRightShiftLiteral): fixed the (char)(-3)>>8 (I think)
4711
4712 2003-02-01  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
4713
4714         * src/SDCCmain.c: Fixed bug 678574: "ds390: ASlink-Error-Stack overlaps
4715         area 'DATA'"
4716
4717 2003-02-01    <johan AT balder>
4718
4719         * src/SDCCval.c (valBitwise): fixed Karl's "2 | (1<<8)"
4720
4721 2003-01-31    <johan AT CP255758-A>
4722
4723         * src/ds390/main.c (_ds390_genAssemblerPreamble): applied Jan Rejlek's >64K startup patch
4724
4725 2003-01-30    <johan AT balder>
4726
4727         * src/SDCCBBlock.c: automatic bug detection
4728         * src/SDCCicode.c: automatic bug detection
4729
4730 2003-01-29  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
4731
4732         * src/SDCCglobl.h:   now --xram-size 0 works
4733         * src/SDCCmain.c:    now --xram-size 0 works
4734
4735 2003-01-29    <johan AT balder>
4736
4737         * src/almosteverything: changed OP_DEFS and OP_USES from macros to functions to catch symbol abuse (a hot topic in the bug list :)
4738
4739 2003-01-29  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
4740
4741         * as/mcs51/aslink.h: Added options --xram-size and --code-size
4742         * as/mcs51/lkdata.c: Added options --xram-size and --code-size
4743         * as/mcs51/lkmain.c: Added options --xram-size and --code-size
4744         * as/mcs51/lkmem.c:  Added options --xram-size and --code-size
4745         * src/SDCCglobl.h:   Added options --xram-size and --code-size
4746         * src/SDCCmain.c:    Added options --xram-size and --code-size
4747
4748 2003-01-28  Bernhard Held <bernhard AT bernhardheld.de>
4749
4750         * src/ds390/gen.c: fix deps by replacing <common.h> with "common.h"
4751         * src/SDCC.lex: rename P_OVERLAY to P_OVERLAY_ for cross-gcc 3.2 MINGW32
4752
4753 2003-01-27    <johan AT balder>
4754
4755         * src/SDCC.y: fixed bug #613764
4756
4757 2003-01-26    <johan AT balder>
4758
4759         * src/SDCClrange.c:  fixed Bernhard's "char * code ptr = &c"
4760         * src/SDCCsymt.h: fixed bug #673374
4761         * src/SDCCglue.c: fixed bug #661910
4762         * src/SDCCast.c: fixed bug #458099 and 673374
4763
4764 2003-01-26  Bernhard Held <bernhard AT bernhardheld.de>
4765
4766         * as/mcs51/strcmpi.c: added, provides Aurelien Jarno's as_strcmpi(); strcmpi() is not ANSI
4767         * as/mcs51/strcmpi.h: added
4768         * as/mcs51/asm.h: remove ugly "#define strcmpi strcmp"
4769         * as/mcs51/aslink.h: remove ugly "#define strcmpi strcmp"
4770         * as/mcs51/asmain.c: strcmpi -> as_strcmpi
4771         * as/mcs51/assym.c: strcmpi -> as_strcmpi
4772         * as/mcs51/lkmem.c: strcmpi -> as_strcmpi
4773         * as/mcs51/lknoice.c: strcmpi -> as_strcmpi
4774         * as/mcs51/lksym.c: strcmpi -> as_strcmpi
4775         * as/mcs51/Makefile.aslink: new module strcmpi
4776         * as/mcs51/Makefile.asx8051: new module strcmpi
4777         * as/mcs51/Makefil.bcc: new module strcmpi
4778         * as/mcs51/Makefile.in: new module strcmpi
4779         * sim/ucsim/s51.src/uc390.cc (get_mem_size): make RAM big enough for tinibios
4780
4781 2003-01-26    <johan AT balder>
4782
4783         * src/SDCCglue.c: reverted back to 1.124
4784         * src/SDCCast.c: reverted back to 1.156
4785         * src/mcs51/gen.c (aopGet): applied Frieder's efficiency patch
4786
4787 2003-01-25    <johan AT balder>
4788
4789         * src/SDCCglue.c: A better fix for bug #661910
4790         * src/SDCCast.c: A better fix for bug #661910
4791         * src/SDCCglue.c (emitRegularMap): That was a little too efficient
4792
4793 2003-01-24  Bernhard Held <bernhard AT bernhardheld.de>
4794
4795         * src/Makefile.in: remove spawn.o
4796         * src/SDCCmain.c: remove spawn.h
4797         * src/SDCCmain.c (printVersionInfo): report MINGW32 instead of UNIX
4798         * src/spawn.c: removed
4799         * src/spawn.h: removed
4800         * support/regression/ports/ds390/spec.mk: link with -r
4801
4802 2003-01-24    <johan AT CP255758-A>
4803
4804         * src/ds390/gen.c (aopOp): fixed bug #667458
4805         * src/SDCCglue.c (emitRegularMap): fixed bug #458099 again
4806         * src/SDCCast.c (createIvalCharPtr): fixed bug #661910
4807         (createIvalCharPtr): an ival doesn't always have a storage class anymore
4808
4809 2003-01-24  Bernhard Held <bernhard AT bernhardheld.de>
4810
4811         * src/mcs51/peeph.def: better assembler identation by Frieder
4812         * src/mcs51/gen.c: better assembler identation by Frieder
4813
4814 2003-01-22  Bernhard Held <bernhard AT bernhardheld.de>
4815
4816         * as/z80/string.h: removed for gcc 3.2
4817         * support/makebin/makebin.c: #include <string.h> for gcc 3.2
4818         * src/pic/pcode.c (get_op_from_instruction): fix concatenation of string literals with __FUNCTION__ for gcc 3.2
4819
4820 2003-01-19  Bernhard Held <bernhard AT bernhardheld.de>
4821
4822         * src/SDCCmain.c (linkEdit): rename mem and map files even in case of failure
4823         * src/SDCCpeeph.c (replaceRule): fix bug #663503
4824         * support/regression/Makefile: separate temp files for ports
4825         * support/regression/generate-cases.py: separate temp files for ports
4826         * src/mcs51/peeph.def: Frieder: removed 237 (obsolete by 236g and 105); added 237 a/b
4827         * src/ds390/peeph.def: Frieder: removed 237 (obsolete by 236g and 105); added 237 a/b
4828
4829 2003-01-19  Bernhard Held <bernhard AT bernhardheld.de>
4830
4831         * moved tinitalk to device/examples/ds390
4832
4833 2003-01-14  Bernhard Held <bernhard AT bernhardheld.de>
4834
4835         * as/mcs51/lkmem.c: rflag is for DS390
4836         * src/SDCCglobl.h: removed out_name and options stackOnData, genericPtr
4837         * src/SDCCmain.c (optionsTable, setDefaultOptions): removed --stack-after-data and --generic
4838                          (linkEdit): move mem- and map-files the same way as ihx-files
4839         * src/z80/main.c (_setDefaultOptions): removed --generic
4840         * src/SDCCmain.c (_processC1Arg, parseCmdLine, main): --c1mode works again
4841         * src/SDCCglue.c (createInterruptVect, glue): --c1mode works again
4842         * src/pic/glue.c (picglue): --c1mode works again
4843         * src/pic16/glue.c (pic16glue): --c1mode works again
4844         * src/asm.c (printCLine): fix #660034
4845
4846 2003-01-13  Bernhard Held <bernhard AT bernhardheld.de>
4847
4848         * src/ds390/peeph.def: fix #123; add 14 rules by Fiorenzo D. Ramaglia <fd.ramaglia AT tin.it>, 1 by Frieder
4849         * src/mcs51/peeph.def: fix #123; add 14 rules by Fiorenzo, 1 by Frieder
4850         * src/mcs51/gen.c (genFunction): emit r0 instead of ar0 by Fiorenzo
4851         * as/mcs51/lkmem (summary): better fix for sp problem
4852         * src/SDCCglue.c (glue): __start_stack - 1, saves 1 byte!
4853         * src/ds390/main.c (_ds390_finaliseOptions, _tininative_finaliseOptions): stack_loc = 0x400008
4854         * support/regression/ports/*/spec.mk: moving testfwk-object to port dir allow parallel execution of regression tests
4855                                               remove --stack-after-data
4856
4857 2003-01-12  Bernhard Held <bernhard AT bernhardheld.de>
4858
4859         * src/SDCCmain.c (main): port->finaliseOptions() moved for z80 linking
4860         * src/SDCCutil.c (join): ugly bug: missing '\0'
4861         * as/mcs51/lkmem.c (summary): sp on address 7 is safe
4862
4863 2003-01-11  Bernhard Held <bernhard AT bernhardheld.de>
4864
4865         * src/SDCCmain.c (assemble, linkEdit): preparations for -o
4866         * src/port.h: typo
4867         * src/pic/main.c (_asmCmd): gpasm supports -o
4868         * src/z80/main.c: more general macros
4869         * device/lib/Makefile.in: remove intermediate files
4870
4871 2003-01-11  Bernhard Held <bernhard AT bernhardheld.de>
4872
4873         * .version: Bumped version number to 2.3.3
4874         * src/SDCCBBlock.c: new option -o
4875         * src/SDCCglobl.h: new option -o
4876         * src/SDCCglue.c: new option -o
4877         * src/SDCCmain.c: new option -o
4878         * src/asm.c: new option -o
4879         * src/ds390/main.c: new option -o
4880         * src/pic/glue.c: new option -o
4881         * src/pic/pcode.c: new option -o
4882         * src/pic/ralloc.c: new option -o
4883         * src/pic16/glue.c: new option -o
4884         * src/pic16/pcode.c: new option -o
4885         * src/pic16/ralloc.c: new option -o
4886         * src/z80/main.c: new option -o
4887         * device/lib/Makefile.in: use -o
4888         * support/regression/ports/ds390/spec.mk: use -o
4889         * support/regression/ports/gbz80/spec.mk: use -o
4890         * support/regression/ports/mcs51/spec.mk: use -o
4891         * support/regression/ports/mcs51-stack-auto/spec.mk: use -o
4892         * support/regression/ports/z80/spec.mk: use -o
4893         * support/regression/ports/ucz80/spec.mk: use -o
4894         * support/regression/ports/xa51/spec.mk: use -o
4895         * support/regression/fwk/lib/timeout.c: fix usage string
4896
4897 2003-01-09  Bernhard Held <bernhard AT bernhardheld.de>
4898         * src/mcs51/gen.c (genPlus): replaced "mov b,acc" by "mov b,a" Fiorenzo D. Ramaglia <fd.ramaglia AT tin.it>
4899
4900 2003-01-07    <johan AT balder>
4901
4902         * src/SDCCast.c (decorateType): fixed bug #600035
4903
4904 2003-01-07  Bernhard Held <bernhard AT bernhardheld.de>
4905         * as/mcs51/lkmem.c: added several l-modifiers to printf to remove warnings
4906         * as/mcs51/lkaomf51.c: #include <ctype.h> to remove warnings
4907         * src/pic/main.c (_hasNativeMulFor): outcommented unused variables to remove warnings
4908         * src/pic/pcode.c: outcommented unused variable to remove warnings
4909         * src/pic/ralloc.c: outcommented unused variable to remove warnings
4910
4911 2003-01-06    <karl AT turbobit.com>
4912         * sim/ucsim/cmd.src/command.cc: fixed so "break xram r 0x7654" works again in
4913    regression tests.
4914
4915 2003-01-06    <johan AT balder>
4916
4917         * src/SDCCicode.c: fixed array add
4918
4919 2002-01-05  Bernhard Held <bernhard AT bernhardheld.de>
4920         * src/SDCCmacro.c: MAX_STRING_LENGTH increased to 2048; was too small for regression tests
4921         * support/regression/ports/host/support.c: #include <stdarg.h> for gcc 3.2
4922
4923 2003-01-04    <johan AT balder>
4924
4925         * src/SDCCval.c (getNelements): fixed the initialized array of structures
4926
4927 2002-12-29  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
4928         * as/mcs51/Makefile.bcc: fixed typo lkomf51.o -> lkaomf51.o
4929
4930 2002-12-28  Bernhard Held <bernhard AT bernhardheld.de>
4931         * src/mcs51/peeph.def: added rules 234 and 235 from Frieder Ferlemann <frieder.ferlemann AT web.de>
4932         * support/regression/tests/bug-524697.c: fit mem usage into 8032
4933
4934 2002-12-28  Bernhard Held <bernhard AT bernhardheld.de>
4935         * src/mcs51/gen.c (aopGetUsesAcc): inserted missing "return FALSE"
4936
4937 2002-12-27  Bernhard Held <bernhard AT bernhardheld.de>
4938         * as/mcs51/Makefile.in: fixed typo lkomf51.o -> lkaomf51.o
4939
4940 2002-12-26  Bernhard Held <bernhard AT bernhardheld.de>
4941         * src/mcs51/main.c: removed {bindir}{sep} from aslink
4942
4943 2002-12-10  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
4944
4945     * in \sdcc\as\mcs51\ changed these files in order to create an
4946     aomf51 file: aslink.h, lkdta.c, lklex.c, lklibr.c, lklist.c,
4947     lkmain.c.  Also added: lkmem.c and lkaomf51.c.  Changed the
4948     following files to include the previous two files: aslink.dsp,
4949     Makefile.aslink, Makefile.bcc, and Makefile.in.
4950
4951     * Changed \sdcc\src\SDCCmain.c so it creates files with extension
4952     .adb instead of .cdb
4953
4954 2002-11-09  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
4955
4956         * \sdcc\as\mcs51\lklist.c: Now reports memory usage using the
4957         value from option --iram-size.
4958
4959 2002-09-20  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
4960
4961         * \sdcc\as\mcs51\lklist.c: added boundary check before using
4962         dram[] array.
4963
4964 2002-09-18    <wiml AT hhhh.org>
4965
4966         * SDCClrange.h: exposed setFromRange() and setToRange()
4967         * mcs51/ralloc.c: fixed over-eager packRegsForSupport() and
4968           packRegsForAccUse() (bug 542397)
4969         * mcs51/gen.c: MOVA() is now a function to avoid calling aopGet()
4970           multiple times and emitting the fetch operations more than once
4971           added aopGetUsesAcc() function to allow binary operators to
4972           fetch their operands in the correct order; made genMinus() emit
4973           compact code for X = LITERAL - Y
4974
4975 2002-09-00  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
4976         * \sdcc\as\mcs51\lklist.c: Fixed incorrect number of parameters to
4977         sprintf() in line 1267.
4978
4979 2002-09-08  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
4980         * \sdcc\src\SDCCglue.c: Generate areas REG_BANK_[0-3] only for 8051
4981         like ports.
4982
4983 2002-09-04  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
4984         Changes to aslink (All the changes are marked with 'JCF'):
4985
4986         * \sdcc\as\mcs51\aslink.h: External definition of sflag and
4987         summary().
4988
4989         * \sdcc\as\mcs51\lkarea.c: Computes the size of area BSEG_BYTES from
4990         area BSEG.  Also moves, if possible, the DATA area down into the internal
4991         ram so more space is available.
4992
4993         * \sdcc\as\mcs51\lkdata.c: Definition of memory summary output flag
4994         sflag.
4995
4996         * \sdcc\as\mcs51\lklist.c: For the BSEG area report the size in bits,
4997         not bytes.  Function summary() which creates a memory usage summary
4998         file with extension .mem.  Reports of overlaping stack and small stack
4999         size.  If the space for the stack is less than 16 bytes aslink trows a
5000         warning.
5001
5002         * \sdcc\as\mcs51\lkmain.c: Creation of some of the default areas for
5003         the 8051.  Option 'y' for memory summary output file.
5004
5005         Changes to sdcc (All the changes are marked with 'JCF'):
5006
5007         * \sdcc\src\SDCCglobl.h: External definition of RegBankUsed[4].
5008
5009         * \sdcc\src\SDCCglue.c:  If a register bank is used, creates an
5010         overlaying area for it (uses RegBankUsed[4]).
5011
5012         * \sdcc\src\SDCCmain.c: Definition RegBankUsed[4]; marks register
5013         bank zero as used by default.  By default aslink locates the stack
5014         (equivalent to --stack-after-data).  Pass option 'y' to aslink for
5015         the creation of the .mem file.  Delegates the allocation of data area
5016         to aslink (it is not longer 0x30 by default).  If --stack-loc passes
5017         the begining of the stack area to aslink.
5018
5019         * \sdcc\src\SDCCmem.c:  If a register bank is used, marks it so
5020         glue() in SDCCglue.c creates an area for it.
5021
5022 2002-09-03  Borut Razem <borut.razem AT siol.net>
5023         * sdcc/src/SDCCglue.c, sdcc/src/SDCCglue.h, sdcc/src/SDCCmain.c,
5024         sdcc/src/pic/glue.c:
5025         introduced atexit() handler for teporay files removal in case of
5026         errors, assertions, ...
5027
5028 2002-08-29  Borut Razem <borut.razem AT siol.net>
5029         * sdcc/support/cpp2/auto-host_vc_in.h:
5030         re-definition of O_BINARY and other O_XXX as _O_BINARY and _O_XXX, so the problem
5031         with the returned value from read() in sdcc/support/cpp2/cppfiles.c is solved for MSC.
5032         Maybe there is a similar problem with BORLANDC? It should be checked!
5033
5034         * sdcc/src/ds390/ralloc.c, sdcc/src/mcs51/ralloc.c, sdcc/src/z80/ralloc.c:
5035         corrected improper use of assert: the assignment to clr variable was done inside the assert.
5036         In case that NDEBUG was defined, the assert macro was substituted with no-op, so the assignment
5037         was not executed, and the compiler (cl) launched a warning:
5038         ralloc.c(1442) : warning C4700: local variable 'clr' used without having been initialized
5039
5040 2002-08-28  Bernhard Held <bernhard AT bernhardheld.de>
5041         * src/SDCCglue.c (printIvalArray): iterative calculation of array length
5042
5043 2002-08-28  Jesus Calvino-Fraga and Borut Razem <borut.razem AT siol.net>
5044         * sdcc/sdcc.dsw: added sdcpp, sdcppa, yacc, conf projects
5045
5046         * sdcc/src/src.dsp, sdcc/src/avr/avr.dsp, sdcc/src/ds390/ds390.dsp,
5047           sdcc/src/mcs51/mcs51.dsp, sdcc/src/pic/pic.dsp, sdcc/src/z80/z80.dsp,
5048           sdcc/src/xa51/xa51.dsp, sdcc/src/avr/avra.dsp,
5049           sdcc/src/ds390/ds390a.dsp, sdcc/src/mcs51/mcs51a.dsp,
5050           sdcc/src/pic/pica.dsp, sdcc/src/z80/z80a.dsp,
5051           sdcc/src/xa51/xa51a.dsp, sdcc/as/as_z80.dsp,
5052           sdcc/as/aslink.dsp, sdcc/as/asx8051.dsp, sdcc/packihx/packihx.dsp:
5053         - added Release configuration in VS projects
5054         - review of compiler an linker options
5055         - VC .exe files are generated in bin_vc directory, not to interfere
5056           with binaries generated from other projects (cygwin, mingw, bcc ...)
5057
5058         * sdcc/src/yacc.dsp: added
5059
5060         * sdcc/config.dsp, sdcc/configure_vc.awk, sdcc/sdcc_vc_in.h:
5061         added - genarate sdcc_vc.h using sdcc_vc_in.h as template
5062         and insert the version number definitions from .version
5063
5064         * sdcc/support/cpp2/sdcpp.dsp: added - VC project for sdcpp
5065
5066         * sdcc/support/cpp2/sdcppa.dsp, sdcc/support/cpp2/auto-host_vc_in.h:
5067         added - genarate auto-host.h using auto-host_vc_in.h as template
5068
5069         * sdcc/sdcc_vc.h,
5070         removed from CVS, generated automatically
5071
5072 2002-08-25  Bernhard Held <bernhard AT bernhardheld.de>
5073         * support/scripts/inc2h.pl: use gputils or gpasm (from Nathan Hurst)
5074
5075 2002-08-11  Borut Razem <borut.razem AT siol.net>
5076         * support/Util/NewAlloc.c: removed unneeded #include "sdccconf.h" (suggested by Jesus Calvino-Fraga)
5077
5078 2002-08-10  Borut Razem <borut.razem AT siol.net>
5079         * src/SDCCmain.c (main):
5080         file preOutName was unlinked before closed. This seems to be OK on UNIX and cygwin
5081         platforms, but it doesn't work with Visual Studio: the opened file can not be removed.
5082         The consequence was that some temporary files were not removed.
5083
5084         * src/SDCCglue.c:
5085         unification of code in functions tempfilename() and tempfile():
5086         function tempnam() is defined in Visual Studio 6.0 and .NET
5087
5088         * sdcc/sdcc.dsw: removed project sdcpp, added project xa51a
5089
5090         * sdcc/src/src.dsp, sdcc/src/avr/avr.dsp, sdcc/src/ds390/ds390.dsp,
5091           sdcc/src/mcs51/mcs51.dsp, sdcc/src/pic/pic.dsp, sdcc/src/z80/z80.dsp:
5092         - removed compiler command line option /WX: Treats all warnings as errors
5093         - update a list of source files, included into the project
5094
5095         * sdcc/src/avr/avra.dsp, sdcc/src/ds390/ds390a.dsp, sdcc/src/mcs51/mcs51a.dsp,
5096           sdcc/src/pic/pica.dsp, sdcc/src/z80/z80a.dsp:
5097         changed project type to Generic Project so that can be correcly converted to VS.NET project
5098
5099         * sdcc/as/mcs51/asm.h: definition of PATH_MAX for MSC
5100
5101         * sdcc/src/SDCCast.c: solved MSC error in function decorateType()
5102
5103         * sdcc/src/SDCC.y: added missing ending ';' to rules to get rid of bison warnings
5104
5105         * dcc/src/ds390/ralloc.c, sdcc/src/mcs51/ralloc.c:
5106         added return 0 statements after assert() to make compiler happy
5107
5108         * sdcc/src/xa51/peeph.rul, sdcc/src/xa51/peeph.def, sdcc/src/z80/ralloc.c:
5109         added newline in the def file to keep MSC compiler satisfied
5110
5111         * sdcc/src/z80/gen.c:
5112         - function strcasecmp() is not defined in MSC (and probably also in BORLANDC),
5113           so it is replaced with STRCASECMP, which is defined as stricmp in case of MSC and BORLANDC
5114         - solved MSC error in function aopDump()
5115
5116         * sdcc_vc.h: define PREFIX as "\\sdcc"
5117
5118 2002-07-18  Bernhard Held <bernhard AT bernhardheld.de>
5119         * src/SDCCast.c (decorateType): fixed access to array of structures http://sourceforge.net/mailarchive/forum.php?thread_id=902690&forum_id=4107
5120
5121 2002-06-22  Scott Dattalo <scott AT dattalo.com>
5122         * src/pic/*: Numerous bug fixes. Flow analysis has been enhanced.
5123         - Rewrote the register banking algorithm.
5124         - Added pCode live-range analysis to registers (for now, only non-used and
5125         singly-used registers optimized away)
5126
5127         * src/pic/pcoderegs.[ch]: Added new files for pCode live-range analysis
5128
5129         * support/scripts/inc2h.pl Kevin L. Pauba <klpauba AT cox.net> submitted this perl script for converting MicroChip include files into SDCC Pic include files.
5130
5131 2002-05-10  Scott Dattalo <scott AT dattalo.com>
5132         * src/pic/*: Added support for multiplication. Fixed many,many bugs.
5133
5134 2002-04-22  Michael Hope  <michaelh AT vroom>
5135
5136         * device/lib/z80/printf.c: Changed emitter to volatile to work around a pcall bug.
5137
5138         * configure.in (DD_COPT): Added include support required for gbdk.
5139
5140         * .version: Bumped version number just to increase it.
5141
5142         * src/SDCCmain.c: Added -nostdinc to the default options.
5143
5144 2002-04-15  Michael Hope  <michaelh AT vroom>
5145
5146         * device/lib/z80/printf.c (sprintf): Added.
5147
5148         * src/z80/ralloc.c (packRegisters): Disabled pack HL use for GB as it's broken.
5149
5150         * src/z80/peeph.def: Added transpose redundent load rule.
5151
5152         * src/z80/main.c: Added force callee saves for jaune.
5153
5154         * src/port.h: Removed the i186 and tlcs-900h ports as they weren't being being developed.
5155
5156         * src/SDCCmain.c: Pulled the options definition out so that you can add port specific options without changing the main file.
5157
5158 2002-03-28  Johan Knol  <johan AT balder>
5159
5160         * src/SDCCval.c: fixed bug #532436
5161
5162 2002-03-14  Scott Dattalo <scott AT dattalo.com>
5163         * /src/port.h:
5164         Added "char *Processor" field to the port structure.
5165
5166         * /src/SDCCmain.c:
5167         Added -p option. Allows port dependent processor to be specified.
5168
5169         * all ports:
5170         Initialized the new field char *Processor field to NULL in all ports
5171
5172         * /src/pic/*:
5173         Compiler generated registers for interrupt context saving
5174         were not getting allocated.
5175
5176 2002-03-16  Sandeep Dutta  <sandeep AT ddi.com>
5177
5178         * /src/SDCCast.c:
5179         Fixed left shift. Will promote the left side of a left shift
5180         if a) left shifting more than size of operand or b) when assigned
5181         to something size > size of left side
5182
5183 2002-03-14  Scott Dattalo <scott AT dattalo.com>
5184         * src/pic/*
5185         tons of changes. Register allocation has been
5186         rewritten. Added customization for the various PICs. Flow
5187         analysis is restructured. ...
5188
5189         * src/pic/device.h:
5190         Added
5191
5192         * src/pic/device.c:
5193         Added. device.c is a PIC port hack to accomodate variations
5194         in PIC devices.
5195
5196 2002-03-13  Michael Hope  <michaelh AT vroom>
5197
5198         * src/z80/gen.c (genGenPointerGet): Fixed a bug where a pointer in HL is dereferenced into HL but HL is not spilled.  Yeah.
5199
5200 2002-03-04  johanknol  <johanknol AT manik>
5201
5202         * /src/SDCCval.c: fixed
5203
5204         const unsigned char arr[][2] = { { 0, 1 } };
5205         t18.c:1: error: Initializer element is not constant
5206
5207 2002-03-04  bela  <bela AT manik>
5208
5209         * /device/include/mcs51reg.h:
5210         ds89c420 register definition update
5211
5212 2002-03-03    <johan AT FRIJA>
5213
5214         * support/Util/SDCCerr.c: did something, but don't no why anymore
5215
5216         * support/regression/tests/bug-524691.c: made it a little less shy
5217
5218         * src/SDCCast.c (decorateType): fixed bug #524697
5219
5220         * src/SDCCast.c: made some lineno improvements
5221
5222         * src/SDCCval.c (getNelements): changed warning to error
5223
5224         * src/SDCCglue.c (printIvalArray): changed warning to error
5225
5226         * src/SDCCicode.c: fixed a warning for mingw
5227
5228         * src/SDCCast.c (decorateType): fixed the << promotion for ops
5229
5230         * src/SDCCicode.c (geniCodeDivision): divide is shift only for unsigned (bug #524685)
5231
5232 2002-03-02  Sandeep Dutta  <sandeep AT ddi.com>
5233
5234         * src/ds390/peeph.def:
5235         Added some more peephole rules
5236
5237         * src/ds390/gen.c: Various fixes & enhancements
5238
5239         * src/SDCClrange.c, src/SDCClrange.h:
5240         functions "alldefsoutofrange" and "notusedinblock" moved to SDCClrange.c
5241
5242         * src/ds390/ralloc.c:
5243         various fixes & enhancements (ds390) specific
5244
5245         * src/avr/ralloc.c, src/mcs51/ralloc.c, src/pic/ralloc.c, src/xa51/ralloc.c, src/z80/ralloc.c:
5246         Functions "allDefsOutOfRange" & "notUsedinBlock" moved to SDCClrange.c
5247         from rallocs.
5248
5249         * sdcc/src/SDCCcse.c: Better fix for bug # 514308
5250
5251 2002-03-02    <johan AT FRIJA>
5252
5253         * src/SDCCast.c (decorateType): fixed bug #524708
5254
5255         * src/SDCCval.c (floatFromVal): fixed the literal void (whatever that may be)
5256
5257         * src/SDCCicode.c (geniCodePtrPtrSubtract): fixed bug #524691
5258
5259 2002-03-01  Michael Hope  <michaelh AT vroom>
5260
5261         * src/SDCCsymt.c (initCSupport): Removed managling of support function names.
5262
5263         * src/z80/ralloc.c (packRegsForIYUse): Fixed fp bug where four byte operands were packed into IY.
5264
5265 2002-03-01    <johan AT FRIJA>
5266
5267         * src/SDCCglue.c (printIvalPtr): fixed bug #524211
5268
5269         * src/SDCCast.c (decorateType): fixed bug #524209
5270
5271         * src/SDCCval.c (valNot): fixed bug #524195
5272
5273 2002-02-26    <johan AT balder>
5274
5275         * src/xa51/gen.c: fixed a warning
5276
5277         * src/SDCCglue.c (printIvalFuncPtr): fixed bug #522534
5278
5279         * src/SDCCast.c (decorateType): fixed bug #522534
5280
5281 2002-02-23    <johan AT balder>
5282
5283         * src/SDCCdflow.c (computeDataFlow): fixed bug #460088
5284
5285 2002-02-22    <johan AT balder>
5286
5287         * src/SDCCast.c: fixed bug #514865
5288
5289         * src/SDCCy.c ("SDCC.y"): fixed bug #516625
5290
5291 2002-02-21  Sandeep Dutta  <sandeep AT ddi.com>
5292
5293         * sdcc/src/SDCCloop.c:
5294         Previous fix was not good. basic blocks that have "break" or "return" are
5295         not really partof a loop , but live ranges used in these blocks should
5296         be live thru the entire loop, so set partOfLoop but don't add them to
5297         loop region
5298
5299 2002-02-21    <johan AT FRIJA>
5300
5301         * src/SDCCcse.c: fixed bug #514308
5302
5303 2002-02-20  Sandeep Dutta  <sandeep AT ddi.com>
5304
5305         * src/SDCCloop.c:
5306         Fixed BUG #519583. If a conditional block ended in a return/break
5307         statement inside a loop, it was not being considered part of the loop.
5308
5309         * src/SDCCcflow.c: Removed fix (Fixed in SDCCloop.c)
5310
5311 2002-02-10  Karl Bongers <karl AT turbobit.com>
5312
5313         * debugger/*:
5314         Fixed up SDCDB debugger somewhat.  Updated debugger/README
5315         with lots of comments and notes.
5316
5317         * device/examples/test2.c:
5318         Fix bug, "red" variable not being initialized(compiler complained).
5319
5320         * device/examples/Makefile, examples/test3.c:
5321         Add Makefile in device/examples folder, compiles test3.c
5322         for use as a multiple module SDCDB test case.
5323
5324         * sim/ucsim/cmd.src/cmdset.cc:
5325         Took out debug printfs in ucsim "next" command.
5326
5327         * sim/ucsim/xa.src:
5328         Karl and Johan start ucsim XA support.  Most dissassembly working,
5329         about 75% emulation done(plenty of work remaining).
5330
5331         * sim/ucsim/z80.src:
5332         Add Z80 support to ucsim, add test-ucz80 regression test,
5333         notice ucsim/z80 emulation fails on examples/test3.c/itoa code.
5334         Notice z80 compiler fails on examples/test3.c/crc code.
5335
5336 2002-01-30  Sandeep Dutta  <sandeep AT ddi.com>
5337
5338         * src/mcs51/gen.c, src/mcs51/main.c, src/mcs51/ralloc.c:
5339         Added support for --parms-in-bank1
5340
5341         * src/ds390/peeph.def:
5342         added a few more peephole optimzations
5343
5344         * src/ds390/main.c:
5345         1) added __builtin_inp & __builtin_outp used to read in data of given length
5346            from a memory mapped port
5347         2) added __builtin_memcmp
5348         3) added __builtin_swapw swap bytes of a short
5349
5350         * src/ds390/gen.c, src/ds390/gen.h, src/ds390/ralloc.c:
5351         1) handle multiple send & receives from register bank1
5352         2) ralloc can now allocate DPTR1 to some liveRanges
5353
5354         * src/SDCCsymt.c, src/SDCCsymt.h:
5355         changes to handle multiple sends & receives
5356
5357         * src/SDCCptropt.h:
5358         added some pointer arithmetic optimization
5359
5360         * src/SDCCptropt.c:
5361         added some pointer arithmetic optimizations but not stable yet so not
5362         called from anywhere (will get this working shortly)
5363
5364         * src/SDCCopt.c: fixed for multiple sends & receives
5365
5366         * src/SDCCmain.c:
5367         1) added options --parms-in-bank1 (ds390/mcs51) & --protect-sp-update
5368         2) preprocessing done AFTER port->finalizeoptions . This allows ports to
5369            set preprocessor defines (depending on options)
5370
5371         * src/SDCCicode.c, src/SDCCicode.h:
5372         changes made to handle multiple sends & receives
5373
5374         * src/SDCCglobl.h:
5375         Added options --protect-sp-update (ds390) and --parms-in-bank1 (ds390/mcs51)
5376
5377         * src/SDCCcse.c, src/SDCCcse.h:
5378         added function findbackward def (to be used in upcoming optimization)
5379
5380         * src/SDCCcflow.c, src/SDCCcflow.h:
5381         added function returnAtEnd - to determine if a basic block terminates with
5382         a RETURN iCode
5383
5384         * src/SDCCast.c, src/SDCCast.h:
5385         added option parms-in-bank1
5386
5387         * device/lib/_divsint.c, device/lib/_divslong.c, device/lib/_divuint.c
5388         * device/lib/_divulong.c, device/lib/_modsint.c, device/lib/_modslong.c
5389         * device/lib/_modulong.c, device/lib/_mulint.c, device/lib/_mullong.c:
5390         adjusted for --parms-in-bank1 option
5391
5392         * device/include/string.h:
5393         donot redefine "reentrant" keyword
5394
5395         * device/include/ds80c390.h: Added some more SFRs
5396
5397 2002-01-28  Bernhard Held  <bernhard AT bernhardheld.de>
5398
5399         * sim/ucsim: Merged branch ucsim-034-pre3 to main trunk; new version 0.4
5400
5401 2002-01-26  Bernhard Held  <bernhard AT bernhardheld.de>
5402
5403         * src/SDCCast.c (funcOfType): fix usage of double --float-reent
5404
5405 2002-01-22  Bernhard Held  <bernhard AT bernhardheld.de>
5406
5407         * support/regression/fwk/lib/testfwk.c (main): Removed workaround for bug #505387
5408
5409 2002-01-18  Paul Stoffregen  <paul AT pjrc.com>
5410
5411         * Added --xram-movc option
5412
5413 2002-01-13  Bernhard Held  <bernhard AT bernhardheld.de>
5414
5415         * support/regression/Makefile: don't include test-mcs51-stack-auto in target all
5416
5417 2002-01-11  Johan Knol
5418
5419         * Added math lib of Jesus Calvino-Fraga
5420
5421 2002-01-08  Bernhard Held  <bernhard AT bernhardheld.de>
5422
5423         * src/SDCCmain.c (processFile): fix processing of ../../src.c
5424         * support/regression/Makefile: new target test-mcs51-stack-auto
5425         * support/regression/ports/mcs51-stack-auto/spec.mk: added
5426
5427 2002-01-04  Bernhard Held  <bernhard AT bernhardheld.de>
5428
5429         * src/SDCCglue.h: printIvalCharPtr(), not printIvalChar()
5430
5431 2002-01-04  Bernhard Held  <bernhard AT bernhardheld.de>
5432
5433         * support/regression/ports/mcs51/support.c: correct setup of timer / UART
5434
5435 2002-01-03  Bernhard Held  <bernhard AT bernhardheld.de>
5436
5437         * src/SDCCsymt.c (processFuncArgs): fix #498307 by Johan
5438
5439         * src/SDCCglue.h: add definition for printIvalChar()
5440
5441 2002-01-02  Bernhard Held  <bernhard AT bernhardheld.de>
5442
5443         * src/SDCCast.c: fix #498138 by Johan
5444
5445         * src/SDCCglue.c: fix #498138 by Johan
5446
5447 2002-01-02  Bernhard Held  <bernhard AT bernhardheld.de>
5448
5449         * support/regression/Makefile: fix clean
5450
5451         * support/regression/ports/ds390/support.c: fix transmission of last character
5452
5453 2001-12-29  Sandeep Dutta  <sandeep AT ddi.com>
5454
5455         * /sdcc/src/ds390/gen.c:
5456         a) improved computing address of stack variable
5457         b) took out some #if 0 code
5458         c) improved parmBytes adjustment
5459         d) improved genPlusIncr & genMinusIncr
5460         e) genCmp could generate bad code (when left assigned to DPTR)
5461         f) Fixed bug in hasInc
5462
5463         * /sdcc/src/ds390/ralloc.c:
5464         a) packRegsForSupport could mess up live information (Fixed)
5465         b) packRegsDPTRuse could be incorrect for left & right shift
5466
5467         * /sdcc/src/mcs51/ralloc.c:
5468         packRegsForSupport could mess up the live information (Fixed)
5469
5470         * /sdcc/src/mcs51/gen.c: Fixed a bug in hasInc
5471
5472         * /sdcc/src/SDCCast.c:
5473         can reverse a loop even if function call is present as long
5474         as the loop control variable is local & is not passed as parameter
5475
5476 2001-12-24  Sandeep Dutta  <sandeep AT ddi.com>
5477
5478         * /sdcc/ChangeLog: *** empty log message ***
5479
5480         * /sdcc/src/ds390/gen.c, /sdcc/src/ds390/main.c:
5481         More builtin function additions for TININative
5482
5483         * /sdcc/src/ds390/ralloc.c:
5484         Had broken the regression testsuite
5485
5486         * /sdcc/src/SDCCast.c: Fixed a bug in dumptree
5487
5488         * /sdcc/src/SDCCsymt.c, /sdcc/src/SDCCsymt.h:
5489         Added funcattr hasStackParms will be set for reentrant functions when there
5490         are paramteres on the stack, this helps in minimizing frame pointer generation
5491         typeFromStr can handle function pointers now
5492
5493         * /sdcc/doc/builtins.txt, /sdcc/doc/TININative.txt:
5494         *** empty log message ***
5495
5496 2001-12-24  Sandeep Dutta  <sandeep AT ddi.com>
5497
5498         * /src/ds390/gen.c, /src/ds390/main.c:
5499         More builtin function additions for TININative
5500
5501         * /src/ds390/ralloc.c:
5502         Had broken the regression testsuite
5503
5504         * /src/SDCCast.c: Fixed a bug in dumptree
5505
5506         * /src/SDCCsymt.c, /src/SDCCsymt.h:
5507         Added funcattr hasStackParms will be set for reentrant functions when there
5508         are paramteres on the stack, this helps in minimizing frame pointer generation
5509         typeFromStr can handle function pointers now
5510
5511         * /doc/builtins.txt, /doc/TININative.txt:
5512         *** empty log message ***
5513
5514
5515 2001-12-24  Sandeep Dutta  <sandeep AT ddi.com>
5516
5517         * /src/ds390/gen.c, /src/ds390/main.c, /src/ds390/peeph.def, /src/ds390/ralloc.c:
5518         ALPHA version for -mTININative
5519
5520         * /src/izt/i186.c, /src/izt/tlcs900h.c, /src/mcs51/main.c, /src/pic/main.c, /src/z80/main.c, /src/avr/main.c:
5521         updated to reflect changes in the port structure
5522
5523         * /src/port.h:
5524         added function do_assemble (similar to do_link) if non-null this function
5525         will be called to do assembly (-mTININative) requires a multi command
5526         assembly
5527         added function genAssemblerEnd will be called to generate assembler Epilogue
5528
5529         * /src/SDCCsymt.c:
5530         added _JavaNative to debug info printing
5531
5532         * /src/SDCCmain.c: added option --tini-libid
5533         added port->do_assemble function (-mTININative) has a multi command assemble
5534
5535         * /src/SDCCglue.c: Disabled "constExpr" check
5536         added port->genAssemblerEnd function
5537
5538         * /src/SDCCglobl.h: Added option --tini-libid value
5539
5540         * /src/SDCCast.h:
5541         tookout optimizeCompare from the header (has no external references)
5542
5543         * /src/SDCCast.c: made one more function "static"
5544
5545 2001-12-23  Michael Hope  <michaelh AT juju.net.nz>
5546
5547         * src/z80/mappings.i: Added z80asm support.
5548
5549         * src/z80/main.c: Added z80asm support on --asm=z80asm
5550
5551         * src/z80/gen.c: Fixed asm portability issues.
5552
5553         * src/asm.c (tvsprintf): Removed old code, added 'N' for function name.  For extern support.
5554
5555         * src/SDCCglue.c (printExterns): Added global/extern split.
5556
5557 2001-12-17  Bernhard Held  <bernhard AT bernhardheld.de>
5558
5559         * support/regression/Makefile: added test for mcs51 model large
5560
5561         * support/regression/ports/mcs51-large/spec.mk: added test for mcs51 model large
5562
5563         * support/regression/ports/gbz80/spec.mk: added -mgbz80
5564
5565 2001-12-05  Michael Hope  <michaelh AT juju.net.nz>
5566
5567         * src/diff.1 (Index): Many, many optmisiations.  Dhrystone up to 201.
5568
5569 1904-01-06  Michael Hope  <michaelh AT juju.net.nz>
5570
5571         * src/z80/ralloc.c (packRegsForIYUse): Fixed the case where an operand is in direct space.
5572
5573         * src/z80/gen.c (makeFreePairId): Optimised IY load by using a spare pair.
5574
5575 2001-12-02  Bernhard Held  <bernhard AT bernhardheld.de>
5576
5577         * src/mcs51/gen.c (genFunction): avoid excess "inc sp"
5578
5579         * support/regression/tests/simplefloat.c: Port to mcs51.
5580
5581 2001-11-25  Michael Hope  <michaelh AT juju.net.nz>
5582         * support/regression/tests/bug-485362.c: Added.
5583
5584         * support/regression/tests/simplefloat.c (testDivNearOne): Added.
5585
5586         * src/z80/gen.c (aopOp): Fixed case where left and result are in the same spill loc and they have different sizes.
5587
5588         * src/z80/peeph.def: Added rules for optimising two byte compares on the same thing, and to optimise two ptr assign.
5589
5590         * src/z80/gen.c (aopDump): Added a dump function.
5591
5592 2001-11-25  Bernhard Held  <bernhard AT bernhardheld.de>
5593         * sim/ucsim/s51.src/glob.cc: DS390 SFRs and bits added.
5594
5595         * sim/ucsim/s51.src/port.cc: Port 4 and 5 added.
5596
5597         * sim/ucsim/s51.src/regs51.h: DS390 SFRs added.
5598
5599         * sim/ucsim/s51.src/uc390.cc: Some details improved, CKRDY works for tinibios.
5600
5601         * sim/ucsim/s51.src/uc390cl.h: Work in progress.
5602
5603         * sim/ucsim/sim.src/uccl.h: 6 ports for DS390.
5604
5605         * support/regression/fwk/lib/testfwk.c: Run with tinibios.
5606
5607         * support/regression/ports/mcs51/spec.mk: Fine tuninig.
5608
5609         * support/regression/ports/ds390/support.c: Use tinibios.
5610
5611         * support/regression/ports/ds390/spec.mk: Fine tuning, use tinibios.
5612
5613 2001-11-23  Michael Hope  <michaelh AT juju.net.nz>support/regression/tests/bug-460010.c
5614
5615         * src/z80/ralloc.c (packRegsForHLUse3): Changed to not pack into HL if anything is in direct space.
5616         (packRegsForHLUse3): Added packing support for send, cast, and return value from a call.
5617
5618         * src/z80/peeph.def: Added rules for optimising pushes of part of a pair.
5619
5620         * src/z80/gen.c (emitCall): Changed the stack fixup to not use HL.
5621
5622 2001-11-18  Michael Hope  <michaelh AT juju.net.nz>
5623
5624         * src/z80/gen.c (genCmp): Fixed compare on unsigned.
5625
5626         * src/z80/ralloc.c (packRegsForHLUse3): Created and optimised.
5627         (packRegsForIYUse): Created and optimised.
5628
5629 2001-11-07  Michael Hope  <michaelh AT juju.net.nz>
5630
5631         * support/regression/tests/float.c (testFloatAdd): Fixed up warning.
5632 2001-11-18  Bernhard Held  <bernhard AT bernhardheld.de>
5633
5634         * sdcc/support/regression/tests/bug-460010.c: fix seg violation on host
5635
5636         * sdcc/support/regression/tests/muldiv.c: fix output on mcs51
5637
5638         * sdcc/support/regression/tests/stacks.c: fix DSEG overflow on mcs51
5639
5640 2001-11-07  Bernhard Held  <bernhard AT bernhardheld.de>
5641
5642         * sdcc/sim/device/lib/_gptrget.c: mem region 5 (idata) added
5643
5644         * sdcc/sim/device/lib/_gptrput.c: mem region 5 (idata) added
5645
5646 2001-11-07  Bernhard Held  <bernhard AT bernhardheld.de>
5647
5648         * sdcc/sim/ucsim/globals.cc: New: IXRAM.
5649
5650         * sdcc/sim/ucsim/stypes.h: New: IXRAM.
5651
5652         * sdcc/sim/ucsim/s51.src/uc390.cc: New: IXRAM.
5653
5654 2001-11-07  Michael Hope  <michaelh AT juju.net.nz>
5655
5656         * src/z80/ralloc.c (packRegsForHLUse): Banned IFXs from being packed into HL.
5657         (packRegsForHLUse): Added rule to pack address of/pointer get for itemps into HL for the Z80.
5658         (packRegsForAccUse2): Added rule to pack hbit IFXs into A.
5659
5660         * src/z80/main.c (_setDefaultOptions): Made float code re-entrant by default.
5661
5662         * src/z80/gen.c (aopGetLitWordLong): Added word support for floats.
5663         (genNotFloat): Added.
5664         (genUminusFloat): Added.
5665
5666         * device/lib/z80/Makefile: Added floating pt stubs.
5667
5668         * device/lib/Makefile.in (Z80SOURCES): Added floating pt support.
5669
5670         * src/z80/gen.c (genIpush): Fixed up a push of one byte when left is in a pair.
5671
5672         * device/lib/_fsadd.c (__fsadd): Fixed up return where the numbers are hugely different.
5673
5674 2001-11-07  Bernhard Held  <bernhard AT bernhardheld.de>
5675
5676         * sdcc/sim/ucsim/s51.src/glob.cc: Minor fix.
5677
5678         * sdcc/sim/ucsim/s51.src/regs51.h: Minor fix.
5679
5680         * sdcc/support/regression/Makefile: Add port ds390.
5681
5682         * sdcc/support/regression/ports/mcs51/spec.mk: Minor change.
5683
5684         * sdcc/support/regression/ports/z80/spec.mk: Minor change.
5685
5686         * sdcc/support/regression/ports/ds390/spec.mk: Added.
5687
5688         * sdcc/support/regression/ports/ds390/support.c: Added.
5689
5690         * sdcc/support/regression/ports/ds390/uCsim.cmd: Added.
5691
5692         * sdcc/support/regression/ports/mcs51/timeout.c: Cut.
5693
5694         * sdcc/support/regression/fwk/lib/timeout.c: Paste.
5695
5696 2001-11-04  Michael Hope  <michaelh AT juju.net.nz>
5697
5698         * device/include/malloc.h: Added z80 and gbz80 support.
5699
5700         * device/lib/gbz80/heap.s: Added.
5701
5702         * device/lib/z80/heap.s: Added.
5703
5704         * device/lib/malloc.c: Added z80 and gbz80 support.
5705
5706         * support/regression/tests/malloc.c (testMalloc): Added.
5707
5708         * src/SDCCmain.c (parseCmdLine): Added support for -Wp.
5709
5710         * support/regression/tests/bug-478094.c: Added.
5711
5712         * src/z80/gen.c (commitPair): Fixed silly gbz80/z80 commit to static bug.
5713
5714 2001-11-04  Bernhard Held  <bernhard AT bernhardheld.de>
5715
5716         * sdcc/sim/ucsim/s51.src/uc390cl.h: Improvement for ds390 to run regression tests
5717
5718         * sdcc/sim/ucsim/s51.src/uc390.h: Improvement for ds390 to run regression tests
5719
5720         * sdcc/sim/ucsim/s51.src/regs51.h: Improvement for ds390 to run regression tests
5721
5722         * sdcc/sim/ucsim/s51.src/glob.cc: Improvement for ds390 to run regression tests
5723
5724         * sdcc/support/regression/tests/bug-460010.c: Small change for ds390
5725
5726 2001-11-04  Michael Hope  <michaelh AT juju.net.nz>
5727
5728         * src/z80/peeph-gbz80.def: Removed a bad sub optimisation.
5729
5730 2001-11-03  Michael Hope  <michaelh AT juju.net.nz>
5731
5732         * support/regression/tests/bug-477927.c: Added.
5733
5734         * src/z80/peeph.def: Added minor rules.
5735
5736         * src/z80/gen.c (genPlusIncr): Added an extra plusinc rule.
5737
5738         * src/z80/peeph.def: Added jump optimisation modification.
5739
5740 2001-11-01  Michael Hope  <michaelh AT juju.net.nz>
5741
5742         * src/SDCCmain.c (linkEdit): Added runtime path detection to the mcs51 port.
5743
5744 2001-10-30  Michael Hope  <michaelh AT juju.net.nz>
5745
5746         * support/regression/tests/funptrs.c: Added.
5747
5748 2001-10-29  Michael Hope  <michaelh AT juju.net.nz>
5749
5750         * src/z80/ralloc.c (packRegsForHLUse): Fixed up bad spill due to pushing one byte via HL.
5751
5752 2001-10-28  Michael Hope  <michaelh AT juju.net.nz>
5753
5754         * src/z80/gen.c (genArrayInit): Made it work for on stack arrays.
5755
5756         * src/z80/main.c (gbz80_port =): Added rle support to the gbz80 port.
5757
5758         * src/z80/gen.c (genMinus): Fixed for where the result is one byte.
5759         (movLeft2ResultLong): Created.
5760
5761         * src/z80/ralloc.c (packRegsForHLUse): Added a couple of simple cases for the GB.
5762         (joinPushes): Added.  Joins two char pushes into a word push.
5763
5764 2001-10-27  Michael Hope  <michaelh AT juju.net.nz>
5765
5766         * support/cpp2/Makefile.in (install): Added creation of dest dir.
5767
5768         * support/makebin/Makefile (install): Added creation of dest dir.
5769
5770 2001-10-24 Karl Bongers <karl AT turbobit.com>
5771
5772         * configure.in, configure, Makefile, support/cpp: Removed cpp folder, since we have new cpp2 preprocessor code.
5773
5774 2001-10-21  Michael Hope  <michaelh AT juju.net.nz>
5775
5776         * src/z80/ralloc.c: Turned off faulty pack for one use.
5777
5778         * src/z80/peeph-gbz80.def: Removed redundent restart options.
5779
5780         * src/z80/gen.c (genMult): Added native mul for constants on the z80 and gbz80.
5781
5782 2001-10-21  Bernhard Held  <bernhard AT bernhardheld.de>
5783
5784         * support/regression/Makefile: Improved clean
5785
5786         * support/regression/ports/gbz80/spec.mk: Added clean
5787
5788         * support/regression/ports/host/spec.mk: Added clean
5789
5790         * support/regression/ports/z80/spec.mk: Added clean
5791
5792         * support/regression/ports/mcs51/spec.mk: Added clean, little improvements
5793
5794         * support/regression/ports/mcs51/timeout.c: little improvements
5795
5796 2001-10-17  Michael Hope  <michaelh AT juju.net.nz>
5797
5798         * device/lib/malloc.c (MEMHEADER): Fixed against new pedantic pointers.
5799
5800         * support/regression/fwk/include/testfwk.h: Fixed up to use function pts correctly.
5801
5802         * support/regression/generate-cases.py: Fixed up to use function pts correctly.
5803
5804 2001-10-16  Bernhard Held  <bernhard AT bernhardheld.de>
5805
5806         * support/regression/port/mcs51/spec.mk: add timeout for uCsim
5807
5808         * support/regression/port/mcs51/timeout.c: add timeout for uCsim
5809
5810 2001-10-13  Michael Hope  <michaelh AT juju.net.nz>
5811         * src/z80/gen.c (emitCall): Fixed up missing spill of HL when used to assign the result value.
5812
5813         * src/z80/ralloc.c: Turned off pack for one use as it's quite broken.
5814
5815         * src/SDCCmain.c (linkEdit): Added support for passing a legacy command line through the processor.
5816
5817         * src/mcs51/main.c (_linkCmd): Added bin path to command.
5818
5819         * src/SDCCmain.c (initValues): Added support for when it it called just to link.
5820
5821         * as/mcs51/lklibr.c (libfil;): Turned off 'library file' message.
5822
5823         * src/SDCCval.c (constVal): Fixed usage of 'L' modifier problems on ppc.
5824
5825         * support/regression/tests/longor.c: Added.
5826
5827 2001-10-11  Bernhard Held  <bernhard AT bernhardheld.de>
5828
5829         * as/mcs51/asdata.c: replaced FILENAME_MAX with PATH_MAX
5830
5831         * as/mcs51/aslink.h: define PATH_MAX
5832
5833         * as/mcs51/asm.h: define PATH_MAX
5834
5835         * as/mcs51/asmain.c: replaced FILENAME_MAX with PATH_MAX
5836
5837         * as/mcs51/asnoice.c: replaced FILENAME_MAX with PATH_MAX
5838
5839         * as/mcs51/lklex.c: replaced FILENAME_MAX with PATH_MAX
5840
5841         * as/mcs51/lkmain.c: replaced FILENAME_MAX with PATH_MAX
5842
5843         * src/SDCCglobl.h: define PATH_MAX
5844
5845         * src/SDCCmacro.c: replaced FILENAME_MAX with PATH_MAX
5846
5847         * src/SDCCmain.c: replaced FILENAME_MAX with PATH_MAX
5848
5849 2001-10-11  Michael Hope  <michaelh AT juju.net.nz>
5850
5851         * src/z80/gen.c (gencjneshort): Fixed
5852
5853         * src/z80/ralloc.c (packRegsForHLUse): Added pack into HL for cast then ipush.
5854
5855 2001-10-09  Michael Hope  <michaelh AT juju.net.nz>
5856
5857         * support/regression/tests/bug-469671.c: Added.
5858
5859         * src/z80/gen.c (shiftIntoPair): Fixed up warning.
5860
5861 2001-10-08  Michael Hope  <michaelh AT juju.net.nz>
5862
5863         * src/SDCCmain.c: Added --fommit-frame-pointer option and implemented in the z80 port.
5864
5865         * src/z80/gen.c (genPlus): Fixed to work with extended stack.  Also fixed genMinus, genCmp.  genUMinus is still left.
5866
5867 2001-10-08  Bernhar Held  <bernhard AT bernhardheld.de>
5868
5869         * src/SDCCmain.c (preProcess): added define SDCC_NOOVERLAY
5870
5871         * src/device/lib/_mulint.c  : removed hint: nooverlay bug
5872
5873         * src/device/lib/_mullong.c : removed hint: nooverlay bug
5874
5875         * src/device/lib/_divuint.c : removed hint: nooverlay bug
5876
5877         * src/device/lib/_divulong.c: removed hint: nooverlay bug
5878
5879         * src/device/lib/_moduint.c : removed hint: nooverlay bug
5880
5881         * src/device/lib/_modulong.c: removed hint: nooverlay bug
5882
5883 2001-10-07  Michael Hope  <michaelh AT juju.net.nz>
5884
5885         * 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.
5886
5887         * support/Util/NewAlloc.c (freeTrace): Changed free for the gc case to not free at all.  Fixes runtime segfault.
5888
5889         * support/regression/tests/scott-compare3.c (c_abcd): Fixed up casts.
5890
5891 2001-10-07    <johan AT FRIJA>
5892
5893         * device/lib/gets.c (gets): fixed the return value.
5894
5895 2001-10-06  Michael Hope  <michaelh AT juju.net.nz>
5896         * src/SDCCmain.c (WRITE_SEG_LOC): Fixed up to use Safe_strdup.
5897
5898         * 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.
5899
5900         * 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.
5901
5902         * src/z80/gen.c (genZ80Code): Added de-allocation via trace support.
5903
5904         * src/pic/gen.c: Removed Safe_strdup.
5905
5906         * configure.in: Added option to enable libgc support.
5907
5908         * src/SDCCbitv.c (bitVectnBitsOn): Optimised.
5909         (bitVectUnion): Optimised.
5910         (bitVectIntersect): Optimised.
5911         (bitVectBitsInCommon): Optimised.
5912         (bitVectCplAnd): Optimised.
5913
5914         * support/makebin/makebin.c (usage): Removed getopt as mingw32 doesn't have it.  Sigh.
5915
5916 2001-10-03 Bernhard Held <bernhard AT bernhardheld.de>
5917
5918         * src/SDCCmain.c: distinguish between assembler debug and plain options
5919
5920         * src/avr/main.c:   remove standard assembler options
5921
5922         * src/ds390/main.c: remove standard assembler options
5923
5924         * src/mcs51/main.c: remove standard assembler options
5925
5926         * src/port.h: removed "PENDING" comment
5927
5928 2001-10-03 Bernhard Held <bernhard AT bernhardheld.de>
5929
5930         * src/device/lib/_mulint.c  : new, with assember functions
5931
5932         * src/device/lib/_mullong.c : new, with assember functions
5933
5934         * src/device/lib/_divuint.c : with assember functions
5935
5936         * src/device/lib/_divsint.c : with assember functions
5937
5938         * src/device/lib/_divulong.c: with assember functions
5939
5940         * src/device/lib/_divslong.c: with assember functions
5941
5942         * src/device/lib/_moduint.c : with assember functions
5943
5944         * src/device/lib/_modsint.c : with assember functions
5945
5946         * src/device/lib/_modulong.c: with assember functions
5947
5948         * src/device/lib/_modslong.c: with assember functions
5949
5950         * src/device/lib/libint.lib:  replaced _muluint.c  and _mulsint.c  by _mulint.c
5951
5952         * src/device/lib/liblong.lib: replaced _mululong.c and _mulslong.c by _mullong.c
5953
5954         * src/device/lib/Makefile.in: replaced _muluint.c  and _mulsint.c  by _mulint.c
5955                                       replaced _mululong.c and _mulslong.c by _mullong.c
5956
5957 2001-10-03 Bernhard Held <bernhard AT bernhardheld.de>
5958
5959         * src/SDCCsymt.c: sequence of specifiers in pintTypeChain() corrected
5960
5961 2001-10-01 Bernhard Held <bernhard AT bernhardheld.de>
5962
5963         * src/SDCCglue.c: test, if win32api is available for MINGW
5964
5965 2001-10-01 Bernhard Held <bernhard AT bernhardheld.de>
5966
5967         * src/SDCCsymt.c: no more _modifier in printTypeChain()
5968         * support/regression/tests/driverstruct.c: REENTRANT for mcs51
5969         * support/regression/ports/gbz80/spec.mk: removed GENERIC
5970         * support/regression/ports/host/spec.mk: removed GENERIC
5971         * support/regression/ports/mcs51/spec.mk: removed GENERIC
5972         * support/regression/ports/z80/spec.mk: removed GENERIC
5973
5974 2001-10-01  Michael Hope  <michaelh AT juju.net.nz>
5975
5976         * support/regression/fwk/lib/testfwk.c (__printf): Removed GENERIC.
5977
5978         * support/regression/tests/bug-467035.c: Created.
5979
5980 2001-10-01    <johan AT FRIJA>
5981
5982         * src/SDCC.y: fixed bug #466586 part 1
5983
5984 2001-10-01  Johan Knol <johan.knol AT iduna.nl>
5985
5986         * SDCCicode.c: z80 has no generic pointers
5987         * removed -s from strip in all Makefile(.in)'s. It is not needed, but Solaris chocks on it.
5988
5989 2001-09-30  Michael Hope  <michaelh AT juju.net.nz>
5990
5991         * sim/ucsim/cmd.src/Makefile.in ($(PRJDIR)/libcmd.a): Changed all ar references to $(AR) for Solaris.
5992
5993 2001-09-29  Michael Hope  <michaelh AT juju.net.nz>
5994
5995         * Makefile (sdcc-libs): Added makebin to the list of standard targets.
5996
5997         * support/regression/ports/z80/spec.mk: Updated to use env for sdcc bin dir for automatic regression.
5998
5999 2001-09-25  Michael Hope  <michaelh AT juju.net.nz>
6000
6001         * configure.in: Fixed up so that ucsim is only configured once.
6002
6003         * support/cpp2/configure.in: Fixed to use the program transform to append the .exe for the win32 build.
6004
6005         * src/SDCCutil.c (getPrefixFromBinPath): Fixed up to work with win32 in all of its glory.
6006         (getPathDifference): As above.
6007
6008         * src/SDCCmain.c (preProcess): Changed to use a temporary file in a proper temp directory.  Fixed case where pre-processing only.
6009
6010         * src/SDCCglue.c (tempfilename): Added function for pre-processor.
6011
6012 2001-09-23  Michael Hope  <michaelh AT juju.net.nz>
6013         * .version: Updated to 2.3.1
6014
6015         * src/z80/main.c (z80_port =): Added macro based linker and assembler command line support.
6016         Added copyright header.
6017
6018         * src/SDCCmain.c: Shifted various functions into SDCCutil.c
6019         (assemble): Added support for macro based assembler commands.
6020         (linkEdit): Added support for macro based linker commands.
6021         (preProcess): Changed the pre-processor to use macros.
6022         (_setPaths): Added functionality to autodetect the include, lib and bin dir paths.
6023         (_discoverPaths): Added support for overriding the install directory using the SDCCDIR env variable.
6024
6025         * device/lib/z80/crt0.s: Added module name for debugging.
6026
6027 2001-09-20  Michael Hope  <michaelh AT juju.net.nz>
6028
6029         * src/SDCCmain.c (printVersionInfo): Added the build date to the version info.
6030
6031         * src/SDCChasht.c (hTabDeleteByKey): Fixed delete as it would delete the last item from a bucket even if it wasn't the real one.
6032
6033         * src/SDCCglue.c: Moved gc_strdup to SDCCutil.c
6034
6035         * src/Makefile.in: Added SDCCmacro and SDCCutil
6036
6037 2001-09-19  Michael Hope  <michaelh AT juju.net.nz>
6038
6039         * src/SDCCmain.c (printVersionInfo): Added the build date to the version info.
6040
6041 2001-09-16    <johan AT FRIJA>
6042
6043         * 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.
6044
6045 2001-09-15    <johan AT FRIJA>
6046
6047         * src/mcs51/ralloc.c: (findAssignToSym): fixed bug #460662 part 1
6048         * src/ds390/ralloc.c (findAssignToSym): fixed bug #460662 part 1
6049
6050 2001-09-11    <johan AT FRIJA>
6051
6052         * src/SDCCval.c (valDiv Mod Minus Plus Shift): keep litteral expressions as small as possible (bug #460010)
6053
6054 2001-09-10  Michael Hope  <michaelh AT juju.net.nz>
6055
6056         * support/regression/tests/bug-460444.c: Added test case.
6057
6058         * src/z80/gen.c (genOr): bug 460444: if (a ^ lit) was broken for &, |, and ^.
6059         (genCast): Added justification for all of the asserts.
6060
6061 2001-09-10  Bernhard Held <bernhard AT bernhardheld.de>
6062
6063         * support/regression/support.c: _xdata replaced by xdata
6064
6065         * support/regression/spec.mk: removed _generic
6066
6067 2001-09-09  Michael Hope  <michaelh AT juju.net.nz>
6068
6069         * src/pic/ralloc.c (debugLogRegType): Removed some old types to get it to compile.
6070
6071         * src/z80/gen.c (shiftR2Left2Result): Improved the case when v = v >> n for small values of n to use less code space and time.
6072         (genrshTwo): Fixed v = v >> n where v is a negative int and n is > 8: bug 460010.
6073
6074         * src/z80/peeph.def: Added a rule to optimise shift then compare.
6075
6076         * support/regression/tests/bug-460000.c (testShiftByParam): Added test case.
6077
6078         * support/regression/tests/bug-460010.c: Added test case.
6079
6080         * support/regression/Makefile (test-host): Removed a silly 'clean' target when testing against gcc.
6081
6082 2001-09-09  Bernhard Held <bernhard AT bernhardheld.de>
6083
6084         * support/regression/Makefile: inter-port-clean adjusted for mcs51
6085
6086         * support/regression/testfwk.c: removed workaround for bug #436344
6087
6088         * support/regression/tests/bp.c: use less memory with mcs51
6089
6090         * support/regression/tests/bug-441448.c: use less memory
6091
6092         * support/regression/tests/ports/mcs51/spec.mk: cleanup, use --stack-after-data
6093
6094         * support/regression/collate-results.py: typo
6095
6096 2001-09-08  Michael Hope  <michaelh AT juju.net.nz>
6097
6098         * support/regression/tests/fetchoverlap.c: Added new test case.
6099
6100         * support/regression/tests/bp.c: Added new test case.
6101
6102         * support/regression/tests/bug-448984.c: Added new test case.
6103
6104         * support/regression/tests/pow2shifts.c: Added new test case.
6105
6106         * src/z80/gen.c: Turned off the noise it normally generates for the release.
6107         (genlshTwo): Fixed right shift for count > 8.
6108
6109         * src/z80/ralloc.c: Disabled most of the ACC packing rules as they weren't getting hit and weren't at all safe.
6110
6111 2001-09-08    <johan AT FRIJA>
6112
6113         * src/SDCCicode.c (geniCodeCall): a CPOINTER can be used as a function
6114
6115 2001-09-07    <johan AT FRIJA>
6116
6117         * src/SDCCicode.c (newiCodeCondition): fixed bug #456235 (1.77)
6118
6119         * src/SDCCglue.c (emitRegularMap): only delete a symbol when it is a symbol
6120
6121 2001-09-06    <johan AT FRIJA>
6122
6123         * src/SDCC.y: this could be a fix for bug #458744 (1.37)
6124         * bernhard noted me at this: "() equals to (void)" (1.38)
6125
6126 2001-09-05    <johan AT FRIJA>
6127
6128         * src/SDCCglue.c (emitRegularMap): a fix for bug #458099/2
6129
6130 2001-09-04    <johan AT FRIJA>
6131
6132         * src/SDCCsymt.c (checkSClass): a fix for bug #458099/1
6133
6134
6135 2001-09-04  Paul Stoffregen  <paul AT pjrc.com>
6136
6137         * pragma noinduction broke memcpy on mcs51 large model.  Moved it inside z80 optimization
6138
6139 2001-09-03  Michael Hope  <michaelh AT juju.net.nz>
6140
6141         * link/z80/aslink.h: Fixed path for PATH_MAX
6142
6143 2001-09-02  Michael Hope  <michaelh AT juju.net.nz>
6144
6145         * src/z80/gen.c (fetchLitPair): Changed so that it properly caches direct space references.
6146
6147         * support/regression/tests/addsub.c: Added cases to cover all the +, - combinations.
6148
6149         * support/regression/tests/uminus.c: Added a test for the unary minus operator.
6150
6151         * 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.
6152
6153 2001-09-01  Michael Hope  <michaelh AT juju.net.nz>
6154
6155         * src/z80/gen.c: Fixed up generator to pass the regresion tests, specifically fixing loads for longs, genCmp, and turned on the map file.
6156         (genCmp): Fixed up genCmp for the GB with longs.
6157
6158         * device/lib/gbz80/Makefile: Fixed up all the libraries to pass the regression tests.
6159
6160         * support/regression/ports/host/spec.mk: Updated to compile with the new type specifiers.
6161
6162         * device/lib/Makefile.in (Z80SOURCES): Removed old _mululong, _mulslong, and unneeded _mulint.
6163
6164         * device/lib/_mullong.c (_mulslong): Changed to actually return a value :)
6165
6166 2001-08-30  Paul Stoffregen  <paul AT pjrc.com>
6167
6168         * added peepholes 223 to 231 to mcs51 port.  These improve code when using large model.
6169
6170 2001-08-30  Michael Hope  <michaelh AT juju.net.nz>
6171
6172         * 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.
6173
6174         * src/z80/gen.c (genPlus): Changed bad long add for gb to a fall through.
6175
6176 2001-08-29  Michael Hope  <michaelh AT juju.net.nz>
6177
6178         * link/z80/aslink.h: Fixed long file name support.  Is now based off PATH_MAX instead of a constant.
6179
6180         * src/z80/gen.c: Fixed add and sub for the case where left or right are in static space.
6181
6182 2001-08-30 Bernhard Held   <bernhard AT bernhardheld.de>
6183
6184   * sim/ucsim/configure:    little improvement of Cygwin-detection
6185   * sim/ucsim/configure.in: little improvement of Cygwin-detection
6186   * sim/ucsim/cmd.src/newcmdcl.h: include <sys/types.h> to define fd_set automated build
6187   * support/regression/tests/bug-221100.c: small changes for mcs51
6188   * support/regression/tests/bug-221168.c: small changes for mcs51
6189   * support/regression/tests/bug-227710.c: small changes for mcs51
6190   * support/regression/tests/staticinit.c: small changes for mcs51
6191   * as/mcs51/aslink.h: accept everything as symbol name in rel-files, bug fix ID 452601
6192   * as/mcs51/lklex.c:  accept everything as symbol name in rel-files, bug fix ID 452601
6193   * as/mcs51/lksym.c:  accept everything as symbol name in rel-files, bug fix ID 452601