* sdcc/device/lib/Makefile.in: remove all unnecessary files, 2nd try...
[fw/sdcc] / ChangeLog
1 2005-11-24 Borut Razem <borut.razem AT siol.net>
2
3         * sdcc/device/lib/Makefile.in: remove all unnecessary files, 2nd try...
4
5 2005-11-23 Bernhard Held <bernhard AT bernhardheld.de>
6
7         * src/SDCCast.c (createIvalCharPtr): fixed bug 1348271
8
9 2005-11-22 Maarten Brock <sourceforge.brock AT dse.nl>
10
11         * device/lib/_fs2schar.c,
12         * device/lib/_fs2sint.c,
13         * device/lib/_fs2slong.c: optimized inline asm
14
15 2005-11-21 Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
16
17         * device/lib/_fs2slong.c, device/lib/_fs2sint.c, device/lib/_fs2char.c:
18           Better handling of floats between -1.0 and 0.0.
19
20 2005-11-20 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
21
22         * src/mcs51/peeph.def: added missing "if"s as noted by Hubert Sack.
23           (the missing "if"s prohibited removal of redundant labels)
24
25 2005-11-19 Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
26
27         * device/lib/_fs2slong.c, device/lib/_fs2sint.c, device/lib/_fs2char.c:
28           Properly convert floats between -1.0 and 0.0 to long, int, and char
29           types (max integer value of negative floats tends to zero).
30         * device/lib/modff.c, device/lib/ceilf.c, device/lib/floorf.c:
31           Removed changes made so to work properly with floats between
32           -1.0 and 0.0, as the problem is fixed in _fs2slong.c, _fs2sint.c,
33           and _fs2char.c
34
35 2005-11-18 Bernhard Held <bernhard AT bernhardheld.de>
36
37         * src/SDCCcse.c (ReplaceOpWithCheaperOp): minor fix for debugging only
38         * src/mcs51/gen.c (genUnpackBits): better code and a fix,
39         (genCast) cosmetic change
40         * src/ds390/gen.c (genUnpackBits, ): ported from mcs51
41         * src/ds390/ralloc.c (packRegsForAssign): ported fix for bitfields
42         from mcs51
43         * support/regression/tests/bitfields (testSignedBitfields): added
44
45 2005-11-18 Borut Razem <borut.razem AT siol.net>
46
47         * sdcc/device/lib/Makefile.in: remove all unnecessary files
48         * device/lib/pic/Makefile.rules, device/lib/pic16/Makefile.subdir:
49           introduced SILENT option to make building of pic16 libraries less
50
51 2005-11-18 Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
52
53         * device/lib/modff.c, device/lib/ceilf.c, device/lib/floorf.c:
54           Now they work properly with floats between -1.0 and 0.0
55         * device/lib/printf_large.c: Removed temporary patch for bug 1358192
56
57 2005-11-18 Maarten Brock <sourceforge.brock AT dse.nl>
58
59         * src/SDCCicode.c (printOperand): added missing else
60
61 2005-11-18 Bernhard Held <bernhard AT bernhardheld.de>
62
63         * src/SDCCsymt.c (computeType): fixed bug 1358192: added missing else,
64         reformatted for better readability
65         * src/mcs51/gen.c (genUnpackBits): initial, incomplete support for
66         signed bitfields
67
68 2005-11-17 Borut Razem <borut.razem AT siol.net>
69
70         * device/lib/pic16/Makefile.rules, device/lib/pic16/Makefile.subdir:
71           introduced SILENT option to make building of pic16 libraries less
72           verbose - used for nightly snapshot build
73         * doc/sdccman.lyx: documented that SDCDB and ucSim are currently not
74           available on Win32 platforms.
75         * sdcc/device/lib/Makefile.in: added library sources for mcs51, small,
76           medium, large, pic and pic16
77
78 2005-11-16 Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
79
80         * device/lib/printf_large.c: Temporary patch for bug 1358192:
81           printf("%f"...) sets fraction to zero.
82
83 2005-11-16 Raphael Neider <rneider AT web.de>
84
85         * src/pic/pcode.c (LinkFlow): handle empty flows correctly,
86           fixes #1357221
87         * src/pic/gen.c (genIfx): implemented for CARRY bit
88         * src/pic16/gen.c (genAssign,genCast): fixed assigning/casting
89           to generic pointers, fixes #1357332,
90           (pic16_movLit2f): NEW,
91           (pic16_storeForReturn,genDataPointerSet): use pic16_movLit2f
92
93 2005-11-14 Maarten Brock <sourceforge.brock AT dse.nl>
94
95         * src/SDCCmain.c (parseCmdLine): fixed bug 1356800, thanks rsudjian
96
97 2005-11-11 Raphael Neider <rneider AT web.de>
98
99         * src/pic/gen.c: handle FPOINTERS like POINTERS everywhere
100         * src/pic16/gen.c (pic16_derefPtr): now works for non-pointers as well,
101           compute pointer's type from operand,
102           (genUnpackBits,genPackBits): handle FPOINTERS correctly, re-indented,
103           improved single bit reads, fixes bug #1353379
104
105 2005-11-09 Borut Razem <borut.razem AT siol.net>
106
107         * support/scripts/sdcc.nsi: added lib/pic to the package
108
109 2005-11-08 Maarten Brock <sourceforge.brock AT dse.nl>
110
111         * src/SDCCval.c (valUnaryPM): fixed bug 1350699
112
113 2005-11-06 Maarten Brock <sourceforge.brock AT dse.nl>
114
115         * support/regression/tests/bug1348008.c: added
116         * src/mcs51/gen.c (saveRBank, unsaveRBank): fixed bug 1348008
117         * support/regression/tests/bug1337835.c: updated comment
118
119 2005-11-06 Borut Razem <borut.razem AT siol.net>
120
121         * sim/ucsim/error.cc, sim/ucsim/errorcl.h,
122           sim/ucsim/sim.src/stack.cc, sim/ucsim/sim.src/stackcl.h,
123           sim/ucsim/sim.src/uc.cc, sim/ucsim/sim.src/uccl.h,
124           sim/ucsim/sim.src/mem.cc, sim/ucsim/sim.src/memcl.h,
125           sim/ucsim/cmd.src/set.cc, sim/ucsim/cmd.src/show.cc:
126           dynamic construction of cl_error_class and derivates - 2.nd try
127
128 2005-11-05 Borut Razem <borut.razem AT siol.net>
129
130         * sim/ucsim/sim.src/error.cc: fixed uninitialized class member variable
131           bug, which caused Bus Errors on sparc solaris
132
133 2005-11-04 Borut Razem <borut.razem AT siol.net>
134
135         * sim/ucsim/error.cc, sim/ucsim/errorcl.h,
136           sim/ucsim/sim.src/stack.cc, sim/ucsim/sim.src/stackcl.h,
137           sim/ucsim/sim.src/uc.cc, sim/ucsim/sim.src/uccl.h,
138           sim/ucsim/sim.src/mem.cc, sim/ucsim/sim.src/memcl.h,
139           sim/ucsim/cmd.src/cmdconf.cc: dynamic construction of cl_error_class
140           and derivates to resolve the initialization problem on OSX
141
142 2005-11-02 Borut Razem <borut.razem AT siol.net>
143
144         * sim/ucsim/cmd.src/cmdutil.cc, sim/ucsim/cmd.src/newcmd.cc:
145           corrected typo - #include <winsock2.h>
146
147 2005-11-02 Maarten Brock <sourceforge.brock AT dse.nl>
148
149         * src/asm.c (printILine): always close tmpFile, thanks Beau E. Cox,
150           (_asxxxx_mapping): added org directive for future enhancements
151
152 2005-11-01 Borut Razem <borut.razem AT siol.net>
153
154         * sim/ucsim/app.cc, sim/ucsim/cmd.src/cmdutil.cc, sim/ucsim/cmd.src/newcmd.cc:
155           enabled sockets on WIN32
156         * sim/ucsim/cmd.src/newcmd.cc: fixed bug with uninitialized variables
157
158 2005-10-31 Borut Razem <borut.razem AT siol.net>
159
160         * support/regression/generate-cases.py: escape backslashes in {testcase}:
161           WIN32 backslash path delimiters should be escaped when used in C strings
162         * support/regression/tests/bitfields.c: exclude failing assertions for
163           __CYGWIN32__ and __MINGW32__ hosts
164
165 2005-10-30 Borut Razem <borut.razem AT siol.net>
166
167         * src/SDCCutil.c: corrected double comparison typo
168
169 2005-10-30 Maarten Brock <sourceforge.brock AT dse.nl>
170
171         * device/lib/medium/Makefile: added for new memory model medium
172         * device/include/asm/mcs51/features.h: updated for medium/pdata
173         * device/include/mcs51/c8051f120.h: added sfr16/sfr32 definitions,
174           added Multiply & Accumulate sbit's and MAC0_PAGE define
175         * device/include/mcs51/c8051f300.h: added sfr16 definitions
176         * device/include/mcs51/c8051f310.h: added sfr16 definitions
177         * device/lib/_mullong.c: update for medium model
178         * device/lib/incl.mk: added medium model
179         * doc/sdccman.lyx: documented medium model
180         * src/SDCCast.c (isBitAndPow2): simplified using updated powof2
181         * src/SDCCicode.c (geniCodeMultiply, geniCodeDivision): use updated powof2
182         * src/SDCCmain.c (optionsTable, linkEdit): enabled medium model
183         * src/SDCCmem.c (allocIntoSeg): set iaccess for pdata symbols,
184           (allocParms): set SCLS and OCLS to pdata for medium model
185         * src/SDCCsymt.c (processFuncArgs): use default_local_map and set iaccess
186           for pdata,
187           (powof2): return <0 if not power of 2
188         * src/avr/gen.c (genBitWise): use updated powof2
189         * src/mcs51/gen.c (genMinusDec): use acc if necessary,
190           (shiftR2Left2Result): small optimization in setup, save acc when storing,
191           (shiftLLeftOrResult): use B if necessary
192         * src/mcs51/main.c (_mcs51_finaliseOptions, mcs51_port): added medium model
193         * src/mcs51/peeph.def: renamed 226 to 226.b, added 226.a
194         * src/pic/main.c (_pic14_do_link): made void parameter list explicit
195         * support/regression/Makefile.in: added test-mcs51-medium
196         * support/regression/ports/mcs51-medium/spec.mk: added to test medium model
197
198 2005-10-28 Bernhard Held <bernhard AT bernhardheld.de>
199
200         * src/SDCCsymt.c (compStructSize): make bitfields without (un)signed
201         specifier unsigned
202         * device/lib/time.c (mktime): fixed bug 1334315
203
204 2005-10-28 Raphael Neider <rneider AT web.de>
205
206         * device/include/pic/p16f_common.inc: added common declarations
207         * src/pic/ralloc.c (initStack): moved regs *r to block start for Alpha
208
209 2005-10-27 Maarten Brock <sourceforge.brock AT dse.nl>
210
211         * src/mcs51/gen.c (getTempRegs): return 0 if not enough registers found,
212           (aopPutUsesAcc): added to predict accumulator use,
213           (assignResultValue): save acc if necessary,
214           (genMinusDec): store result if indirectly addressed,
215           (genDivOneByte):  save acc if necessary,
216           (movLeft2Result): bugfix if left already in acc,
217           (genAnd, genOr, genXor, shiftL2Left2Result, shiftR2Left2Result): pay more
218             attention to accumulator use (esp. pdata),
219           (genReceive): receive pdata correctly
220         * src/SDCCicode.c (isOperandInPagedSpace): added to detect pdata operands
221         * src/SDCCicode.h: added isOperandInPagedSpace prototype
222
223 2005-10-27 Raphael Neider <rneider AT web.de>
224
225         * doc/sdccman.lyx: corrected version (should be 2.5.4 not 2.5.5)
226
227 2005-10-27 Raphael Neider <rneider AT web.de>
228
229         * .version: changed version to 2.5.4
230         * doc/sdccman.lyx: changed version to 2.5.4, added some remarks to PIC14
231         * device/lib/pic/libsdcc/{_mulint.c,_mullong.c}: use unsigned literals,
232           (_divschar.c,divuchar.c,_mulchar.c,_modschar.c,_moduchar): NEW,
233             arithmetics support routines
234         * device/lib/pic/Makefile.rules: have assembler sources preprocessed
235         * device/lib/Makefile.in: also create installdir for pic
236
237         * src/SDCCopt.c (cnvToFcall): mark support routines `extern' for
238           pic14 port as well
239         * src/pic/device.c (dump_sfr): rewritten to delegate register
240           placement to the linker (use `extern sym' rather than sym EQU addr),
241           (validAddress): fixed to check last specified address
242         * src/pic/gen.c (aopForSym): added code to deal with array (useless?),
243           (popGetLit): truncate literal value to 8 bit,
244           (popGet): moved assert to more appropriate place
245           (popGetExternal): create pCode operand from and mark the according
246             symbol as being `extern'
247           (popGetAddr): added sanity check on immediate's offset, provide
248             GPOINTER tag on demand
249           (aopPut): fixed for immediates,
250           (mov2w_op): move operand's address or contents to WREG (depending on
251             operand type), safer variant of mov2w,
252           (movwf,call_libraryfunc): NEW, handy abbreviations,
253           (get_argument_pcop,get_return_val_pcop,pass_argument,
254           get_returnvalue): interface for accessing function parameters and
255             return values,
256           (assignResultValuei,genRet): use new parameter/return value interface
257           (pic14_getDataSize): back to old version handling generic pointers,
258           (pic14_toBoolean,genNot,genCpl,genCmpEq,genOrOp): heavily rewritten,
259             provided implementation and/or fixed old one,
260           (genMultOneByte,genDivOneByte,genModOneByte): implemented as library
261             calls, removed legacy 8051 reference code
262           (AccLsh,AccRsh): rewritten and fixed to deal with signed operands
263           (loadSignToC): NEW, move the operands sign bit to CARRY,
264           (genGenericShift): NEW, replaces genLeftShift, genRightShift and
265             genRightShiftSigned, accepts negative shift counts,
266           (setup_fsr): load FSR and adjust IRP (indirect memory access),
267           (emitPtrByteGet,emitPtrByteSet): rewritten, now works with
268             generic pointers, __data pointers and __code pointers,
269           (genUnpackBits,genPackBits): rewritten to work with generic pointers
270             and signed bitfields, limit bitfields to 8 bit,
271           (genDataPointerGet): fixed number of bytes read,
272           (genGenPointerGet,genConstPointerGet): fixed bitfield access,
273           (genPointerGet,genPointerSet): fixed handling of __code pointers,
274             pointers to constant data are no longer assumed to point to __code
275             space, removed invalid pointer types,
276           (bitpatternFromVal): retrieve the PICs representation of an integer
277             or float literal,
278           (genDataPointerSet): fixed assigning to po_immediate operands,
279           (genGenPointerSet): implemented as library call,
280           (genIfx): fixed incorrect condition,
281           (genAddrOf): limit generic pointers' addresses to 2 bytes,
282             provide GPOINTER tag according to destination's storage class,
283           (genCast): added code to handle casting to generic pointers, added
284             sign-/zero extension of the result
285           (aop_isLitLike,op_isLitLike): fixed handling of immediates
286         * src/pic/gen.h: added macros to access IRP bit in STATUS register
287         * src/pic/genarith.c (genAddLit): use min(result's,left's) size, sign
288           extend the result
289         * src/pic/glue.c (is_shared_address,is_shared): check whether a given
290           address/register resides in the shared banks
291           (emitSymbolToFile): improved to handle global and `pinned' symbols,
292             put all variables into separate sections (have the linker arrange
293             them)
294           (picglue): put init code and interrupt handlers in separate sections
295         * src/pic/main.c: added port specific options table, modified to PORT
296           structure to make GPOINTERs 3 byte, added pic14_options
297           (_pic14_do_link): private linking routine (update paths to libraries,
298             add libsdcc.lib by default)
299         * src/pic/main.h: declare pic14_options
300         * src/pic/pcode.c: fixed instructions i/o relations,
301           (RegCond): reverted to correct version,
302           (newpCodeOpLit): truncate literals to 8 bit,
303           (genericPrint): added debug output,
304           (getRegFromInstruction): fixed for various operand types, simplified
305           (BuildFlow): fixed broken handling of isntructions with labels
306           (LinkFlow): start at last instruction in flow (skip trailing comments),
307             pass the flow on to the next instruction after CALL
308           (pCodeReplace): NEW, replace a pCode and move meta data to the new one
309           (insertPCodeInstruction): fixed inserting after a skip instruction,
310           (DoBankSelect): fixed for labeled instructions
311           (OptimizepBlock): honor --nopeep switch
312           (AnalyzeFlow,ReuseReg): prevent crash on source files with no function
313         * src/pic/pcodepeep.c (pCodePeepMatchRule): prevent NULL pointer accesses
314         * src/pic/pcoderegs.c (regIsLocal): NEW, check visibility of a register
315           (pCodeOptime2pCodes): allow disabling this optimization via
316             --no-pcode-opt due seldomly occuring bugs, fixed some conditions
317             but is still buggy), started implementation of a dataflow based
318             pCode optimization (CSE + dead code elimination)
319           (pCodeRegMapLiveRangesInFlow): removed bogus inCond
320         * src/pic/ralloc.c (initStack): renamed stack registers to STK%d, the new
321           names are independant of the stack location and therefore portable across
322           devices
323
324 2005-10-27 Maarten Brock <sourceforge.brock AT dse.nl>
325
326         * src/mcs51/ralloc.c (bitType): added to detect bit variables,
327           (selectSpil): fixed bug 1337835 by not spilling bit variables
328         * support/regression/tests/bug1337835.c: added test for this bug
329         * src/mcs51/peeph.def: restart after rule 3.c,
330           addded rules 263.x to optimize loading constants
331
332 2005-10-26 Raphael Neider <rneider AT web.de>
333
334         * src/SDCCsymt.c (compStructSize): allow signed bitfields for PIC ports
335         * src/pic16/gen.c (genUnpackBits): support signed bitfields,
336           (genAssign): emit warning when casting literals to generic pointer
337             type, also applies when taking the address of a fixed variable,
338           (genCast): improved casting to generic pointers
339         * src/pic16/glue.c (pic16emitStaticSeg): fixed(?) handling of fixed
340           extern variables, added verbose error message
341         * device/include/pic16/{string.h,errno.h}: added #pragma library c
342
343 2005-10-26 Bernhard Held <bernhard AT bernhardheld.de>
344
345         * src/mcs51/gen.c (genMinus): fixed bug 1270906: reverse subtraction,
346         carry must be complemented too
347         * src/mcs51/peeph.def: addded rule 262 to remove double cpl c, which
348         could be emitted by genMinus
349         * src/SDCCval.c (constVal): fixed bug 1305065
350
351 2005-10-25 Bernhard Held <bernhard AT bernhardheld.de>
352
353         * src/SDCCast.c (addCast): added promotion for bit variables
354         (decorateType): emit W_COMPLEMENT before the problem vanishes behind
355         promotion casts + optimisation
356         (optimizeGetWord): fix warning 'i' might be used uninitialized
357         * src/mcs51/gen.c (genCpl): removed W_COMPLEMENT
358         * src/ds390/gen.c (genCpl): removed W_COMPLEMENT
359
360 2005-10-24 Bernhard Held <bernhard AT bernhardheld.de>
361
362         * src/SDCCicode.c (ast2iCode): reverted to 1.224 because of regression:
363         all chars are promoted to int; promotion should be handled in SDCCast.c
364
365 2005-10-15 Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
366
367         * device/lib/_strcmp.c: Fixed bug 1326457
368
369 2005-10-11 Raphael Neider <rneider AT web.de>
370
371         * device/lib/pic16/libio/i2c.ignore: added 1320, fixes broken builds
372         * device/lib/pic16/libdev/pic18f1320.c: added 1320's device library
373
374 2005-10-05 Maarten Brock <sourceforge.brock AT dse.nl>
375
376         * src/SDCC.y (AT): fixed bug with sfr32 addresses when built with GCC
377         * support/regression/tests/sfr16.c: added test for the sfr32 bug
378
379 2005-10-04 Raphael Neider <rneider AT web.de>
380
381         * device/include/pic16/pic18fregs.h, src/pic16/devices.inc,
382           device/lib/pic16/pics.all: added pic18f1320
383         * src/pic16/pcode.c (mnem2key): fixed prototype's argument mismatch
384
385 2005-09-30 Raphael Neider <rneider AT web.de>
386
387         * src/pic16/device.c (Pics16[]): moved device descriptions to devices.inc
388         * src/pic16/devices.inc: NEW, provides device descriptions
389         * src/pic16/gen.c (genInline): fixed handling of ';'-comments
390
391 2005-09-26 Maarten Brock <sourceforge.brock AT dse.nl>
392
393         * src/SDCCicode.c (operandOperation): added GETABIT, GETBYTE, GETWORD and
394           GETHBIT
395
396 2005-09-25 Maarten Brock <sourceforge.brock AT dse.nl>
397
398         * doc/sdccman.lyx: updated Highest Order Bit documentation,
399           documented Any Order Bit, Higher Order Byte and Higher Order Word
400         * src/SDCC.y: added tokens GETABIT, GETBYTE, GETWORD
401         * src/SDCCast.c (optimizeGetHbit): updated to also accept bool=expr&(1<<n),
402           (optimizeGetAbit): new, to get any bit, not only the high bit,
403           (optimizeGetByte): new, to get a byte from a (long) int: expr>>(8*n),
404           (optimizeGetWord): new, to get a word from a long int: expr>>(8*n),
405           (isConformingBody): also check GETABIT, GETBYTE, GETWORD,
406           (decorateType): '&': also try GETABIT, GETBYTE, GETWORD optimization,
407             RIGHT_OP: also try GETBYTE, GETWORD optimization,
408             GETABIT, GETBYTE, GETWORD: decorate them,
409           (isShiftRightLitVal, isBitAndPowOf2): new helper functions,
410           (ast_print): added GETABIT, GETBYTE, GETWORD
411         * src/SDCCcse.c (isSignedOp): added GETABIT, GETBYTE, GETWORD
412         * src/SDCCicode.c (codeTable): added GETABIT, GETBYTE, GETWORD,
413           (geniCodeBinary): new generic binary icode,
414           (ast2iCode): added GETABIT, GETBYTE, GETWORD
415         * src/port.h: updated comment for PORT.hasExtBitOp
416         * src/mcs51/gen.c (genGetAbit): new, to get any single bit,
417           (genGetByte): new, to get a single byte,
418           (genGetWord): new, to get a word from a long,
419           (gen51Code): added GETABIT, GETBYTE, GETWORD
420         * src/mcs51/main.c (hasExtBitOp): added GETABIT, GETBYTE, GETWORD
421
422 2005-09-23 Raphael Neider <rneider AT web.de>
423
424         * configure.in, configure: have device/lib/pic configured
425         * device/lib/Makefile.in: added model-pic14
426         * device/lib/clean.mk: added pic/ to clean rule
427         * device/lib/pic: added rudimentary pic14 library providing support
428           functions for multiplication/division/generic pointer access
429         * src/SDCCopt.c (convilong): mark support functions as extern
430           for pic14 port as well
431         * src/pic/gen.c (genMult): added assertions,
432           (genpic14Code): emit warning on unhandled iCodes
433         * src/pic/main.c (_hasNativeMulFor): return true only for 8x8 bit
434         * src/pic/pcode.c (pCodeOpCopy),
435         * src/pic16/pcodepeep.c (pic16_pCodeOpCopy): fixed handling of various
436           pCodeOpReg-subtypes (PO_{STATUS,INTCON,PCL,PCLATH,PCLATU,BSR,
437           SFR_REGISTER}), made safe for future extensions
438         * src/pic16/pcode.c (pic16_safepCodeUnlink): allow for removal of
439           instructions even if preceeded by SKIP instructions (also remove
440           them); removed unused code
441         * src/pic16/pcode.h: added arg2 to pCodeOpLit to match pCodeOpLit2,
442           prevents leaving parts of the structure uninitialized after copying
443
444 2005-09-22 Maarten Brock <sourceforge.brock AT dse.nl>
445
446         * src/mcs51/gen.c (genMinus): fix for undetected bug introduced 3 months
447           ago by me
448         * support/regression/tests/addsub.c: added test for the bug
449
450 2005-09-21 Raphael Neider <rneider AT web.de>
451
452         * device/include/pic16/pic18f1220.h,
453           device/lib/pic16/libdev/pic18f1220.c: added ECCPAS sfr and bitfield
454         * device/lib/pic16/Makefile.rules: added missing opening paren
455         * src/pic16/gen.c (pic16_genNot,pic16_genCpl): removed as these
456           are provided in genutils.c,
457           (genUminusFloat,genUminus,genCmpEq): added asserts on different
458           operand/result sizes,
459           (genCmp): assert on NULL pointers first, then check deref'ed values
460         * src/pic16/genutils.c (pic16_genCpl): fixed for different operand/
461           result size
462
463 2005-09-18 Raphael Neider <rneider AT web.de>
464
465         * src/pic16/gen.c (genFarPointerGet,genFarPointerSet): removed
466           as these are now unused,
467           (genPointerGet,genPointerSet): handle FPOINTERs like POINTERs
468         * src/pic16/pcode.c (pic16_symIsSpecial): assume REG_TMPs to be
469           local, avoids uninitialized pointer dereference on r->name
470         * src/pic16/ralloc.c (newReg): fixed indentation
471
472 2005-09-13 Maarten Brock <sourceforge.brock AT dse.nl>
473
474         * src/SDCCval.c (constVal): fixed bug 730366
475         * support/Util/SDCCerr.c,
476         * support/Util/SDCCerr.h: added warning W_INVALID_INT_CONST
477
478 2005-09-10 Maarten Brock <sourceforge.brock AT dse.nl>
479
480         * as/mcs51/lkmem.c (summary2): fixed report for absolute areas (bug 1210220)
481
482 2005-09-09 Maarten Brock <sourceforge.brock AT dse.nl>
483
484         * src/mcs51/peeph.def (241.x): fixed bug when comparing generic pointers
485
486 2005-09-08 Maarten Brock <sourceforge.brock AT dse.nl>
487
488         * as/hc08/lkaomf51.c (OutputName): made name unsigned char,
489           (hex2dec): made hex_digit unsigned char, removed ascii dependance
490         * as/mcs51/lkaomf51.c (OutputName): made name unsigned char,
491           (hex2dec): made hex_digit unsigned char, removed ascii dependance
492         * as/mcs51/lkarea.c (lnkarea2): sort absolute areas to the front
493         * packihx/packihx.c (hexDigit): made c unsigned char
494         * as/mcs51/lklibr.c (fndsym),
495         * link/z80/lkgb.c (gb),
496         * link/z80/lklibr.c (fndsym),
497         * link/z80/lkrloc.c (relr),
498         * sim/ucsim/libltdl/ltdl.c (load_deplibs, try_dlopen),
499         * src/SDCC.lex (checkCurrFile, process_pragma),
500         * src/SDCCglue.c (spacesToUnderscores),
501         * src/SDCCmain.c (setParseWithComma, processFile),
502         * src/asm.c (tvsprintf, printCLine),
503         * src/avr/gen.c (emitcode, aopPut),
504         * src/ds390/gen.c (emitcode),
505         * src/hc08/gen.c (emitcode, emitinline),
506         * src/mcs51/gen.c (emitcode, genInline),
507         * src/pic/pcodepeep.c (cvt_extract_destination, cvt_extract_status,
508           tokenizeLineNode),
509         * src/pic/ralloc.c (debugLog),
510         * src/pic16/pcodepeep.c (cvt_extract_destination, cvt_extract_status,
511           tokenizeLineNode),
512         * src/pic16/ralloc.c (debugLog),
513         * src/z80/main.c (_process_pragma):
514            made all ctype.h function calls safe
515         * src/SDCCopt.c: include math.h for fabs
516         * src/SDCCpeeph.c: added macros ISCHARDIGIT, ISCHARSPACE and ISCHARALNUM
517           and used them throughout the code to make ctype.h function calls safe
518         * src/ds390/main.c (asmLineNodeFromLineNode),
519         * src/mcs51/main.c (asmLineNodeFromLineNode): made p unsigned char*
520         * src/pic/gen.c (DEBUGpic14_emitcode, pic14_emitcode): made lbp
521            unsigned char*
522         * src/pic/pcode.c (mnem2key): made mnem unsigned char*,
523           (newpCodeAsmDir): made ctype.h function calls safe
524         * src/pic16/gen.c (pic16_emitpcomment, DEBUGpic16_emitcode,
525           pic16_emitcode):  made lbp unsigned char*
526         * src/pic16/pcode.c (mnem2key): made mnem unsigned char*,
527           (pic16_newpCodeAsmDir): made ctype.h function calls safe
528         * src/xa51/gen.c (emitcode),
529         * src/z80/gen.c (_emit2): made lbp unsigned char*
530         * support/Util/MySystem.c (split_command): made cmd_line and p unsigned
531            char*
532
533 2005-09-05 Raphael Neider <rneider AT web.de>
534
535         * src/pic16/ralloc.c (pic16_allocDirReg): use device specific
536           access bank splitpoint
537
538 2005-09-05 Raphael Neider <rneider AT web.de>
539
540         * device/lib/pic16/libc/Makefile: added (missing) string to SUBDIRS
541
542 2005-09-03 Maarten Brock <sourceforge.brock AT dse.nl>
543
544         * .version: changed to version 2.5.3
545         * doc/sdccman.lyx: changed version to 2.5.3,
546           documented --codeseg and --constseg and pragma codeseg and constseg,
547           documented bit parameters (reentrant) and bit returning
548         * src/SDCCicode.c (geniCodeReceive): fixed (possible) bug generating
549            currFunc->recvSize, but is this ok for all ports?
550           (ast2iCode): result of ~ on unsigned char must be cast to int for
551            bool to work
552         * src/SDCCmem.c (allocGlobal, allocLocal): don't put bit returning
553           function pointers in bit space
554         * src/SDCCsymt.c (checkSClass): allow bit returning function pointers,
555           (processFuncArgs): call port.reg_parm() with reentrancy info
556         * src/port.h,
557         * src/avr/main.c,
558         * src/ds390/main.c,
559         * src/hc08/main.c,
560         * src/pic/main.c,
561         * src/pic16/main.c,
562         * src/xa51/main.c,
563         * src/z80/main.c: port.reg_parm prototype extended with
564           "bool reentrant" parameter
565         * src/mcs51/main.c (_mcs51_regparm): use parameter reentrant instead of
566           options.stackAuto for allocating bit register parameters
567         * src/mcs51/gen.c (genNot): optimized complementing direct bit,
568           (genSend): set BitBankUsed if it is,
569           (selectRegBank): factored out of genCall for use in genPcall,
570           (genCall): removed redundant dtype assignmen, use selectRegBank,
571           (genPcall): handle returning in Carry properly, save in F0 if needed,
572           (genReceive): handle bit register parameters
573         * src/mcs51/ralloc.c (updateRegUsage): update BitBankUsed along the way,
574           (mcs51_assignRegisters): enable bit registers for all reentrant
575            functions and don't set BitBankUsed unconditionally
576         * src/mcs51/peeph.def (177.d): fixed bug if %2==%3
577         * support/regression/tests/bitvars.c: enable tests for SDCC_STACK_AUTO
578         * support/regression/tests/funptrs.c: added tests for BOOL and for return
579
580 2005-08-27 Borut Razem <borut.razem AT siol.net>
581
582         * device/lib/Makefile.in: cp on sparc-solaris (SunOS) and on
583         ppc-osx (Darwin) does not support -u option. It seems that it is
584         supported only on Linux - GNU cp
585
586 2005-08-25 Borut Razem <borut.razem AT siol.net>
587
588         * sim/ucsim/gui.src/serio.src/Makefile.in,
589           sim/ucsim/s51.src/Makefile.in, sim/ucsim/avr.src/Makefile.in,
590           sim/ucsim/z80.src/Makefile.in, sim/ucsim/hc08.src/Makefile.in,
591           sim/ucsim/xa.src/Makefile.in: install -s changed to 2 steps:
592           install and strip, since the strip at /usr/ccs/bin should be used
593           on solaris
594
595 2005-08-24 Borut Razem <borut.razem AT siol.net>
596
597         * clean.mk, device/lib/clean.mk: find on sparc-solaris does not support -maxdepth option
598
599 2005-08-23 Bernhard Held <bernhard AT bernhardheld.de>
600
601         * src/SDCCopt.c (convertToFcall): fixed modulus with divisors 1 and
602         ffffffffu
603
604 2005-08-23 Maarten Brock <sourceforge.brock AT dse.nl>
605
606         * as/mcs51/aslink.h: completed lkrloc.c prototypes
607         * as/mcs51/lkmain.c (link_main): fixed warning
608         * device/include/stdbool.h: ds390 has no advanced bit support yet
609         * src/SDCC.y: use SPEC_SHORT and renamed _signed to b_signed
610         * src/SDCCsymt.c: use SPEC_SHORT and renamed _signed to b_signed
611         * src/SDCCsymt.h (struct specifier): renamed _xxx bitfields to b_xxx
612           and updated their macros
613         * src/SDCCval.c (constVal): updated comment for renamed b_long
614
615 2005-08-22 Maarten Brock <sourceforge.brock AT dse.nl>
616
617         * as/mcs51/asdata.c: changed ctype['['] to BINOP
618         * as/mcs51/asexpr.c (expr): added case '[' for bit access in bdata,
619           (term): abused bit 15 of s_addr to indicate bit-addressable bytes,
620           (oprio): set priority for '['
621         * as/mcs51/aslink.h: added define R_BIT, and prototypes for adb_bit
622            and adb_24_bit
623         * as/mcs51/asm.h: added defines R_BIT and S_BIT
624         * as/mcs51/lkarea.c (lnksect2): use T for seg BIT_BANK and overlay it
625         * as/mcs51/lkdata.c: changed ctype['['] to BINOP
626         * as/mcs51/lkmain.c (Areas51): rel2 contains 12 (=C) areas now,
627           added overlayable BIT_BANK area
628         * as/mcs51/lkmem.c (summary): add BIT_BANK to BSEG_BYTES in the report,
629           (summary2): explain 'T' in legenda
630         * as/mcs51/lkrloc.c: replaced old K&R style,
631           (relr): added R_BIT processing,
632           (errmsg): added "Bit-addressable relocation error",
633           (adb_bit): added for converting from byte- to bit-addressable space,
634           (adb_24_bit): added for converting from byte- to bit-addressable space
635         * device/include/stdbool.h: changed BOOL to __bit for mcs51 as it can be
636            used in reentrant functions now even as return value
637         * device/lib/_gptrput.c (_gptrput): removed obsolete code
638         * src/SDCCast.c (resultTypePropagate): also propagate AND_OP and OR_OP,
639           (decorateType): case '!', GETHBIT, AND_OP, OR_OP: result in bool or char
640         * src/SDCCglobl.h: added indicator BitBankUsed
641         * src/SDCCglue.c (glue): emit area BIT_BANK with byte 'bits' and equ's for
642            the bit registers b0-b7
643         * src/SDCCicode.c (operandFromSymbol): removed IS_BITVAR check,
644           (geniCodeCast): fixed bug 1263853,
645           (geniCodeLogicAndOr): put result in bool or char,
646           (geniCodeReceive): added parameter func for accessing the return type,
647           (geniCodeFunctionBody): pass func to geniCodeReceive
648         * src/SDCCmain.c: added indicator BitBankUsed
649         * src/SDCCmem.c (allocLocal): explicitly set sclass for V_BIT
650         * src/SDCCsymt.c (newBoolLink): added for creating a bool/bit,
651           (checkSClass): don't put automatic bool/bit on stack,
652           (checkFunction): removed check on function cannot return bit
653         * src/SDCCsymt.h: added newBoolLink prototype
654         * src/mcs51/gen.c (rb1regs): added bit registers,
655           (movc): created for assigning to carry,
656           (pushReg, popReg): created for pushing registers,
657           (sameRegs): check both AOP_REG and AOP_CRY types,
658           (aopOp): handle bit registers,
659           (aopPut): optimization no self-assign,
660           (saveRegisters): push reg->base (bits) only once for bit registers,
661            and use pushReg,
662           (unsaveRegisters): pop reg->base only once and use popReg,
663           (assignResultValue): added parameter func and return in carry for bits,
664           (genIpush): optimization no reload in A if not changed,
665           (genSend): bit parameters in reentrant functions are passed in bit
666            registers by first assigning to bits in B, then save registers and
667            copy B to bits,
668           (genCall): handle returning in Carry properly, save it in F0 if needed,
669           (genPcall): updated assignResultValue call, this is not safe yet for bit
670            returning function !!!
671           (genFunction): don't generate equ's for bit registers and use pushReg,
672           (genEndFunction): take care of bit returning functions and use popReg,
673           (genRet): return bit in Carry,
674           (genIfx): optimize bit registers and other directly addressable bits,
675           (genReceive): updated assignResultValue call
676         * src/mcs51/main.c (_mcs51_reset_regparm): added regBitParmFlg,
677           (_mcs51_regparm): allow passing of upto 8 bit parameters in bit
678            registers when using stack-auto
679         * src/mcs51/ralloc.c (_G): added allBitregs,
680           (regs8051): added the bit registers,
681           (createStackSpil): use macro IS_BIT,
682           (getRegBit): added to allocate a bit register, else spill,
683           (getRegBitNoSpil): added to allocate a bit register, else a gpr,
684           (updateRegUsage): factored out to ease stepping while debugging,
685           (serialRegAssign): use updateRegUsage, only spill bits if necessary,
686            also allocate bit registers,
687           (fillGaps): handle bit registers,
688           (findAllBitregs): added to create bit vector with all bit registers,
689           (mcs51_allBitregs): returns this bit vector,
690           (mcs51_assignRegisters): when using stack-auto use bit registers for
691            passing parameters and creating local variables
692         * src/mcs51/ralloc.h: added B0_IDX..B7_IDX and prototype mcs51_allBitregs
693
694 2005-08-22 Borut Razem <borut.razem AT siol.net>
695
696         * device/lib/Makefile.in: replaced find option -or with -o
697           to make it run on solaris
698
699 2005-08-22 Raphael Neider <rneider AT web.de>
700
701         * src/pic16/gen.c (pic16_loadFromReturn): added check for AOP_PCODE,
702           fixes #1265442 (crash on Solaris)
703
704 2005-08-20 Borut Razem <borut.razem AT siol.net>
705
706         * configure, configure.in: added tests for libsocket and libnsl libraries,
707           requred by sdcdb on sparc-solaris; generate support/regression/Makefile
708           from support/regression/Makefile.in
709         * support/regression/Makefile.in: added
710         * device/lib/pic16/Makefile.common.in: force make to use bash shell
711         * sim/ucsim/libtool: regenerated on sparc-solaris
712         * sim/ucsim/avr.src/Makefile.in, sim/ucsim/hc08.src/Makefile.in,
713           sim/ucsim/s51.src/Makefile.in, sim/ucsim/xa.src/Makefile.in,
714           sim/ucsim/z80.src/Makefile.in: removed GNU ld specific linker options
715           -Wl,--start-group and -Wl,--end-group to enable ucsim compilation on
716           sparc-solaris, which doesn't use GNU ld linker
717         * device/lib/Makefile.in: cp on sparc-solaris (SunOS) does not support -u option
718         * as/Makefile: find on sparc-solaris does not support -maxdepth option
719
720 2005-08-19 Maarten Brock <sourceforge.brock AT dse.nl>
721
722         * src/mcs51/peeph.def: updated comments
723
724 2005-08-16 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
725
726         * device/lib/_gptrget.c,
727         * device/lib/_gptrput.c: slightly shorter
728         * doc/sdccman.lyx: incremented version
729         * src/mcs51/peeph.def: moved peephole comments to the line of first
730           change to better keep line correlation, reanimated 186.e
731         * src/mcs51/peeph.def: renamed similar peepholes by using suffixes
732
733 2005-08-16 Slade Rich <slade_rich AT users.sourceforge.net>
734
735         * src/pic/pcode.c : Pasted ".line" assembly directives patch from
736           David Saxton with quotes around file name.
737
738 2005-08-15 Borut Razem <borut.razem AT siol.net>
739
740         * support/regression/tests/bitfields.c, support/regression/tests/bitvars.c,
741           support/regression/tests/bitwise.c, support/regression/tests/literalop.c,
742           support/regression/tests/rotate.c, support/regression/tests/zeropad.c:
743           make tests run on x86_64 platform
744
745 2005-08-13 Raphael Neider <rneider AT web.de>
746
747         * device/lib/pic16/Makefile.subdir: weakened clean-intermediate rule
748           as it might be executed DURING a build (parallel make is wonderful)
749
750 2005-08-13 Raphael Neider <rneider AT web.de>
751
752         * device/lib/Makefile.in (port-specific-objects-pic16):
753           revert to cp $(PORT)/bin/*.* $(PORTDIR)
754         * device/lib/pic16/Makefile: added .PHONY targets, removed builddir
755           dependency
756         * device/lib/pic16/Makefile.rules: build subdirs before creating
757           the library, removed builddir rule, create $(builddir) early in
758           recurse rule, use empty recurse rule for leaf directories
759         * device/lib/pic16/Makefile.subdir: added phony targets, ignore
760           mkdir errors (race condition), removed duplicate suffix "hex"
761           from clean rules
762         * device/lib/pic16/libdev/Makefile: recursive make via + and $(MAKE)
763         * device/lib/pic16/libio/Makefile: create sub-make's builddir early,
764           prevents mkdir -p from aborting on Alpha
765
766 2005-08-12 Raphael Neider <rneider AT web.de>
767
768         * src/pic16/glue.c (pic16_print(G)PointerType): do not flush
769           db-statements in order to allow for arrays of pointers in code
770           sections to be placed without interspersed 0-padding, fixes
771           bug #1256215
772         * (emitStatistics): fixed division by zero for pic18f1220
773         * src/pic16/pcode.c: buffer (up to) 12 DB directives to allow for
774           unpadded writing of 8-bit, 16-bit, 24-bit and 32-bit values
775         * (pic16_emitDS): respect DB_ITEMS_PER_LINE
776         * (pic16_pCodeConstString): keep track of already emitted string
777           literals to prevent "duplicate definitions of symbol _str_NR"
778         * src/pic16/ralloc.c (pic16_allocRegByName): removed not so helpful
779           debug message
780         * device/lib/Makefile.in: ignore failing PIC16 library builds
781         * device/lib/pic16/Makefile: do not build if gputils are missing
782         * device/lib/pic16/Makefile.common.in: do not enforce MAKEFLAGS=-s
783
784 2005-08-10 Raphael Neider <rneider AT web.de>
785
786         * device/lib/Makefile.in: fixed copying pic16 libraries (broken by
787           my last commit)
788
789 2005-08-10 Raphael Neider <rneider AT web.de>
790
791         * src/*.c, src/pic16/{gen.c,glue.c,main.c}: applied Vangelis
792           Rokas' patch to add the new fixed point type "__fixed16x16"
793         * device/lib/pic16/libsdcc/fixed16x16: added Vangelis' support
794           functions for __fixed16x16 arithmetics
795         * device/lib/pic16: reimplemented the build system to support
796           a separate build directory, better handling of libio (create
797           the library in a separate subdir for each architecture) and
798           easier configuration (centralized in Makefile.common)
799
800 2005-08-07 Raphael Neider <rneider AT web.de>
801
802         * src/pic16/gen.c (genrshTwo): fixed sign extension
803         * src/pic16/device.c: added pic18f2320, 4220 and 4320
804         * device/include/pic16/pic18f2220.h: changed some bit definitions,
805           added T0CONbits
806         * device/include/pic16/pic18f4220.h: NEW, header for
807           pic18f4220 and pic18f4320
808         * device/include/pic16/pic18fregs.h: added new devices,
809           embraced Nop(), ClrWdt(), Sleep() and Reset() with do {} while(0)
810         * device/include/pic16/signal.h: resolved name clashes
811           on bit definitions, added DEF_HANDLER2(sig1,sig2,handler)
812           to also allow testing for interrupt enable bits, added
813           comments on how to use the macros
814         * device/lib/pic16/libdev/pic18f2220.c: added T0CONbits
815         * device/lib/pic16/libdev/pic18f{2320,4220,4320}.c: NEW,
816           register definitions for the devices
817         * device/lib/pic16/pics.all: added new devices
818         * device/lib/pic16/libc/stdlib/calloc.c: fixed zeroing
819           allocated memory
820         * device/lib/pic16/libc/stdlib/memfree: do not count
821           the block header as free memory
822         * device/lib/pic16/libc/stdlib/memmisc.c (_initHeap):
823           simplified and added missing end-of-blocklist-marker
824           (reported by Peter Onion, fixes #1252814)
825         * (_mergeHeapBlock): fixed loop condition
826         * device/lib/pic16/libc/stdlib/realloc.c: return NULL for
827           len==0, restructured code
828         * device/lib/pic16/libc/stdlib/{malloc,memfreemax}.c: cleaned
829           up a bit, reduced bitfield accesses, prevent endless loops
830           in case of heap corruption
831         * device/lib/pic16/libc/stdlib/x_ftoa.c: disabled
832           "unreferenced arguments/must return a value" warnings
833         * device/lib/pic16/libio/usart/ubaud.c (usart_baud):
834           replaced BAUDREG with SPBRG
835         * device/lib/pic16/libsdcc/lregs/{lrrest.c,lrst.c},
836           device/lib/pic16/debug/gstack/gstack.c: replaced
837           _naked, _asm, _endasm with __naked, __asm, __endasm
838
839 2005-08-05 Raphael Neider <rneider AT web.de>
840
841         * src/pic16/gen.c (pic16_aopGet): fixed handling of offsets in
842           AOP_PCODE operands, fixes multibyte union-bitfield-accesses
843
844 2005-08-05 Borut Razem <borut.razem AT siol.net>
845
846         * device/lib/Makefile.in: added missing ';'
847         * configure: removed ^M characters
848
849 2005-08-04 Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
850
851         * device/include/mcs51/at89c51ed2.h, device/include/mcs51/p89v51rd2.h,
852           device/include/mcs51/at89s53.h: changed to GNU Lesser General Public
853           License
854
855 2005-08-04 Borut Razem <borut.razem AT siol.net>
856
857         * configure.in: pic16 libraries build 2nd try - enable running
858           configure in device/lib/pic16
859         * configure: regenerated from configure.in
860         * device/lib/Makefile.in: create $(PORT)/bin directory
861
862 2005-08-03 Raphael Neider <rneider AT web.de>
863
864         * src/pic16/gen.c (pic16_derefPtr): NEW, single place
865           to get/set values via pointers
866         * (genUnpackBits,genPackBits): changed detection of
867           ptr->bitfield vs. sym.bitfield, fixed access via generic
868           pointers, removed dead (wrong) code for multibyte bitfields
869         * (genNearPointerGet, genGenPointerGet): removed useless code,
870           fixed bitfield detection, fixes #1250594
871         * (genNearPointerSet): removed useless code
872         * src/pic16/gen.h: renamed pic16_emitpcode to pic16_emitpcode_real
873           and introduced macro pic16_emitpcode that conditionally emits
874           the origin of the following pCode (useful for debugging SDCC)
875         * src/pic16/pcode.c: changed (and disabled) some debug outputs
876         * (createDefmap): fixed handling of LFSR for --optimize-df
877
878 2005-08-02 Borut Razem <borut.razem AT siol.net>
879
880         * device/lib/Makefile.in: pic16 libraries build enabled since
881           gputils-0.13.2 are now localy installed at sourceforge's compile farm
882
883 2005-08-02 Raphael Neider <rneider AT web.de>
884
885         * src/pic16/gen.c (genPackBits): removed deprecated warning
886         * (genGenPointerSet): fixed bitfield detection
887
888 2005-08-02 Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
889
890         * device/include/mcs51/msm8xc154s.h: Removed PT2 definition, now in 8052.h.
891
892 2005-07-31 Raphael Neider <rneider AT web.de>
893
894         * device/lib/pic16/libdev/pic18f458.c,
895           device/include/pic16/pic18f458.h: added missing T0CONbits
896
897 2005-07-29 Maarten Brock <sourceforge.brock AT dse.nl>
898
899         * device/include/mcs51/msm8xc154s.h: added, thanks to Matthias Arndt
900
901 2005-07-28 Maarten Brock <sourceforge.brock AT dse.nl>
902
903         * src/mcs51/gen.c (operandsEqu): fixed bug 1246687
904
905 2005-07-23 Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
906
907         * device/include/mcs51/at89c51ed2.h: added.
908
909 2005-07-23 Raphael Neider <rneider AT web.de>
910
911         * src/pic/gen.h: added emitpcode macro for debugging
912         * src/pic/gen.c (emitpcode): renamed to emitpcode_real
913           and replace by macro adding debug information on demand
914         * (genNot): fixed to C semantics (!0 = 1; !x = 0 iff x != 0)
915         * (gencjne): tried to fix; replaced with correct (slower) code
916         * (gen{Unp,P}ackBits): fixed single bit access
917         * src/pic/pcode.c (AnalyzepCode): fixed DFPRINTF argument
918         * src/pic/pcodepeep.c (pCodeSearchCondition): fixed finding
919           previous instruction
920         * src/pic/pcoderegs.c (regIsSpecial): NEW, check whether a
921           register has to be handled with care (forbidding movement
922           of assignments/uses, removing assignments completely, ...)
923         * (pCodeOptime2pCodes): make use of regIsSpecial
924         * added lots of debugging output (commented out)
925         * src/pic/rallloc.c (deassignLRs): prevent operand registers
926           from being reused as result UNLESS it is known to work
927
928 2005-07-23 Maarten Brock <sourceforge.brock AT dse.nl>
929
930         * support/Util/dbuf.h: include <stddef.h> for size_t
931         * .version: changed to version 2.5.2
932
933 2005-07-23 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
934
935         * src/SDCCloop.c (loopInvariants): fixed bug #1234048
936
937 2005-07-22 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
938
939         * src/hc08/gen.c (genMinus): fixed bug #1241835,
940           (genModOneByte): removed needless psha/pula
941
942 2005-07-22 Raphael Neider <rneider AT web.de>
943
944         * src/SDCCmain.c (linkEdit): initialized linkerScriptFileName,
945           have PIC14 handled like PIC16, fixes broken pic14 linker calls
946         * src/pic/gen.c (resolveIfx): do not "invent" labels
947         * (genSkipc): changed to positive logic
948         * (genSkipCond): removed as no longer needed
949         * (pic14_mov2w_regOrLit,genCmp): NEW, replacement for buggy version,
950           backport from PIC16
951         * (genLeftShift): check operands are in different registers
952         * src/pic/genarith.c (genPlus): replaced INCF with ADDLW as
953           INCF does not update CARRY...
954         * src/pic/main.c: fixed _linkCmd
955         * src/pic/pcode.c (unlinkpCode): added inactive code
956         * src/pic/ralloc.c (deassignLRs): keep arguments to shift operations
957           alive (do not assign result and operand overlapping registers)
958
959 2005-07-22 Raphael Neider <rneider AT web.de>
960
961         * src/pic/device.c (dump_sfr): replaced register declaration with
962           call to emitSymbolToFile() to avoid duplicate symbols
963         * (assignRelocatableRegisters): do not declare external symbols
964         * src/pic/ralloc.c (allocNewDirReg): fixed to get size of arrays
965           right (take size of type, not etype)
966         * (allocDirReg): fixed call to allocNewDirReg() to pass OP_SYM_TYPE
967         * (writeUsedRegs): also dump dynDirectRegs (e.g. local variables)
968         * (packRegsForAccUse): disabled assignment of WREG as
969           the result reg to prevent occurence of just fixed #1235003,
970           fixes #1242954
971         * src/pic/glue.c (emitSymbolToFile): NEW, central place to declare
972           symbols (avoids duplicate symbols in .asm file)
973         * (pic14emitRegularMap): use emitSymbolToFile()
974         * src/pic/gen.c (aopOp): fixed spillLocation handling
975         * (gen{Unp,P}ackBits): fixed acquiring bit-operands
976         * (genDataPointerSet): removed unneccessary variables/output
977
978 2005-07-22 Maarten Brock <sourceforge.brock AT dse.nl>
979
980         * as/mcs51/lkarea.c: enlarged codemap for banked memory
981         * device/lib/mcs51/crtbank.asm: added # to 0x0F
982
983 2005-07-21 Raphael Neider <rneider AT web.de>
984
985         * src/pic/gen.c (aopOp): do not generate AOP_ACC operands as pic14
986           architecture cannot handle them efficiently, fixes bug #1235003
987         * src/pic16/device.c (pic16_dump_{u,i}section,pic16_dump_int_registers):
988           check for empty sets before using them (fixes bug #1232190)
989
990 2005-07-19 Maarten Brock <sourceforge.brock AT dse.nl>
991
992         * as/mcs51/lkarea.c (lnkarea, lnkarea2): improved BSEG size calculation,
993           (lnksect2): generate warnings for memory overlap
994         * src/SDCC.lex (doPragma, process_pragma): added pragma's codeseg and
995           constseg to set the name of these segments so you can instruct the linker
996           to place them in banks
997         * src/SDCCast.c (decorateType): use new macro IS_FUNCPTR()
998         * src/SDCCglobl.h: added MODEL_HUGE to enum,
999           added code_seg and const_seg to options
1000         * src/SDCCglue.c (emitMaps): use options.const_seg,
1001           (createInterruptVect): put interrupt vectors in segment HOME,
1002           (glue): put HOME before static segment and put the main glue in HOME,
1003           (glue): use options.code_seg
1004         * src/SDCCicode.c (geniCodeCall): use new macro IS_FUNCPTR()
1005         * src/SDCCmain.c: added option --codeseg and --constseg to set the name of
1006           these segments so you can instruct the linker to place them in banks
1007           (linkEdit): use code_loc for HOME segment which should be the first
1008           segment in code memory now
1009         * src/SDCCmem.c: fixed more stuff like bug 1238386
1010         * src/SDCCsymt.c (getSize): use generic pointer size for banked functions,
1011           (changePointer): don't change function pointers to code pointers for
1012           banked functions,
1013           (compareType): added exceptional check for banked function pointers
1014         * src/SDCCsymt.h: changed IFFUNC_ISBANKEDCALL, added IS_FUNCPTR
1015         * src/hc08/main.c (_hc08_genAssemblerPreamble): put HOME first, put CSEG
1016           after static in code memory
1017         * src/mcs51/gen.c: added aopLiteralLong prototype,
1018           (aopForSym): use getSize for functions,
1019           (genCall): generate banked calls over one trampoline __sdcc_banked_call
1020           in HOME with lsb of address in r0, msb in r1 and bank in r2, use
1021           -Wl-bBANKSEG=0xbbaaaa option to set the address (aaaa) and bank (bb) of
1022           the segment,
1023           (genPcall): use call for literal function pointers and generate banked
1024           calls over the one trampoline so there's only one place for the user to
1025           modify according to his/hers hardware,
1026           (genEndFunction): jump to __sdcc_banked_ret in HOME for banked functions,
1027           (genPlusIncr): moved check icount>4 beyond inc dptr optimization
1028         * src/mcs51/main.c: added keyword banked,
1029           (_mcs51_genExtraAreas): put HOME first followed by GSINIT, STATIC and CSEG
1030         * support/Util/SDCCerr.c,
1031         * support/Util/SDCCerr.h: added E_BANKED_WITH_CALLEESAVES, registers are
1032           needed for passing the bank and address to the trampoline
1033         * device/lib/mcs51/crtbank.asm: added for bankswitching
1034         * device/lib/mcs51/Makefile: added crtbank
1035
1036 2005-07-16 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
1037
1038         * src/SDCCcse.c (algebraicOpts): fixed loss of volatility
1039           for fields at offset 0 of a struct or union as reported
1040           on 2005-07-07 in the developer mailing list.
1041
1042 2005-07-15 Maarten Brock <sourceforge.brock AT dse.nl>
1043
1044         * src/SDCCmem.c: fixed bug 1238386
1045
1046 2005-07-12 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
1047
1048         * src/mcs51/peeph.def: added labelrefcounting for peepholes
1049           (patch #1144962), added peephole 300, enabled 259.x
1050         * doc/sdccman.lyx: removed screenshot and provided link instead
1051
1052 2005-07-05 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
1053
1054         * doc/sdccman.lyx: added section about debugging with ddd
1055         * doc/figures/ddd_example.eps: screenshot of debugging session
1056
1057 2005-07-04 Raphael Neider <rneider AT web.de>
1058
1059         * src/pic/gen.c (genPointerGet): handle pointers to CONST values
1060           like CODE pointers, fixes #1115683
1061         * src/pic/pcode.c (DoBankSelect): forget LastRegIdx during function
1062           call, fixes bugs #1232211, #1228110,
1063           fixed wrong casts to pCodeFlow from pCodeInstructions
1064
1065 2005-07-04 Raphael Neider <rneider AT web.de>
1066
1067         * src/pic/gen.c (popGet): changed assert to allow for
1068           bit operands
1069         * (popGetAddr): changed signature to provide
1070           an additional index, patched all call sites
1071         * (genCmpEq): handle literal-like operands correctly
1072         * (genAddrOf): added sanity checks on __code/__data pointers
1073         * (genAssign): added handling of symbols from __code section
1074         * (gencjne): do not generate code for comparisons whose result
1075           is neither stored nor used, fixes bug #1171114
1076         * (AccLsh, AccRsh): operate on operand instead of WREG
1077         * (shift{Left,Right}_Left2ResultLit): NEW, size independant
1078           replacement for Shift{LR}{12}Left2Result; shift (byte/int/long)
1079           by known count
1080         * rewrote complete shift-by-literal logic, commented unused
1081           functions out
1082         * (genConstPointerGet): get multiple bytes (if result size > 1),
1083           fixed handling of non-immediate addresses
1084         * (genPointerGet): handle CODE pointers like CONST pointers
1085         * (genpic14Code): insert C-SRC lines as Cource-pCodes
1086         * ({aop,op}_isLitLike): NEW, single place to decide whether an
1087           operand is to be treated as a literal or not
1088         * (mov2w,genPcall,genCmpEq),
1089           src/pic/genarith.c: use aop_isLitLike() to decide between
1090           literal/register contents
1091         * (addSign): added missing offset
1092         * src/pic/gen.h: remove newline after FENTRY/FEXIT comments,
1093           only emit comment in debug-mode,
1094           use {aop,op}_isLitLike throughout the file
1095         * src/pic/glue.c: fix initializers for pointers (work in progress)
1096         * src/pic/pcode.c (get_op): honor index on _const symbols
1097         * ({reset,dump}pCodeStatistics): NEW, estimate code size
1098         * (dumppBlock): added pCode size estimation
1099         * src/pic/ralloc.c (deassignLRs,serialRegAssign,packRegisters):
1100           check for IS_SYMOP before OP_SYMBOL'ing
1101         * fixed indentation, compacted switch-statements
1102         * (allocReg): find free register and allocate it instead of
1103           allocating new registers all the time
1104         * (deassignLRs): prevent POINTER_GET's from being assigned the same
1105           registers as its operands (necessary only for multibyte GETs)
1106
1107 2005-07-01 Raphael Neider <rneider AT web.de>
1108
1109         * src/pic/gen.h: added prototypes emitpComment, popGetAddr and
1110           debugging .asm-output macros FENTRY + FEXIT
1111         * src/pic/gen.c (Safe_vsnprintf): NEW, is there a more generic
1112           way... I wonder...
1113         * (emitpComment): NEW, printf to pCode
1114         * (popGet): added assert on too large offsets, fixed PO_IMMEDIATE's
1115           offset handling
1116         * (popGetAddr): NEW, variant of popGet to access an immediates
1117           high(er) bytes instead of the n'th byte of memory they reference,
1118           replaced popGet with popGetAddr where neccessary
1119         * (genDataPointerGet): reactivated and fixed implementation
1120         * (genNearPointerGet): enabled call to genDataPointerGet, fixes array-
1121           accesses
1122         * (genDataPointerSet): fixed multibyte assignments
1123         * (genpic14Code): fixed --i-code-in-asm handling
1124         * src/pic/genarith.c: fixed PO_IMMEDIATE issue using popGetAddr,
1125         * (genPlus): fixed index-out-of-bounds error
1126         * src/pic/pcode.c (get_op): fixed PO_IMMEDIATE's index/offset handling
1127         * src/pic/ralloc.c: added debugging output macro FENTRY2
1128         * (spillThis): fixed indentation, enbraced for-body for clarity
1129         * (rematStr): commented out as now unused
1130         * (regTypeNum): commented out special spill case (overwrites
1131           arbitrary values)
1132         * fixes bugs #1229346, #1216476 (both arrays) and #1115667 (SIGSEGV)
1133
1134 2005-06-30 Maarten Brock <sourceforge.brock AT dse.nl>
1135
1136         * doc/sdccman.lyx: documented sfr16/sfr32,
1137           added example for using storage class with function pointers
1138         * src/mcs51/gen.c (genPlusIncr): optimized small offsets from dptr
1139
1140 2005-06-28 Maarten Brock <sourceforge.brock AT dse.nl>
1141
1142         * device/lib/_gptrget.c: also push/pop _PSBANK, added # to 0x03
1143         * device/lib/_itoa.c,
1144         * device/lib/_ltoa.c: optimized codesize
1145         * src/SDCCsymt.c (checkSClass): added sanity check for sfr at addresses,
1146           but don't know how to suppress the double warning.
1147         * src/mcs51/gen.c (genPlusIncr): fixed bug when incrementing volatile int's
1148         * support/Util/SDCCerr.c,
1149         * support/Util/SDCCerr.h: added warning W_SFR_ABSRANGE for sanity check
1150
1151 2005-06-27 Maarten Brock <sourceforge.brock AT dse.nl>
1152
1153         * as/mcs51/asexpr.c (expr): disabled warning "not in .flat24 mode",
1154           fixed old K&R prototypes
1155         * as/mcs51/asout.c (outrb): always output as if generating 24bit addresses
1156         * device/lib/_gptrget.c,
1157         * device/lib/_gptrgetc.c,
1158         * device/lib/_gptrput.c: changed versions for new memory indicator values,
1159           also new versions for small generic pointers and banked generic pointers
1160         * src/port.h: added const_name
1161         * src/SDCC.lex: added keywords sfr16, __sfr16, sfr32, __sfr32
1162         * src/SDCC.y: added tokens SFR16, SFR32 and their sfr_attributes
1163         * src/SDCCcse.c (findPrevIc): check all associative operators
1164         * src/SDCCglue.c (emitMaps): use CONST_NAME if defined
1165         * src/SDCCicode.h: added macro IS_ASSOCIATIVE
1166         * src/SDCCmem.c: updated comments,
1167           set far-space to 0 for pdata, results in optimized code
1168         * src/SDCCmem.h: added macro CONST_NAME
1169         * src/SDCCsymt.h: renumerated generic pointer types GPTYPE_... thereby
1170           moving the info into the highest bits, see also gptrget/gptrput
1171         * src/src.dsp: added sdcc.ico to project files
1172         * src/avr/gen.c (genCast): fixed bug 0x%d
1173         * src/avr/main.c (avr_port): added "CONST (CODE)" for const_name
1174         * src/ds390/gen.c (aopForRemat, adjustArithmeticResult): disconnected direct
1175           relation between ptr_type and DCL_TYPE,
1176           (genCast): fixed bug 0x%d
1177         * src/ds390/main.c (ds390_port, tininative_port, ds400_port): added "CONST
1178           (CODE)" for const_name
1179         * src/hc08/gen.c (genCast): fixed bug 0x%d
1180         * src/hc08/main.c (_hc08_genAssemblerPreamble): added .area ...const_name,
1181           (hc08_port): added "CONST (CODE)" for const_name
1182         * src/mcs51/gen.c (aopForSym): optimized pushing ACC,
1183           (aopForRemat, adjustArithmeticResult): disconnected direct relation
1184           between ptr_type and DCL_TYPE,
1185           (aopGetUsesAcc, aopGet, aopPut): changed first parameter from asmop* to
1186           operand* and took AOP() inside function so sfr-ness can be checked,
1187           (all over): repaired calls to aopGetUsesAcc, aopGet, aopPut to comply with
1188           new prototype,
1189           (genFunction, genEndFunction): optimized stack setup,
1190           (genMinus): optimized for literals with ending zeroes (in bytes),
1191           (genCast): fixed bug 0x%d
1192         * src/mcs51/main.c (_mcs51_keywords): added sfr16 and sfr32,
1193           (mcs51_port): added "CONST (CODE)" for const_name
1194         * src/mcs51/peeph.def: made rule 226 more generic
1195         * src/pic/main.c (pic_port): added "CONST (CODE)" for const_name
1196         * src/pic16/main.c (pic16_port): added "CONST (CODE)" for const_name
1197         * src/xa51/main.c (xa51_port): added "CONST (CODE)" for const_name
1198         * src/z80/main.c (z80_port): added NULL for const_name,
1199           (gbz80_port): added NULL for const_name
1200         * support/regression/tests/bug663539.c,
1201         * support/regression/tests/sfr16.c: new tests
1202
1203 2005-06-25 Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
1204
1205         * device/include/mcs51/p89v51rd2.h, device/include/mcs51/at89s53.h: added.
1206
1207 2005-06-24 Raphael Neider <rneider AT web.de>
1208
1209         * device/lib/pic16/libdev/pic18f[68][567]20.c:
1210           corrected typos...
1211         * device/include/pic16/signal.h: added USBIF
1212           and SIG_USB
1213
1214 2005-06-24 Raphael Neider <rneider AT web.de>
1215
1216         * device/lib/pic16/libdev/pic18f2455.c,
1217           device/include/pic16/pic18f2455.h: NEW
1218         * device/include/pic16/pic18fregs.h,
1219           device/lib/pic16/pics.all,
1220           src/pic16/device.c: added 18f2455
1221         * device/lib/pic16/libdev/pic18f[68][567]20.c,
1222           device/include/pic16/{pic18f[68][567].h,usart.h}:
1223           replaced MULTIPLE_USARTS define with more relaible
1224           compatibility sfrs (for USART access)
1225
1226 2005-06-20 Slade Rich <slade_rich AT users.sourceforge.net>
1227
1228         * src/pic/pcode.c : Fixed problem when a string constant contains a "\r\n"
1229           and the output asm file line is printed on two lines.
1230
1231 2005-06-19 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
1232
1233         * sim/ucsim/hc08.src/inst.cc (inst_condbranch): fixed simulation of
1234           BGT, BLE, BHI, and BLS instructions
1235         * src/hc08/gen.c (outAcc, outBitC, outBitNV, genCmpLt, genCmpGt,
1236           genCmpEq): removed
1237         * src/hc08/gen.c (genCmpEQorNE, genCmp, branchopCmp, nameCmp,
1238           negatedCmp, exchangedCmp, genhc08Code): rewrite of comparison handling,
1239           fixes bug #1216342
1240         * src/hc08/peeph.def: added rules 2g - 2l for new conditional branches
1241
1242 2005-06-15 Raphael Neider <rneider AT web.de>
1243
1244         * src/pic16/NOTES: moved Vangelis from active developers to people to contact
1245         * device/include/pic16/{6520.h,8520.h}: fixed configuration bits
1246         * src/pic16/gen.c (): prevent iTemps from being considered to be in CODESPACE,
1247           fixes bug #1221120; for symbols in CODESPACE get number of bytes to read from
1248           OP_SYM_TYPE() instead of OP_SYM_ETYPE()
1249
1250 2005-06-06 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
1251
1252         * device/include/mcs51/reg764.h: Changed PB0 to PBO as requested by
1253           Marcel Telka in bug #1215704
1254
1255 2005-06-02 Slade Rich <slade_rich AT users.sourceforge.net>
1256
1257         * src/pic/pcode.c : Changed pseudo stack size to 15 to allow WSAVE to be
1258           located in shared memory bank.
1259
1260 2005-05-31 Raphael Neider <rneider AT web.de>
1261
1262         * src/pic16/{gen.c,genarith.c}: replaced sign-extension
1263           "CLRF, BTFSC <signbit>, DECF/COMF" with side-effect-free
1264           "CLRF, BTFSC <signbit>, SETF"; fixes "long>>9"
1265
1266 2005-05-27 Maarten Brock <sourceforge.brock AT dse.nl>
1267
1268         * device/lib/_strncpy.c: fixed the fix
1269
1270 2005-05-26 Raphael Neider <rneider AT web.de>
1271
1272         * src/pic16/glue.c (pic16_printIvalChar): fixed _constant_ string
1273           initializers with \0, bug #1208187
1274         * src/pic/glue.c (printIvalChar): fixed (non- and constant) string
1275           intializers with \0, bug #1208187
1276
1277 2005-05-26 Raphael Neider <rneider AT web.de>
1278
1279         * src/pic16/glue.c (pic16_printIvalChar): fixed string
1280           initializers with \0, bug #1208187
1281         * src/pic16/main.c (_process_pragma): added sanity checks
1282           for stack position and size, emit warnings when appropriate
1283
1284 2005-05-26 Maarten Brock <sourceforge.brock AT dse.nl>
1285
1286         * device/lib/_strncpy.c: fixed not filling with \0
1287
1288 2005-05-26 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
1289
1290         * src/SDCCast.c (funcOfType, funcOfTypeVarg, stringToSymbol,
1291           createFunction),
1292         * src/SDCC.y (external_definition, enumerator, parameter_declaration,
1293           compound_statement),
1294         * src/SDCCsymt.h,
1295         * src/SDCCsymt.c (addSymChain, processFuncArgs): fixed bug #1159134
1296
1297 2005-05-24 Raphael Neider <rneider AT web.de>
1298
1299         * src/pic16/glue.c (pic16_printGPointerType): fixed #1207796
1300
1301 2005-05-24 Raphael Neider <rneider AT web.de>
1302
1303         * device/include/pic16/pic18f{442,452,458}.h: fixed wrong
1304           TRISE definitions, closes bug #1162453
1305
1306 2005-05-22 Raphael Neider <rneider AT web.de>
1307
1308         * src/pic16/main.c (_process_pragma): check for missing
1309           arguments to pragmas code and udata
1310         * device/include/pic16/pic18f{2550,4331,4455,4520}.h:
1311           consistency fixes to match other headers (thanks to Jim Paris)
1312         * device/lib/pic16/libio/i2c.ignore: 18f4331 provides no I2C
1313
1314 2005-05-21 Maarten Brock <sourceforge.brock AT dse.nl>
1315
1316         * src/SDCCicode.c (isOperandEqual): fixed missing ;
1317
1318 2005-05-19 Maarten Brock <sourceforge.brock AT dse.nl>
1319
1320         * support/regression/tests/bug1198642.c: new test
1321         * src/SDCCicode.c (isOperandEqual): fixed bug 1198642
1322         * src/SDCCcse.c (findPrevIc): added comment, please have a look
1323         * support/scripts/resource.h,
1324         * support/scripts/resource.rc,
1325         * src/src.dsp: added sdcc.ico to project as icon for sdcc.exe
1326         * support/scripts/sdcc.ico: added 32x32 icon
1327
1328 2005-05-18 Raphael Neider <rneider AT web.de>
1329
1330         * device/lib/pic16/libdev/pic18f*.c,
1331         * device/include/pic16/pic18f*.h: updated "sfr" and "at X"
1332           keywords to "__sfr" and "__at (X)"
1333         * device/include/pic16/pic18fregs.h: added pic18f4520
1334         * src/pic16/pcode.c (pic16_pCode2str): fixed (?) bug
1335           #1203088 (MPLAB compatibility)
1336
1337 2005-05-17 Raphael Neider <rneider AT web.de>
1338
1339         * device/include/pic16/pic18f{2550,4331,4455,4520}.h: NEW
1340         * device/lib/pic16/libdev/pic18f{2550,4331,4455,4520}.c: NEW
1341         * device/lib/pic16/pics.all: added new devices
1342         * src/pic16/device.c: added support for pic18f4520
1343
1344 2005-05-16 Raphael Neider <rneider AT web.de>
1345         * src/pic16/gen.{c,h}: s/mov2f/pic16_mov2f made public
1346         * src/pic16/genarith.c (genAddLit): fixed bug 1202480
1347         * src/pic16/pcode.{c,h} (pic16_newpCodeOpBit_simple): NEW
1348           convenience function for bit access
1349
1350 2005-05-15 Maarten Brock <sourceforge.brock AT dse.nl>
1351
1352         * device/lib/printf_large.c: fixed bug 1193299
1353         * support/regression/tests/bug1057979.c: added test %3.3s
1354
1355 2005-05-15 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
1356
1357         * device/include/mcs51/8051.h,
1358         * device/include/mcs51/8052.h: made parseable with lint
1359         * device/include/mcs51/lint.h: added include file for (sp)lint
1360         * doc/sdccman.lyx: added doc about use of splint (syntax checking tool)
1361         * doc/cdbfileformat.lyx,
1362         * doc/test_suite_spec.lyx: hardcoded date to the date of last text change
1363
1364 2005-05-14 Raphael Neider <rneider AT web.de>
1365
1366         * device/lib/pic16/Makefile.common.in: add --optimize-df to OPT_FLAGS
1367         * device/lib/pic16/libc/stdlib/itoa.c (new)
1368         * device/lib/pic16/libc/stdlib/Makefile: have itoa.c built
1369         * device/lib/pic16/libio/Makefile: exclude subdir according to
1370           ${subdir}.ignore for certain PICs (lacking e.g. i2c)
1371         * device/lib/pic16/libio/i2c.ignore (new): pic18f1220 has no I2C support
1372         * src/pic16/gen.c (genFunction): prevent annoying warning
1373         * src/pic16/pcode.c: renamed stack_t to dynstack_t to prevent
1374           nameclashes on BeOS
1375         * support/cpp2/cppmain.c (cpp_output_string): new
1376         * support/cpp2/cpplib.c (_cpp_do__Pragma): fixed _Pragma(""),
1377           fixes bug 1116802
1378
1379 2005-05-13 Borut Razem <borut.razem AT siol.net>
1380
1381         * src/SDCCmain.c (linkEdit): fixed bug 1195202
1382
1383 2005-05-12 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
1384
1385         * .version: changed to version 2.5.1; back to bleeding edge development
1386
1387 2005-05-11 Borut Razem <borut.razem AT siol.net>
1388
1389         * doc/sdccman.lyx doc/cdbfileformat.lyx doc/test_suite_spec.lyx:
1390           generate PDF version 1.3 documents
1391
1392 2005-05-07 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
1393
1394         * .version: changed to version 2.5.0
1395
1396 2005-04-27 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
1397
1398         * doc/sdccman.lyx: updated weblinks, index and smaller updates
1399
1400 2005-04-26 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
1401
1402         * doc/sdccman.lyx: changed version 2.5.0, documented --std-c89,
1403         --std-sdcc89, --std-c99, --std-sdcc99, and the corresponding #pragmas, as
1404         well as many smaller updates.
1405         * .version: changed to version 2.5.0-pre1
1406
1407 2005-04-26 Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
1408
1409         * src/SDCCmain.c (setIncludePath): added port->target to SDCC_INCLUDE_NAME
1410
1411 2005-04-26 Maarten Brock <sourceforge.brock AT dse.nl>
1412
1413         * support/regression/tests/bug1185672.c: added
1414         * src/mcs51/gen.c (aopGetUsesAcc, genCpl, genAnd, genOr, genXor): fixed
1415           bug 1185672
1416         * src/mcs51/gen.c (genCall): added comments, made it look safer
1417         * src/mcs51/gen.c (genEndFunction): simplified
1418
1419 2005-04-25 Maarten Brock <sourceforge.brock AT dse.nl>
1420
1421         * src/mcs51/ralloc.c (serialRegAssign): fixed bug 1189609
1422
1423 2005-04-14 Borut Razem <borut.razem AT siol.net>
1424
1425         * fixed bug 1045046 - SIGSEGV with really simple code?:
1426           src/pic/pcode.c (pCodeInitRegisters)- pseudo stack size increased to 16
1427           src/pic/ralloc.c (typeRegWithIdx) - error message on pseudo stack overflow
1428
1429 2005-04-14 Borut Razem <borut.razem AT siol.net>
1430
1431         * src/pic16/gen.c (genInline), src/pic16/main.c (_process_pragma),
1432           src/pic16/device.h: temporarily disabled experimental #inline pragma
1433           for 2.5.0 release
1434
1435 2005-04-14 Maarten Brock <sourceforge.brock AT dse.nl>
1436
1437         * device/include/z80/stdio.h,
1438         * device/include/z80/string.h: removed these highly incomplete files so
1439           SDCC can use the default ones in device/include/
1440
1441 2005-04-14 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
1442
1443         * src/mcs51/gen.c (genEndFunction): removed unused variable to fix
1444         gcc warning.
1445         * device/lib/Makefile.in: default PORTINCDIR to the mcs51 subdir to
1446         fix sdcpp warnings.
1447
1448 2005-04-12 Maarten Brock <sourceforge.brock AT dse.nl>
1449
1450         * device/include/malloc.h: removed redundant __reentrant prototypes
1451         * device/lib/_mullong.c: added working xstack variant in asm (C version
1452           doesn't pass regression tests)
1453         * device/lib/bpx.c: used __data and made bpx char for mcs51
1454         * src/SDCCast.c (decorateType): removed unused GPTYPE_IDATA,
1455           (createFunction): fixed bug with xstackPtr
1456         * src/SDCCcse.c: corrected comments
1457         * src/SDCCopt.c (convertToFcall): fixed warning in MSVC,
1458           (killDeadCode, eBBlockFromiCode): removed unused code
1459         * src/SDCCsymt.h: removed unused GPTYPE_GPTR and GPTYPE_IDATA,
1460           corrected comments
1461         * src/mcs51/gen.c (aopForSym, aopPut, toBoolean, unsaveRegisters,
1462           assignResultValue, genCall, genFunction, genEndFunction, genAnd,
1463           genOr, genXor, genAddrOf): fixed several bugs concerning xstack
1464           (genModOneByte): fixed warning in MSVC
1465         * src/mcs51/main.c (): added comments
1466         * src/mcs51/peeph.def: changed 129 to 129.a, added 129.b, 129.c & 129.d
1467
1468 2005-04-12 Maarten Brock <sourceforge.brock AT dse.nl>
1469
1470         * src/SDCCmain.c (linkEdit): oops, changed one line too many
1471
1472 2005-04-11 Maarten Brock <sourceforge.brock AT dse.nl>
1473
1474         * src/SDCCmain.c (linkEdit): fixed bug with finding crt0.o for z80
1475
1476 2005-04-10 Vangelis Rokas <vrokas AT users.sourceforge.net>
1477
1478         * src/pic16/glue.c (printIvalChar): fixed bug when emitting
1479         characters arrays of larger size than the declared one.
1480
1481 2005-04-10 Borut Razem <borut.razem AT siol.net>
1482
1483         * src/pic/gen.c (genInline),
1484           src/pic/pcode.c (newpCodeAsmDir), (pCode2str),
1485           (genericPrint), (unlinkpCodeFromBranch), (compareLabel),
1486           (findNextInstruction), (findPrevInstruction),
1487           (findInstructionUsingLabel),
1488           src/pic/pcode.h: fixed bug #1164907 - Labels not being recognized
1489         * src/pic/pcode.c (findLabel): added missing '\n'
1490         * src/src.dsp: added SDCCdwarf2.c to the project
1491
1492 2005-04-09 Borut Razem <borut.razem AT siol.net>
1493
1494         * support/scripts/sdcc.nsi: added include/hc08/* h to NSIS setup
1495
1496 2005-04-08 Raphael Neider <rneider AT web.de>
1497
1498         * src/pic16/pcode.c: added helpers defmapInsertAfter (insert a new item
1499           into the chain after a given one) and mergeDefmapSymbols (combine
1500           defmap entries for each symbol per pcode)
1501         * (createDefmap): have defmap entries merged in the end
1502         * (defmapReplaceSymRef): split defmap entries covering two accesses to
1503           a symbol before replacing one access type's symbol, merge symbols in
1504           the end (replacement symbol might already have an entry)
1505         * (assignValnums): keep reference to written WREG intact
1506
1507 2005-04-08 Raphael Neider <rneider AT web.de>
1508
1509         * src/pic16/pcode.c (struct defmap_s): named anonymous union (for
1510           Alpha)
1511
1512 2005-04-08 Vangelis Rokas <vrokas AT users.sourceforge.net>
1513
1514         * src/pic16/pcode.c (pic16_get_op2): enlarged size of array b to 128
1515         bytes
1516
1517 2005-04-07 Raphael Neider <rneider AT web.de>
1518
1519         * device/include/pic16/usart.h: added compatibility defines for
1520           devices with more than one USART
1521         * device/include/pic16/pic18f[68][567]20.h: activated above defines
1522
1523 2005-04-07 Maarten Brock <sourceforge.brock AT dse.nl>
1524
1525         * device/lib/Makefile.in: updated for port specific include
1526
1527 2005-04-07 Maarten Brock <sourceforge.brock AT dse.nl>
1528
1529         * support/regression/ports/mcs51/spec.mk: added mcs51 include
1530
1531 2005-04-07 Maarten Brock <sourceforge.brock AT dse.nl>
1532
1533         * device/include/8051.h,
1534         * device/include/8052.h,
1535         * device/include/at89S8252.h,
1536         * device/include/at89c55.h,
1537         * device/include/at89x051.h,
1538         * device/include/at89x51.h,
1539         * device/include/at89x52.h,
1540         * device/include/mcs51reg.h,
1541         * device/include/reg51.h,
1542         * device/include/reg764.h,
1543         * device/include/regc515c.h,
1544         * device/include/sab80515.h: (re)moved these 12 files
1545         * device/include/mcs51/8051.h,
1546         * device/include/mcs51/8052.h,
1547         * device/include/mcs51/at89S8252.h,
1548         * device/include/mcs51/at89c55.h,
1549         * device/include/mcs51/at89x051.h,
1550         * device/include/mcs51/at89x51.h,
1551         * device/include/mcs51/at89x52.h,
1552         * device/include/mcs51/mcs51reg.h,
1553         * device/include/mcs51/reg51.h,
1554         * device/include/mcs51/reg764.h,
1555         * device/include/mcs51/regc515c.h,
1556         * device/include/mcs51/sab80515.h: and added them here
1557
1558 2005-04-06 Maarten Brock <sourceforge.brock AT dse.nl>
1559
1560         * device/include/stdarg.h: changed SDCC specific keywords to double
1561           underlined form.
1562         * device/include/stdint.h: changed intptr_t and uintptr_t for others than
1563           mcs51 and ds390.
1564         * device/include/hc08/mc68hc908gp32.h,
1565         * device/include/hc08/mc68hc908jb8.h,
1566         * device/include/hc08/mc68hc908jkjl.h,
1567         * device/include/hc08/mc68hc908qy.h: fixed comments
1568         * device/include/mcs51/README: updated
1569         * device/include/mcs51/c8051f120.h: added PINRSF
1570         * device/lib/pic16/libc/stdlib/crc16.c: fixed comments
1571         * src/pic16/pcode.c: MSVC6 doesn't accept declaring new variables
1572           amidst code. Also inline is not supported.
1573
1574 2005-04-06 Raphael Neider <rneider AT web.de>
1575
1576         * src/pic16/pcode.c (pic16_pCodeReplace): also update pcflow->end
1577         * (createDefmap): fixed CALLs to depend on FSR1 and RETLW to restore
1578           callers stack/frame pointers
1579
1580 2005-04-06 Vangelis Rokas <vrokas AT users.sourceforge.net>
1581
1582         * device/include/pic16/usart.h: added, missing in previous commit,
1583         * device/include/pic16/adc.h: fixed typo,
1584         * device/lib/pic16/libc/utils/cvtdec.S: added missing in previous
1585         commit,
1586         * device/lib/pic16/libc/stdlib/g_ftoa.S: modified to include
1587         <p18fxxx.inc>
1588         * device/lib/pic16/libc/stdio/streams.c: leave stdin, stdout
1589         uninitialized because a bug appears with gplink
1590         * device/lib/pic16/{some makefiles}: moved $(CSTD) from CFLAGS to
1591         COMPILE_FLAGS and added CPPFLAGS with -nostdinc because sdcpp
1592         complains for unrecognised option
1593
1594 2005-04-05 Raphael Neider <rneider AT web.de>
1595
1596         * src/pic16/gen.c (pic16_popCopyReg): made copying work for extended
1597           structs as well (using memcpy)
1598         * (genFunction): fixed comparison, used pCodeOpLabel to reduce warning
1599           on ISRs (GOTO has no label)
1600         * src/pic16/device.h: added OF_OPTIMIZE_DF
1601         * src/pic16/main.c: added compiler switch --optimize-df to enable the
1602           new data flow analysis/optimization
1603         * src/pic16/pcode.c: added (prototypes for and implementation of)
1604           dataflow analysis functions, fixed pCodeInstructions' inCond and
1605           outCond values, made RCALL a branch instruction
1606         * (pic16_unlinkpCode): keep C line if possible
1607         * (pic16_pCodeUnlink): removed cast on left side of assignment, have
1608           C line moved if possible
1609         * (pic16_getRegFrompCodeOp): NEW, improved version of...
1610         * (pic16_getRegFromInstruction,pic16_getRegFromInstruction2): changed
1611           to use new pic16_getRegFrompCodeOp (works for more SFRs)
1612         * (pic16_BuildFlow): fixed skip instructions with label (did not start
1613           new flow)
1614         * (pic16_getJumptabpCode): NEW, needed in...
1615         * (LinkFlow): fixed handling of jumptables, calls and conditional
1616           branches
1617         * (pic16_InsertCommentAfter): NEW
1618         * (pic16_pCodeReplace): made verbose and flow preserving
1619         * (AnalyzeFlow): added call to data flow analysis
1620         * src/pic16/pcode.h: added defmaps to pCodeFlow struct
1621         * src/pic16/pcodeflow.h: added PCC_STATUS to mean all STATUS bits
1622         * src/pic16/ralloc.c (packRegsForAssign): added return 1 in the end
1623
1624 2005-04-03 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
1625
1626         * src/SDCCast.c (decorateType): fixed bug #1105626
1627
1628 2005-04-02 Vangelis Rokas <vrokas AT users.sourceforge.net>
1629
1630         * device/include/asm/pic16/features.h,
1631         * pic18f*.h headers,
1632         * device/include/pic16/adc.h,
1633         * device/include/pic16/delay.h,
1634         * device/include/pic16/i2c.h,
1635         * device/include/pic16/malloc.h,
1636         * device/include/pic16/stdio.h,
1637         * device/include/pic16/stdlib.h,
1638         * device/include/pic16/string.h,
1639         * device/lib/pic16/libc/stdio/printf_tiny.c,
1640         * device/lib/pic16/libc/stdio/printf_small.c,
1641         * device/lib/pic16/libc/stdio/strmgpsim.c,
1642         * device/lib/pic16/libc/stdio/strmmssp.c,
1643         * device/lib/pic16/libc/stdio/strmusart.c,
1644         * device/lib/pic16/libc/stdio/vfprintf.c,
1645         * device/lib/pic16/libc/stdlib/ltoa.c,
1646         * device/lib/pic16/libc/stdlib/putchar.c,
1647         * device/lib/pic16/libc/stdlib/x_ftoa.c,
1648         * device/lib/pic16/libc/stdlib/memchrpgm.c,
1649         * device/lib/pic16/libc/stdlib/memchrram.c,
1650         * device/lib/pic16/libc/stdlib/memcpypgm2ram.c,
1651         * device/lib/pic16/libc/stdlib/memcpyram2ram.c,
1652         * device/lib/pic16/libio/adc/adcbusy.c,
1653         * device/lib/pic16/libio/adc/adcread.c,
1654         * device/lib/pic16/libio/adc/adcsetch.c,
1655         * device/lib/pic16/libio/usart/ubaud.c,
1656         * device/lib/pic16/libio/usart/ubusy.c,
1657         * device/lib/pic16/libio/usart/udrdy.c,
1658         * device/lib/pic16/libio/usart/uopen.c,
1659         * device/lib/pic16/libio/usart/uputc.c,
1660         * device/lib/pic16/libsdcc/gptr/gptrget1.c,
1661         * device/lib/pic16/libsdcc/gptr/gptrget2.c,
1662         * device/lib/pic16/libsdcc/gptr/gptrget3.c,
1663         * device/lib/pic16/libsdcc/gptr/gptrget4.c,
1664         * device/lib/pic16/libsdcc/gptr/gptrput1.c,
1665         * device/lib/pic16/libsdcc/gptr/gptrput2.c,
1666         * device/lib/pic16/libsdcc/gptr/gptrput3.c,
1667         * device/lib/pic16/libsdcc/gptr/gptrput4.c: modified all SDCC
1668         specific keywords to double underlined form,
1669         * device/lib/pic16/libc/Makefile.rules,
1670         * device/lib/pic16/libsdcc/Makefile.rules,
1671         * device/lib/pic16/libm/Makefile,
1672         * device/lib/pic16/libio/Makefile.rules: added CSTD macro in CFLAGS
1673         to compile with C standard set in Makefile.common
1674         * device/lib/pic16/libc/stdlib/Makefile: added new C sources
1675         rand.c and crc.c in compilation process,
1676         * device/lib/pic16/libsdcc/int/divuint.c,
1677         * device/lib/pic16/libsdcc/long/divulong.c: changed declaration of
1678         `c' from signed to unsigned,
1679         * device/lib/pic16/startup/crt0.c,
1680         * device/lib/pic16/startup/crt0i.c,
1681         * device/lib/pic16/startup/crt0iz.c: adopted to all SDCC specific
1682         keywords to double underlined form, bug fixes in _do_cinit function
1683         which prevented the correct initialization of the .idata segment,
1684         * src/pic16/pcoderegs.c (insideLRBlock): fixed a bug that caused the
1685         core to enter a infinite loop
1686         * device/lib/pic16/libc/stdlib/rand.c, crc.c: new files
1687
1688 2005-04-02 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
1689
1690         * src/SDCCicode.c (getArraySizePtr): fixed bug #1122171
1691
1692 2005-04-01 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
1693
1694         * device/include/Makefile.in: add support for hc08 subdirectory
1695         * device/include/hc08/: new subdirectory
1696         * device/include/hc08/mc68hc908jkjl.h: new header contributed by
1697         Lucas Loizaga, thanks!
1698         * device/include/hc08/mc68hc908qy.h,
1699         * device/include/hc08/mc68hc908gp32.h,
1700         * device/include/hc08/mc68hc908jb8.h: moved hc08 register defs to
1701         their own directory. Changed internal macro names to use the compiler
1702         reserved namespace. Changed SDCC specific keywords to double
1703         underlined form.
1704         * device/include/math.h,
1705         * device/include/malloc.h,
1706         * device/include/stdarg.h,
1707         * device/include/stdbool.h
1708         * device/include/string.h,
1709         * device/include/tinibios.h,
1710         * device/include/ds400rom.h,
1711         * device/include/8051.h,
1712         * device/include/8052.h,
1713         * device/include/80c51xa.h,
1714         * device/include/at89c55.h,
1715         * device/include/at89S8252.h,
1716         * device/include/at89x51.h,
1717         * device/include/at89x52.h,
1718         * device/include/ds80c390.h,
1719         * device/include/reg764.h,
1720         * device/include/regc515c.h,
1721         * device/include/sab80515.h,
1722         * device/include/mcs51/c8051f000.h,
1723         * device/include/mcs51/c8051f018.h,
1724         * device/include/mcs51/c8051f020.h,
1725         * device/include/mcs51/c8051f040.h,
1726         * device/include/mcs51/c8051f060.h,
1727         * device/include/mcs51/c8051f120.h,
1728         * device/include/mcs51/c8051f300.h,
1729         * device/include/mcs51/c8051f310.h,
1730         * device/include/mcs51/c8051f320.h,
1731         * device/include/mcs51/c8051f330.h,
1732         * device/include/mcs51/c8051f350.h,
1733         * device/include/z180.h: Changed SDCC specific keywords to double
1734         underlined form.
1735
1736 2005-03-31 Vangelis Rokas <vrokas AT users.sourceforge.net>
1737
1738         * src/pic16/device.c (Pics16[]): added devices 18F2550, 18F4331,
1739         18F4455,
1740         * (pic16_assignConfigWordValue): disable testing of configuration
1741         register value with config mask,
1742         * src/pic16/gen.c (pic16_testStackOverflow): prefix stack test
1743         function with port->fun_prefix,
1744         * (genFunction): when generating a naked interrupt function never
1745         create an absolute segment placed in interrupt vector address, place
1746         the actual interrupt function at IVA instead, when an interrupt
1747         function is generated with unspecified interrupt then do not create
1748         the absolute section,
1749         * (genGenPointerGet, genGenPointerSet, genPackBits): replace all
1750         code for generating a call to generic pointer get/put function with
1751         a call to function pic16_callGenericPointer(),
1752         * src/pic16/genutils.c (pic16_callGenericPointerRW): NEW, generates
1753         the call to the generic pointer get/put functions with prefixing the
1754         function name with port->fun_prefix,
1755         * src/pic16/glue.c (pic16glue): ifdef-out test of OF_LR_SUPPORT,
1756         * src/pic16/main.c (_process_pragma): prefix function with
1757         port->fun_prefix,
1758         * (_pic16_finaliseOptions): define macro __18Fxxxx macro when
1759         calling assembler, old 18Fxxxx macro is deprecated,
1760         * src/pic16/pcode.c (unlinkpCodeFromBranch): added PC_INLINE and
1761         PC_ASMDIR in while condition,
1762         * (findInstruction): add PC_ASMDIR in while condition,
1763         * (buildCallTree): prefix main with port->fun_prefix,
1764         * (pic16_pCode2str): fixed bug that didn't emit the memory access
1765         identifier for variable with banked access in instructions BTFSS,
1766         BTFSC, BCF, BSF, BTG
1767         * (AnalyzeFlow): moved call to OptimizepCode to pic16_AnalyzeBanking,
1768         * src/pic16/pcodepeep.c (pCodeOpCompare): increase size of b to 1024,
1769         * src/pic16/pcoderegs.c (pic16_pCodeRegoptimizeRegUsage): don't
1770         perform optimization when enviroment variable NO_REG_OPT is set,
1771         * (insideLRBlock): NEW, return 1 if register is inside an
1772         INF_LOCALREGS block,
1773         * (RemoveRegFromLRBlock): remove a register that is completely
1774         eliminated by register optimization, but it is still left in local
1775         register store/restore in/from stack block,
1776         * (Remove2pcodes): after removing register, check to see if it
1777         should be removed from local register store/restore in/from stack
1778         block,
1779         * src/pic16/ralloc.c (pic16_decodeOp): added decode for
1780         DUMMY_READ_VOLATILE,
1781
1782         * device/include/pic16/adc.h: minor prototype modifications and
1783         update,
1784         * device/include/pic16/malloc.h: added GPL notice various
1785         modifications,
1786         * device/include/pic16/stdint.h: NEW, standard header for ints
1787         * device/include/pic16/delay.h: NEW, header for delay functions,
1788         delay10tcy, delay100tcy, delay1ktcy, delay10ktcy, delay100ktcy,
1789         delay1mtcy,
1790         * device/include/pic16/signal.h: NEW, header providing helper macros
1791         for implementing signal handlers,
1792         * device/include/pic16/stdio.h: added prototypes for functions,
1793         printf, vprintf, sprintf, vsprintf, fprintf, vfprintf. Added
1794         prototypes for stdin and stdout, added macro PUTCHAR to
1795         automatically implement putchar function prototype,
1796         * device/include/pic16/usart.h: modified and updated USART library,
1797         * device/lib/pic16/libio/adc/,
1798         * device/lib/pic16/libio/i2c: some modifications to improve library
1799         performance,
1800         * device/lib/pic16/libc/stdio/: modifications for the new printf*
1801         family of functions,
1802         * device/lib/pic16/libc/stdlib/: various modifications in the malloc
1803         family of functions and other sources,
1804         * device/lib/pic16/libio/usart/: NEW, c sources for the usart module
1805         of the PIC18Fxx[28] devices,
1806         * device/lib/pic16/libc/delay/: NEW, c sources for the delay functions,
1807         * device/lib/pic16/libc/utils/: minor modifications in the .S sources,
1808         * device/lib/pic16/startup/{crt0i.c, crt0iz.c}: redesign of the
1809         _do_cinit function, because the previous failed when local variables
1810         where not placed in the same memory bank,
1811         * device/lib/pic16/libsdcc/char/: various modifications to improve
1812         library performance,
1813         * doc/sdccman.lyx: some reorganization of the PIC16 part, added many
1814         information on the new functions of the c library and more...
1815
1816 2005-03-28 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
1817
1818         * src/SDCCBBlock.c (iCodeBreakDown): fixed bug #1170212
1819
1820 2005-03-26 Raphael Neider <rneider AT web.de>
1821
1822         * src/pic16/gen.c (genSkipc): fixed semantics (execute branch
1823           if condition == CARRY)
1824         * (genCmp): adapted to new genSkipc semantics
1825         * src/pic16/genutils.c (pic6_genCmp_special): removed side effect
1826           on rIfx (genCmp was broken)
1827
1828 2005-03-26 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
1829
1830         * src/SDCCmain.c (setDefaultOptions, optionsTable[], parseCmdLine),
1831         * src/z80/main.c (_keywords[]),
1832         * src/SDCCglobal.h (struct options),
1833         * src/SDCC.y,
1834         * src/SDCC.lex (isTargetKeyword, doPragma, pragma_tbl[]): new pragmas
1835         to enable/disable SDCC and C99 extensions/keywords (std_c89, std_sdcc89,
1836         std_c99, std_sdcc99). Also, equivalent command line options (--std-c89,
1837         --std-sdcc89, --std-c99, --std-sdcc99). SDCC specific keywords are
1838         always available in leading double underscore form. The C99 support is
1839         mostly missing, but it's a start.
1840         * support/regression/tests/bug-227710.c: fixed nonconforming use of
1841         reserved identifier "__data".
1842
1843 2005-03-24 Maarten Brock <sourceforge.brock AT dse.nl>
1844
1845         * src/mcs51/peeph.def: fixed bug 1170013
1846
1847 2005-03-22 Maarten Brock <sourceforge.brock AT dse.nl>
1848
1849         * device/include/mcs51reg.h: fixed bug 842007
1850
1851 2005-03-21 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
1852
1853         * src/SDCCcflow.c (dfNumCompare): committed the wrong version of this
1854         last time.
1855
1856 2005-03-20 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
1857
1858         * src/port.h (struct PORT),
1859         * src/avr/ralloc.c (avr_assignRegisters),
1860         * src/avr/main.c,
1861         * src/ds390/ralloc.c (ds390_assignRegisters),
1862         * src/ds390/main.c,
1863         * src/hc08/ralloc.c (hc08_assignRegisters),
1864         * src/hc08/main.c,
1865         * src/mcs51/ralloc.c (mcs51_assignRegisters),
1866         * src/mcs51/main.c,
1867         * src/pic/ralloc.c (pic14_assignRegisters),
1868         * src/pic/main.c,
1869         * src/pic16/ralloc.c (pic16_assignRegisters),
1870         * src/pic16/main.c,
1871         * src/xa51/ralloc.c (xa51_assignRegisters),
1872         * src/xa51/main.c,
1873         * src/z80/ralloc.c (z80_assignRegisters),
1874         * src/z80/ralloc.h,
1875         * src/SDCCopt.c (eBBlockFromiCode, replaceRegEqv, killDeadCode),
1876         * src/SDCCcse.c (ifxOptimize, cseBBlock, cseAllBlocks),
1877         * src/SDCCcse.h,
1878         * src/SDCCdflow.c (computeDataFlow),
1879         * src/SDCCdflow.h,
1880         * src/SDCCloop.c (addDefInExprs, loopInvariants, loopOptimizations),
1881         * src/SDCCloop.h,
1882         * src/SDCCcflow.c (*),
1883         * src/SDCCcflow.h,
1884         * src/SDCCBBlock.c (iCodeBreakDown, dumpEbbsToFileExt, eBBWithEntryLabel),
1885         * src/SDCCBBlock.h (struct ebbIndex): new struct that keeps two copies
1886         of the eBBlock list, sorted by both bbnum and dfnum. (fixes bug with
1887         immedDom() returning wrong block; probably fixes bug #1160833)
1888
1889 2005-03-20 Borut Razem <borut.razem AT siol.net>
1890
1891         * support/scripts/inc2h.pl: WIN32 port
1892
1893 2005-03-19 Maarten Brock <sourceforge.brock AT dse.nl>
1894
1895         * device/lib/makefile.in: added abs.c and labs.c
1896
1897 2005-03-17 Maarten Brock <sourceforge.brock AT dse.nl>
1898
1899         * device/include/stdint.h: added
1900         * device/lib/abs.c: added
1901         * device/lib/labs.c: added
1902         * device/include/stdlib.h: added abs() and labs() prototypes
1903         * device/lib/libsdcc.lib: added abs and labs
1904         * device/include/float.h,
1905         * device/lib/_fsmul.c,
1906         * device/lib/printf_fast.c,
1907         * device/lib/printf_tiny.c: updated comments
1908
1909 2005-03-16 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
1910
1911         * src/SDCCicode.c (geniCodeSwitch, geniCodeJumpTable): fixed
1912         bug #1164313
1913
1914 2005-03-16 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
1915
1916         * src/SDCCcse.c (cseBBlock): retain assignment to self when volatile
1917         * src/SDCCast.c (isLoopCountable): fixed bug #1161985
1918
1919 2005-03-15 Maarten Brock <sourceforge.brock AT dse.nl>
1920
1921         * device/lib/printf_large.c: removed inline assembly for portability and
1922           readability. Use printf_fast if speed or size are more important.
1923         * src/pic16/gen.c: removed conditions around use of DEBUGpc
1924         * src/pic16/genutils.h: added define for DEBUGpc for MSVC
1925
1926 2005-03-15 Vangelis Rokas <vrokas AT users.sourceforge.net>
1927
1928         * src/pic16/genutils.c (pic16_genCmp_special): initialized offs to
1929         prevent compiler warning
1930
1931 2005-03-14 Vangelis Rokas <vrokas AT users.sourceforge.net>
1932
1933         * device/lib/pic16/startup/crt0i.c (_cinit): local variables where
1934         moved to level 0 and declared as static. Also they are explicit
1935         placed in access bank. This was necessery because some times they
1936         might cross memory bank boundaries. crt0iz.c is *NOT* updated!!!
1937         * src/pic16/device.h: added flag OPTIMIZE_CMP to enable some compare
1938         optimizations. Currently only compare to unsigned char is implemented,
1939         * src/pic16/gen.c: added fReturnIdx array,
1940         * (struct resolvedIfx) is moved to gen.h and made public,
1941         * (struct _G): added sregsAlloc and sregsAllocSet fields,
1942         * (aopForSym): added an optimization to directly store in stack of
1943         the operand of a SEND iCode,
1944         * (pic16_aopOp): don't return return registers as strings (AOP_STR)
1945         but as registers instead (AOP_REG) using the fReturnIdx array,
1946         * (pic16_freeAsmop): remove the freed register from the
1947         _G.sregsAlloc field,
1948         * (pic16_aopGet): in case AOP_STR, the compare to 'a' is changed to
1949         a compare of 'WREG',
1950         * (pic16_popGetTempRegCond): changed function prototype, now
1951         function takes also a bitVector argument v which holds the current
1952         set of registers that are allocated for stack access by aopForSym,
1953         registers allocated in aopForSym for accessing stack symbols are not
1954         any more part of the functions usedRegs field,
1955         * (genCall): some times aopOp is called for a stack variable to be
1956         send, aopForSym might perform the push, if this is true make sure
1957         that genCall doesn't push the variable twice by testing _G.resDirect,
1958         * (genFunction): changed testing for unspecified interrupt number
1959         from 256 to INTNO_UNSPEC,
1960         * modified selection scheme of frame pointer generation. Previously
1961         if function did use local registers a frame pointer was generated,
1962         now a frame pointer is generated only if function has arguments
1963         (that need PLUSW2 register access), or has stack arguments, or the
1964         compiler is not instructed to omit the frame pointer,
1965         * (genEndFunction): before restoring local registers that were saved
1966         in the function preamble, also restore the registers that *might*
1967         have been allocated for stack access,
1968         * (genRet): removed some old comments,
1969         * (genCmp, the active (RN's) version): added a call to the
1970         pic16_genCmp_special function to perform the compare with a more
1971         robust and optimized way,
1972         * (genInline): a feature has been added in inline code generation,
1973         which allows a wildcard variable substitution when writing inline
1974         assembly. Code is incomplete and experimental therefore undocumented,
1975         * (genCast): changed order of aopOp for result and right to allow
1976         aopForSym to directly load the result if possible,
1977         * src/pic16/genutils.c (selectCompareOp, pic16_genCmp_special): NEW,
1978         perform an optimized compare on some selected special occasions,
1979         * src/pic16/genutils.h: declaration of resolvedIfx structure from gen.c,
1980         * src/pic16/glue.c (pic16createInterrupVect): make sure we never
1981         generate an IVT any more,
1982         * src/pic16/main.c (pic16_optionsTable): added command line option
1983         --optimize-cmp,
1984         * (_pic16_initPaths): when calling C preprocessor define pic18fXXXX
1985         macro too, when calling assembler define pic18fXXXX *and* __18Fxxxx
1986         macros,
1987         * src/pic16/NOTES: Raphael Neider added in list of active developers
1988         * src/pic16/pcode.c (OPT_TYPE_STR): added strings jumptable_begin and
1989         jumptable_end to prevent bug #,
1990         * (pic16_pciADDWFC, ADDFWC, COMF, CLRF): added some missing flags in
1991         inCond and outCond fields,
1992         * src/pic16/pcoderegs.c (pCodeOptime2pCodes): add a fix for bug #,
1993         * src/pic16/ralloc.c (serialRegAssign): explicit set willCS to 0 to
1994         turn off register spilling,
1995         * (packRegsForOneUse): synced with other ports' versions although it
1996         is not used currently,
1997         * (pic16_packRegisters): added an optimization while reading
1998         structure bitfields, some registers may be saved (malloc code is
1999         decreased by 80 bytes)
2000
2001 2005-03-12 Vangelis Rokas <vrokas AT users.sourceforge.net>
2002
2003         * src/SDCCcse.c (cseBBlock): inside 'do operand lookup' loop test if
2004         left is a bitfield, if yes, then don't optimize assignment. Perhaps
2005         this can be optimized more?
2006
2007 2005-03-10 Raphael Neider <rneider AT web.de>
2008
2009         * src/pic16/gen.c (pic16_loadFSR0, genPackBits, genUnpackBits,
2010           genNearPointerGet): (hopefully) fixed access to bitfields via
2011           pointers (p->bitN = x; and x = p->bitN; failed)
2012
2013 2005-03-09 Paul Stoffregen <paul AT pjrc.com>
2014
2015         * device/lib/printf_fast.c: fix leading zero format, eg "%02d"
2016
2017 2005-03-09 Raphael Neider <rneider AT web.de>
2018
2019         * src/SDCCopt.c (killDeadCode): fixed bug #1156016
2020
2021 2005-03-06 Maarten Brock <sourceforge.brock AT dse.nl>
2022
2023         * src/SDCCicode.h: moved CRITICAL and ENDCRITICAL from SKIP_IC2 to SKIP_IC
2024         * src/mcs51/ralloc.c (willCauseSpill): added check for REG_BIT type,
2025           (regTypeNum): set REG_BIT type if necessary
2026         * src/mcs51/ralloc.h: added define REG_BIT, used to fix bug 1144613
2027         * support/regression/tests/critical.c: check bug 1144613
2028
2029 2005-03-02 Raphael Neider <rneider AT web.de>
2030
2031         * src/pic16/gen.c (genRightShiftLiteral): fixed bug #1154256
2032
2033 2005-02-26 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
2034
2035         * src/avr/ralloc.c (serialRegAssign),
2036         * src/ds390/ralloc.c (serialRegAssign),
2037         * src/hc08/ralloc.c (serialRegAssign),
2038         * src/mcs51/ralloc.c (serialRegAssign),
2039         * src/pic/ralloc.c (serialRegAssign),
2040         * src/pic16/ralloc.c (serialRegAssign),
2041         * src/xa51/ralloc.c (serialRegAssign),
2042         * src/z80/ralloc.c (serialRegAssign): fixed bug #1105154
2043
2044 2005-02-22 Maarten Brock <sourceforge.brock AT dse.nl>
2045
2046         * src/SDCCast.c (decorateType): fixed bug 1124787
2047
2048 2005-02-20 Hubert Sack <sack AT digiplan.de>
2049         committed by Frieder Ferlemann <Frieder.Ferlemann AT web.de>
2050
2051         * src/mcs51/peeph.def: added peepholes 3.h-k and 132.a-f from
2052         patch #1121755
2053
2054 2005-02-20 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
2055
2056         * src/SDCCpeeph.def: new keyword "labelRefCountChange" which allows peepholes
2057         to keep the correct label reference count when adding/removing references
2058         to labels. A peephole file using this is appended to patch #1144962.
2059
2060 2005-02-14 Raphael Neider <rneider AT web.de>
2061
2062         * device/lib/pic16/libc/string/memccpy.c: changed 3rd argument to char
2063         * src/SDCC.lex (process_pragma): fixed to make disable_warning work for PIC16
2064         * src/pic16/gen.c (aopForSym, calls to pic16_aopOp): prevent unneccessary
2065           retrievals of result operand's value on assignment
2066
2067 2005-02-13 Vangelis Rokas <vrokas AT otenet.gr>
2068
2069         * device/include/pic16/string.h: modified prototype for memccpy()
2070         to memccpy(void *, void *, char, size_t)
2071         * src/pic16/gen.c (genFunction, genEndFunction): reenable if-case to
2072         check whether to omit frame pointer or not,
2073         * (genInline): convert all occurences of "\n" to LF in inline
2074         assembler blocks, this helps formatting the inline text,
2075         * (pic16_loadFSR0): modified prototype,
2076         * (genNearPointerGet, genNearPointerSet): reorganization of code,
2077         removed some 8051 legacy code,
2078         * (genPackBits): enabled handling bitfields exceeding one byte in size,
2079         * src/pic16/ralloc.c (pic16_assignRegisters): clear dynrIdx variable
2080         before allocating temporary registers in functions,
2081
2082 2005-02-11 Maarten Brock <sourceforge.brock AT dse.nl>
2083
2084         * support/regression/tests/bitvars.c: corrected the "fix"
2085
2086 2005-02-10 Maarten Brock <sourceforge.brock AT dse.nl>
2087
2088         * support/regression/tests/bitvars.c,
2089         * support/regression/tests/bitwise.c,
2090         * support/regression/tests/rotate.c: "fixed" problems on Alpha
2091
2092 2005-02-10 Raphael Neider <rneider AT web.de>
2093
2094         * src/pic16/pcode.c (assignToSameBank) : fixed cast to pointer of
2095           different size for Alpha
2096         * src/pic16/gen.c (genCmpEq) : improved compare with 0
2097
2098 2005-02-09 Raphael Neider <rneider AT web.de>
2099
2100         * src/SDCC.lex(doPragma) : save and restore warning options as well
2101           (also added new stack plus clone- and copyAndFreeSDCCERRG())
2102         * have #pragma less_pedantic set the errorlevel to WARNING
2103           (fixes #1117001)
2104         * (cloneOptimize) : fixed wrong malloc's size
2105         * support/Util/SDCCerr.[ch] : made SDCCERRG globally accessible to
2106           facilitate correct handling of #pragma (save|restore)
2107
2108 2005-02-09 Maarten Brock <sourceforge.brock AT dse.nl>
2109
2110         * src/mcs51/gen.c: removed non-standard C nameless struct/union
2111
2112 2005-02-04 Slade Rich <slade_rich AT users.sourceforge.net>
2113
2114         * src/pic/gen.c : Fix for bugs #1080519 & #1115662.
2115
2116 2005-02-03 Maarten Brock <sourceforge.brock AT dse.nl>
2117
2118         * device/include/mcs51/c8051f120.h: added declarations for sbit port 2,3&4
2119
2120 2005-02-02 Raphael Neider <rneider AT web.de>
2121
2122         * src/SDCCast.c (processParms): disabled W_NONRENT_ARGS for pic16 port
2123         * src/pic16/gen.c (aopForSym): reenabled special case for function pointers
2124         * (pic16_storeForReturn): fixed to allow returning function pointers
2125         * (genPackBits): improved accessing full bytes, implemented for GPOINTERs
2126         * device/include/pic16/{stddef.h,stdbool.h}: added
2127
2128 2005-02-02 Maarten Brock <sourceforge.brock AT dse.nl>
2129
2130         * device/include/mcs51/c8051f040.h: added define CPT2_PAGE
2131
2132 2005-02-01 Slade Rich <slade_rich AT users.sourceforge.net>
2133
2134         * src/pic16/pic16.dsp : Added file graph.c to make it compile under windows
2135         * src/pic16/Makefile.bcc : Do not use this file but added file graph.c as it
2136          appeared to be required
2137
2138 2005-01-31 Borut Razem <borut.razem AT siol.net>
2139
2140         * support/scripts/sdcc.nsi: added include/asm/ds390, include/asm/mcs51,
2141           include/mcs51 and include/z80 directories to the package
2142
2143 2005-01-26 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
2144
2145         * src/hc08/gen.c (genFunction): fixed bug #1112752
2146
2147 2005-01-30 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
2148
2149         * src/mcs51/peeph.def: adapted peephole 258.x to changed gen.c (genAnd)
2150
2151 2005-01-29 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
2152
2153         * src/mcs51/gen.c (genAnd): accessing LSB/MSB by rotating acc
2154
2155 2005-01-29 Maarten Brock <sourceforge.brock AT dse.nl>
2156
2157         * device/include/Makefile.in: create/copy mcs51 and z80 include subdirs
2158
2159 2005-01-27 Maarten Brock <sourceforge.brock AT dse.nl>
2160
2161         * device/include/c8051fxxx.h: removed these 6 files
2162         * device/include/mcs51/c8051fxxx.h: added these 11 new files
2163
2164 2005-01-26 Raphael Neider <rneider AT web.de>
2165
2166         * src/pic16/gen.c (genAssign): fixed assignment from longs
2167           in codespace (were cut to three bytes)
2168         * (genDummyRead): implemented (except for CODESPACE...),
2169           fixed bug #1108575
2170         * src/pic16/glue.c (emitStatistics): beautified
2171         * device/lib/pic16/libm/Makefile: added include path
2172
2173 2005-01-26 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
2174
2175         * src/z80/gen.c (aopPut): fixed bug #1103902
2176
2177 2005-01-25 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
2178
2179         * device/lib/expf.c: fixed bug #1095792
2180
2181 2005-01-24 Vangelis Rokas <vrokas AT otenet.gr>
2182
2183         * device/lib/pic16/libm: added Math library sources
2184
2185 2005-01-24 Raphael Neider <rneider AT web.de>
2186
2187         * src/pic16/pcode.h: added second memory operand to pCodeOpReg
2188           to enable upcast to pCodeOpReg2 (there is no type tag to
2189           differenciate the two and pic16_popGet2p cast into PCOR2)
2190         * src/pic16/main.c (_process_pragma): fixed another malloc bug
2191           (sizeof(sectNames) changed to sizeof(sectName))
2192           Both patches fix segfaults under MinGW.
2193
2194 2005-01-23 Raphael Neider <rneider AT web.de>
2195
2196         * src/pic16/{device.c,pcode.c}: s/free/Safe_free/g for
2197           Safe_[mc]?alloc()'ed variables
2198         * src/pic16/gen.c (pic16_aopOp,pic16_popGet): added handling
2199           of (byte sized) temporaries (assign them to WREG for now)
2200         * src/pic16/main.c (_process_pragma): fixed nasty malloc bug
2201           (used sizeof(set *sectSyms) instead of sizeof(struct sectSym)),
2202           this might fix SIGSEGVs on MinGW...
2203         * src/SDCCopt.c (killDeadCode): restored original behaviour
2204           (volatile operands might get thrown away though)
2205
2206 2005-01-23 Vangelis Rokas <vrokas AT otenet.gr>
2207
2208         * src/pic16/gen.c: fixed bug #1106975,
2209         * src/pic16/gen.c: fixed possible bug #1102572, now during TOS
2210         pointer update, INTCON is saved, global interrupts are disabled and
2211         restored after updateing TOS.
2212         * src/SDCC.y, src/SDCC.lex, src/SDCCsymt.c, src/SDCCsymt.h:
2213         * added function attribute 'shadowregs' to take advantage of shadow
2214         registers,
2215         * added function attribute 'wparam' as an alternative to the wparam
2216         pragma,
2217         * support/Utils/SDCCerr.[ch]: added error E_SHADOWREGS_NO_ISR when
2218         user declares a non-ISR function as 'shadowregs',
2219         * doc/sdccman.lyx: updated to reflect recent changes of pic16 port
2220
2221 2005-01-22 Vangelis Rokas <vrokas AT otenet.gr>
2222
2223         * .version: bumped version number to 2.4.8
2224         * device/lib/pic16/pics.all: list of PIC18F devices supported by
2225         pic16 port,
2226         * device/lib/pic16/libio/i2c/: I2C module support library,
2227         * device/include/pic16/i2c.h: I2C support library header,
2228         * device/lib/pic16/libc/stdio/: standard IO support sources,
2229         * (printf_small.c): printf_small() source, supports float print,
2230         * (printf_tiny.c): printf_tiny() source, does not support floats,
2231         * device/lib/pic16/Makefile.common.in: added OPT_FLAGS macro to
2232         enable global optimizations for entire library source, other
2233         Makefiles in the source tree are also modified to reflect this,
2234         * device/lib/pic16/libc/stdlib/putchar.c (putchar): dummy putchar()
2235         function,
2236         * doc/sdccman.lyx: updated to reflect new changes,
2237         * src/pic16/gen.c (aopForSym): don't handle sym->iaccess in
2238         sym->onStack if-case,
2239         * src/pic16/main.c (_pic16_keywords): commented out keywords bit,
2240         sbit, idata, _idata, xdata, _xdata,
2241         * added pragma library, to link an external library, (see doc),
2242         * removed command line options, --pomit-config-words, --pomit-ivt,
2243         --pleave-reset-vector,
2244         * (pic16_finaliseOptions): when define macro SDCC_MODEL_{SMALL/LARGE}
2245         when calling assembler to reflect memory model used, also define
2246         macro STACK_MODEL_{SMALL/LARGE} when compiling and assembling to
2247         reflect stack model used,
2248         * src/pic16/ralloc.c (pic16_allocDirReg): when operand is allocated
2249         on stack return NULL,
2250
2251 2005-01-22 Daniel Winkler <post AT danielwinkler.de>
2252
2253         * src/SDCCopt.c (killDeadCode): do not throw iCodes away if one
2254           of the operands is volatile. Fixes #1020220
2255
2256 2005-01-22 Daniel Winkler <post AT danielwinkler.de>
2257
2258         * src/pic16/pcoderegs.c (pCodeOptime2pCodes): reenabled optimization
2259         * (OptimizeRegUsage): make sure that there is really no other flow where
2260           the first pCode is used
2261
2262 2005-01-22 Raphael Neider <rneider AT web.de>
2263
2264         * src/pic16/pcoderegs.c (pCodeOptime2pCodes): disabled optimization
2265           to fix #1106967 (pCode->seq are not set up correctly)
2266
2267 2005-01-22 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
2268
2269         * src/SDCCglue.c (glue): make sure code area is declared before the
2270         static initialization area.
2271
2272 2005-01-21 Raphael Neider <rneider AT web.de>
2273
2274         * device/lib/Makefile.in: fixed test for pic16 install dir
2275         * device/lib/pic16/*/Makefile*: modified compile flags to enable
2276           optimizations
2277         * doc/sdccman.lyx: updated banksel optimization, removed --flr-support and
2278           added --optimize-goto compiler switch and pragma wparam documentation
2279         * src/pic16/pcode.c (pic16_OptimizeBanksel): removed statistics dump
2280         * src/pic16/pcodepeep.c (pic16_pCodeOpCopy): fixed copying of WREG, PRODL
2281           and PRODH closing bug #1071770 (peephole optimizer)
2282
2283 2005-01-19 Raphael Neider <rneider AT web.de>
2284
2285         * src/SDCCglobl.h: ensure that PATH_MAX >= 2048 to guarantee
2286           cmdLine buffers (used when calling sdcpp...) are large enough
2287           (MAX_PATH=256 truncates arguments leading to system halts when
2288           used in MinGW...)
2289         * src/pic16/gen.c (pic16_sameRegs): relaxed size criterion
2290         * (genUminus): rewritten to for efficiency
2291         * (genNearPointer[GS]et): enforce reloading of FSR0 (was still
2292           used uninitialized in some cases)
2293         * (genCast): upcasting a 16bit int to a 24bit GPOINTER may not
2294           copy the third byte from the int -- now assumes 0x80 (data memory)
2295         * src/pic16/genarith.c (pic16_genPlus): fixed bug when swapping
2296           operands (genAddLit expects the iCode's operands to swapped as
2297           well), fixed leftover bytes (crashed for short left operands)
2298         * (pic16_genMinusDec): performance improvements, removed false
2299           PIC14 emitSKPNCs
2300         * (pic16_genMinus): fixed to cope with differently sized operands
2301         * src/pic16/glue.c (pic16_glue): added new banksel optimization
2302           for --obanksel > 1
2303         * src/pic16/pcode.c: implemented (first phase of) banksel optimization
2304         * src/pic16/graph.[ch]: implementation of directed graphs, used by
2305           new banksel optimization
2306         * src/pic16/pcoderegs.c (pCodeRegMapLiveRangesInFlow): prevented
2307           analysis for temporary registers (segfaults...)
2308         * src/pic16/peeph.def: added rule
2309
2310 2005-01-18 Vangelis Rokas <vrokas AT otenet.gr>
2311
2312         * device/lib/pic16/libc/stdlib/x_ftoa.c: it defines x_ftoa function
2313         which converts a float number to its ASCII representation
2314         * device/lib/pic16/libc/utils/cnvfrac.S,cnvint.S: support
2315         functions to convert the fractional and integer part of a float to ASCII,
2316         * device/lib/pic16/libc/stdlib/(calloc.c,free.c, malloc.c,
2317         realloc.c): added _MALLOC_SPEC to explicit place variables in data
2318         ram
2319         * device/include/asm/pic16/features.h: added _CODE, _DATA, _AUTOMEM,
2320         _STATMEM macros,
2321         * device/include/pic16/adc.h: added GPL info,
2322         * src/pic16/gen.c (genIfxpCOpJump): perform an genIfxJump but using
2323         a pCodeOp as tested operand,
2324         * (genNearPointerGet): optimized bit testing, does not use
2325         intermediate register for bit value, test directly instead with
2326         BTFSS, BTFSC, works only for single bits,
2327         * (genpic16Code): dump the name of the iCode in the asm,
2328         * src/pic16/ralloc.c (decodeOp): removed static declaration and
2329         renamed to pic16_decodeOp,
2330         * (serialRegAssign): do not allocate a temporary register for iCode
2331         sequences that test a single bit for 1/0
2332
2333 2005-01-12 Vangelis Rokas <vrokas AT otenet.gr>
2334
2335         * src/pic16/pcode.[ch]: introduced pic16_stackpnt_*,
2336         pic16_framepnt_*, pic16_stack_*, pic1_frame_* pointer variables to
2337         access stack and frame pointers. They are initially assigned to
2338         point at pic16_pc_fsr1[lh] and pic16_pc_fsr2[lh] variables and other
2339         accessing SFRs. Updated all occurences of modification of stack or
2340         frame pointer in gen.c and pcode.c,
2341         * src/pic16/ralloc.c (serialRegAssign): fixed two bugs with
2342         assigning of a literal value to pointers,
2343         * src/pic16/main.c (pic16_finiliseOptions): set pre-processor define
2344         flag STACK_MODEL_SMALL or STACK_MODEL_LARGE according to the model
2345         selected
2346
2347 2005-01-11 Vangelis Rokas <vrokas AT otenet.gr>
2348
2349         * doc/sdccman.lyx: update documentation about stack pragma, added
2350         some info for stack memory models
2351
2352 2005-01-08 Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
2353
2354         * src/pic16/gen.c (DEBUGpc): MSVC 6 does not support macro variable arguments
2355
2356 2005-01-08 Raphael Neider <rneider AT web.de>
2357
2358         * src/pic16/device.c (pic16_dump_usection): changed naming scheme for
2359           udata sections to fix bug #1097823
2360
2361 2005-01-05 Raphael Neider <rneider AT web.de>
2362
2363         * src/pic16/gen.c (genGenericShift): added handling of differently
2364           sized left operand and result
2365
2366 2005-01-04 Raphael Neider <rneider AT web.de>
2367
2368         * src/pic16/gen.c (genIfxJump): fixed inverted skips on CARRY
2369         * (genIfx): fixed (?) read from uninitialized SPIL_LOC (now assumes CARRY
2370           to hold the condition bit)
2371         * added new version of genCmp (old code available via #define)
2372         * added new version of genShiftLeft/genShiftRight in a generic
2373           way, now supports shifting by negative values
2374         * (genLeftShiftLiteral, genRightShiftLiteral): use absolute value of
2375           shiftCount (expected by genGenericShift)
2376         * src/pic16/genarith.c (genPlus): added code for adding CARRY+literal
2377         * src/pic16/pcode.c (pic16_OptimizeJumps): removed annoying statistics
2378           dump
2379         * (pic16_newpCodeOpLit): changed to cast to unsigned char (as e.g. -32766
2380           is an invalid literal too...)
2381
2382 2005-01-04 Vangelis Rokas <vrokas AT otenet.gr>
2383
2384         * src/pic16/gen.c (aopForSym, genEndFunction): applied some fixes
2385         from Raphael Neider,
2386         * src/pic16/pcode.c (pic16_newpCodeOpLit): removed casting to char
2387         for 8-bit literals. This fixes some literal operands which are sign
2388         extended to 16-bits ints when instruction needs only 8-bits.
2389
2390 2004-12-31 Paul Stoffregen <paul AT pjrc.com>
2391
2392         * device/lib/logf.c: added mcs51 assembly version
2393         * device/lib/expf.c: added mcs51 assembly version
2394         * device/lib/_logexpf.c: new shared asm code for expf and logf
2395         * device/include/math.h: add defines for assembly math library
2396         * device/lib/Makefile.in: build new _logexpf.c
2397         * device/lib/libfloat.lib: use new _logexpf.c
2398
2399 2004-12-29 Slade Rich <slade_rich AT users.sourceforge.net>
2400
2401         * src/pic/device.c
2402         * src/pic/pcode.c : adjusted internal stack and pre-allocated registers for
2403           device types which have less than 0x7f registers.
2404
2405 2004-12-29 Slade Rich <slade_rich AT users.sourceforge.net>
2406
2407         * src/pic/genarith.c : Fixed problem with subtraction where the result would not be updated when borrowing.
2408
2409 2004-12-28 Paul Stoffregen <paul AT pjrc.com>
2410
2411         * device/lib/printf_fast.c: only build on supported arch.
2412         * device/lib/printf_tiny.c: only build on supported arch.
2413         * device/lib/printf_fast_f.c: only build if asm float lib
2414         * device/lib/_fsget1arg.c: only build if asm float lib
2415         * device/lib/_fsget2args.c: only build if asm float lib
2416         * device/lib/_fsnormalize.c: only build if asm float lib
2417         * device/lib/_fsreturnval.c: only build if asm float lib
2418         * device/lib/_fsrshift.c: only build if asm float lib
2419         * device/lib/_fsswapargs.c: only build if asm float lib
2420         * device/include/stdio.h: don't provide print_fast,
2421           print_fast_f, print_tiny prototypes if --xstack used
2422
2423 2004-12-28 Maarten Brock <sourceforge.brock AT dse.nl>
2424
2425         * device/lib/sincosf.c (sincosf): don't invert bit/bool by ~
2426         * support/regression/ports/mcs51-stack-auto/spec.mk: added new _fs.. files
2427           to the SOURCES
2428
2429 2004-12-28 Paul Stoffregen <paul AT pjrc.com>
2430
2431         * device/lib/printf_fast_f.c: same as printf_fast, but
2432           with floating point enabled
2433         * device/lib/printf_fast.c: minor tweaks
2434         * device/include/stdio.h: add printf_fast_f
2435
2436 2004-12-27 Paul Stoffregen <paul AT pjrc.com>
2437
2438         * src/SDCCmain.c: make --float-reent default for mcs51
2439         * device/lib/_fsadd.c: added mcs51 assembly version
2440         * device/lib/_fssub.c: added mcs51 assembly version
2441         * device/lib/_fsmul.c: added mcs51 assembly version
2442         * device/lib/_fsdiv.c: added mcs51 assembly version
2443         * device/lib/_fseq.c: added mcs51 assembly version
2444         * device/lib/_fsneq.c: added mcs51 assembly version
2445         * device/lib/_fsgt.c: added mcs51 assembly version
2446         * device/lib/_fslt.c: added mcs51 assembly version
2447         * device/lib/_fscmp.c: shared code for fseq,fsgt,fslt,fsneq
2448         * device/lib/Makefile.in: add _fscmp to build
2449         * device/lib/libfloat.lib: add _fscmp to build
2450
2451 2004-12-27 Paul Stoffregen <paul AT pjrc.com>
2452
2453         * device/lib/_fs2slong.c: added mcs51 assembly version
2454         * device/lib/_fs2sint.c: added mcs51 assembly version
2455         * device/lib/_fs2schar.c: added mcs51 assembly version
2456         * device/lib/_fs2ulong.c: added mcs51 assembly version
2457         * device/lib/_fs2uint.c: added mcs51 assembly version
2458         * device/lib/_fs2uchar.c: added mcs51 assembly version
2459         * device/lib/_slong2fs.c: added mcs51 assembly version
2460         * device/lib/_sint2fs.c: added mcs51 assembly version
2461         * device/lib/_schar2fs.c: added mcs51 assembly version
2462         * device/lib/_ulong2fs.c: added mcs51 assembly version
2463         * device/lib/_uint2fs.c: added mcs51 assembly version
2464         * device/lib/_uchar2fs.c: added mcs51 assembly version
2465         * device/include/float.h: added #define to select asm vs c
2466
2467 2004-12-26 Paul Stoffregen <paul AT pjrc.com>
2468
2469         * device/lib/printf_fast.c: improvements to float output
2470         * device/include/float.h: add defines for assembly float library
2471         * device/lib/_fsget1arg.c: receive 1 float arg
2472         * device/lib/_fsget2args.c: receive 2 float args (reentrant)
2473         * device/lib/_fsnormalize.c: normalize a float
2474         * device/lib/_fsreturnval.c: return float, various helper routines
2475         * device/lib/_fsrshift.c: right shift a float's mantissa
2476         * device/lib/_fsswapargs.c: swap 2 floats
2477         * device/lib/Makefile.in: build these 6 new files for mcs51
2478         * device/lib/libfloat.lib: add these 6 files to the library
2479
2480 2004-12-26 Borut Razem <borut.razem AT siol.net>
2481
2482         * sim/ucsim/avr.src/arith_inst.cc: fixed bug #1088372- savr is not
2483           built by gcc 3.4.2
2484
2485 2004-12-25 Paul Stoffregen <paul AT pjrc.com>
2486
2487         * device/lib/printf_tiny.c: printf for mcs51 in only 267 bytes,
2488           and fully reentrant and register bank neutral.
2489         * device/lib/printf_fast.c: added float (not enabled by default),
2490           added compact/slower integer (also not enabled by default),
2491           improved size/speed of fast integer code, other minor changes
2492         * device/include/stdio.h, device/lib/Makefile.in,
2493           device/lib/libsdcc.lib: integrate printf_tiny into mcs51 build
2494
2495 2004-12-24 Maarten Brock <sourceforge.brock AT dse.nl>
2496
2497         * src/pic16/pcode.c: declaring variables other than at the start of a
2498           block is not supported in C by VC6.
2499
2500 2004-12-22 Vangelis Rokas <vrokas AT otenet.gr>
2501
2502         * applied a previous patch from Raphael Neider that wasn't included
2503         in the previous commits, which fixes infinite loops within jumptable
2504         improvements,
2505         * made some fixes that previous patches introduced
2506
2507 2004-12-21 Vangelis Rokas <vrokas AT otenet.gr>
2508
2509         * src/pic16/gen.c (pic16_aopGet): applied fix from Raphael Neider
2510         that fixes an issue with AOP_PCODE asmop's offset,
2511         * (pic16_popCopyReg): update instance field too,
2512         * (mov2w): modified to pic16_mov2w because it conflicts with mov2w
2513         function of pic port,
2514         * (genCmp, genAnd, genAssign),
2515         * src/pic16/genarith.c (genAddLit): some fixes from Raphael Neider,
2516
2517 2004-12-20 Vangelis Rokas <vrokas AT otenet.gr>
2518
2519         * src/SDCCast.c (gatherAutoInit): allow pic16 to emit static
2520         variables initial values to idata section,
2521         * src/SDCCicode.c (geniCodeCall): patch from ### to fix unreferenced
2522         variables in some functions. This utilizes parmBytes field of iCode
2523         structure to hold the offset of the variable in stack. (might be
2524         able to use the stack field too?)
2525         * applied patch from Raphael Neider # ### , # ###
2526         * src/pic16/glue.c (pic16emitRegularMap): fix to print static
2527         variable initial values in idata section,
2528         * src/pic16/ralloc.c (pic16_allocDirReg): don't allocate register
2529         for static variables with initial value
2530         * src/device/lib/pic16/libsdcc/float/ulong2fs.c (__ulong2fs):
2531         applied fix in while loop from Raphael Neider.
2532
2533 2004-12-19 Maarten Brock <sourceforge.brock AT dse.nl>
2534
2535         * src/ds390/gen.c (genCpl): fixed bit=~(char/bit) bugs, added warning
2536         * src/ds390/main.c (_ds390_regparm): don't pass bit params in registers
2537         * src/ds390/ralloc.c (serialRegAssign): spill bits
2538         * src/mcs51/gen.c (genCpl): fixed bit=~(char) bugs, added warning
2539         * support/Util/SDCCerr.c,
2540         * support/Util/SDCCerr.h: added warning W_COMPLEMENT for using bit=~(bit)
2541         * support/regression/tests/bitvars.c: added tests for bitwise complement(~)
2542         * support/regression/tests/bitwise.c: added test for bitwise complement(~)
2543
2544 2004-12-09 Maarten Brock <sourceforge.brock AT dse.nl>
2545
2546         * device/include/sdcc-lib.h: inserted LGPL, added includes
2547           asm/ds390/features.h and asm/mcs51/features.h
2548         * device/include/asm/default/features.h,
2549         * device/include/asm/gbz80/features.h,
2550         * device/include/asm/z80/features.h: added empty _AUTOMEM
2551           and _STATMEM
2552         * device/include/asm/ds390/features.h,
2553         * device/include/asm/mcs51/features.h: added files with defines for
2554           _AUTOMEM and _STATMEM indicating automatic and static storage class
2555         * device/lib/printf_large.c (_print_format): optimized & used _AUTOMEM
2556         * doc/sdccman.lyx: version 2.4.7, updated xstack documentation
2557         * src/SDCCicode.c (geniCodeCast),
2558         * src/SDCCsymt.c (compareType): allow cast of data-ptr to idata-ptr
2559         * src/SDCCloop.c (loopInduction): removed unused variable lr
2560         * src/SDCCopt.c (convilong, convertToFcall): moved "easy special case"
2561           to convertToFcall to include char modulo (RFE 1065037), added check
2562           if left operand is unsigned and use abs of literal value
2563         * src/SDCCpeeph.c (setFromConditionArgs): removed double quotes option
2564           as it doesn't work after conversion from peephole.def to peephole.rul
2565         * src/mcs51/gen.c (toBoolean): added check for size,
2566           (genModOneByte): optimized code for signed char modulo a literal
2567           power of 2 (thanks to Hubert Sack),
2568           (genRRC): removed unnecessary "clr c",
2569           (genRLC): replaced "add a,acc" with cheaper "rlc a"
2570         * src/mcs51/peeph.def: renamed 115 to 115.a, added rule 115.b: another
2571           jump optimization,
2572           swapped rules 256.c and 256.d,
2573           extended 256.d by using new multiple checks (thanks Erik),
2574           added rules 256.e and 256.f,
2575           updated rule 261.a and 261.b to new generated code
2576         * support/regression/tests/muldiv.c: added test div/mod by a power of 2
2577
2578 2004-12-07 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
2579
2580         * src/SDCCloop.c (basicInduction, loopInduction): fixed several
2581           induction related bugs, including first part of bug #1074377
2582
2583 2004-12-05 Vangelis Rokas <vrokas AT otenet.gr>
2584
2585         * applied patch from bug-report #1076292,
2586         * applied patches for genAnd and Goto-optimizations for Raphael
2587         Neider,
2588         * src/SDCCicode.c (printOperand): fixed !REGA source to compile and
2589         dump a less iCode information,
2590         * src/pic16/device.h (pic16_options_t): added field debgen,
2591         * src/pic16/gen.h: added macros DUMP_FUNCTION_ENTRY,
2592         DUMP_FUNCTION_EXIT, FENTRY, FENTRY2,
2593         * src/pic16/gen.c (my_powof2): renamed to pic16_my_powof2 and made
2594         puclic,
2595         * (various functions): added macros FENTRY and FENTRY2 to functions,
2596         to emit function prologue,
2597         * (various functions): fixed indentation,
2598         * (genNearPointerGet): fixed loading of FSR0,
2599         * (genPackBits): applied patch from Raphael Neider to fix updating
2600         of FSR0 and touching only the modified bits,
2601         * src/pic16/genarith.c (various functions): added macros FENTRY to
2602         emit function prologue in comments,
2603         * src/pic16/pcode.h: added functions debugf2, debugf3,
2604         * src/pic16/ralloc.c: partial fix for packForPush caused
2605         segmentation fault,
2606
2607 2004-12-04 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
2608
2609         * src/mcs51/peeph.def: added 261.a,b (16 bit rotate) by Stas Sergeev
2610           <stsp AT users.sourceforge.net> with reversed byte order
2611         * support/regression/tests/rotate.c: added (ds390 skips some tests)
2612
2613 2004-12-03 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
2614
2615         * src/z80/gen.c (genLeftShift, genRightShift): fixed second part of
2616           bug #1074377
2617         * src/hc08/gen.c (genrshFour, shiftRLong, shiftLLong),
2618         * src/mcs51/gen.c (shiftLLong): Fixed some shifting bugs Frieder found
2619
2620 2004-12-02 Slade Rich <slade_rich AT users.sourceforge.net>
2621
2622         * src/pic/pcode.c : fixed a problem where banksel was not being inserted.
2623
2624 2004-12-02 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
2625
2626         * src/SDCCpeeph.c (callFuncByName): support combined peephole rule
2627           conditions,
2628           (setFromConditionArgs): friendly operand parser for peephole rules,
2629           (operandBaseName, operandsNotRelated): new peephole condition
2630           "operandsNotRelated" -- similar to "operandsNotSame", but takes
2631           architecture specific register naming into account, handles n-way
2632           comparisons, and supports quoted literals
2633         * src/mcs51/peeph.def: restored rule 177.d with an extra condition
2634
2635 2004-12-02 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
2636
2637         * src/mcs51/peeph.def: fixed bug #1076940
2638
2639 2004-12-02 Slade Rich <slade_rich AT users.sourceforge.net>
2640
2641         * device/include/pic/pic16f877.h : added an include file for the PIC16F877 device.
2642
2643 2004-11-28 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
2644
2645         Adding support for replacing ljmps with sjmps in jumptables
2646         generated for switch statements. For now you need to set the
2647         environment variable SDCC_SJMP_JUMPTABLE to enable this.
2648         Now 4 algorithms for mcs51 jumptable generation are used:
2649         ljmp or sjmp jumptables for up to 16 cases, stack-pushing target
2650         addresses loaded pc-relative for up to 112 cases and stack-pushing
2651         target addresses loaded with offset from dptr for up to 256 cases.
2652
2653         * src/SDCCpeeph.c: added peephole conditional labelJTInRange
2654         * src/mcs51/main.c: adapted constants for switch table generation
2655         * src/mcs51/peeph.def: added 260.x for replacing ljmp with sjmp
2656
2657 2004-11-26 Maarten Brock <sourceforge.brock AT dse.nl>
2658
2659         * device/lib/printf_large.c (_print_format): fixed bug 1073386
2660         * support/regression/tests/bug1057979.c: added test for bug 1073386
2661
2662 2004-11-25 Vangelis Rokas <vrokas AT otenet.gr>
2663
2664         * src/pic16/pcode.c: fixed bug which may produce error in non-GNU
2665         compilers
2666
2667 2004-11-25 Vangelis Rokas <vrokas AT otenet.gr>
2668
2669         * src/pic16/device.h,
2670         * src/pic16/genarith.c,
2671         * src/pic16/glue.c,
2672         * src/pic16/main.c,
2673         * src/pic16/pcode.c: applied patches #1068154 and #1070213
2674
2675 2004-11-24 Vangelis Rokas <vrokas AT otenet.gr>
2676
2677         Large cummulative patch for pic16 port.
2678         * device/lib/pic16/gstack.h: NEW, user can specify its own handler
2679         to call when a stack overflow occurs,
2680         * (malloc.h): added CVS Id tag,
2681         * (pic18f{242,252,442,452}.h): added T0CONbits structure and
2682         variable,
2683         * added libc directory. The current version of LibC contains string
2684         functions, ctype functions and macros and some functions of the
2685         stdlib set (like malloc/free/atof/atoi etc...). All functions are to
2686         be extensively tested in the future. Standard disclaimer here.
2687         Library is not automatically build yet. But one can build it by
2688         invoking 'make' inside the libc directory.
2689         * added ADC library under libio. Preliminary version yet.
2690
2691         * src/pic16/gen.h: added emitTOGC macro, to toggle Carry flag,
2692         * src/pic16/gen.c (aopForRemat): asmop size is filled by
2693         aopForRemat() now and not by pic16_aopOp(),
2694         * (pic16_popGetTempReg): removed warning messgae when allocating
2695         temporary registers, its a buggy feature and will be removed,
2696         * (pic16_popGet): set register instance field in AOP_CRY,
2697         * (pic16_outBitC): fixed for results in size greater than 1,
2698         * (genUminusFloat): fixed for pic16, ported code from mcs51,
2699         * (pic16_storeForReturn): optimized return of 0,
2700         * (genCmp): experimental code for new genCmp which uses PIC18's
2701         special compare&skip instructions. Initial tests fail some times
2702         with variables grater than 1 byte in size, so new code is disabled,
2703         * (genUnpackBits, genPackBits): more optimizations in reading/writing,
2704         a single bit,
2705         * (genCast): began a fix to optimize the casting of a bit to another
2706         bit, now assigning a bitfield to another bitfield will fail, sorry,
2707         * src/pic16/main.c: disabled the use of lr-support feature,
2708         * src/pic16/pcode.h: renamed PCASMDIR to PCAD,
2709         * added some function prototypes, added function _debugf prototype,
2710         * src/pic16/pcode.c: (pic16_get_op): fixed emitting operands of register
2711         bits with offset (case PO_GPR_BIT),
2712         * (genericPrint): don't emit INFO pcode when --pcode-verbose not in
2713         command line,
2714         * (isBankInstruction): modified to return 0 for no banking instruction,
2715         and 1 for banking instruction,
2716         * (pic16_isPCinFlow): check for PCAD (assembler directives) too,
2717         caused stop processing pCodes after a inline assembly block,
2718         * (pic16_popCopyGPR2Bit): updated to match bitfields with offset,
2719         * src/pic16/pcoderegs.c: fixed a bug with eliminating some temporary
2720         registers when it shouldn't,
2721         * src/pic16/ralloc.c (allocReg): add preliminary support for
2722         supporting a limited set of temporary registers,
2723
2724 2004-11-23 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
2725
2726         * src/hc08/gen.c (genAssign, genPointerGetSetOfs, genDataPointerGet,
2727           genDataPointerSet): ensure assignments always copy in MSB to LSB
2728           order,
2729           (loadRegFromAop): recognize CLRH optimization,
2730           (genFunction): optimize RECEIVE iCodes in reentrant functions
2731
2732 2004-11-20 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
2733
2734         * src/SDCCmain.c (parseCmdLine, optionsTable[]): fixed bug with
2735           --out-fmt-s19 turning into --out-fmt-elf if s19 was already
2736           selected.
2737         * src/SDCCmain.c (linkEdit): don't define SSEG for HC08
2738         * src/hc08/main.c (_hc08_setDefaultOptions): default xdata to be
2739           contiguous with data
2740
2741 2004-11-19 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
2742
2743         * device/lib/_gptrget.c (_gptrget),
2744         * device/lib/_gptrgetc.c (_gptrgetc),
2745         * device/lib/_gptrput.c (_gptrput): _naked allows to use ret
2746           instead of sjmp to ret
2747         * src/mcs51/peeph.def: added peepholes 3.d-g and 177.g,h provided
2748           by Hubert Sack <hsack2002 AT arcor.de> in RFE #1067986, thanks
2749
2750 2004-11-18 Maarten Brock <sourceforge.brock AT dse.nl>
2751
2752         * .version: bumped version to 2.4.7
2753         * device/lib/_gptrget.c (_gptrget): is now _naked
2754         * device/lib/_gptrgetc.c (_gptrgetc): is now _naked
2755         * device/lib/_gptrput.c (_gptrput): is now _naked
2756         * src/SDCCast.c (createBlock): removed ridiculous self-assignment,
2757           (createFunction): fixed xstack
2758         * src/SDCCglue.c (emitMaps): set allocation required for bit area
2759         * src/SDCCicode.c (geniCodeCast): don't change SPEC_OCLS for literal
2760           or bit either,
2761           (geniCodeCritical): store original interrupt state in an iTemp bit
2762           var unless stack-auto
2763         * src/SDCCicode.h: added CRITICAL and ENDCRITICAL to SKIP_IC2
2764         * src/SDCCmain.c (setIncludePath): added include/target to search path
2765         * src/SDCCmem.c (allocParms): store bit vars in bit space, not overlay
2766         * src/SDCCsymt.c (checkFunction): don't check regbank for isr's against
2767           prototype,
2768           (processFuncArgs): put bit vars in bit area
2769         * src/mcs51/gen.c (saveRegisters, unsaveRegisters, genXpush, saveRBank,
2770           unsaveRBank): fixed xstack,
2771           (genFunction): bugfix: replaced (global!) reentrant with fReentrant,
2772           (genFunction, genEndFunction): fixed xstack,
2773           (genAssign): optimization don't walk backwards through mem
2774         * src/mcs51/main.c (_mcs51_regparm): don't pass bit params in registers
2775         * src/mcs51/ralloc.c (createStackSpil): spill bits to bit area
2776         * support/regression/Makefile: also make library (for stack-auto) when
2777           making "all" and added "test-mcs51-xstack-auto"
2778         * support/regression/fwk/lib/testfwk.c: added T2_isr prototype for mcs51
2779         * support/regression/ports/mcs51/T2_isr.c: added this file as a stub
2780         * support/regression/ports/mcs51/fwk.lib: added to link T2_isr stub
2781         * support/regression/ports/mcs51/spec.mk: added rules for fwk.lib
2782         * support/regression/ports/mcs51-stack-auto/spec.mk: replaced
2783           make-library by MAKE_LIBRARY
2784         * support/regression/ports/mcs51-xstack-auto/spec.mk: file added to run
2785           regression tests for xstack
2786         * support/regression/tests/bitvars.c: test for bit vars (bug 938782)
2787         * support/regression/tests/critical.c: test for critical on mcs51
2788
2789 2004-11-18 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
2790
2791         * support/regression/ports/ucz80/spec.mk: use include and lib files from
2792           built version of sdcc instead of installed version
2793
2794 2004-11-14 Maarten Brock <sourceforge.brock AT dse.nl>
2795
2796         * src/mcs51/gen.c (toBoolean): fixed bug 1065458
2797         * device/lib/Makefile.in: z80 uses printf_large.c, sprintf.c and
2798           vprintf.c now
2799         * device/lib/printf_large.c (calculate_digit): fixed bug 1057979
2800         * device/lib/z80/Makefile: don't use printf.c as it fails bug 1057979
2801           WARNING: remove device/lib/build/z80/printf.o by hand when
2802           updating from previous build!
2803         * device/lib/z80/printf.c: updated comment
2804         * support/regression/tests/bug1057979.c: test all ports now
2805         * support/regression/tests/bug1065458.c: file added
2806
2807 2004-11-12 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
2808
2809         * src/z80/gen.c (genFunction, genEndFunction): avoided generating
2810           *_start and *_end symbols for static functions
2811
2812 2004-11-11 Maarten Brock <sourceforge.brock AT dse.nl>
2813
2814         * src/SDCCmain.c (linkEdit): don't suppress crt0 if --nostdlib is used
2815           and search crt0.o in all library paths,
2816           (setIncludePath): proper handling of --nostdinc,
2817           (setLibPath): proper handling of --nostdlib
2818         * support/regression/Makefile,
2819         * support/regression/ports/ds390/spec.mk,
2820         * support/regression/ports/gbz80/spec.mk,
2821         * support/regression/ports/hc08/spec.mk,
2822         * support/regression/ports/mcs51/spec.mk,
2823         * support/regression/ports/mcs51-large/spec.mk,
2824         * support/regression/ports/mcs51-stack-auto/spec.mk,
2825         * support/regression/ports/z80/spec.mk: use include and lib files from
2826           built version of sdcc instead of installed version
2827         * doc/sdccman.lyx: fixed typo in --nostdinc
2828
2829 2004-11-10 Slade Rich <slade_rich AT users.sourceforge.net>
2830
2831         * src/pic/pcode.c,
2832         * src/pic/device.c,
2833         * src/pic/ralloc.c,
2834         * src/pic/gen.c : added support to generate code for struct bit fields.
2835
2836 2004-11-06 Maarten Brock <sourceforge.brock AT dse.nl>
2837
2838         * as/xa51/xa_version.h,
2839         * device/include/errno.h,
2840         * device/include/regc515c.h,
2841         * device/lib/_itoa.c,
2842         * device/lib/_ltoa.c,
2843         * device/lib/ser_ir_cts_rts.c,
2844         * sim/ucsim/xa.src/glob.cc,
2845         * sim/ucsim/xa.src/inst_gen.cc,
2846         * sim/ucsim/xa.src/xa_bit.cc,
2847         * sim/ucsim/xa.src/xa_sfr.cc,
2848         * sim/ucsim/z80.src/inst_dd.cc,
2849         * sim/ucsim/z80.src/inst_fdcb.cc,
2850         * support/scripts/keil2sdcc.pl,
2851         * src/pic16/pic16.dsp,
2852         * src/pic16/pic16a.dsp: corrected cvs line endings
2853         * device/lib/printf_large.c: fixed bug 1057979
2854         * src/pic16/gen.c: fixed non-C standard code
2855         * src/SDCCmain.c: made --pack-iram default, added --no-pack-iram
2856         * src/SDCCglobl.h: changed pack_iram to no_pack_iram
2857         * support/regression/ports/mcs51/support.c: reload T1 asap
2858         * doc/sdccman.lyx: updated for options --pack-iram and --no-pack-iram,
2859           pdata use and clear idata startup behaviour
2860         * support/regression/tests/bug1057979.c: added
2861
2862 2004-11-04 Maarten Brock <sourceforge.brock AT dse.nl>
2863
2864         * device/examples/ds390/ow390/ad26.h,
2865         * device/examples/ds390/ow390/cnt1d.h,
2866         * device/examples/ds390/ow390/crcutil.c,
2867         * device/examples/ds390/ow390/ownet.h,
2868         * device/examples/ds390/ow390/owsesu.c,
2869         * device/examples/ds390/ow390/swt12.h,
2870         * device/examples/ds390/ow390/swtoper.c,
2871         * device/examples/ds390/ow390/temp10.h,
2872         * device/examples/ds390/ow390/thermodl.c,
2873         * device/examples/ds390/tinitalk/tinitalk.dsp,
2874         * device/examples/ds390/tinitalk/tinitalk.dsw,
2875         * device/examples/mcs51/clock/hw.h,
2876         * device/examples/mcs51/simple2/go.bat,
2877         * device/examples/serialcomm/windows/serial.h,
2878         * device/examples/xa51/dummy.c,
2879         * device/examples/xa51/hello.c,
2880         * device/include/80c51xa.h,
2881         * device/include/at89x051.h: corrected cvs line endings
2882
2883 2004-11-04 Vangelis Rokas <vrokas AT otenet.gr>
2884
2885         * src/pic16/main.c (options): added command line --gstack, to trace
2886         stack over/under flows,
2887         * added pragma 'wparam' to allow passing first byte of function
2888         parameters via WREG, syntax is #pragma wparam my_function[, func2...]
2889         * src/pic16/gen.c (pic16_testStackOverflow): function which emits a
2890         call to __gstack_test function and sets up the symbol as extern,
2891         * (pic16_pushpCodeOp, pic16_poppCodeOp, pushw, pushaop, popaopidx,
2892         * popaop): added call to pic16_testStackOverflow,
2893         * (wParamCmp, inWparamList): NEW, test existence of a symbol in
2894         wparamList list,
2895         * (genCall, genPcall): now all parameters are passed via stack
2896         except in functions that are pass to wparam pragma in which WREG is
2897         used too,
2898         * (genPcall): REENTRANT flag is checked to see if variable prototype
2899         contains reentrant keyword, don't call a non-reentrant function, via
2900         a reentrant function pointer or vice versa, functions are never
2901         passed via WREG,
2902         * (genJumpTab): applied patch from bug #1057478 by R.Neider and
2903         D.Winkler,
2904         * src/pic16/glue.c (pic16emitRegularMap): fixed bug which caused a
2905         SIGSEGV when accessing a NULL register stucture,
2906         * (pic16_printGPointerType): modified to handle UPPER modifier for
2907         function initializers, changed prototype of function to simpler one,
2908         * (pic16_printIvalFuncPtr): check to see if function is already
2909         added in externs list,
2910         * src/pic16/pcoderegs.c (pCodeOptime2pCodes): fixed bug which
2911         optimized a move from W to SFR with a move to the same register
2912         later after a CALL,
2913         * device/lib/pic16/debug: NEW directory, contains debug features
2914         which are enabled when linking with libdebug.lib, currently command
2915         line option --gstack enables stack pointer tracing for over/under
2916         flow, corresponding sources are in debug/gstack
2917
2918 2004-10-30 Vangelis Rokas <vrokas AT otenet.gr>
2919
2920         * doc/sdccman.lyx: updated SDCC version,
2921         * (PIC16 port): update list of command line options,
2922         * src/pic16/device.h (structure pic16_options_t): added field gstack
2923         to enable stack overflow tracing on push/pops,
2924         * src/pic16/device.c (statistics structure): added statistics
2925         structure,
2926         * (pic16_dump_access, pic16_dump_usection, pic16_dump_gsection,
2927         pic16_dump_int_registers): increase statistics counters for each
2928         * variable which is encountered
2929         * (pic16_dump_usection): emit each .udata variable to its own udata
2930         section,
2931         * src/pic16/gen.c (assignResultValue, genCall, genPcall, genFunction):
2932         when macro USE_WREG_IN_FUNC_PARAMS is set to 0 pass all function
2933         parameters via stack, otherwise use old scheme,
2934         * src/pic16/glue.c (pic16_emitStatistics): dump statistics in
2935         assembler output file,
2936         * src/pic16/main.c: added command line options --gstack to enable
2937         push/pop tracing for stack overflow,
2938         * src/pic16/pcode.c (all pCodeInstruction records for PIC18F
2939         instructions): added size of each instruction,
2940         * (pic16_countInstruction): estimate size of instructions in
2941         the_pFile list, inline assembly blocks are not counted,
2942         * (pic16_FixRegisterBanking): trace previous register usage, when
2943         banksel optimizations is greater than 0, don't emit a redudant
2944         banksel directive,
2945
2946 2004-10-26 Slade Rich <slade_rich AT users.sourceforge.net>
2947
2948         * src/pic/ralloc.c : fixed inefficient code produced when compiling a complimented bit operation.
2949         * src/pic16/ralloc.c : applied same fix for pic16.
2950         * src/pic/gen.c : tidied it up a little.
2951
2952 2004-10-25 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
2953
2954         * src/mcs51/peeph.def: disabled 259.a,b for removing redundant ret,
2955         thanks to Martin Helmling for reporting (mail on sdcc-devel 2004-10-25)
2956
2957 2004-10-22 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
2958
2959         * src/SDCCast.c (reverseParms): fixed bug #1040577 (part 2)
2960
2961 2004-10-22 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
2962
2963         * device/lib/ser_ir_cts_rts.c: integer promotion caused a call to the
2964         non-reentrant function __modsint in the interrupt function (thus
2965         corrupting math operations during serial I/O)
2966         * device/lib/ser_ir.c: as above, changed buffersize
2967         * src/mcs51/peeph.def: added 259.a,b for removing redundant ret,
2968         256.c,d for zeroing
2969         * doc/Makefile: added option -t for rsync
2970
2971 2004-10-22 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
2972
2973         * src/SDCCast.h (struct ast),
2974         * src/SDCCast.c (reverseParms, copyAst): fixed bug #1040577 (part 1)
2975
2976 2004-10-20 Borut Razem <borut.razem AT siol.net>
2977
2978         * support/scripts/sdcc.nsi: added include/pic16/*.h to the setup
2979         package
2980
2981 2004-10-20 Vangelis Rokas <vrokas AT otenet.gr>
2982
2983         * device/lib/pic16/libsdcc/Makefile: added lregs directory in
2984         makefile targets,
2985         * device/lib/pic16/libsdcc/lregs/{Makefile,lrst.c,lrrest.c}: NEW
2986         support functions to replace long sequences of MOVFF's from access
2987         bank registers to stack and vice versa,
2988         * src/pic16/device.h: added new field opt_flags, where optimization
2989         flags can be set to enable certain features,
2990         * src/pic16/gen.c (pic16_emitpinfo): NEW to add PC_INFO pCode in
2991         * pBlock, (genFunction, genEndFunction): surroung loop for
2992         saving/loading used registers in stack with PC_INFO pCodes,
2993         INF_LREGS. Code in between can then be optimized by pCode optimizer
2994         to support function calls,
2995         * (genDataPointerSet): fixed bug which loaded float fields in
2996         structures with corrupt data,
2997         * src/pic16/genutils.c (debugf, _debugf): macro/function which emits
2998         in a standard way debug info on stderr. Feature used for developing
2999         and debugging only,
3000         * src/pic16/glue.c (pic16glue): reformatted, deleted some old and
3001         obsolete chunks of code,
3002         * if optimization flag OF_LR_SUPPORT was set, call pic16_OptimizeLocalRegs,
3003         * src/pic16/main.c (_pic16_parseOptions): added handler for --flr-support,
3004         * pic16/src/pcode.c (pic16_newpCodeInfo,
3005         * (pic16_newpCodeOpLocalRegs),
3006         * (pic16_convertLocalRegs2Support): NEW, to support new optimization
3007         feature,
3008         * (pic16_pCodeConstString): printing of the initial value of a
3009         symbol as a comment is inhibited since parsing was already done by
3010         copyStr and output is corrupt,
3011         * (pic16_pCode2str, genericPrint): handle PC_INFO pCode,
3012
3013 2004-10-20 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
3014
3015         * src/mcs51/ralloc.c (packRegisters): fixed bug #1044601
3016
3017 2004-10-19 Maarten Brock <sourceforge.brock AT dse.nl>
3018
3019         * as/mcs51/lkarea.c: removed old K&R style,
3020           (lnksect): changed check on boundary error,
3021           (lnksect2): changed check on boundary error,
3022           (lnksect2): extend XSTK to end of page if size = 1
3023         * as/mcs51/lkmain.c: removed old K&R style,
3024           (Areas51): create l_IRAM symbol
3025         * as/mcs51/lkmem.c (summary2): added report on PSEG and XSTK
3026         * device/lib/Makefile.in: renamed model-mcs51-reentrant to
3027           model-mcs51-stack-auto, added model-mcs51-xstack-auto
3028         * device/lib/_mullong.c: added version to be compiled with xstack
3029         * device/lib/mcs51/crtclear.asm: clear only upto --iram-size
3030         * device/lib/mcs51/crtxclear.asm: clear pdata as well
3031         * device/lib/mcs51/crtxstack.asm: fixed comment
3032         * src/SDCCglue.c: maxInterrupts defaults to 0,
3033           (emitMaps): added pdata,
3034           (createInterruptVect): (re)moved default,
3035           (glue): added pdata,
3036           (glue): moved __start__xstack to XSTK with default size 1
3037         * src/SDCCmain.c (parseCmdLine): automatically set options.intlong_rent
3038           and options.float_rent when options.stackAuto is set,
3039           (linkEdit): only write XDATA_NAME if provided on command line
3040         * src/SDCCmem.h,
3041         * src/SDCCmem.c: added pdata
3042         * src/port.h: added pdata_name to PORT
3043         * src/mcs51/gen.c (toBoolean): fixed for Acc use of aopGet,
3044           (saveRegisters, unsaveRegisters): removed usage of B,
3045           (genMinus): fixed accumulator clash,
3046           (genJumpTab): added comment, this needs another look
3047         * src/mcs51/gen.c: added check for "B in use" paranoia,
3048           added pushB() and popB()
3049         * src/mcs51/peeph.def: restart after 177.c so 177.a can get a second
3050           chance
3051         * src/avr/main.c,
3052         * src/ds390/main.c,
3053         * src/hc08/main.c,
3054         * src/mcs51/main.c,
3055         * src/pic/main.c,
3056         * src/pic16/main.c,
3057         * src/xa51/main.c,
3058         * src/z80/main.c: (reset_regparms) made void parameter explicit and
3059           added PSEG (PAG,XDATA) or NULL to port specifier
3060         * src/ds390/main.c (_ds390_genIVT): moved implemented default in here
3061         * src/mcs51/main.c (_mcs51_genIVT): moved implemented default in here,
3062           (_mcs51_genInitStartup): removed __start__xstack equ,
3063           (mcs51_port): moved xstack from XSEG (XDATA) to XSTK (PAG,XDATA)
3064         * src/pic16/device.c (pic16_dump_usection, pic16_dump_isection),
3065         * src/z80/gen.c (_rleAppend): fixed warnings
3066         * support/regression/tests/zeropad.c: added pdata test
3067         * .version: bumped to 2.4.6
3068
3069 2004-10-17 Borut Razem <borut.razem AT siol.net>
3070
3071         * support/scripts/sdcc.nsi: cross compiling of WIN32 setup.exe on Linux
3072         as a part of nightly build
3073
3074 2004-10-16 Vangelis Rokas <vrokas AT otenet.gr>
3075
3076         * src/pic16/gen.c (struct _G): added field useWreg, is set to 1 when
3077         WREG holds the first byte function parameters,
3078         * (aopForSym): take special case for symbols which are in FARSPACE
3079         but in CODESPACE too,
3080         * (assignResultValue): modified to take into account _G.useWreg,
3081         * (genCall): don't use wreg for parameter passing when function is
3082         declared as reentrant, too, added optimization INCF to stack
3083         pointer when stack parameter count is 1,
3084         * (genFunction, genEndFunction): refurnished and fixed to not using
3085         wreg for passing parameters when function has varargs or is
3086         reentrant, fixed bug with symbol name compare for generating
3087         functions in absolute address,
3088         * (pic16_storeForReturn): refurnished,
3089         * (genCmp): began writing a new version of the function, not ready
3090         yet, therefore it is disabled,
3091         * (genAssign): do not read code memory when assigning a function to
3092         a pointer function,
3093         * src/pic16/glue.c (pic16emitStaticSeg): abSym->name is defined an
3094         array of characters, not pointer,
3095         * (pic16initialComments): in debug mode emit an .ident directive for
3096         the assembler,
3097         * (_process_pragma): emit a new warning type (internal to pic16)
3098         when setting stack to default length, emit a similar warning when
3099         placing a function at absolute address and address is not word aligned
3100         * (_pic16_parseOptions): added 'return TRUE' statement,
3101         * (_pic16_linkEdit): if compiling a source, then add the source's
3102         file object, first in the list of objects to link,
3103
3104 2004-10-13 Slade Rich <slade_rich AT users.sourceforge.net>
3105
3106         * src/pic/pcoderegs.c : increased count on regUsedinRange to prevent unnecessary warning.
3107         * src/pic/main.c : removed VC warning.
3108         * src/pic/gen.c : changed comment.
3109
3110 2004-10-12 Vangelis Rokas <vrokas AT otenet.gr>
3111
3112         * device/lib/pic16/libsdcc/gptr/gptrput[234].c: an external
3113         reference to a deprecated symbol _GPTRREG was causing failure to
3114         link. Thanks G. M. Gallant for the info.
3115
3116 2004-10-12 Slade Rich <slade_rich AT users.sourceforge.net>
3117
3118         * src/pic/pcode.c : Applied a code patch supplied by Paul Ashmore in
3119         comments for Bugs item #954788.
3120
3121 2004-10-10 Vangelis Rokas <vrokas AT otenet.gr>
3122
3123         * src/pic16/device.c (pic16_dump_gsection,
3124         * pic16_groupRegistersInSection): handle symbols declared to be in
3125         access bank differently,
3126         * src/pic16/gen.c (struct _G): added field resDirect,
3127         * (aopForSym): if symbol on stack and iCode is '=' and result exists,
3128         send values read from stack directly to result and don't allocate
3129         temporary values,
3130         * (pic16_sameRegs): fixed bug that allowed MOVFF to move between
3131         same registers,
3132         * (pic16_sameRegsOfs): NEW,
3133         * (freeAsmop): if _G.resDirect is set then do not mark registers as
3134         free because they were not allocated from temporary pool,
3135         * pic16_popRegFromString): workaround to fix a problem with
3136         allocating variables twice or never,
3137         * (genGenPointerGet): using PRODL instead of FSR0H,
3138         * (genGenPointerSet): using POSTDEC1 (that is a stack location)
3139         instead of FSR0H,
3140         * (genAssign): take advantage of the _G.resDirect flag,
3141         * (genCast): around line 11844, use mov2f instead of directly
3142         MOVFF'ing between operands to account for literal values,
3143         * src/pic16/genutils.c: some new debug functions for gpsim have been
3144         added,
3145         * src/pic16/glue.c (pic16_printIvalType): fixed bug that initialized
3146         float with integer part only,
3147         * src/pic16/main.c (_process_pragma): handle pragma udata access to
3148         place variables in access bank
3149         * device/lib/pic16/libsdcc/gptr/gptr*.c: using BRA instead of GOTO,
3150         updated sources to reflect recent changes in gen.c
3151
3152 2004-10-06 Vangelis Rokas <vrokas AT otenet.gr>
3153
3154         * device/lib/pic16/libsdcc/Makefile.rules: fixed bug concerning
3155         sources that searched for headers in installation path, now the
3156         device/include/pic16 is used,
3157         * src/pic16/glue.c (pic16glue),
3158         * src/pic16/pcode.c (pCode2str, genericPrint): don't print .file or
3159         .line directives if not in debug mode, this suppresses assembler's
3160         warnings for ignored directives
3161
3162 2004-10-05 Maarten Brock <sourceforge.brock AT dse.nl>
3163
3164         * src/port.h: made reset_regparms prototype void parameter explicit.
3165         * src/SDCCsymt.c (processFuncArgs): removed argument "func".
3166         * src/mcs51/ralloc.c (packRegisters): new fix for bugs 898889 & 979599.
3167         * doc/sdccman.lyx: documented warning disabling and how to use
3168           printf_large to make it print floats.
3169         * device/include/stdbool.h: NEW
3170         * device/lib/_atof.c,
3171         * device/lib/_divuint.c,
3172         * device/lib/_divulong.c,
3173         * device/lib/expf.c,
3174         * device/lib/printf_large.c,
3175         * device/lib/sincosf.c,
3176         * device/lib/sincoshf.c: used stdbool.h, all compile with stack-auto now
3177         * device/lib/Makefile.in: added target for model-mcs51-reentrant to build
3178           a completely reentrant lib.
3179
3180 2004-10-05 Vangelis Rokas <vrokas AT otenet.gr>
3181
3182         * device/lib/pic16/libsdcc/gptr/gptr*.c: added return statements
3183         * device/include/pic16/stdio.h: fixed bug with colon
3184
3185 2004-10-03 Vangelis Rokas <vrokas AT otenet.gr>
3186
3187         * device/include/pic16/stdio.h,
3188         * device/include/pic16/stdlib.h,
3189         * device/include/pic16/math.h: NEW
3190         * device/lib/pic16/libsdcc/gptr/*.c (gptrget*, gptrput*): functions
3191         declared as _naked to reduce overhead
3192         * device/lib/Makefile.in (target port-specific-objects-pic16):
3193         changed * to *.* so to ignore the CVS directory,
3194         * src/pic16/gen.c (pic16_freeAsmop): added code to store result of
3195         stacked variables back in stack,
3196         * (genEndFunction): fixed bug reported by G.M. Gallant with stack
3197         corruption
3198
3199 2004-10-01 Vangelis Rokas <vrokas AT otenet.gr>
3200
3201         * .version: bumped version number to 2.4.5
3202         * support/Util/SDCCerr.h: added warning W_POSSBUG2.
3203         * support/Util/SDCCerr.c (messages structure): added entry for
3204         W_POSSBUG2
3205
3206         Large cumulative patch for pic16 port and libraries.
3207         * device/include/pic16/sdcc-lib.h,
3208         * device/include/pic16/stdarg.h,
3209         * device/include/asm/pic16/features.h,
3210         * device/include/lib/pic16/libsdcc/gptr/{*.c, Makefile}: NEW,
3211         * device/include/pic16/float.h: changes reentrant keyword with
3212         _FS_REENTRANT, added prototype for __fsneq, included sdcc-lib.h
3213         * device/lib/pic16/libsdcc/Makefile: added target directory gptr,
3214         updated target build-libraries to include objects from gptr,
3215         * device/lib/pic16/libsdcc/{char,int,long}/*.c: added macro
3216         _IL_REENTRANT to all function headings, included sdcc-lib.h header,
3217         * device/lib/pic16/libsdcc/float/*.c: added macro _FS_REENTRANT to
3218         all function headings,
3219         * src/SDCCmain.c: added global parameter userIncDirsSet,
3220         * (parseCmdLine): when option -I is encountered add directory to
3221         userIncDirsSet too,
3222         * src/version.awk: added space between control and long,
3223         * src/pic16/NOTES: added some notes for the port,
3224         * src/pic16/gen.c: added prototype for mov2fp function,
3225         * (fReturnpic16[]): properly named return value registers,
3226         * (_G structure): added fields stackRegSet, fregsUsed, stack_lat,
3227         * (aopForSym): added code to handle symbols with onStack flag set,
3228         symbols onStack are allocated PTRSIZE bytes,
3229         * (aopFreeAsmop): handles special case where asmops are stack objects,
3230         * (aopGet, pic16_popGet): adde cod to handle new asmop AOP_STA,
3231         * (pic16_popGetTempReg, pic16_popGetTempRegCond, pic16_popReleaseTempReg):
3232         added argument lock to trace flaws in allocating temporary registers
3233         when developing port,
3234         * (pic16_popGetLit, pic16_popGetLit2): changed lit from unsigned to signed
3235         * (pic16_popRegFromString): reenabled allocating a direct register
3236         from string,
3237         * (assignResultValue): various beautifications,
3238         * fixed bug #1037717 (patch from R. Neider & D. Wrinkler) with mistaken
3239         referenced function argument,
3240         * (genIpush): reenabled to allow stacked arguments, handles only
3241         ic->parmPush iCodes,
3242         * (genCall, genPcall): major changes to allow for variable argument
3243         functions, fixed a bug with falsely restoring stack pointer after
3244         returning from call,
3245         * (genFunction): pending code for critical function,
3246         * (shiftR1Left2ResultSigned, shiftR1Left2Result, shiftL2Left2Result,
3247         * (shiftR2Left2Result, shiftLLong) applied patch #1032155 from R.Neider,
3248         * (genNearPointerGet): fixed bug with indirect reading, was always
3249         reading from INDF0
3250         * (genGenPointerGet, genGenPointerSet): rewrote to support generic
3251         pointers,
3252         * (genAddrOf): rewrote code to take address of a stacked function parameter
3253         * (genCast): fixed casting to generic pointer type,
3254         * src/pic16/gen.h: added AOP_STA,
3255         * (struct asmop): added field stk,
3256         * src/pic16/genarith.c (pic16_AopType): handle AOP_STA,
3257         * (pic16_genPlusIncr): changed emitSKPNZ to emitSKPNZ,
3258         * (pic16_genAddLit, pic16_genPlus): applied patch #1034042 by tecodev,
3259         * (pic16_genMinus): fixed bug #1035119 with patch submitted by tecodev,
3260         * src/pic16/genutils.c (pic16_genNot): removed symbol *tlbl,
3261         * src/pic16/glue.c (pic16_printGPPointerType): fixed to support new
3262         generic pointers,
3263         * src/pic16/main.c (_pic16_initPaths): ignores default SDCC include
3264         and library paths,
3265         * (pic16_port structure): generic pointer size is set to 3,
3266         * src/pic16/pcode.c (pic16_newpCodeOpLit): correctly print literal integer,
3267         * (insertBankSwitch): cast to (char *) to prevent 64bit CPUs'
3268         compiler warning,
3269         * src/pic16/ralloc.c (allocReg): prevent allocating register when
3270         operand is an iTemp,
3271
3272 2004-09-24 Martin Helmling <mh AT octo-soft.de>
3273
3274         * debugger/mcs51/cmd.c: set PC if a symbol at pc reg is set
3275         * debugger/mcs51/simi.c: addapt new syntax of s51
3276
3277 2004-09-23 Vangelis Rokas <vrokas AT otenet.gr>
3278
3279         * src/pic16/genutils.c (pic16_genNot): fixed bug #1032265,
3280         * src/pic16/pcode.c: commented out some calls to free() in order to
3281         fix bug #989576,
3282
3283 2004-09-23 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
3284
3285         * src/SDCCicode.h,
3286         * src/SDCCicode.c (isiCodeInFunctionCall),
3287         * src/avr/ralloc.c (selectSpil),
3288         * src/pic/ralloc.c (selectSpil),
3289         * src/pic16/ralloc.c (selectSpil),
3290         * src/ds390/ralloc.c (selectSpil),
3291         * src/hc08/ralloc.c (selectSpil),
3292         * src/xa51/ralloc.c (selectSpil),
3293         * src/mcs51/ralloc.c (selectSpil): Don't use remainSpil to spill to the
3294         stack in the middle of a function call sequence (fixes bug #1020268)
3295         * src/SDCCicode.c (geniCodeJumpTable): fixed error in computing the
3296         costs associated with the minimum switch case.
3297
3298 2004-09-19 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
3299
3300         * src/SDCC.lex: fixed bug #1030549
3301
3302 2004-09-19 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
3303
3304         * src/SDCCcse.h (struct cseDef),
3305         * src/SDCCcse.c (cseBBlock, newCseDef, ifFromAddrTaken): purge CSEs
3306         over a function call if the CSE is derived from a symbol whose
3307         address has been taken (fixes bug #1029883)
3308         * support/regression/tests/bug-1029883: a new regression test for
3309         this bug
3310
3311 2004-09-18 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
3312
3313         * src/hc08/gen.c (emitinline): fixed bug #1029778
3314         * src/SDCC.y (assignment_expr): fixed the grammer so that assignment
3315         to a cast object is no longer a syntax error ("fixes" bug #1030006,
3316         and starts toward RFE #905167)
3317
3318 2004-09-17 Vangelis Rokas <vrokas AT otenet.gr>
3319
3320         * src/pic16/gen.c (mov2f): New function to move an operand to
3321         another without considering if it is a literal or a register,
3322         * (pic16_sameRegs): don't check if they are both AOP_REG,
3323         * (AccRsh): removed andmask=0 lines,
3324         * (genLeftShift): duplicated to be improved in future versions,
3325         * src/pic16/main.c (_process_pragma): emit stack default size in hex,
3326         * src/pic16/pcode.c: added POC_INFSNZW, updated inverted_op fields
3327         in POC_INCFSZ, POC_INCFSZW, POC_INFSNZ,
3328         * (pic16initMnemonics): added initialization for POC_INFSNZW,
3329         * (insertBankSwitch): fixed inserting banksel directives algorithm
3330         for instructions that follow a skip instruction, this fixes a report
3331         for broken subtraction code generation,
3332         * src/pic16/ralloc.c (deassignLRs): do not free register if current
3333         iCode is a left op, just in case result and right share the same
3334         registers
3335
3336 2004-09-16 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
3337
3338         * src/hc08/main.c,
3339         * src/hc08/gen.c (genJumpTable): more efficient jump table, supports
3340         preservation of HX
3341         * src/hc08/gen.c (pullRegs): fixed order of HX & XA pairs
3342         * src/mcs51/ralloc.c (packRegisters): removed the patch applied
3343         on 2004-09-12; it was buggy
3344
3345 2004-09-15 Bernhard Held <bernhard AT bernhardheld.de>
3346
3347         * src/SDCCsymt.h: removed RESULT_CHECK
3348         * src/SDCCast.c,
3349         * src/SDCCglue.c,
3350         * src/SDCCval.c,
3351         * src/pic/glue.c,
3352         * src/pic16/glue.c: replaced RESULT_CHECK with RESULT_TYPE_NONE
3353
3354 2004-09-15 Vangelis Rokas <vrokas AT otenet.gr>
3355
3356         * src/SDCCicode.c (piCode): applied patch from Raphael Neider,
3357         * src/pic16/device.c (pic16_assignConfigWordValues): wrong
3358         configuration values no more rejected by compiler, they are assigned
3359         to configuration registers with a warning message instead,
3360         * src/pic16/glue.c (pic16_emitConfigRegs): added +1 at top-limit of
3361         the for-loop so last conf register is emitted too,
3362         * (_pic16_initPaths): link library libsdcc.lib by default,
3363         * (_hasNativeMulFor): modified test for multiplication according to
3364         Raphael Neider's remarks. Integer multiplication is also done with
3365         support functions,
3366         * device/include/pic16/pic18fregs.h: corrected type error in while
3367         testing and including 18f6720 header file
3368
3369 2004-09-14 Vangelis Rokas <vrokas AT otenet.gr>
3370
3371         * src/pic16/device.h (pic16_options): removed field use_crt,
3372         * src/pic16/gen.c (genUnpackBits): added call to pic16_loadFSR0
3373         until an optimization to handle single bits is added,
3374         * (pic16_loadFSR0): moved before genUnpackBits,
3375         * (genAnd): some white lines removed,
3376         * src/pic16/main.c (_pic16_finaliseOptions): set omit_ivt and clear
3377         leave_reset flags in pic16_options when using crt modules,
3378
3379 2004-09-12 Maarten Brock <sourceforge.brock AT dse.nl>
3380
3381         * src/mcs51/ralloc.c (packRegisters): applied fix by Bernhard Held
3382           for bugs 898889 & 979599. Also used some safer print instructions.
3383
3384 2004-09-12 Vangelis Rokas <vrokas AT otenet.gr>
3385
3386         * src/pic16/device.h (pic16_options_t): added field use_crt,
3387         crt_name, no_crt,
3388         * src/pic16/genarith.c (pic16_genPlus): added an assert(0) line to
3389         catch a probable future bug,
3390         * src/pic16/gen.c: aopIdx function commented out,
3391         * (genAssign): commented out old code which used aopIdx,
3392         * src/pic16/glue.c (pic16glue): removed some legacy fragments of
3393         code, added if conditionals to take into account the --use-crt
3394         command line options,
3395         * src/pic16/main.c (pic16_optionsTable): added new command line
3396         options, --use-crt= and --no-crt,
3397         * (_pic16_linkEdit): now the proper crt object is added in the
3398         linker command line except than when --no-crt is specified,
3399         * src/pic16/pcode.c,
3400         * src/pic16/pcode.h: added some structures and functions for a new
3401         optimization scheme to compansate for instruction overhead between
3402         same iCodes, this scheme is currently under development and is not
3403         working in any way,
3404         * src/pic16/gen.c (genAnd): added patch provided by Aaron Collwell
3405         to && operator,
3406         * device/lib/pic16/startup/crt0i.c,
3407         * device/lib/pic16/startup/crt0iz.c: added global char variable
3408         __uflags to force the generation of an idata section
3409
3410 2004-09-12 Bernhard Held <bernhard AT bernhardheld.de>
3411
3412         * doc/Makefile,
3413         * doc/clean.mk: added support for easy creation of sdcc-doc.tar.bz2
3414         * doc/sdccman.lyx: updated sdcc version to 2.4.4
3415
3416 2004-09-10 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
3417
3418         * doc/sdccman.lyx: fixed a problem with my new index entries (thanks
3419         Frieder) and clarified the default code optimization mode
3420
3421 2004-09-10 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
3422
3423         * src/SDCC.lex (doPragma, process_pragma),
3424         * src/SDCCglobl.h (struct optimize): added pragmas "opt_code_speed",
3425         "opt_code_size", and "opt_code_balanced"
3426         * src/SDCCmain.c (optionsTable[], printOptions, scanOptionsTable):
3427         regrouped options by category, added support for category headers
3428         * src/SDCCmain.c (parseCmdLine): added options "--opt-code-speed"
3429         and "--opt-code-size"
3430         * doc/sdccman.lyx: documented these new options and pragmas
3431         * src/hc08/gen.c (AccLsh, AccRsh): take speed/size optimization
3432         preference into account
3433
3434 2004-09-08 Maarten Brock <sourceforge.brock AT dse.nl>
3435
3436         * src/SDCCicode.c (geniCodePostInc, geniCodePreInc, geniCodePostDec,
3437           geniCodePreDec): Fixed bug 904237 by generating a warning
3438         * src/SDCCerr.h,
3439         * src/SDCCerr.c: added warning W_SIZEOF_VOID
3440
3441 2004-09-09 Slade Rich <slade_rich AT users.sourceforge.net>
3442
3443         * src/pic/device.c : When no max ram set validate full memory range.
3444         * src/pic/pcode.c,
3445         * src/pic/pcodepeep.c : Copy C code comments to optimised replacement code.
3446
3447 2004-09-08 Maarten Brock <sourceforge.brock AT dse.nl>
3448
3449         * device/lib/_gptrget.c,
3450         * device/lib/_gptrput.c: updated comment
3451         * device/lib/calloc.c,
3452         * device/lib/free.c,
3453         * device/lib/malloc.c,
3454         * device/lib/realloc.c: added LGPL, made them reentrant-safe
3455         * src/SDCCcse.c (cseBBlock),
3456         * src/SDCCicode.c (printOperand, geniCodeArray),
3457         * src/SDCCicode.h (struct operand): fixed bug 868103
3458         * support/regression/tests/bug-868103.c: added
3459         * src/SDCCast.c (searchLitOp),
3460         * src/SDCCcse.h (struct cseDef),
3461         * src/SDCCglue.c (printIvalArray, spacesToUnderscores),
3462         * src/SDCCicode.h (struct operand),
3463         * src/SDCCsymt.h (struct sym_link),
3464         * src/avr/gen.c (hasInc),
3465         * src/ds390/gen.c (hasInc),
3466         * src/hc08/gen.c (genPlusIncr, hasInc),
3467         * src/mcs51/gen.c (hasInc),
3468         * src/pic16/glue.c (pic16_printIvalChar),
3469         * src/pic16/ralloc.c (regWithIdx),
3470         * src/xa51/gen.c (hasInc) : removed warnings
3471         * src/SDCCast.c (createBlock): added comment ???
3472         * src/hc08/ralloc.c: updated comments
3473
3474 2004-09-07 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
3475
3476         * doc/sdccman.lyx: updated section on switch statements, added
3477         section about semaphore locking
3478         * doc/Makefile: added option -info for latex2html
3479         * device/lib/_gptrget.c,
3480         * device/lib/_gptrput.c: __XPAGE instead of P2 in outcommented code
3481
3482 2004-09-06 Slade Rich <slade_rich AT users.sourceforge.net>
3483
3484         * src/pic/device.h,
3485         * src/pic/device.c,
3486         * src/pic/port.c : Changed PIC14 code to not set bit RP1 when
3487          maxram is less than 0x100.
3488
3489 2004-09-06 Slade Rich <slade_rich AT users.sourceforge.net>
3490
3491         * Bug fixes for PIC14 - signed RSHIFT problem. Patch supplied by Allen(agschrum).
3492
3493 2004-09-06 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
3494
3495         * src/port.h,
3496         * src/mcs51/main.c,
3497         * src/ds390/main.c,
3498         * src/z80/main.c,
3499         * src/hc08/main.c,
3500         * src/pic/main.c,
3501         * src/pic16/main.c,
3502         * src/avr/main.c,
3503         * src/xa51/main.c
3504         * src/SDCCicode.c (geniCodeJumpTable): Better logic to determine if a
3505         a jump table is the best form for a switch statement, including
3506         automatic insertion of missing cases to make the case range
3507         continuous. Developed in collaboration with Frieder Ferlemann.
3508
3509 2004-09-02 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
3510
3511         * src/hc08/ralloc.c (canDefAccResult): multi-byte shift is unsafe for
3512         accumulator result if it needs sign extension
3513
3514 2004-09-02 Maarten Brock <sourceforge.brock AT dse.nl>
3515
3516         * src/hc08/ralloc.c (canUseAccOperand): fixed comparison bug
3517
3518 2004-09-02 Maarten Brock <sourceforge.brock AT dse.nl>
3519
3520         * device/lib/gbz80/printf.c,
3521         * device/lib/z80/printf.c: removed define for NULL
3522
3523 2004-09-02 Maarten Brock <sourceforge.brock AT dse.nl>
3524
3525         * as/xa51/xa_link.c,
3526         * device/examples/ds390/ow390/ad26.c,
3527         * device/examples/ds390/ow390/cnt1d.c,
3528         * device/examples/ds390/ow390/counter.c,
3529         * device/examples/ds390/ow390/ds2480.h,
3530         * device/examples/ds390/ow390/ds2480ut.c,
3531         * device/examples/ds390/ow390/findtype.c,
3532         * device/examples/ds390/ow390/gethumd.c,
3533         * device/examples/ds390/ow390/owllu.c,
3534         * device/examples/ds390/ow390/ownetu.c,
3535         * device/examples/ds390/ow390/swt12.c,
3536         * device/examples/ds390/ow390/swtloop.c,
3537         * device/examples/ds390/ow390/temp.c,
3538         * device/examples/ds390/ow390/temp10.c,
3539         * device/examples/ds390/ow390/thermo21.c,
3540         * device/examples/ds390/ow390/tinilnk.c,
3541         * device/examples/ds390/ow390/tstfind.c,
3542         * device/examples/serialcomm/windows/serial.cpp,
3543         * device/examples/serialcomm/windows/test_serialcomm.cpp,
3544         * device/include/reg51.h: fixed line endings for cvs
3545
3546 2004-09-02 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
3547
3548         * src/hc08/ralloc.c (canDefAccResult, canUseAccOperand,
3549         packRegsForAccUse, packRegisters): new accumulator register
3550         packing algorithm
3551         * support/regression/ports/hc08/support.c (_putchar): suppress
3552         warning of unused variable
3553         * src/SDCCicode.c: added SWAP entry to codeTable
3554
3555 2004-09-01 Maarten Brock <sourceforge.brock AT dse.nl>
3556
3557         * device/lib/sprintf.c: forgot to add this file before previous commit
3558
3559 2004-09-01 Vangelis Rokas <vrokas AT otenet.gr>
3560
3561         * src/pic16/gen.c (genPackBits): added operand right in function
3562         parameters, load result directly if p_type is POINTER (that is
3563         called by genNearPointerSet)
3564         * (genUnPackBits): added operand left in function parameters,
3565         * (genNearPointerGet, genNearPointerSet): prevent the loading of
3566         FSR0 if accessing bitfields,
3567
3568 2004-08-31 Maarten Brock <sourceforge.brock AT dse.nl>
3569
3570         * device/include/stdio.h: added NULL, size_t, typedef pfn_outputchar,
3571           _print_format; updated printf, sprintf, vsprintf
3572         * device/include/asm/default/features.h: corrected comment/define
3573         * device/lib/Makefile.in: added sprintf.c
3574         * device/lib/libsdcc.lib: added sprintf module
3575         * device/lib/printf_large.c,
3576         * device/lib/vprintf.c,
3577         * device/lib/sprintf.c: totally refactored printf_large and vprintf
3578           into these 3 files
3579         * support/regression/Makefile: changed ALL_PORTS into a usefull default
3580         * support/regression/ports/mcs51-stack-auto/spec.mk: added sprintf
3581         * support/regression/tests/bug-927659.c: removed dummy putchar, enabled
3582           hc08 test
3583         * support/regression/tests/zeropad.c: define idata as data for hc08
3584
3585 2004-08-31 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
3586
3587         * src/SDCCpeeph.c (labelIsReturnOnly): support hc08 rts opcode also
3588         * src/SDCCpeeph.c (buildLabelRefCountHash): assume function entry point
3589         labels are referenced at least once (even if a reference is not found)
3590         * src/hc08/gen.c (emitcode): set isComment flag for comments
3591         * src/hc08/peeph.def: added rules 5a..5f (optimize redundant immediate
3592         loads), rules 6a..6b (optimize jumps to return)
3593
3594 2004-08-30 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
3595
3596         * device/lib/acosf.c (acosf),
3597         * device/lib/asinf.c (asinf),
3598         * device/lib/atanf.c (atanf),
3599         * device/lib/ceilf.c (ceilf),
3600         * device/lib/cosf.c (cosf),
3601         * device/lib/coshf.c (coshf),
3602         * device/lib/cotf.c (cotf),
3603         * device/lib/fabsf.c (fabsf),
3604         * device/lib/floorf.c (floorf),
3605         * device/lib/log10f.c (log10f),
3606         * device/lib/logf.c (logf),
3607         * device/lib/sinf.c (sinf),
3608         * device/lib/sinhf.c (sinhf),
3609         * device/lib/sqrtf.c (sqrtf),
3610         * device/lib/tanf.c (tanf),
3611         * device/lib/tanhf.c (tanhf),
3612         * device/include/math.h: defined _FLOAT_FUNC_REENTRANT macro and
3613         replaced all instances of "reentrant" in the library functions
3614         defined in math.h with this macro.
3615         * support/regression/tests/float_trans.c: reenabled test for hc08
3616
3617 2004-08-30 Bernhard Held <bernhard AT bernhardheld.de>
3618
3619         * device/lib/pic16/Makefile.common.in: added MODELFLAGS again, it was
3620         erroneously deleted
3621
3622 2004-08-30 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
3623
3624         * src/hc08/gen.c (loadRegFromAop): better use of clra & clrx
3625         * src/hc08/gen.c (genAnd, genOr): fixed bug with conditional when
3626         multi-byte volatile operands are used
3627         * src/hc08/gen.c (shiftRLong): fixed bug with wrong rotate direction
3628         * src/hc08/main.c (_hc08_genAssemblerPreamble): moved the built-in
3629         initialization to area GSINIT0 so that it would always precede
3630         any static initializers in GSINIT
3631         * support/regression/tests/zeropad.c: fixed idata define for hc08
3632         * support/regression/tests/bug-927659.c,
3633         * support/regression/tests/float_trans.c: disabled tests for hc08
3634         pending missing library routines
3635         * .version: increased version number to 2.4.4 - hc08 port now passes
3636         regression tests
3637
3638
3639 2004-08-29 Bernhard Held <bernhard AT bernhardheld.de>
3640
3641         * device/lib/pic16/Makefile.common.in: added $(MM) to fix `make clean`
3642         * Makefile.common.in,
3643         * as/Makefile,
3644         * as/hc08/Makefile.in,
3645         * as/mcs51/Makefile.in,
3646         * as/z80/Makefile.in,
3647         * debugger/mcs51/Makefile.in,
3648         * device/include/Makefile.in,
3649         * device/lib/Makefile.in,
3650         * doc/Makefile,
3651         * link/Makefile,
3652         * link/z80/Makefile.in,
3653         * packihx/Makefile.in,
3654         * sim/ucsim/main_in.mk,
3655         * sim/ucsim/avr.src/Makefile.in,
3656         * sim/ucsim/doc/Makefile.in,
3657         * sim/ucsim/gui.src/serio.src/Makefile.in,
3658         * sim/ucsim/hc08.src/Makefile.in,
3659         * sim/ucsim/s51.src/Makefile.in,
3660         * sim/ucsim/xa.src/Makefile.in,
3661         * sim/ucsim/z80.src/Makefile.in,
3662         * src/Makefile.in,
3663         * support/cpp2/Makefile.in,
3664         * support/librarian/Makefile,
3665         * support/makebin/Makefile: added DESTDIR to the install path proposed
3666         by "Maciej 'Agaran' Pijanka" <agaran AT pld-linux.org>
3667         * doc/sdccman.lyx: added DESTDIR documentation
3668
3669 2004-08-29 Vangelis Rokas (vrokas AT otenet.gr>
3670
3671         * src/pic16/gen.c (genFunction, genEndFunction): fixed return
3672         instruction for interrupt handlers, use fast returns when returning
3673         from high priority interrupts
3674
3675 2004-08-29 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
3676
3677         * src/hc08/gen.c (genAnd, genOr, transferAopAop, rmwWithAop): optimized
3678         code generation
3679         * src/hc08/gen.c (genrshFour, genCpl): fixed bugs
3680         * src/hc08/gen.c (genMultOneByte, genDivOneByte, genModOneByte): fixed
3681         bugs, ported much of Bernhard's code from mcs51
3682         * src/mcs51/gen.c (genSend),
3683         * src/hc08/gen.c (genSend): fixed bug with lost SEND iCodes if more
3684         than one when calling a reentrant function
3685         * device/lib/_mullong.c: defined an alternate struct layout for big
3686         endian ports (hc08)
3687
3688 2004-08-28 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
3689
3690         * src/hc08/gen.c (shiftL2Left2Result): fix for bug-500536 regression
3691         test
3692
3693 2004-08-28 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
3694
3695         * src/SDCCsymt.c (processFuncArgs): make sure parameter types
3696         are sane and complete before asking the port its prefered parameter
3697         passing method (fixes bug #1017633)
3698         * device/lib/hc08/_ret.c: added "data" storage class to _ret2
3699         and _ret3
3700
3701 2004-08-27 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
3702
3703         * src/hc08/gen.c (genPackBitsImmed, genUnpackBitsImmed): fix offset
3704         problem in bitfields >= 8 bits.
3705
3706 2004-08-27 Maarten Brock <sourceforge.brock AT dse.nl>
3707
3708         * src/SDCCsymt.c: undid changes that were not meant to be committed
3709
3710 2004-08-27 Maarten Brock <sourceforge.brock AT dse.nl>
3711
3712         * support/regression/ports/hc08spec.mk: REENTRANT must be reentrant
3713
3714 2004-08-27 Maarten Brock <sourceforge.brock AT dse.nl>
3715
3716         * src/hc08/gen.c (genUminusFloat): fixed bug where only 3 bytes were
3717           copied and wrong bit got inverted
3718
3719 2004-08-27 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
3720
3721         * src/hc08/gen.c (genPointerSet, genFarPointerSet): moved code from
3722         genFarPointerSet into genPointerSet; eliminated genFarPointerSet
3723         * src/hc08/gen.c (genPointerGet, genFarPointerGet): moved code from
3724         genFarPointerGet into genPointerGet; eliminated genFarPointerGet
3725         * src/hc08/gen.c (genPackBitsImmed): generate optimized code for
3726         assignments to bitfields at known addresses
3727         * src/hc08/gen.c (genUnpackBitsImmed): generate optimized code for
3728         reads from bitfields at known addresses
3729         * src/hc08/ralloc.c (packRegisters),
3730         * src/hc08/gen.c (genPointerGet, genUnpackBits, genUnpackBitsImmed,
3731         genhc08Code): optimize pointer get values used as conditionals
3732         * src/hc08/peeph.def: added rules 2e & 2f to optimize bit test
3733         and branch
3734
3735 2004-08-24 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
3736
3737         * src/mcs51/gen.c (genPointerGet, genNearPointerGet, genPagedPointerGet,
3738         genFarPointerGet, genCodePointerGet, genGenPointerGet, genUnpackBits),
3739         * src/mcs51/ralloc.c (packRegisters): optimize pointer get values used
3740         as conditionals
3741
3742 2004-08-22 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
3743
3744         * src/mcs51/peeph.def: peepholes 248.i-m for xdata bitfields
3745
3746 2004-08-21 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
3747
3748         * src/mcs51/ralloc.c (packRegsForOneuse): fixed bug #1012650 and some
3749         related problems
3750
3751 2004-08-21 Bernhard Held <bernhard AT bernhardheld.de>
3752
3753         * sim/ucsim/cmd.src/Makefile.in: run lex only if $(PRJDIR)/devel exists
3754
3755 2004-08-18 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
3756
3757         * src/z80/ralloc.c (packRegsForAssign): ported some bug fixes from the
3758         mcs51 port
3759
3760 2004-08-16 Slade Rich <slade_rich AT users.sourceforge.net>
3761
3762         * src/pic/gen.c: Restored fn genRet as previous fix was incorrect.
3763
3764 2004-08-14 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
3765
3766         * src/mcs51/gen.c (genJumpTab): jumptables for more than 16 switch
3767         cases use more compact code.
3768
3769 2004-08-13 Slade Rich <slade_rich AT users.sourceforge.net>
3770
3771         * src/pic/gen.c: Fixed problem with fn returning a variable bigger than a char.
3772
3773 2004-08-12 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
3774
3775         * src/SDCClrange.c (findPrevUse): fixed bug #1007371
3776
3777 2004-08-12 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
3778
3779         * src/SDCCsymt.h,
3780         * src/SDCCsymt.c (changePointer, checkDecl, addSymChain): changed
3781         parameter of changePointer() from symbol* to sym_link*
3782         * src/SDCCast.c (decorateType): call changePointer() for CAST op
3783         * src/SDCCsymt.c (compareType): void* type is castable to other
3784         pointers, but not necesarily an exact match.
3785         * src/SDCCicode.c (geniCodeCast): allow void* casting here since it
3786         is no longer blindly treated as an exact match.
3787         * src/SDCCval.c (valCastLiteral): treat missing type as cast to void
3788
3789 2004-08-12 Slade Rich <slade_rich AT users.sourceforge.net>
3790
3791         * src/pic/glue.c: Added struct initialisation fn printIvalStruct.
3792
3793 2004-08-11 Slade Rich <slade_rich AT users.sourceforge.net>
3794
3795         * src/pic/gen.c,
3796         * src/pic/pcode.c,
3797         * src/pic/ralloc.h,
3798         * src/pic/ralloc.c: Printing rIdx on internal verbose debug.
3799
3800 2004-08-10 Slade Rich <slade_rich AT users.sourceforge.net>
3801
3802         * src/pic/device.c,
3803         * src/pic/device.h,
3804         * src/pic/device.c: Will no longer exit if #pragma maxram has not been defined.
3805
3806 2004-08-06 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
3807
3808         * src/mcs51/gen.c (emitcode): fixed bug #992819
3809
3810 2004-08-05 Maarten Brock <sourceforge.brock AT dse.nl>
3811
3812         * src/pic/ralloc.c (deassignLR): allthough pic port is buggy already,
3813           there's no need to make it worse
3814
3815 2004-08-05 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
3816
3817         * src/mcs51/ralloc.c (deassignLR),
3818         * src/ds390/ralloc.c (deassignLR),
3819         * src/hc08/ralloc.c (deassignLR),
3820         * src/z80/ralloc.c (deassignLR),
3821         * src/pic/ralloc.c (deassignLR),
3822         * src/pic16/ralloc.c (deassignLR),
3823         * src/avr/ralloc.c (deassignLR),
3824         * src/SDCClrange.c (findRecursiveSucc, findRecursivePred, findPrevUse,
3825         rlivePoint): fixed another part of bug #971834
3826
3827 2004-08-04 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
3828
3829         * src/z80/main.c: enabled "critical" keyword
3830         * src/z80/mappings.i,
3831         * src/z80/gen.c (genFunction, genEndFunction): support for interrupt
3832         functions (fixes bug #979646)
3833         * doc/sdccman.lyx: added a subsection explaining z80 interrupt support
3834
3835 2004-08-04 Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
3836
3837         * src/mcs51/gen.c (genInline): Add \n for labels, not DOS/WIN dirs
3838           such as c:\mydir.
3839
3840 2004-08-03 Maarten Brock <sourceforge.brock AT dse.nl>
3841
3842         * src/SDCCloop.c (loopInvariants): fixed bug 983545, hope this
3843           doesn't disable too much optimizations
3844
3845 2004-08-02 Slade Rich <slade_rich AT users.sourceforge.net>
3846
3847         * src/pic/glue.c Disabled "WARNING: function 'main' undefined" when -S option is used.
3848
3849 2004-08-02 Maarten Brock <sourceforge.brock AT dse.nl>
3850
3851         * src/SDCClrange.c (rlivePoint): fixed bug 988568, thanks to anonymous
3852
3853 2004-08-02 Slade Rich <slade_rich AT users.sourceforge.net>
3854
3855         * src/pic/gen.c tidied up tabs
3856         * src/pic/genarith.c tidied up tabs and fixed bug with literal multiple where same register was used for hi and low byte
3857         * src/pic/main.c tidied up tabs
3858         * src/pic/pcode.c tidied up tabs and disabled verbose code generation
3859         * src/pic/pcoderegs.c tidied up tabs
3860         * src/pic/ralloc.c tidied up tabs
3861
3862 2004-07-30 Vangelis Rokas <vrokas AT otenet.gr>
3863
3864         * src/SDCCmem.c (allocGlobal): don't turn S_REGISTER storage class
3865         to S_FIXED for pic16 port and when symbol is not in level 0,
3866         allocate for S_REGISTER storage class and pic16 port, too,
3867         * src/pic16/device.h: prototype for checkSym,
3868         * src/pic16/device.c (pic16_dump_access, checkSym): NEW,
3869         * (pic16_assignConfigWordValue): test the value and the mask to
3870         validate that the value is suitable for the configuration word,
3871         * src/pic16/glue.c (pic16_printIvalFuncPtr): use 'externs' to
3872         collect extern declared symbols, don't emit symbol twice, check
3873         first if symbol is in publics set first,
3874         * src/pic16/main.c (_pic16_keywords[]): added keyword 'register',
3875         * added command line '--fstack' which enables an experimental
3876         feature for stack access, too buggy to be used yet...
3877         * src/pic16/ralloc.c (pic16_accessregWithName): NEW,
3878         * (pic16_allocDirReg): when register has storage class S_REGISTER
3879         allocate in pic16_dynAccessRegs,
3880         * device/include/pic16/pic18f????.h: modified configuration word
3881         naming convention, words started as CONFIG0H but should be CONFIG1H
3882
3883 2004-07-29 Maarten Brock <sourceforge.brock AT dse.nl>
3884
3885         * device/include/mcs51reg.h: fixed bug 970993
3886
3887 2004-07-27 Maarten Brock <sourceforge.brock AT dse.nl>
3888
3889         * added lib/calloc.c, lib/free.c, lib/realloc.c, include/stddef.h
3890         * updated lib/malloc.c, lib/libsdcc.lib, lib/Makefile.in, include/malloc.h
3891         * src/SDCC.lex (doPragma): added pragma disable_warning <nnn>
3892         * src/SDCCmain.c (parseCmdLine): added option --disable-warning <nnn>
3893         * src/ds390/gen.c (genPlusIncr): fixed bug when incrementing generic pointers
3894         * support/Util/SDCCerr.c (vwerror): suppress disabled warnings and output
3895           error/warning numbers,
3896           added function setWarningDisabled()
3897         * support/Util/SDCCerr.h: added setWarningDisabled() and MAX_ERROR_WARNING
3898         * support/regression/ports/mcs51-stack-auto/spec.mk: added dependencies
3899           _memcmp.c _memmove.c calloc.c realloc.c free.c
3900         * support/regression/tests/malloc.c: added tests for new functionality
3901         * support/regression/tests/zeropad.c: added tests for truncated initializers
3902           and initialized char arrays starting with '\x0'
3903         * src/mcs51/peeph.def: fixed regression, added peephole 177.f
3904
3905 2004-07-26 Bernhard Held <bernhard AT bernhardheld.de>
3906
3907         * support/valdiag/tests/overflow.c: fixed warning on (1 >> 40)
3908
3909 2004-07-26 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
3910
3911         * doc/sdccman.lyx: updated example in section "Absolute Addressing"
3912         * src/mcs51/peeph.def: added contributed fix for "bug" #995347 as
3913         peephole 177.e. Thanks to anonymous
3914
3915 2004-07-25 Vangelis Rokas <vrokas AT otenet.gr>
3916
3917         * src/pic16/glue.c (pic16_printIvalFuncPtr): when an extern
3918         function isn't used in the source but referenced as a
3919         variable initializer then declare it as extern in .asm file
3920
3921 2004-07-24 Vangelis Rokas <vrokas AT otenet.gr>
3922
3923         * .version: increased version number to 2.4.3
3924
3925         Adding version extension according to ChangeLog CVS revision
3926         * src/Makefile.in (target all): added dependency 'version.h'
3927         * (rule version.h): added rule to create version.h from ChangeLog,
3928         * (rule dep): added dependency version.h,
3929         * src/version.awk: AWK script to create version.h
3930         * src/SDCCdwarf2.c (dwWriteModule),
3931         * src/SDCCglue.c (initialComments),
3932         * src/SDCCmain.c (printVersionInfo): modified to write after
3933         version string the version extension number,
3934         * src/SDCCutil.c: included "version.h"
3935         * (getBuildNumber): NEW, returns SDCC's ChangeLog minor revision
3936         number,
3937         * src/SDCCutil.h: added prototype for getBuildNumber
3938
3939         * src/SDCCmain.c (parseCmdLine): when sOpt is 'I' add rest in
3940         includeDirsSet, too,
3941         * src/SDCCsymt.c (checkSClass): don't emit error when a variable,
3942         const char [] is found in function prototype...
3943
3944         * src/pic16/genarith.c (pic16_genUMult8XLit_8): optimization to omit
3945         moving to WREG with source is already in WREG,
3946         * src/pic16/gen.h: added AOP_FSR0 and AOP_FSR2 in enum,
3947         * src/pic16/gen.c (getFreePtr): updated to look for FSR0 and FSR2,
3948         * (aopForSym): stack'ed symbols are partially supported, added
3949         if-clause to support symbols in FARSPACE,
3950         * (sameRegs): added test for AOP_ACC to see if registers are same,
3951         * (pic16_freeAsmop): added case for AOP_FSR0 and AOP_FSR2,
3952         * (pic16_aopGet): added case for AOP_FSR0 and AOP_FSR2,
3953         * (pic16_popRegFromString): will not allocate a new register if it
3954         doesn't find one by name, bug may have introduced...
3955         * (pic16_popGet): added case for AOP_FSR0 and AOP_FSR2,
3956         * (genIpush): revived to use pic16 port's stack,
3957         * (genAddrOf): added incomplete case for stack'ed operand,
3958         * (genCast): optimized a pair of MOVFW,MOVWF to MOVFF
3959         * src/pic16/genutils.c (pic16_genNot): almot new vesrion for NOT,
3960         can handle multibyte operands,
3961         * src/pic16/glue.c (pic16_printIval*): some debug info added,
3962         * (pic16initialComments): added message for MPLAB compatibility
3963         mode enabled,
3964         * src/pic16/main.h: prototype for pic16_mplab_comp,
3965         * src/pic16/main.c (pic16_optionsTable): new option --mplab-comp,
3966         which enabled MPLAB compatibility mode (i.e. no #LINE/#FILE, BANKED)
3967         * (_pic16_linkEdit): NEW, handles link stage, transferred here
3968         because of increased complexity of procedure,
3969         * (_process_pragma): stack pragma changed to format 'stack pos len',
3970         emit symbol '_stack_end' to conform with gplink,
3971         * src/pic16/pcode.c (pic16_newpCodeOpBit): using pic16_regWithName
3972         to search for register,
3973         * (pic16_get_op, pic16_get_op2): added case for PO_W, PO_WREG and
3974         PO_GPR_REGISTER,
3975         * (pic16_pCode2str): when in MPLAB compatibility mode, comment out
3976         #LINE directives and replace 'B' with 'BANKED' in instruction opcodes
3977         * (pic16_getRegFromInstruction, pic16_getRegFromInstruction2): added
3978         case for PO_GPR_REGISTER,
3979         * (pic16_AnalyzeBanking): removed the old message for inc2h.pl, past
3980         dies, the new era is ahead !...
3981         * src/pic16/ralloc.c: added hash reposits pic16_dynAllocRegNames and
3982         pic16_dynInternalRegs,
3983         * (pic16_allocregWithName, pic16_procregWithName, pic16_regWithname): NEW,
3984         * (pic16_allocDirReg): minor optimizations and bug fixes,
3985         * (pic16_allocWithIdx): when searching pic16_dynProcessorRegs use fixed,
3986
3987         * device/lib/pic16/startup/crt0*.c: extern definition of stack_end,
3988         load stack and frame pointer with address of 'stack_end' symbol
3989
3990 2004-07-23 Vangelis Rokas <vrokas AT otenet.gr>
3991
3992         * src/pic16/glue.c (pic16emitStaticSeg): fixed bug with files
3993         without source code but only variable initializers
3994
3995 2004-07-20 Vangelis Rokas <vrokas AT otenet.gr>
3996
3997         * src/pic16/glue.c (pic16emitRegularMap): unused functions marked as
3998         external are not declared as extern to reduce overhead while linking
3999
4000 2004-07-20 Maarten Brock <sourceforge.brock AT dse.nl>
4001
4002         * src/SDCCast.c (decorateType): removed buggy fix for bug #979599
4003
4004 2004-07-11 Maarten Brock <sourceforge.brock AT dse.nl>
4005
4006         * src/SDCCglue.c (printIvalArray): fixed bug #984229, thanks to Phuah
4007           Yee Keat for the patch
4008         * src/SDCCast.c (decorateType): fixed bug #979599
4009         * src/ds390/gen.h: removed local fReturnSizeDS390
4010         * src/ds390/gen.c: made fReturnSizeDS390 signed short to remove a warning
4011         * src/ds390/gen.c (genAnd, genOr, genXor),
4012         * src/mcs51/gen.c (genAnd, genOr, genXor): generate better optimized code
4013
4014 2004-07-04 Vangelis Rokas <vrokas AT otenet.gr>
4015
4016         * src/SDCCmain.c (linkEdit): modifications only for pic16 port,
4017         add relFilesSet to $3, manipulate $2 to handle linking of object
4018         files without source files in command line,
4019         * device/include/pic16 (all headers): added ID location macros,
4020         * src/pic16/device.c (struct PIC16_device Pics16[]): added field
4021         entries for ID location bytes,
4022         * (pic16_assignIdByteValue): NEW,
4023         * src/pic16/device.h: new structures idRegInfo_t and idBytesInfo_t,
4024         added field dumpcalltree to pic16_options_t,
4025         * src/pic16/gen.c (genCmp): fixed bug case so a temporary register
4026         is used instead of pic16_Gstack_base_addr, check if (ifx) before
4027         emitting rFalseIfx label after check_carry label,
4028         * src/pic16/glue.c (PIC16_IS_IDLOC_ADDRESS, PIC16_IS_HWREG_ADDRESS,
4029         pic16_emitDIRegs), NEW
4030         * (pic16glue): dump .calltree file when option --calltree found,
4031         * src/pic16/main.c (OPTION _pic16_optionsTable): new option --calltree
4032         * (_pic16_genAssemblerPreamble): emit ID locations after
4033         configuration registers,
4034         * (pic16_linkCmd): modifications of the link command,
4035         * src/pic16/pcode.c (pic16_pciMOVFF): PCC_REGISTER replaces PCC_REGISTER2
4036         * (pic16_pCodeInitRegisters): don't init stack registers,
4037         * (pic16_findPrevInstruction): fixed bug,
4038         * (pic16_getRegFromInstruction, pic16_getRegFromInstruction2): fixed
4039         bug with immediate registers,
4040         * (buildCallTree): traces stack push and pop,
4041         * (pct2): dump also stack usage for each function,
4042         * src/pic16/ralloc.c (dynrIdx): registers names start from 0x00
4043         * (pic16_allocDirReg): various modifications,
4044         * (pic16_typeRegWithIdx): when searching pic16_dynProcessorRegs set
4045         fixed to 1,
4046
4047 2004-07-02 Vangelis Rokas <vrokas AT otenet.gr>
4048
4049         * src/pic16/pcode.c: removed buggy double colon
4050
4051 2004-07-01 Borut Razem <borut.razem AT siol.net>
4052
4053         * support/scripts/sdcc.nsi: added include/pic16 to setup
4054
4055 2004-06-30 Vangelis Rokas <vrokas AT otenet.gr>
4056
4057         * device/lib/Makefile.in: fixed bug in target objects-pic16,
4058         * device/lib/pic16/Makefile: prefixed with dash (-) command under
4059         target 'clean',
4060         * doc/sdccman.lyx: changed version to 2.4.2 and added some port
4061         specific command line arguments. Also added sample lkr script
4062         for placing a variable at a specific memory bank.
4063         * src/pic16/device.c (pic16_dump_gsection): NEW, to dump variables
4064         at a specific memory bank,
4065         * (pic16_dump_isection): fixed bug which caused string literals to
4066         be omitted when dumping idata section,
4067         * (pic16_groupRegistersInSection): added code to handle registers
4068         in specific memory banks,
4069         * src/pic16/gen.c: labelOffset is prefixed with pic16_ and made
4070         public, all references are renamed too,
4071         * (pic16_aopGet): removed switch cases for AOP_R0,AOP_R1,AOP_DPTR,
4072         AOP_DPTR2,
4073         * (pic16_storeForReturn): added case to handle when dest is WREG,
4074         * src/pic16/genarith.c (pic16_pCodeOpSubType): NEW,
4075         * src/pic16/glue.c (pic16emitRegularMap): when adding a register in
4076         pic16_rel_udata, check to see if that register is marked as being
4077         a member of a specific memory bank,
4078         * (pic16_printIvalCharPtr): added code to add string literals either
4079         to code or the idata sections,
4080         * src/pic16/main.c (_process_pragma): added \n to WHITE constant,
4081         also accept the 'udata' pragma,
4082         * src/pic16/main.h: new structure types sectName and sectSym
4083         * src/pic16/pcode.c: added new pCodeInstruction entry for BANKSEL
4084         * (newpCodeOpBit): added PIC_OPTYPE subt in function prototype,
4085         * (pic16_findPrevInstruction): fixed, it returned nothing,
4086         * (insertBankSwitch): fixed to emit banksel/skip and skip/banksel
4087         instruction combinations,
4088         * (pic16_FixRegisterBanking): heavily reorganised,
4089         * (pic16_AnalyzeBanking): if generating banksel directives is
4090         disabled, then don't call FixRegisterBanking at all,
4091         * src/pic16/ralloc.c (bitEQUs, aliasEQUs, allDefsOutOfRange):
4092         completely removed,
4093         * (pic16_writeUsedRegisters): added call to pic16_dump_gsection
4094
4095 2004-06-29 Bernhard Held <bernhard AT bernhardheld.de>
4096
4097         * src/SDCCglue.c (printChar): fixed bug #973350, patch provided by
4098         Phuah Yee Keat <yk.phuah AT nestac.com>
4099
4100 2004-06-28 Vangelis Rokas <vrokas AT otenet.gr>
4101
4102         * src/pic16/glue.c (pic16createInterruptVect): function now emits
4103         correctly the IVT even if it is relocated to some other location
4104
4105 2004-06-28 Vangelis Rokas <vrokas AT otenet.gr>
4106
4107         * device/include/pic16/pic18fregs.h: added case for pic18f2220.h
4108         * device/include/pic16/pic18f2220.h: NEW,
4109         * device/lib/pic16/libdev/pic18f2220.c: NEW,
4110         * device/lib/pic16/libdev/Makefile: added 18f2220 in DEVS,
4111         * src/pic16/device.c (struct Pics16): added info for 18f2220,
4112         * src/pic16/device.h (struct pic16_options): added ivt_loc and
4113         nodefaultlibs, ivt_loc is the location of the interrupt vector
4114         table, and nodefaultlibs signs that default libraries should not be
4115         linked in link stage,
4116         * src/pic16/gen.c (genFunction): relocate interrupt vector functions
4117         according to --ivt-loc argument,
4118         * src/pic16/main.c (_process_pragma): emit '_stack' as public symbol
4119         when pragma stack is found,
4120
4121 2004-06-25 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
4122
4123         * src/mcs51/peeph.def: added peepholes 182.d (return 0.0),
4124         256 (range check), 257 (do while), 258.a-f (bit banging
4125         f.e. on 3-wire SPI bus)
4126
4127 2004-06-21 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
4128
4129         * src/SDCClrange.c (findNextUseSym): fixed a live range bug with
4130         variables used exclusively within a loop
4131
4132 2004-06-21 Bernhard Held <bernhard AT bernhardheld.de>
4133
4134         * src/mcs51/gen.c (genCpl): quick fix for bug #974835
4135
4136 2004-06-21 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
4137
4138         * src/SDCClrange.c (computeClash): fixed bug #971834
4139
4140 2004-06-20 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
4141
4142         * src/mcs51/gen.c (genCmp): fixed bug #975903
4143         * src/hc08/gen.c (operandsEqu),
4144         * src/ds390/gen.c (operandsEqu),
4145         * src/z80/gen.c (operandsEqu),
4146         * src/pic/gen.c (operandsEqu),
4147         * src/pic16/gen.c (operandsEqu),
4148         * src/mcs51/gen.c (operandsEqu): fixed bug #976283
4149         * src/SDCCmain.c (parseCmdLine): report --unknown-option only once
4150
4151 2004-06-15 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
4152
4153         * src/SDCCcse.c (cseBBlock): fixed bug #966963
4154
4155 2004-06-12 Vangelis Rokas <vrokas AT otenet.gr>
4156
4157         * src/pic16/gen.c (genPointerGet): added E_INTERNAL_ERROR for
4158         default case in switch statement,
4159         * glue.c (pic16_initPointer): expr is initialised via decoarteType
4160         to eliminate problem with initialisation of pointers, but problem
4161         still exists,
4162         * (pic16_pointerTypeToGPByte): removed, no needed for pic16,
4163         * (emitStaticSegment): removed various lines emitting debug info,
4164         * src/pic16/pcode.c, src/pic16/pcode.h, src/pic16/ralloc.h:
4165         added processor registers for utilizing EEPROM,
4166         * src/pic16/pcode.c (pic16_emitDB): number of DBs emitted is not
4167         configurable and set 8
4168
4169 2004-06-08 Vangelis Rokas <vrokas AT otenet.gr>
4170
4171         * .version: increased version number to 2.4.2,
4172
4173         Cumulative patch for pic16 port
4174         * src/pic16/device.c: changed scheme to dump initial values for
4175         variables in idata segment, all print_idata* functions were removed,
4176         now the pic16_printIval* will be called,
4177         * src/pic16/glue.c: (pic16_initPointer, pic16_pointerTypeToGPByte,
4178         * _pic16_printPointerType, pic16_printPointerType,
4179         * pic16_printGPointerType, pic16_printIvalArray, pic16_printIvalStruct,
4180         * pic16_printIvalBitFields, pic16_printIvalFuncPtr, pic16_printIvalPtr:
4181         NEW, similar to the respective functions in SDCCglue.c,
4182         * src/pic16/pcode.c (pic16_emitDB, pic16_flushDB): reverted to old
4183         way, emitting hex bytes,
4184         * (pic16_emitDS): NEW, emits a string for pointer initialisation,
4185
4186 2004-06-08 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
4187
4188         * src/avr/ralloc.c (serialRegAssign),
4189         * src/xa51/ralloc.c (serialRegAssign),
4190         * src/pic/ralloc.c (serialRegAssign),
4191         * src/pic16/ralloc.c (serialRegAssign),
4192         * src/hc08/ralloc.c (serialRegAssign),
4193         * src/z80/ralloc.c (serialRegAssign),
4194         * src/ds390/ralloc.c (serialRegAssign),
4195         * src/mcs51/ralloc.c (serialRegAssign): fixed bug #964479
4196
4197 2004-06-08 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
4198
4199         * src/SDCCicode.c (geniCodeJumpTable): fixed bug #967601
4200         * src/SDCCpeeph.c (labelIsReturnOnly): fixed bug #966505
4201
4202 2004-06-07 Vangelis Rokas <vrokas AT otenet.gr>
4203
4204         Cumulative patch for pic16 port:
4205         * src/pic16/device.h (typedef PIC16_device) modified fields for
4206         defining microcontrollers,
4207         * src/pic16/device.c: added new info for all devices in Pics16 array,
4208         * src/pic16/gen.c (genPcall): fixed bug that caused the return label
4209         to be optimised out by the pCode optimiser,
4210         * src/pic16/glue.c (pic16emitRegularMap): treat implicit aggragates
4211         specially, bug reported by G.M. Gallant,
4212         * src/pic16/pcode.c (pic16_newpCodeLabelFORCE): NEW, marks a label
4213         as force'd so that cannot be optimised out by pCode optimiser,
4214         * src/pic16/pcode.c,
4215         * src/pic16/pcodepeeph.c,
4216         * src/pic16/pcoderegs.c: many modifications to re-enable peepholes,
4217         they are disabled by default, but can be enabled explicit with
4218         command argument --denable-peeps, for testing,
4219         * device/lib/pic16/startup/Makefile: added --no-peep,--pomit-config-words,
4220         --pomit-ivt in COMPILE_FLAGS
4221
4222 2004-06-06 Maarten Brock <sourceforge.brock AT dse.nl>
4223
4224         * src/pic16/pcode.c (pic16_emitDB): removed double semicolon which fails
4225           compilation on MSVC
4226
4227 2004-06-06 Maarten Brock <sourceforge.brock AT dse.nl>
4228
4229         * device/include/sab80515.h: added sfr P6, changed GPL to LGPL
4230
4231 2004-06-06 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
4232
4233         device/include/sab80515.h: fixed bug #967492, DAPR is defined at adress
4234         0xd8, but the correct adress is 0xda. Thanks to anonymous for reporting
4235
4236 2004-06-06 Vangelis Rokas <vrokas AT otenet.gr>
4237
4238         * src/pic16/device.c (pic16_assignConfigWord): fixed bug that
4239         would only assign 0x300001 register.
4240
4241 2004-06-05 Vangelis Rokas <vrokas AT otenet.gr>
4242
4243         * device/lib/pic16/startup/Makefile: added $(MODELFLAGS)
4244         in COMPILE_FLAGS. Thanks to G. Gallant for report.
4245
4246 2004-06-05 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
4247
4248         * doc/sdccman.lyx: minor changes, mentioned beta vendor support
4249         for ds80c400
4250         * src/mcs51/peeph.def: ran unexpand -a over peeph.def
4251         * src/mcs51/peeph.def: removed obsolete peephole 100.a,
4252         added peephole 254 (left shift), 255 (jump table)
4253
4254 2004-06-04 Vangelis Rokas <vrokas AT otenet.gr>
4255
4256         * device/lib/Makefile.in: removed comment line with model-pic16,
4257         * (target port-specific-objects-pic16): the libraries and objects
4258         are copied to the build directory form the device/lib/pic16/bin
4259         directory
4260
4261         Cumulative patch concerning pic16 port:
4262         * library directory has been re-organized,
4263         * added support for PIC18F1220,
4264         * added headers and library sources for chips 18f1220,18f6520,
4265         18f6620,18f6680,18f6720,18f8520,18f8620,18f8680,18f8720
4266
4267         * configuration registers setting has changed, now each supported
4268         device has a complete description of the registers it uses,
4269         * all initialisations are moved to idata sections, these section
4270         can be absolute or relocatable,
4271         * fixed initialisation of codespace variables,
4272         * fixed warning about PCLATU and gpsim,
4273         * src/pic16/gen.c (genCmp): now can handle partially iCodes with no ifx,
4274         * (genAssign): use table reads when assigning from variables in codespace,
4275         * src/pic16/glue.c (pic16emitStaticSeg): fixed to correctly initialise
4276         char/int variables placed in codespace,
4277         * (pic16_emitConfigRegs): NEW, emits a list with configuration
4278         registers set in .asm file, no need for --pomit-config-words anymore,
4279         * (pic16glue): some 8051 legacy segments are commented out
4280         (to be removed completely),
4281         * added support for alternative assembler and linker with --asm=
4282         and --link= command line arguments,
4283         * peepholes are disabled automatically in the port, no need to
4284         specify on command line,
4285         * port supports natively char/int/long multiplication, but converts
4286         all divisions to support functions,
4287         * main.c: pic16_linkCmd and pic16_asmCmd changed to force output
4288         to the file set in variable $2,
4289         * pcode.c (pic16_emitDB, pic16_flushDB): modified to print printable
4290         strings in ASCII format and not in hex,
4291         * ralloc.c (serialRegAssign): added a triplet of conditional calls
4292         to pic16_allocDirReg for IC_RESULT, IC_LEFT and IC_RIGHT so to
4293         allocate proper register if iCodes aren't temporary,
4294
4295 2004-06-02 Maarten Brock <sourceforge.brock AT dse.nl>
4296
4297         * support/regression/tests/zeropad.c: added TEST_G macro for alpha
4298
4299 2004-06-02 Vangelis Rokas <vrokas AT otenet.gr>
4300
4301         * src/pic16/gen.c (genPcall): warning about gpsim and PCLATU
4302         is commented out
4303
4304 2004-06-01 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
4305
4306         * src/hc08/gen.c (genPointerGetSetOfs): disabled optimization if
4307         computed address is reused
4308         * src/hc08/gen.c (genPackBits): fixed offsets in assignments to
4309         multi-byte bitfields
4310
4311 2004-06-01 Maarten Brock <sourceforge.brock AT dse.nl>
4312
4313         * src/z80/gen.c: (genArrayInit): must check for pointers too
4314
4315 2004-06-01 Maarten Brock <sourceforge.brock AT dse.nl>
4316
4317         * support/regression/tests/zeropad.c: never meant to commit the
4318           nestedstruct test: removed, added check for GCC version
4319
4320 2004-05-31 Maarten Brock <sourceforge.brock AT dse.nl>
4321
4322         * src/SDCCast.c (createIvalArray): fixed bug 770487 SIGSEGV
4323         * src/SDCCglue.c (emitRegularMap): fixed bug 770484 allocation problem
4324         * src/SDCCglue.c (initPointer, printIvalType, printIvalStruct,
4325           printIvalArray, printIvalFuncPtr, printIvalPtr, printIval): fixed
4326           bugs 928906 and 954082 half-empty initializers
4327         * src/SDCCsymt.h,
4328         * src/SDCCsymt.c (getAllocSize): added for above fix
4329         * src/z80/gen.c (genArrayInit): fixed bug 741044
4330         * support/regression/tests/zeropad.c: added tests
4331
4332 2004-05-30 Vangelis Rokas <vrokas AT otenet.gr>
4333
4334         * src/pic16/device.c (pic16_dump_section): corrected bug which
4335         caused some symbols of the libraries to be misplaced
4336
4337 2004-05-28 Vangelis Rokas <vrokas AT otenet.gr>
4338
4339         * src/pic16/glue.c,
4340         * src/pic16/ralloc.h,
4341         * src/pic16/ralloc.cc: prefixed IS_CONFIG_ADDRESS with PIC16_
4342         to fix conflict with pic port
4343
4344 2004-05-28 Vangelis Rokas <vrokas AT otenet.gr>
4345
4346         * src/pic16/glue.c (pic16emitStaticSeg): do not print as publics or
4347         externs configuration variables,
4348         * src/pic16/ralloc.h,
4349         * src/pic16/ralloc.cc: IS_CONFIG_ADDRESS is made public and added
4350         prototype in header, commented out some debug messages
4351
4352 2004-05-26 Vangelis Rokas <vrokas AT otenet.gr>
4353
4354         * src/pic16/glue.c,
4355         * src/pic16/main.c,
4356         * src/pic16/pcode.c: added gpasm directives #FILE/#LINE
4357         for gpasm COFF object generation. Thanks to D. Hawkins for
4358         his patch info
4359
4360 2004-05-25 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
4361
4362         * src/ds390/main.c,
4363         * src/mcs51/main.c: fixed sort order of mnemonics (thanks to Maarten
4364         Brock for spotting this)
4365         * src/ds390/gen.c (genEndFunction),
4366         * src/mcs51/gen.c (genEndFunction): always save psw if function is an
4367         interrupt handler and critical. Disable push/pop optimizations when
4368         peephole optimizations disabled.
4369
4370 2004-05-25 Vangelis Rokas <vrokas AT otenet.gr>
4371
4372         Updated pic16 library sources and headers.
4373         * device/lib/pic16/pic18f*/ ,
4374         * device/include/pic16/*.h: modified to handle structured SFR
4375         definitions
4376
4377 2004-05-25 Vangelis Rokas <vrokas AT otenet.gr>
4378
4379         * src/port.h (PORT structure): added hook initPaths, now each
4380         port can declare its own default search paths,
4381         which can been seen with the --print-search-dirs option,
4382         see pic16 port for example,
4383         * src/SDCCmain.c (setBinPaths, setIncludePaths, setLibPath,
4384         setDataPaths): test to options.printSearchDirs is ifdef'ed out,
4385         * (doPrintSearchDirs): NEW, replaces in a central manner the
4386         printing of search dirs which was split in set*Paths functions,
4387         * (main): added call to port->initPaths and doPrintSearchDirs,
4388         * src/avr/main.c,
4389         * src/ds390/main.c,
4390         * src/hc08/main.c,
4391         * src/izt/i186.c,
4392         * src/izt/tlcs900h.c,
4393         * src/mcs51/main.c,
4394         * src/pic/main.c,
4395         * src/pic16/main.c: modified port structures to reflect addition of
4396         initPaths hook,
4397
4398         * src/pic16/device.c (regCompare): registers are finally sorted by name,
4399         * (pic16_dump_section): for registers in same address reserve memory once,
4400         * src/pic16/device.h (struct PIC16_device): changed variable gen_banksel
4401         to no_banksel,
4402         * src/pic16/genarith.c (pic16_genPlus): added code to handle cases where
4403         result is greater in size than right or left,
4404         * (pic16_genUMult8X8_8): there are some cases where the result can
4405         be 16 bits size, so handle these,
4406         * src/pic16/gen.c: changed some pic16_emitpcomment to DEBUGpic16_emitcode,
4407         * (pic16_outBitC): modified to emit pcodes,
4408         * (pic16_storeForReturn): using is_LitOp to see if operand is literal
4409         or not,
4410         * (genDivOneByte): implemented algorithm to divide 8-bits,
4411         * (genCmp): uncommented goto, but issues still exist,
4412         * (genAnd): fixed a bug with variables >8bits,
4413         * (genPackBits): optimization added that uses BCF/BSF to change a
4414         single bit,
4415         * (genAssign): fixed bug when assigning floating point literals,
4416         * src/pic16/glue.c (pic16glue): added assembler directive 'code' before
4417         __sdcc_gsinit_startup label,
4418         * src/pic16/main.c (_pic16_init): removed search directory
4419         initialisations,
4420         * (_pic16_initPaths): NEW, used to initialise search directories,
4421         * (_hasNativeMulFor): support functions for all except char/int
4422         multiplication, and char division,
4423         * (PIC16_port struct): modified entry for native mul support,
4424         * src/pic16/pcode.c (insertBankSwitch): modified to support the renamed
4425         no_banksel option,
4426         * (buildCallTree): call to register_usage is ifdef'ed out,
4427
4428 2004-05-22 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
4429
4430         * device/include/string.h: applied Stas Sergeev's patch to make this
4431         header file compatible with the preprocessor -Wundef option
4432         * src/SDCCmain.c (main): abort compilation if preprocessor reports
4433         failure (fixes bug #941458)
4434
4435 2004-05-21 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
4436
4437         * src/SDCCopt.c (killDeadCode): fixed bug #907733
4438         * support/Util/SDCCerr.c: reworded E_AUTO_ASSUMED diagnostic to clarify
4439         that the variable, not the function, should be static
4440         * src/SDCCval.c (valCastLiteral): fixed bit initialization from literal
4441         to be consistent with non-literal case
4442
4443 2004-05-19 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
4444
4445         * src/SDCCast.c (isConformingBody): fixed bug #949967
4446         * src/SDCCopt.c (cnvToFcall, cnvToFloatCast, cnvFromFloatCast,
4447         convilong): fixed bug #952086
4448
4449 2004-05-18 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
4450
4451         * src/SDCCmem.c (allocVariables): fixed bug #955321
4452
4453 2004-05-18 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
4454
4455         * src/hc08/main.c (_hc08_genAssemblerEnd),
4456         * src/SDCCdwarf2.c (dwOpenFile, dwCloseFile, dwWriteFunction,
4457         dwWriteModule, dwWriteCLine, dwWriteALine, dwarf2FinalizeFile):
4458         completely eliminated the use of a temporary file
4459         * src/SDCCdwarf2.c (dwWriteAttr): fixed bug with location list offset
4460         when more than one file linked
4461         * src/SDCCloop.c (pointerAssigned): fixed bug #954163
4462
4463 2004-05-17 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
4464
4465         * src/SDCCval.c (valForArray): applied Maarten Brock's patch #947682
4466         which fixes bug #543481
4467         * support/regression/tests/bug-751703.c: fixed comments left from a
4468         cut and paste error
4469         * src/SDCCdwarf2.c (dwCloseFile): don't explicitly close a temp file
4470         * src/SDCCdwarf2.c (dwTagFromType): added bitfield support
4471         * src/SDCCdwarf2.c (dwWriteSymbolInternal): handle extern within local
4472         scopes
4473         * src/SDCCdwarf2.c (dwWriteLineNumber): line number deltas are signed
4474         * src/SDCCmain.c (processFile, parseCmdLine): non-alphanumeric chars
4475         are now changed to underscores in moduleName
4476
4477 2004-05-15 Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
4478
4479         * as/mcs51/lkmem.c: better fix for bug #954173
4480
4481 2004-05-15 Maarten Brock <sourceforge.brock AT dse.nl>
4482         committed by Frieder Ferlemann <Frieder.Ferlemann AT web.de>
4483
4484         * device/include/c8051f020.h: newly added SiLabs (Cygnal) header file
4485         * device/include/c8051f000.h,
4486         * device/include/c8051f120.h,
4487         * device/include/c8051f300.h,
4488         * device/include/c8051f310.h,
4489         * device/include/c8051f320.h: updated (added _XPAGE, CAPN, CAPP,
4490         PWM16) and detab'ed
4491
4492 2004-05-15 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
4493
4494         * doc/sdccman.lyx: mentioned sourceforge's delay between web frontend
4495         and mailing lists, doc'ed --no-peep-comments, removed reference
4496         to knoppix (newest version has no LyX/LaTeX), other minor changes
4497         * src/SDCCglue.c (glue): save 2 bytes stack space with
4498         option --main-return. The ljmp could probably be avoided too
4499
4500 2004-05-14 Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
4501
4502         * as/mcs51/lkmem.c, as/mcs51/lkaomf51: fixed bug 954173
4503
4504 2004-05-14 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
4505
4506         * src/SDCCsymt.h: added IS_AUTO(symbol) test macro
4507         * src/SDCCopt.c (isLocalWithoutDef),
4508         * src/SDCCicode.c (operandFromSymbol): use the IS_AUTO test macro
4509         which adds a !IS_EXTERN codition. Fixes bugs #877426 and #751703.
4510         (credit to Maarten Brock for patch #949363, on which this is based)
4511         * support/regression/tests/bug-751703.c: some test cases of extern used
4512         within inner scopes.
4513
4514 2004-05-14 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
4515
4516         * src/SDCCdwarf2.c (dwMatchTypes): structs must have matching
4517         SPEC_STRUCT
4518         * src/SDCCdwarf2.c (dwTagFromType): fix to handle recursive
4519         struct definitions
4520         * src/SDCCdwarf2.c (dwWriteModule, dwNewDebugSymbol, dwWriteEndFunction,
4521         dwWriteLabel): fix to create valid debugger symbols even when
4522         the module name has non-alphanumeric symbols in it
4523         * src/SDCCdwarf2.c (dwWriteSymbolInternal): better detection for
4524         when a variable's allocation has been optimized away
4525
4526
4527 2004-05-13 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
4528
4529         * src/hc08/gen.c (hc08_emitDebuggerSymbol),
4530         * src/hc08/main.c,
4531         * src/mcs51/gen.c (mcs51_emitDebuggerSymbol),
4532         * src/mcs51/main.c,
4533         * src/ds390/gen.c (ds390_emitDebuggerSymbol),
4534         * src/ds390/main.c,
4535         * src/z80/gen.c (z80_emitDebuggerSymbol),
4536         * src/z80/main.c,
4537         * src/pic/gen.c (pic14_emitDebuggerSymbol),
4538         * src/pic/main.c,
4539         * src/pic16/gen.c (pic14_emitDebuggerSymbol),
4540         * src/pic16/main.c,
4541         * src/avr/gen.c (avr_emitDebuggerSymbol),
4542         * src/avr/main.c,
4543         * src/xa51/gen.c (xa51_emitDebuggerSymbol),
4544         * src/xa51/main.c,
4545         * src/SDCCdebug.c (emitDebuggerSymbol),
4546         * src/SDCCdebug.h,
4547         * src/port.h: added a debugger struct to the port struct. Added a
4548         callback for defining debugger symbols
4549
4550         * src/SDCCast.c (createLabel),
4551         * src/SDCC.y (labeled_statement): mark all compiler generated labels
4552         with isitmp = 1
4553         * src/SDCCicode.h,
4554         * src/SDCCicode.c (geniCodeFunctionBody): added a link from the FUNCTION
4555         iCode back to the ast for the function
4556
4557         * src/hc08/ralloc.c (hc08_assignRegisters),
4558         * src/hc08/ralloc.h: define a regs struct for the stack pointer. Removed
4559         unneeded fields from the regs struct.
4560         * src/hc08/gen.c (transferRegReg, genFunction, genEndFunction): use the
4561         pushReg() & pullReg() functions instead of emitcode()
4562
4563         * src/hc08/gen.c (genLabel, genhc08Code),
4564         * src/SDCCdebug.h: Added additional debugger hooks needed for DWARF
4565
4566         * src/cdbFile.c (cdbWriteLabel, cdbWriteScope): Added stubs for unneeded
4567         debugger hooks
4568
4569         * src/hc08/gen.c (genEndFunction, genhc08Code),
4570         * src/hc08/gen.h,
4571         * src/mcs51/gen.c (genEndFunction, gen51Code),
4572         * src/mcs51/gen.h,
4573         * src/ds390/gen.c (genEndFunction, gen390Code),
4574         * src/ds390/gen.h,
4575         * src/z80/gen.c (genEndFunction, genZ80Code),
4576         * src/z80/gen.h,
4577         * src/z80/z80.h,
4578         * src/pic/gen.c (genEndFunction, genpic14Code),
4579         * src/pic/gen.h,
4580         * src/pic16/gen.c (genEndFunction, genpic16Code),
4581         * src/pic16/gen.h,
4582         * src/avr/gen.c (genEndFunction, genAVRCode),
4583         * src/avr/gen.h,
4584         * src/xa51/gen.c (genEndFunction, genXA51Code),
4585         * src/xa51/gen.h,
4586         * src/cdbFile.c (cdbWriteFunction, cdbWriteEndFunction): moved cdb
4587         specific code to cdbFile.c and out of the backend code generators
4588
4589         * as/hc08/lkmain.c (main): removed OMF51 support from link-hc08
4590         * as/hc08/lkarea.c (lnkarea): areas with NOLOAD attribute default
4591         starting address is now 0
4592
4593         * as/hc08/asm.h,
4594         * as/hc08/m08pst.c,
4595         * as/hc08/asmain.c (asmbl): implemented the .sleb128 and .uleb128
4596         assembler directive for DWARF support
4597         * as/hc08/lkelf.c (elf): only increment address when rtflg[] set
4598
4599         * src/src.dsp,
4600         * src/Makefile.in,
4601         * src/SDCCdwarf2.c: preliminary DWARF (ver 2) debugger data generator
4602
4603 2004-05-04 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
4604
4605         * src/hc08/gen.c (genJumpTab, emitcode, genhc08code): fixed stack error
4606         and inappropriate peephole optimization in jump tables
4607
4608 2004-04-30 Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
4609
4610         * as/hc08/m08pst.c,
4611         * src/SDCCglue.c: sdccopt works for the hc08 port now
4612
4613 2004-04-27 Bernhard Held <bernhard AT bernhardheld.de>
4614
4615         * src/SDCCicode.c (geniCodePreInc, geniCodePreDec): fixed bug #942130
4616
4617 2004-04-27 Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
4618
4619         * as/hc08/lkelf.c: sdccconf.h is not available in WIN32
4620
4621 2004-04-24 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
4622
4623         * src/SDCCpeeph.c (replaceRule): support empty replacement peephole
4624         rules
4625         * src/SDCCmain.c,
4626         * src/SDCCglobl.h,
4627         * src/SDCCpeeph.c (getPeepLine): new option --no-peep-comments omits
4628         comments from the peephole optimizer replacement rules
4629         * src/SDCCmem.c (printAllocInfoSeg): give actual location of spilled
4630         symbols
4631         * src/SDCCcse.c (updateSpillLocation),
4632         * src/SDCCopt.c (killDeadCode, findReqv): better tracking of register
4633         equivalents
4634         * src/hc08/ralloc.c (regTypeNum): pseudo symbols must be in DATA only
4635         * src/hc08/main.c (_hc08_finaliseOptions): made pointers to stack
4636         objects far pointers
4637
4638 2004-04-23 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
4639
4640         * src/SDCCsymt.h: a missing part of my last change
4641         * src/pic/ralloc.c (regTypeNum),
4642         * src/pic16/ralloc.c (regTypeNum): fixed statement/declaration order
4643
4644 2004-04-23 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
4645
4646         * src/SDCCicode.h,
4647         * src/SDCCicode.c (aggrToPtrDclType),
4648         * src/SDCCptropt.h,
4649         * src/SDCCptropt.c (ptrBaseRematSym, ptrPseudoSymSafe,
4650         ptrPseudoSymConvert),
4651         * src/pic/ralloc.c (regTypeNum),
4652         * src/pic16/ralloc.c (regTypeNum),
4653         * src/hc08/ralloc.c (regTypeNum),
4654         * src/ds390/ralloc.c (regTypeNum),
4655         * src/mcs51/ralloc.c (regTypeNum): check for dependancy hazards before
4656         creating pseudo symbols (fixed bugs #777768, #930484, and #933966)
4657
4658 2004-04-22 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
4659
4660         * link/z80/lkmain.c (afile),
4661         * as/hc08/lkmain.c (afile),
4662         * as/mcs51/lkmain.c (afile): fix suggested by Maarten Brock to
4663         prevent a pointer problem when a filename has no directory and
4664         no extension specified.
4665
4666 2004-04-21 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
4667
4668         * link/z80/lkmain.c (afile): allow periods in directory names
4669         * link/z80/lkmain.c (afile),
4670         * as/mcs51/lkmain.c (afile),
4671         * as/hc08/lkmain.c (afile): allow linker script file to have an
4672         extension other than ".lnk"
4673         * link/z80/lklex.c (getfid),
4674         * link/z80/lkmain.c (parse),
4675         * as/mcs51/lklex.c (getfid),
4676         * as/mcs51/lkmain.c (parse),
4677         * as/hc08/lklex.c (getfid),
4678         * as/hc08/lkmain.c (parse): Support comments in the linker script
4679         file on lines by themselves and after filenames
4680
4681 2004-04-20 Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
4682
4683         * as/link_hc08.dsp: Added as/hc08/lkelf.c to project.
4684
4685 2004-04-20 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
4686
4687         * src/z80/peeph-z80.def: removed some peephole rules that don't
4688         work with multibyte arithmetic (fixed bug #937126)
4689         * src/mcs51/peeph.def: fixed peephole rules 150-158 to apply only
4690         to registers and not global variables
4691         * src/SDCCicode.c (geniCodeAssign, ast2iCode, geniCodePostInc,
4692         geniCodePreInc, geniCodePostDec, geniCodePreDec,
4693         geniCodeLogicAndOr, geniCodeConditional): enforce strict lvalue
4694         checking for assignments not internally generated (fixed bug #931895)
4695         * src/SDCC.y (postfix_expr): ignore typedefs when looking for a
4696         structure member (fixed bug #930072)
4697
4698 2004-04-19 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
4699
4700         * src/SDCCmain.c (linkEdit),
4701         * src/hc08/main.c (_hc08_parseOptions),
4702         * as/hc08/Makefile.in,
4703         * as/hc08/aslink.h,
4704         * as/hc08/asm.h,
4705         * as/hc08/m08pst.c,
4706         * as/hc08/lkrloc.c (relr, rele),
4707         * as/hc08/lkarea.c (lnkarea)
4708         * as/hc08/lkmain.c (afile, parse),
4709         * as/hc08/lkelf.c: support for ELF output
4710         * as/hc08/lks19.c (s19),
4711         * as/hc08/lkihx.c (ihx): ignore areas with the NOLOAD attribute
4712
4713 2004-04-17 Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
4714
4715         * as/mcs51/lkihx.c: Fixed bug #899105.
4716
4717 2004-04-16 Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
4718
4719         * doc/sdccman.lyx: Added instructons on how to convert MSVC .dsw and
4720         .dsp files from Unix to DOS.
4721
4722 2004-04-16 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
4723
4724         * doc/sdccman.lyx: removed the ANSI-C noncompliance note regarding
4725         function pointers; we have been compliant for several months now.
4726         * src/mcs51/ralloc.c (serialRegAssign): enabled part of my 2004-04-13
4727         change that was accidently commented out
4728         * src/mcs51/gen.c (freeAsmop, getFreePtr, freeForBranchAsmop, genIfxJump,
4729         genCmpEq, jmpTrueOrFalse, genCmp, genAnd, genOr, genXor, genIfx): fixed
4730         bug #922319
4731
4732 2004-04-15 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
4733
4734         * src/hc08/gen.c: output of all of the internal debugging information
4735         is now controlled by the D() macro; it is disabled by default
4736
4737 2004-04-13 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
4738
4739         * src/mcs51/ralloc.c (serialRegAssign, fillGaps, allocThisReg): try
4740         harder to keep the same registers during a CAST iCode
4741         * src/SDCCopt.c (optimizeCastCast, eBBlockFromiCode): casts of char to
4742         long via int can be done in a single cast, if the signedness is
4743         correct.
4744         * support/regression/tests/bug-927659.c: fixed to avoid conflict with
4745         putchar() in tinibios.c in ds390's library
4746
4747 2004-04-12 Bernhard Held <bernhard AT bernhardheld.de>
4748
4749         * src/SDCCast.c (decorateType): fixed bug #898889,
4750         cast result of a literal complement too
4751         * src/mcs51/ralloc.c (packRegsForAssign): fixed bug #930931,
4752         fixed check for bitfields
4753
4754 2004-04-11 Bernhard Held <bernhard AT bernhardheld.de>
4755
4756         * src/SDCCicode.c (geniCodeLogic): made it static,
4757         (geniCodeLogicAndOr): added in order to fix bug #905492,
4758         (ast2iCode): fixed bug #905492
4759         * support/regression/tests/bug-905492.c: added
4760         * src/SDCCast.c (decorateType): don't decorate/process parms twice,
4761         (processParms): fixed bug #927659: don't copy parms, this will clear
4762         decorated flag
4763         * support/regression/tests/bug-927659.c: added
4764
4765 2004-03-29 Bernhard Held <bernhard AT bernhardheld.de>
4766
4767         * src/SDCCast.c (addCast): don't cast float to char
4768         * device/lib/libsdcc.lib: added _memmove
4769
4770 2004-03-28 Bernhard Held <bernhard AT bernhardheld.de>
4771
4772         * device/lib/large/Makefile: fixed parallel execution by
4773         replacing `make` by `$(MAKE)`
4774
4775 2004-03-28 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
4776
4777         * src/hc08/gen.c (genPointerGetSetOfs): correctly handle 1 byte array
4778         offsets (fixes bug #923936)
4779
4780 2004-03-26 Bernhard Held <bernhard AT bernhardheld.de>
4781
4782         * device/lib/small/Makefile: fixed parallel execution by
4783         replacing `make` by `$(MAKE)`
4784
4785 2004-03-23 Bernhard Held <bernhard AT bernhardheld.de>
4786
4787         * device/lib/vprintf.c (vsprintf): minor optimization, see bug #801101
4788
4789 2004-03-23  Scott Dattalo  <scott AT dattalo.com>
4790
4791         * src/pic/gen.c (genCpl): multi-byte complements were not working.
4792         * src/regression/Makefile: Regression test was not running.
4793
4794 2004-03-23 Bernhard Held <bernhard AT bernhardheld.de>
4795
4796         * src/SDCCast.c (resultTypePropagate, decorateType): avoid promotion to int for
4797         complement if possible
4798         * src/SDCCval.c (valComplement),
4799         * src/SDCCicode.c (operandOperation): fixed complement of literal
4800         * support/regression/tests/onebyte.c (testComplement): added
4801
4802 2004-03-22 Bernhard Held <bernhard AT bernhardheld.de>
4803
4804         * src/SDCCast.c (processParms): fixed bug #920866; decorateType() can
4805         return an optimized tree; actually replace actParm with the new tree
4806         * src/SDCCast.h: added some parantheses to remove side effects
4807         * support/regression/tests/bug-920866.c
4808
4809 2004-03-21  Scott Dattalo  <scott AT dattalo.com>
4810         * src/pic/gen.c, src/pic/gen.h, src/pic/genarith.c, src/pic/pcode.c:
4811         Bit operands were not being handled properly in the pic14 port.
4812         (now src/regression/add.c passes again).
4813
4814 2004-03-20 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
4815
4816         * src/SDCC.y (labeled_statement): case and default no longer require
4817         a following statement (RFE #893037)
4818
4819 2004-03-19 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
4820
4821         * src/mcs51/gen.c (pushSide, genSignedRightShift, genDjnz, geniPush):
4822         use MOVA macro to avoid "mov a,acc" when peephole optimizer is
4823         disabled (fixes bug #916294)
4824         * sim/ucsim/s51.src/mov.cc (inst_mov_a_addr): Throw an error on
4825         "mov a,acc"; patch provided by Lenny Story
4826         * device/include/mc68hc908gp32.h: header contibuted by Juan Gonzalez
4827
4828 2004-03-19 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
4829
4830         * src/mcs51/gen.c (genFunction): optimize RECEIVE in reentrant
4831         functions
4832         * src/ds390/gen.c (genFunction, genEndFunction),
4833         * src/ds390/ralloc.c (ds390_assignRegisters),
4834         * src/mcs51/gen.c (genFunction, genEndFunction, mcs51_assignRegisters):
4835         * src/mcs51/ralloc.c (mcs51_assignRegisters): Skip optimizing registers
4836         pushed if there are parameters passed on the stack. Also, a cleaner
4837         way to decide if r0/r1 should be pushed/popped. (Together they fix
4838         bug #918693)
4839
4840 2004-03-18 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
4841
4842         * doc/sdccman.lyx,
4843         * device/lib/mcs51/crtpagesfr.asm,
4844         * device/lib/mcs51/crtxinit.asm,
4845         * device/lib/mcs51/crtxstack.asm: Changed name of _PAGESFR to _XPAGE
4846         to avoid confusion with Si Lab's SFRPAGE register.
4847
4848 2004-03-17 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
4849
4850         * src/SDCCglue.c (emitMaps): allow public sfr variables
4851         * src/SDCCglue.c (initialComments): include compiler build date
4852         with compiler version and put the timestamp of the generated
4853         assembly file on a serperate line to be less confusing.
4854         * src/port.h: added genInitStartup hook
4855         * src/avr/main.c,
4856         * src/ds390/main.c,
4857         * src/hc08/main.c,
4858         * src/pic/main.c,
4859         * src/pic16/main.c,
4860         * src/xa51/main.c,
4861         * src/z80/main.c: genInitStartup initialize as NULL (default to
4862         historical behaviour)
4863         * src/SDCCglue.c (glue): _sdcc_gsinit_startup is now port specific.
4864         * src/mcs51/main.c: (_mcs51_genInitStartup, _mcs51_genExtraAreas,
4865         _mcs51_genXINIT, _mcs51_genRAMCLEAR): link initialization code from the
4866         library instead of hard coding it into the compiler.
4867         * support/regression/ports/mcs51-stack-auto/spec.mk,
4868         * src/SDCCmain.c (linkEdit): added mcs51.lib to the link libraries
4869         * device/lib/mcs51/Makefile,
4870         * device/lib/small/Makefile,
4871         * device/lib/large/Makefile,
4872         * device/lib/mcs51/crtpagesfr.asm,
4873         * device/lib/mcs51/crtstart.asm,
4874         * device/lib/mcs51/crtxclear.asm,
4875         * device/lib/mcs51/crtxinit.asm,
4876         * device/lib/mcs51/crtclear.asm,
4877         * device/lib/mcs51/crtxstack.asm: move most of the mcs51 C runtime
4878         startup/initialization out of src/SDCCglue.c and src/mcs51/main.c
4879         and into user configurable files.
4880         * device/lib/clean.mk: clean mcs51 directory too
4881         * support/regression/tests/longlit.c: added static to T1 declaration
4882         * doc/sdccman.lyx: documented _PAGESFR sfr for customizing pdata
4883         accesses in the initialization code
4884
4885 2004-03-14 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
4886
4887         * device/include/mc68hc908qy.h: corrected declarations of FLBPR and
4888         OSCTRIMVAL as noted in bug #916008
4889
4890 2004-03-14 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
4891
4892         * src/SDCCloop.c (basicInduction): fixed bug with loop induction
4893         in loops with multiple exits (reported as incorrect registers
4894         used by Martin Helmling in Sdcc-user list)
4895
4896 2004-03-12 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
4897
4898         * src/ds390/main.c (_ds390_genAssemblerPreamble): cosmetic change,
4899         made ds390 register extensions look less like error messages
4900
4901 2004-03-12 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
4902
4903         * src/SDCCglue.c (printIvalPtr): fixed bug with pointer initializer
4904         reported by Adam Wozniak in Sdcc-user list
4905
4906 2004-03-10 Bernhard Held <bernhard AT bernhardheld.de>
4907
4908         * src/SDCCast.c (decorateType): fixed with bug and promotion in
4909         arithmetic optimizations, added debug output
4910
4911 2004-03-09 Bernhard Held <bernhard AT bernhardheld.de>
4912
4913         * device/lib/time.c (mktime): fixed bug reported by Bert Thomas
4914         * sdcc.spec: updated and split sdcc into 3 rpms
4915         * src/SDCCast.c (decorateType): &|^ don't need addCast(); addCast() is
4916         needed for literals of LEFT_OP and '+'
4917         * src/SDCCicode.c (geniCodeLogic): I must have been braindead when I
4918         introduced RESULT_TYPE_NOPROM
4919         (geniCodeMultiply): fixed logic for decision if mul is optimized to
4920         left shift
4921         * src/SDCCsymt.c (computeType): op is int; added RESULT_TYPE_OTHER;
4922         limited promotion to int only for '*'
4923         * src/SDCCsymt.h (computeType): op is int, removed RESULT_TYPE_NOPROM
4924
4925 2004-03-09 Hans Dorn <hjdorn AT users.sourceforge.net>
4926
4927         * src/pic16/gen.c (genSkip),
4928         (genc16bit2lit), (gencjneshort): commented out
4929         (is_LitOp): new helper function, checks operand type
4930         (genCmpEq): rewritten
4931
4932 2004-03-08 Bernhard Held <bernhard AT bernhardheld.de>
4933
4934         * support/regression/tests/bug-908454.c: added
4935
4936 2004-03-07 Bernhard Held <bernhard AT bernhardheld.de>
4937
4938         * src/SDCCast.c (addCast): fixed bug #908454 by promoting bits to char
4939         * src/SDCCicode.c (usualBinaryConversions): op needs int type
4940         (geniCodeCast): cosmetic, don't preserve bit storage class
4941         (geniCodeLeftShift): added promotion
4942         (geniCodeLogic): fixed regression
4943         * src/SDCCsymt.c (computeTypeOr): accept bits too
4944         (compareType): 2nd part of fix for bug #908454, needed for bitfields
4945
4946 2004-03-07  Borut Razem <borut.razem AT siol.net>
4947
4948         * support/Util/findme.c: alloca() replaced with malloc()/free() pair
4949
4950 2004-03-06 Vangelis Rokas <vrokas AT otenet.gr>
4951
4952         * src/pic16/ralloc.c (pic16_genPackRegisters): reverted to old
4953         version of pic16_genPackRegisters which does not check if ic is a
4954         CAST operator,
4955         * src/pic16/gen.c (ifxForOp): disabled new and untested code in
4956         function cause string1.c regression test fails
4957
4958 2004-03-06 Bernhard Held <bernhard AT bernhardheld.de>
4959
4960         * sim/ucsim/configure.in,
4961         * sim/ucsim/configure,
4962         * sim/ucsim/doc/Makefile.in: use docdir
4963         * src/SDCC.y: fixed sbit atrributes
4964         * src/SDCCast.c (getResultTypeFromType): added support for bitfields
4965         * src/SDCCast.c (decorateType): |^& need special promotion handling
4966         * src/SDCCast.h,
4967         * src/SDCCsymt.h: moved definition of RESULT_TYPE
4968         * src/SDCCsymt.h (computeType),
4969         * src/SDCCicode.c: computeType() needs op
4970         * src/SDCCsymt.c (checkTypeSanity),
4971         * doc/sddman.lyx: "plain" bitfields are unsigned
4972         * src/SDCCsymt.c (computeTypeOr): added
4973         * src/SDCCsymt.c (computeType): added support for bitfields, fixed
4974         |^& ops
4975         * src/SDCCval.c (val*): computeType() needs op
4976         * src/SDCCval.c (valCastLiteral): fixed casting of bitfields
4977         * support/regression/tests/onebyte.c: added tests for |^&
4978
4979 2004-03-06 Hans Dorn <hjdorn AT users.sourceforge.net>
4980
4981         * src/pic16/gen.c: (genpic16Code) use copy of printILine's output
4982         for writing icode into asm output.
4983
4984 2004-03-05 Vangelis Rokas <vrokas AT otenet.gr>
4985
4986         * src/pic16/device.c: added some debug lines enabled
4987         with macro DEBUG_CHECK,
4988         * src/pic16/genarith.c: more debug in genPlus,
4989         * (pic16_genUMult8XLit_16, pic16_genUMult8X8_16): removed,
4990         * (pic16_genUMult16X16_16, pic16_genUMult16XLit_16): NEW,
4991         * src/pic16/gen.c: added prototypes for pic16_genMult16X16_16,
4992         * (aopForSym): onStack symbols are re-placed in data memspace,
4993         and onStack flag is cleared,
4994         * (pic16_popGetTempReg, pic16_popReleaseTempReg): modified to
4995         copy temporary pcodeop,
4996         * (genPcall): added warning for not updating PCLATU,
4997         * (genFunction): removed test with IFFUNC_CALLEESAVES, its
4998         always true for pic16 port,
4999         * (genMultOneWord): NEW, supports integer multiplication,
5000         * (genMult): modified to call genMultOneWord,
5001         * (ifxForOp): added warning when return NULL,
5002         * src/pic16/glue.c (pic16emitRegularMap): symbol implicit
5003         flag is set before call to operandFromSymbol for implicit
5004         added structures,
5005         * src/pic16/main.c (_pic16_finaliseOptions): options.float_rent,
5006         options.intlong_rent are set by default,
5007         * (_hasNativeMulFor): modified to allow port generation of integer
5008         multiplication,
5009         * src/pic16/ralloc.c (pic16_allocDirReg): commented out line which
5010         set regtype to REG_SFR for all registers, restricting seting the
5011         accessBank flag for registers 0<= r < 0x80 and 0xf80<=r<=0xfff,
5012
5013 2004-03-05 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
5014
5015         * src/mcs51/peephole.def: added 251.b and 253.x. 253.x are applied
5016         more than 500 times in the regression tests
5017
5018 2004-03-05 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
5019
5020         * support/Util/SDCCerr.h,
5021         * support/Util/SDCCerr.c,
5022         * src/SDCC.y (struct_or_union_specifier, enum_specifier,
5023         enumerator_list),
5024         * src/SDCCsymt.c (addSymChain): show location of oriignal definition
5025         for symbol conflicts.
5026         * support/valdiags/tests/enum.c,
5027         * support/valdiags/tests/tentdecl.c,
5028         * support/valdiags/tests/struct.c: expect possible error messages
5029         referring to original symbol definitions.
5030         * src/SDCC.y (struct_or_union_specifier, struct_declarator),
5031         * src/SDCCsymt.h,
5032         * src/SDCCsymt.c (promoteAnonStructs): support anonymous struct/union
5033
5034 2004-03-03 Hans Dorn <hjdorn AT users.sourceforge.net>
5035
5036         * src/pic16/gen.c (gencjne): fixed for right=REG / left=LIT
5037
5038 2004-02-03 Vangelis Rokas <vrokas AT otenet.gr>
5039
5040         * src/pic16/ralloc.c (newReg): fixed bug #908929
5041
5042 2004-03-02 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
5043
5044         * src/ds390/gen.c: added missing #include "main.h"
5045
5046 2004-03-02 Vangelis Rokas <vrokas AT otenet.gr>
5047
5048         * src/pic16/device.c (checkAddSym): NEW, adds a symbol to set while
5049         checking if symbol is already in set,
5050         * src/pic16/device.h: prototype for checkAddSym,
5051         * src/pic16/gen.c: (_G): added entry interruptvector,
5052         * (assignResultValue): removed some commented out lines,
5053         * (genFunction): check for ISR via sym->type, absolute section for
5054         interrupt code is created via a new pBlock, the goto instruction is
5055         placed now correctly at the interrupt vector position, changed all
5056         references from ivec to _G.interruptvector,
5057         * WREG,STATUS,BSR are not saved in stack upon an entry to interrupt
5058         is the interrupt is a high priority one, same for return from ISR,
5059         * src/pic16/glue.c: changed all calls of addSetHead for publics and
5060         externs to calls of checkAddSym,
5061         * src/pic16/pcode.c (pic16_pBlockConvert2*): emit warning when
5062         pic16_pcode_verbose flag is set,
5063         * src/pic16/pcode.h: extern to pic16_pcode_verbose,
5064         * src/pic16/pcoderegs.c: message about how many registers are saved
5065         will only be emitted if pic16_pcode_verbose flag is set,
5066
5067 2004-03-02 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
5068
5069         * src/ds390/ralloc.h,
5070         * src/ds390/ralloc.c (ds390_regWithIdx),
5071         * src/ds390/gen.c (emitcode),
5072         * src/ds390/main.h,
5073         * src/ds390/main.c (instructionSize, ds390newAsmLineNode, updateOpRW,
5074         ds390opcodeCompare, asmLineNodeFromLineNode, getInstructionSize,
5075         ds390operandCompare, getRegsRead, getRegsWritten,
5076         initializeAsmLineNode): customized instruction size calculation for
5077         ds390, started basis for some register optimizations
5078         * src/ds390/gen.c (gen390Code, emitcode): associate iCodes with
5079         corresponding assembly output
5080         * src/ds390/gen.c (genFunction, genEndFunction): added case to handle
5081         missing push/pop of r0/r1. Optimized push/pops
5082
5083 2004-03-01 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
5084
5085         * src/mcs51/main.c (instructionSize): fixed ACALL size
5086         * src/mcs51/main.c (updateOpRW): fixed bug with @dptr, @a+dptr operands
5087
5088 2004-03-01 Vangelis Rokas <vrokas AT otenet.gr>
5089
5090         * src/pic16/device.c (pic16_dump_section): fixed a bug that allowed
5091         the sorting of rlist with NULL elements
5092         * (print_idataType, print_idata): NEW to create idata sections
5093         * src/pic16/device.h: idataSymSet new variable
5094         * src/pic16/gen.c (genFunction): fixed some bugs in string
5095         comparing, improved the absolute section creation for ISRs,
5096         added FSR0L/FSR0H in registers that are saved in an ISR,
5097         * (genInline): fixed the processing of inline snippets,
5098         now they undergo no process by the peephole optimizer
5099         * src/pic16/glue.c (pic16emitRegularMap): symbols with initialiser
5100         are placed in idataSymSet,
5101         * (pic16emitStaticSeg): extern symbols are added in externs,
5102         * src/pic16/ralloc.c (pic16_allocDirReg): work around to reduce bank
5103         switching when aboslute variables are placed in access bank memory
5104         * (pic16_writeUsedRegs): added call to pic16_dump_idata,
5105         * (packRegsForSupport,packRegsForAccUse,packRegsForOneuse):
5106         commented out with #if,
5107         * (pic16_packRegisters): reintroduce the check for CAST because some
5108         symbols are not correctly handled,
5109         * src/pic16/pcode.h: changed the definition of pCodeAsmDir to hold a
5110         pCodeInstruction instead of pCode,
5111         * src/pic16/pcode.c (pic16_newpCodeAsmDir): modified for the new
5112         pCodeAsmDir definition,
5113         * (pic16_pCode2str, genericPrint): when an AsmDir pcode has a NULL
5114         directive, then the argument directive is emitted without the leading
5115         tab, hack for inline labels which must be in the first column,
5116         * (compareLabel,pic16_findNextInstruction),
5117         * (pic16_findPrevInstruction): added case for PO_ASMDIR,
5118         * (insertBankSwitch): modified for the new pCodeAsmDir,
5119
5120 2004-03-01 Hans-Juergen Dorn <hans.dorn AT apl-landau.de>
5121         patch applied by Vangelis Rokas <vrokas AT otenet.gr>
5122
5123         * src/pic16/gen.c (pic16_popGet): case PO_DIR, adds the offset to
5124         instance,
5125         * (pushSide): commented out with #if,
5126         * (assignResultValue): fixed some typos in saving
5127         registers,
5128         * (genPcall): FIXED and sync'ed with genCall,
5129         * (genDataPointerGet,genDataPointerSet): using offset not leoffset
5130         * (genNearPointerGet): fixed to handle some more cases,
5131         implementation scheme via table reads,
5132         * (genConstPointerGet): modified to access code memory correct,
5133         * (genCodePointerGet,genNearPointerSet,genGenPointerSet): modified
5134         and improved to handle some cases
5135         * glue.c (printIvalType,printIvalChar,emitStaticSeg): use "DB"
5136         instead of "RETLW" for init data
5137         * src/pic16/ralloc.c (pic16_allocDirReg): warning when a symbol is
5138         not IN_DIRSPACE, work around to reduce bank switching when aboslute
5139         variables are placed in access bank memory (<0x80 and >=0xf80),
5140         * src/pic16/pcode.c: added SFRs TBLPTR, TABLAT, added opcodes TBLRD,
5141         TBLRD_POSTINC,TBLRD_POSTDEC,TBLRD_PREINC,TBLWT,TBLWT_POSTINC,
5142         TBLWT_POSTDEC,TBLWT_PREINC
5143         * Fixed initialisation of BSR, set "alias" for SSAVE to "0"
5144         * (pic16_emitDB,pic16_flushDB): New functions to generate "DB"
5145         directives
5146         * (pic16_pCodeConstString): use "DB" instead of "RETLW"
5147         * src/pic16/pcode.h: added TBLRD*,TBLWT*, added pic16_emitDB,
5148         pic16_flushDB, made pic16_newpCodeAsmDir public, added TBLPTR, TABLAT
5149         * src/pic16/ralloc.h: added IDX_BSR,IDX_TBLPTR*,IDX_TABLAT
5150
5151 2004-02-29  Borut Razem <borut.razem AT siol.net>
5152
5153         * src/Makefile.in, src/SDCCutil.c, support/Util/findme.c,
5154         support/Util/findme.h, support/Util/system.h: enhance binary relative
5155         search for lib and include by using findProgramPath()
5156
5157 2004-02-28 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
5158
5159         * src/SDCCpeeph.h,
5160         * src/SDCCpeeph.c (pcDistance),
5161         * src/port.h,
5162         * src/mcs51/ralloc.h,
5163         * src/mcs51/ralloc.c (mcs51_regWithIdx),
5164         * src/mcs51/main.h,
5165         * src/mcs51/main.c (instructionSize, asmLineNode, updateOpRW,
5166         mcs51opcodeCompare, asmLineNodeFromLineNode, getInstructionSize,
5167         mcs51operandCompare, getRegsRead, getRegsWritten): made instruction
5168         size calculation port specific, started basis for some register
5169         optimizations
5170         * src/mcs51/gen.c (genFunction, genEndFunction): added case to handle
5171         missing push/pop of r0/r1. Optimized push/pops
5172         * src/mcs51/ralloc.c (packregisters): fixed bug #727095
5173         * device/lib/_modsint.c (_modsint),
5174         * device/lib/_modslong.c (_modslong): fixed sign of result in non-asm
5175         and stack version so regression tests pass
5176
5177 2004-02-26 Bernhard Held <bernhard AT bernhardheld.de>
5178
5179         * src/Makefile.in (dep): include SLIBOBJS in dependency check
5180         * src/SDCCast.c (decorateType): catch another small optimization
5181         with '?' operator
5182         * src/SDCCsymt.c (computeType): added comments and cosmetic changes
5183         * src/SDCCval.c (valMult, valDiv, valMod, valPlus, valMinus, valShift):
5184         modified to finally use computeType() all over SDCC,
5185         see Feature Request #877103
5186         * src/SDCCval.h: cosmetic
5187         * src/SDCCicode.c (operandOperation): fixed EQ_OP bug, now same as in
5188         valCompare(); regression tested in muldiv.c
5189         * support/regression/tests/muldiv.c (testMod): mod sign follows
5190         dividend only
5191
5192 2004-02-23 Bernhard Held <bernhard AT bernhardheld.de>
5193
5194         * src/SDCCast.c (decorateType): fixed bug #902362
5195         * doc/INSTALL.txt: fixed install instructions for win32
5196
5197 2004-02-21 Bernhard Held <bernhard AT bernhardheld.de>
5198
5199         * device/include/Makefile.in (install): fixed by replacing spaces
5200         by tabs
5201         * doc/README.txt,
5202         * doc/INSTALL.txt: updated for release
5203         * doc/sdccman.lyx: added warning for --xstack being buggy
5204
5205 2004-02-20 Bernhard Held <bernhard AT bernhardheld.de>
5206
5207         * src/pic16/ralloc.c (packRegsForAccUse):  disabled functions with #if
5208         to eliminate build warnings.
5209         * src/pic16/gen.c (pic16_popGet): fixed for gcc 2.95.4
5210
5211 2004-02-20 Vangelis Rokas <vrokas AT otenet.gr>
5212            Hans-Juergen Dorn <hans.dorn AT apl-landau.de>
5213
5214         * doc/sdccman.lyx: removed PIC16 from PIC16 Port Specific Options,
5215         removed -penable-stack, added comment for stack pragma, added
5216         warning for not initializing the stack/frame registers, removed
5217         comment at interrupts section
5218
5219         Stack is made permanent, there is no ability to disable stack usage.
5220         * src/pic16/device.h,
5221         * src/pic16/device.c: removed all references to USE_STACK macro,
5222         * src/pic16/device.c (pic16_dump_section): when no elements in
5223         rlist, free rlist before return,
5224         * (pic16_dump_int_registers): NEW, internal registers are a new set
5225         of general purpose registers reused by each function,
5226         * (checkAddReg): returns 1 if registers is added to set,
5227         * (pic16_groupRegistersInSection): when a registers is of type
5228         PO_GPR_TEMP add it in pic16_int_regs and not in pic16_rel_udata,
5229         * src/pic16/device.h: memRange and Assigned Memory are deleted,
5230         SRCASECMP macro is moved here from device.c
5231         * src/pic16/genarith.c (pic16_pCodeOpType): added cases for
5232         PO_PCLATU, PO_PRODL, PO_PRODH,
5233         * (pic16_pCodeOpType, genMinus,
5234         changed compares to "a" register, with AOP_ACC,
5235         * (pic16_genPlus): fixed some bugs and indented properly,
5236         * (pic16_addSign): changed size to size+offset in the MOVWF
5237         instruction,
5238         * (pic16_genUMult8XLit_8): NEW, uses processor MULLW instruction to
5239         multiply 8-bit operand by literal, result is 8-bit,
5240         * (pic16_genUMult8X8_8): NEW, uses processor MULWF instruction to
5241         multiply 2 8-bit operand, result is 8-bit,
5242         * (pic16_genMult8X8_8): modified to call genUMult8X*_8 functions and not
5243         genUMult8X*_16,
5244         * src/pic16/gen.c: changed accUse to contain WREG only,
5245         * (pic16_emitcomment): renamed to pic16_emitpcomment,
5246         * (aopForSym): allocated dir register when IN_DIRSPACE(space) is,
5247         true, do not use immediate addressing any more unless sym is a
5248         pointer in codespace,
5249         * (aopForRemat): do not use immediate addressing when symbol not in
5250         codespace and when symbol's address is requested,
5251         * (aopOp): for-loop in if(sym->accUse) is modified for the new
5252         accUse size (= 1),
5253         * (aopGet): added case for AOP_ACC and don't return "accumulator
5254         bug" but WREG instead,
5255         * (popGetTempReg): pushes contents of temporary register in stack,
5256         * (popReleaseTempReg): pops contents of temporary register from
5257         stack. Use popGetTempReg/popReleaseTempReg in aligned pairs,
5258         * (pic16_popGet): separated case AOP_ACC to return register WREG
5259         from processor registers, AOP_PCODE not checks if pcop is PO_DIR
5260         or PO_IMMEDIATE and initializes their instance/offset appropriately,
5261         * The whole issue with aopForSym,aopForRemat,popGet) is to minimize
5262         the use of immediate pointers to certain cases only.
5263
5264         * (pic16_pushpCodeOpReg, pic16_poppCodeOpReg): use pic16_popGet2p,
5265         * (pic16_loadFromReturn, pic16_storeForReturn: NEW,
5266         * (assignResultValue, genCall, genRet): modified to use the new
5267         function return value scheme with WREG,PRODL,PRODH,FSR0L and FSR0,
5268         genPcall is still broken,
5269         * (genFunction): added code to create 'A' type pBlocks when
5270         interrupt functions are generated, code not extensively tested yet,
5271         ISRs push WREG,STATUS,BSR,PRODL,PRODH,FSR0L,FSR0H registers on stack,
5272         * (genEndFunction): modified so ISRs pop stored registers from stack,
5273         * (genMultOneByte): cleanup,
5274         * (AccRsh): added flag andmask, to and result with appropriate mask,
5275         * (genUnpackBits,genPackBits): fixed and can handle bit fields,
5276         * (genDataPointerGet): fixed and reenabled its use,
5277         * (genNearDataPointerGet): bugs fixed,
5278         * (genDataPointerSet): bugs fixed,
5279         * src/pic16/genutils.c: added functions pic16_DumpValue,pic16_DumpAop,
5280         pic16_DumpSymbol, pic16_DumpOp,
5281         * src/pic16/genutils.h: function prototypes for the above functions,
5282         * src/pic16/glue.c: new flags initsfpnt, to initialize stack/frame
5283         pointers,
5284         * (pic16emitRegularMap): many many many improvements, but needs a
5285         major cleanup,
5286         * src/pic16/main.c: enable_stack in pic16_options is removed,
5287         * (_pic16_parseOptions): removed command line options -penable-stack,
5288         * (_process_pragma): emit stack symbol only when stack pragma is
5289         processed,
5290         * src/pic16/pcode.c: pic16_pc_fsr0 is removed, all operations are
5291         redirected to FSR0L/FSR0H pair,
5292         * (pic16_get_op, pic16_get_op2): modifications and improvements,
5293         * (pic16_getRegFromInstruction, pic16_getRegFromInstruction2): added
5294         cases PO_PRODL,PO_PRODH, pic16_getRegFromInstruction2 returns sane
5295         for immediates,
5296         * (insertBankSwitch): modified to handle cases like: (alfa + 1)
5297         * (dumpPicOptype): NEW,
5298         * src/pic16/pcode.h: added PO_PCLATU,PO_PRODL,PO_PRODH in enum,
5299         * src/pic16/pcoderegs.c (pCodeRegMapLiveRangesInFlow): fixed bug
5300         with movff instruction,
5301         * src/pic16/ralloc.c: renamed typeRegWithIdx to pic16_typeRegWithIdx,
5302         added pic16_int_regs, some packRegsFor* functions are commented out,
5303         because produce errors,
5304         * src/pic16/NOTES: minor modifications
5305
5306 2004-02-18  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
5307
5308         * as/mcs51/aslink.h, as/mcs51/lkarea.c, as/mcs51/lkdata.c, as/mcs51/lkmain.c,
5309         as/mcs51/lkmem.c, src/SDCCglob.h, src/SDCCmain.c: added options --stack-size and
5310         --pack-iram.
5311         * doc/sdccman.lyx: described options --stack-size and --pack-iram.
5312         * as/mcs51/lkaomf51.c: fixed bug #895763
5313
5314 2004-02-17 Bernhard Held <bernhard AT bernhardheld.de>
5315
5316         * device/include/c8051f320.h: added. Contributed by Maarten Brock.
5317
5318 2004-02-17 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
5319
5320         * doc/sdccman.lyx: added details about the HC08 storage classes and
5321         interrupts, fixed the register usage info for z80 & gbz80
5322
5323 2004-02-17 Vangelis Rokas <vrokas AT otenet.gr>
5324
5325         * doc/sdccman.lyx: added more pic16 port documentation
5326         * device/include/pic16/: added header pic18fregs.h
5327
5328 2004-02-16 Bernhard Held <bernhard AT bernhardheld.de>
5329
5330         * doc/sdccman.lyx: added Vangelis' contribution
5331
5332 2004-02-16 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
5333
5334         * src/SDCClrange.c (rlivePoint): live range of SEND operand should
5335         extend to the next CALL or PCALL, not just to the next CALL.
5336
5337 2004-02-16 Vangelis Rokas <vrokas AT otenet.gr>
5338
5339         * src/pic16/gen.c (genInline): fixed bug #896482 with inline assembly
5340
5341 2004-02-15 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
5342
5343         * src/mcs51/ralloc.c (packRegsForAssign, reassignAliasedSym): fixed
5344         bug #895752 and a better fix for bug #716790
5345
5346 2004-02-15 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
5347
5348         * src/SDCCsymt.c (processFuncArgs): fixed bug #896796
5349
5350 2004-02-14 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
5351
5352         * doc/sdccman.lyx: minor changes, minor changed
5353
5354 2004-02-13 Bernhard Held <bernhard AT bernhardheld.de>
5355
5356         * src/SDCCicode.c (usualBinaryConversions): removed pic16 from ports
5357         which can't handle SDCC_NEWONEBYTEOPS,
5358         (geniCodeMultiply): removed conversion from mult to shift for pic14
5359         and pic16
5360
5361 2004-02-12 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
5362
5363         * src/hc08/gen.h,
5364         * src/hc08/gen.c (storeRegToAop, aopOp, aopAdrStr, accopWithAop,
5365         rmwWithAop): Ported my 2003-10-02 fix for bug #663539 to the hc08,
5366         thus fixing bug #895406
5367
5368 2004-02-11 Bernhard Held <bernhard AT bernhardheld.de>
5369
5370         * device/lib/_modsint.c,
5371         * device/lib/_modslong.c: sign follows divisor only
5372         * src/hc08/gen.c (genMultOneByte): if result size is 1,
5373         signs or signedness can be ignored
5374         * src/SDCCast.c (addCast): cosmetic - added lineno to CAST
5375         * src/SDCCast.c (resultTypePropagate): added even more ops: +, - and *,
5376         added optimization for IFX,
5377         (decorateType): Mult/Div/ModOneByte ops can handle all kind of signed
5378         arguments;
5379         reenabled optimization for IFX, which was removed on 2004-01-11
5380         * src/SDCCast.h: added return type IFX
5381         * src/SDCCicode.c: Mult/Div/ModOneByte ops can handle all kind of signed
5382         arguments with 8 or 16 bit results; pic14 and pic16 ports use old
5383         promotion behaviour; env. var. SDCC_NEWONEBYTEOPS selects the new,
5384         SDCC_OLDONEBYTEOPS selects the old behaviour
5385         * src/SDCCsymt.c (computeType): type2 can be NULL (for LEFT_OP);
5386         changed again and commented promotion rule
5387         * src/SDCCval.c (valDiv): promotion no longer necessary
5388         * src/ds390/gen.c (genMultOneByte) (genDivOneByte) (genModOneByte),
5389         * src/mcs51/gen.c (genMultOneByte) (genDivOneByte) (genModOneByte):
5390         rewritten
5391         * support/regression/tests/onebyte.c: added
5392
5393 2004-02-11 Vangelis Rokas <vrokas AT otenet.gr>
5394
5395         * gen.c (genInline): reverted to old code for assemnling inline
5396         code because of bug reported James Chadd
5397
5398 2004-02-10 Vangelis Rokas <vrokas AT otenet.gr>
5399
5400         * ralloc.h: missing declarations from previous patch,
5401         seems that patch for ralloc.h was never applied, fixed
5402
5403 2004-02-10 Hans-Juergen Dorn <hans.dorn AT apl-landau.de>
5404            patch committed by Vangelis Rokas <vrokas AT otenet.gr>
5405
5406         * pcode.c,
5407         * pcode.h,
5408         * ralloc.h: added FSR0L, FSR0H and other missing PIC16 SFR's for
5409         indirect addressing. Marked FSR0 as deprecated
5410         * gen.c (pointerCode): commented out, not needed now
5411         (pic16_popGet2p): new MOVFF helper function
5412         (genGenPointerGet),
5413         (genGenPointerSet): reimplemented with MOVFF and POSTINC0
5414         (shiftRLong): removed duplicate debugging info
5415
5416 2004-02-10 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
5417
5418         * src/ds390/gen.c (genNearPointerGet),
5419         * src/mcs51/gen.c (genNearPointerGet): allow the genDataPointerGet()
5420         optimization with bits, but not bitfields.
5421         * src/ds390/ralloc.c (packRegisters),
5422         * src/mcs51/ralloc.c (packRegisters): fixed bug #884453 & #880832
5423
5424 2004-02-09 Bernhard Held <bernhard AT bernhardheld.de>
5425
5426         * src/SDCCcse.c (algebraicOpts): copy operands before modification
5427
5428 2004-02-09 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
5429
5430         * src/SDCCsymt.h,
5431         * src/SDCCicode.c (operandFromSymbol),
5432         * src/mcs51/ralloc.c (verifyRegsAssigned, serialRegAssign),
5433         * src/ds390/ralloc.c (verifyRegsAssigned, serialRegAssign),
5434         * src/z80/ralloc.c (verifyRegsAssigned, serialRegAssign),
5435         * src/hc08/ralloc.c (verifyRegsAssigned, serialRegAssign),
5436         * src/pic/ralloc.c (verifyRegsAssigned, serialRegAssign),
5437         * src/pic16/ralloc.c (verifyRegsAssigned, serialRegAssign): fixed
5438         bug #892038
5439         * src/SDCCast.c (createIvalStruct, createIvalArray, gatherAutoInit),
5440         * src/SDCCglue.c (emitRegularMap, printIvalStruct, printIvalArray,
5441         printIvalCharPtr, printIvalPtr, printIval, emitStaticSeg, emitOverlay)
5442         * src/SDCCsymt.c (newSymbol),
5443         * src/SDCC.y (struct_or_union_specifier, enum_specifier,
5444         enumerator_list),
5445         * src/SDCCval.h,
5446         * src/SDCCval.c (newiList): fixed bug #885705
5447
5448 2004-02-08  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
5449
5450         * doc/sdccman.lyx: added section 3.1.4: sdcclib.
5451         * as/mcs51/lkmem.c: report the size of the stack in .mem file.
5452
5453 2004-02-08 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
5454
5455         * device/include/c8051f120.h,
5456         * device/include/c8051f300.h,
5457         * device/include/c8051f310.h: added/updated header files for Silicon
5458         Laboratories (formerly Cygnal) CPUs. Contributed by Maarten Brock.
5459         * doc/sdccman.lyx: minor changes, recommended diff -Naur and diff -u
5460         in new section Submitting patches
5461
5462 2004-02-08 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
5463
5464         * src/mcs51/gen.c (genNearPointerGet, genPagedPointerGet,
5465         genFarPointerGet, genCodePointerGet, genGenPointerGet,
5466         genNearPointerSet, genPagedPointerSet, genFarPointerSet,
5467         genGenPointerSet),
5468         * src/ds390/gen.c (genNearPointerGet, genPagedPointerGet,
5469         genFarPointerGet, genCodePointerGet, genGenPointerGet,
5470         genNearPointerSet, genPagedPointerSet, genFarPointerSet,
5471         genGenPointerSet),
5472         * src/pic16/gen.c (genNearPointerGet, genPagedPointerGet,
5473         genFarPointerGet, genCodePointerGet, genGenPointerGet,
5474         genNearPointerSet, genPagedPointerSet, genFarPointerSet,
5475         genGenPointerSet),
5476         * src/pic/gen.c (genNearPointerGet, genPagedPointerGet,
5477         genFarPointerGet, genCodePointerGet, genGenPointerGet,
5478         genNearPointerSet, genPagedPointerSet, genFarPointerSet,
5479         genGenPointerSet): fixed bug #892400
5480         * src/pic16/gen.c (genSkipz, AccRol): disabled functions with #if 0
5481         to eliminate build warnings.
5482         * src/SDCCast.c (processParms),
5483         * src/SDCC.y (function_declarator2, declarator2_function_attributes):
5484         fixed bug 751859
5485         * support/valdiag/valdiag.py: added GCC to the list of defines active
5486         when compiling with gcc
5487
5488 2004-02-07 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
5489
5490         * support/Util/SDCCerr.h,
5491         * support/Util/SDCCerr.c,
5492         * src/SDCCast.c (decorateType, sizeofOp): complain when sizeof is used
5493         with an incomplete type (fixed bug #883734)
5494         * src/SDCCicode.c (geniCodeCast): fixed bug #890510
5495
5496 2004-02-07 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
5497
5498         * src/pic16/gen.c (genCmpEq, shiftRLong): fixed declarations
5499
5500 2004-02-06 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
5501
5502         * src/SDCCast.c (decorateType),
5503         * src/SDCCicode.c (geniCodeParms, geniCodeCall): fixed bugs in my ANSI
5504         function pointer implementation
5505         * support/regression/tests/funptrs.c: added tests to verify both forms
5506         of function pointers work correctly. Added tests to verify parameters
5507         are passed in the correct order.
5508
5509 2004-02-06  Vangelis Rokas <vrokas AT otenet.gr>
5510
5511         * device.c (regCompare): registers are sorted by ascending
5512         address and increasing size,
5513         * main.c (_pic16_finaliseOptions): removed the declaration
5514         of compiler macro MCU. Now a macro of the format pic18fxxxx
5515         will be defined from the command line
5516
5517 2004-02-06  Hans-Juergen Dorn <hans.dorn AT apl-landau.de>
5518             patch committed by Vangelis Rokas <vrokas AT otenet.gr>
5519
5520         * pcode.c (pic16initMnemonics): fixed typo in assignment to PCOP_RLNCF
5521         PCOP_RLCF was overwritten!
5522         * gen.c (genSkip): commented out calls to pic16_emitcode,
5523         * (genCmpEQ): fixed "long" compares, only high word did get compared,
5524         * (genlshTwo),
5525         * (genRRC): added debugging info,
5526         * (shiftL2Left2Result): Fixed bug, if offr > offl. Result got
5527         overwritten while shifting,
5528         * (shiftR2Left2Result): Fixed bug, if offr < offl. Result got
5529         overwritten while shifting,
5530         * (AccLsh),
5531         * (AccRsh),
5532         * (shiftLLeftOrResult),
5533         * (shiftRLeftOrResult),
5534         * (shiftRLong),
5535         * (shiftLLong): Implemented with pic16_emitpcode
5536         * (genlshFour): Replaced pic16_aopPut with pic16_emitpcode,
5537         * (genLeftShift): Fixed bug, operand for shift by variable always
5538         was "and"ed with 0x0f,
5539         * (genLeftShiftLiteral),
5540         * (genrshTwo),
5541         * (genRightShiftLiteral): added debugging info,
5542         * (genrshFour): added comment,
5543         * (genRightShift): determined signedness from operand "left"
5544         instead of "result"
5545
5546 2004-02-04 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
5547
5548         * src/SDCCicode.c (geniCodeParms),
5549         * src/SDCCast.c (decorateType, processParms): support for ANSI-style
5550         function pointers, fixed function pointer bugs #861242 and #861896
5551
5552 2004-01-31 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
5553
5554         * device/include/c8051f000.h,
5555         * device/include/c8051f120.h,
5556         * device/include/c8051f300.h: added header files for Silicon
5557         Laboratories (formerly Cygnal) CPUs. Contributed by Maarten Brock.
5558
5559 2004-01-31 Bernhard Held <bernhard AT bernhardheld.de>
5560
5561         * src/SDCCast.c (processParams): added new type flow and restructured
5562         (gatherAutoInit): added new type flow
5563         (addCast): cosmetic changes
5564         (getLeftResultType): added new type flow for array indices, patch
5565         provided by Stas, see FR #877103
5566         (decorateType): SDCC_NEWTYPEFLOW removed, new type flow is now standard;
5567         array index patch by Stas
5568         * src/SDCCast.h: added prototype getResultTypeFromType()
5569         * src/SDCCval.h,
5570         * src/SDCCval.c (resolveIvalSym) (resolveIvalSym),
5571         * src/pic/glue.c (pic14emitStaticSeg),
5572         * src/pic16/glue.c (pic16emitStaticSeg),
5573         * src/SDCCglue.c (emitRegularMap) (emitStaticSeg): added new type flow
5574         for initialization of symbols
5575         * src/SDCCicode.c (geniCodeArray): removed warning W_ARRAY_BOUND
5576         * support/Util/SDCCerr.h:
5577         * support/Util/SDCCerr.c: replaced W_ARRAY_BOUND by W_IDX_OUT_OF_BOUNDS
5578         * .version: bumped version number to 2.3.8
5579         * device/include/Makefile.in (install),
5580         * doc/Makefile (install): changed to 'rm `find ...`' construct to
5581         avoid warnings
5582
5583 2004-01-30 Bernhard Held <bernhard AT bernhardheld.de>
5584
5585         * support/regression/tests/libmullong.c: fixed for 64 bit hosts
5586         Slade Rich fixed an optimization bug
5587         * src/pic/pcodepeep.c,
5588         * src/pic/pcoderegs.c
5589         * doc/Makefile (install): added test for directory
5590
5591 2004-01-30 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
5592
5593         * src/mcs51/ralloc.c (getRegPtr, getRegGpr),
5594         * src/ds390/ralloc.c (getRegPtr, getRegGpr),
5595         * src/pic/ralloc.c (getRegPtr, getRegGpr),
5596         * src/pic16/ralloc.c (getRegPtr, getRegGpr),
5597         * src/z80/ralloc.c (getRegGpr): fixed bug #883361
5598         * as/mcs51/asexpr.c (term),
5599         * as/hc08/asexpr.c (term): fixed bug #887146
5600
5601 2004-01-29 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
5602
5603         * src/z80/gen.c (genMult): handle single byte result product
5604         * src/SDCCopt.c (killDeadCode): never convert ADDRESS_OF iCode to
5605         DUMMY_READ_VOLATILE (fixed bug #886367)
5606
5607 2004-01-27 Bernhard Held <bernhard AT bernhardheld.de>
5608
5609         * support/regression/tests/libmullong.c: fixed logic, on little endian
5610         hosts we ended without a mullong_wrapper()
5611
5612 2004-01-27 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
5613
5614         * ChangeLog: changed "@" to " AT " in hopes of reducing spam and
5615         virus/worm forged address usage.
5616
5617 2004-01-27 Bernhard Held <bernhard AT bernhardheld.de>
5618
5619         Fixed promotion, it should be done on AST level:
5620         * src/SDCCast.c (addCast): added promotion to int
5621         (decorateType): updated call to upCast()
5622         * src/SDCCicode.c (geniCodeLeftShift): removed call to
5623         usualUnaryConversions()
5624
5625 2004-01-26  Michael Hope  <michaelh AT juju.net.nz>
5626
5627         * support/regression/tests/literalop.c (mulWrapper): Added a
5628         wrapper to remove integer overflow warnings.
5629
5630         * support/regression/tests/float_trans.c: Made work on host.
5631
5632         * support/regression/ports/ucz80/spec.mk (UCZ80): Made detect the
5633         location of sz80.
5634
5635         * support/regression/generate-cases.py (main): Changed from inline
5636         to a main method.
5637
5638         * doc/Makefile (install): Changed to depth first to get rid of
5639         missing directory install warning.
5640
5641         * as/Makefile (install-doc): Made work on Mac.
5642
5643 2004-01-25 Bernhard Held <bernhard AT bernhardheld.de>
5644
5645         * src/SDCCast.c: added an additional type flow in decorateType() of
5646         opposite direction, see feature request #860006; it's enabled at runtime
5647         by setting the environment variable SDCC_NEWTYPEFLOW
5648         * src/SDCCast.h: changed prototype of decorateType()
5649         * src/SDCCglue.c (emitRegularMap): updated call of decorateType()
5650         * src/SDCCicode.c (geniCodeDivision) (geniCodeModulus): promotion from
5651         'char' to 'int' can be omitted, if both operands are 'unsigned char';
5652         see feature request #877103
5653         * src/SDCCval.c: updated call of decorateType()
5654         (valBitwise): fixed bug #882876
5655         (valMinus): added promotion
5656         (valLogicAndOr): result is unsigned
5657         (cheapestVal) (constVal): literals from 0...255 are 'unsigned char' now
5658         * src/SDCCsymt.c (computeType),
5659         * src/mcs51/gen.c (genCmpGt) (genCmpLt): literal 'unsigned char'
5660         must not cause an unsigned operation
5661         * src/pic/glue (pic14emitRegularMap),
5662         * src/pic16/glue.c (pic16emitRegularMap): updated call of decorateType()
5663
5664 2004-01-23 Bernhard Held <bernhard AT bernhardheld.de>
5665
5666         * src/pic/pcode.c (PCodeID): commented out left over debug code
5667
5668 2004-01-20 Bernhard Held <bernhard AT bernhardheld.de>
5669
5670         * support/valdiag/tests/overflow.c: added shift tests
5671         * src/pic/device.c,
5672         * src/pic/gen.c,
5673         * src/pic/gen.h,
5674         * src/pic/glue.c,
5675         * src/pic/main.c,
5676         * src/pic/pcode.c,
5677         * src/pic/pcode.h,
5678         * src/pic/pcodepeep.c,
5679         * src/pic/pcoderegs.c,
5680         * src/pic/ralloc.c,
5681         * src/pic/ralloc.h: applied patch from Slade Rich;
5682         added support for multiple code pages and multiple RAM banks on the
5683         PIC 14 port. The ASM files now no longer simply assume all the
5684         code / RAM are in the same page / bank. This means the linker can
5685         safely allocate code/RAM of separate ASM files to different pages/banks.
5686         * doc/sdccman.lyx: added Slade's tips
5687         * src/mcs51/peeph.def: fixed bug #880768
5688
5689 2004-01-20 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
5690
5691         * src/hc08/ralloc.c (rematStr): fixed bug #879282
5692         * src/SDCCast.c (decorateType): fixed bug #880197
5693
5694 2004-01-20  Michael Hope  <michaelh AT juju.net.nz>
5695
5696         * sim/ucsim/gui.src/serio.src/main.cc: Fixed unconditional use of
5697         getopt.h.
5698
5699         * debugger/mcs51/cmd.c (getValBasic): Changed strtof to strtod as
5700         strtof is not part of C89 and isn't included with Mac OS X.
5701
5702 2004-01-20 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
5703
5704         * src/hc08/gen.c (genPlusIncr, genUminus, genMinusDec, genCmp,
5705         shiftL2Left2Result): fixed bug #879326
5706         (genAnd, genOr, genXor): fixed bug when result was of type AOP_CRY
5707         (genMultOneByte): fixed bug in signed vs unsigned multiplication
5708         * sim/ucsim/hc08.src/inst.cc (inst_clr): added missing effective
5709         address fetch for clr instruction
5710         * device/lib/hc08/_mulint.c: created optimized assembly version
5711         * src/SDCCdflow.c (computeDataFlow): fixed bug #878209
5712
5713 2004-01-19 Bernhard Held <bernhard AT bernhardheld.de>
5714
5715         * src/SDCCicode.c (geniCodeArray): applied patch from Stas Sergeev
5716         proposed in FR #877103
5717
5718 2004-01-18 Bernhard Held <bernhard AT bernhardheld.de>
5719
5720         * src/SDCCval.c (cheapestVal): added missing checks
5721         * src/SDCCicode.c (usualBinaryConversions): fixed condition
5722         * src/SDCCicode.c (geniCodeAdd): fixed part of bug #877103
5723
5724 2004-01-16 Klaus Flittner <klaus_flittner AT gmx.de>
5725
5726         * src/ds390/gen.c (aopOp3): fixed the assignment of different dptrs to
5727         equal operands
5728
5729 2004-01-16 Vangelis Rokas <vrokas AT otenet.gr>
5730
5731         * src/SDCCmain.c (linkEdit): variable $3 of the linker command is
5732         loaded with the linker search paths (-L arguments) and the libraries
5733         to be linked with the current source (-l arguments). Changes
5734         currently will affect only the pic16 port.
5735         * src/pic16/main.c (_pic16_finaliseOptions): add to the linker
5736         include path the port specific paths and port specific libraries,
5737         * gplink command now contains the $3 argument,
5738         * src/pic16/device.h,
5739         * src/pic16/device.c,: structure PIC_device is made public and
5740         renamed to PIC16_device, the same for variable Pics which is renamed
5741         to Pics16. Updated all references to them.
5742         * src/pic16/glue.c (pic16glue): corrected bug with code
5743         initialization which bypassed the variable initializations block.
5744
5745         * device/lib/pic16/Makefile.rules: removed --penable-stack from
5746         COMPILE_FLAGS and added the --nostdinc option
5747
5748 2004-01-15 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
5749
5750         * device/include/mc68hc908jb8.h: Register defs for another member
5751         of the hc08 family. Contributed by Bjorn Bringert - thanks!
5752
5753 2004-01-14 Vangelis Rokas <vrokas AT otenet.gr>
5754
5755         Documenting changes from previous commits.
5756         * configure.in (version 1.56),
5757         * configure: initially I've added AC_CONFIG_SUBDIRS(device/lib/pic16)
5758         when generating output files to configure the pic16 library,
5759         but now I've commented it out, since gputils aren't installed in the
5760         SF compile farm, so library won't compile
5761
5762         * device/lib/Makefile.in (version 1.56): initially I've added in
5763         target 'all' the prerequestive 'model-pic16' so it compiled the
5764         pic16 library, but now I've commented it out for the same reasons
5765         above,
5766         * added targets 'model-pic16' and 'objects-pic16' to compile the
5767         library
5768         * added target 'port-specific-objects-pic16' to handle the
5769         generated libraries and copy them into the build/ directory
5770         * added target 'clean-intermediate-pic16' to clean intermediate
5771         files into pic16 directory
5772         * in target 'installdirs' added line to create directory pic16 in
5773         the installation path
5774
5775         * device/include/Makefile.in (version 1.11): in target 'install'
5776         added lines to copy all header files to installation path,
5777         * in target 'installdirs' added line create directory for pic16
5778         headers in the installation path
5779
5780 2004-01-13 Klaus Flittner <klaus_flittner AT gmx.de>
5781
5782         * src/ds390/gen.c (genCall): fixed a double use of acc and b after
5783          a function call
5784
5785 2004-01-13 Bernhard Held <bernhard AT bernhardheld.de>
5786
5787         * configure,
5788         * device/lib/configure.in,
5789         * device/lib/configure: fixed for autoconf 2.57
5790
5791 2004-01-13 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
5792
5793         * src/z80/main.c (_parseOptions): fixed the portmode= command line
5794         option so that it actually works. Made it specific to the z80, since
5795         the gbz80 doesn't have these kinds of I/O ports.
5796
5797 2004-01-13 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
5798
5799         * device/include/z180.h,
5800         * device/lib/_memcpy.c,
5801         * device/lib/_memmove.c,
5802         * device/lib/_mulint.c,
5803         * device/lib/ser_ir.c,
5804         * device/lib/ser_ir_cts_rts.c,
5805         * device/lib/_strcmp.c,
5806         * device/lib/_strtok.c: fixed pragmas to non-deprecated form
5807         * src/z80/main.c (_process_pragma): add support for pragmas bank and
5808         portmode; added deprecation warning for bank= and protmode= forms.
5809         Also, guard against buffer overflow.
5810         * src/z80/gen.c (aopGet): generate better code for sfr banked read
5811
5812 2004-01-13 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
5813
5814         * src/hc08/main.c (_hc08_genAssemblerPreamble): fixed bug #875487. Also
5815         changed interrupt vector table generation to only emit declared vectors.
5816         * device/include/Makefile.in: added missing backslash
5817         * device/lib/pic16/Makefile.rules: add $(MODELFLAGS) to $(CFLAGS)
5818
5819 2004-01-13 Vangelis Rokas <vrokas AT otenet.gr>
5820
5821         Mainly changes to support compilation of the device libraries
5822         * src/pic16/device.c: stack is allocated via symbol and not
5823         via literal number. The symbol is placed in the corresponding
5824         position of the data ram
5825         * (pic16_dump_section): relocatable and absolute uninitialized
5826         data are now emitted in sorted order to reduce section naming,
5827         * src/pic16/ralloc.c (newReg): fixed bug with SFR's that
5828         weren't marked as being in the access bank,
5829
5830 2004-01-13 Vangelis Rokas <vrokas AT otenet.gr>
5831
5832         Added portion of GNU PIC Library under the directory
5833         device/include/pic16 and device/lib/pic16. These files
5834         contain the declarations of SFRs for the PIC18Fxx2 devices.
5835         The directory is initialized via configure from toplevel.
5836
5837 2004-01-12 Klaus Flittner <klaus_flittner AT gmx.de>
5838
5839         * src/ds390/gen.c (operandsEqu): fixed a little typo, that prevented
5840         the spilllocations to be compared correctly
5841
5842 2004-01-12 Bernhard Held <bernhard AT bernhardheld.de>
5843
5844         * src/SDCCast.c (decorateType): fixed bug introduced today
5845
5846 2004-01-12  Borut Razem <borut.razem AT siol.net>
5847
5848         * src/SDCC.lex, support/Util/SDCCerr.h, support/Util/SDCCerr.c,
5849         doc/sdccman.lyx: upper case pragmas are deprecated
5850
5851 2004-01-12 Bernhard Held <bernhard AT bernhardheld.de>
5852
5853         * src/SDCCast.c (decorateType): replacing 'ul > 0' by  '!ul' results
5854         in simpler and even better code
5855
5856 2004-01-11 Bernhard Held <bernhard AT bernhardheld.de>
5857
5858         * src/SDCCicode.c (operandOperation): fixed bug #874819
5859         * src/SDCCast.c (decorateType): fixed
5860         char foo (unsigned long ul) { return ul > 0; }
5861
5862 2004-01-11 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
5863
5864         * doc/sdccman.lyx: Moved and added some sections, small changes
5865         all over. Telling LaTeX to be less strict with word spacing
5866         to better keep the right margin. Changed some notes about
5867         maintainance of the ports in section 3.2.1 - is it OK like this?
5868
5869 2004-01-11 Vangelis Rokas <vrokas AT otenet.gr>
5870
5871         SDCC source changes:
5872         * src/SDCCopt.c (cntToFcall, cnvToFloatCast, cnvFromFloatCast,
5873         convilong): modified to inform the pic16 port that builtin functions
5874         are external
5875
5876         PIC16 PORT specific changes:
5877         * src/pic16/device.c pic16_dump_equates() added,
5878         processor registers declared internally by the port are emitted in
5879         the translation as equates,
5880         * src/pic16/gen.c: inline code is passed unprocessed to the
5881         translation,
5882         * (pic16_popGetLit2): fnuction modified to take second operand as
5883         pCodeOp pointer and not as literal,
5884         * (popRegFromIdx): prefixed with pic16_,
5885         * (pic16_popCombine2): modified to receive already allocated pCode
5886         operands,
5887         * (pic16_pushpCodeOpReg, pic16_poppCodeOpReg): added
5888         * (genFunction): initializes local stack frame and pushes on stack
5889         all the registers used by this function,
5890         * (genEndFunction): restores all registers from stack and restores
5891         stack frame,
5892         * src/pic16/glue.c (pic16emitRegularMap): various changes and
5893         improvements,
5894         * (pic16glue): changed the program startup sequence,
5895         * added new dbName code 'A' for functions placed in absolute section
5896         * src/pic16/main.c: added function attribute _naked,
5897         * added pragma 'code' to place a fnuction at an absolute address,
5898         * added command line arguments --debug-ralloc and --pcode-verbose,
5899         * (_pic16_finiliseOptions): options.all_callee_saves is set by default
5900         * src/pic16/pcode.c (pic16_pBlockConvert2Absolute) added,
5901         * (pic16_newpCodeOpLit2): modified to take the second operand as
5902         pCodeOp pointer,
5903         * (pic16_printpBlock): modified to emit each function in a separate
5904         section,
5905         * (pic16_get_op): modified to use the gpasm modifiers LOW,HIGH and
5906         UPPER for immediate operands,
5907         * src/pic16/pcodepeeph.c: added peephole support for the LFSR
5908         instruction,
5909         * src/pic16/peeph.def: all peepholes with movff are commented out,
5910         because there is a problem in the pcode peep optimizer,
5911         * src/pic16/ralloc.c: the register allocator can now reuse local
5912         function symbols for another function. This saves register usage.
5913         * src/pic16/ralloc.h: added flag isLocal in structure regs,
5914
5915         Added file src/pic16/NOTES with information about program writing on
5916         the current port version.
5917
5918 2004-01-11 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
5919
5920         * src/mcs51/peephole.def: added peepholes 177.c,d (redundant moves)
5921         and peephole 252 (array access)
5922
5923 2004-01-09  Borut Razem <borut.razem AT siol.net>
5924
5925         * src/SDCCmain.c : fixed #872250: -l command line defined library
5926           files are scanned before standard library files
5927
5928 2004-01-10 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
5929
5930         * src/SDCCast.c (decorateType): fixed bug #874046
5931
5932 2004-01-09  Borut Razem <borut.razem AT siol.net>
5933
5934         * support/scripts/sdcc.nsi: remove previous installation
5935
5936 2004-01-09 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
5937
5938         * src/SDCCglue.c (createInterruptVect): don't append 7(5) padding
5939         bytes for last interrupt vector (mcs51)
5940         * sdcc.spec: fixed typo
5941
5942 2004-01-09 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
5943
5944         * src/mcs51/gen.c (genFunction, genEndFunction, genReceive, getTempRegs,
5945         gen51Code): more efficient parameter receive for --model-large
5946         ("bug" #845294)
5947
5948 2004-01-09 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
5949
5950         * src/ds390/main.c,
5951         * src/z80/main.c: added missed needLinkerScript flags (more than
5952         one port structure defined in these file)
5953         * src/ds390/gen.c (aopForSym, aopOp, operandsEqu, aopOp3): fixed
5954         bug #795325
5955
5956 2004-01-08 Vangelis Rokas <vrokas AT otenet.gr>
5957
5958         * src/SDCCmain.c: removed various references to DEFAULT_PORT
5959         * src/port.h: added flag needLinkerScript in port->linker
5960         structure to inform whether to create a .lnk file or not,
5961         * src/avr/main.c,
5962         * src/ds390/main.c,
5963         * src/hc08/main.c,
5964         * src/mcs51/main.c,
5965         * src/pic/main.c,
5966         * src/pic16/main.c,
5967         * src/xa51/main.c,
5968         * src/z80/main.c: changed appropriately to configure
5969         needLinkerScript flag
5970         * src/pic/gen.c,
5971         * src/pic16/gen.c (genAddrOf): fixed bug #863624
5972         * src/pic/glue.c: added variable udata_section_name to
5973         override default uninitialized data segment definition for
5974         devices only with SHAREBANK memory (reported from Erik Epetrich)
5975         * (pic14emitOverlay): modified to emit a commented overlay segment
5976         directive when no overlay data exist
5977         * (picglue): modified to emit uninitialized data segment
5978         according to udata_section_name
5979         * src/pic/main.c (_pic14_parseOptions): added command line
5980         options --udata-section-name=[name] to override default
5981         udata definition name
5982         * modified _linkCmd and _asmCmd to include compiler passed
5983         arguments via -W option
5984         * src/pic16/main.c: added $l in _asmCmd, changed extension for
5985         object file from '.rel' to '.o' in port->linker structure,
5986         changed size of fptr from 2 to 3 in port structure
5987
5988 2004-01-07  Borut Razem <borut.razem AT siol.net>
5989
5990         * support/scripts/sdcc.nsi: update PATH
5991         * support/scripts/sdcc.ico: craeted
5992
5993 2004-01-07 Bernhard Held <bernhard AT bernhardheld.de>
5994
5995         * device/include/Makefile.in: fix install
5996         * doc/Makefile: fix install
5997
5998 2004-01-07 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
5999
6000         * src/SDCCsymt.c (processFuncArgs): fixed superflous allocation noted
6001         in bug #860505
6002         * src/SDCCmem.c (printAllocInfoSeg, printAllocInfo): minor changes to
6003         how the function variable allocation summary is displayed; also
6004         include information about variables allocated to the overlay
6005         segment
6006
6007 2004-01-06  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
6008
6009         * as/mcs51/lkmain.c: Help about -Y option
6010         * as/mcs51/lkarea.c: Fixed gcc warnings
6011
6012 2004-01-06 Bernhard Held <bernhard AT bernhardheld.de>
6013
6014         * src/SDCCval.c (valShift): changed from 16 to 32 bit shift count,
6015         fixed warning
6016         * support/valdiag/tests/overflow.c: added
6017         * src/SDCCast.c (decorateType),
6018         * src/SDCCicode.c (geniCodeLeftShift): added promotion to int for
6019         LEFT_OP (left shift)
6020
6021 2004-01-06  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
6022
6023         * as/mcs51/lkmain.c: stack must be after data when option -Y is not used
6024         (default behaviour).
6025
6026 2004-01-06 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
6027
6028         A python script to validate compiler diagnostic messages. It can be
6029         used to verify that sdcc complains about bad c source code and
6030         gives a good location of the error.
6031         * support/valdiag/Makefile,
6032         * support/valdiag/valdiag.py,
6033         * support/valdiag/tests/*
6034
6035 2004-01-06 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
6036
6037         * src/SDCC.y (enum_specifier, enumerator_list, opt_assign_expr),
6038         * src/SDCCsymt.c (newEnumType),
6039         * src/SDCCsymt.h
6040         * support/Util/SDCCerr.c,
6041         * support/Util/SDCCerr.h: fixed bug #871258 and some other unreported
6042         enum related bugs.
6043         * support/regression/tests/enum.c: added test for enum values that
6044         require at least 2 bytes of storage.
6045
6046 2004-01-06 Vangelis Rokas <vrokas AT otenet.gr>
6047
6048         * src/common.h: added ifndef/define/endif macros
6049         around the header file.
6050         Bug reported from Jesus Calvino-Fraga
6051
6052 2004-01-06 Bernhard Held <bernhard AT bernhardheld.de>
6053
6054         * sdcc.spec: updated
6055         * device/include/Makefile.in: don't install CVS directories
6056         * device/lib/Makefile.in: added removal of CVS directories after install
6057         * doc/Makefile: fixed install, added local_icons
6058         * sim/ucsim/gui.src/Makefile.in: fixed an old typo
6059         * src/mcs51/gen.c (genRightShift): fixed bug #870788
6060         * src/ds390/gen.c (genRightShift): fixed bug #870788
6061         * src/SDCCast.c (decorateType): fixed bug #870781
6062
6063 2004-01-06 Vangelis Rokas <vrokas AT otenet.gr>
6064
6065         PIC16 port related changes:
6066         * device.c: removed pic16_finalMapping and pic16_finalMappingSize,
6067         added variable stackPos,
6068
6069         * gen.c: genCall, assignResultValue: added support for
6070         pushing/retrieving function parameters to/from stack,
6071         genFunction,genEndFunction: setup stack frame for the
6072         generated function,
6073         genAddrOf: will be changed according to bug 863624
6074
6075         * added files genutils.c and genutils.h which contain gen*
6076         debugged and optimised functions extracted from gen.c
6077
6078         * glue.c: added variable 'externs' which holds extern symbols,
6079         pic16emitRegularMap: is modified to properly handle relocatable
6080          symbols under the new scheme,
6081         pic16createInterruptVect: is modified
6082         pic16printPublics: is modified to emit 'global' assembler directives,
6083         added pic16_printExterns to print extern symbols,
6084         pic16glue: initializes stack/frame pointer in the beginning of
6085         the assembly output. Temporary hack, will be corrected later,
6086         because gplink yet does not support stack and SDCC does not
6087         yet support a type of crt0.o object to create the final binary.
6088
6089         * Removed many lines that contain 8051 legacy code.
6090         * The code is finally placed under a 'code' directive.
6091         * Added port specific options.
6092
6093         * _process_pragma: simplified since now we do not need *special*
6094         include file to define SFR registers. But a separate header
6095         will be needed. This will be developed later.
6096         * _pic16_parseOptions: added, parses port specific options:
6097         --pgen-banksel, --obanksel=, --pomit-config-words, --pomit-ivt,
6098         --pleave-reset-vector, --penable-stack, --pstack-model, --debug-xtra
6099         --preplace-udata-with=
6100
6101         * _pic16_setDefaultOptions: modified to initialize section names,
6102         but hack is temporarly out of order since it needs improvement.
6103         * _pic16_genAssemblerPreamble: configuration words are emitted by
6104         their address instead of their name. This part is incomplete and
6105         supports only the 18Fxx2 devices. Other devices will emit an error
6106         during assembly since they do not contain the same set of config
6107         registers
6108         * _pic16_genIVT: is modified,
6109
6110         * pcode.c: added definitions for some hardware registers that are needed
6111         for stack support
6112         * added flag is2LitOp and variable pci_magic in pCodeInstruction.
6113         All PCI entries are updated. Now LFSR is supported.
6114         * Removed pic16_pciTRIS is mentioned by mdubuc in source
6115         * added pic16_newpCodeOpLit2 to support instructions with
6116         two literal arguments
6117         * pic16_pCode2str: corrected code that emits assembler instructions
6118         with two literal operands and those that have an access bit modifier
6119         * genericPrint: now PC_ASMDIR pCodes, can emit a label if it exists,
6120         this fixes a bug which caused some labels to be lost, when an
6121         assembler directive was added, i.e. banksel,
6122         * pic16_FixRegisterBanking: improved logic that causes the insertion
6123         of bank switching,
6124         * InlineFunction: functions that are called once, are not any more
6125         inlined. This can be a port option in the future,
6126
6127         * pcode.h: added pCodeOpLit2 and added variable label in pCodeAsmDir
6128
6129         * ralloc.c: added pic16_rel_udata and pic16_fix_udata variables which
6130         hold the corresponding uninitialized symbols,
6131         * pic16_allocProcessorRegister: registers have explicit marked the
6132         accessBank field,
6133         * pic16_allocInternalRegister: registers are explicit marked as
6134         not used,
6135         * pic16_writeUsedRegs: pic16_dynDirectBitRegs was missing from the
6136         processing list, so bit registers were lost,
6137         *
6138
6139         * ralloc.h: added field 'accessBank' and original symbol operand
6140         in register definition,
6141         * removed the field isMapped from register definition,
6142
6143         ** Several functions have been removed from various sources:
6144         BanksUsedFlow2,BanksUsedFlow,FixBankFlow,InstructionRegBank,
6145         pic16_addMemRange,pic16_isREGinBank,pic16_dump_map,pic16_dump_cblock
6146         isSFR,validAddress,mapRegister,assignRegister,pic16_assignFixedRegisters
6147         pic16_assignRelocatableRegisters
6148
6149         ** others have been introduced:
6150         pic16_areRegsSame,pic16_dump_section,checkAddReg,pic16_groupRegistersInSection
6151         pic16_popGetLit2,pic16_popCombine2,pushw,pushaop
6152
6153 2004-01-05 Vangelis Rokas <vrokas AT otenet.gr>
6154
6155         * support/scripts/inc2h.pl: changed definition of BIT_AT
6156         to emit 'sbit at' instead of 'bit at'. This was a request.
6157
6158         PIC16 port related preliminary changes:
6159         * gen.c: prefixed function popRegFromString with
6160         pic16_ and all references to it corrected
6161         * pcode.c: all pic16_pc_* hardware registers prefixed
6162         with underscore (_),
6163         pic16_popCopyGPR2Bit(): function sets register wasUsed=1
6164         * ralloc.c: newReg(): when register is REG_SFR then
6165         set address to rIdx,
6166         pic16_allocProcessorRegister(): marks register wasUsed=0
6167         pic16_writeUsedRegs(): added a call to assign processor
6168         registers via pic16_assignFixedRegisters
6169
6170 2004-01-04  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
6171
6172         * as/mcs51/aslink.h, as/mcs51/lkarea.c, as/mcs51/lkdata.c,
6173         as/mcs51/lkmain.c, as/mcs51/lkmem.c: 8051 linker can now pack
6174         variables in unused register banks.  Also the SSEG is placed
6175         wherever there is enough space for it, and IDATA can be anywhere
6176         in internal RAM.  For now compile using -Wl-Y[stack_size].
6177         The mem file is different for this option as well, since it
6178         makes no sense of talking about DSEG lenght.
6179
6180 2004-01-02 Vangelis Rokas <vrokas AT otenet.gr>
6181
6182         * src/SDCClrange.c: fixed bug 869095 that caused segfault
6183         in certain cases, e.g. when ROM assignment, patch provided
6184         from Albert den Haan.
6185
6186 2004-01-01 Bernhard Held <bernhard AT bernhardheld.de>
6187
6188         Many signedness and type propagation fixes:
6189         * src/SDCCicode.c: made geniCodeCast() static
6190         replaced SPEC_ by IS_ (cosmetic)
6191         (operandOperation): fixed div and mod operation
6192         (usualBinaryConversions): added support for promotion of char
6193         (geniCodeMultiply): replaced (unsigned long) by (TYPE_UDWORD)
6194         (geniCodeDivision): replaced (unsigned long) by (TYPE_UDWORD)
6195         (geniCodeAdd): an array index will stay unsigned, even if promoted
6196         from char to int
6197         (geniCodeArray): ditto
6198         * src/SDCCicode.h: made geniCodeCast() static: removed prototype
6199         * src/SDCCsymt.c (computeType): added more support for char;
6200         promotion of char is selectable by promoteCharToInt, fixed signedness
6201         for all cases
6202         (powof2): replaced (unsigned long) by (TYPE_UDWORD)
6203         * src/SDCCsymt.h (powof2): replaced (unsigned long) by (TYPE_UDWORD)
6204         * src/SDCCval (val*): replaced signedness calculation by
6205         computeType()
6206         rearranged if-branches (cosmetic)
6207         (valShift): added warning W_SHIFT_CHANGED
6208         (valCompare): fixed problem with different types
6209         * src/hc08/rallo.c (leastUsedLR): fixed gcc 3.3 warning
6210         * support/regression/tests/literalop.c: added many cases
6211         * support/regression/tests/ast_constant_folding.c: changed finally to
6212         'unsigned int'
6213         * .version: new year, new version: 2.3.7
6214         * src/SDCCmain.c (main): applied patch #866468
6215         * debugger/mcs51/sdcdb.c (parseCmdLine): added -k for ucsim, patch
6216         provided by Scott Bronson
6217         * doc/sdccman.lyx: updated documentation for sdcdb
6218         updated and added chapter tips
6219
6220 2004-01-01 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
6221
6222         * src/SDCCsymt.h: missing from yesterday's commits
6223
6224 2003-12-31 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
6225
6226         * src/SDCC.y (struct_or_union_specifier),
6227         * support/Util/SDCCerr.c,
6228         * support/Util/SDCCerr.h: verify that struct & union tags are used
6229         as declared.
6230
6231 2003-12-29 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
6232
6233         * src/SDCCglobl.h: missing from yesterday's commits
6234
6235 2003-12-28 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
6236
6237         * src/SDCC.y (external_definition, type_specifier2, sfr_reg_bit,
6238         sft_attributes, struct_declaration, parameter_declaration,
6239         type_name, start_block, declaration_list),
6240         * src/SDCC.lex (check_type): support redefinition of typedef names
6241
6242 2003-12-22 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
6243
6244         * src/mcs51/gen.c (genPlus): added special handling for 256 byte
6245         aligned xdata arrays. Erik helped me with the if clause.
6246
6247 2003-12-20 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
6248
6249         * device/lib/ds390/tinibios.c (CpuSpeed): suppress unreachable code
6250         warning
6251
6252 2003-12-20 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
6253
6254         * src/SDCCast.h,
6255         * src/SDCCast.c (newAst_),
6256         * src/SDCCicode.h,
6257         * src/SDCCicode.c (ast2iCode, newiCode),
6258         * src/SDCCglobl.h,
6259         * src/SDCC.y (logical_and_expr, logical_or_expr, conditional_expr,
6260         expr, statement, expression_statement, selection_statement,
6261         iteration_statement, expr_opt, jump_statement): foundation for tracking
6262         sequence points
6263         * src/SDCCopt.c (killDeadCode): fixed bug #861580 (needs the sequence
6264         point code too)
6265
6266 2003-12-19 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
6267
6268         * support/Util/SDCCerr.c,
6269         * src/SDCCast.h,
6270         * src/SDCCast.c (createCase, createDefault, decorateType),
6271         * src/SDCClabel.c (labelUnreach),
6272         * src/SDCC.y (labeled_statement, jump_statement): More improvements
6273         to error messages.
6274         * support/Util/SDCCerr.c (werrorfl): fixed a non-standard declaration
6275         (with thanks to Stas Sergeev)
6276         * device/include/time.h,
6277         * device/lib/time.c (CheckTime): suppress unreachable code warning
6278
6279 2003-12-18 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
6280
6281         * src/SDCCast.c (createIvalCharPtr),
6282         * src/SDCCglue.c (printChar): fixed bug #862241 (an error in my fix for
6283         bug #753752)
6284         * support/regression/tests/nullstring.c: tests for these two bugs
6285
6286 2003-12-18 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
6287
6288         * support/Util/SDCCerr.h,
6289         * support/Util/SDCCerr.c (E_NOT_ALLOWED),
6290         * src/SDCC.y (struct_declaration, struct_or_union_specifier): complain
6291         about storage class and 'at' used inside struct or union
6292         * src/SDCCBBlock.c (iCodeFromeBBlock),
6293         * src/SDCCcse.c (ifxOptimize),
6294         * src/SDCCglue.c (emitRegularMap, initPointer, printIvalStruct,
6295         printIvalArray, printiValFuncPtr, printIvalCharPtr, printIvalPtr,
6296         printIval, emitStaticSeg, emitOverlay),
6297         * src/SDCClabel.c (deleteIfx),
6298         * src/SDCCopt.c (replaceRegEqv, eBBlockFromiCode),
6299         * src/SDCCast.c (resolveSymbols, createIvalStruct, createIvalArray,
6300         gatherAutoInit, processParms),
6301         * support/Util/SDCCerr.h,
6302         * support/Util/SDCCerr.c (werrorfl): Support for better error location
6303         reporting for post-parse errors.
6304
6305 2003-12-16 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
6306
6307         * src/SDCCval.c (valPlus, valMinus, valShift): fixed some problems with
6308         implicit casts via union; they don't work on big endian systems
6309         (possible fix for bug #861138)
6310
6311 2003-12-16 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
6312
6313         (committed by Erik Petrich <epetrich AT ivorytower.norman.ok.us> on Frieder's behalf)
6314         * src/mcs51/main.c: fixed the fix for bug #737001
6315
6316 2003-12-15  Borut Razem <borut.razem AT siol.net>
6317
6318         * support/scripts/sdcc.nsi: updated for NSIS 2.0 beta 4
6319
6320 2003-12-14 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
6321
6322         * support/makebin/makebin.c: put output in binary mode
6323
6324 2003-12-13 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
6325
6326         * src/mcs51/main.c: fixed bug #737001 for the mcs51. SDCC clears
6327         xdata and data memory on startup. Set the environment variable
6328         SDCC_NOGENRAMCLEAR to disable this.
6329         * src/mcs51/peephole.def,
6330         * src/ds390/peephole.def: using the atomic test and clear instruction jbc
6331         (allows non-interrupt and interrupt code to safely compete for a resource
6332         without the non-interrupt code having to disable interrupts)
6333
6334 2003-12-13 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
6335
6336         * src/SDCCicode.c (geniCodeAdd),
6337         * src/SDCCast.c (decorateType): fixed bug #857753 (need to be careful
6338         with valFromType if type might be a pointer and host is big endian).
6339         * src/SDCCast.c (decorateType): unary plus compatible with all arithmetic
6340         types, not just integer types.
6341         * src/SDCCsymt.c (addSymChain): clarified error message when symbol is
6342         multiply defined with mismatching "at" address.
6343
6344 2003-12-12 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
6345
6346         * src/ds390/main.c (PORT tininative_port): fixed bug #858416
6347         * src/SDCCglue.c (printChar, printIvalChar, emitStaticSeg),
6348         * src/SDCCast.c (createIvalCharPtr, stringToSymbol): handle strings
6349         with embedded nulls (fixed bug #753752)
6350
6351 2003-12-12 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
6352
6353         * src/mcs51/main.c(_mcs51_genRAMCLEAR): using r0 instead of r1/r2.
6354         Apparently this did not see much testing (endless loop)
6355
6356 2003-12-11 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
6357
6358         * src/z80/ralloc.c: set DISABLE_PACK_HL = 1 as a temporary fix to bug #855165
6359
6360 2003-12-10 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
6361
6362         * src/SDCCdebug.c (outputDebugSymbols, outputDebugStackSymbols, dumpSymInfo):
6363         gracefully handle NULL memmap pointers
6364
6365 2003-12-08 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
6366
6367         * src/SDCCopt.c (killDeadCode): change iCode type to DUMMY_READ_VOLATILE
6368         instead of deleting the iCode when an operand is volatile
6369         * src/z80/gen.c (genDummyRead),
6370         * src/mcs51/gen.c (genDummyRead),
6371         * src/ds390/gen.c (genDummyRead),
6372         * src/hc08/gen.c (genDummyRead): handle operands in IC_LEFT and/or IC_RIGHT,
6373         not just IC_RIGHT
6374         * src/SDCCicode.c (geniCodeCall): fixed bug #851607
6375         * src/SDCC.y: fixed bug #850420
6376
6377 2003-12-05 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
6378
6379         Applied z80 i/o port patch from Peter Townson and fixed some operators
6380         to better handle operands in A register.
6381         * device/include/z180.h
6382         * src/SDCC.y
6383         * src/SDCCglue.c
6384         * src/z80/gen.c
6385         * src/z80/gen.h
6386         * src/z80/main.c
6387         * src/z80/peeph-z80.def
6388         * src/z80/peeph.def
6389         * src/z80/z80.h
6390
6391 2003-12-03 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
6392
6393         * src/SDCCsymt.c (addSymChain, compareTypeExact): fixed bug #838241 again
6394
6395 2003-12-01 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
6396
6397         * device/lib/hc08/_mullong.c: Removed extra #endif
6398
6399 2003-12-01 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
6400
6401         * sim/ucsim/hc08.src/inst.cc,
6402         * sim/ucsim/hc08.src/hc08mac.h: fixed some problems with CC flag bits and
6403         carries from x to h
6404         * src/hc08/gen.c (aopAdrStr): fixed problem with 16 bit immediate
6405         * src/hc08/gen.c (XAccRsh): fixed problem with right shift
6406         * device/include/stdarg.h: fixed varargs for hc08
6407         * device/lib/Makefile.in,
6408         * device/lib/hc08/Makefile,
6409         * device/lib/hc08/_mulint.c,
6410         * device/lib/hc08/_mullong.c: fixed some endian problems
6411
6412 2003-11-28 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
6413
6414         * sdcc/src/mcs51/gen.c (genMultOneByte): help peephole 105
6415         * sdcc/src/mcs51/peeph.def: added peephole 186.e array access in code space
6416         * device/lib/_gptrget.c,
6417         * device/lib/_gptrput.c: P2 not used any more (related to #850747, #785979)
6418
6419 2003-11-27 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
6420
6421         * src/SDCClrange.c (findNextUseSym, rlivePoint): fixed bug #849795
6422         * src/SDCCast.c (astErrors): fixed bug #846007
6423         * src/SDCCsymt.c (checkFunction): fixed follow-up bug on bug #846007
6424
6425 2003-11-26 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
6426
6427         * src/SDCCast.c (decorateType): disabled a transformation I added in
6428         revision 1.188 (access to fields of a structure at an absolute address);
6429         it breaks with bitfields, extern declarations, and gcse analysis.
6430         * src/SDCCopt.c (isLocalWithoutDef): if ADDRESS_OF applied to a symbol, it
6431         could be assigned through a pointer, so don't complain.
6432         * src/SDCCast.c (astErrors),
6433         * src/SDCCast.h,
6434         * src/SDCCglue.c (emitRegularMap): fixed bug #847813
6435
6436 2003-11-26 Vangelis Rokas <vrokas AT otenet.gr>
6437
6438         * src/pic16/main.c (_pic16_genIVT): fixed interrupt vector table
6439         * src/pic16/main.c (_pic16_genAssemblerPreamble): re-enabled the
6440         output of __config directives, since gpasm now supports them
6441         * src/pic16/main.c (_pic16_finaliseOptions): define MCU
6442         pre-processor macro, i.e. -DMCU=p18f452
6443         * src/pic16/ralloc.c: renamed packRegisters to pic16_packRegisters,
6444         and modified to handle 'cast' icode similarly to '=' icode
6445         * src/pic16/device.h (typedef struct PIC_device): added field
6446         'extMIface' to indicate that chip has external memory interface
6447         * src/pic16/device.c: added chips 18F248, 18F258, 18F448, 18F458,
6448         18F6520, 18F6620, 18F6680, 18F6720, 18F8520, 18F8620, 18F8680,
6449         18F8720
6450
6451 2003-11-26 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
6452
6453         * src/SDCC.y (pointer): fixed bug #846006
6454         * support/Util/SDCCerr.c: made W_PTR_TYPE_INVALID message clearer
6455         * src/SDCCast.c (decorateType): fixed bug #846009
6456         * src/ds390/peeph.def,
6457         * src/ds390/gen.c (genAnd, genOr),
6458         * src/mcs51/peeph.def,
6459         * src/mcs51/gen.c (genAnd, genOr): fixed bug #846777
6460
6461 2003-11-25 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
6462
6463         Fixed several common-sub-expression bugs (#772861, #768380, & #755323)
6464         * src/SDCCdflow.c
6465         * src/SDCCcse.c
6466         * src/SDCCcse.h
6467         * src/SDCCBBlock.h
6468         * src/SDCCBBlock.c
6469
6470 2003-11-23 Klaus Flittner <klaus_flittner AT gmx.de>
6471
6472         fixed bug #845089
6473         * src/SDCCbitv.h,
6474         * src/SDCCbitv.c: added function to free a bitvector
6475         * src/SDCClrange.h,
6476         * src/SDCClrange.c: added function to recompute the liveranges
6477         * src/avr/ralloc.c,
6478         * src/ds390/ralloc.c,
6479         * src/hc08/ralloc.c,
6480         * src/mcs51/ralloc.c,
6481         * src/pic/ralloc.c,
6482         * src/pic16/ralloc.c,
6483         * src/xa51/ralloc.c,
6484         * src/z80/ralloc.c: recompute the liveranges after register packing
6485
6486 2003-11-21 Klaus Flittner <klaus_flittner AT gmx.de>
6487
6488         * src/SDCCloop.c (newInduction): fixed bug #845630
6489
6490 2003-11-21 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
6491
6492         * src/SDCCsymt.c (compareTypesExact): disabled debugging output
6493         inadvertantly left behind from my 2003-11-12 change
6494
6495 2003-11-20 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
6496
6497         Updated headers I neglected to commit yesterday.
6498         * src/SDCClrange.h,
6499         * src/SDCCicode.h
6500
6501 2003-11-19 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
6502
6503         * src/SDCCcse.c (algebraicOpts): fixed bug #773153
6504         * src/SDCClrange.c (rlivePoint): need to mark IC_RESULT used if POINTER_SET op
6505         * src/SDCCopt.c (eBBlockFromiCode),
6506         * src/SDCClrange.c (hashiCodeKeys, sequenceiCode, computeLiveRanges): seperated
6507         the creation of the key hash table from the sequencing so it can be used
6508         earlier (for some GCSE bug fixes still pending)
6509
6510 2003-11-15 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
6511
6512         * src/mcs51/gen.c (genPlus): generate shortcut for adding 0xab00
6513         * support/regression/tests/addsub.c: testing genPlus shortcut
6514
6515 2003-11-15  Borut Razem <borut.razem AT siol.net>
6516
6517         * src/SDCCmain.c: fixed bug #841645: -MM command line option passed to sdcpp
6518
6519 2003-11-15 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
6520
6521         * src/SDCCcse.c (cseBBlock): fixed bug #527779
6522         * src/SDCCcse.c (deleteGetPointers): rewrote so that the set
6523         ordering is immaterial.
6524         * src/SDCCdflow.c (mergeInExprs): fixed bug #587536
6525
6526 2003-11-14 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
6527
6528         * src/SDCCicode.c (geniCodeAddressOf): fixed part of bug #840381
6529         * src/SDCCopt.c (replaceRegEqv, isLocalWithoutDef): fixed other part
6530         (SIGSEV) of bug #840381
6531         * src/SDCCmain.c (linkEdit, assemble): fixed bug #841606 (don't
6532         unlink new file before rename if new and old filenames are the same)
6533
6534 2003-11-13 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
6535
6536         * src/mcs51/main.c: started fixing bug #737001 (SDCC not clearing
6537         uninitialized variables) for the mcs51. Set environment variable
6538         SDCC_GENRAMCLEAR to test.
6539         xdata initialization slightly shorter
6540
6541 2003-11-12 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
6542
6543         * src/SDCCsymt.h,
6544         * src/SDCCsymt.c (addSymTypeChain, compareTypesExact): fixed bugs
6545         #838241 & 780691 (basicly the same bug)
6546         * src/SDCCBBlock.c (iCode2eBBlock): fixed bug #840148
6547         * src/SDCCBBlock.c (iCodeFromeBBlock): fixed bug #840162
6548
6549 2003-11-11 Bernhard Held <bernhard AT bernhardheld.de>
6550
6551         * src/SDCCmain.c (linkEdit): "fix" #834252
6552
6553 2003-11-11 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
6554
6555         * src/SDCCast.c (removePostIncDecOps, removePreIncDecOps),
6556         * src/SDCCast.h,
6557         * src/SDCC.y: fixed bug #819403
6558
6559 2003-11-08 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
6560
6561         * support/regression/fwk/lib/testfwk.c: printn is recursive and thus needs
6562         the reentrant attribute.
6563         * src/hc08/gen.c (genPackBits): added missing stack readjustment
6564         * sim/ucsim/hc08.src/inst.cc (inst_mov): fixed bugs with mov instruction
6565         simulation
6566         * src/SDCCast.c (decorateType): fixed bug with storage class not being
6567         updated during pointer dereference; f.e. ~(((char *)1)*) was being
6568         erroneously reduced to a literal.
6569         * src/hc08/ralloc.c (packRegisters, rematStr),
6570         * src/hc08/gen.c (aopForRemat): allow literals to be rematerialized in
6571         some cases
6572
6573 2003-11-08 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
6574
6575         * src/mcs51/main.c: fixed bug #838385. Thanks to Josef Pavlik for finding and fixing
6576         * doc/sdccman.lyx: changed from 'article' to 'book'
6577         * doc/Makefile: readded test_suite_spec and cdbfileformat
6578
6579 2003-11-08 Bernhard Held <bernhard AT bernhardheld.de>
6580
6581         * device/include/stdlib.h: include malloc.h to comply with ANSI
6582         * support/regression/tests/malloc.c: include stdlib.h instead of malloc.h
6583
6584 2003-11-07 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
6585
6586         * doc/Makefile: sdccman.pdf should build with correct references (more info in commit msg)
6587         * doc/clean.mk: also remove *.out files
6588         * doc/sdccman.lyx: some additions, larger top/bottom margins
6589
6590 2003-11-07 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
6591
6592         * src/SDCC.y: fixed bug #837365
6593         * support/regression/tests/bitopcse.c
6594         * src/hc08/gen.c (genPointerGet): Don't assume pointer operand is
6595         a symbol (might be valop instead)
6596         * device/lib/Makefile.in: added errno.c to HC08SOURCES
6597         * device/lib/clean.mk: added hc08 to the cleaning list
6598
6599 2003-11-04  Borut Razem <borut.razem AT siol.net>
6600
6601         * configure, configure.in, sdcc_vc_in.h, sdcconf_in.h: reverted changes,
6602           made 2003-11-04
6603         * support/Util/NewAlloc.c, as/hc08/lklibr.c, as/mcs51/lklibr.c,
6604           as/z80/aslist.c, as/z80/assym.c: removed inclusion of nonstandard malloc.h;
6605           malloc is declared in standard stdlib.h
6606
6607 2003-11-06 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
6608
6609         * device/lib/hc08/Makefile: need to clean .rel not .o files
6610         * src/hc08/gen.c (genDjnz): can't use djnz with extended addressing mode
6611
6612 2003-11-06 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
6613
6614         * src/port.h,
6615         * src/hc08/main.c,
6616         * src/mcs51/main.c,
6617         * src/ds390/main.c,
6618         * src/z80/main.c,
6619         * src/avr/main.c,
6620         * src/pic/main.c,
6621         * src/pic16/main.c,
6622         * src/xa51/main.c: added hasExtBitOp & oclsExpense functions to ports
6623         * src/SDCCicode.c: changed several IS_FARSPACE tests to isOclsExpensive
6624         tests (which uses the port's oclsExpense function)
6625         * src/SDCC.y,
6626         * src/SDCCast.c,
6627         * src/SDCCicode.c,
6628         * src/hc08/gen.c,
6629         * src/ds390/gen.c,
6630         * src/mcs51/gen.c: added support for the SWAP iCode (RFE #834167)
6631
6632 2003-11-04 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
6633
6634         * src/SDCCcse.c (ifxOptimize),
6635         * src/SDCClabel.c (labelIfx, deleteIfx): When the condition to
6636         an IFX iCode is volatile, convert to DUMMY_READ_VOLATILE instead
6637         deleting the IFX iCode.
6638         * src/hc08/ralloc.c: reduced unneeded slocs
6639         * src/hc08/gen.c: fixed bug in asmopToBoolean
6640
6641 2003-11-04  Borut Razem <borut.razem AT siol.net>
6642
6643         * configure, configure.in, sdcc_vc_in.h, sdcconf_in.h,
6644           support/Util/NewAlloc.c, as/hc08/lklibr.c, as/mcs51/lklibr.c,
6645           as/z80/aslist.c, as/z80/assym.c: decision to include malloc.h
6646           transferred to configure
6647
6648 2003-11-03 Bernhard Held <bernhard AT bernhardheld.de>
6649
6650         Use headers defined in the C[++] standards:
6651         * sim/ucsim/gui.src/serio.src/fileio.cc
6652         * sim/ucsim/gui.src/serio.src/frontend.cc
6653         * sim/ucsim/gui.src/serio.src/main.cc
6654         * sim/ucsim/gui.src/serio.src/posix_signal.cc
6655         * support/Util/NewAlloc.c
6656         * as/hc08/lklibr.c
6657         * as/mcs51/lklibr.c
6658         * as/z80/aslist.c
6659         * as/z80/assym.c
6660
6661 2003-11-03  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
6662
6663         * Added MSVC projects for hc08 assembler and linker:
6664         all.dsp, config.dsp, sdcc.dsw, /as/hc08/as_hc08.dsp,
6665         /as/hc08/link_hc08.dsp
6666
6667 2003-11-03 Martin Helmling <Martin.Helmling AT octo-soft.de>
6668
6669         * debugger/mcs51/cmd.c: allows filename starting with digit(+ some debug)
6670
6671 2003-11-02 Bernhard Held <bernhard AT bernhardheld.de>
6672
6673         * src/SDCCmain.c (linkEdit): "fixed" again bug #833605
6674
6675 2003-11-01 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
6676
6677         * src/mcs51/main.c: xdata initialization is 13 bytes shorter now
6678
6679 2003-10-31  Borut Razem <borut.razem AT siol.net>
6680
6681         * support/cpp2/cpplib.h,
6682           support/cpp2/cpplib.c,
6683           support/cpp2/cpplex.c,
6684           support/cpp2/cppinit.c: introduced #pragma preproc_asm [ + | - ]
6685           to switch _asm block preprocessing on / off. Default is
6686           #pragma preproc_asm +
6687
6688 2003-10-31  Borut Razem <borut.razem AT siol.net>
6689
6690         * support/cpp2/cpplex.c: Fixed _WIN32 problem with CR-CR-LF sequences
6691           when outputting comment blocks (when executed with -C option) and
6692           _asm (SDCPP specific) blocks
6693
6694 2003-10-31 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
6695
6696         * as/hc08/lkrloc.c (relr): Fixed ihx output, fixed lastAreaIndex warning
6697
6698 2003-10-31 Klaus Flittner <klaus_flittner AT gmx.de>
6699
6700         * src/SDCCcse.c (updateSpillLocation): fixed bug #808027
6701
6702 2003-10-31 Bernhard Held <bernhard AT bernhardheld.de>
6703
6704         * src/SDCCmain.c (linkEdit): "fixed" bug #833605
6705         * src/SDCCast.c (decorateType): fixed bug #832664
6706
6707 2003-10-31  Borut Razem <borut.razem AT siol.net>
6708
6709         * support\cpp2\cpplex.c: fixed for SDCPP:
6710           comments(when executed with -C option) and _asm blocks
6711           were included even if they where in skipped #if block.
6712           Applied solution from GCC cpp 3.3.2
6713
6714 2003-10-31  Borut Razem <borut.razem AT siol.net>
6715
6716         * src/SDCC.lex: sdcc now understands both formats:
6717           '# <line_number> <file_name>' and
6718           '#line <line_number> <file_name>'
6719         * support/cpp2/cppmain.c: sdcpp now generates the standard
6720           '# <line_number> <file_name>' instead of former
6721           '#line <line_number> <file_name>'
6722
6723 2003-10-30  Borut Razem <borut.razem AT siol.net>
6724
6725         * support/cpp2/cpphash.h,
6726         * support/cpp2/cpplib.h
6727         * support/cpp2/cpplex.c,
6728         * support/cpp2/cppmain.c,
6729         * support/cpp2/cppinit.c: fixed bug #828015 - Syntax variation for _asm character constants
6730
6731 2003-10-30 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
6732
6733         Fixed a number of problems revealed by bug #827883.
6734         * src/SDCCloop.c (loopInvariants): Spill location of the
6735         result operand should be recomputed if extracted from
6736         a loop. Also, don't extract assignments of an iTemp
6737         from a literal.
6738         * src/SDCCast.c (isConformingBody): loop reversal should
6739         not occur if the control variable is involved with a
6740         relational operator.
6741
6742 2003-10-28 Bernhard Held <bernhard AT bernhardheld.de>
6743
6744         * .version: bumped to 2.3.6 to reflect the big improvements
6745         made by Erik and Klaus. Thanks!
6746
6747 2003-10-28 Klaus Flittner <klaus_flittner AT gmx.de>
6748
6749         Replaced the livrange code.
6750         * src/SDCClrange.c: added new LR code
6751         * src/SDCCloop.c,
6752         * src/SDCCBBlock.h: removed remainig parts from old LR code
6753         * src/ds390/ralloc.c,
6754         * src/ds390/gen.c: minor fixes to make it work with new code
6755
6756 2003-10-28 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
6757
6758         * as/hc08/asm.h,
6759         * as/hc08/lkrloc.c,
6760         * src/hc08/gen.c,
6761         * src/hc08/ralloc.c: Fix various warnings related to the hc08
6762         * src/SDCCicode.c (geniCodePreInc, geniCodePreDec): Fixed bug #829717
6763         (tweaked fix for bug #818696)
6764
6765 2003-10-23 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
6766
6767         * src/z80/ralloc.c (joinPushes): Fixed bug #828742
6768
6769 2003-10-23 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
6770
6771         * src/SDCCmain.c,
6772         * sdccconf_in.h: Fixed bug #828387 (--disable-hc08-port didn't work)
6773         * src/mcs51/gen.c (gencjneshort),
6774         * src/ds390/gen.c (gencjneshort): Made comparison with AOP_IMMD operand
6775         more efficient (per Scott Bronson's suggestion)
6776
6777 2003-10-22 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
6778
6779         Extended the semantics of the critical keyword to include
6780         individual statements. See RFE #827755 and #799831
6781         * src/SDCC.y
6782         * src/SDCCicode.c
6783         * src/SDCCopt.c
6784         * src/SDCCast.c
6785         * support/Util/SDCCerr.c
6786         * support/Util/SDCCerr.h
6787         * src/mcs51/gen.c
6788         * src/ds390/gen.c
6789         * src/hc08/gen.c
6790
6791 2003-10-19  Borut Razem <borut.razem AT siol.net>
6792
6793         * src/SDCC.lex: fixed bug #825944 - defined yytext_ptr to make it compile with flex 2.5.31
6794
6795 2003-10-19 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
6796
6797         * src/SDCCicode.c (geniCodePreInc, geniCodePreDec, ast2iCode):
6798         Fixed bug #818696
6799         * src/SDCCast.c (ast_print): Fixed --dumptree so that preincrement
6800         and predecrement operand is displayed
6801
6802 2003-10-13 Bernhard Held <bernhard AT bernhardheld.de>
6803
6804         * src/SDCCval.c (valMinus): fixed bug #826041
6805
6806 2003-10-15 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
6807
6808         Some hc08 related updates that I missed earlier
6809         * sim/ucsim/stypes.h
6810         * support/regression/ports/hc08/spec.mk
6811
6812 2003-10-15 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
6813
6814         New target "hc08" for the Motorola 68hc08 family of micros
6815
6816         * configure
6817         * configure.in
6818         * Makefile
6819         * src/hc08/*
6820         * src/SDCCmain.c
6821         * src/port.h
6822         * sim/ucsim/hc08.src/*
6823         * sim/ucsim/configure.in
6824         * src/ucsim/configure
6825         * sim/ucsim/packages_in.mk
6826         * as/hc08/*
6827         * as/Makefile
6828         * device/include/mc68hc908qy.h
6829         * device/lib/hc08/*
6830         * device/lib/Makefile.in
6831         * support/regression/ports/hc08/*
6832         * support/regression/Makefile
6833
6834 2003-10-14 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
6835
6836         * src/z80/gen.c: fixed bug revealed by ast_constant_folding.c
6837         regression test
6838         * src/ds390/gen.c (genCast): fixed bug #821957
6839
6840 2003-10-13 Bernhard Held <bernhard AT bernhardheld.de>
6841
6842         * device/lib/logf.c: "fixed" overlay bug
6843         * support/regression/ports/host/spec.mk: added m library
6844         * support/regression/ports/mcs51-stack-auto/spec.mk: added float funcs
6845         * support/regression/tests/float_trans: added (for Eric)
6846
6847 2003-10-12 Bernhard Held <bernhard AT bernhardheld.de>
6848
6849         * src/mcs51/gen.c (genCpl): fixed bug
6850         http://sf.net/mailarchive/message.php?msg_id=6263915
6851
6852 2003-10-10 Bernhard Held <bernhard AT bernhardheld.de>
6853
6854         * src/SDCCast.c (decorateType): added extended constant folding
6855         * src/SDCCsymt.c (computeType): cleanup
6856         * src/SDCCval.c (valShift): minor optimization
6857         * support/regression/tests/ast_constant_folding.c: added
6858
6859 2003-10-09  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
6860
6861         * src/SDCCmain.c: removed some unintended changes
6862
6863 2003-10-09  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
6864
6865         * src/SDCCmain.c (setParseWithComma): fixed bug #816685
6866         * src/z80/gen.c: fixed part of bug #817589
6867         * src/SDCCsymt.c (checkFunction): fixed bug #817895
6868
6869 2003-10-08 Bernhard Held <bernhard AT bernhardheld.de>
6870
6871         Replaced cast (void **) with (void *) to avoid gcc 3 warning:
6872         * src/SDCCcflow.c
6873         * src/SDCCcse.c
6874         * src/SDCCdflow.c
6875         * src/SDCClabel.c
6876         * src/SDCClrange.c
6877         * src/SDCCmem.c
6878         * src/SDCCopt.c
6879         * src/SDCCpeeph.c
6880         * src/SDCCset.c
6881         * src/avr/ralloc.c
6882         * src/ds390/ralloc.c
6883         * src/izt/ralloc.c
6884         * src/mcs51/ralloc.c
6885         * src/pic/ralloc.c
6886         * src/pic16/ralloc.c
6887         * src/xa51/ralloc.c
6888         * src/z80/ralloc.c
6889         * src/z80/gen.c: removed unused label "release:"
6890
6891 2003-10-06  Borut Razem <borut.razem AT siol.net>
6892
6893         * src/SDCC.lex: removed definition of unused variables
6894           save_optimize and save_options
6895
6896 2003-10-06 Bernhard Held <bernhard AT bernhardheld.de>
6897
6898         * clean.mk: removed '=' in "-maxdepth=1"
6899         * src/SDCCloop.c: replace LRKLAUS with SDCC_LRKLAUS
6900         * src/SDCClrange.c: replace LRKLAUS with SDCC_LRKLAUS
6901
6902 2003-10-06  Borut Razem <borut.razem AT siol.net>
6903
6904         * src/SDCC.lex, src/SDCC.lex: use dbuf for "_asm" definitions;
6905           my_unput() replaced by unput()
6906
6907 2003-10-05 Bernhard Held <bernhard AT bernhardheld.de>
6908
6909         * src/SDCCloop.c (assignmentsToSym, loopInduction): cast argument of
6910         setToNull() to (void *) to avoid gcc3.x's warning: "dereferencing
6911         type-punned pointer will break strict-aliasing rules"
6912         Old LR behaviour is again default; Klaus' LR can be choosen by
6913         defining the environment variable LRKLAUS
6914         * src/SDCCBBlock.h
6915         * src/SDCCloop.c
6916         * src/SDCClrange.c
6917         * src/ds390/ralloc.c (spillThis): applied Klaus' patch
6918         * clean.mk: fixed removal of files in bin/CVS/
6919         * device/lib/clean.mk: fixed removal of directories small and large
6920         * support/Util/SDCCerr.c: changed W_INT_OVL to ERROR_LEVEL_PEDANTIC
6921         * src/SDCCicode.c,
6922         * src/SDCCval.c: removed superflous test for pedantic
6923
6924 2003-10-05  Borut Razem <borut.razem AT siol.net>
6925
6926         * src/SDCC.lex, support/Util/SDCCerr.c, sdcc/support/Util/SDCCerr.h:
6927           Fixed bug #816692: introduced new ERROR_LEVEL_PEDANTIC warning
6928           message "unmatched #pragma SAVE and #pragma RESTORE"
6929
6930 2003-10-04  Frieder Ferlemann <Frieder.Ferlemann AT web.de>
6931
6932         * doc/sdccman.lyx: various additions and updates (interrupts, inline
6933           assembly, critical functions, atomic, nojtbound)
6934
6935 2003-10-04 Bernhard Held <bernhard AT bernhardheld.de>
6936
6937         Applied liferange patch from Klaus Flittner <klaus_flittner AT gmx.de>
6938         * src/SDCCBBlock.h
6939         * src/SDCCloop.c
6940         * src/SDCCloop.h
6941         * src/SDCClrange.c
6942
6943 2003-10-03  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
6944
6945         * src/z80/gen.h,
6946         * src/z80/gen.c (aopOp, aopGet, aopPut, genDummyRead),
6947         * src/mcs51/gen.h
6948         * src/mcs51/gen.c (aopOp, aopGet, aopPut, genDummyRead),
6949         * src/ds390/gen.h
6950         * src/ds390/gen.c (aopOp, aopGet, aopPut, genDummyRead),
6951         * src/SDCCicode.c (ast2iCode, geniCodeDummyRead): Fixed bug #663539
6952         * src/SDCCopt.c (killDeadCode): Fixed bugs #663539 & #816705
6953
6954 2003-10-02  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
6955
6956         * src/z80/gen.c (genRet): fixed bug #524753
6957         * src/z80/gen.c (genCast): fixed internal error on cast from
6958         pointer to long
6959         * src/z80/gen.c (_saveRegsForCall, emitCall): adapted Johan's
6960         fix for bug #477835 to the z80
6961         * src/z80/gen.c (genZ80code, _vemit2, _emit2): added support
6962         for tracking iCodes in the peephole optimizer for z80
6963
6964 2003-10-01  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
6965
6966         * src/SDCCicode.c (geniCodeJumpTable, geniCodeSwitch): fixed
6967         the other part of bug #814548
6968         * src/SDCCpeeph.c (labelInRange): fixed bug #814558
6969
6970 2003-09-30  Bernhard Held <bernhard AT bernhardheld.de>
6971
6972         * src/SDCCcse.c: fixed part of bug #814548
6973
6974 2003-09-28  Borut Razem <borut.razem AT siol.net>
6975
6976         * src/asm.c: rewrite of printILine() to use temporary file instead
6977           a pipe
6978         * src/xa51/main.c: commented out declaration of int rewinds
6979
6980 2003-09-27  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
6981
6982         * src/SDCCicode.c (geniCodeJumpTable): Fixed bug #813206
6983
6984 2003-09-26  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
6985
6986         * src/SDCCdflow.c (computeDataFlow): Fixed bug #810746
6987         * src/asm.c (printILine): Fixed bug #811015
6988
6989 2003-09-22  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
6990
6991         *link/z80/lklibr.c, as/mcs51/lklibr.c: Improved memory allocation and
6992         freeing.
6993
6994 2003-09-21  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
6995
6996         * src/z80/gen.c (setupToPreserveCarry): Fixed bug #796955
6997         * src/z80/gen.c (setupPair, genMovePairPair): Fixed setupPair
6998         to correctly handle general case of AOP_PAIRPTR
6999         * src/z80/gen.c (aopGet, aopPut): Generalized AOP_PAIRPTR handling
7000
7001 2003-09-21  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
7002
7003         * src/mcs51/ralloc.c (fillGaps),
7004         * src/ds390/ralloc.c (fillGaps): fixed bug #810093 (yet another
7005         register positioning bug)
7006
7007 2003-09-21  Bernhard Held <bernhard AT bernhardheld.de>
7008
7009         * device/lib/_fsdiv.c: replaced (1<<31) by (1ul<<31)
7010
7011 2003-09-19  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
7012
7013         * src/mcs51/gen.c (loadDptrFromOperand, genFarPointerGet,
7014         genCodePointerGet, genGenPointerGet, genFarPointerSet,
7015         genGenPointerSet): handle AOP_DPTR correctly when loading dptr
7016         (ralloc doesn't intentionally do this now, but perhaps later)
7017         * src/mcs51/ralloc.c (serialRegAssign, fillGaps),
7018         * src/ds390/ralloc.c (serialRegAssign, fillGaps): fixed some
7019         register positioning bugs (Fixed bug #762602 and #795325)
7020         * src/SDCCicode.c (geniCodeDerefPtr): Track output class correctly
7021         (Fixed bug #808779)
7022         * src/z80/gen.c: increased _vemit2's buffer[] to handle long
7023         lines that --i-code-in-asm generates
7024
7025 2003-09-18  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
7026
7027         *link/z80/lklibr.c, as/mcs51/lklibr.c: Fixed Linux segfaults when
7028         trying to fclose a FILE* that was already closed.
7029
7030 2003-09-18  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
7031
7032         * src/SDCCsymt.c (structElemType): fixed bug #808291 (members
7033         of const struct should be treated as if const themselves)
7034
7035 2003-09-18  Bernhard Held <bernhard AT bernhardheld.de>
7036
7037         * src/SDCCval.c (valPlus, valMinus): fixed bug #808337
7038
7039 2003-07-06  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
7040
7041         * support/librarian/sdcclib.c: Generate correct offsets for libraries with
7042         Unix (/n) and DOS (/r/n) line terminations.
7043
7044 2003-09-17  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
7045
7046         * src/SDCCopt.c (cnvFromFloatCast, cnvToFloatCast): fixed
7047         bug #613775
7048
7049 2003-09-16  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
7050
7051         * src/mcs51/gen.c (genFunction, genEndFunction),
7052         * src/ds390/gen.c (genFunction, genEndFunction): Moved save
7053         and restore of EA so that stack offsets to parameters are
7054         correct when using both critical and reentrant/stack-auto.
7055         * src/z80/gen.c (aopOp): removed erroneous assertion about sloc
7056         size (can be triggered in error if sloc is shared between
7057         different sized objects)
7058         * device/include/float.h: fixed macros to explicitly use
7059         unsigned long where needed
7060
7061 2003-09-15  Bernhard Held <bernhard AT bernhardheld.de>
7062
7063         Feature req. 799831: added code to allow nesting of critical functions
7064         * src/mcs51/gen.c (genFunction, genEndFunction)
7065         * src/ds390/gen.c (genFunction, genEndFunction)
7066
7067 2003-09-14  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
7068
7069         * src/SDCCsymt.c (sclsFromPtr),
7070         * src/SDCCsymt.h,
7071         * src/SDCCast.c (decorateType): fixed bug #462971. Also, better
7072         support for standard C idiom of memory mapped variables; for
7073         example, *((xdata int*)0x1234) = 1 is now internally equivalent
7074         to xdata int at 0x1234 tempvar = 1.
7075         * sim/ucsim/z80.src/inst_xd.cc: fixed bug #805483 with patch
7076         provided by Akiya ISHIDA
7077
7078 2003-09-13  Bernhard Held <bernhard AT bernhardheld.de>
7079
7080         * src/SDCCval.c (cheapestVal): reenabled to reduce int to char
7081         * src/SDCCval.c (constVal): added reduction from int to char
7082         * src/SDCCval.c (valMult, valDiv): fixed sign handling
7083         * src/SDCCval.c (valShift): fixed after change of cheapestVal()
7084         * src/SDCCval.c (valCompare): fixed EQ_OP and NE_OP; they have
7085         to ignore the sign
7086         * support/regression/tests/shifts.c: fixed
7087
7088 2003-09-13  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
7089
7090         * src/z80/gen.c (genXor): Fixed bug #805445
7091
7092 2003-09-12  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
7093
7094         Fixed bug #621531 (const & volatile confusion in the type chain).
7095         DCL_PTR_CONST, DCL_PTR_VOLATILE, & IS_PTR_CONST now exclusively
7096         refer to the const or volatile state of the pointer itself.
7097
7098         * src/SDCCast.c
7099         * src/SDCCglue.c
7100         * src/SDCCicode.c
7101         * src/SDCCsymt.c
7102         * src/SDCCval.c
7103         * src/SDCC.y
7104         * src/SDCCsymt.h
7105         * src/pic/gen.c
7106         * src/pic/ralloc.c
7107         * src/pic16/gen.c
7108         * src/pic16/ralloc.c
7109         * support/regression/tests/const.c
7110
7111 2003-09-10  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
7112
7113         When checking for duplicated modules, use absolute paths
7114         instead of relative paths.  Files changed:
7115
7116         * as/mcs51/lklib.c
7117         * link/z80/lklib.c
7118
7119 2003-09-09  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
7120
7121         * src/SDCCicode.c (geniCodeLogic): fixed bug #797572
7122
7123 2003-09-07  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
7124
7125         * device/include/string.h: added size_t typedef, changed
7126         prototypes to use size_t, eliminated separate reentrant and
7127         non-reentrant declarations, added _memmove declaration
7128         * device/lib/_memcpy.c: changed to use size_t instead of int,
7129         changed /4 to >>2 to avoid division library call
7130         * device/lib/_memcmp.c,
7131         * device/lib/_memset.c,
7132         * device/lib/_strncat.c,
7133         * device/lib/_strncpy.c,
7134         * device/lib/_strncmp.c: changed to use size_t instead of int
7135         * device/lib/_memmove.c: new file (fixed bug #772294)
7136         * device/lib/Makefile.in: added _memmove.c
7137         * device/lib/z80/asm_strings.s: fixed bug #772290
7138         * support/regression/tests/bitfields.c: attempt to fix host assertion
7139         failure on amd64-unknown-linux2.2
7140
7141 2003-09-06  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
7142
7143         * src/z80/gen.c (aopPut, spillPairReg): fixed bug #800998
7144         * src/z80/gen.c (genFunction, genEndFunction): fixed "bug" #774700
7145         * as/z80/asmain.c (main): fixed bug #801766
7146
7147 2003-09-06  Bernhard Held <bernhard AT bernhardheld.de>
7148
7149         * src/SDCCicode.c (ast2iCode): fixed differences in iCode with different
7150         compilers
7151
7152 2003-09-05  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
7153
7154         * src/SDCCast.c (isConformingBody): fixed loop reversal bug
7155         reported in bug #800609
7156
7157 2003-09-04  Vangelis Rokas <vrokas AT otenet.gr>
7158
7159         * Top header beautifications in src/pic16 directory:
7160           device.c, device.h, gen.c, gen.h, genarith.c, glue.c, pcode.c,
7161           pcodeflow.c, pcodeflow.h, pcode.h, pcodepeep.c, pcoderegs.c,
7162           pcoderegs.h, ralloc.c, ralloc.h
7163         * main.c: added top header and GPL license notice
7164         * pcode.c: fixed the if-conditional warning
7165
7166 2003-09-04  Bernhard Held <bernhard AT bernhardheld.de>
7167
7168         * device/lib/_mullong.c: replaced int by short for gcc
7169
7170 2003-08-31  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
7171
7172         * src/SDCCpeeph.c (notVolatile, notVolatileVariable): handle IFX
7173         and JUMPTABLE iCodes properly now (worked by accident before)
7174         * src/mcs51/gen.c (leftRightUseAcc),
7175         * src/ds390/gen.c (leftRightUseAcc): handle IFX and JUMPTABLE
7176         iCode properly now. Use getSize instead of nRegs since a & b
7177         aren't part of the nRegs tally.
7178
7179 2003-08-31  Vangelis Rokas <vrokas AT otenet.gr>
7180
7181         * src/pic16/main.c: corrected offsets of interrupt vectors in _pic16_genIVT()
7182         * src/pic16/pcode.c: fix to disable inserting BANKSEL directive
7183           before instructions that use the _STATUS register
7184
7185 2003-08-31  Bernhard Held <bernhard AT bernhardheld.de>
7186
7187         * src/mcs51/gen.c (freeAsmop): fixed off by one in stack offset (AOP_STK)
7188         * src/mcs51/gen.c (genNearPointerSet): added missing opcode for
7189         fetching of the pointer
7190         * src/mcs51/gen.c (genNearPointerGet): added reuse of PREG,
7191         copied from genNearPointerSet()
7192         * src/mcs51/gen.c (genNearPointerGet): don't pop r0/r1, if RESULTONSTACK
7193         * src/mcs51/gen.c: changed order of freeAsmop(left/right/result)-calls.
7194         If they pop r0/r1 they must be called in the opposite order than aopOp().
7195         * device/lib/_mullong.c: fixed for "--model-large --int-long-reent"
7196         (resp. --stack-auto), prepared for --xstack
7197
7198 2003-08-28  Frieder Ferlemann <Frieder.Ferlemann AT web.de>
7199
7200         * doc/sdccman.lyx: reverted tables to those in cvs 1.64
7201
7202 2003-08-28  Bernhard Held <bernhard AT bernhardheld.de>
7203
7204         * device/lib/_startup.c: quick & dirty fix for ds390/ds400;
7205         these ports have their own __sdcc_external_start()
7206
7207 2003-08-26  Bernhard Held <bernhard AT bernhardheld.de>
7208
7209         pic patch provided by Slade Rich <slade_rich AT yahoo.com>
7210         * src/pic/glue.c (pic14printPublics): fixed bug introduced when symbol
7211         type for bits was changed. It resulted in bit variables becoming
7212         global, which is not permitted in PIC 14 assembly output.
7213
7214 2003-08-23  Frieder Ferlemann <Frieder.Ferlemann AT web.de>
7215
7216         * doc/sdccman.lyx: various additions and updates. Rearranged sections
7217
7218 2003-08-22  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
7219
7220         Z80 and MCS51 linkers complaint if a public symbol is defined
7221         in more than one library module:
7222
7223         * as/mcs51/lklib.c
7224         * link/z80/lklib.c
7225         * as/mcs51/Makefile.in
7226
7227 2003-08-22  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
7228
7229         A few small changes that speed up the peephole optimizer.
7230
7231         * src/SDCCpeeph.c
7232
7233 2003-08-22  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
7234
7235         Try to make the peephole optimizer smarter by maintaining
7236         an association between the assembly source code and the
7237         iCodes that originated them. Put this information to use
7238         with a new peephole rule condition "notVolatile" so that
7239         the rules can be aggressive yet still safe.
7240
7241         * src/SDCCpeeph.c
7242         * src/SDCCpeeph.h
7243         * src/mcs51/gen.c
7244         * src/mcs51/peeph.def
7245
7246 2003-08-20  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
7247
7248         Fixed bug #741761
7249
7250         * src/mcs51/gen.c (aopForSym, leftRightUseAcc),
7251         * src/ds390/gen.c (aopForSym, leftRightUseAcc): preserve A and B
7252         if the left or right operand symbols have the accuse flag set.
7253
7254 2003-08-20  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
7255
7256         Changed the type of the result of the ! (NOT) operator to char;
7257         previously it returned the same type as the source. This allows
7258         us to eliminate all the genFloatNot functions (all of its target
7259         implementations were very buggy) since !float can use the same
7260         code as !long now.
7261
7262         * src/SDCCicode.c (ast2iCode): ! returns char
7263         * src/mcs51/gen.c (genNot, genNotFloat),
7264         * src/ds390/gen.c (genNot, genNotFloat),
7265         * src/z80/gen.c (genNot, genNotFloat),
7266         * src/pic/gen.c (genNot, genNotFloat),
7267         * src/pic16/gen.c (genNot, genNotFloat): eliminated genNotFloat
7268
7269 2003-08-19  Bernhard Held <bernhard AT bernhardheld.de>
7270
7271         pic patch provided by Slade Rich <slade_rich AT yahoo.com>
7272         1. Interrupt would not compile properly. Ensure PCLATH register is saved
7273            during interrupts. Ensure WSAVE is located at a shared bank address.
7274         2. Fixed page selection in some places
7275         3. Fixed BTFSS/C to where necessary use registers directly and not simply
7276            the registers name strings.
7277         4. Fixed "signed / unsigned compare" compiler warnings.
7278         5. The PIC port manages its own allocation of the general purpose
7279            registers, but makes no attempt to reuse them. As a result when
7280            compiling it soon runs out of general purpose registers. Some
7281            additional code was added to the files pcode.c and device.c to walk
7282            through the function call tree and rename the registers so that they
7283            get reused.
7284
7285         * src/pic/device.c
7286         * src/pic/gen.c
7287         * src/pic/glue.c
7288         * src/pic/pcode.c
7289         * src/pic/pcode.h
7290         * src/pic/ralloc.c
7291         * src/pic/ralloc.h
7292         * src/pic/genarith.c: Fixed problems with PIC 14 port in functions
7293         genPlus() & genMinus() when the result is the same as left or right
7294
7295 2003-08-18  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
7296
7297         * src/z80/gen.c (isUnsplitable, fetchPairLong): fixed bug #770454
7298
7299 2003-08-18  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
7300
7301         Made bitfield a distinct type from bit so that bitfields
7302         convert as per ANSI C and bits retain their traditional
7303         boolean style behaviour. Implemented bitfield support in
7304         the z80 port.
7305
7306         * src/SDCCsymt.h,
7307         * src/SDCCsymt.c,
7308         * src/SDCCast.c,
7309         * src/cdbFile.c,
7310         * src/mcs51/gen.c,
7311         * src/ds390/gen.c: bit v bitfield split
7312         * src/z80/gen.c: New support for bitfields
7313         * support/regression/tests/bitfields.c: reenabled z80,
7314         added more tests
7315
7316 2003-08-17  Frieder Ferlemann <Frieder.Ferlemann AT web.de>
7317
7318         Rules 246.x, 247.x relate to bitfields, the others speed up
7319         access to xdata mapped I/O devices.
7320
7321         * src/mcs51/peeph.def: added 26 peepholes 246.x - 248.x, 180.x
7322
7323 2003-08-16  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
7324
7325         Cleaned up genPackBits and genUnpackBits and added two helper
7326         functions, emitPtrByteGet & emitPtrByteSet. Added optimizations
7327         for literal assignments in genPackBits (thanks to Frieder for
7328         reminding me).
7329
7330         * src/mcs51/gen.c
7331         * src/ds390/gen.c
7332
7333 2003-08-16  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
7334
7335         Fixed bug #748310 (pointer to function type mishandled when the
7336         function name is omitted). Also fixed a SIGSEGV when a function
7337         attribute (reentrant, etc) is used on a non-function or on a
7338         function but misplaced before the parameter list.
7339
7340         * src/SDCC.y (abstract_declarator, abstract_declaractor2): fixed
7341         bug #748310
7342         * src/SDCC.y (declarator2_function_attributes): avoided SIGSEGV
7343         * support/Util/SDCCerr.h,
7344         * support/Util/SDCCerr.c: Added func attr misuse error msg
7345
7346 2003-08-13  Bernhard Held <bernhard AT bernhardheld.de>
7347
7348         Fixed bug #787649 by anonymous
7349         * src/SDCCglue.c (emitRegularMap): added emission of sloc for func ptr
7350         * src/ds390/gen.c (aopForSym): fixed func ptr in sloc
7351
7352 2003-08-14  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
7353
7354         Fixed numerous bitfield problems.
7355
7356         * src/SDCC.y: More bitfield related error checking
7357         * src/SDCCsymt.h,
7358         * src/SDCCsymt.c (compStructSize): fixed bitfield offset calc
7359         * support/Util/SDCCerr.h,
7360         * support/Util/SDCCerr.c: Added & edited some bitfield err msgs
7361         * src/mcs51/gen.c (genPackBits, genUnpackBits): fixed mask bugs
7362         * src/ds390/gen.c (genPackBits, genUnpackBits): fixed mask bugs
7363         * support/regression/tests/bitfields.c: tests added
7364
7365 2003-08-13  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
7366
7367         Made the constant following the "interrupt" keyword optional. If
7368         omitted, the function will not automatically be given an entry
7369         in the interrupt vector table (similar to #pragma NOIV, but
7370         less syntacticly kludgy). The interrupt number is also now
7371         range checked. Also fixed a bug in the high order bit example
7372         in the manual.
7373
7374         * src/SDCC.y
7375         * src/SDCCmem.c
7376         * src/SDCCglue.c
7377         * src/SDCCsymt.h
7378         * support/Util/SDCCerr.c
7379         * support/Util/SDCCerr.h
7380         * doc/sdccman.lyx
7381
7382 2003-08-13  Bernhard Held <bernhard AT bernhardheld.de>
7383
7384         * src/SDCCcse.c (algebraicOpts): fix bug converting op from value to type
7385         * src/SDCCicode.c (operandOperation): rewritten some ops
7386         (*, ==, unary_minus) to fix possible overflows and to accord with ANSI
7387         * src/SDCCsymt.c (computeType): literals are handled the same way as any
7388         other type
7389         * src/SDCCval.c (cheapestVal): removed, it doesn't accord with ANSI (can
7390         be re-activated by defining REDUCE_LITERALS)
7391         * src/SDCCval.c (constVal): fixed; hex and octal constants can be
7392         unsigned, but are signed by default
7393         * src/SDCCval.c (constVal): rearranged
7394         * src/SDCCval.c (valMod): preliminary fix
7395         * src/SDCCval.c (valCastLiteral): use TYPE_* types
7396         * support/regression/literalop.c: added, work in progress
7397
7398 2003-08-12  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
7399
7400         Generate warnings for useless declarations like "char data;"
7401         that don't do what new users expect.
7402
7403         * src/SDCC.y
7404         * support/Util/SDCCerr.h
7405         * support/Util/SDCCerr.c
7406
7407 2003-08-09  Bernhard Held <bernhard AT bernhardheld.de>
7408
7409         * src/SDCCval.c (valMult): fix overflow detection of negative int
7410
7411 2003-08-07  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
7412
7413         * src/z80/ralloc.c (joinPushes): made compatible with new signedness
7414
7415         Changes to support big endian targets:
7416
7417         * src/ports.h
7418         * src/SDCCglue.c
7419         * src/avr/main.c
7420         * src/ds390/main.c
7421         * src/izt/i186.c
7422         * src/mcs51/main.c
7423         * src/pic/main.c
7424         * src/pic16/main.c
7425         * src/xa51/main.c
7426         * src/z80/main.c
7427
7428 2003-08-06  Bernhard Held <bernhard AT bernhardheld.de>
7429
7430         * src/SDCCval.c (cheapestVal): changed behaviour to the same as constVal()
7431         * device/lib/time.c: fixed warning "integer overflow in expression"
7432
7433 2003-08-05  Bernhard Held <bernhard AT bernhardheld.de>
7434
7435         * src/SDCCval.c (cheapestVal, valueFromLit): use TYPE_* types
7436         * src/SDCCval.c (constVal): changed default to signed; hex and octal
7437         constants are unsigned; added recognition of "u" flag for unsigned
7438         * src/SDCCval.c (valMult): fixed signdness, added warning for overflow
7439         * src/SDCCval.c (valDiv, valMod): fixed signdness
7440         * src/SDCCicode.c (operandOperation): fixed critical typo; fixed
7441         signedness of modulo, left and right shift
7442         * support/Util/SDCCerr.c: added warning "integer overflow in expression"
7443         * support/Util/SDCCerr.h: added warning W_INT_OVL
7444         * src/SDCCast.c (decorateType): fixed gcc3.3 warning
7445         * src/SDCCast.c (ast_print): improved output of constants
7446
7447 2003-08-04  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
7448
7449         Fixed some warnings when building with MSVC:
7450
7451         * as\mcs51\asdata.c
7452         * as\z80\asdata.c
7453         * as\mcs51\asm.h
7454         * as\z80\asm.h
7455         * link\z80\aslink.h
7456         * link\z80\lkdata.c
7457         * link\z80\lkeval.c
7458         * link\z80\lkgb.c
7459         * link\z80\lkihx.c
7460         * link\z80\lks19.c
7461         * link\z80\lksym.c
7462         * support\cpp2\cpplib.c
7463         * src\ds390\gen.c
7464         * src\mcs51\gen.c
7465
7466 2003-08-03  Bernhard Held <bernhard AT bernhardheld.de>
7467
7468         * src/SDCCast.c (constExprTree): fix bug #781827 by Carl Worth <cworth AT isi.edu>
7469
7470 2003-08-01  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
7471
7472         * support\librarian\clean.mk: Do not remove Makefile.
7473         * support\librarian\Makefile: added.
7474
7475 2003-08-01  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
7476
7477         Added librarian to MSVC build:
7478         * all.dsp
7479         * sdcc.dsw
7480         * support\librarian\librarian.dsp
7481
7482         'configure' not needed for librarian, removed:
7483         * support\librarian\configure
7484         * support\librarian\configure.in
7485         * support\librarian\config_in.h
7486         * support\librarian\Makefile.in
7487
7488         Hopefully these ones built the librarian and the rest of sdcc properly:
7489         * Makefile
7490         * Makefile.common.in
7491
7492         Messed up 'configure', so revert to previous version:
7493         * configure
7494         * configure.in
7495
7496 2003-07-31  Bernhard Held <bernhard AT bernhardheld.de>
7497
7498         * src/SDCCicode.c (operandOperation): 3. fix, this time for Alpha; ULONG has 64 bits
7499         there, while the mantissa of a double is "only" 53 bits wide.
7500
7501 2003-07-31  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
7502
7503         Adding sdcclib to the build.  MSVC project coming soon.
7504         Files added/changed:
7505
7506         * support\librarian\clean.mk
7507         * support\librarian\configure
7508         * support\librarian\configure.in
7509         * support\librarian\config_in.h
7510         * support\librarian\Makefile.bcc
7511         * support\librarian\Makefile.in
7512         * support\librarian\sdcclib.c
7513         * Makefile.bcc
7514         * Makefile
7515         * Makefile.common.in
7516         * configure
7517         * configure.in
7518
7519 2003-07-29  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
7520
7521         Linker now complaints if linked modules have conflicting options, for
7522         example, one compiled using --model-large and another one compiled with
7523         --model-small.  The following files were modified:
7524
7525         * as\mcs51\asdata.c
7526         * as\mcs51\aslink.h
7527         * as\mcs51\asm.h
7528         * as\mcs51\asmain.c
7529         * as\mcs51\asout.c
7530         * as\mcs51\i51pst.c
7531         * as\mcs51\lkdata.c
7532         * as\mcs51\lklibr.c
7533         * as\mcs51\lkmain.c
7534         * as\z80\asdata.c
7535         * as\z80\asm.h
7536         * as\z80\asmain.c
7537         * as\z80\asout.c
7538         * as\z80\z80pst.c
7539         * link\z80\aslink.h
7540         * link\z80\lkdata.c
7541         * link\z80\lklibr.c
7542         * link\z80\lkmain.c
7543         * src\SDCCglue.c
7544
7545 2003-07-28  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
7546
7547         *link/z80/aslink.h, link/z80/lklibr.c, as/mcs51/aslink.h,
7548         as/mcs51/lklibr.c: Generate a warning when a library is not found.
7549
7550 2003-07-28  Bernhard Held <bernhard AT bernhardheld.de>
7551
7552         * src/z80/mappings.i: fix _mul[us][int,long] entries
7553
7554 2003-07-26  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
7555
7556         *src/SDCCmain.c: do not search for crt0.o when using --nostdlib
7557
7558 2003-07-24  Bernhard Held <bernhard AT bernhardheld.de>
7559
7560         * src/SDCCicode.c (operandOperation): really fixed problem with bitops
7561         * support/regression/tests/bitopcse.c: added
7562         fixed warning:
7563         * src/avr/gen.c:
7564         * src/pic/gen.c:
7565         * src/pic16/gen.c:
7566         * src/z80/gen.c:
7567         * src/xa51/gen.c:
7568
7569 2003-07-24  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
7570
7571         added support for new library format to z80, gbz80 linkers:
7572         *link/z80/aslink.h
7573         *link/z80/lklex.c
7574         *link/z80/lklib.c
7575         *link/z80/lklist.c
7576
7577 2003-07-24  Bernhard Held <bernhard AT bernhardheld.de>
7578
7579         * src/SDCCicode.c (operandOperation): fixed problem with bitops and 0xffffffff;
7580         after {double d = 0xffffffff; long l = d;} l will be 0x80000000 (LONG_MIN)
7581
7582 2003-07-23  Bernhard Held <bernhard AT bernhardheld.de>
7583
7584         added DUMMY_READ_VOLATILE:
7585         * src/SDCC.y:
7586         * src/avr/gen.c:
7587         * src/xa51/gen.c:
7588         * src/z80/gen.c:
7589         * src/pic/gen.c:
7590         * src/pic16/gen.c:
7591         * src/mcs51/gen.c:
7592         * src/ds390/gen.c:
7593         * src/SDCCcse.c (algebraicOpts): many improvements
7594         * src/SDCCcse.h: removed algebraicOpts()
7595         * src/SDCCicode.c (picDummyRead): added
7596
7597 2003-07-23  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
7598
7599         * as/mcs51/lkmem.c: Changed message "Insufficient DRAM memory" to
7600         "Insufficient space in data memory".
7601
7602 2003-07-20  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
7603
7604         * src/mcs51/gen.c: fixed bug #771358
7605         * src/z80/gen.c: fixed bug #759087
7606
7607 2003-07-20  Bernhard Held <bernhard AT bernhardheld.de>
7608
7609         * src/pic16/glue.c: minor cleanup by Vangelis
7610
7611 2003-07-19  Frieder Ferlemann <Frieder.Ferlemann AT web.de>
7612
7613         * device/include/regc515c.h: fixed #758477
7614         * device/lib/_gptrget.c: saving some cycles in generic pointer get
7615         * device/lib/_gptrput.c: saved a few bytes
7616         * my tab spacing is 8, yours too?)
7617         * device/lib/_ser.c: process RX bytes earlier than TX bytes
7618         * device/lib/serial.c: process RX bytes earlier than TX bytes
7619         * src/mcs51/gen.c(genGenPointerGet/Set): removed writing of type after postincrement
7620
7621 2003-07-18  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
7622
7623         * src/z80/gen.c: fixed some right shift bugs (#772726 among them)
7624
7625 2003-07-17  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
7626
7627     * link/z80/lklibr.c: fixed bug when there is a '.' in a library path.
7628
7629 2003-07-17  Bernhard Held <bernhard AT bernhardheld.de>
7630
7631         * device/lib/Makefile.in: bad fix, reverted to 1.43
7632
7633 2003-07-16  Bernhard Held <bernhard AT bernhardheld.de>
7634
7635         * device/lib/Makefile.in: added missing z80 object files
7636
7637 2003-07-14  Bernhard Held <bernhard AT bernhardheld.de>
7638
7639         * src/SDCCcse.c (algebraicOpts): CSE fun with &|^ and 0x00/0xff literals
7640         pic16 progress by Vangelis:
7641         * src/SDCCglobl.h:
7642         * src/SDCCmain.c:
7643         * src/pic/Makefile:
7644         * src/pic:
7645         * pic/Makefile:
7646         * pic16/device.c:
7647         * pic16/device.h:
7648         * pic16/gen.c:
7649         * pic16/gen.h:
7650         * pic16/genarith.c:
7651         * pic16/glue.c:
7652         * pic16/main.c:
7653         * pic16/pcode.c:
7654         * pic16/pcode.h:
7655         * pic16/pcodepeep.c:
7656         * pic16/peeph.def:
7657
7658 2003-07-13  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
7659
7660     * src/SDCCmain.c, src/SDCCglobl.h: added option --no-std-crt0
7661
7662 2003-07-12  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
7663
7664     * sdcc.dsw, all.dsp, link/z80/linkgbz80.dsp, as/z80/as-gbz80.dsp:
7665     added gbz80 build to MSVC project.
7666     * src/SDCCmain.c, src/SDCCglue.c, src/z80/main.c, src/z80/z80.dsp,
7667     link/z80/aslink.h, linkz80.dsp: cleaned up z80 and gbz80 asm files
7668     from 8051 stuff and setup so it links using a .lnk file.
7669
7670 2003-07-06  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
7671
7672     * support/librarian/sdcclib.c: sdcc librarian.
7673     * as/mcs51/aslink.h, as/mcs51/lklib.c: Support for libraries created
7674     with sdcclib.
7675
7676 2003-07-03  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
7677
7678     * as/mcs51/lkmain.c: properly handle extensions in function afile.
7679
7680 2003-07-02  Borut Razem <borut.razem AT siol.net>
7681
7682         * src/port.h, src/SDCCmain.c, src/pic/glue.h, src/pic/main.c,
7683         src/pic16/glue.h, sdcc/src/pic16/main.c, src/izt/i186.c,
7684         src/izt/tlcs900h.c, src/avr/main.c, src/ds390/main.c, src/mcs51/main.c,
7685         src/xa51/main.c, src/z80/main.c:
7686         virtualization of glue() function: each port has it's own glue function,
7687         which is accessed by do_glue function pointer in PORT.general structure
7688
7689 2003-07-01 Kevin Vigor <kevin AT vigor.nu>
7690
7691         * DS800C400 fun, improved ROM interface and tinibios.
7692
7693 2003-06-27 Kevin Vigor <kevin AT vigor.nu>
7694
7695         * More support for DS80C400. Now includes beginning of interface to ROM.
7696
7697 2003-06-25  Bernhard Held <bernhard AT bernhardheld.de>
7698
7699         * src/mcs51/gen.c (gencjneshort): fixed bug #760345
7700
7701 2003-06-20  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
7702
7703         * as/mcs51/lkaomf51.c: Make sure the size of the last procedure is correct.
7704
7705 2003-06-19  Borut Razem <borut.razem AT siol.net>
7706
7707         * src/z80/main.c: fixed Z80 port again: missing -k library paths in linker command line
7708
7709 2003-06-19  Borut Razem <borut.razem AT siol.net>
7710
7711         * src/SDCCutil.h, src/SDCCutil.c, src/SDCCglobl.h, src/SDCCmain.c, src/z80/main.c:
7712         fixed Z80 port - crt0.o: cannot open.
7713
7714 2003-06-19  Bernhard Held <bernhard AT bernhardheld.de>
7715
7716         * support/Util/MySystem.c (merge_command): revert bad fix
7717
7718 2003-06-18  Borut Razem <borut.razem AT siol.net>
7719
7720         * src/SDCC.lex, src/SDCCmain.c: fixed some warnings, introduced with changes made 15.06.1003
7721
7722 2003-06-18  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
7723
7724         * src/SDCCglobl.h, src/SDCCmain.c, doc/sdccman.lyx:
7725         option --use-stdout sends errors to stdout instead of stderr.
7726
7727 2003-06-18  Bernhard Held <bernhard AT bernhardheld.de>
7728
7729         * support/Util/MySystem.c (merge_command): quick fix for Linux segfault with \"cmd\" arg
7730
7731 2003-06-15  Borut Razem <borut.razem AT siol.net>
7732
7733         * support/cpp2/sdcc.h: HAVE_DOS_BASED_FILE_SYSTEM defined for _WIN32
7734         * src/SDCC.lex: cloneXxx and copyAndFreeXxx functions for options and optimize stack handling
7735         * src/SDCCglobl.h, src/SDCCmain.c, src/ds390/main.c, src/mcs51/main.c, src/z80/main.c:
7736         fixed width array of pointers replaced with sets;
7737         multiple include and lib paths ared transferred to preprocessor and linker
7738         * src/SDCCset.c, src/SDCCset.h: added function setFromSetNonRev() and mergeSets()
7739         * src/SDCCsymt.c: reimplemented function inCalleeSaveList() by using sets instead
7740         fixed width array of pointers
7741         * src/SDCCutil.c, src/SDCCutil.h: added functions fputStrSet(), appendStrSet(), joinStrSet();
7742         removed functions addToList(), join(), joinn(), pathCharsEquivalent(), pathCharTransform(),
7743         fixupPath(), getPathDifference()
7744         * src/ds390/gen.c, src/mcs51/gen.c: reimplemented function  inExcludeList() by using sets instead
7745         fixed width array of pointers
7746
7747 2003-06-11  Bernhard Held <bernhard AT bernhardheld.de>
7748
7749         * src/pic16/ralloc.c: fix warnings
7750         * src/pic16/pcode.c: fix warning
7751
7752 2003-06-10  Scott Dattalo  <scott AT dattalo.com>
7753
7754          Scott D. for Vangelis Rokas (vrokas AT otenet.gr). I (scott) don't
7755         know all the details, but essentially this set of changes enable
7756         the pic16 port to generate movff instructions and generate assembler
7757         directives,
7758         * src/SDCCmain.c:
7759         * src/pic16/gen.c:
7760         * src/pic16/glue.c:
7761         * src/pic16/pcode.c:
7762         * src/pic16/device.c:
7763         * src/pic16/main.c:
7764         * src/pic16/pcode.h:
7765         * src/pic16/pcoderegs.c:
7766         * src/pic16/ralloc.c:
7767         * src/pic16/ralloc.h:
7768
7769 2003-06-08  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
7770
7771         * support/Util/SDCCerr.c, src/SDCCglobl.h, src/SDCCmain.c, doc/sdccman.lyx:
7772         added option --vc, so sdcc errors and warnings are compatible with
7773         Microsoft Visual Studio.
7774
7775 2003-06-07  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
7776
7777         * device/lib/_atof.c, device/lib/Makefile.in, device/include/stdlib.h,
7778           device/lib/libfloat.lib: added atof function.
7779
7780 2003-06-04  Bernhard Held <bernhard AT bernhardheld.de>
7781
7782         * doc/sdccman.lyx: updated to Lyx 1.3
7783         * doc/cdbfileformat.lyx: updated to Lyx 1.3
7784         * doc/test_suite_spec.lyx: updated to Lyx 1.3
7785         * doc/Makefile: added fix for the \tabularnewline problem, thanks to Jesus
7786
7787 2003-06-03  Bernhard Held <bernhard AT bernhardheld.de>
7788
7789         * src/SDCCpeeph.c: separate peepRules2pCode() for pic16 by "Vangelis Rokas" <vrokas AT otenet.gr>
7790
7791 2003-06-02  Frieder Ferlemann <Frieder.Ferlemann AT web.de>
7792
7793         * doc/sdccman.lyx: cvs revision keywords, passing pdf information in latex preamble,
7794           additions to the "related tools/documentation" section
7795
7796 2003-06-02  Bernhard Held <bernhard AT bernhardheld.de>
7797
7798         * src/SDCCglue.c (tempfileandname): added check for missing TMP/TEMP/TMPDIR variable
7799
7800 2003-05-29  Bernhard Held <bernhard AT bernhardheld.de>
7801
7802         * src/pic/device.c: added 16F819, patch by "David I. Lehn" <dlehn AT vt.edu>
7803         * src/SDCCcse.c (algebraicOpts): fixed "c * 1"
7804
7805 2003-05-28  Bernhard Held <bernhard AT bernhardheld.de>
7806
7807         * doc/sdccman.lyx: fix double dash and other minor things
7808         * doc/Makefile: fix double dash
7809
7810 2003-05-28  Karl Bongers(patches from Martin Helmling)
7811         * debugger/mcs51/sdcdb.c,cmd.c,break.c and .h files. Martin adds
7812           condition and ignore commands.
7813
7814 2003-05-28  Frieder Ferlemann <Frieder.Ferlemann AT web.de>
7815
7816         * doc/sdccman.lyx: Changes all over, index improved, smaller margins. The manual
7817           is in parts still quite out of date, I did changes as far as I felt makes sense
7818           for a non-native english speaker.
7819           Please feel free to add to the manual or to correct my changes.
7820         * doc/Makefile: undid touching the date of intermediate tex files.
7821
7822 2003-05-26  Frieder Ferlemann <Frieder.Ferlemann AT web.de>
7823
7824         * doc/sdccman.lyx: Manual has an index now
7825
7826 2003-05-25  Bernhard Held <bernhard AT bernhardheld.de>
7827
7828         Finalize muluint/mulsint and mululong/mulslong merging:
7829         * device/lib/_mulint.c
7830         * device/lib/_mullong.c
7831         * device/lib/gbz80/mul.s
7832         * device/lib/gbz80/stubs.s
7833         * device/lib/z80/mul.s
7834         * device/lib/z80/stubs.s
7835         * src/SDCCsymt.c (initCSupport)
7836
7837 2003-05-25  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
7838
7839         * as/mcs51/lkaomf51.c: Address space 'z' was missing.
7840         * src/avr/avr.dsp, src/ds390/ds390.dsp, src/mcs51/mcs51.dsp,
7841           src/pic/pic.dsp, src/pic16/pic16.dsp, src/xa51/xa51.dsp,
7842           src/x80/z80.dsp: peep.rul is bigger now, so /Zm1000 is used
7843           instead of /Zm500.
7844
7845 2003-05-25  Frieder Ferlemann <Frieder.Ferlemann AT web.de>
7846
7847         * src/mcs51/peeph.def: added rules 244.x, 245.x. Although they pass
7848           the regression tests I'm not brave enough to enable 245.b, 245.c
7849         * doc/sdccman.lyx: added latex preamble for hyperref package.
7850           Using pdflatex this will give you a hyperlinked pdf file with
7851           bookmarks. (prepend '%' before /usepackage if this breaks something)
7852
7853 2003-05-24  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
7854
7855          * doc/sdccman.lyx: updated information about .adb files (fixed bug 742649)
7856
7857 2003-05-22  Bernhard Held <bernhard AT bernhardheld.de>
7858
7859         * src/pic16/pcode.c (pic16_get_op_from_instruction): fixed a gcc 3.x warning
7860
7861 2003-05-21    <johan AT balder>
7862
7863         * src/SDCCglue.c (printIval): fixed bug #739934
7864
7865 2003-05-19  Bernhard Held <bernhard AT bernhardheld.de>
7866
7867         Applied patch from bug 737905 (renamed yylineo to mylineno):
7868         * src/altlex.c
7869         * src/SDCCast.c
7870         * src/SDCglobl.h
7871         * src/SDCC.lex
7872         * src/SDCCsymt.c
7873         * src/SDCCval.c
7874         * src/pic16/pcode.c: Cleaned warnings
7875         * src/pic16/pcodeflow.c: Cleaned warnings
7876         * src/pic16/pcoderegs.c: Cleaned warnings
7877
7878 2003-05-19  Scott Dattalo  <scott AT dattalo.com>
7879
7880         * src/pic16/pcode.c: Cleaned warnings
7881         * src/pic16/pcodepeep.c: Cleaned warnings
7882         * src/pic16/ralloc.c: Cleaned warnings
7883
7884 2003-05-19  Bernhard Held <bernhard AT bernhardheld.de>
7885
7886         * doc/sdccman.lyx: fixed bug 739745
7887         * src/pic16/pcode.c (pic16_get_op): fixed warning on alpha
7888
7889 2003-05-18  Bernhard Held <bernhard AT bernhardheld.de>
7890
7891         * src/port.h: removed DEFAULT_PORT, it's not yet pic16 ;-)
7892         it can be defined with CFLAGS when running configure
7893         * src/SDCCmain.c: fixed compiling + linking with object files
7894
7895 2003-05-18  Vangelis Rokas (vrokas AT otenet.gr)
7896
7897         * configure.in: configure for pic16 port,
7898             added --disable-pic16-port
7899         * sdccconf_in.h: added macro OPT_DISABLE_PIC16
7900         * src/SDCCmain.c: linkOptions is changed to set *,
7901             added if/endif conditional macros to remove options help
7902             messages from optionsTable when a port is not configured, added
7903             support for the PIc16 port in the ports table, when executing
7904             the compiler with no port specified on command line, a default
7905             port is selected with the new macro DEFAULT_PORT which is
7906             defined in port.h, in setDefaultOptions() linkOptions is removed
7907             from initialization assignment, since now it is a set,
7908             parseCmdLine uses setParseWithComma for linkOptions, in
7909             linkEdit() linkOptions are accessed with new function indexSet()
7910             which returns the i'th item of a set variable. See SDCCset.c, in
7911             linkEdit() when calling buildCmdLine(), added linkOptions as
7912             last argument. Now users can pass arguments to gplink via the
7913             -Wl option, main() uses pic16glue() to glue up pic16 programs
7914         * src/SDCCpeeph.c: various changes to support pic16
7915         * src/SDCCset.c: added function  void *indexSet(set *, int)  to
7916             return the i'th item of the set
7917         * src/SDCCset.h: added function prototype for indexSet()
7918         * src/SDCCsymt.c: in checkSClass(), added support for PIC16
7919         * src/clean.mk: added pic16 in CLEANALLPORTS variable
7920         * src/port.h: added TARGET_ID_PIC16,TARGET_IS_PIC16 macro,
7921             added macro DEFAULT_PORT
7922         * src/pic/main.c: corrected arguments of gplnk in _linkCmd
7923         * src/pic16/gen.c: bug fix in genCpl(), now the correct code is
7924             generated
7925         * src/pic16/glue.c: commented out some error producing lines
7926         * src/pic16/main.c: __config directives are commented out to stop
7927             gpasm complaining and test the linkage with gplink, _linkCmd and
7928             _asmCmd changed to be more gplink and gpasm friendly
7929         * src/pic16/peeph.def: peep rule 3 is commented out, since it
7930             produced an error when parsed, peep rule 12 is added to utilize
7931             movff, but it is commented out since the pCode does not support
7932             yet a command with 2 address arguments
7933
7934 2003-05-18    <johan AT balder>
7935
7936         * src/ds390/gen.c (genArrayInit): removed obsolete and buggy ARRAYINIT
7937         * src/ds390/main.c (genArrayInit): removed obsolete and buggy ARRAYINIT
7938 2003-05-17  Karl Bongers(apply patches from Martin Helmling)
7939
7940         * debugger/mcs51/sdcdb.c,cmd.c,break.c and .h files.
7941   Added feature to script commands from file.
7942
7943 2003-05-14  Bernhard Held <bernhard AT bernhardheld.de>
7944
7945         * device/lib/_strtok.c: fixed bug #734355 by Lenny Story and Tim Woodall
7946         * src/SDCCutil.c: include ctype.h for win32
7947
7948 2003-05-13  Bernhard Held <bernhard AT bernhardheld.de>
7949
7950         * src/pic16/*: removed CR from many files, reported by Vangelis Rokas
7951
7952 2003-05-12  Karl Bongers(apply development patches from Martin Helmling)
7953
7954         * debugger/mcs51/sdcdb.c,simi.c,cmd.c,break.c and .h files.
7955   Fixed so you can set breakpoints prior to run, run does not stop
7956   on entry now.  Add tbreak.  Other enhancements and fixes for use
7957   with ddd.
7958
7959 2003-05-12  Borut Razem <borut.razem AT siol.net>
7960
7961         * src/SDCCmain.c: fixed the problem with searching the DATADIR as the last resort on *nix
7962
7963 2003-05-11  Borut Razem <borut.razem AT siol.net>
7964
7965         * src/SDCCutil.c: WIN32 version of getBinPath() calls GetModuleFileName() to determine
7966         the path of bin directory, so that PATH is the only env. variable, which has to be set
7967         in case of standard installation.
7968         * src/ds390/ds390.dsp: increased value of /Zm option to 1000
7969         * src/pic/main.c: add quotes to file name parameters for gplink and gpasm
7970         * src/SDCCglobl.h, src/SDCCmain.c, doc/sdccman.lyx: added --print-search-dirs command line option
7971
7972 2003-05-04  Bernhard Held <bernhard AT bernhardheld.de>
7973
7974         * src/SDCCmain.c (linkEdit): fixed buffer overflow for gbz80
7975         * support/regression/Makefile: inter-port-clean is no longer nesessary, the
7976         temp files are in the port dir; clean the gen/test directory when
7977         generating new test.c
7978         * support/regression/ports/host/spec.mk: defined OBJEXT for target clean
7979         * support/regression/tests/vaargs.c: fixed gcc 3.3 warning
7980         * support/regression/tests/zeropad.c: added
7981
7982 2003-05-09    <johan AT balder>
7983
7984         * src/SDCCglue.c: fixed bug #597940
7985
7986 2003-05-05  Karl Bongers(apply patches from Martin Helmling)
7987
7988         * debugger/mcs51/sdcdb.c,simi.c,cmd.c,symtab.c and .h files.
7989   cache sfr, optimize next,step, fix off by one sourceline,
7990   support ddd list function.
7991         * sim/ucsim/cmd.src/newcmd.cc - small fix for sdcdb use.
7992
7993 2003-05-04  Bernhard Held <bernhard AT bernhardheld.de>
7994
7995         * support/regression/HTMLgen.py: added compare_s2f()
7996         * support/regression/Makefile: redo 1.27
7997         * support/regression/generate-cases.py: redo 1.5
7998
7999 2003-04-30  Bernhard Held <bernhard AT bernhardheld.de>
8000
8001         * support/regression/tests/float.c: workaround 33 bit hex constant
8002         * support/regression/tests/simplefloat.c: fix division for host
8003
8004 2003-04-29  Scott Dattalo  <scott AT dattalo.com>
8005
8006         * src/pic/pcoderegs.c Applied patch from Jim Hawkridge <jim AT jimhawkridge.uk.eu.org>
8007         that tame's the PIC's over-aggressive optimizer.
8008
8009 2003-04-29  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
8010
8011          * src.dsw, link/z80/aslink.h, link/z80/linkz80.dsp: z80 linker
8012          support for MSVC.
8013
8014 2003-04-29  Kevin Vigor <kevin AT vigor.nu>
8015
8016         Initial support for DS80C400. "Hello world" runs on TINIm400
8017         (with polled I/O).
8018
8019 2003-04-28  Karl Bongers(apply patches for Martin Helmling)
8020
8021          * debugger/mcs51/sdcdb.c,simi.c,cmd.c,symtab.c and .h files.
8022          * Some notes on ddd usage added in debugger/README
8023          Martin Helmling adding more features and fixes for ddd GUI debugger.
8024          Code added for nexti, stepi, up, down, and other adjustments.
8025
8026 2003-04-28  Scott Dattalo  <scott AT DATTALO.COM>
8027
8028         * src/pic/pCodepeep.c non-wildcard asmops are now handled
8029         * src/pic/peeph.def Added two rules to optimize carry manipulation
8030         * src/pic/* removed debug printfs
8031
8032 2003-04-28  Bernhard Held <bernhard AT bernhardheld.de>
8033
8034         * debugger/mcs51/cmd.c: added header newalloc.h
8035
8036 2003-04-26  Bernhard Held <bernhard AT bernhardheld.de>
8037
8038         * as/Makefile: new EXEEXT
8039         * as/z80/Makefile: remove trailing slash of BUILDIR
8040         * as/z80/clean.mk: new EXEEXT
8041         * Makefile.common.in: add to CFLAGS (and others), don't replace it
8042         * support/cpp2/Makefile.in: new EXEEXT
8043         * src/pic/glue.c (pic14emitRegularMap): fixed warning
8044
8045 2003-04-24  Bernhard Held <bernhard AT bernhardheld.de>
8046
8047         Cygwin's gcc always appends .exe: 'gcc -o a a.c' creates a.exe;
8048         EXEEXT was introduced to fix all related problems with targets
8049         "clean", "install" and "uninstall"; a couple of further flaws
8050         especially with "clean" have been fixed too
8051         * as/mcs51/Makefile.in
8052         * as/mcs51/clean.mk
8053         * as/z80/Makefile
8054         * Makefile
8055         * clean.mk
8056         * debugger/mcs51/Makefile.in
8057         * debugger/mcs51/clean.mk
8058         * link/z80/Makefile
8059         * link/z80/Makefile.in
8060         * link/z80/clean.mk
8061         * link/Makefile
8062         * packihx/Makefile.in
8063         * packihx/clean.mk
8064         * sim/ucsim/Makefile
8065         * sim/ucsim/clean.mk
8066         * sim/ucsim/avr.src/Makefile.in
8067         * sim/ucsim/avr.src/clean.mk
8068         * sim/ucsim/s51.src/Makefile.in
8069         * sim/ucsim/s51.src/clean.mk
8070         * sim/ucsim/xa.src/Makefile.in
8071         * sim/ucsim/xa.src/clean.mk
8072         * sim/ucsim/z80.src/Makefile.in
8073         * sim/ucsim/z80.src/clean.mk
8074         * sim/ucsim/main_in.mk
8075         * sim/ucsim/packages_in.mk
8076         * sim/ucsim/gui.src/Makefile.in
8077         * sim/ucsim/gui.src/serio.src/Makefile.in
8078         * sim/ucsim/gui.src/serio.src/clean.mk
8079         * src/Makefile.in
8080         * src/clean.mk
8081         * support/cpp2/Makefile.in
8082         * support/cpp2/clean.mk
8083         * support/makebin/Makefile
8084         * support/makebin/clean.mk
8085         * support/scripts/sdcc_mingw32: --program-suffix no longer needed
8086         * doc/sdccman.lyx: --program-suffix no longer needed
8087
8088 2003-04-23  Karl Bongers(apply patches for Martin Helmling)
8089
8090          * debugger/mcs51/sdcdb.c,simi.c,cmd.c,..
8091          Martin Helmling added support for ddd GUI debugger.
8092          Code added to display assembly, set variables, and other commands
8093          to interface to ddd.
8094
8095 2003-04-23  Bernhard Held <bernhard AT bernhardheld.de>
8096
8097         * as/Makefile: fix target clean
8098         * as/clean.mk: fix target clean
8099         * as/z80/clean.mk: fix target clean
8100
8101 2003-04-22  Bernhard Held <bernhard AT bernhardheld.de>
8102
8103         * Makefile.common.in: added  AT EXEEXT AT
8104         * configure.in: removed all mingw32 stuff
8105         * configure: rebuilt from configure.in
8106         * doc/sdccman.lyx: updated section "installation"
8107         * support/scripts/sdcc_mingw32: adapted to configure
8108         * support/scripts/sdcc_cygwin_mingw32: added
8109
8110 2003-04-22  Scott Dattalo  <scott AT dattalo.com>
8111
8112         * src/pic Added object file support for the PIC port
8113         * src/pic Applied patch from Craig Franklin (this started the object file support)
8114         * src/regression Updated the PIC regression tests for object files
8115
8116 2003-04-20  Borut Razem <borut.razem AT siol.net>
8117
8118         * sdcc/as/mcs51/lklex.c: make getfid() more robust and fixed gcc warning:
8119           lklex.c: In function `getfid':
8120           lklex.c:203: warning: array subscript has type `char'
8121         * src/SDCCglobl.h: small change in stack handling macros, to avoid crash when compiled
8122           with MSVC with global optimization enabled (probably an cl compiler bug ;-)
8123         * support/Util/SDCCerr.c, support/Util/SDCCerr.h: added function fatal(), called from
8124           stack handling macros
8125
8126 2003-04-19  Borut Razem <borut.razem AT siol.net>
8127
8128         * "handling space characters in file path" task:
8129         * src/SDCCmacro.c: fixed bug in handlig quote at the end of line
8130         * support/Util/BuildCmd.c: define par as NULL if parameter value is invalid
8131         * support/Util/MySystem.h: make it self-sufficient
8132         * src/avr/main.c, src/ds390/main.c, src/mcs51/main.c, src/pic/main.c, src/xa51/main.c,
8133           src/z80/main.c, sdcc/as/mcs51/lklex.c:
8134           handling space characters in file path
8135         * src/SDCCmain.c: introduced setDataPaths() function, {datadir} macro
8136           (it will be used by assemblers, which have their own includes, e.g. gpasm)
8137         * support/Util/MySystem.c: handling space characters in executable's path
8138
8139 2003-04-19  Bernhard Held <bernhard AT bernhardheld.de>
8140
8141         * as/z80/Makefile: fix permanent rebuild of z80
8142         * sim/ucsim/gui.src/Makefile.in: target "install" builds the same packages as target "all"
8143         * support/regression/tests/bitfields.c: added Johan's bitfields.c
8144
8145 2003-04-18      Kevin Vigor <kevin AT vigor.nu>
8146
8147         * src/SDCCopt.c: add special case optimization to replace modulo by
8148           a power of two with a bitwise AND.
8149
8150 2003-04-18    <johan AT balder>
8151
8152         * src/mcs51/gen.c (getFreePtr): fixed bug #635354
8153
8154 2003-04-17    <johan AT balder>
8155
8156         * src/mcs51/ralloc.c (packRegsForAssign): fixed bug #716790 and removes lot's of redundant register usage around function calls
8157         * src/mcs51/ralloc.c (packRegisters): fixed bug #720667
8158
8159 2003-04-13  Borut Razem <borut.razem AT siol.net>
8160
8161         * doc/sdccman.lyx: updated info about #pragma SAVE/RESTORE nesting
8162         * configure.in, configure: fixed problems on cygwin/WinCVS environmet with ports.* line endings;
8163           fixed mingw problem in adl_NORMALIZE_PATH
8164
8165 2003-04-12  Borut Razem <borut.razem AT siol.net>
8166
8167         * fixed "#pragma SAVE/RESTORE can not be nested":
8168         * src/SDCC.lex: reworked pragma handling functions
8169         * sdcc/src/SDCCglobl.h: reworked stack handling macros
8170         * support/Util/SDCCerr.c, support/Util/SDCCerr.h: added E_STACK_VIOLATION error
8171
8172 2003-04-12  Bernhard Held <bernhard AT bernhardheld.de>
8173
8174         * src/SDCCutil.c (pathEquivalent): defined but not used
8175         * debugger/mcs51/sdcdb.c: replace SDCC_LIB_DIR
8176         * configure.in: remove sdcc_datadir, sdcc_lib_dir and sdcc_include_dir
8177         * configure: rebuilt from configure.in
8178         * sdccconf_in.h: remove SDCC_LIB_DIR and SDCC_INCLUDE_DIR
8179         * sdcc_vc_in.h: remove SDCC_LIB_DIR and SDCC_INCLUDE_DIR
8180         * device/include/Makefile.in: replace sdcc_datadir
8181         * device/lib/Makefile.in: replace sdcc_datadir
8182         * Makefile.common.in: add LDFLAGS from configure
8183         * packihx/Makefile.in: use LDFLAGS
8184         * src/Makefile.in: use LDFLAGS
8185         * support/cpp2/Makefile.in: add LDFLAGS from configure
8186         * support/makebin/Makefile: use LDFLAGS
8187         * .version: bumped version number to 2.3.5
8188
8189 2003-04-12  Borut Razem <borut.razem AT siol.net>
8190
8191         * completed "different paths" task:
8192         * src/SDCCmacro.c: fixed bug in handling quotes
8193         * src/SDCCutil.c, src/SDCCutil.c: rewritten getPrefixFromBinPath()
8194         * src/SDCCmain.c: _discoverPaths() replaced with setBinPaths(), setIncludePath() and setLibPath()
8195
8196 2003-04-12  Bernhard Held <bernhard AT bernhardheld.de>
8197
8198         * src/pic/pcoderegs.c (Remove1pcode): fix warning on alpha
8199
8200 2003-04-11 kevin Vigor <kevin AT vigor.nu>
8201
8202         * ds390/gen.c ds390/peeph.def: fix bug 706781
8203
8204 2003-04-11  Borut Razem <borut.razem AT siol.net>
8205
8206         * support/Util/dbuf.c, support/Util/dbuf.h: update to version 1.1.1 - re-added C++ stuff to make it still more portable
8207
8208 2003-04-10  Scott Dattalo  <scott AT dattalo.com>
8209
8210         * src/pic/* Applied the pointer-to-function patch from Steve Tell.
8211         * src/pic/* Fixed several pointer bugs. (PIC port broke when the ruonly bit was
8212          set - this bit used to not be set...).
8213         * src/pic/gen.c Fixed buf 609268 ==> x = (x+1) & 0xf; generated
8214           bad code in PIC Port
8215         * src/regression/and2.c added to test bug 609268
8216         * src/regression/Makefile added and2.c to regression test
8217
8218
8219 2003-04-08    <johan AT CP255758-A>
8220
8221         * src/mcs51/gen.c (gen51Code): display reg usage in --icode-in-asm
8222         * src/mcs51/ralloc.c (serialRegAssign): update the registers in use and save some slocs
8223         * src/SDCCicode.h: added riu to show the register usage in --icode-in-asm
8224
8225 2003-04-07  Bernhard Held <bernhard AT bernhardheld.de>
8226
8227         * configure.in: fully support prefix, exec_prefix, datadir, docdir;
8228         fix bug #487815
8229         * support/cpp2/Makefile.in: fix bug #487815
8230         * configure: rebuilt from configure.in
8231         * Makefile.common.in: docdir changed, new path suffixes
8232         * sdccconf_in.h: new RETSIGTYPE, and other PATHs
8233         * sdcc_vc_in.h: reflect changes from sdccconf.h
8234         * src/SDCCglobl.h: remove *SEPARATOR_CHARS, they are now in sdccconf.h
8235         * src/SDCCutil.h: remove BINDIR hack
8236         * doc/sdccman.lyx: update new path hierarchy
8237
8238 2003-04-06    Paul Stoffregen <paul AT pjrc.com>
8239
8240         * src/SDCCpeeph.c: added okToRemoveSLOC test
8241
8242 2003-04-06    Paul Stoffregen <paul AT pjrc.com>
8243
8244         * device/lib/printf_fast.c: added leading zero format ("%06d", etc)
8245
8246 2003-04-06    Paul Stoffregen <paul AT pjrc.com>
8247
8248         * src/SDCCpeeph.c: added labelIsReturnOnly test
8249         * src/mcs51/peeph.def: Peephole 244: replace ljmp to ret with ret
8250
8251 2003-04-05    <johan AT balder>
8252
8253         * src/SDCCcse.c (cseAllBlocks): fixed bug #460088
8254         * src/SDCCloop.c (DEFSETFUNC): fixed bug #460088
8255         * src/SDCCopt.c (eBBlockFromiCode): fixed bug #460088
8256         * src/SDCCast.c: fixed a warning
8257         * src/SDCCast.h: fixed a warning
8258         * src/SDCCicode.c (operandFromAst): fixed a warning
8259
8260 2003-04-04    <johan AT balder>
8261
8262         * src/SDCCloop.c (DEFSETFUNC): undid the fix for bug #519584
8263         * src/SDCCast.c (decorateType): fixed bug #715076
8264         * src/SDCC.y: fixed bug #702907
8265
8266 2003-04-03    <johan AT balder>
8267
8268         * device/lib/_mulint.c (_muluint): new #pragma LESS_PEDANTIC
8269         * src/SDCCopt.c (eBBlockFromiCode): new #pragma LESS_PEDANTIC
8270         * src/SDCCglobl.h (PRAGMA_LESSPEDANTIC): new #pragma LESS_PEDANTIC
8271         * src/SDCC.lex (doPragma): new #pragma LESS_PEDANTIC
8272         * src/SDCCmain.c (parseCmdLine): new #pragma LESS_PEDANTIC
8273
8274 2003-04-03  Bernhard Held <bernhard AT bernhardheld.de>
8275
8276         * _decdptr.c: fix return values
8277         * _gptrget.c: fix return values
8278         * _gptrgetc.c: fix return values
8279         * _gptrput.c: fix return values
8280         * _mulint.c: fix return values
8281         * as/z80/Makefile: fix 'make -j' problem
8282
8283 2003-04-02  Bernhard Held <bernhard AT bernhardheld.de>
8284
8285         * Makefile.common.in: unused PORT, SCC and SAS removed, fixed docdir
8286         * configure.in: big cleanup, updated to autoconf 2.5x
8287         * configure: rebuilt from configure.in
8288         * sdccconf_in.h: new RETSIGTYPE, and other PATHs
8289         * sdcc_vc_in.h: reflect changes from sdccconf.h
8290         * doc/Makefile: fixed a flaw in "make install"
8291
8292 2003-04-02    <johan AT balder>
8293
8294         * src/ds390/gen.c (genCmp): no comments
8295         * src/mcs51/gen.c (genCmp): no comments
8296         * src/SDCCopt.c (eBBlockFromiCode): detect missing return values
8297         * src/SDCCast.c (ast_print): fixed the function type in --dumptree
8298
8299 2003-04-01  Bernhard Held <bernhard AT bernhardheld.de>
8300
8301         * support/regression/generate-cases.py: place generated file in given sub directory
8302         * support/regression/ports/host/spec.mk: prevent removal of testfwk.o
8303         * support/regression/Makefile: improvements for 'make -j';
8304         side effect: it's simpler and faster now
8305
8306 2003-03-31  Borut Razem <borut.razem AT siol.net>
8307
8308         * src/z80/main.c: link-{port} and as-{port} defined without path
8309         * src/src.dsp: support/Util/MySystem.h and src/SDCCutil.h added to project
8310
8311 2003-03-31  Bernhard Held <bernhard AT bernhardheld.de>
8312
8313         * Makefile, src/Makefile.in: add dependencies, so that 'make -j' works
8314
8315 2003-03-30  Borut Razem <borut.razem AT siol.net>
8316
8317         * support/Util/BuildCmd.c, support/Util/BuildCmd.h: rewrite buildCmdLine(),
8318           changed type of list parameter to set
8319         * src/ds390/main.c: changed type of parameter asmOptions to set in _tininative_do_assemble()
8320         * src/port.h: changed type of do_assemble() parameter to set
8321         * src/SDCCmain.c: type of asmOptions changed to set, introduced setParseWithComma(),
8322           sdcpp defined without path, removed variable VersionString, introduced set binPathSet,
8323           definition of "cppoutfilename" macro with NULL value in preProcess()
8324         * src/SDCCglobl.h: included "SDCCset.h", added declaration of setParseWithComma()
8325         * src/SDCCglue.c: removed variable VersionString, inroduced spacesToUnderscores()
8326         * support/Util/MySystem.c, support/Util/MySystem.h: rewrite, char *ExePathList[]
8327           replaced with set *binPathSet
8328         * shash_add() deallocates the item, if allready exsists, before adding the new one
8329         * src/SDCCmacro.c: handling macros with empty or NULL values in _evalMacros()
8330
8331 2003-03-30  Scott Dattalo  <scott AT dattalo.com>
8332
8333         * src/pic/gen.c: Commit patch from Steve Tell <tell AT telltronics.org> that fixes
8334           a nested for loop bug in the PIC port
8335         * src/regression/nestfor.c: new regression test file Steve wrote to test nested
8336           for loops
8337
8338 2003-03-29  Bernhard Held <bernhard AT bernhardheld.de>
8339
8340         * support/Util/dbuf.h: remove C++ stuff to make it portable
8341
8342 2003-03-28  Borut Razem <borut.razem AT siol.net>
8343
8344         * src/SDCC.lex: Fix for bug #711240: dynamic buffer handling of C
8345           literal strings in stringLiteral()
8346         * support/Util/dbuf.c, support/Util/dbuf.h: added: dynamic buffer handling
8347         * src/Makefile.bcc, src/Makefile.in, src\src.dsp: added support/Util/dbuf.c
8348           to the project
8349
8350 2003-03-27  Paul Stoffregen <paul AT pjrc.com>
8351
8352         * src/SDCCpeeph.c (pcDistance): accurate byte distance for mcs51
8353
8354 2003-03-26    <johan AT balder>
8355
8356         * src/mcs51/gen.c (saveRegisters): catched symbol abuse
8357         * src/ds390/gen.c (saveRegisters): catched symbol abuse
8358         * src/SDCCast.c (decorateType): fixed " -v < 3"
8359
8360 2003-03-23  Bernhard Held <bernhard AT bernhardheld.de>
8361
8362         * doc/cdbfile.html: removed, replaced by cdbfileformat.lyx
8363         Added Lenny Story's debug infrastructure changes:
8364         * src/Makefile.in:  added new files cdbFile.c and SDCCdebug.c
8365         * src/Makefile.bcc: added new files cdbFile.c and SDCCdebug.c
8366         * src/cdbFile.c: added
8367         * src/SDCCdebug.c: added
8368         * src/SDCCdebug.h: added
8369         * src/SDCCast.c (createFunction)
8370         * src/SDCCglue.c (emitRegularMap, emitStaticSeg, emitOverlay, glue)
8371         * src/SDCCmain.c (parseCmdLine, main)
8372         * src/SDCCmem.c (redoStackOffsets)
8373         * src/SDCCsymt.c (cdbStructBlock, cdbTypeInfo, cdbSymbol, cdbStruct, cdbStructBlock)
8374         * src/SDCCsymt.h
8375         * src/common.h
8376         * src/avr/gen.c (genAVRCode)
8377         * src/ds390/gen.c (gen390Code)
8378         * src/mcs51/gen.c (gen51Code)
8379         * src/pic/gen.c (genpic14Code)
8380         * src/pic/glue.c (pic14emitRegularMap, pic14emitStaticSeg, pic14emitOverlay, picglue)
8381         * src/xa51/gen.c (genXA51Code)
8382         * src/SDCCast.c: fixed "void foo(void){char c; -c < 0;}"
8383
8384 2003-03-22  Frieder Ferlemann <Frieder.Ferlemann AT web.de>
8385
8386         * src/mcs51/gen.c (genCodePointerGet): quicker code for bug #700797
8387         * src/mcs51/peeph.def: added rules 177, 241.x to 243, touched 181, 182.x, 193.x
8388
8389 2003-03-22    <johan AT balder>
8390
8391         * src/SDCCicode.c (geniCodeDerefPtr): fixed bug #698231
8392
8393 2003-03-21  Bernhard Held <bernhard AT bernhardheld.de>
8394
8395         * support/scripts/sdcc_mingw32: adapted to configure from autoconf 2.54
8396         * doc/cdbfileformat.lyx: added, written by Lenny Story
8397         * doc/Makefile: added cdbfileformat.lyx
8398         * doc/clean.mk: added cdbfileformat.lyx
8399
8400 2003-03-20  Bernhard Held <bernhard AT bernhardheld.de>
8401
8402         * src/mcs51/peeph.def: fix bug #705773
8403
8404 2003-03-20    <johan AT balder>
8405
8406         An sfr/sbit can have an "at #" AND an initializer
8407         * src/SDCCsymt.c (checkSClass):
8408         * src/SDCCmem.c (allocGlobal):
8409         * src/SDCCmem.c (allocLocal):
8410         * src/SDCCast.c (createBlock):
8411
8412 2003-03-17  Bernhard Held <bernhard AT bernhardheld.de>
8413
8414         * src/ds390/peeph.def: fix bug #704878: added rule 213.b suggested by Jan Rejlek
8415
8416 2003-03-16    <johan AT balder>
8417
8418         Undid the hackup of const and volatile, the problem is much bigger
8419         * src/SDCC.y:1.65
8420         * src/SDCCast.c:1.171
8421         * src/SDCCglue.c:1.138
8422         * src/SDCCicode.c:1.146
8423         * src/SDCCsymt.c:1.150
8424         * src/SDCCval.c:1.65
8425
8426 2003-03-15  Bernhard Held <bernhard AT bernhardheld.de>
8427
8428         * src/mcs51/ralloc.c (packRegsForAssign): fixed bug #703541
8429         * src/ds390/gen.c (genAddrOf): fixed bug #704087
8430
8431 2003-03-13    <johan AT balder>
8432
8433         Hackup const and volatile modifiers in type chains a bit:
8434         * src/SDCC.y:1.63
8435         * src/SDCCast.c:1.169
8436         * src/SDCCglue.c:1.136
8437         * src/SDCCicode.c:1.143
8438         * src/SDCCsymt.c1.146
8439         * src/SDCCsymt.h1.59
8440         * src/SDCCval.c:1.63
8441
8442 2003-03-12    <johan AT balder>
8443
8444         * src/SDCCBBlock.h: more LRH debugging junk
8445         * src/SDCCcflow.h: more LRH debugging junk
8446         * src/SDCCloop.c: more LRH debugging junk
8447         * src/SDCC.y (struct_declaration): fixed bug #697590
8448         * src/SDCCsymt.[hc] (cloneSpec): NEVER EVER use this again
8449         * src/ds390/gen.c (aopForRemat): fixed bug #700031
8450         * src/SDCCglue.c (emitStaticSeg): fixed bug #700797
8451
8452 2003-03-11 Kevin Vigor <kevin AT vigor.nu>
8453         * src/SDCCpeeph.c: quit being lazy and made proper fix (peephole
8454         test function names must now match exactly).
8455         * src/SDCCcse.c: added special case in findCheaperOp to allow
8456         extending a short integer. Makes less awful code for bug 700121 test case.
8457
8458 2003-03-11  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
8459
8460         * as/mcs51/lkmain.c: Added ASlink-Warning to messages
8461         * as/mcs51/lkaomf51.c: Fixed bug when linking asmblink example
8462
8463 2003-03-11 Kevin Vigor <kevin AT vigor.nu>
8464
8465         * src/SDCCpeeph.c: fix so that operandsNotEqualX functions are
8466         actually called (operandsNotEqual() was called for all
8467         operandsNotEqualX tests).
8468
8469 2003-03-11 Kevin Vigor <kevin AT vigor.nu>
8470
8471         * src/SDCCcse.c: fix findCheaperOp to prevent replacing int types
8472         with shorter literals. Fixes bug 700121.
8473
8474 2003-03-11    <johan AT balder>
8475
8476         * src/SDCCsymt.c (compareType): a (void *) can be assigned to any pointer
8477
8478 2003-03-11  Bernhard Held <bernhard AT bernhardheld.de>
8479
8480         * src/SDCCloop.c (mergeRegions): an evil beast is dead
8481         * src/SDCCmain.c (preProcess): minor cleanup: eliminate preOutName
8482
8483 2003-03-10  Borut Razem <borut.razem AT siol.net>
8484
8485         * src/SDCCmain.c: pipe preprocessor's output
8486         * support/Util/MySystem.c, support/Util/MySystem.h: added my_popen()
8487         * sdcc_vc_in.h: define pclose as _pclose for WIN32
8488         * src/SDCCglue.c, src/SDCCglue.h: added set pipeSet, added function closePipes,
8489         which closes all pipes in pipeSet set
8490         * src/SDCCset.c: free deleted item in function deleteSetItem()
8491         * src/src.dsp, src/z80/z80.dsp: files support/Util/BuildCmd.c and support/Util/MySystem.c
8492         moved from z80 to src subproject
8493         * .version: increased version number to 2.3.4
8494
8495 2003-03-10  Bernhard Held <bernhard AT bernhardheld.de>
8496
8497         * support/regression/ports/mcs51/spec.mk: increase timeout for CF's sparc to 30s
8498         * support/regression/ports/ds390/spec.mk: increase timeout for CF's sparc to 25s
8499         * support/regression/ports/xa51/spec.mk: fix typo
8500
8501 2003-03-09  Bernhard Held <bernhard AT bernhardheld.de>
8502
8503         * src/SDCCglobl.h: PATH_MAX is already defined in mingw32 headers
8504
8505 2003-03-09  Borut Razem <borut.razem AT siol.net>
8506
8507         * src/SDCCmain.c: pipe preprocessor's output
8508         * support/Util/MySystem.c, support/Util/MySystem.h: added my_popen()
8509         * sdcc_vc_in.h: define pclose as _pclose for WIN32
8510         * src/SDCCglue.c, src/SDCCglue.h: added set pipeSet, added function closePipes,
8511         which closes all pipes in pipeSet set
8512         * src/SDCCset.c: free deleted item in function deleteSetItem()
8513         * src/src.dsp, src/z80/z80.dsp: files support/Util/BuildCmd.c and support/Util/MySystem.c
8514         moved from z80 to src subproject
8515
8516 2003-03-09  Borut Razem <borut.razem AT siol.net>
8517
8518         * src/SDCCglue.c: re-implemented tempfilename() and tempfile(): using mkstemp() if available
8519         * src/SDCCsymt.h: fixed MSVC and BORLANDC compilation (included SDCCglobl.h instead srccconf.h)
8520         * sdcc_vc_in.h: explicitly undefined HAVE_MKSTEMP which is not available on BORLANDC and MSVC
8521         * src/SDCCset.h: removed inclusion of sdccconf.h or sdcc_vc.h
8522         * src/SDCCglobl.h: unification of WIN32 native definitions
8523
8524 2003-03-09  Frieder Ferlemann <Frieder.Ferlemann AT web.de>
8525
8526         * src/mcs51/gen.c: applied in-/dec patch mentioned on sdcc-devel 2003-03-01
8527
8528 2003-03-08  Bernhard Held <bernhard AT bernhardheld.de>
8529
8530         * src/configure.in:   check for endianess (even while cross-compiling)
8531         * src/configure:      check for endianess (even while cross-compiling)
8532         * src/configure_in.h: check for endianess (even while cross-compiling)
8533         * src/avr/gen.c:        remove old endianess stuff
8534         * src/mcs51/gen.c:      remove old endianess stuff
8535         * src/ds390/gen.c:      remove old endianess stuff
8536         * src/pic/gen.c:        remove old endianess stuff
8537         * src/pic/genarith.c:   remove old endianess stuff
8538         * src/pic/glue.c:       fix endianess check
8539         * src/pic16/gen.c:      remove old endianess stuff
8540         * src/pic16/genarith.c: remove old endianess stuff
8541         * src/pic16/glue.c:     fix endianess check
8542         * src/xa51/gen.c:       remove old endianess stuff
8543         * src/z80/gen.c:        fix endianess check
8544         * src/SDCCglue.c:       fix endianess check
8545         * src/ds390/peeph.def: fix bug 700036
8546
8547 2003-03-08  Bernhard Held <bernhard AT bernhardheld.de>
8548
8549         * src/SDCCsymt.h: use appropriate data-types on host for SDCC's int and long
8550         * src/configure: find appropriate data-types on host for SDCC's int and long
8551         * src/configure.in: find appropriate data-types on host for SDCC's int and long
8552         * src/sdccconf_in.h: find appropriate data-types on host for SDCC's int and long
8553         * src/xa51/gen.c: use %d, not %ld for 4 byte variables
8554
8555 2003-03-07    <johan AT balder>
8556
8557         Just a big NOOP:
8558                 some minor cleanups before the big shot
8559                 OP_DEFS and OP_USES now use Kevin's protection
8560                 new option --nolabelopt
8561
8562         * src/SDCCBBlock.c:
8563         * src/SDCCast.c,:
8564         * src/SDCCcflow.c:
8565         * src/SDCCcse.c:
8566         * src/SDCCicode.c:
8567         * src/SDCCicode.h:
8568         * src/SDCClabel.c:
8569         * src/SDCCloop.c:
8570         * src/SDCCmain.c:
8571         * src/ds390/ralloc.c:
8572         * src/mcs51/ralloc.c:
8573         * src/pic/ralloc.c:
8574         * src/xa51/ralloc.c:
8575         * src/z80/ralloc.c:
8576
8577 2003-03-06  Bernhard Held <bernhard AT bernhardheld.de>
8578
8579         * src/pic/pcode.c (get_op): fix 64 bit warnings
8580         * src/pic/pcode.c (pCode2str): fix 64 bit warnings
8581         * src/SDCChasht.c (newHashTable): fix 64 bit warnings
8582         * src/SDCCsymt.c (checkTypeSanity): fix 64 bit warnings
8583         * support/regression/tests/malloc.c: fix 64 bit warnings
8584
8585 2003-03-04  Bernhard Held <bernhard AT bernhardheld.de>
8586
8587         * src/mcs51/gen.c (genMinus): fixed bug 696436
8588
8589 2003-03-02  Borut Razem <borut.razem AT siol.net>
8590
8591         * src/SDCCmain.c: added BORLANDC, corrected MSVC in printVersionInfo()
8592
8593 2003-02-26  Bernhard Held <bernhard AT bernhardheld.de>
8594
8595         * configure.in: test for mkstemp
8596         * sdccconf_in.h: add HAVE_MKSTEMP
8597
8598 2003-02-24  Bernhard Held <bernhard AT bernhardheld.de>
8599
8600         * device/include/ctype.h: removed warning while using --stack-auto
8601         * device/include/malloc.h: removed warning while using --stack-auto
8602         * device/include/string.h: removed warning while using --stack-auto
8603
8604 2003-02-23  Borut Razem <borut.razem AT siol.net>
8605
8606         * src/asm.h: corrected assertion in function printILine(): _pipe() was not executed on MSVC,
8607         because NDEBUG is defined (see man assert)
8608         * sdcc_vc_in.h: vsnprintf is defined as _vsnprintf on MSVC
8609
8610 2003-02-23  Frieder Ferlemann <Frieder.Ferlemann AT web.de>
8611
8612         * src/mcs51/gen.c (genUminusFloat): avoided dptr in-/decrement for xdata variables
8613         * src/mcs51/peeph.def: added rule suggested by Gernot Fink, white space/comment changes
8614
8615 2003-02-18  Frieder Ferlemann <Frieder.Ferlemann AT web.de>
8616
8617         * src/SDCCpeeph.c: added peephole conditions testing for same arguments
8618         * src/mcs51/peeph.def: added rules 238a-d which remove redundant moves
8619
8620 2003-02-18    <johan AT balder>
8621
8622         * as/mcs51/asmain.c (asmbl): module can start with a digit
8623         * as/z80/asmain.c (asmbl): module can start with a digit
8624
8625 2003-02-16  Bernhard Held <bernhard AT bernhardheld.de>
8626
8627         * sim/ucsim/mkecho: inserted #!/bin/sh for Cygwin, so that it's executable
8628         * src/asm.c: fix pipe() for Mingw32
8629
8630 2003-02-15  Bernhard Held <bernhard AT bernhardheld.de>
8631
8632         * src/SDCCglue.h: make tmpfileNameSet available for preOutName
8633         * src/SDCCmain.c (preProcess): make sure, that preOutName will be deleted;
8634         make -V work again; --c1mode reads now from stdin
8635         * doc/sdccman.lyx: added --c1mode
8636         * support/Util/SDCCerr.c: new messages for c1 mode
8637         * support/Util/SDCCerr.h: new messages for c1 mode
8638         * src/SDCC.lex (checkCurrFile): test if fullSrcFileName is NULL for c1mode
8639
8640 2003-02-15    <johan AT balder>
8641
8642         * src/asm.c: new options: --no-c-code-in-asm and --i-code-in-asm
8643
8644 2003-02-14  Bernhard Held <bernhard AT bernhardheld.de>
8645
8646         * doc/sdccman.lyx: Environment variables, -o and other minor things
8647
8648 2003-02-14    <johan AT balder>
8649
8650         * src/xa51/main.c: before anyone really tries to use it :)
8651
8652         * Install doc's in share/sdcc/doc
8653         * removed some obsolete files
8654         * Do a proper make distclean and uninstall
8655         M Makefile.common.in
8656         R sdccbuild.sh
8657         M as/Makefile
8658         M device/include/Makefile.in
8659         M device/lib/Makefile.in
8660         M doc/sdccman.lyx
8661         M link/Makefile
8662         M sim/ucsim/doc/Makefile.in
8663         M src/clean.mk
8664         R src/avr/peeph.rul
8665         R src/xa51/peeph.rul
8666         M support/cpp2/Makefile.in
8667         M support/makebin/Makefile
8668
8669
8670 2003-02-13  Bernhard Held <bernhard AT bernhardheld.de>
8671
8672         * support/regression/ports/host/spec.mk: use cc as host compiler for max osx
8673
8674 2003-02-10  Borut Razem <borut.razem AT siol.net>
8675
8676         * doc/bccinst.txt, packihx/packihx.c, sdcc_vc_in.h, src/SDCCset.h,
8677         support/cpp2/config.in: Borland C++ build doesn't depend on Cygwin configure
8678         * Bcc.ini, Makefile.bcc, as/mcs51/Makefile.bcc,
8679         device/examples/ds390/tinitalk/Makefile.bcc, packihx/Makefile.bcc,
8680         support/cpp2/Makefile.bcc, src/Makefile.bcc, src/avr/Makefile.bcc,
8681         src/ds390/Makefile.bcc, src/izt/Makefile.bcc, src/mcs51/Makefile.bcc,
8682         src/pic/Makefile.bcc, src/pic16/Makefile.bcc, src/xa15/Makefile.bcc,
8683         src/z80/Makefile.bcc: Borland Makefile cleanup
8684         * as/z80/Makefile.bcc: Added Borland Makefile
8685         * support/cpp2/borland.h: Removed
8686
8687 2003-02-10  Bernhard Held <bernhard AT bernhardheld.de>
8688
8689         * doc/sdccman.lyx: new pragma NOIV by "Johannes Stezenbach" <js AT convergence.de>
8690         * src/SDCC.lex: new pragma NOIV
8691         * src/SDCCglobl.h: new pragma NOIV
8692         * src/SDCCmem.c: new pragma NOIV
8693
8694 2003-02-09  Bernhard Held <bernhard AT bernhardheld.de>
8695
8696         * src/SDCCmain.c: signal handling is switched off by SDCC_LEAVE_SIGNALS
8697
8698 2003-02-09  Bernhard Held <bernhard AT bernhardheld.de>
8699
8700         * src/SDCCmain.c: signal handling is switched off by --debug
8701         * doc/Makefile: small fix for install; use clean.mk again
8702         * doc/clean.mk: clean *.pdf and *.html too
8703
8704 2003-02-08  Bernhard Held <bernhard AT bernhardheld.de>
8705
8706         * device/lib/_mulint.c: small fix for large/ds390 --int-long-reent resp. --stack-auto
8707         * device/lib/printfl.c: fix a ds390 bug by making it portable
8708         * src/SDCCsymt.c (initCSupport): fix compile warning on Cygwin
8709         * src/SDCCopt.c (cnvToFloatCast): fix compile warning on Cygwin
8710         * src/SDCCopt.c (cnvFromFloatCast): fix compile warning on Cygwin
8711         * debugger/mcs51/cmd.c: converted multi-line string literals
8712         * sim/ucsim/globals.cc: converted multi-line string literals
8713         * src/SDCCmain.c: introduced signal handler to remove temp files
8714         * doc/Makefile: small tweaks, implement clean
8715         * doc: removed generated files
8716
8717 2003-02-05  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
8718
8719         * as/mcs51/aslink.h, as/mcs51/lkihx.c, as/mcs51/lkrloc.c:  Applied
8720         patch from Jan Rejlek <jr AT apex-lib.cz> to fix Bug 677692: "Extended
8721         Address Record is not correctly generated for DS390."
8722
8723 2003-02-02  Borut Razem <borut.razem AT siol.net>
8724
8725         * Makefile.bcc: removed non existing cpp project and non compilable izt project from makefile
8726         * as/mcs51/asm.h: fixed compilation with Borland C
8727         * support/cpp2/Makefile.bcc: added rule to generate auto-host.h
8728         * support/cpp2/auto-host_vc_in.h: fixed compilation with Borland C
8729         * src/mcs51/mcs51a.dsp: corrected misspelled project name from msc51a to mcs51a
8730         * src/avr/Makefile.bcc, src/ds390/Makefile.bcc, src/izt/Makefile.bcc,
8731         src/mcs51/Makefile.bcc, src/pic16/Makefile.bcc, src/xa51/Makefile.bcc,
8732         src/z80/Makefile.bcc: delete $(LIB) only if exist
8733         * src/Makefile.bcc, src/pic/Makefile.bcc:  fixed compilation with Borland C
8734
8735 2003-02-02  Bernhard Held <bernhard AT bernhardheld.de>
8736
8737         * device/include/malloc.h: introduced NULL
8738         * device/include/string.h: introduced NULL
8739         * device/include/stdlib.h: introduced NULL
8740         * device/lib/_memcpy.c: removed NULL
8741         * device/lib/_strcat.c: removed NULL
8742         * device/lib/_strchr.c: removed NULL
8743         * device/lib/_strcmp.c: removed NULL
8744         * device/lib/_strcpy.c: removed NULL
8745         * device/lib/_strcspn.c: removed NULL
8746         * device/lib/_strlen.c: removed NULL
8747         * device/lib/_strncat.c: removed NULL
8748         * device/lib/_strncmp.c: removed NULL
8749         * device/lib/_strncpy.c: removed NULL
8750         * device/lib/_strpbrk.c: removed NULL
8751         * device/lib/_strrchr.c: removed NULL
8752         * device/lib/_strspn.c: removed NULL
8753         * device/lib/_strstr.c: removed NULL
8754         * device/lib/_strtok.c: removed NULL
8755         * device/lib/malloc.c: removed NULL, include own header
8756
8757 2003-02-02    <johan AT balder>
8758
8759         * 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
8760         * support/regression/fwk/lib/testfwk.c: div and mod isn't broken anymore
8761         * regressions ds390/spec.mk and mcs51/spec.mk (timeout): my good old balder isn't fast enough for some tests
8762         * src/z80/gen.c (genZ80Code): added c-lines in asm comments
8763         * as/z80/asm.h (NINPUT): increased for long c-comments in regression tests
8764         * src/z80/gen.c (genRightShiftLiteral): fixed the (char)(-3)>>8 (I think)
8765
8766 2003-02-01  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
8767
8768         * src/SDCCmain.c: Fixed bug 678574: "ds390: ASlink-Error-Stack overlaps
8769         area 'DATA'"
8770
8771 2003-02-01    <johan AT balder>
8772
8773         * src/SDCCval.c (valBitwise): fixed Karl's "2 | (1<<8)"
8774
8775 2003-01-31    <johan AT CP255758-A>
8776
8777         * src/ds390/main.c (_ds390_genAssemblerPreamble): applied Jan Rejlek's >64K startup patch
8778
8779 2003-01-30    <johan AT balder>
8780
8781         * src/SDCCBBlock.c: automatic bug detection
8782         * src/SDCCicode.c: automatic bug detection
8783
8784 2003-01-29  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
8785
8786         * src/SDCCglobl.h:   now --xram-size 0 works
8787         * src/SDCCmain.c:    now --xram-size 0 works
8788
8789 2003-01-29    <johan AT balder>
8790
8791         * src/almosteverything: changed OP_DEFS and OP_USES from macros to functions to catch symbol abuse (a hot topic in the bug list :)
8792
8793 2003-01-29  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
8794
8795         * as/mcs51/aslink.h: Added options --xram-size and --code-size
8796         * as/mcs51/lkdata.c: Added options --xram-size and --code-size
8797         * as/mcs51/lkmain.c: Added options --xram-size and --code-size
8798         * as/mcs51/lkmem.c:  Added options --xram-size and --code-size
8799         * src/SDCCglobl.h:   Added options --xram-size and --code-size
8800         * src/SDCCmain.c:    Added options --xram-size and --code-size
8801
8802 2003-01-28  Bernhard Held <bernhard AT bernhardheld.de>
8803
8804         * src/ds390/gen.c: fix deps by replacing <common.h> with "common.h"
8805         * src/SDCC.lex: rename P_OVERLAY to P_OVERLAY_ for cross-gcc 3.2 MINGW32
8806
8807 2003-01-27    <johan AT balder>
8808
8809         * src/SDCC.y: fixed bug #613764
8810
8811 2003-01-26    <johan AT balder>
8812
8813         * src/SDCClrange.c:  fixed Bernhard's "char * code ptr = &c"
8814         * src/SDCCsymt.h: fixed bug #673374
8815         * src/SDCCglue.c: fixed bug #661910
8816         * src/SDCCast.c: fixed bug #458099 and 673374
8817
8818 2003-01-26  Bernhard Held <bernhard AT bernhardheld.de>
8819
8820         * as/mcs51/strcmpi.c: added, provides Aurelien Jarno's as_strcmpi(); strcmpi() is not ANSI
8821         * as/mcs51/strcmpi.h: added
8822         * as/mcs51/asm.h: remove ugly "#define strcmpi strcmp"
8823         * as/mcs51/aslink.h: remove ugly "#define strcmpi strcmp"
8824         * as/mcs51/asmain.c: strcmpi -> as_strcmpi
8825         * as/mcs51/assym.c: strcmpi -> as_strcmpi
8826         * as/mcs51/lkmem.c: strcmpi -> as_strcmpi
8827         * as/mcs51/lknoice.c: strcmpi -> as_strcmpi
8828         * as/mcs51/lksym.c: strcmpi -> as_strcmpi
8829         * as/mcs51/Makefile.aslink: new module strcmpi
8830         * as/mcs51/Makefile.asx8051: new module strcmpi
8831         * as/mcs51/Makefil.bcc: new module strcmpi
8832         * as/mcs51/Makefile.in: new module strcmpi
8833         * sim/ucsim/s51.src/uc390.cc (get_mem_size): make RAM big enough for tinibios
8834
8835 2003-01-26    <johan AT balder>
8836
8837         * src/SDCCglue.c: reverted back to 1.124
8838         * src/SDCCast.c: reverted back to 1.156
8839         * src/mcs51/gen.c (aopGet): applied Frieder's efficiency patch
8840
8841 2003-01-25    <johan AT balder>
8842
8843         * src/SDCCglue.c: A better fix for bug #661910
8844         * src/SDCCast.c: A better fix for bug #661910
8845         * src/SDCCglue.c (emitRegularMap): That was a little too efficient
8846
8847 2003-01-24  Bernhard Held <bernhard AT bernhardheld.de>
8848
8849         * src/Makefile.in: remove spawn.o
8850         * src/SDCCmain.c: remove spawn.h
8851         * src/SDCCmain.c (printVersionInfo): report MINGW32 instead of UNIX
8852         * src/spawn.c: removed
8853         * src/spawn.h: removed
8854         * support/regression/ports/ds390/spec.mk: link with -r
8855
8856 2003-01-24    <johan AT CP255758-A>
8857
8858         * src/ds390/gen.c (aopOp): fixed bug #667458
8859         * src/SDCCglue.c (emitRegularMap): fixed bug #458099 again
8860         * src/SDCCast.c (createIvalCharPtr): fixed bug #661910
8861         (createIvalCharPtr): an ival doesn't always have a storage class anymore
8862
8863 2003-01-24  Bernhard Held <bernhard AT bernhardheld.de>
8864
8865         * src/mcs51/peeph.def: better assembler identation by Frieder
8866         * src/mcs51/gen.c: better assembler identation by Frieder
8867
8868 2003-01-22  Bernhard Held <bernhard AT bernhardheld.de>
8869
8870         * as/z80/string.h: removed for gcc 3.2
8871         * support/makebin/makebin.c: #include <string.h> for gcc 3.2
8872         * src/pic/pcode.c (get_op_from_instruction): fix concatenation of string literals with __FUNCTION__ for gcc 3.2
8873
8874 2003-01-19  Bernhard Held <bernhard AT bernhardheld.de>
8875
8876         * src/SDCCmain.c (linkEdit): rename mem and map files even in case of failure
8877         * src/SDCCpeeph.c (replaceRule): fix bug #663503
8878         * support/regression/Makefile: separate temp files for ports
8879         * support/regression/generate-cases.py: separate temp files for ports
8880         * src/mcs51/peeph.def: Frieder: removed 237 (obsolete by 236g and 105); added 237 a/b
8881         * src/ds390/peeph.def: Frieder: removed 237 (obsolete by 236g and 105); added 237 a/b
8882
8883 2003-01-19  Bernhard Held <bernhard AT bernhardheld.de>
8884
8885         * moved tinitalk to device/examples/ds390
8886
8887 2003-01-14  Bernhard Held <bernhard AT bernhardheld.de>
8888
8889         * as/mcs51/lkmem.c: rflag is for DS390
8890         * src/SDCCglobl.h: removed out_name and options stackOnData, genericPtr
8891         * src/SDCCmain.c (optionsTable, setDefaultOptions): removed --stack-after-data and --generic
8892                          (linkEdit): move mem- and map-files the same way as ihx-files
8893         * src/z80/main.c (_setDefaultOptions): removed --generic
8894         * src/SDCCmain.c (_processC1Arg, parseCmdLine, main): --c1mode works again
8895         * src/SDCCglue.c (createInterruptVect, glue): --c1mode works again
8896         * src/pic/glue.c (picglue): --c1mode works again
8897         * src/pic16/glue.c (pic16glue): --c1mode works again
8898         * src/asm.c (printCLine): fix #660034
8899
8900 2003-01-13  Bernhard Held <bernhard AT bernhardheld.de>
8901
8902         * src/ds390/peeph.def: fix #123; add 14 rules by Fiorenzo D. Ramaglia <fd.ramaglia AT tin.it>, 1 by Frieder
8903         * src/mcs51/peeph.def: fix #123; add 14 rules by Fiorenzo, 1 by Frieder
8904         * src/mcs51/gen.c (genFunction): emit r0 instead of ar0 by Fiorenzo
8905         * as/mcs51/lkmem (summary): better fix for sp problem
8906         * src/SDCCglue.c (glue): __start_stack - 1, saves 1 byte!
8907         * src/ds390/main.c (_ds390_finaliseOptions, _tininative_finaliseOptions): stack_loc = 0x400008
8908         * support/regression/ports/*/spec.mk: moving testfwk-object to port dir allow parallel execution of regression tests
8909                                               remove --stack-after-data
8910
8911 2003-01-12  Bernhard Held <bernhard AT bernhardheld.de>
8912
8913         * src/SDCCmain.c (main): port->finaliseOptions() moved for z80 linking
8914         * src/SDCCutil.c (join): ugly bug: missing '\0'
8915         * as/mcs51/lkmem.c (summary): sp on address 7 is safe
8916
8917 2003-01-11  Bernhard Held <bernhard AT bernhardheld.de>
8918
8919         * src/SDCCmain.c (assemble, linkEdit): preparations for -o
8920         * src/port.h: typo
8921         * src/pic/main.c (_asmCmd): gpasm supports -o
8922         * src/z80/main.c: more general macros
8923         * device/lib/Makefile.in: remove intermediate files
8924
8925 2003-01-11  Bernhard Held <bernhard AT bernhardheld.de>
8926
8927         * .version: Bumped version number to 2.3.3
8928         * src/SDCCBBlock.c: new option -o
8929         * src/SDCCglobl.h: new option -o
8930         * src/SDCCglue.c: new option -o
8931         * src/SDCCmain.c: new option -o
8932         * src/asm.c: new option -o
8933         * src/ds390/main.c: new option -o
8934         * src/pic/glue.c: new option -o
8935         * src/pic/pcode.c: new option -o
8936         * src/pic/ralloc.c: new option -o
8937         * src/pic16/glue.c: new option -o
8938         * src/pic16/pcode.c: new option -o
8939         * src/pic16/ralloc.c: new option -o
8940         * src/z80/main.c: new option -o
8941         * device/lib/Makefile.in: use -o
8942         * support/regression/ports/ds390/spec.mk: use -o
8943         * support/regression/ports/gbz80/spec.mk: use -o
8944         * support/regression/ports/mcs51/spec.mk: use -o
8945         * support/regression/ports/mcs51-stack-auto/spec.mk: use -o
8946         * support/regression/ports/z80/spec.mk: use -o
8947         * support/regression/ports/ucz80/spec.mk: use -o
8948         * support/regression/ports/xa51/spec.mk: use -o
8949         * support/regression/fwk/lib/timeout.c: fix usage string
8950
8951 2003-01-09  Bernhard Held <bernhard AT bernhardheld.de>
8952         * src/mcs51/gen.c (genPlus): replaced "mov b,acc" by "mov b,a" Fiorenzo D. Ramaglia <fd.ramaglia AT tin.it>
8953
8954 2003-01-07    <johan AT balder>
8955
8956         * src/SDCCast.c (decorateType): fixed bug #600035
8957
8958 2003-01-07  Bernhard Held <bernhard AT bernhardheld.de>
8959         * as/mcs51/lkmem.c: added several l-modifiers to printf to remove warnings
8960         * as/mcs51/lkaomf51.c: #include <ctype.h> to remove warnings
8961         * src/pic/main.c (_hasNativeMulFor): outcommented unused variables to remove warnings
8962         * src/pic/pcode.c: outcommented unused variable to remove warnings
8963         * src/pic/ralloc.c: outcommented unused variable to remove warnings
8964
8965 2003-01-06    <karl AT turbobit.com>
8966         * sim/ucsim/cmd.src/command.cc: fixed so "break xram r 0x7654" works again in
8967    regression tests.
8968
8969 2003-01-06    <johan AT balder>
8970
8971         * src/SDCCicode.c: fixed array add
8972
8973 2002-01-05  Bernhard Held <bernhard AT bernhardheld.de>
8974         * src/SDCCmacro.c: MAX_STRING_LENGTH increased to 2048; was too small for regression tests
8975         * support/regression/ports/host/support.c: #include <stdarg.h> for gcc 3.2
8976
8977 2003-01-04    <johan AT balder>
8978
8979         * src/SDCCval.c (getNelements): fixed the initialized array of structures
8980
8981 2002-12-29  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
8982         * as/mcs51/Makefile.bcc: fixed typo lkomf51.o -> lkaomf51.o
8983
8984 2002-12-28  Bernhard Held <bernhard AT bernhardheld.de>
8985         * src/mcs51/peeph.def: added rules 234 and 235 from Frieder Ferlemann <frieder.ferlemann AT web.de>
8986         * support/regression/tests/bug-524697.c: fit mem usage into 8032
8987
8988 2002-12-28  Bernhard Held <bernhard AT bernhardheld.de>
8989         * src/mcs51/gen.c (aopGetUsesAcc): inserted missing "return FALSE"
8990
8991 2002-12-27  Bernhard Held <bernhard AT bernhardheld.de>
8992         * as/mcs51/Makefile.in: fixed typo lkomf51.o -> lkaomf51.o
8993
8994 2002-12-26  Bernhard Held <bernhard AT bernhardheld.de>
8995         * src/mcs51/main.c: removed {bindir}{sep} from aslink
8996
8997 2002-12-10  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
8998
8999     * in \sdcc\as\mcs51\ changed these files in order to create an
9000     aomf51 file: aslink.h, lkdta.c, lklex.c, lklibr.c, lklist.c,
9001     lkmain.c.  Also added: lkmem.c and lkaomf51.c.  Changed the
9002     following files to include the previous two files: aslink.dsp,
9003     Makefile.aslink, Makefile.bcc, and Makefile.in.
9004
9005     * Changed \sdcc\src\SDCCmain.c so it creates files with extension
9006     .adb instead of .cdb
9007
9008 2002-11-09  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
9009
9010         * \sdcc\as\mcs51\lklist.c: Now reports memory usage using the
9011         value from option --iram-size.
9012
9013 2002-09-20  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
9014
9015         * \sdcc\as\mcs51\lklist.c: added boundary check before using
9016         dram[] array.
9017
9018 2002-09-18    <wiml AT hhhh.org>
9019
9020         * SDCClrange.h: exposed setFromRange() and setToRange()
9021         * mcs51/ralloc.c: fixed over-eager packRegsForSupport() and
9022           packRegsForAccUse() (bug 542397)
9023         * mcs51/gen.c: MOVA() is now a function to avoid calling aopGet()
9024           multiple times and emitting the fetch operations more than once
9025           added aopGetUsesAcc() function to allow binary operators to
9026           fetch their operands in the correct order; made genMinus() emit
9027           compact code for X = LITERAL - Y
9028
9029 2002-09-00  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
9030         * \sdcc\as\mcs51\lklist.c: Fixed incorrect number of parameters to
9031         sprintf() in line 1267.
9032
9033 2002-09-08  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
9034         * \sdcc\src\SDCCglue.c: Generate areas REG_BANK_[0-3] only for 8051
9035         like ports.
9036
9037 2002-09-04  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
9038         Changes to aslink (All the changes are marked with 'JCF'):
9039
9040         * \sdcc\as\mcs51\aslink.h: External definition of sflag and
9041         summary().
9042
9043         * \sdcc\as\mcs51\lkarea.c: Computes the size of area BSEG_BYTES from
9044         area BSEG.  Also moves, if possible, the DATA area down into the internal
9045         ram so more space is available.
9046
9047         * \sdcc\as\mcs51\lkdata.c: Definition of memory summary output flag
9048         sflag.
9049
9050         * \sdcc\as\mcs51\lklist.c: For the BSEG area report the size in bits,
9051         not bytes.  Function summary() which creates a memory usage summary
9052         file with extension .mem.  Reports of overlaping stack and small stack
9053         size.  If the space for the stack is less than 16 bytes aslink trows a
9054         warning.
9055
9056         * \sdcc\as\mcs51\lkmain.c: Creation of some of the default areas for
9057         the 8051.  Option 'y' for memory summary output file.
9058
9059         Changes to sdcc (All the changes are marked with 'JCF'):
9060
9061         * \sdcc\src\SDCCglobl.h: External definition of RegBankUsed[4].
9062
9063         * \sdcc\src\SDCCglue.c:  If a register bank is used, creates an
9064         overlaying area for it (uses RegBankUsed[4]).
9065
9066         * \sdcc\src\SDCCmain.c: Definition RegBankUsed[4]; marks register
9067         bank zero as used by default.  By default aslink locates the stack
9068         (equivalent to --stack-after-data).  Pass option 'y' to aslink for
9069         the creation of the .mem file.  Delegates the allocation of data area
9070         to aslink (it is not longer 0x30 by default).  If --stack-loc passes
9071         the begining of the stack area to aslink.
9072
9073         * \sdcc\src\SDCCmem.c:  If a register bank is used, marks it so
9074         glue() in SDCCglue.c creates an area for it.
9075
9076 2002-09-03  Borut Razem <borut.razem AT siol.net>
9077         * sdcc/src/SDCCglue.c, sdcc/src/SDCCglue.h, sdcc/src/SDCCmain.c,
9078         sdcc/src/pic/glue.c:
9079         introduced atexit() handler for teporay files removal in case of
9080         errors, assertions, ...
9081
9082 2002-08-29  Borut Razem <borut.razem AT siol.net>
9083         * sdcc/support/cpp2/auto-host_vc_in.h:
9084         re-definition of O_BINARY and other O_XXX as _O_BINARY and _O_XXX, so the problem
9085         with the returned value from read() in sdcc/support/cpp2/cppfiles.c is solved for MSC.
9086         Maybe there is a similar problem with BORLANDC? It should be checked!
9087
9088         * sdcc/src/ds390/ralloc.c, sdcc/src/mcs51/ralloc.c, sdcc/src/z80/ralloc.c:
9089         corrected improper use of assert: the assignment to clr variable was done inside the assert.
9090         In case that NDEBUG was defined, the assert macro was substituted with no-op, so the assignment
9091         was not executed, and the compiler (cl) launched a warning:
9092         ralloc.c(1442) : warning C4700: local variable 'clr' used without having been initialized
9093
9094 2002-08-28  Bernhard Held <bernhard AT bernhardheld.de>
9095         * src/SDCCglue.c (printIvalArray): iterative calculation of array length
9096
9097 2002-08-28  Jesus Calvino-Fraga and Borut Razem <borut.razem AT siol.net>
9098         * sdcc/sdcc.dsw: added sdcpp, sdcppa, yacc, conf projects
9099
9100         * sdcc/src/src.dsp, sdcc/src/avr/avr.dsp, sdcc/src/ds390/ds390.dsp,
9101           sdcc/src/mcs51/mcs51.dsp, sdcc/src/pic/pic.dsp, sdcc/src/z80/z80.dsp,
9102           sdcc/src/xa51/xa51.dsp, sdcc/src/avr/avra.dsp,
9103           sdcc/src/ds390/ds390a.dsp, sdcc/src/mcs51/mcs51a.dsp,
9104           sdcc/src/pic/pica.dsp, sdcc/src/z80/z80a.dsp,
9105           sdcc/src/xa51/xa51a.dsp, sdcc/as/as_z80.dsp,
9106           sdcc/as/aslink.dsp, sdcc/as/asx8051.dsp, sdcc/packihx/packihx.dsp:
9107         - added Release configuration in VS projects
9108         - review of compiler an linker options
9109         - VC .exe files are generated in bin_vc directory, not to interfere
9110           with binaries generated from other projects (cygwin, mingw, bcc ...)
9111
9112         * sdcc/src/yacc.dsp: added
9113
9114         * sdcc/config.dsp, sdcc/configure_vc.awk, sdcc/sdcc_vc_in.h:
9115         added - genarate sdcc_vc.h using sdcc_vc_in.h as template
9116         and insert the version number definitions from .version
9117
9118         * sdcc/support/cpp2/sdcpp.dsp: added - VC project for sdcpp
9119
9120         * sdcc/support/cpp2/sdcppa.dsp, sdcc/support/cpp2/auto-host_vc_in.h:
9121         added - genarate auto-host.h using auto-host_vc_in.h as template
9122
9123         * sdcc/sdcc_vc.h,
9124         removed from CVS, generated automatically
9125
9126 2002-08-25  Bernhard Held <bernhard AT bernhardheld.de>
9127         * support/scripts/inc2h.pl: use gputils or gpasm (from Nathan Hurst)
9128
9129 2002-08-11  Borut Razem <borut.razem AT siol.net>
9130         * support/Util/NewAlloc.c: removed unneeded #include "sdccconf.h" (suggested by Jesus Calvino-Fraga)
9131
9132 2002-08-10  Borut Razem <borut.razem AT siol.net>
9133         * src/SDCCmain.c (main):
9134         file preOutName was unlinked before closed. This seems to be OK on UNIX and cygwin
9135         platforms, but it doesn't work with Visual Studio: the opened file can not be removed.
9136         The consequence was that some temporary files were not removed.
9137
9138         * src/SDCCglue.c:
9139         unification of code in functions tempfilename() and tempfile():
9140         function tempnam() is defined in Visual Studio 6.0 and .NET
9141
9142         * sdcc/sdcc.dsw: removed project sdcpp, added project xa51a
9143
9144         * sdcc/src/src.dsp, sdcc/src/avr/avr.dsp, sdcc/src/ds390/ds390.dsp,
9145           sdcc/src/mcs51/mcs51.dsp, sdcc/src/pic/pic.dsp, sdcc/src/z80/z80.dsp:
9146         - removed compiler command line option /WX: Treats all warnings as errors
9147         - update a list of source files, included into the project
9148
9149         * sdcc/src/avr/avra.dsp, sdcc/src/ds390/ds390a.dsp, sdcc/src/mcs51/mcs51a.dsp,
9150           sdcc/src/pic/pica.dsp, sdcc/src/z80/z80a.dsp:
9151         changed project type to Generic Project so that can be correcly converted to VS.NET project
9152
9153         * sdcc/as/mcs51/asm.h: definition of PATH_MAX for MSC
9154
9155         * sdcc/src/SDCCast.c: solved MSC error in function decorateType()
9156
9157         * sdcc/src/SDCC.y: added missing ending ';' to rules to get rid of bison warnings
9158
9159         * dcc/src/ds390/ralloc.c, sdcc/src/mcs51/ralloc.c:
9160         added return 0 statements after assert() to make compiler happy
9161
9162         * sdcc/src/xa51/peeph.rul, sdcc/src/xa51/peeph.def, sdcc/src/z80/ralloc.c:
9163         added newline in the def file to keep MSC compiler satisfied
9164
9165         * sdcc/src/z80/gen.c:
9166         - function strcasecmp() is not defined in MSC (and probably also in BORLANDC),
9167           so it is replaced with STRCASECMP, which is defined as stricmp in case of MSC and BORLANDC
9168         - solved MSC error in function aopDump()
9169
9170         * sdcc_vc.h: define PREFIX as "\\sdcc"
9171
9172 2002-07-18  Bernhard Held <bernhard AT bernhardheld.de>
9173         * src/SDCCast.c (decorateType): fixed access to array of structures http://sourceforge.net/mailarchive/forum.php?thread_id=902690&forum_id=4107
9174
9175 2002-06-22  Scott Dattalo <scott AT dattalo.com>
9176         * src/pic/*: Numerous bug fixes. Flow analysis has been enhanced.
9177         - Rewrote the register banking algorithm.
9178         - Added pCode live-range analysis to registers (for now, only non-used and
9179         singly-used registers optimized away)
9180
9181         * src/pic/pcoderegs.[ch]: Added new files for pCode live-range analysis
9182
9183         * 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.
9184
9185 2002-05-10  Scott Dattalo <scott AT dattalo.com>
9186         * src/pic/*: Added support for multiplication. Fixed many,many bugs.
9187
9188 2002-04-22  Michael Hope  <michaelh AT vroom>
9189
9190         * device/lib/z80/printf.c: Changed emitter to volatile to work around a pcall bug.
9191
9192         * configure.in (DD_COPT): Added include support required for gbdk.
9193
9194         * .version: Bumped version number just to increase it.
9195
9196         * src/SDCCmain.c: Added -nostdinc to the default options.
9197
9198 2002-04-15  Michael Hope  <michaelh AT vroom>
9199
9200         * device/lib/z80/printf.c (sprintf): Added.
9201
9202         * src/z80/ralloc.c (packRegisters): Disabled pack HL use for GB as it's broken.
9203
9204         * src/z80/peeph.def: Added transpose redundent load rule.
9205
9206         * src/z80/main.c: Added force callee saves for jaune.
9207
9208         * src/port.h: Removed the i186 and tlcs-900h ports as they weren't being being developed.
9209
9210         * src/SDCCmain.c: Pulled the options definition out so that you can add port specific options without changing the main file.
9211
9212 2002-03-28  Johan Knol  <johan AT balder>
9213
9214         * src/SDCCval.c: fixed bug #532436
9215
9216 2002-03-14  Scott Dattalo <scott AT dattalo.com>
9217         * /src/port.h:
9218         Added "char *Processor" field to the port structure.
9219
9220         * /src/SDCCmain.c:
9221         Added -p option. Allows port dependent processor to be specified.
9222
9223         * all ports:
9224         Initialized the new field char *Processor field to NULL in all ports
9225
9226         * /src/pic/*:
9227         Compiler generated registers for interrupt context saving
9228         were not getting allocated.
9229
9230 2002-03-16  Sandeep Dutta  <sandeep AT ddi.com>
9231
9232         * /src/SDCCast.c:
9233         Fixed left shift. Will promote the left side of a left shift
9234         if a) left shifting more than size of operand or b) when assigned
9235         to something size > size of left side
9236
9237 2002-03-14  Scott Dattalo <scott AT dattalo.com>
9238         * src/pic/*
9239         tons of changes. Register allocation has been
9240         rewritten. Added customization for the various PICs. Flow
9241         analysis is restructured. ...
9242
9243         * src/pic/device.h:
9244         Added
9245
9246         * src/pic/device.c:
9247         Added. device.c is a PIC port hack to accomodate variations
9248         in PIC devices.
9249
9250 2002-03-13  Michael Hope  <michaelh AT vroom>
9251
9252         * src/z80/gen.c (genGenPointerGet): Fixed a bug where a pointer in HL is dereferenced into HL but HL is not spilled.  Yeah.
9253
9254 2002-03-04  johanknol  <johanknol AT manik>
9255
9256         * /src/SDCCval.c: fixed
9257
9258         const unsigned char arr[][2] = { { 0, 1 } };
9259         t18.c:1: error: Initializer element is not constant
9260
9261 2002-03-04  bela  <bela AT manik>
9262
9263         * /device/include/mcs51reg.h:
9264         ds89c420 register definition update
9265
9266 2002-03-03    <johan AT FRIJA>
9267
9268         * support/Util/SDCCerr.c: did something, but don't no why anymore
9269
9270         * support/regression/tests/bug-524691.c: made it a little less shy
9271
9272         * src/SDCCast.c (decorateType): fixed bug #524697
9273
9274         * src/SDCCast.c: made some lineno improvements
9275
9276         * src/SDCCval.c (getNelements): changed warning to error
9277
9278         * src/SDCCglue.c (printIvalArray): changed warning to error
9279
9280         * src/SDCCicode.c: fixed a warning for mingw
9281
9282         * src/SDCCast.c (decorateType): fixed the << promotion for ops
9283
9284         * src/SDCCicode.c (geniCodeDivision): divide is shift only for unsigned (bug #524685)
9285
9286 2002-03-02  Sandeep Dutta  <sandeep AT ddi.com>
9287
9288         * src/ds390/peeph.def:
9289         Added some more peephole rules
9290
9291         * src/ds390/gen.c: Various fixes & enhancements
9292
9293         * src/SDCClrange.c, src/SDCClrange.h:
9294         functions "alldefsoutofrange" and "notusedinblock" moved to SDCClrange.c
9295
9296         * src/ds390/ralloc.c:
9297         various fixes & enhancements (ds390) specific
9298
9299         * src/avr/ralloc.c, src/mcs51/ralloc.c, src/pic/ralloc.c, src/xa51/ralloc.c, src/z80/ralloc.c:
9300         Functions "allDefsOutOfRange" & "notUsedinBlock" moved to SDCClrange.c
9301         from rallocs.
9302
9303         * sdcc/src/SDCCcse.c: Better fix for bug # 514308
9304
9305 2002-03-02    <johan AT FRIJA>
9306
9307         * src/SDCCast.c (decorateType): fixed bug #524708
9308
9309         * src/SDCCval.c (floatFromVal): fixed the literal void (whatever that may be)
9310
9311         * src/SDCCicode.c (geniCodePtrPtrSubtract): fixed bug #524691
9312
9313 2002-03-01  Michael Hope  <michaelh AT vroom>
9314
9315         * src/SDCCsymt.c (initCSupport): Removed managling of support function names.
9316
9317         * src/z80/ralloc.c (packRegsForIYUse): Fixed fp bug where four byte operands were packed into IY.
9318
9319 2002-03-01    <johan AT FRIJA>
9320
9321         * src/SDCCglue.c (printIvalPtr): fixed bug #524211
9322
9323         * src/SDCCast.c (decorateType): fixed bug #524209
9324
9325         * src/SDCCval.c (valNot): fixed bug #524195
9326
9327 2002-02-26    <johan AT balder>
9328
9329         * src/xa51/gen.c: fixed a warning
9330
9331         * src/SDCCglue.c (printIvalFuncPtr): fixed bug #522534
9332
9333         * src/SDCCast.c (decorateType): fixed bug #522534
9334
9335 2002-02-23    <johan AT balder>
9336
9337         * src/SDCCdflow.c (computeDataFlow): fixed bug #460088
9338
9339 2002-02-22    <johan AT balder>
9340
9341         * src/SDCCast.c: fixed bug #514865
9342
9343         * src/SDCCy.c ("SDCC.y"): fixed bug #516625
9344
9345 2002-02-21  Sandeep Dutta  <sandeep AT ddi.com>
9346
9347         * sdcc/src/SDCCloop.c:
9348         Previous fix was not good. basic blocks that have "break" or "return" are
9349         not really partof a loop , but live ranges used in these blocks should
9350         be live thru the entire loop, so set partOfLoop but don't add them to
9351         loop region
9352
9353 2002-02-21    <johan AT FRIJA>
9354
9355         * src/SDCCcse.c: fixed bug #514308
9356
9357 2002-02-20  Sandeep Dutta  <sandeep AT ddi.com>
9358
9359         * src/SDCCloop.c:
9360         Fixed BUG #519583. If a conditional block ended in a return/break
9361         statement inside a loop, it was not being considered part of the loop.
9362
9363         * src/SDCCcflow.c: Removed fix (Fixed in SDCCloop.c)
9364
9365 2002-02-10  Karl Bongers <karl AT turbobit.com>
9366
9367         * debugger/*:
9368         Fixed up SDCDB debugger somewhat.  Updated debugger/README
9369         with lots of comments and notes.
9370
9371         * device/examples/test2.c:
9372         Fix bug, "red" variable not being initialized(compiler complained).
9373
9374         * device/examples/Makefile, examples/test3.c:
9375         Add Makefile in device/examples folder, compiles test3.c
9376         for use as a multiple module SDCDB test case.
9377
9378         * sim/ucsim/cmd.src/cmdset.cc:
9379         Took out debug printfs in ucsim "next" command.
9380
9381         * sim/ucsim/xa.src:
9382         Karl and Johan start ucsim XA support.  Most dissassembly working,
9383         about 75% emulation done(plenty of work remaining).
9384
9385         * sim/ucsim/z80.src:
9386         Add Z80 support to ucsim, add test-ucz80 regression test,
9387         notice ucsim/z80 emulation fails on examples/test3.c/itoa code.
9388         Notice z80 compiler fails on examples/test3.c/crc code.
9389
9390 2002-01-30  Sandeep Dutta  <sandeep AT ddi.com>
9391
9392         * src/mcs51/gen.c, src/mcs51/main.c, src/mcs51/ralloc.c:
9393         Added support for --parms-in-bank1
9394
9395         * src/ds390/peeph.def:
9396         added a few more peephole optimzations
9397
9398         * src/ds390/main.c:
9399         1) added __builtin_inp & __builtin_outp used to read in data of given length
9400            from a memory mapped port
9401         2) added __builtin_memcmp
9402         3) added __builtin_swapw swap bytes of a short
9403
9404         * src/ds390/gen.c, src/ds390/gen.h, src/ds390/ralloc.c:
9405         1) handle multiple send & receives from register bank1
9406         2) ralloc can now allocate DPTR1 to some liveRanges
9407
9408         * src/SDCCsymt.c, src/SDCCsymt.h:
9409         changes to handle multiple sends & receives
9410
9411         * src/SDCCptropt.h:
9412         added some pointer arithmetic optimization
9413
9414         * src/SDCCptropt.c:
9415         added some pointer arithmetic optimizations but not stable yet so not
9416         called from anywhere (will get this working shortly)
9417
9418         * src/SDCCopt.c: fixed for multiple sends & receives
9419
9420         * src/SDCCmain.c:
9421         1) added options --parms-in-bank1 (ds390/mcs51) & --protect-sp-update
9422         2) preprocessing done AFTER port->finalizeoptions . This allows ports to
9423            set preprocessor defines (depending on options)
9424
9425         * src/SDCCicode.c, src/SDCCicode.h:
9426         changes made to handle multiple sends & receives
9427
9428         * src/SDCCglobl.h:
9429         Added options --protect-sp-update (ds390) and --parms-in-bank1 (ds390/mcs51)
9430
9431         * src/SDCCcse.c, src/SDCCcse.h:
9432         added function findbackward def (to be used in upcoming optimization)
9433
9434         * src/SDCCcflow.c, src/SDCCcflow.h:
9435         added function returnAtEnd - to determine if a basic block terminates with
9436         a RETURN iCode
9437
9438         * src/SDCCast.c, src/SDCCast.h:
9439         added option parms-in-bank1
9440
9441         * device/lib/_divsint.c, device/lib/_divslong.c, device/lib/_divuint.c
9442         * device/lib/_divulong.c, device/lib/_modsint.c, device/lib/_modslong.c
9443         * device/lib/_modulong.c, device/lib/_mulint.c, device/lib/_mullong.c:
9444         adjusted for --parms-in-bank1 option
9445
9446         * device/include/string.h:
9447         donot redefine "reentrant" keyword
9448
9449         * device/include/ds80c390.h: Added some more SFRs
9450
9451 2002-01-28  Bernhard Held  <bernhard AT bernhardheld.de>
9452
9453         * sim/ucsim: Merged branch ucsim-034-pre3 to main trunk; new version 0.4
9454
9455 2002-01-26  Bernhard Held  <bernhard AT bernhardheld.de>
9456
9457         * src/SDCCast.c (funcOfType): fix usage of double --float-reent
9458
9459 2002-01-22  Bernhard Held  <bernhard AT bernhardheld.de>
9460
9461         * support/regression/fwk/lib/testfwk.c (main): Removed workaround for bug #505387
9462
9463 2002-01-18  Paul Stoffregen  <paul AT pjrc.com>
9464
9465         * Added --xram-movc option
9466
9467 2002-01-13  Bernhard Held  <bernhard AT bernhardheld.de>
9468
9469         * support/regression/Makefile: don't include test-mcs51-stack-auto in target all
9470
9471 2002-01-11  Johan Knol
9472
9473         * Added math lib of Jesus Calvino-Fraga
9474
9475 2002-01-08  Bernhard Held  <bernhard AT bernhardheld.de>
9476
9477         * src/SDCCmain.c (processFile): fix processing of ../../src.c
9478         * support/regression/Makefile: new target test-mcs51-stack-auto
9479         * support/regression/ports/mcs51-stack-auto/spec.mk: added
9480
9481 2002-01-04  Bernhard Held  <bernhard AT bernhardheld.de>
9482
9483         * src/SDCCglue.h: printIvalCharPtr(), not printIvalChar()
9484
9485 2002-01-04  Bernhard Held  <bernhard AT bernhardheld.de>
9486
9487         * support/regression/ports/mcs51/support.c: correct setup of timer / UART
9488
9489 2002-01-03  Bernhard Held  <bernhard AT bernhardheld.de>
9490
9491         * src/SDCCsymt.c (processFuncArgs): fix #498307 by Johan
9492
9493         * src/SDCCglue.h: add definition for printIvalChar()
9494
9495 2002-01-02  Bernhard Held  <bernhard AT bernhardheld.de>
9496
9497         * src/SDCCast.c: fix #498138 by Johan
9498
9499         * src/SDCCglue.c: fix #498138 by Johan
9500
9501 2002-01-02  Bernhard Held  <bernhard AT bernhardheld.de>
9502
9503         * support/regression/Makefile: fix clean
9504
9505         * support/regression/ports/ds390/support.c: fix transmission of last character
9506
9507 2001-12-29  Sandeep Dutta  <sandeep AT ddi.com>
9508
9509         * /sdcc/src/ds390/gen.c:
9510         a) improved computing address of stack variable
9511         b) took out some #if 0 code
9512         c) improved parmBytes adjustment
9513         d) improved genPlusIncr & genMinusIncr
9514         e) genCmp could generate bad code (when left assigned to DPTR)
9515         f) Fixed bug in hasInc
9516
9517         * /sdcc/src/ds390/ralloc.c:
9518         a) packRegsForSupport could mess up live information (Fixed)
9519         b) packRegsDPTRuse could be incorrect for left & right shift
9520
9521         * /sdcc/src/mcs51/ralloc.c:
9522         packRegsForSupport could mess up the live information (Fixed)
9523
9524         * /sdcc/src/mcs51/gen.c: Fixed a bug in hasInc
9525
9526         * /sdcc/src/SDCCast.c:
9527         can reverse a loop even if function call is present as long
9528         as the loop control variable is local & is not passed as parameter
9529
9530 2001-12-24  Sandeep Dutta  <sandeep AT ddi.com>
9531
9532         * /sdcc/ChangeLog: *** empty log message ***
9533
9534         * /sdcc/src/ds390/gen.c, /sdcc/src/ds390/main.c:
9535         More builtin function additions for TININative
9536
9537         * /sdcc/src/ds390/ralloc.c:
9538         Had broken the regression testsuite
9539
9540         * /sdcc/src/SDCCast.c: Fixed a bug in dumptree
9541
9542         * /sdcc/src/SDCCsymt.c, /sdcc/src/SDCCsymt.h:
9543         Added funcattr hasStackParms will be set for reentrant functions when there
9544         are paramteres on the stack, this helps in minimizing frame pointer generation
9545         typeFromStr can handle function pointers now
9546
9547         * /sdcc/doc/builtins.txt, /sdcc/doc/TININative.txt:
9548         *** empty log message ***
9549
9550 2001-12-24  Sandeep Dutta  <sandeep AT ddi.com>
9551
9552         * /src/ds390/gen.c, /src/ds390/main.c:
9553         More builtin function additions for TININative
9554
9555         * /src/ds390/ralloc.c:
9556         Had broken the regression testsuite
9557
9558         * /src/SDCCast.c: Fixed a bug in dumptree
9559
9560         * /src/SDCCsymt.c, /src/SDCCsymt.h:
9561         Added funcattr hasStackParms will be set for reentrant functions when there
9562         are paramteres on the stack, this helps in minimizing frame pointer generation
9563         typeFromStr can handle function pointers now
9564
9565         * /doc/builtins.txt, /doc/TININative.txt:
9566         *** empty log message ***
9567
9568
9569 2001-12-24  Sandeep Dutta  <sandeep AT ddi.com>
9570
9571         * /src/ds390/gen.c, /src/ds390/main.c, /src/ds390/peeph.def, /src/ds390/ralloc.c:
9572         ALPHA version for -mTININative
9573
9574         * /src/izt/i186.c, /src/izt/tlcs900h.c, /src/mcs51/main.c, /src/pic/main.c, /src/z80/main.c, /src/avr/main.c:
9575         updated to reflect changes in the port structure
9576
9577         * /src/port.h:
9578         added function do_assemble (similar to do_link) if non-null this function
9579         will be called to do assembly (-mTININative) requires a multi command
9580         assembly
9581         added function genAssemblerEnd will be called to generate assembler Epilogue
9582
9583         * /src/SDCCsymt.c:
9584         added _JavaNative to debug info printing
9585
9586         * /src/SDCCmain.c: added option --tini-libid
9587         added port->do_assemble function (-mTININative) has a multi command assemble
9588
9589         * /src/SDCCglue.c: Disabled "constExpr" check
9590         added port->genAssemblerEnd function
9591
9592         * /src/SDCCglobl.h: Added option --tini-libid value
9593
9594         * /src/SDCCast.h:
9595         tookout optimizeCompare from the header (has no external references)
9596
9597         * /src/SDCCast.c: made one more function "static"
9598
9599 2001-12-23  Michael Hope  <michaelh AT juju.net.nz>
9600
9601         * src/z80/mappings.i: Added z80asm support.
9602
9603         * src/z80/main.c: Added z80asm support on --asm=z80asm
9604
9605         * src/z80/gen.c: Fixed asm portability issues.
9606
9607         * src/asm.c (tvsprintf): Removed old code, added 'N' for function name.  For extern support.
9608
9609         * src/SDCCglue.c (printExterns): Added global/extern split.
9610
9611 2001-12-17  Bernhard Held  <bernhard AT bernhardheld.de>
9612
9613         * support/regression/Makefile: added test for mcs51 model large
9614
9615         * support/regression/ports/mcs51-large/spec.mk: added test for mcs51 model large
9616
9617         * support/regression/ports/gbz80/spec.mk: added -mgbz80
9618
9619 2001-12-05  Michael Hope  <michaelh AT juju.net.nz>
9620
9621         * src/diff.1 (Index): Many, many optmisiations.  Dhrystone up to 201.
9622
9623 1904-01-06  Michael Hope  <michaelh AT juju.net.nz>
9624
9625         * src/z80/ralloc.c (packRegsForIYUse): Fixed the case where an operand is in direct space.
9626
9627         * src/z80/gen.c (makeFreePairId): Optimised IY load by using a spare pair.
9628
9629 2001-12-02  Bernhard Held  <bernhard AT bernhardheld.de>
9630
9631         * src/mcs51/gen.c (genFunction): avoid excess "inc sp"
9632
9633         * support/regression/tests/simplefloat.c: Port to mcs51.
9634
9635 2001-11-25  Michael Hope  <michaelh AT juju.net.nz>
9636         * support/regression/tests/bug-485362.c: Added.
9637
9638         * support/regression/tests/simplefloat.c (testDivNearOne): Added.
9639
9640         * src/z80/gen.c (aopOp): Fixed case where left and result are in the same spill loc and they have different sizes.
9641
9642         * src/z80/peeph.def: Added rules for optimising two byte compares on the same thing, and to optimise two ptr assign.
9643
9644         * src/z80/gen.c (aopDump): Added a dump function.
9645
9646 2001-11-25  Bernhard Held  <bernhard AT bernhardheld.de>
9647         * sim/ucsim/s51.src/glob.cc: DS390 SFRs and bits added.
9648
9649         * sim/ucsim/s51.src/port.cc: Port 4 and 5 added.
9650
9651         * sim/ucsim/s51.src/regs51.h: DS390 SFRs added.
9652
9653         * sim/ucsim/s51.src/uc390.cc: Some details improved, CKRDY works for tinibios.
9654
9655         * sim/ucsim/s51.src/uc390cl.h: Work in progress.
9656
9657         * sim/ucsim/sim.src/uccl.h: 6 ports for DS390.
9658
9659         * support/regression/fwk/lib/testfwk.c: Run with tinibios.
9660
9661         * support/regression/ports/mcs51/spec.mk: Fine tuninig.
9662
9663         * support/regression/ports/ds390/support.c: Use tinibios.
9664
9665         * support/regression/ports/ds390/spec.mk: Fine tuning, use tinibios.
9666
9667 2001-11-23  Michael Hope  <michaelh AT juju.net.nz>support/regression/tests/bug-460010.c
9668
9669         * src/z80/ralloc.c (packRegsForHLUse3): Changed to not pack into HL if anything is in direct space.
9670         (packRegsForHLUse3): Added packing support for send, cast, and return value from a call.
9671
9672         * src/z80/peeph.def: Added rules for optimising pushes of part of a pair.
9673
9674         * src/z80/gen.c (emitCall): Changed the stack fixup to not use HL.
9675
9676 2001-11-18  Michael Hope  <michaelh AT juju.net.nz>
9677
9678         * src/z80/gen.c (genCmp): Fixed compare on unsigned.
9679
9680         * src/z80/ralloc.c (packRegsForHLUse3): Created and optimised.
9681         (packRegsForIYUse): Created and optimised.
9682
9683 2001-11-07  Michael Hope  <michaelh AT juju.net.nz>
9684
9685         * support/regression/tests/float.c (testFloatAdd): Fixed up warning.
9686 2001-11-18  Bernhard Held  <bernhard AT bernhardheld.de>
9687
9688         * sdcc/support/regression/tests/bug-460010.c: fix seg violation on host
9689
9690         * sdcc/support/regression/tests/muldiv.c: fix output on mcs51
9691
9692         * sdcc/support/regression/tests/stacks.c: fix DSEG overflow on mcs51
9693
9694 2001-11-07  Bernhard Held  <bernhard AT bernhardheld.de>
9695
9696         * sdcc/sim/device/lib/_gptrget.c: mem region 5 (idata) added
9697
9698         * sdcc/sim/device/lib/_gptrput.c: mem region 5 (idata) added
9699
9700 2001-11-07  Bernhard Held  <bernhard AT bernhardheld.de>
9701
9702         * sdcc/sim/ucsim/globals.cc: New: IXRAM.
9703
9704         * sdcc/sim/ucsim/stypes.h: New: IXRAM.
9705
9706         * sdcc/sim/ucsim/s51.src/uc390.cc: New: IXRAM.
9707
9708 2001-11-07  Michael Hope  <michaelh AT juju.net.nz>
9709
9710         * src/z80/ralloc.c (packRegsForHLUse): Banned IFXs from being packed into HL.
9711         (packRegsForHLUse): Added rule to pack address of/pointer get for itemps into HL for the Z80.
9712         (packRegsForAccUse2): Added rule to pack hbit IFXs into A.
9713
9714         * src/z80/main.c (_setDefaultOptions): Made float code re-entrant by default.
9715
9716         * src/z80/gen.c (aopGetLitWordLong): Added word support for floats.
9717         (genNotFloat): Added.
9718         (genUminusFloat): Added.
9719
9720         * device/lib/z80/Makefile: Added floating pt stubs.
9721
9722         * device/lib/Makefile.in (Z80SOURCES): Added floating pt support.
9723
9724         * src/z80/gen.c (genIpush): Fixed up a push of one byte when left is in a pair.
9725
9726         * device/lib/_fsadd.c (__fsadd): Fixed up return where the numbers are hugely different.
9727
9728 2001-11-07  Bernhard Held  <bernhard AT bernhardheld.de>
9729
9730         * sdcc/sim/ucsim/s51.src/glob.cc: Minor fix.
9731
9732         * sdcc/sim/ucsim/s51.src/regs51.h: Minor fix.
9733
9734         * sdcc/support/regression/Makefile: Add port ds390.
9735
9736         * sdcc/support/regression/ports/mcs51/spec.mk: Minor change.
9737
9738         * sdcc/support/regression/ports/z80/spec.mk: Minor change.
9739
9740         * sdcc/support/regression/ports/ds390/spec.mk: Added.
9741
9742         * sdcc/support/regression/ports/ds390/support.c: Added.
9743
9744         * sdcc/support/regression/ports/ds390/uCsim.cmd: Added.
9745
9746         * sdcc/support/regression/ports/mcs51/timeout.c: Cut.
9747
9748         * sdcc/support/regression/fwk/lib/timeout.c: Paste.
9749
9750 2001-11-04  Michael Hope  <michaelh AT juju.net.nz>
9751
9752         * device/include/malloc.h: Added z80 and gbz80 support.
9753
9754         * device/lib/gbz80/heap.s: Added.
9755
9756         * device/lib/z80/heap.s: Added.
9757
9758         * device/lib/malloc.c: Added z80 and gbz80 support.
9759
9760         * support/regression/tests/malloc.c (testMalloc): Added.
9761
9762         * src/SDCCmain.c (parseCmdLine): Added support for -Wp.
9763
9764         * support/regression/tests/bug-478094.c: Added.
9765
9766         * src/z80/gen.c (commitPair): Fixed silly gbz80/z80 commit to static bug.
9767
9768 2001-11-04  Bernhard Held  <bernhard AT bernhardheld.de>
9769
9770         * sdcc/sim/ucsim/s51.src/uc390cl.h: Improvement for ds390 to run regression tests
9771
9772         * sdcc/sim/ucsim/s51.src/uc390.h: Improvement for ds390 to run regression tests
9773
9774         * sdcc/sim/ucsim/s51.src/regs51.h: Improvement for ds390 to run regression tests
9775
9776         * sdcc/sim/ucsim/s51.src/glob.cc: Improvement for ds390 to run regression tests
9777
9778         * sdcc/support/regression/tests/bug-460010.c: Small change for ds390
9779
9780 2001-11-04  Michael Hope  <michaelh AT juju.net.nz>
9781
9782         * src/z80/peeph-gbz80.def: Removed a bad sub optimisation.
9783
9784 2001-11-03  Michael Hope  <michaelh AT juju.net.nz>
9785
9786         * support/regression/tests/bug-477927.c: Added.
9787
9788         * src/z80/peeph.def: Added minor rules.
9789
9790         * src/z80/gen.c (genPlusIncr): Added an extra plusinc rule.
9791
9792         * src/z80/peeph.def: Added jump optimisation modification.
9793
9794 2001-11-01  Michael Hope  <michaelh AT juju.net.nz>
9795
9796         * src/SDCCmain.c (linkEdit): Added runtime path detection to the mcs51 port.
9797
9798 2001-10-30  Michael Hope  <michaelh AT juju.net.nz>
9799
9800         * support/regression/tests/funptrs.c: Added.
9801
9802 2001-10-29  Michael Hope  <michaelh AT juju.net.nz>
9803
9804         * src/z80/ralloc.c (packRegsForHLUse): Fixed up bad spill due to pushing one byte via HL.
9805
9806 2001-10-28  Michael Hope  <michaelh AT juju.net.nz>
9807
9808         * src/z80/gen.c (genArrayInit): Made it work for on stack arrays.
9809
9810         * src/z80/main.c (gbz80_port =): Added rle support to the gbz80 port.
9811
9812         * src/z80/gen.c (genMinus): Fixed for where the result is one byte.
9813         (movLeft2ResultLong): Created.
9814
9815         * src/z80/ralloc.c (packRegsForHLUse): Added a couple of simple cases for the GB.
9816         (joinPushes): Added.  Joins two char pushes into a word push.
9817
9818 2001-10-27  Michael Hope  <michaelh AT juju.net.nz>
9819
9820         * support/cpp2/Makefile.in (install): Added creation of dest dir.
9821
9822         * support/makebin/Makefile (install): Added creation of dest dir.
9823
9824 2001-10-24 Karl Bongers <karl AT turbobit.com>
9825
9826         * configure.in, configure, Makefile, support/cpp: Removed cpp folder, since we have new cpp2 preprocessor code.
9827
9828 2001-10-21  Michael Hope  <michaelh AT juju.net.nz>
9829
9830         * src/z80/ralloc.c: Turned off faulty pack for one use.
9831
9832         * src/z80/peeph-gbz80.def: Removed redundent restart options.
9833
9834         * src/z80/gen.c (genMult): Added native mul for constants on the z80 and gbz80.
9835
9836 2001-10-21  Bernhard Held  <bernhard AT bernhardheld.de>
9837
9838         * support/regression/Makefile: Improved clean
9839
9840         * support/regression/ports/gbz80/spec.mk: Added clean
9841
9842         * support/regression/ports/host/spec.mk: Added clean
9843
9844         * support/regression/ports/z80/spec.mk: Added clean
9845
9846         * support/regression/ports/mcs51/spec.mk: Added clean, little improvements
9847
9848         * support/regression/ports/mcs51/timeout.c: little improvements
9849
9850 2001-10-17  Michael Hope  <michaelh AT juju.net.nz>
9851
9852         * device/lib/malloc.c (MEMHEADER): Fixed against new pedantic pointers.
9853
9854         * support/regression/fwk/include/testfwk.h: Fixed up to use function pts correctly.
9855
9856         * support/regression/generate-cases.py: Fixed up to use function pts correctly.
9857
9858 2001-10-16  Bernhard Held  <bernhard AT bernhardheld.de>
9859
9860         * support/regression/port/mcs51/spec.mk: add timeout for uCsim
9861
9862         * support/regression/port/mcs51/timeout.c: add timeout for uCsim
9863
9864 2001-10-13  Michael Hope  <michaelh AT juju.net.nz>
9865         * src/z80/gen.c (emitCall): Fixed up missing spill of HL when used to assign the result value.
9866
9867         * src/z80/ralloc.c: Turned off pack for one use as it's quite broken.
9868
9869         * src/SDCCmain.c (linkEdit): Added support for passing a legacy command line through the processor.
9870
9871         * src/mcs51/main.c (_linkCmd): Added bin path to command.
9872
9873         * src/SDCCmain.c (initValues): Added support for when it it called just to link.
9874
9875         * as/mcs51/lklibr.c (libfil;): Turned off 'library file' message.
9876
9877         * src/SDCCval.c (constVal): Fixed usage of 'L' modifier problems on ppc.
9878
9879         * support/regression/tests/longor.c: Added.
9880
9881 2001-10-11  Bernhard Held  <bernhard AT bernhardheld.de>
9882
9883         * as/mcs51/asdata.c: replaced FILENAME_MAX with PATH_MAX
9884
9885         * as/mcs51/aslink.h: define PATH_MAX
9886
9887         * as/mcs51/asm.h: define PATH_MAX
9888
9889         * as/mcs51/asmain.c: replaced FILENAME_MAX with PATH_MAX
9890
9891         * as/mcs51/asnoice.c: replaced FILENAME_MAX with PATH_MAX
9892
9893         * as/mcs51/lklex.c: replaced FILENAME_MAX with PATH_MAX
9894
9895         * as/mcs51/lkmain.c: replaced FILENAME_MAX with PATH_MAX
9896
9897         * src/SDCCglobl.h: define PATH_MAX
9898
9899         * src/SDCCmacro.c: replaced FILENAME_MAX with PATH_MAX
9900
9901         * src/SDCCmain.c: replaced FILENAME_MAX with PATH_MAX
9902
9903 2001-10-11  Michael Hope  <michaelh AT juju.net.nz>
9904
9905         * src/z80/gen.c (gencjneshort): Fixed
9906
9907         * src/z80/ralloc.c (packRegsForHLUse): Added pack into HL for cast then ipush.
9908
9909 2001-10-09  Michael Hope  <michaelh AT juju.net.nz>
9910
9911         * support/regression/tests/bug-469671.c: Added.
9912
9913         * src/z80/gen.c (shiftIntoPair): Fixed up warning.
9914
9915 2001-10-08  Michael Hope  <michaelh AT juju.net.nz>
9916
9917         * src/SDCCmain.c: Added --fommit-frame-pointer option and implemented in the z80 port.
9918
9919         * src/z80/gen.c (genPlus): Fixed to work with extended stack.  Also fixed genMinus, genCmp.  genUMinus is still left.
9920
9921 2001-10-08  Bernhar Held  <bernhard AT bernhardheld.de>
9922
9923         * src/SDCCmain.c (preProcess): added define SDCC_NOOVERLAY
9924
9925         * src/device/lib/_mulint.c  : removed hint: nooverlay bug
9926
9927         * src/device/lib/_mullong.c : removed hint: nooverlay bug
9928
9929         * src/device/lib/_divuint.c : removed hint: nooverlay bug
9930
9931         * src/device/lib/_divulong.c: removed hint: nooverlay bug
9932
9933         * src/device/lib/_moduint.c : removed hint: nooverlay bug
9934
9935         * src/device/lib/_modulong.c: removed hint: nooverlay bug
9936
9937 2001-10-07  Michael Hope  <michaelh AT juju.net.nz>
9938
9939         * 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.
9940
9941         * support/Util/NewAlloc.c (freeTrace): Changed free for the gc case to not free at all.  Fixes runtime segfault.
9942
9943         * support/regression/tests/scott-compare3.c (c_abcd): Fixed up casts.
9944
9945 2001-10-07    <johan AT FRIJA>
9946
9947         * device/lib/gets.c (gets): fixed the return value.
9948
9949 2001-10-06  Michael Hope  <michaelh AT juju.net.nz>
9950         * src/SDCCmain.c (WRITE_SEG_LOC): Fixed up to use Safe_strdup.
9951
9952         * 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.
9953
9954         * 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.
9955
9956         * src/z80/gen.c (genZ80Code): Added de-allocation via trace support.
9957
9958         * src/pic/gen.c: Removed Safe_strdup.
9959
9960         * configure.in: Added option to enable libgc support.
9961
9962         * src/SDCCbitv.c (bitVectnBitsOn): Optimised.
9963         (bitVectUnion): Optimised.
9964         (bitVectIntersect): Optimised.
9965         (bitVectBitsInCommon): Optimised.
9966         (bitVectCplAnd): Optimised.
9967
9968         * support/makebin/makebin.c (usage): Removed getopt as mingw32 doesn't have it.  Sigh.
9969
9970 2001-10-03 Bernhard Held <bernhard AT bernhardheld.de>
9971
9972         * src/SDCCmain.c: distinguish between assembler debug and plain options
9973
9974         * src/avr/main.c:   remove standard assembler options
9975
9976         * src/ds390/main.c: remove standard assembler options
9977
9978         * src/mcs51/main.c: remove standard assembler options
9979
9980         * src/port.h: removed "PENDING" comment
9981
9982 2001-10-03 Bernhard Held <bernhard AT bernhardheld.de>
9983
9984         * src/device/lib/_mulint.c  : new, with assember functions
9985
9986         * src/device/lib/_mullong.c : new, with assember functions
9987
9988         * src/device/lib/_divuint.c : with assember functions
9989
9990         * src/device/lib/_divsint.c : with assember functions
9991
9992         * src/device/lib/_divulong.c: with assember functions
9993
9994         * src/device/lib/_divslong.c: with assember functions
9995
9996         * src/device/lib/_moduint.c : with assember functions
9997
9998         * src/device/lib/_modsint.c : with assember functions
9999
10000         * src/device/lib/_modulong.c: with assember functions
10001
10002         * src/device/lib/_modslong.c: with assember functions
10003
10004         * src/device/lib/libint.lib:  replaced _muluint.c  and _mulsint.c  by _mulint.c
10005
10006         * src/device/lib/liblong.lib: replaced _mululong.c and _mulslong.c by _mullong.c
10007
10008         * src/device/lib/Makefile.in: replaced _muluint.c  and _mulsint.c  by _mulint.c
10009                                       replaced _mululong.c and _mulslong.c by _mullong.c
10010
10011 2001-10-03 Bernhard Held <bernhard AT bernhardheld.de>
10012
10013         * src/SDCCsymt.c: sequence of specifiers in pintTypeChain() corrected
10014
10015 2001-10-01 Bernhard Held <bernhard AT bernhardheld.de>
10016
10017         * src/SDCCglue.c: test, if win32api is available for MINGW
10018
10019 2001-10-01 Bernhard Held <bernhard AT bernhardheld.de>
10020
10021         * src/SDCCsymt.c: no more _modifier in printTypeChain()
10022         * support/regression/tests/driverstruct.c: REENTRANT for mcs51
10023         * support/regression/ports/gbz80/spec.mk: removed GENERIC
10024         * support/regression/ports/host/spec.mk: removed GENERIC
10025         * support/regression/ports/mcs51/spec.mk: removed GENERIC
10026         * support/regression/ports/z80/spec.mk: removed GENERIC
10027
10028 2001-10-01  Michael Hope  <michaelh AT juju.net.nz>
10029
10030         * support/regression/fwk/lib/testfwk.c (__printf): Removed GENERIC.
10031
10032         * support/regression/tests/bug-467035.c: Created.
10033
10034 2001-10-01    <johan AT FRIJA>
10035
10036         * src/SDCC.y: fixed bug #466586 part 1
10037
10038 2001-10-01  Johan Knol <johan.knol AT iduna.nl>
10039
10040         * SDCCicode.c: z80 has no generic pointers
10041         * removed -s from strip in all Makefile(.in)'s. It is not needed, but Solaris chocks on it.
10042
10043 2001-09-30  Michael Hope  <michaelh AT juju.net.nz>
10044
10045         * sim/ucsim/cmd.src/Makefile.in ($(PRJDIR)/libcmd.a): Changed all ar references to $(AR) for Solaris.
10046
10047 2001-09-29  Michael Hope  <michaelh AT juju.net.nz>
10048
10049         * Makefile (sdcc-libs): Added makebin to the list of standard targets.
10050
10051         * support/regression/ports/z80/spec.mk: Updated to use env for sdcc bin dir for automatic regression.
10052
10053 2001-09-25  Michael Hope  <michaelh AT juju.net.nz>
10054
10055         * configure.in: Fixed up so that ucsim is only configured once.
10056
10057         * support/cpp2/configure.in: Fixed to use the program transform to append the .exe for the win32 build.
10058
10059         * src/SDCCutil.c (getPrefixFromBinPath): Fixed up to work with win32 in all of its glory.
10060         (getPathDifference): As above.
10061
10062         * src/SDCCmain.c (preProcess): Changed to use a temporary file in a proper temp directory.  Fixed case where pre-processing only.
10063
10064         * src/SDCCglue.c (tempfilename): Added function for pre-processor.
10065
10066 2001-09-23  Michael Hope  <michaelh AT juju.net.nz>
10067         * .version: Updated to 2.3.1
10068
10069         * src/z80/main.c (z80_port =): Added macro based linker and assembler command line support.
10070         Added copyright header.
10071
10072         * src/SDCCmain.c: Shifted various functions into SDCCutil.c
10073         (assemble): Added support for macro based assembler commands.
10074         (linkEdit): Added support for macro based linker commands.
10075         (preProcess): Changed the pre-processor to use macros.
10076         (_setPaths): Added functionality to autodetect the include, lib and bin dir paths.
10077         (_discoverPaths): Added support for overriding the install directory using the SDCCDIR env variable.
10078
10079         * device/lib/z80/crt0.s: Added module name for debugging.
10080
10081 2001-09-20  Michael Hope  <michaelh AT juju.net.nz>
10082
10083         * src/SDCCmain.c (printVersionInfo): Added the build date to the version info.
10084
10085         * src/SDCChasht.c (hTabDeleteByKey): Fixed delete as it would delete the last item from a bucket even if it wasn't the real one.
10086
10087         * src/SDCCglue.c: Moved gc_strdup to SDCCutil.c
10088
10089         * src/Makefile.in: Added SDCCmacro and SDCCutil
10090
10091 2001-09-19  Michael Hope  <michaelh AT juju.net.nz>
10092
10093         * src/SDCCmain.c (printVersionInfo): Added the build date to the version info.
10094
10095 2001-09-16    <johan AT FRIJA>
10096
10097         * 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.
10098
10099 2001-09-15    <johan AT FRIJA>
10100
10101         * src/mcs51/ralloc.c: (findAssignToSym): fixed bug #460662 part 1
10102         * src/ds390/ralloc.c (findAssignToSym): fixed bug #460662 part 1
10103
10104 2001-09-11    <johan AT FRIJA>
10105
10106         * src/SDCCval.c (valDiv Mod Minus Plus Shift): keep litteral expressions as small as possible (bug #460010)
10107
10108 2001-09-10  Michael Hope  <michaelh AT juju.net.nz>
10109
10110         * support/regression/tests/bug-460444.c: Added test case.
10111
10112         * src/z80/gen.c (genOr): bug 460444: if (a ^ lit) was broken for &, |, and ^.
10113         (genCast): Added justification for all of the asserts.
10114
10115 2001-09-10  Bernhard Held <bernhard AT bernhardheld.de>
10116
10117         * support/regression/support.c: _xdata replaced by xdata
10118
10119         * support/regression/spec.mk: removed _generic
10120
10121 2001-09-09  Michael Hope  <michaelh AT juju.net.nz>
10122
10123         * src/pic/ralloc.c (debugLogRegType): Removed some old types to get it to compile.
10124
10125         * src/z80/gen.c (shiftR2Left2Result): Improved the case when v = v >> n for small values of n to use less code space and time.
10126         (genrshTwo): Fixed v = v >> n where v is a negative int and n is > 8: bug 460010.
10127
10128         * src/z80/peeph.def: Added a rule to optimise shift then compare.
10129
10130         * support/regression/tests/bug-460000.c (testShiftByParam): Added test case.
10131
10132         * support/regression/tests/bug-460010.c: Added test case.
10133
10134         * support/regression/Makefile (test-host): Removed a silly 'clean' target when testing against gcc.
10135
10136 2001-09-09  Bernhard Held <bernhard AT bernhardheld.de>
10137
10138         * support/regression/Makefile: inter-port-clean adjusted for mcs51
10139
10140         * support/regression/testfwk.c: removed workaround for bug #436344
10141
10142         * support/regression/tests/bp.c: use less memory with mcs51
10143
10144         * support/regression/tests/bug-441448.c: use less memory
10145
10146         * support/regression/tests/ports/mcs51/spec.mk: cleanup, use --stack-after-data
10147
10148         * support/regression/collate-results.py: typo
10149
10150 2001-09-08  Michael Hope  <michaelh AT juju.net.nz>
10151
10152         * support/regression/tests/fetchoverlap.c: Added new test case.
10153
10154         * support/regression/tests/bp.c: Added new test case.
10155
10156         * support/regression/tests/bug-448984.c: Added new test case.
10157
10158         * support/regression/tests/pow2shifts.c: Added new test case.
10159
10160         * src/z80/gen.c: Turned off the noise it normally generates for the release.
10161         (genlshTwo): Fixed right shift for count > 8.
10162
10163         * src/z80/ralloc.c: Disabled most of the ACC packing rules as they weren't getting hit and weren't at all safe.
10164
10165 2001-09-08    <johan AT FRIJA>
10166
10167         * src/SDCCicode.c (geniCodeCall): a CPOINTER can be used as a function
10168
10169 2001-09-07    <johan AT FRIJA>
10170
10171         * src/SDCCicode.c (newiCodeCondition): fixed bug #456235 (1.77)
10172
10173         * src/SDCCglue.c (emitRegularMap): only delete a symbol when it is a symbol
10174
10175 2001-09-06    <johan AT FRIJA>
10176
10177         * src/SDCC.y: this could be a fix for bug #458744 (1.37)
10178         * bernhard noted me at this: "() equals to (void)" (1.38)
10179
10180 2001-09-05    <johan AT FRIJA>
10181
10182         * src/SDCCglue.c (emitRegularMap): a fix for bug #458099/2
10183
10184 2001-09-04    <johan AT FRIJA>
10185
10186         * src/SDCCsymt.c (checkSClass): a fix for bug #458099/1
10187
10188
10189 2001-09-04  Paul Stoffregen  <paul AT pjrc.com>
10190
10191         * pragma noinduction broke memcpy on mcs51 large model.  Moved it inside z80 optimization
10192
10193 2001-09-03  Michael Hope  <michaelh AT juju.net.nz>
10194
10195         * link/z80/aslink.h: Fixed path for PATH_MAX
10196
10197 2001-09-02  Michael Hope  <michaelh AT juju.net.nz>
10198
10199         * src/z80/gen.c (fetchLitPair): Changed so that it properly caches direct space references.
10200
10201         * support/regression/tests/addsub.c: Added cases to cover all the +, - combinations.
10202
10203         * support/regression/tests/uminus.c: Added a test for the unary minus operator.
10204
10205         * 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.
10206
10207 2001-09-01  Michael Hope  <michaelh AT juju.net.nz>
10208
10209         * src/z80/gen.c: Fixed up generator to pass the regresion tests, specifically fixing loads for longs, genCmp, and turned on the map file.
10210         (genCmp): Fixed up genCmp for the GB with longs.
10211
10212         * device/lib/gbz80/Makefile: Fixed up all the libraries to pass the regression tests.
10213
10214         * support/regression/ports/host/spec.mk: Updated to compile with the new type specifiers.
10215
10216         * device/lib/Makefile.in (Z80SOURCES): Removed old _mululong, _mulslong, and unneeded _mulint.
10217
10218         * device/lib/_mullong.c (_mulslong): Changed to actually return a value :)
10219
10220 2001-08-30  Paul Stoffregen  <paul AT pjrc.com>
10221
10222         * added peepholes 223 to 231 to mcs51 port.  These improve code when using large model.
10223
10224 2001-08-30  Michael Hope  <michaelh AT juju.net.nz>
10225
10226         * 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.
10227
10228         * src/z80/gen.c (genPlus): Changed bad long add for gb to a fall through.
10229
10230 2001-08-29  Michael Hope  <michaelh AT juju.net.nz>
10231
10232         * link/z80/aslink.h: Fixed long file name support.  Is now based off PATH_MAX instead of a constant.
10233
10234         * src/z80/gen.c: Fixed add and sub for the case where left or right are in static space.
10235
10236 2001-08-30 Bernhard Held   <bernhard AT bernhardheld.de>
10237
10238   * sim/ucsim/configure:    little improvement of Cygwin-detection
10239   * sim/ucsim/configure.in: little improvement of Cygwin-detection
10240   * sim/ucsim/cmd.src/newcmdcl.h: include <sys/types.h> to define fd_set automated build
10241   * support/regression/tests/bug-221100.c: small changes for mcs51
10242   * support/regression/tests/bug-221168.c: small changes for mcs51
10243   * support/regression/tests/bug-227710.c: small changes for mcs51
10244   * support/regression/tests/staticinit.c: small changes for mcs51
10245   * as/mcs51/aslink.h: accept everything as symbol name in rel-files, bug fix ID 452601
10246   * as/mcs51/lklex.c:  accept everything as symbol name in rel-files, bug fix ID 452601
10247   * as/mcs51/lksym.c:  accept everything as symbol name in rel-files, bug fix ID 452601
10248
10249 $Revision$