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