more about genUnpackBits
[fw/sdcc] / ChangeLog
1 2005-11-18 Bernhard Held <bernhard AT bernhardheld.de>
2
3         * src/SDCCsymt.c (computeType): fixed bug 1358192: added missing else,
4         reformatted for better readability
5         * src/mcs51/gen.c (genUnpackBits): initial, incomplete support for
6         signed bitfields
7
8 2005-11-17 Borut Razem <borut.razem AT siol.net>
9
10         * device/lib/pic16/Makefile.rules, device/lib/pic16/Makefile.subdir:
11           itroduced SILENT option to make building of pic16 libraries less
12           verbose - used for nightly snapshot build
13         * doc/sdccman.lyx: documented that SDCDB and ucSim are currently not
14           available on Win32 platforms.
15         * sdcc/device/lib/Makefile.in: added library sources for mcs51, small,
16           medium, large, pic and pic16
17
18 2005-11-16 Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
19
20         * device/lib/printf_large.c: Temporary patch for bug 1358192: 
21           printf("%f"...) sets fraction to zero. 
22
23 2005-11-16 Raphael Neider <rneider AT web.de>
24
25         * src/pic/pcode.c (LinkFlow): handle empty flows correctly,
26           fixes #1357221
27         * src/pic/gen.c (genIfx): implemented for CARRY bit
28         * src/pic16/gen.c (genAssign,genCast): fixed assigning/casting
29           to generic pointers, fixes #1357332,
30           (pic16_movLit2f): NEW,
31           (pic16_storeForReturn,genDataPointerSet): use pic16_movLit2f
32
33 2005-11-14 Maarten Brock <sourceforge.brock AT dse.nl>
34
35         * src/SDCCmain.c (parseCmdLine): fixed bug 1356800, thanks rsudjian
36
37 2005-11-11 Raphael Neider <rneider AT web.de>
38
39         * src/pic/gen.c: handle FPOINTERS like POINTERS everywhere
40         * src/pic16/gen.c (pic16_derefPtr): now works for non-pointers as well,
41           compute pointer's type from operand,
42           (genUnpackBits,genPackBits): handle FPOINTERS correctly, re-indented,
43           improved single bit reads, fixes bug #1353379
44
45 2005-11-09 Borut Razem <borut.razem AT siol.net>
46
47         * support/scripts/sdcc.nsi: added lib/pic to the package
48
49 2005-11-08 Maarten Brock <sourceforge.brock AT dse.nl>
50
51         * src/SDCCval.c (valUnaryPM): fixed bug 1350699
52
53 2005-11-06 Maarten Brock <sourceforge.brock AT dse.nl>
54
55         * support/regression/tests/bug1348008.c: added
56         * src/mcs51/gen.c (saveRBank, unsaveRBank): fixed bug 1348008
57         * support/regression/tests/bug1337835.c: updated comment
58
59 2005-11-06 Borut Razem <borut.razem AT siol.net>
60
61         * sim/ucsim/error.cc, sim/ucsim/errorcl.h,
62           sim/ucsim/sim.src/stack.cc, sim/ucsim/sim.src/stackcl.h,
63           sim/ucsim/sim.src/uc.cc, sim/ucsim/sim.src/uccl.h,
64           sim/ucsim/sim.src/mem.cc, sim/ucsim/sim.src/memcl.h,
65           sim/ucsim/cmd.src/set.cc, sim/ucsim/cmd.src/show.cc:
66           dynamic construction of cl_error_class and derivates - 2.nd try
67
68 2005-11-05 Borut Razem <borut.razem AT siol.net>
69
70         * sim/ucsim/sim.src/error.cc: fixed uninitialized class member variable
71           bug, which caused Bus Errors on sparc solaris
72
73 2005-11-04 Borut Razem <borut.razem AT siol.net>
74
75         * sim/ucsim/error.cc, sim/ucsim/errorcl.h,
76           sim/ucsim/sim.src/stack.cc, sim/ucsim/sim.src/stackcl.h,
77           sim/ucsim/sim.src/uc.cc, sim/ucsim/sim.src/uccl.h,
78           sim/ucsim/sim.src/mem.cc, sim/ucsim/sim.src/memcl.h,
79           sim/ucsim/cmd.src/cmdconf.cc: dynamic construction of cl_error_class
80           and derivates to resolve the initialization problem on OSX
81
82 2005-11-02 Borut Razem <borut.razem AT siol.net>
83
84         * sim/ucsim/cmd.src/cmdutil.cc, sim/ucsim/cmd.src/newcmd.cc:
85           corrected typo - #include <winsock2.h>
86
87 2005-11-02 Maarten Brock <sourceforge.brock AT dse.nl>
88
89         * src/asm.c (printILine): always close tmpFile, thanks Beau E. Cox,
90           (_asxxxx_mapping): added org directive for future enhancements
91
92 2005-11-01 Borut Razem <borut.razem AT siol.net>
93
94         * sim/ucsim/app.cc, sim/ucsim/cmd.src/cmdutil.cc, sim/ucsim/cmd.src/newcmd.cc:
95           enabled sockets on WIN32
96         * sim/ucsim/cmd.src/newcmd.cc: fixed bug with uninitialized variables
97
98 2005-10-31 Borut Razem <borut.razem AT siol.net>
99
100         * support/regression/generate-cases.py: escape backslashes in {testcase}:
101           WIN32 backslash path delimiters should be escaped when used in C strings
102         * support/regression/tests/bitfields.c: exclude failing assertions for
103           __CYGWIN32__ and __MINGW32__ hosts
104
105 2005-10-30 Borut Razem <borut.razem AT siol.net>
106
107         * src/SDCCutil.c: corrected double comparison typo
108
109 2005-10-30 Maarten Brock <sourceforge.brock AT dse.nl>
110
111         * device/lib/medium/Makefile: added for new memory model medium
112         * device/include/asm/mcs51/features.h: updated for medium/pdata
113         * device/include/mcs51/c8051f120.h: added sfr16/sfr32 definitions,
114           added Multiply & Accumulate sbit's and MAC0_PAGE define
115         * device/include/mcs51/c8051f300.h: added sfr16 definitions
116         * device/include/mcs51/c8051f310.h: added sfr16 definitions
117         * device/lib/_mullong.c: update for medium model
118         * device/lib/incl.mk: added medium model
119         * doc/sdccman.lyx: documented medium model
120         * src/SDCCast.c (isBitAndPow2): simplified using updated powof2
121         * src/SDCCicode.c (geniCodeMultiply, geniCodeDivision): use updated powof2
122         * src/SDCCmain.c (optionsTable, linkEdit): enabled medium model
123         * src/SDCCmem.c (allocIntoSeg): set iaccess for pdata symbols,
124           (allocParms): set SCLS and OCLS to pdata for medium model
125         * src/SDCCsymt.c (processFuncArgs): use default_local_map and set iaccess
126           for pdata,
127           (powof2): return <0 if not power of 2
128         * src/avr/gen.c (genBitWise): use updated powof2
129         * src/mcs51/gen.c (genMinusDec): use acc if necessary,
130           (shiftR2Left2Result): small optimization in setup, save acc when storing,
131           (shiftLLeftOrResult): use B if necessary
132         * src/mcs51/main.c (_mcs51_finaliseOptions, mcs51_port): added medium model
133         * src/mcs51/peeph.def: renamed 226 to 226.b, added 226.a
134         * src/pic/main.c (_pic14_do_link): made void parameter list explicit
135         * support/regression/Makefile.in: added test-mcs51-medium
136         * support/regression/ports/mcs51-medium/spec.mk: added to test medium model
137
138 2005-10-28 Bernhard Held <bernhard AT bernhardheld.de>
139
140         * src/SDCCsymt.c (compStructSize): make bitfields without (un)signed
141         specifier unsigned
142         * device/lib/time.c (mktime): fixed bug 1334315
143
144 2005-10-28 Raphael Neider <rneider AT web.de>
145
146         * device/include/pic/p16f_common.inc: added common declarations
147         * src/pic/ralloc.c (initStack): moved regs *r to block start for Alpha
148
149 2005-10-27 Maarten Brock <sourceforge.brock AT dse.nl>
150
151         * src/mcs51/gen.c (getTempRegs): return 0 if not enough registers found,
152           (aopPutUsesAcc): added to predict accumulator use,
153           (assignResultValue): save acc if necessary,
154           (genMinusDec): store result if indirectly addressed,
155           (genDivOneByte):  save acc if necessary,
156           (movLeft2Result): bugfix if left already in acc,
157           (genAnd, genOr, genXor, shiftL2Left2Result, shiftR2Left2Result): pay more
158             attention to accumulator use (esp. pdata),
159           (genReceive): receive pdata correctly
160         * src/SDCCicode.c (isOperandInPagedSpace): added to detect pdata operands
161         * src/SDCCicode.h: added isOperandInPagedSpace prototype
162
163 2005-10-27 Raphael Neider <rneider AT web.de>
164
165         * doc/sdccman.lyx: corrected version (should be 2.5.4 not 2.5.5)
166
167 2005-10-27 Raphael Neider <rneider AT web.de>
168
169         * .version: changed version to 2.5.4
170         * doc/sdccman.lyx: changed version to 2.5.4, added some remarks to PIC14
171         * device/lib/pic/libsdcc/{_mulint.c,_mullong.c}: use unsigned literals,
172           (_divschar.c,divuchar.c,_mulchar.c,_modschar.c,_moduchar): NEW,
173             arithmetics support routines
174         * device/lib/pic/Makefile.rules: have assembler sources preprocessed
175         * device/lib/Makefile.in: also create installdir for pic
176
177         * src/SDCCopt.c (cnvToFcall): mark support routines `extern' for
178           pic14 port as well
179         * src/pic/device.c (dump_sfr): rewritten to delegate register
180           placement to the linker (use `extern sym' rather than sym EQU addr),
181           (validAddress): fixed to check last specified address
182         * src/pic/gen.c (aopForSym): added code to deal with array (useless?),
183           (popGetLit): truncate literal value to 8 bit,
184           (popGet): moved assert to more appropriate place
185           (popGetExternal): create pCode operand from and mark the according
186             symbol as being `extern'
187           (popGetAddr): added sanity check on immediate's offset, provide
188             GPOINTER tag on demand
189           (aopPut): fixed for immediates,
190           (mov2w_op): move operand's address or contents to WREG (depending on
191             operand type), safer variant of mov2w,
192           (movwf,call_libraryfunc): NEW, handy abbreviations,
193           (get_argument_pcop,get_return_val_pcop,pass_argument,
194           get_returnvalue): interface for accessing function parameters and
195             return values,
196           (assignResultValuei,genRet): use new parameter/return value interface
197           (pic14_getDataSize): back to old version handling generic pointers,
198           (pic14_toBoolean,genNot,genCpl,genCmpEq,genOrOp): heavily rewritten,
199             provided implementation and/or fixed old one,
200           (genMultOneByte,genDivOneByte,genModOneByte): implemented as library
201             calls, removed legacy 8051 reference code
202           (AccLsh,AccRsh): rewritten and fixed to deal with signed operands
203           (loadSignToC): NEW, move the operands sign bit to CARRY,
204           (genGenericShift): NEW, replaces genLeftShift, genRightShift and
205             genRightShiftSigned, accepts negative shift counts,
206           (setup_fsr): load FSR and adjust IRP (indirect memory access),
207           (emitPtrByteGet,emitPtrByteSet): rewritten, now works with
208             generic pointers, __data pointers and __code pointers,
209           (genUnpackBits,genPackBits): rewritten to work with generic pointers
210             and signed bitfields, limit bitfields to 8 bit,
211           (genDataPointerGet): fixed number of bytes read,
212           (genGenPointerGet,genConstPointerGet): fixed bitfield access,
213           (genPointerGet,genPointerSet): fixed handling of __code pointers,
214             pointers to constant data are no longer assumed to point to __code
215             space, removed invalid pointer types,
216           (bitpatternFromVal): retrieve the PICs representation of an integer
217             or float literal,
218           (genDataPointerSet): fixed assigning to po_immediate operands,
219           (genGenPointerSet): implemented as library call,
220           (genIfx): fixed incorrect condition,
221           (genAddrOf): limit generic pointers' addresses to 2 bytes,
222             provide GPOINTER tag according to destination's storage class,
223           (genCast): added code to handle casting to generic pointers, added
224             sign-/zero extension of the result
225           (aop_isLitLike,op_isLitLike): fixed handling of immediates
226         * src/pic/gen.h: added macros to access IRP bit in STATUS register
227         * src/pic/genarith.c (genAddLit): use min(result's,left's) size, sign
228           extend the result
229         * src/pic/glue.c (is_shared_address,is_shared): check whether a given
230           address/register resides in the shared banks
231           (emitSymbolToFile): improved to handle global and `pinned' symbols,
232             put all variables into separate sections (have the linker arrange
233             them)
234           (picglue): put init code and interrupt handlers in separate sections
235         * src/pic/main.c: added port specific options table, modified to PORT
236           structure to make GPOINTERs 3 byte, added pic14_options
237           (_pic14_do_link): private linking routine (update paths to libraries,
238             add libsdcc.lib by default)
239         * src/pic/main.h: declare pic14_options
240         * src/pic/pcode.c: fixed instructions i/o relations,
241           (RegCond): reverted to correct version,
242           (newpCodeOpLit): truncate literals to 8 bit,
243           (genericPrint): added debug output,
244           (getRegFromInstruction): fixed for various operand types, simplified
245           (BuildFlow): fixed broken handling of isntructions with labels
246           (LinkFlow): start at last instruction in flow (skip trailing comments),
247             pass the flow on to the next instruction after CALL
248           (pCodeReplace): NEW, replace a pCode and move meta data to the new one
249           (insertPCodeInstruction): fixed inserting after a skip instruction,
250           (DoBankSelect): fixed for labeled instructions
251           (OptimizepBlock): honor --nopeep switch
252           (AnalyzeFlow,ReuseReg): prevent crash on source files with no function
253         * src/pic/pcodepeep.c (pCodePeepMatchRule): prevent NULL pointer accesses
254         * src/pic/pcoderegs.c (regIsLocal): NEW, check visibility of a register
255           (pCodeOptime2pCodes): allow disabling this optimization via
256             --no-pcode-opt due seldomly occuring bugs, fixed some conditions
257             but is still buggy), started implementation of a dataflow based
258             pCode optimization (CSE + dead code elimination)
259           (pCodeRegMapLiveRangesInFlow): removed bogus inCond
260         * src/pic/ralloc.c (initStack): renamed stack registers to STK%d, the new
261           names are independant of the stack location and therefore portable across
262           devices
263
264 2005-10-27 Maarten Brock <sourceforge.brock AT dse.nl>
265
266         * src/mcs51/ralloc.c (bitType): added to detect bit variables,
267           (selectSpil): fixed bug 1337835 by not spilling bit variables
268         * support/regression/tests/bug1337835.c: added test for this bug
269         * src/mcs51/peeph.def: restart after rule 3.c,
270           addded rules 263.x to optimize loading constants
271
272 2005-10-26 Raphael Neider <rneider AT web.de>
273
274         * src/SDCCsymt.c (compStructSize): allow signed bitfields for PIC ports
275         * src/pic16/gen.c (genUnpackBits): support signed bitfields,
276           (genAssign): emit warning when casting literals to generic pointer
277             type, also applies when taking the address of a fixed variable,
278           (genCast): improved casting to generic pointers
279         * src/pic16/glue.c (pic16emitStaticSeg): fixed(?) handling of fixed
280           extern variables, added verbose error message
281         * device/include/pic16/{string.h,errno.h}: added #pragma library c
282
283 2005-10-26 Bernhard Held <bernhard AT bernhardheld.de>
284
285         * src/mcs51/gen.c (genMinus): fixed bug 1270906: reverse subtraction,
286         carry must be complemented too
287         * src/mcs51/peeph.def: addded rule 262 to remove double cpl c, which
288         could be emitted by genMinus
289         * src/SDCCval.c (constVal): fixed bug 1305065
290
291 2005-10-25 Bernhard Held <bernhard AT bernhardheld.de>
292
293         * src/SDCCast.c (addCast): added promotion for bit variables
294         (decorateType): emit W_COMPLEMENT before the problem vanishes behind
295         promotion casts + optimisation
296         (optimizeGetWord): fix warning 'i' might be used uninitialized
297         * src/mcs51/gen.c (genCpl): removed W_COMPLEMENT
298         * src/ds390/gen.c (genCpl): removed W_COMPLEMENT
299
300 2005-10-24 Bernhard Held <bernhard AT bernhardheld.de>
301
302         * src/SDCCicode.c (ast2iCode): reverted to 1.224 because of regression:
303         all chars are promoted to int; promotion should be handled in SDCCast.c
304
305 2005-10-15 Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
306
307         * device/lib/_strcmp.c: Fixed bug 1326457
308
309 2005-10-11 Raphael Neider <rneider AT web.de>
310
311         * device/lib/pic16/libio/i2c.ignore: added 1320, fixes broken builds
312         * device/lib/pic16/libdev/pic18f1320.c: added 1320's device library
313
314 2005-10-05 Maarten Brock <sourceforge.brock AT dse.nl>
315
316         * src/SDCC.y (AT): fixed bug with sfr32 addresses when built with GCC
317         * support/regression/tests/sfr16.c: added test for the sfr32 bug
318
319 2005-10-04 Raphael Neider <rneider AT web.de>
320
321         * device/include/pic16/pic18fregs.h, src/pic16/devices.inc,
322           device/lib/pic16/pics.all: added pic18f1320
323         * src/pic16/pcode.c (mnem2key): fixed prototype's argument mismatch
324
325 2005-09-30 Raphael Neider <rneider AT web.de>
326
327         * src/pic16/device.c (Pics16[]): moved device descriptions to devices.inc
328         * src/pic16/devices.inc: NEW, provides device descriptions
329         * src/pic16/gen.c (genInline): fixed handling of ';'-comments
330
331 2005-09-26 Maarten Brock <sourceforge.brock AT dse.nl>
332
333         * src/SDCCicode.c (operandOperation): added GETABIT, GETBYTE, GETWORD and
334           GETHBIT
335
336 2005-09-25 Maarten Brock <sourceforge.brock AT dse.nl>
337
338         * doc/sdccman.lyx: updated Highest Order Bit documentation,
339           documented Any Order Bit, Higher Order Byte and Higher Order Word
340         * src/SDCC.y: added tokens GETABIT, GETBYTE, GETWORD
341         * src/SDCCast.c (optimizeGetHbit): updated to also accept bool=expr&(1<<n),
342           (optimizeGetAbit): new, to get any bit, not only the high bit,
343           (optimizeGetByte): new, to get a byte from a (long) int: expr>>(8*n),
344           (optimizeGetWord): new, to get a word from a long int: expr>>(8*n),
345           (isConformingBody): also check GETABIT, GETBYTE, GETWORD,
346           (decorateType): '&': also try GETABIT, GETBYTE, GETWORD optimization,
347             RIGHT_OP: also try GETBYTE, GETWORD optimization,
348             GETABIT, GETBYTE, GETWORD: decorate them,
349           (isShiftRightLitVal, isBitAndPowOf2): new helper functions,
350           (ast_print): added GETABIT, GETBYTE, GETWORD
351         * src/SDCCcse.c (isSignedOp): added GETABIT, GETBYTE, GETWORD
352         * src/SDCCicode.c (codeTable): added GETABIT, GETBYTE, GETWORD,
353           (geniCodeBinary): new generic binary icode,
354           (ast2iCode): added GETABIT, GETBYTE, GETWORD
355         * src/port.h: updated comment for PORT.hasExtBitOp
356         * src/mcs51/gen.c (genGetAbit): new, to get any single bit,
357           (genGetByte): new, to get a single byte,
358           (genGetWord): new, to get a word from a long,
359           (gen51Code): added GETABIT, GETBYTE, GETWORD
360         * src/mcs51/main.c (hasExtBitOp): added GETABIT, GETBYTE, GETWORD
361
362 2005-09-23 Raphael Neider <rneider AT web.de>
363
364         * configure.in, configure: have device/lib/pic configured
365         * device/lib/Makefile.in: added model-pic14
366         * device/lib/clean.mk: added pic/ to clean rule
367         * device/lib/pic: added rudimentary pic14 library providing support
368           functions for multiplication/division/generic pointer access
369         * src/SDCCopt.c (convilong): mark support functions as extern
370           for pic14 port as well
371         * src/pic/gen.c (genMult): added assertions,
372           (genpic14Code): emit warning on unhandled iCodes
373         * src/pic/main.c (_hasNativeMulFor): return true only for 8x8 bit
374         * src/pic/pcode.c (pCodeOpCopy),
375         * src/pic16/pcodepeep.c (pic16_pCodeOpCopy): fixed handling of various
376           pCodeOpReg-subtypes (PO_{STATUS,INTCON,PCL,PCLATH,PCLATU,BSR,
377           SFR_REGISTER}), made safe for future extensions
378         * src/pic16/pcode.c (pic16_safepCodeUnlink): allow for removal of
379           instructions even if preceeded by SKIP instructions (also remove
380           them); removed unused code
381         * src/pic16/pcode.h: added arg2 to pCodeOpLit to match pCodeOpLit2,
382           prevents leaving parts of the structure uninitialized after copying
383
384 2005-09-22 Maarten Brock <sourceforge.brock AT dse.nl>
385
386         * src/mcs51/gen.c (genMinus): fix for undetected bug introduced 3 months
387           ago by me
388         * support/regression/tests/addsub.c: added test for the bug
389
390 2005-09-21 Raphael Neider <rneider AT web.de>
391
392         * device/include/pic16/pic18f1220.h,
393           device/lib/pic16/libdev/pic18f1220.c: added ECCPAS sfr and bitfield
394         * device/lib/pic16/Makefile.rules: added missing opening paren
395         * src/pic16/gen.c (pic16_genNot,pic16_genCpl): removed as these
396           are provided in genutils.c,
397           (genUminusFloat,genUminus,genCmpEq): added asserts on different
398           operand/result sizes,
399           (genCmp): assert on NULL pointers first, then check deref'ed values
400         * src/pic16/genutils.c (pic16_genCpl): fixed for different operand/
401           result size
402
403 2005-09-18 Raphael Neider <rneider AT web.de>
404
405         * src/pic16/gen.c (genFarPointerGet,genFarPointerSet): removed
406           as these are now unused,
407           (genPointerGet,genPointerSet): handle FPOINTERs like POINTERs
408         * src/pic16/pcode.c (pic16_symIsSpecial): assume REG_TMPs to be
409           local, avoids uninitialized pointer dereference on r->name
410         * src/pic16/ralloc.c (newReg): fixed indentation
411
412 2005-09-13 Maarten Brock <sourceforge.brock AT dse.nl>
413
414         * src/SDCCval.c (constVal): fixed bug 730366
415         * support/Util/SDCCerr.c,
416         * support/Util/SDCCerr.h: added warning W_INVALID_INT_CONST
417
418 2005-09-10 Maarten Brock <sourceforge.brock AT dse.nl>
419
420         * as/mcs51/lkmem.c (summary2): fixed report for absolute areas (bug 1210220)
421
422 2005-09-09 Maarten Brock <sourceforge.brock AT dse.nl>
423
424         * src/mcs51/peeph.def (241.x): fixed bug when comparing generic pointers
425
426 2005-09-08 Maarten Brock <sourceforge.brock AT dse.nl>
427
428         * as/hc08/lkaomf51.c (OutputName): made name unsigned char,
429           (hex2dec): made hex_digit unsigned char, removed ascii dependance
430         * as/mcs51/lkaomf51.c (OutputName): made name unsigned char,
431           (hex2dec): made hex_digit unsigned char, removed ascii dependance
432         * as/mcs51/lkarea.c (lnkarea2): sort absolute areas to the front
433         * packihx/packihx.c (hexDigit): made c unsigned char
434         * as/mcs51/lklibr.c (fndsym),
435         * link/z80/lkgb.c (gb),
436         * link/z80/lklibr.c (fndsym),
437         * link/z80/lkrloc.c (relr),
438         * sim/ucsim/libltdl/ltdl.c (load_deplibs, try_dlopen),
439         * src/SDCC.lex (checkCurrFile, process_pragma),
440         * src/SDCCglue.c (spacesToUnderscores),
441         * src/SDCCmain.c (setParseWithComma, processFile),
442         * src/asm.c (tvsprintf, printCLine),
443         * src/avr/gen.c (emitcode, aopPut),
444         * src/ds390/gen.c (emitcode),
445         * src/hc08/gen.c (emitcode, emitinline),
446         * src/mcs51/gen.c (emitcode, genInline),
447         * src/pic/pcodepeep.c (cvt_extract_destination, cvt_extract_status,
448           tokenizeLineNode),
449         * src/pic/ralloc.c (debugLog),
450         * src/pic16/pcodepeep.c (cvt_extract_destination, cvt_extract_status,
451           tokenizeLineNode),
452         * src/pic16/ralloc.c (debugLog),
453         * src/z80/main.c (_process_pragma):
454            made all ctype.h function calls safe
455         * src/SDCCopt.c: include math.h for fabs
456         * src/SDCCpeeph.c: added macros ISCHARDIGIT, ISCHARSPACE and ISCHARALNUM
457           and used them throughout the code to make ctype.h function calls safe
458         * src/ds390/main.c (asmLineNodeFromLineNode),
459         * src/mcs51/main.c (asmLineNodeFromLineNode): made p unsigned char*
460         * src/pic/gen.c (DEBUGpic14_emitcode, pic14_emitcode): made lbp
461            unsigned char*
462         * src/pic/pcode.c (mnem2key): made mnem unsigned char*,
463           (newpCodeAsmDir): made ctype.h function calls safe
464         * src/pic16/gen.c (pic16_emitpcomment, DEBUGpic16_emitcode,
465           pic16_emitcode):  made lbp unsigned char*
466         * src/pic16/pcode.c (mnem2key): made mnem unsigned char*,
467           (pic16_newpCodeAsmDir): made ctype.h function calls safe
468         * src/xa51/gen.c (emitcode),
469         * src/z80/gen.c (_emit2): made lbp unsigned char*
470         * support/Util/MySystem.c (split_command): made cmd_line and p unsigned
471            char*
472
473 2005-09-05 Raphael Neider <rneider AT web.de>
474
475         * src/pic16/ralloc.c (pic16_allocDirReg): use device specific
476           access bank splitpoint
477
478 2005-09-05 Raphael Neider <rneider AT web.de>
479
480         * device/lib/pic16/libc/Makefile: added (missing) string to SUBDIRS
481
482 2005-09-03 Maarten Brock <sourceforge.brock AT dse.nl>
483
484         * .version: changed to version 2.5.3
485         * doc/sdccman.lyx: changed version to 2.5.3,
486           documented --codeseg and --constseg and pragma codeseg and constseg,
487           documented bit parameters (reentrant) and bit returning
488         * src/SDCCicode.c (geniCodeReceive): fixed (possible) bug generating
489            currFunc->recvSize, but is this ok for all ports?
490           (ast2iCode): result of ~ on unsigned char must be cast to int for
491            bool to work
492         * src/SDCCmem.c (allocGlobal, allocLocal): don't put bit returning
493           function pointers in bit space
494         * src/SDCCsymt.c (checkSClass): allow bit returning function pointers,
495           (processFuncArgs): call port.reg_parm() with reentrancy info
496         * src/port.h,
497         * src/avr/main.c,
498         * src/ds390/main.c,
499         * src/hc08/main.c,
500         * src/pic/main.c,
501         * src/pic16/main.c,
502         * src/xa51/main.c,
503         * src/z80/main.c: port.reg_parm prototype extended with
504           "bool reentrant" parameter
505         * src/mcs51/main.c (_mcs51_regparm): use parameter reentrant instead of
506           options.stackAuto for allocating bit register parameters
507         * src/mcs51/gen.c (genNot): optimized complementing direct bit,
508           (genSend): set BitBankUsed if it is,
509           (selectRegBank): factored out of genCall for use in genPcall,
510           (genCall): removed redundant dtype assignmen, use selectRegBank,
511           (genPcall): handle returning in Carry properly, save in F0 if needed,
512           (genReceive): handle bit register parameters
513         * src/mcs51/ralloc.c (updateRegUsage): update BitBankUsed along the way,
514           (mcs51_assignRegisters): enable bit registers for all reentrant
515            functions and don't set BitBankUsed unconditionally
516         * src/mcs51/peeph.def (177.d): fixed bug if %2==%3
517         * support/regression/tests/bitvars.c: enable tests for SDCC_STACK_AUTO
518         * support/regression/tests/funptrs.c: added tests for BOOL and for return
519
520 2005-08-27 Borut Razem <borut.razem AT siol.net>
521
522         * device/lib/Makefile.in: cp on sparc-solaris (SunOS) and on
523         ppc-osx (Darwin) does not support -u option. It seems that it is
524         supported only on Linux - GNU cp
525
526 2005-08-25 Borut Razem <borut.razem AT siol.net>
527
528         * sim/ucsim/gui.src/serio.src/Makefile.in,
529           sim/ucsim/s51.src/Makefile.in, sim/ucsim/avr.src/Makefile.in,
530           sim/ucsim/z80.src/Makefile.in, sim/ucsim/hc08.src/Makefile.in,
531           sim/ucsim/xa.src/Makefile.in: install -s changed to 2 steps:
532           install and strip, since the strip at /usr/ccs/bin should be used
533           on solaris
534
535 2005-08-24 Borut Razem <borut.razem AT siol.net>
536
537         * clean.mk, device/lib/clean.mk: find on sparc-solaris does not support -maxdepth option
538
539 2005-08-23 Bernhard Held <bernhard AT bernhardheld.de>
540
541         * src/SDCCopt.c (convertToFcall): fixed modulus with divisors 1 and
542         ffffffffu
543
544 2005-08-23 Maarten Brock <sourceforge.brock AT dse.nl>
545
546         * as/mcs51/aslink.h: completed lkrloc.c prototypes
547         * as/mcs51/lkmain.c (link_main): fixed warning
548         * device/include/stdbool.h: ds390 has no advanced bit support yet
549         * src/SDCC.y: use SPEC_SHORT and renamed _signed to b_signed
550         * src/SDCCsymt.c: use SPEC_SHORT and renamed _signed to b_signed
551         * src/SDCCsymt.h (struct specifier): renamed _xxx bitfields to b_xxx
552           and updated their macros
553         * src/SDCCval.c (constVal): updated comment for renamed b_long
554
555 2005-08-22 Maarten Brock <sourceforge.brock AT dse.nl>
556
557         * as/mcs51/asdata.c: changed ctype['['] to BINOP
558         * as/mcs51/asexpr.c (expr): added case '[' for bit access in bdata,
559           (term): abused bit 15 of s_addr to indicate bit-addressable bytes,
560           (oprio): set priority for '['
561         * as/mcs51/aslink.h: added define R_BIT, and prototypes for adb_bit
562            and adb_24_bit
563         * as/mcs51/asm.h: added defines R_BIT and S_BIT
564         * as/mcs51/lkarea.c (lnksect2): use T for seg BIT_BANK and overlay it
565         * as/mcs51/lkdata.c: changed ctype['['] to BINOP
566         * as/mcs51/lkmain.c (Areas51): rel2 contains 12 (=C) areas now,
567           added overlayable BIT_BANK area
568         * as/mcs51/lkmem.c (summary): add BIT_BANK to BSEG_BYTES in the report,
569           (summary2): explain 'T' in legenda
570         * as/mcs51/lkrloc.c: replaced old K&R style,
571           (relr): added R_BIT processing,
572           (errmsg): added "Bit-addressable relocation error",
573           (adb_bit): added for converting from byte- to bit-addressable space,
574           (adb_24_bit): added for converting from byte- to bit-addressable space
575         * device/include/stdbool.h: changed BOOL to __bit for mcs51 as it can be
576            used in reentrant functions now even as return value
577         * device/lib/_gptrput.c (_gptrput): removed obsolete code
578         * src/SDCCast.c (resultTypePropagate): also propagate AND_OP and OR_OP,
579           (decorateType): case '!', GETHBIT, AND_OP, OR_OP: result in bool or char
580         * src/SDCCglobl.h: added indicator BitBankUsed
581         * src/SDCCglue.c (glue): emit area BIT_BANK with byte 'bits' and equ's for
582            the bit registers b0-b7
583         * src/SDCCicode.c (operandFromSymbol): removed IS_BITVAR check,
584           (geniCodeCast): fixed bug 1263853,
585           (geniCodeLogicAndOr): put result in bool or char,
586           (geniCodeReceive): added parameter func for accessing the return type,
587           (geniCodeFunctionBody): pass func to geniCodeReceive
588         * src/SDCCmain.c: added indicator BitBankUsed
589         * src/SDCCmem.c (allocLocal): explicitly set sclass for V_BIT
590         * src/SDCCsymt.c (newBoolLink): added for creating a bool/bit,
591           (checkSClass): don't put automatic bool/bit on stack,
592           (checkFunction): removed check on function cannot return bit
593         * src/SDCCsymt.h: added newBoolLink prototype
594         * src/mcs51/gen.c (rb1regs): added bit registers,
595           (movc): created for assigning to carry,
596           (pushReg, popReg): created for pushing registers,
597           (sameRegs): check both AOP_REG and AOP_CRY types,
598           (aopOp): handle bit registers,
599           (aopPut): optimization no self-assign,
600           (saveRegisters): push reg->base (bits) only once for bit registers,
601            and use pushReg,
602           (unsaveRegisters): pop reg->base only once and use popReg,
603           (assignResultValue): added parameter func and return in carry for bits,
604           (genIpush): optimization no reload in A if not changed,
605           (genSend): bit parameters in reentrant functions are passed in bit
606            registers by first assigning to bits in B, then save registers and
607            copy B to bits,
608           (genCall): handle returning in Carry properly, save it in F0 if needed,
609           (genPcall): updated assignResultValue call, this is not safe yet for bit
610            returning function !!!
611           (genFunction): don't generate equ's for bit registers and use pushReg,
612           (genEndFunction): take care of bit returning functions and use popReg,
613           (genRet): return bit in Carry,
614           (genIfx): optimize bit registers and other directly addressable bits,
615           (genReceive): updated assignResultValue call
616         * src/mcs51/main.c (_mcs51_reset_regparm): added regBitParmFlg,
617           (_mcs51_regparm): allow passing of upto 8 bit parameters in bit
618            registers when using stack-auto
619         * src/mcs51/ralloc.c (_G): added allBitregs,
620           (regs8051): added the bit registers,
621           (createStackSpil): use macro IS_BIT,
622           (getRegBit): added to allocate a bit register, else spill,
623           (getRegBitNoSpil): added to allocate a bit register, else a gpr,
624           (updateRegUsage): factored out to ease stepping while debugging,
625           (serialRegAssign): use updateRegUsage, only spill bits if necessary,
626            also allocate bit registers,
627           (fillGaps): handle bit registers,
628           (findAllBitregs): added to create bit vector with all bit registers,
629           (mcs51_allBitregs): returns this bit vector,
630           (mcs51_assignRegisters): when using stack-auto use bit registers for
631            passing parameters and creating local variables
632         * src/mcs51/ralloc.h: added B0_IDX..B7_IDX and prototype mcs51_allBitregs
633
634 2005-08-22 Borut Razem <borut.razem AT siol.net>
635
636         * device/lib/Makefile.in: replaced find option -or with -o
637           to make it run on solaris
638
639 2005-08-22 Raphael Neider <rneider AT web.de>
640
641         * src/pic16/gen.c (pic16_loadFromReturn): added check for AOP_PCODE,
642           fixes #1265442 (crash on Solaris)
643
644 2005-08-20 Borut Razem <borut.razem AT siol.net>
645
646         * configure, configure.in: added tests for libsocket and libnsl libraries,
647           requred by sdcdb on sparc-solaris; generate support/regression/Makefile
648           from support/regression/Makefile.in
649         * support/regression/Makefile.in: added
650         * device/lib/pic16/Makefile.common.in: force make to use bash shell
651         * sim/ucsim/libtool: regenerated on sparc-solaris
652         * sim/ucsim/avr.src/Makefile.in, sim/ucsim/hc08.src/Makefile.in,
653           sim/ucsim/s51.src/Makefile.in, sim/ucsim/xa.src/Makefile.in,
654           sim/ucsim/z80.src/Makefile.in: removed GNU ld specific linker options
655           -Wl,--start-group and -Wl,--end-group to enable ucsim compilation on
656           sparc-solaris, which doesn't use GNU ld linker
657         * device/lib/Makefile.in: cp on sparc-solaris (SunOS) does not support -u option
658         * as/Makefile: find on sparc-solaris does not support -maxdepth option
659
660 2005-08-19 Maarten Brock <sourceforge.brock AT dse.nl>
661
662         * src/mcs51/peeph.def: updated comments
663
664 2005-08-16 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
665
666         * device/lib/_gptrget.c,
667         * device/lib/_gptrput.c: slightly shorter
668         * doc/sdccman.lyx: incremented version
669         * src/mcs51/peeph.def: moved peephole comments to the line of first
670           change to better keep line correlation, reanimated 186.e
671         * src/mcs51/peeph.def: renamed similar peepholes by using suffixes
672
673 2005-08-16 Slade Rich <slade_rich AT users.sourceforge.net>
674
675         * src/pic/pcode.c : Pasted ".line" assembly directives patch from
676           David Saxton with quotes around file name.
677
678 2005-08-15 Borut Razem <borut.razem AT siol.net>
679
680         * support/regression/tests/bitfields.c, support/regression/tests/bitvars.c,
681           support/regression/tests/bitwise.c, support/regression/tests/literalop.c,
682           support/regression/tests/rotate.c, support/regression/tests/zeropad.c:
683           make tests run on x86_64 platform
684
685 2005-08-13 Raphael Neider <rneider AT web.de>
686
687         * device/lib/pic16/Makefile.subdir: weakened clean-intermediate rule
688           as it might be executed DURING a build (parallel make is wonderful)
689
690 2005-08-13 Raphael Neider <rneider AT web.de>
691
692         * device/lib/Makefile.in (port-specific-objects-pic16):
693           revert to cp $(PORT)/bin/*.* $(PORTDIR)
694         * device/lib/pic16/Makefile: added .PHONY targets, removed builddir
695           dependency
696         * device/lib/pic16/Makefile.rules: build subdirs before creating
697           the library, removed builddir rule, create $(builddir) early in
698           recurse rule, use empty recurse rule for leaf directories
699         * device/lib/pic16/Makefile.subdir: added phony targets, ignore
700           mkdir errors (race condition), removed duplicate suffix "hex"
701           from clean rules
702         * device/lib/pic16/libdev/Makefile: recursive make via + and $(MAKE)
703         * device/lib/pic16/libio/Makefile: create sub-make's builddir early,
704           prevents mkdir -p from aborting on Alpha
705
706 2005-08-12 Raphael Neider <rneider AT web.de>
707
708         * src/pic16/glue.c (pic16_print(G)PointerType): do not flush
709           db-statements in order to allow for arrays of pointers in code
710           sections to be placed without interspersed 0-padding, fixes
711           bug #1256215
712         * (emitStatistics): fixed division by zero for pic18f1220
713         * src/pic16/pcode.c: buffer (up to) 12 DB directives to allow for
714           unpadded writing of 8-bit, 16-bit, 24-bit and 32-bit values
715         * (pic16_emitDS): respect DB_ITEMS_PER_LINE
716         * (pic16_pCodeConstString): keep track of already emitted string
717           literals to prevent "duplicate definitions of symbol _str_NR"
718         * src/pic16/ralloc.c (pic16_allocRegByName): removed not so helpful
719           debug message
720         * device/lib/Makefile.in: ignore failing PIC16 library builds
721         * device/lib/pic16/Makefile: do not build if gputils are missing
722         * device/lib/pic16/Makefile.common.in: do not enforce MAKEFLAGS=-s
723
724 2005-08-10 Raphael Neider <rneider AT web.de>
725
726         * device/lib/Makefile.in: fixed copying pic16 libraries (broken by
727           my last commit)
728
729 2005-08-10 Raphael Neider <rneider AT web.de>
730
731         * src/*.c, src/pic16/{gen.c,glue.c,main.c}: applied Vangelis
732           Rokas' patch to add the new fixed point type "__fixed16x16"
733         * device/lib/pic16/libsdcc/fixed16x16: added Vangelis' support
734           functions for __fixed16x16 arithmetics
735         * device/lib/pic16: reimplemented the build system to support
736           a separate build directory, better handling of libio (create
737           the library in a separate subdir for each architecture) and
738           easier configuration (centralized in Makefile.common)
739
740 2005-08-07 Raphael Neider <rneider AT web.de>
741
742         * src/pic16/gen.c (genrshTwo): fixed sign extension
743         * src/pic16/device.c: added pic18f2320, 4220 and 4320
744         * device/include/pic16/pic18f2220.h: changed some bit definitions,
745           added T0CONbits
746         * device/include/pic16/pic18f4220.h: NEW, header for
747           pic18f4220 and pic18f4320
748         * device/include/pic16/pic18fregs.h: added new devices,
749           embraced Nop(), ClrWdt(), Sleep() and Reset() with do {} while(0)
750         * device/include/pic16/signal.h: resolved name clashes
751           on bit definitions, added DEF_HANDLER2(sig1,sig2,handler)
752           to also allow testing for interrupt enable bits, added
753           comments on how to use the macros
754         * device/lib/pic16/libdev/pic18f2220.c: added T0CONbits
755         * device/lib/pic16/libdev/pic18f{2320,4220,4320}.c: NEW,
756           register definitions for the devices
757         * device/lib/pic16/pics.all: added new devices
758         * device/lib/pic16/libc/stdlib/calloc.c: fixed zeroing
759           allocated memory
760         * device/lib/pic16/libc/stdlib/memfree: do not count
761           the block header as free memory
762         * device/lib/pic16/libc/stdlib/memmisc.c (_initHeap):
763           simplified and added missing end-of-blocklist-marker
764           (reported by Peter Onion, fixes #1252814)
765         * (_mergeHeapBlock): fixed loop condition
766         * device/lib/pic16/libc/stdlib/realloc.c: return NULL for
767           len==0, restructured code
768         * device/lib/pic16/libc/stdlib/{malloc,memfreemax}.c: cleaned
769           up a bit, reduced bitfield accesses, prevent endless loops
770           in case of heap corruption
771         * device/lib/pic16/libc/stdlib/x_ftoa.c: disabled
772           "unreferenced arguments/must return a value" warnings
773         * device/lib/pic16/libio/usart/ubaud.c (usart_baud):
774           replaced BAUDREG with SPBRG
775         * device/lib/pic16/libsdcc/lregs/{lrrest.c,lrst.c},
776           device/lib/pic16/debug/gstack/gstack.c: replaced
777           _naked, _asm, _endasm with __naked, __asm, __endasm
778
779 2005-08-05 Raphael Neider <rneider AT web.de>
780
781         * src/pic16/gen.c (pic16_aopGet): fixed handling of offsets in
782           AOP_PCODE operands, fixes multibyte union-bitfield-accesses
783
784 2005-08-05 Borut Razem <borut.razem AT siol.net>
785
786         * device/lib/Makefile.in: added missing ';'
787         * configure: removed ^M characters
788
789 2005-08-04 Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
790
791         * device/include/mcs51/at89c51ed2.h, device/include/mcs51/p89v51rd2.h,
792           device/include/mcs51/at89s53.h: changed to GNU Lesser General Public
793           License
794
795 2005-08-04 Borut Razem <borut.razem AT siol.net>
796
797         * configure.in: pic16 libraries build 2nd try - enable running
798           configure in device/lib/pic16
799         * configure: regenerated from configure.in
800         * device/lib/Makefile.in: create $(PORT)/bin directory
801
802 2005-08-03 Raphael Neider <rneider AT web.de>
803
804         * src/pic16/gen.c (pic16_derefPtr): NEW, single place
805           to get/set values via pointers
806         * (genUnpackBits,genPackBits): changed detection of
807           ptr->bitfield vs. sym.bitfield, fixed access via generic
808           pointers, removed dead (wrong) code for multibyte bitfields
809         * (genNearPointerGet, genGenPointerGet): removed useless code,
810           fixed bitfield detection, fixes #1250594
811         * (genNearPointerSet): removed useless code
812         * src/pic16/gen.h: renamed pic16_emitpcode to pic16_emitpcode_real
813           and introduced macro pic16_emitpcode that conditionally emits
814           the origin of the following pCode (useful for debugging SDCC)
815         * src/pic16/pcode.c: changed (and disabled) some debug outputs
816         * (createDefmap): fixed handling of LFSR for --optimize-df
817
818 2005-08-02 Borut Razem <borut.razem AT siol.net>
819
820         * device/lib/Makefile.in: pic16 libraries build enabled since
821           gputils-0.13.2 are now localy installed at sourceforge's compile farm
822
823 2005-08-02 Raphael Neider <rneider AT web.de>
824
825         * src/pic16/gen.c (genPackBits): removed deprecated warning
826         * (genGenPointerSet): fixed bitfield detection
827
828 2005-08-02 Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
829
830         * device/include/mcs51/msm8xc154s.h: Removed PT2 definition, now in 8052.h.
831
832 2005-07-31 Raphael Neider <rneider AT web.de>
833
834         * device/lib/pic16/libdev/pic18f458.c,
835           device/include/pic16/pic18f458.h: added missing T0CONbits
836
837 2005-07-29 Maarten Brock <sourceforge.brock AT dse.nl>
838
839         * device/include/mcs51/msm8xc154s.h: added, thanks to Matthias Arndt
840
841 2005-07-28 Maarten Brock <sourceforge.brock AT dse.nl>
842
843         * src/mcs51/gen.c (operandsEqu): fixed bug 1246687
844
845 2005-07-23 Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
846
847         * device/include/mcs51/at89c51ed2.h: added.
848
849 2005-07-23 Raphael Neider <rneider AT web.de>
850
851         * src/pic/gen.h: added emitpcode macro for debugging
852         * src/pic/gen.c (emitpcode): renamed to emitpcode_real
853           and replace by macro adding debug information on demand
854         * (genNot): fixed to C semantics (!0 = 1; !x = 0 iff x != 0)
855         * (gencjne): tried to fix; replaced with correct (slower) code
856         * (gen{Unp,P}ackBits): fixed single bit access
857         * src/pic/pcode.c (AnalyzepCode): fixed DFPRINTF argument
858         * src/pic/pcodepeep.c (pCodeSearchCondition): fixed finding
859           previous instruction
860         * src/pic/pcoderegs.c (regIsSpecial): NEW, check whether a
861           register has to be handled with care (forbidding movement
862           of assignments/uses, removing assignments completely, ...)
863         * (pCodeOptime2pCodes): make use of regIsSpecial
864         * added lots of debugging output (commented out)
865         * src/pic/rallloc.c (deassignLRs): prevent operand registers
866           from being reused as result UNLESS it is known to work
867
868 2005-07-23 Maarten Brock <sourceforge.brock AT dse.nl>
869
870         * support/Util/dbuf.h: include <stddef.h> for size_t
871         * .version: changed to version 2.5.2
872
873 2005-07-23 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
874
875         * src/SDCCloop.c (loopInvariants): fixed bug #1234048
876
877 2005-07-22 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
878
879         * src/hc08/gen.c (genMinus): fixed bug #1241835,
880           (genModOneByte): removed needless psha/pula
881
882 2005-07-22 Raphael Neider <rneider AT web.de>
883
884         * src/SDCCmain.c (linkEdit): initialized linkerScriptFileName,
885           have PIC14 handled like PIC16, fixes broken pic14 linker calls
886         * src/pic/gen.c (resolveIfx): do not "invent" labels
887         * (genSkipc): changed to positive logic
888         * (genSkipCond): removed as no longer needed
889         * (pic14_mov2w_regOrLit,genCmp): NEW, replacement for buggy version,
890           backport from PIC16
891         * (genLeftShift): check operands are in different registers
892         * src/pic/genarith.c (genPlus): replaced INCF with ADDLW as
893           INCF does not update CARRY...
894         * src/pic/main.c: fixed _linkCmd
895         * src/pic/pcode.c (unlinkpCode): added inactive code
896         * src/pic/ralloc.c (deassignLRs): keep arguments to shift operations
897           alive (do not assign result and operand overlapping registers)
898
899 2005-07-22 Raphael Neider <rneider AT web.de>
900
901         * src/pic/device.c (dump_sfr): replaced register declaration with
902           call to emitSymbolToFile() to avoid duplicate symbols
903         * (assignRelocatableRegisters): do not declare external symbols
904         * src/pic/ralloc.c (allocNewDirReg): fixed to get size of arrays
905           right (take size of type, not etype)
906         * (allocDirReg): fixed call to allocNewDirReg() to pass OP_SYM_TYPE
907         * (writeUsedRegs): also dump dynDirectRegs (e.g. local variables)
908         * (packRegsForAccUse): disabled assignment of WREG as
909           the result reg to prevent occurence of just fixed #1235003,
910           fixes #1242954
911         * src/pic/glue.c (emitSymbolToFile): NEW, central place to declare
912           symbols (avoids duplicate symbols in .asm file)
913         * (pic14emitRegularMap): use emitSymbolToFile()
914         * src/pic/gen.c (aopOp): fixed spillLocation handling
915         * (gen{Unp,P}ackBits): fixed acquiring bit-operands
916         * (genDataPointerSet): removed unneccessary variables/output
917
918 2005-07-22 Maarten Brock <sourceforge.brock AT dse.nl>
919
920         * as/mcs51/lkarea.c: enlarged codemap for banked memory
921         * device/lib/mcs51/crtbank.asm: added # to 0x0F
922
923 2005-07-21 Raphael Neider <rneider AT web.de>
924
925         * src/pic/gen.c (aopOp): do not generate AOP_ACC operands as pic14
926           architecture cannot handle them efficiently, fixes bug #1235003
927         * src/pic16/device.c (pic16_dump_{u,i}section,pic16_dump_int_registers):
928           check for empty sets before using them (fixes bug #1232190)
929
930 2005-07-19 Maarten Brock <sourceforge.brock AT dse.nl>
931
932         * as/mcs51/lkarea.c (lnkarea, lnkarea2): improved BSEG size calculation,
933           (lnksect2): generate warnings for memory overlap
934         * src/SDCC.lex (doPragma, process_pragma): added pragma's codeseg and
935           constseg to set the name of these segments so you can instruct the linker
936           to place them in banks
937         * src/SDCCast.c (decorateType): use new macro IS_FUNCPTR()
938         * src/SDCCglobl.h: added MODEL_HUGE to enum,
939           added code_seg and const_seg to options
940         * src/SDCCglue.c (emitMaps): use options.const_seg,
941           (createInterruptVect): put interrupt vectors in segment HOME,
942           (glue): put HOME before static segment and put the main glue in HOME,
943           (glue): use options.code_seg
944         * src/SDCCicode.c (geniCodeCall): use new macro IS_FUNCPTR()
945         * src/SDCCmain.c: added option --codeseg and --constseg to set the name of
946           these segments so you can instruct the linker to place them in banks
947           (linkEdit): use code_loc for HOME segment which should be the first
948           segment in code memory now
949         * src/SDCCmem.c: fixed more stuff like bug 1238386
950         * src/SDCCsymt.c (getSize): use generic pointer size for banked functions,
951           (changePointer): don't change function pointers to code pointers for
952           banked functions,
953           (compareType): added exceptional check for banked function pointers
954         * src/SDCCsymt.h: changed IFFUNC_ISBANKEDCALL, added IS_FUNCPTR
955         * src/hc08/main.c (_hc08_genAssemblerPreamble): put HOME first, put CSEG
956           after static in code memory
957         * src/mcs51/gen.c: added aopLiteralLong prototype,
958           (aopForSym): use getSize for functions,
959           (genCall): generate banked calls over one trampoline __sdcc_banked_call
960           in HOME with lsb of address in r0, msb in r1 and bank in r2, use
961           -Wl-bBANKSEG=0xbbaaaa option to set the address (aaaa) and bank (bb) of
962           the segment,
963           (genPcall): use call for literal function pointers and generate banked
964           calls over the one trampoline so there's only one place for the user to
965           modify according to his/hers hardware,
966           (genEndFunction): jump to __sdcc_banked_ret in HOME for banked functions,
967           (genPlusIncr): moved check icount>4 beyond inc dptr optimization
968         * src/mcs51/main.c: added keyword banked,
969           (_mcs51_genExtraAreas): put HOME first followed by GSINIT, STATIC and CSEG
970         * support/Util/SDCCerr.c,
971         * support/Util/SDCCerr.h: added E_BANKED_WITH_CALLEESAVES, registers are
972           needed for passing the bank and address to the trampoline
973         * device/lib/mcs51/crtbank.asm: added for bankswitching
974         * device/lib/mcs51/Makefile: added crtbank
975
976 2005-07-16 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
977
978         * src/SDCCcse.c (algebraicOpts): fixed loss of volatility
979           for fields at offset 0 of a struct or union as reported
980           on 2005-07-07 in the developer mailing list.
981
982 2005-07-15 Maarten Brock <sourceforge.brock AT dse.nl>
983
984         * src/SDCCmem.c: fixed bug 1238386
985
986 2005-07-12 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
987
988         * src/mcs51/peeph.def: added labelrefcounting for peepholes
989           (patch #1144962), added peephole 300, enabled 259.x
990         * doc/sdccman.lyx: removed screenshot and provided link instead
991
992 2005-07-05 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
993
994         * doc/sdccman.lyx: added section about debugging with ddd
995         * doc/figures/ddd_example.eps: screenshot of debugging session
996
997 2005-07-04 Raphael Neider <rneider AT web.de>
998
999         * src/pic/gen.c (genPointerGet): handle pointers to CONST values
1000           like CODE pointers, fixes #1115683
1001         * src/pic/pcode.c (DoBankSelect): forget LastRegIdx during function
1002           call, fixes bugs #1232211, #1228110,
1003           fixed wrong casts to pCodeFlow from pCodeInstructions
1004
1005 2005-07-04 Raphael Neider <rneider AT web.de>
1006
1007         * src/pic/gen.c (popGet): changed assert to allow for
1008           bit operands
1009         * (popGetAddr): changed signature to provide
1010           an additional index, patched all call sites
1011         * (genCmpEq): handle literal-like operands correctly
1012         * (genAddrOf): added sanity checks on __code/__data pointers
1013         * (genAssign): added handling of symbols from __code section
1014         * (gencjne): do not generate code for comparisons whose result
1015           is neither stored nor used, fixes bug #1171114
1016         * (AccLsh, AccRsh): operate on operand instead of WREG
1017         * (shift{Left,Right}_Left2ResultLit): NEW, size independant
1018           replacement for Shift{LR}{12}Left2Result; shift (byte/int/long)
1019           by known count
1020         * rewrote complete shift-by-literal logic, commented unused
1021           functions out
1022         * (genConstPointerGet): get multiple bytes (if result size > 1),
1023           fixed handling of non-immediate addresses
1024         * (genPointerGet): handle CODE pointers like CONST pointers
1025         * (genpic14Code): insert C-SRC lines as Cource-pCodes
1026         * ({aop,op}_isLitLike): NEW, single place to decide whether an
1027           operand is to be treated as a literal or not
1028         * (mov2w,genPcall,genCmpEq),
1029           src/pic/genarith.c: use aop_isLitLike() to decide between
1030           literal/register contents
1031         * (addSign): added missing offset
1032         * src/pic/gen.h: remove newline after FENTRY/FEXIT comments,
1033           only emit comment in debug-mode,
1034           use {aop,op}_isLitLike throughout the file
1035         * src/pic/glue.c: fix initializers for pointers (work in progress)
1036         * src/pic/pcode.c (get_op): honor index on _const symbols
1037         * ({reset,dump}pCodeStatistics): NEW, estimate code size
1038         * (dumppBlock): added pCode size estimation
1039         * src/pic/ralloc.c (deassignLRs,serialRegAssign,packRegisters):
1040           check for IS_SYMOP before OP_SYMBOL'ing
1041         * fixed indentation, compacted switch-statements
1042         * (allocReg): find free register and allocate it instead of
1043           allocating new registers all the time
1044         * (deassignLRs): prevent POINTER_GET's from being assigned the same
1045           registers as its operands (necessary only for multibyte GETs)
1046
1047 2005-07-01 Raphael Neider <rneider AT web.de>
1048
1049         * src/pic/gen.h: added prototypes emitpComment, popGetAddr and
1050           debugging .asm-output macros FENTRY + FEXIT
1051         * src/pic/gen.c (Safe_vsnprintf): NEW, is there a more generic
1052           way... I wonder...
1053         * (emitpComment): NEW, printf to pCode
1054         * (popGet): added assert on too large offsets, fixed PO_IMMEDIATE's
1055           offset handling
1056         * (popGetAddr): NEW, variant of popGet to access an immediates
1057           high(er) bytes instead of the n'th byte of memory they reference,
1058           replaced popGet with popGetAddr where neccessary
1059         * (genDataPointerGet): reactivated and fixed implementation
1060         * (genNearPointerGet): enabled call to genDataPointerGet, fixes array-
1061           accesses
1062         * (genDataPointerSet): fixed multibyte assignments
1063         * (genpic14Code): fixed --i-code-in-asm handling
1064         * src/pic/genarith.c: fixed PO_IMMEDIATE issue using popGetAddr,
1065         * (genPlus): fixed index-out-of-bounds error
1066         * src/pic/pcode.c (get_op): fixed PO_IMMEDIATE's index/offset handling
1067         * src/pic/ralloc.c: added debugging output macro FENTRY2
1068         * (spillThis): fixed indentation, enbraced for-body for clarity
1069         * (rematStr): commented out as now unused
1070         * (regTypeNum): commented out special spill case (overwrites
1071           arbitrary values)
1072         * fixes bugs #1229346, #1216476 (both arrays) and #1115667 (SIGSEGV)
1073
1074 2005-06-30 Maarten Brock <sourceforge.brock AT dse.nl>
1075
1076         * doc/sdccman.lyx: documented sfr16/sfr32,
1077           added example for using storage class with function pointers
1078         * src/mcs51/gen.c (genPlusIncr): optimized small offsets from dptr
1079
1080 2005-06-28 Maarten Brock <sourceforge.brock AT dse.nl>
1081
1082         * device/lib/_gptrget.c: also push/pop _PSBANK, added # to 0x03
1083         * device/lib/_itoa.c,
1084         * device/lib/_ltoa.c: optimized codesize
1085         * src/SDCCsymt.c (checkSClass): added sanity check for sfr at addresses,
1086           but don't know how to suppress the double warning.
1087         * src/mcs51/gen.c (genPlusIncr): fixed bug when incrementing volatile int's
1088         * support/Util/SDCCerr.c,
1089         * support/Util/SDCCerr.h: added warning W_SFR_ABSRANGE for sanity check
1090
1091 2005-06-27 Maarten Brock <sourceforge.brock AT dse.nl>
1092
1093         * as/mcs51/asexpr.c (expr): disabled warning "not in .flat24 mode",
1094           fixed old K&R prototypes
1095         * as/mcs51/asout.c (outrb): always output as if generating 24bit addresses
1096         * device/lib/_gptrget.c,
1097         * device/lib/_gptrgetc.c,
1098         * device/lib/_gptrput.c: changed versions for new memory indicator values,
1099           also new versions for small generic pointers and banked generic pointers
1100         * src/port.h: added const_name
1101         * src/SDCC.lex: added keywords sfr16, __sfr16, sfr32, __sfr32
1102         * src/SDCC.y: added tokens SFR16, SFR32 and their sfr_attributes
1103         * src/SDCCcse.c (findPrevIc): check all associative operators
1104         * src/SDCCglue.c (emitMaps): use CONST_NAME if defined
1105         * src/SDCCicode.h: added macro IS_ASSOCIATIVE
1106         * src/SDCCmem.c: updated comments,
1107           set far-space to 0 for pdata, results in optimized code
1108         * src/SDCCmem.h: added macro CONST_NAME
1109         * src/SDCCsymt.h: renumerated generic pointer types GPTYPE_... thereby
1110           moving the info into the highest bits, see also gptrget/gptrput
1111         * src/src.dsp: added sdcc.ico to project files
1112         * src/avr/gen.c (genCast): fixed bug 0x%d
1113         * src/avr/main.c (avr_port): added "CONST (CODE)" for const_name
1114         * src/ds390/gen.c (aopForRemat, adjustArithmeticResult): disconnected direct
1115           relation between ptr_type and DCL_TYPE,
1116           (genCast): fixed bug 0x%d
1117         * src/ds390/main.c (ds390_port, tininative_port, ds400_port): added "CONST
1118           (CODE)" for const_name
1119         * src/hc08/gen.c (genCast): fixed bug 0x%d
1120         * src/hc08/main.c (_hc08_genAssemblerPreamble): added .area ...const_name,
1121           (hc08_port): added "CONST (CODE)" for const_name
1122         * src/mcs51/gen.c (aopForSym): optimized pushing ACC,
1123           (aopForRemat, adjustArithmeticResult): disconnected direct relation
1124           between ptr_type and DCL_TYPE,
1125           (aopGetUsesAcc, aopGet, aopPut): changed first parameter from asmop* to
1126           operand* and took AOP() inside function so sfr-ness can be checked,
1127           (all over): repaired calls to aopGetUsesAcc, aopGet, aopPut to comply with
1128           new prototype,
1129           (genFunction, genEndFunction): optimized stack setup,
1130           (genMinus): optimized for literals with ending zeroes (in bytes),
1131           (genCast): fixed bug 0x%d
1132         * src/mcs51/main.c (_mcs51_keywords): added sfr16 and sfr32,
1133           (mcs51_port): added "CONST (CODE)" for const_name
1134         * src/mcs51/peeph.def: made rule 226 more generic
1135         * src/pic/main.c (pic_port): added "CONST (CODE)" for const_name
1136         * src/pic16/main.c (pic16_port): added "CONST (CODE)" for const_name
1137         * src/xa51/main.c (xa51_port): added "CONST (CODE)" for const_name
1138         * src/z80/main.c (z80_port): added NULL for const_name,
1139           (gbz80_port): added NULL for const_name
1140         * support/regression/tests/bug663539.c,
1141         * support/regression/tests/sfr16.c: new tests
1142
1143 2005-06-25 Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
1144
1145         * device/include/mcs51/p89v51rd2.h, device/include/mcs51/at89s53.h: added.
1146
1147 2005-06-24 Raphael Neider <rneider AT web.de>
1148
1149         * device/lib/pic16/libdev/pic18f[68][567]20.c:
1150           corrected typos...
1151         * device/include/pic16/signal.h: added USBIF
1152           and SIG_USB
1153
1154 2005-06-24 Raphael Neider <rneider AT web.de>
1155
1156         * device/lib/pic16/libdev/pic18f2455.c,
1157           device/include/pic16/pic18f2455.h: NEW
1158         * device/include/pic16/pic18fregs.h,
1159           device/lib/pic16/pics.all,
1160           src/pic16/device.c: added 18f2455
1161         * device/lib/pic16/libdev/pic18f[68][567]20.c,
1162           device/include/pic16/{pic18f[68][567].h,usart.h}:
1163           replaced MULTIPLE_USARTS define with more relaible
1164           compatibility sfrs (for USART access)
1165
1166 2005-06-20 Slade Rich <slade_rich AT users.sourceforge.net>
1167
1168         * src/pic/pcode.c : Fixed problem when a string constant contains a "\r\n"
1169           and the output asm file line is printed on two lines.
1170
1171 2005-06-19 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
1172
1173         * sim/ucsim/hc08.src/inst.cc (inst_condbranch): fixed simulation of
1174           BGT, BLE, BHI, and BLS instructions
1175         * src/hc08/gen.c (outAcc, outBitC, outBitNV, genCmpLt, genCmpGt,
1176           genCmpEq): removed
1177         * src/hc08/gen.c (genCmpEQorNE, genCmp, branchopCmp, nameCmp,
1178           negatedCmp, exchangedCmp, genhc08Code): rewrite of comparison handling,
1179           fixes bug #1216342
1180         * src/hc08/peeph.def: added rules 2g - 2l for new conditional branches
1181
1182 2005-06-15 Raphael Neider <rneider AT web.de>
1183
1184         * src/pic16/NOTES: moved Vangelis from active developers to people to contact
1185         * device/include/pic16/{6520.h,8520.h}: fixed configuration bits
1186         * src/pic16/gen.c (): prevent iTemps from being considered to be in CODESPACE,
1187           fixes bug #1221120; for symbols in CODESPACE get number of bytes to read from
1188           OP_SYM_TYPE() instead of OP_SYM_ETYPE()
1189
1190 2005-06-06 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
1191
1192         * device/include/mcs51/reg764.h: Changed PB0 to PBO as requested by
1193           Marcel Telka in bug #1215704
1194
1195 2005-06-02 Slade Rich <slade_rich AT users.sourceforge.net>
1196
1197         * src/pic/pcode.c : Changed pseudo stack size to 15 to allow WSAVE to be
1198           located in shared memory bank.
1199
1200 2005-05-31 Raphael Neider <rneider AT web.de>
1201
1202         * src/pic16/{gen.c,genarith.c}: replaced sign-extension
1203           "CLRF, BTFSC <signbit>, DECF/COMF" with side-effect-free
1204           "CLRF, BTFSC <signbit>, SETF"; fixes "long>>9"
1205
1206 2005-05-27 Maarten Brock <sourceforge.brock AT dse.nl>
1207
1208         * device/lib/_strncpy.c: fixed the fix
1209
1210 2005-05-26 Raphael Neider <rneider AT web.de>
1211
1212         * src/pic16/glue.c (pic16_printIvalChar): fixed _constant_ string
1213           initializers with \0, bug #1208187
1214         * src/pic/glue.c (printIvalChar): fixed (non- and constant) string
1215           intializers with \0, bug #1208187
1216
1217 2005-05-26 Raphael Neider <rneider AT web.de>
1218
1219         * src/pic16/glue.c (pic16_printIvalChar): fixed string
1220           initializers with \0, bug #1208187
1221         * src/pic16/main.c (_process_pragma): added sanity checks
1222           for stack position and size, emit warnings when appropriate
1223
1224 2005-05-26 Maarten Brock <sourceforge.brock AT dse.nl>
1225
1226         * device/lib/_strncpy.c: fixed not filling with \0
1227
1228 2005-05-26 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
1229
1230         * src/SDCCast.c (funcOfType, funcOfTypeVarg, stringToSymbol,
1231           createFunction),
1232         * src/SDCC.y (external_definition, enumerator, parameter_declaration,
1233           compound_statement),
1234         * src/SDCCsymt.h,
1235         * src/SDCCsymt.c (addSymChain, processFuncArgs): fixed bug #1159134
1236
1237 2005-05-24 Raphael Neider <rneider AT web.de>
1238
1239         * src/pic16/glue.c (pic16_printGPointerType): fixed #1207796
1240
1241 2005-05-24 Raphael Neider <rneider AT web.de>
1242
1243         * device/include/pic16/pic18f{442,452,458}.h: fixed wrong
1244           TRISE definitions, closes bug #1162453
1245
1246 2005-05-22 Raphael Neider <rneider AT web.de>
1247
1248         * src/pic16/main.c (_process_pragma): check for missing
1249           arguments to pragmas code and udata
1250         * device/include/pic16/pic18f{2550,4331,4455,4520}.h:
1251           consistency fixes to match other headers (thanks to Jim Paris)
1252         * device/lib/pic16/libio/i2c.ignore: 18f4331 provides no I2C
1253
1254 2005-05-21 Maarten Brock <sourceforge.brock AT dse.nl>
1255
1256         * src/SDCCicode.c (isOperandEqual): fixed missing ;
1257
1258 2005-05-19 Maarten Brock <sourceforge.brock AT dse.nl>
1259
1260         * support/regression/tests/bug1198642.c: new test
1261         * src/SDCCicode.c (isOperandEqual): fixed bug 1198642
1262         * src/SDCCcse.c (findPrevIc): added comment, please have a look
1263         * support/scripts/resource.h,
1264         * support/scripts/resource.rc,
1265         * src/src.dsp: added sdcc.ico to project as icon for sdcc.exe
1266         * support/scripts/sdcc.ico: added 32x32 icon
1267
1268 2005-05-18 Raphael Neider <rneider AT web.de>
1269
1270         * device/lib/pic16/libdev/pic18f*.c,
1271         * device/include/pic16/pic18f*.h: updated "sfr" and "at X"
1272           keywords to "__sfr" and "__at (X)"
1273         * device/include/pic16/pic18fregs.h: added pic18f4520
1274         * src/pic16/pcode.c (pic16_pCode2str): fixed (?) bug
1275           #1203088 (MPLAB compatibility)
1276
1277 2005-05-17 Raphael Neider <rneider AT web.de>
1278
1279         * device/include/pic16/pic18f{2550,4331,4455,4520}.h: NEW
1280         * device/lib/pic16/libdev/pic18f{2550,4331,4455,4520}.c: NEW
1281         * device/lib/pic16/pics.all: added new devices
1282         * src/pic16/device.c: added support for pic18f4520
1283
1284 2005-05-16 Raphael Neider <rneider AT web.de>
1285         * src/pic16/gen.{c,h}: s/mov2f/pic16_mov2f made public
1286         * src/pic16/genarith.c (genAddLit): fixed bug 1202480
1287         * src/pic16/pcode.{c,h} (pic16_newpCodeOpBit_simple): NEW
1288           convenience function for bit access
1289
1290 2005-05-15 Maarten Brock <sourceforge.brock AT dse.nl>
1291
1292         * device/lib/printf_large.c: fixed bug 1193299
1293         * support/regression/tests/bug1057979.c: added test %3.3s
1294
1295 2005-05-15 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
1296
1297         * device/include/mcs51/8051.h,
1298         * device/include/mcs51/8052.h: made parseable with lint
1299         * device/include/mcs51/lint.h: added include file for (sp)lint
1300         * doc/sdccman.lyx: added doc about use of splint (syntax checking tool)
1301         * doc/cdbfileformat.lyx,
1302         * doc/test_suite_spec.lyx: hardcoded date to the date of last text change
1303
1304 2005-05-14 Raphael Neider <rneider AT web.de>
1305
1306         * device/lib/pic16/Makefile.common.in: add --optimize-df to OPT_FLAGS
1307         * device/lib/pic16/libc/stdlib/itoa.c (new)
1308         * device/lib/pic16/libc/stdlib/Makefile: have itoa.c built
1309         * device/lib/pic16/libio/Makefile: exclude subdir according to
1310           ${subdir}.ignore for certain PICs (lacking e.g. i2c)
1311         * device/lib/pic16/libio/i2c.ignore (new): pic18f1220 has no I2C support
1312         * src/pic16/gen.c (genFunction): prevent annoying warning
1313         * src/pic16/pcode.c: renamed stack_t to dynstack_t to prevent
1314           nameclashes on BeOS
1315         * support/cpp2/cppmain.c (cpp_output_string): new
1316         * support/cpp2/cpplib.c (_cpp_do__Pragma): fixed _Pragma(""),
1317           fixes bug 1116802
1318
1319 2005-05-13 Borut Razem <borut.razem AT siol.net>
1320
1321         * src/SDCCmain.c (linkEdit): fixed bug 1195202
1322
1323 2005-05-12 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
1324
1325         * .version: changed to version 2.5.1; back to bleeding edge development
1326
1327 2005-05-11 Borut Razem <borut.razem AT siol.net>
1328
1329         * doc/sdccman.lyx doc/cdbfileformat.lyx doc/test_suite_spec.lyx:
1330           generate PDF version 1.3 documents
1331
1332 2005-05-07 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
1333
1334         * .version: changed to version 2.5.0
1335
1336 2005-04-27 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
1337
1338         * doc/sdccman.lyx: updated weblinks, index and smaller updates
1339
1340 2005-04-26 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
1341
1342         * doc/sdccman.lyx: changed version 2.5.0, documented --std-c89,
1343         --std-sdcc89, --std-c99, --std-sdcc99, and the corresponding #pragmas, as
1344         well as many smaller updates.
1345         * .version: changed to version 2.5.0-pre1
1346
1347 2005-04-26 Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
1348
1349         * src/SDCCmain.c (setIncludePath): added port->target to SDCC_INCLUDE_NAME
1350
1351 2005-04-26 Maarten Brock <sourceforge.brock AT dse.nl>
1352
1353         * support/regression/tests/bug1185672.c: added
1354         * src/mcs51/gen.c (aopGetUsesAcc, genCpl, genAnd, genOr, genXor): fixed
1355           bug 1185672
1356         * src/mcs51/gen.c (genCall): added comments, made it look safer
1357         * src/mcs51/gen.c (genEndFunction): simplified
1358
1359 2005-04-25 Maarten Brock <sourceforge.brock AT dse.nl>
1360
1361         * src/mcs51/ralloc.c (serialRegAssign): fixed bug 1189609
1362
1363 2005-04-14 Borut Razem <borut.razem AT siol.net>
1364
1365         * fixed bug 1045046 - SIGSEGV with really simple code?:
1366           src/pic/pcode.c (pCodeInitRegisters)- pseudo stack size increased to 16
1367           src/pic/ralloc.c (typeRegWithIdx) - error message on pseudo stack overflow
1368
1369 2005-04-14 Borut Razem <borut.razem AT siol.net>
1370
1371         * src/pic16/gen.c (genInline), src/pic16/main.c (_process_pragma),
1372           src/pic16/device.h: temporarily disabled experimental #inline pragma
1373           for 2.5.0 release
1374
1375 2005-04-14 Maarten Brock <sourceforge.brock AT dse.nl>
1376
1377         * device/include/z80/stdio.h,
1378         * device/include/z80/string.h: removed these highly incomplete files so
1379           SDCC can use the default ones in device/include/
1380
1381 2005-04-14 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
1382
1383         * src/mcs51/gen.c (genEndFunction): removed unused variable to fix
1384         gcc warning.
1385         * device/lib/Makefile.in: default PORTINCDIR to the mcs51 subdir to
1386         fix sdcpp warnings.
1387
1388 2005-04-12 Maarten Brock <sourceforge.brock AT dse.nl>
1389
1390         * device/include/malloc.h: removed redundant __reentrant prototypes
1391         * device/lib/_mullong.c: added working xstack variant in asm (C version
1392           doesn't pass regression tests)
1393         * device/lib/bpx.c: used __data and made bpx char for mcs51
1394         * src/SDCCast.c (decorateType): removed unused GPTYPE_IDATA,
1395           (createFunction): fixed bug with xstackPtr
1396         * src/SDCCcse.c: corrected comments
1397         * src/SDCCopt.c (convertToFcall): fixed warning in MSVC,
1398           (killDeadCode, eBBlockFromiCode): removed unused code
1399         * src/SDCCsymt.h: removed unused GPTYPE_GPTR and GPTYPE_IDATA,
1400           corrected comments
1401         * src/mcs51/gen.c (aopForSym, aopPut, toBoolean, unsaveRegisters,
1402           assignResultValue, genCall, genFunction, genEndFunction, genAnd,
1403           genOr, genXor, genAddrOf): fixed several bugs concerning xstack
1404           (genModOneByte): fixed warning in MSVC
1405         * src/mcs51/main.c (): added comments
1406         * src/mcs51/peeph.def: changed 129 to 129.a, added 129.b, 129.c & 129.d
1407
1408 2005-04-12 Maarten Brock <sourceforge.brock AT dse.nl>
1409
1410         * src/SDCCmain.c (linkEdit): oops, changed one line too many
1411
1412 2005-04-11 Maarten Brock <sourceforge.brock AT dse.nl>
1413
1414         * src/SDCCmain.c (linkEdit): fixed bug with finding crt0.o for z80
1415
1416 2005-04-10 Vangelis Rokas <vrokas AT users.sourceforge.net>
1417
1418         * src/pic16/glue.c (printIvalChar): fixed bug when emitting
1419         characters arrays of larger size than the declared one.
1420
1421 2005-04-10 Borut Razem <borut.razem AT siol.net>
1422
1423         * src/pic/gen.c (genInline),
1424           src/pic/pcode.c (newpCodeAsmDir), (pCode2str),
1425           (genericPrint), (unlinkpCodeFromBranch), (compareLabel),
1426           (findNextInstruction), (findPrevInstruction),
1427           (findInstructionUsingLabel),
1428           src/pic/pcode.h: fixed bug #1164907 - Labels not being recognized
1429         * src/pic/pcode.c (findLabel): added missing '\n'
1430         * src/src.dsp: added SDCCdwarf2.c to the project
1431
1432 2005-04-09 Borut Razem <borut.razem AT siol.net>
1433
1434         * support/scripts/sdcc.nsi: added include/hc08/* h to NSIS setup
1435
1436 2005-04-08 Raphael Neider <rneider AT web.de>
1437
1438         * src/pic16/pcode.c: added helpers defmapInsertAfter (insert a new item
1439           into the chain after a given one) and mergeDefmapSymbols (combine
1440           defmap entries for each symbol per pcode)
1441         * (createDefmap): have defmap entries merged in the end
1442         * (defmapReplaceSymRef): split defmap entries covering two accesses to
1443           a symbol before replacing one access type's symbol, merge symbols in
1444           the end (replacement symbol might already have an entry)
1445         * (assignValnums): keep reference to written WREG intact
1446
1447 2005-04-08 Raphael Neider <rneider AT web.de>
1448
1449         * src/pic16/pcode.c (struct defmap_s): named anonymous union (for
1450           Alpha)
1451
1452 2005-04-08 Vangelis Rokas <vrokas AT users.sourceforge.net>
1453
1454         * src/pic16/pcode.c (pic16_get_op2): enlarged size of array b to 128
1455         bytes
1456
1457 2005-04-07 Raphael Neider <rneider AT web.de>
1458
1459         * device/include/pic16/usart.h: added compatibility defines for
1460           devices with more than one USART
1461         * device/include/pic16/pic18f[68][567]20.h: activated above defines
1462
1463 2005-04-07 Maarten Brock <sourceforge.brock AT dse.nl>
1464
1465         * device/lib/Makefile.in: updated for port specific include
1466
1467 2005-04-07 Maarten Brock <sourceforge.brock AT dse.nl>
1468
1469         * support/regression/ports/mcs51/spec.mk: added mcs51 include
1470
1471 2005-04-07 Maarten Brock <sourceforge.brock AT dse.nl>
1472
1473         * device/include/8051.h,
1474         * device/include/8052.h,
1475         * device/include/at89S8252.h,
1476         * device/include/at89c55.h,
1477         * device/include/at89x051.h,
1478         * device/include/at89x51.h,
1479         * device/include/at89x52.h,
1480         * device/include/mcs51reg.h,
1481         * device/include/reg51.h,
1482         * device/include/reg764.h,
1483         * device/include/regc515c.h,
1484         * device/include/sab80515.h: (re)moved these 12 files
1485         * device/include/mcs51/8051.h,
1486         * device/include/mcs51/8052.h,
1487         * device/include/mcs51/at89S8252.h,
1488         * device/include/mcs51/at89c55.h,
1489         * device/include/mcs51/at89x051.h,
1490         * device/include/mcs51/at89x51.h,
1491         * device/include/mcs51/at89x52.h,
1492         * device/include/mcs51/mcs51reg.h,
1493         * device/include/mcs51/reg51.h,
1494         * device/include/mcs51/reg764.h,
1495         * device/include/mcs51/regc515c.h,
1496         * device/include/mcs51/sab80515.h: and added them here
1497
1498 2005-04-06 Maarten Brock <sourceforge.brock AT dse.nl>
1499
1500         * device/include/stdarg.h: changed SDCC specific keywords to double
1501           underlined form.
1502         * device/include/stdint.h: changed intptr_t and uintptr_t for others than
1503           mcs51 and ds390.
1504         * device/include/hc08/mc68hc908gp32.h,
1505         * device/include/hc08/mc68hc908jb8.h,
1506         * device/include/hc08/mc68hc908jkjl.h,
1507         * device/include/hc08/mc68hc908qy.h: fixed comments
1508         * device/include/mcs51/README: updated
1509         * device/include/mcs51/c8051f120.h: added PINRSF
1510         * device/lib/pic16/libc/stdlib/crc16.c: fixed comments
1511         * src/pic16/pcode.c: MSVC6 doesn't accept declaring new variables
1512           amidst code. Also inline is not supported.
1513
1514 2005-04-06 Raphael Neider <rneider AT web.de>
1515
1516         * src/pic16/pcode.c (pic16_pCodeReplace): also update pcflow->end
1517         * (createDefmap): fixed CALLs to depend on FSR1 and RETLW to restore
1518           callers stack/frame pointers
1519
1520 2005-04-06 Vangelis Rokas <vrokas AT users.sourceforge.net>
1521
1522         * device/include/pic16/usart.h: added, missing in previous commit,
1523         * device/include/pic16/adc.h: fixed typo,
1524         * device/lib/pic16/libc/utils/cvtdec.S: added missing in previous
1525         commit,
1526         * device/lib/pic16/libc/stdlib/g_ftoa.S: modified to include
1527         <p18fxxx.inc>
1528         * device/lib/pic16/libc/stdio/streams.c: leave stdin, stdout
1529         uninitialized because a bug appears with gplink
1530         * device/lib/pic16/{some makefiles}: moved $(CSTD) from CFLAGS to
1531         COMPILE_FLAGS and added CPPFLAGS with -nostdinc because sdcpp
1532         complains for unrecognised option
1533
1534 2005-04-05 Raphael Neider <rneider AT web.de>
1535
1536         * src/pic16/gen.c (pic16_popCopyReg): made copying work for extended
1537           structs as well (using memcpy)
1538         * (genFunction): fixed comparison, used pCodeOpLabel to reduce warning
1539           on ISRs (GOTO has no label)
1540         * src/pic16/device.h: added OF_OPTIMIZE_DF
1541         * src/pic16/main.c: added compiler switch --optimize-df to enable the
1542           new data flow analysis/optimization
1543         * src/pic16/pcode.c: added (prototypes for and implementation of)
1544           dataflow analysis functions, fixed pCodeInstructions' inCond and
1545           outCond values, made RCALL a branch instruction
1546         * (pic16_unlinkpCode): keep C line if possible
1547         * (pic16_pCodeUnlink): removed cast on left side of assignment, have
1548           C line moved if possible
1549         * (pic16_getRegFrompCodeOp): NEW, improved version of...
1550         * (pic16_getRegFromInstruction,pic16_getRegFromInstruction2): changed
1551           to use new pic16_getRegFrompCodeOp (works for more SFRs)
1552         * (pic16_BuildFlow): fixed skip instructions with label (did not start
1553           new flow)
1554         * (pic16_getJumptabpCode): NEW, needed in...
1555         * (LinkFlow): fixed handling of jumptables, calls and conditional
1556           branches
1557         * (pic16_InsertCommentAfter): NEW
1558         * (pic16_pCodeReplace): made verbose and flow preserving
1559         * (AnalyzeFlow): added call to data flow analysis
1560         * src/pic16/pcode.h: added defmaps to pCodeFlow struct
1561         * src/pic16/pcodeflow.h: added PCC_STATUS to mean all STATUS bits
1562         * src/pic16/ralloc.c (packRegsForAssign): added return 1 in the end
1563
1564 2005-04-03 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
1565
1566         * src/SDCCast.c (decorateType): fixed bug #1105626
1567
1568 2005-04-02 Vangelis Rokas <vrokas AT users.sourceforge.net>
1569
1570         * device/include/asm/pic16/features.h,
1571         * pic18f*.h headers,
1572         * device/include/pic16/adc.h,
1573         * device/include/pic16/delay.h,
1574         * device/include/pic16/i2c.h,
1575         * device/include/pic16/malloc.h,
1576         * device/include/pic16/stdio.h,
1577         * device/include/pic16/stdlib.h,
1578         * device/include/pic16/string.h,
1579         * device/lib/pic16/libc/stdio/printf_tiny.c,
1580         * device/lib/pic16/libc/stdio/printf_small.c,
1581         * device/lib/pic16/libc/stdio/strmgpsim.c,
1582         * device/lib/pic16/libc/stdio/strmmssp.c,
1583         * device/lib/pic16/libc/stdio/strmusart.c,
1584         * device/lib/pic16/libc/stdio/vfprintf.c,
1585         * device/lib/pic16/libc/stdlib/ltoa.c,
1586         * device/lib/pic16/libc/stdlib/putchar.c,
1587         * device/lib/pic16/libc/stdlib/x_ftoa.c,
1588         * device/lib/pic16/libc/stdlib/memchrpgm.c,
1589         * device/lib/pic16/libc/stdlib/memchrram.c,
1590         * device/lib/pic16/libc/stdlib/memcpypgm2ram.c,
1591         * device/lib/pic16/libc/stdlib/memcpyram2ram.c,
1592         * device/lib/pic16/libio/adc/adcbusy.c,
1593         * device/lib/pic16/libio/adc/adcread.c,
1594         * device/lib/pic16/libio/adc/adcsetch.c,
1595         * device/lib/pic16/libio/usart/ubaud.c,
1596         * device/lib/pic16/libio/usart/ubusy.c,
1597         * device/lib/pic16/libio/usart/udrdy.c,
1598         * device/lib/pic16/libio/usart/uopen.c,
1599         * device/lib/pic16/libio/usart/uputc.c,
1600         * device/lib/pic16/libsdcc/gptr/gptrget1.c,
1601         * device/lib/pic16/libsdcc/gptr/gptrget2.c,
1602         * device/lib/pic16/libsdcc/gptr/gptrget3.c,
1603         * device/lib/pic16/libsdcc/gptr/gptrget4.c,
1604         * device/lib/pic16/libsdcc/gptr/gptrput1.c,
1605         * device/lib/pic16/libsdcc/gptr/gptrput2.c,
1606         * device/lib/pic16/libsdcc/gptr/gptrput3.c,
1607         * device/lib/pic16/libsdcc/gptr/gptrput4.c: modified all SDCC
1608         specific keywords to double underlined form,
1609         * device/lib/pic16/libc/Makefile.rules,
1610         * device/lib/pic16/libsdcc/Makefile.rules,
1611         * device/lib/pic16/libm/Makefile,
1612         * device/lib/pic16/libio/Makefile.rules: added CSTD macro in CFLAGS
1613         to compile with C standard set in Makefile.common
1614         * device/lib/pic16/libc/stdlib/Makefile: added new C sources
1615         rand.c and crc.c in compilation process,
1616         * device/lib/pic16/libsdcc/int/divuint.c,
1617         * device/lib/pic16/libsdcc/long/divulong.c: changed declaration of
1618         `c' from signed to unsigned,
1619         * device/lib/pic16/startup/crt0.c,
1620         * device/lib/pic16/startup/crt0i.c,
1621         * device/lib/pic16/startup/crt0iz.c: adopted to all SDCC specific
1622         keywords to double underlined form, bug fixes in _do_cinit function
1623         which prevented the correct initialization of the .idata segment,
1624         * src/pic16/pcoderegs.c (insideLRBlock): fixed a bug that caused the
1625         core to enter a infinite loop
1626         * device/lib/pic16/libc/stdlib/rand.c, crc.c: new files
1627
1628 2005-04-02 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
1629
1630         * src/SDCCicode.c (getArraySizePtr): fixed bug #1122171
1631
1632 2005-04-01 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
1633
1634         * device/include/Makefile.in: add support for hc08 subdirectory
1635         * device/include/hc08/: new subdirectory
1636         * device/include/hc08/mc68hc908jkjl.h: new header contributed by
1637         Lucas Loizaga, thanks!
1638         * device/include/hc08/mc68hc908qy.h,
1639         * device/include/hc08/mc68hc908gp32.h,
1640         * device/include/hc08/mc68hc908jb8.h: moved hc08 register defs to
1641         their own directory. Changed internal macro names to use the compiler
1642         reserved namespace. Changed SDCC specific keywords to double
1643         underlined form.
1644         * device/include/math.h,
1645         * device/include/malloc.h,
1646         * device/include/stdarg.h,
1647         * device/include/stdbool.h
1648         * device/include/string.h,
1649         * device/include/tinibios.h,
1650         * device/include/ds400rom.h,
1651         * device/include/8051.h,
1652         * device/include/8052.h,
1653         * device/include/80c51xa.h,
1654         * device/include/at89c55.h,
1655         * device/include/at89S8252.h,
1656         * device/include/at89x51.h,
1657         * device/include/at89x52.h,
1658         * device/include/ds80c390.h,
1659         * device/include/reg764.h,
1660         * device/include/regc515c.h,
1661         * device/include/sab80515.h,
1662         * device/include/mcs51/c8051f000.h,
1663         * device/include/mcs51/c8051f018.h,
1664         * device/include/mcs51/c8051f020.h,
1665         * device/include/mcs51/c8051f040.h,
1666         * device/include/mcs51/c8051f060.h,
1667         * device/include/mcs51/c8051f120.h,
1668         * device/include/mcs51/c8051f300.h,
1669         * device/include/mcs51/c8051f310.h,
1670         * device/include/mcs51/c8051f320.h,
1671         * device/include/mcs51/c8051f330.h,
1672         * device/include/mcs51/c8051f350.h,
1673         * device/include/z180.h: Changed SDCC specific keywords to double
1674         underlined form.
1675
1676 2005-03-31 Vangelis Rokas <vrokas AT users.sourceforge.net>
1677
1678         * src/pic16/device.c (Pics16[]): added devices 18F2550, 18F4331,
1679         18F4455,
1680         * (pic16_assignConfigWordValue): disable testing of configuration
1681         register value with config mask,
1682         * src/pic16/gen.c (pic16_testStackOverflow): prefix stack test
1683         function with port->fun_prefix,
1684         * (genFunction): when generating a naked interrupt function never
1685         create an absolute segment placed in interrupt vector address, place
1686         the actual interrupt function at IVA instead, when an interrupt
1687         function is generated with unspecified interrupt then do not create
1688         the absolute section,
1689         * (genGenPointerGet, genGenPointerSet, genPackBits): replace all
1690         code for generating a call to generic pointer get/put function with
1691         a call to function pic16_callGenericPointer(),
1692         * src/pic16/genutils.c (pic16_callGenericPointerRW): NEW, generates
1693         the call to the generic pointer get/put functions with prefixing the
1694         function name with port->fun_prefix,
1695         * src/pic16/glue.c (pic16glue): ifdef-out test of OF_LR_SUPPORT,
1696         * src/pic16/main.c (_process_pragma): prefix function with
1697         port->fun_prefix,
1698         * (_pic16_finaliseOptions): define macro __18Fxxxx macro when
1699         calling assembler, old 18Fxxxx macro is deprecated,
1700         * src/pic16/pcode.c (unlinkpCodeFromBranch): added PC_INLINE and
1701         PC_ASMDIR in while condition,
1702         * (findInstruction): add PC_ASMDIR in while condition,
1703         * (buildCallTree): prefix main with port->fun_prefix,
1704         * (pic16_pCode2str): fixed bug that didn't emit the memory access
1705         identifier for variable with banked access in instructions BTFSS,
1706         BTFSC, BCF, BSF, BTG
1707         * (AnalyzeFlow): moved call to OptimizepCode to pic16_AnalyzeBanking,
1708         * src/pic16/pcodepeep.c (pCodeOpCompare): increase size of b to 1024,
1709         * src/pic16/pcoderegs.c (pic16_pCodeRegoptimizeRegUsage): don't
1710         perform optimization when enviroment variable NO_REG_OPT is set,
1711         * (insideLRBlock): NEW, return 1 if register is inside an
1712         INF_LOCALREGS block,
1713         * (RemoveRegFromLRBlock): remove a register that is completely
1714         eliminated by register optimization, but it is still left in local
1715         register store/restore in/from stack block,
1716         * (Remove2pcodes): after removing register, check to see if it
1717         should be removed from local register store/restore in/from stack
1718         block,
1719         * src/pic16/ralloc.c (pic16_decodeOp): added decode for
1720         DUMMY_READ_VOLATILE,
1721
1722         * device/include/pic16/adc.h: minor prototype modifications and
1723         update,
1724         * device/include/pic16/malloc.h: added GPL notice various
1725         modifications,
1726         * device/include/pic16/stdint.h: NEW, standard header for ints
1727         * device/include/pic16/delay.h: NEW, header for delay functions,
1728         delay10tcy, delay100tcy, delay1ktcy, delay10ktcy, delay100ktcy,
1729         delay1mtcy,
1730         * device/include/pic16/signal.h: NEW, header providing helper macros
1731         for implementing signal handlers,
1732         * device/include/pic16/stdio.h: added prototypes for functions,
1733         printf, vprintf, sprintf, vsprintf, fprintf, vfprintf. Added
1734         prototypes for stdin and stdout, added macro PUTCHAR to
1735         automatically implement putchar function prototype,
1736         * device/include/pic16/usart.h: modified and updated USART library,
1737         * device/lib/pic16/libio/adc/,
1738         * device/lib/pic16/libio/i2c: some modifications to improve library
1739         performance,
1740         * device/lib/pic16/libc/stdio/: modifications for the new printf*
1741         family of functions,
1742         * device/lib/pic16/libc/stdlib/: various modifications in the malloc
1743         family of functions and other sources,
1744         * device/lib/pic16/libio/usart/: NEW, c sources for the usart module
1745         of the PIC18Fxx[28] devices,
1746         * device/lib/pic16/libc/delay/: NEW, c sources for the delay functions,
1747         * device/lib/pic16/libc/utils/: minor modifications in the .S sources,
1748         * device/lib/pic16/startup/{crt0i.c, crt0iz.c}: redesign of the
1749         _do_cinit function, because the previous failed when local variables
1750         where not placed in the same memory bank,
1751         * device/lib/pic16/libsdcc/char/: various modifications to improve
1752         library performance,
1753         * doc/sdccman.lyx: some reorganization of the PIC16 part, added many
1754         information on the new functions of the c library and more...
1755
1756 2005-03-28 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
1757
1758         * src/SDCCBBlock.c (iCodeBreakDown): fixed bug #1170212
1759
1760 2005-03-26 Raphael Neider <rneider AT web.de>
1761
1762         * src/pic16/gen.c (genSkipc): fixed semantics (execute branch
1763           if condition == CARRY)
1764         * (genCmp): adapted to new genSkipc semantics
1765         * src/pic16/genutils.c (pic6_genCmp_special): removed side effect
1766           on rIfx (genCmp was broken)
1767
1768 2005-03-26 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
1769
1770         * src/SDCCmain.c (setDefaultOptions, optionsTable[], parseCmdLine),
1771         * src/z80/main.c (_keywords[]),
1772         * src/SDCCglobal.h (struct options),
1773         * src/SDCC.y,
1774         * src/SDCC.lex (isTargetKeyword, doPragma, pragma_tbl[]): new pragmas
1775         to enable/disable SDCC and C99 extensions/keywords (std_c89, std_sdcc89,
1776         std_c99, std_sdcc99). Also, equivalent command line options (--std-c89,
1777         --std-sdcc89, --std-c99, --std-sdcc99). SDCC specific keywords are
1778         always available in leading double underscore form. The C99 support is
1779         mostly missing, but it's a start.
1780         * support/regression/tests/bug-227710.c: fixed nonconforming use of
1781         reserved identifier "__data".
1782
1783 2005-03-24 Maarten Brock <sourceforge.brock AT dse.nl>
1784
1785         * src/mcs51/peeph.def: fixed bug 1170013
1786
1787 2005-03-22 Maarten Brock <sourceforge.brock AT dse.nl>
1788
1789         * device/include/mcs51reg.h: fixed bug 842007
1790
1791 2005-03-21 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
1792
1793         * src/SDCCcflow.c (dfNumCompare): committed the wrong version of this
1794         last time.
1795
1796 2005-03-20 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
1797
1798         * src/port.h (struct PORT),
1799         * src/avr/ralloc.c (avr_assignRegisters),
1800         * src/avr/main.c,
1801         * src/ds390/ralloc.c (ds390_assignRegisters),
1802         * src/ds390/main.c,
1803         * src/hc08/ralloc.c (hc08_assignRegisters),
1804         * src/hc08/main.c,
1805         * src/mcs51/ralloc.c (mcs51_assignRegisters),
1806         * src/mcs51/main.c,
1807         * src/pic/ralloc.c (pic14_assignRegisters),
1808         * src/pic/main.c,
1809         * src/pic16/ralloc.c (pic16_assignRegisters),
1810         * src/pic16/main.c,
1811         * src/xa51/ralloc.c (xa51_assignRegisters),
1812         * src/xa51/main.c,
1813         * src/z80/ralloc.c (z80_assignRegisters),
1814         * src/z80/ralloc.h,
1815         * src/SDCCopt.c (eBBlockFromiCode, replaceRegEqv, killDeadCode),
1816         * src/SDCCcse.c (ifxOptimize, cseBBlock, cseAllBlocks),
1817         * src/SDCCcse.h,
1818         * src/SDCCdflow.c (computeDataFlow),
1819         * src/SDCCdflow.h,
1820         * src/SDCCloop.c (addDefInExprs, loopInvariants, loopOptimizations),
1821         * src/SDCCloop.h,
1822         * src/SDCCcflow.c (*),
1823         * src/SDCCcflow.h,
1824         * src/SDCCBBlock.c (iCodeBreakDown, dumpEbbsToFileExt, eBBWithEntryLabel),
1825         * src/SDCCBBlock.h (struct ebbIndex): new struct that keeps two copies
1826         of the eBBlock list, sorted by both bbnum and dfnum. (fixes bug with
1827         immedDom() returning wrong block; probably fixes bug #1160833)
1828
1829 2005-03-20 Borut Razem <borut.razem AT siol.net>
1830
1831         * support/scripts/inc2h.pl: WIN32 port
1832
1833 2005-03-19 Maarten Brock <sourceforge.brock AT dse.nl>
1834
1835         * device/lib/makefile.in: added abs.c and labs.c
1836
1837 2005-03-17 Maarten Brock <sourceforge.brock AT dse.nl>
1838
1839         * device/include/stdint.h: added
1840         * device/lib/abs.c: added
1841         * device/lib/labs.c: added
1842         * device/include/stdlib.h: added abs() and labs() prototypes
1843         * device/lib/libsdcc.lib: added abs and labs
1844         * device/include/float.h,
1845         * device/lib/_fsmul.c,
1846         * device/lib/printf_fast.c,
1847         * device/lib/printf_tiny.c: updated comments
1848
1849 2005-03-16 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
1850
1851         * src/SDCCicode.c (geniCodeSwitch, geniCodeJumpTable): fixed
1852         bug #1164313
1853
1854 2005-03-16 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
1855
1856         * src/SDCCcse.c (cseBBlock): retain assignment to self when volatile
1857         * src/SDCCast.c (isLoopCountable): fixed bug #1161985
1858
1859 2005-03-15 Maarten Brock <sourceforge.brock AT dse.nl>
1860
1861         * device/lib/printf_large.c: removed inline assembly for portability and
1862           readability. Use printf_fast if speed or size are more important.
1863         * src/pic16/gen.c: removed conditions around use of DEBUGpc
1864         * src/pic16/genutils.h: added define for DEBUGpc for MSVC
1865
1866 2005-03-15 Vangelis Rokas <vrokas AT users.sourceforge.net>
1867
1868         * src/pic16/genutils.c (pic16_genCmp_special): initialized offs to
1869         prevent compiler warning
1870
1871 2005-03-14 Vangelis Rokas <vrokas AT users.sourceforge.net>
1872
1873         * device/lib/pic16/startup/crt0i.c (_cinit): local variables where
1874         moved to level 0 and declared as static. Also they are explicit
1875         placed in access bank. This was necessery because some times they
1876         might cross memory bank boundaries. crt0iz.c is *NOT* updated!!!
1877         * src/pic16/device.h: added flag OPTIMIZE_CMP to enable some compare
1878         optimizations. Currently only compare to unsigned char is implemented,
1879         * src/pic16/gen.c: added fReturnIdx array,
1880         * (struct resolvedIfx) is moved to gen.h and made public,
1881         * (struct _G): added sregsAlloc and sregsAllocSet fields,
1882         * (aopForSym): added an optimization to directly store in stack of
1883         the operand of a SEND iCode,
1884         * (pic16_aopOp): don't return return registers as strings (AOP_STR)
1885         but as registers instead (AOP_REG) using the fReturnIdx array,
1886         * (pic16_freeAsmop): remove the freed register from the
1887         _G.sregsAlloc field,
1888         * (pic16_aopGet): in case AOP_STR, the compare to 'a' is changed to
1889         a compare of 'WREG',
1890         * (pic16_popGetTempRegCond): changed function prototype, now
1891         function takes also a bitVector argument v which holds the current
1892         set of registers that are allocated for stack access by aopForSym,
1893         registers allocated in aopForSym for accessing stack symbols are not
1894         any more part of the functions usedRegs field,
1895         * (genCall): some times aopOp is called for a stack variable to be
1896         send, aopForSym might perform the push, if this is true make sure
1897         that genCall doesn't push the variable twice by testing _G.resDirect,
1898         * (genFunction): changed testing for unspecified interrupt number
1899         from 256 to INTNO_UNSPEC,
1900         * modified selection scheme of frame pointer generation. Previously
1901         if function did use local registers a frame pointer was generated,
1902         now a frame pointer is generated only if function has arguments
1903         (that need PLUSW2 register access), or has stack arguments, or the
1904         compiler is not instructed to omit the frame pointer,
1905         * (genEndFunction): before restoring local registers that were saved
1906         in the function preamble, also restore the registers that *might*
1907         have been allocated for stack access,
1908         * (genRet): removed some old comments,
1909         * (genCmp, the active (RN's) version): added a call to the
1910         pic16_genCmp_special function to perform the compare with a more
1911         robust and optimized way,
1912         * (genInline): a feature has been added in inline code generation,
1913         which allows a wildcard variable substitution when writing inline
1914         assembly. Code is incomplete and experimental therefore undocumented,
1915         * (genCast): changed order of aopOp for result and right to allow
1916         aopForSym to directly load the result if possible,
1917         * src/pic16/genutils.c (selectCompareOp, pic16_genCmp_special): NEW,
1918         perform an optimized compare on some selected special occasions,
1919         * src/pic16/genutils.h: declaration of resolvedIfx structure from gen.c,
1920         * src/pic16/glue.c (pic16createInterrupVect): make sure we never
1921         generate an IVT any more,
1922         * src/pic16/main.c (pic16_optionsTable): added command line option
1923         --optimize-cmp,
1924         * (_pic16_initPaths): when calling C preprocessor define pic18fXXXX
1925         macro too, when calling assembler define pic18fXXXX *and* __18Fxxxx
1926         macros,
1927         * src/pic16/NOTES: Raphael Neider added in list of active developers
1928         * src/pic16/pcode.c (OPT_TYPE_STR): added strings jumptable_begin and
1929         jumptable_end to prevent bug #,
1930         * (pic16_pciADDWFC, ADDFWC, COMF, CLRF): added some missing flags in
1931         inCond and outCond fields,
1932         * src/pic16/pcoderegs.c (pCodeOptime2pCodes): add a fix for bug #,
1933         * src/pic16/ralloc.c (serialRegAssign): explicit set willCS to 0 to
1934         turn off register spilling,
1935         * (packRegsForOneUse): synced with other ports' versions although it
1936         is not used currently,
1937         * (pic16_packRegisters): added an optimization while reading
1938         structure bitfields, some registers may be saved (malloc code is
1939         decreased by 80 bytes)
1940
1941 2005-03-12 Vangelis Rokas <vrokas AT users.sourceforge.net>
1942
1943         * src/SDCCcse.c (cseBBlock): inside 'do operand lookup' loop test if
1944         left is a bitfield, if yes, then don't optimize assignment. Perhaps
1945         this can be optimized more?
1946
1947 2005-03-10 Raphael Neider <rneider AT web.de>
1948
1949         * src/pic16/gen.c (pic16_loadFSR0, genPackBits, genUnpackBits,
1950           genNearPointerGet): (hopefully) fixed access to bitfields via
1951           pointers (p->bitN = x; and x = p->bitN; failed)
1952
1953 2005-03-09 Paul Stoffregen <paul AT pjrc.com>
1954
1955         * device/lib/printf_fast.c: fix leading zero format, eg "%02d"
1956
1957 2005-03-09 Raphael Neider <rneider AT web.de>
1958
1959         * src/SDCCopt.c (killDeadCode): fixed bug #1156016
1960
1961 2005-03-06 Maarten Brock <sourceforge.brock AT dse.nl>
1962
1963         * src/SDCCicode.h: moved CRITICAL and ENDCRITICAL from SKIP_IC2 to SKIP_IC
1964         * src/mcs51/ralloc.c (willCauseSpill): added check for REG_BIT type,
1965           (regTypeNum): set REG_BIT type if necessary
1966         * src/mcs51/ralloc.h: added define REG_BIT, used to fix bug 1144613
1967         * support/regression/tests/critical.c: check bug 1144613
1968
1969 2005-03-02 Raphael Neider <rneider AT web.de>
1970
1971         * src/pic16/gen.c (genRightShiftLiteral): fixed bug #1154256
1972
1973 2005-02-26 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
1974
1975         * src/avr/ralloc.c (serialRegAssign),
1976         * src/ds390/ralloc.c (serialRegAssign),
1977         * src/hc08/ralloc.c (serialRegAssign),
1978         * src/mcs51/ralloc.c (serialRegAssign),
1979         * src/pic/ralloc.c (serialRegAssign),
1980         * src/pic16/ralloc.c (serialRegAssign),
1981         * src/xa51/ralloc.c (serialRegAssign),
1982         * src/z80/ralloc.c (serialRegAssign): fixed bug #1105154
1983
1984 2005-02-22 Maarten Brock <sourceforge.brock AT dse.nl>
1985
1986         * src/SDCCast.c (decorateType): fixed bug 1124787
1987
1988 2005-02-20 Hubert Sack <sack AT digiplan.de>
1989         committed by Frieder Ferlemann <Frieder.Ferlemann AT web.de>
1990
1991         * src/mcs51/peeph.def: added peepholes 3.h-k and 132.a-f from
1992         patch #1121755
1993
1994 2005-02-20 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
1995
1996         * src/SDCCpeeph.def: new keyword "labelRefCountChange" which allows peepholes
1997         to keep the correct label reference count when adding/removing references
1998         to labels. A peephole file using this is appended to patch #1144962.
1999
2000 2005-02-14 Raphael Neider <rneider AT web.de>
2001
2002         * device/lib/pic16/libc/string/memccpy.c: changed 3rd argument to char
2003         * src/SDCC.lex (process_pragma): fixed to make disable_warning work for PIC16
2004         * src/pic16/gen.c (aopForSym, calls to pic16_aopOp): prevent unneccessary
2005           retrievals of result operand's value on assignment
2006
2007 2005-02-13 Vangelis Rokas <vrokas AT otenet.gr>
2008
2009         * device/include/pic16/string.h: modified prototype for memccpy()
2010         to memccpy(void *, void *, char, size_t)
2011         * src/pic16/gen.c (genFunction, genEndFunction): reenable if-case to
2012         check whether to omit frame pointer or not,
2013         * (genInline): convert all occurences of "\n" to LF in inline
2014         assembler blocks, this helps formatting the inline text,
2015         * (pic16_loadFSR0): modified prototype,
2016         * (genNearPointerGet, genNearPointerSet): reorganization of code,
2017         removed some 8051 legacy code,
2018         * (genPackBits): enabled handling bitfields exceeding one byte in size,
2019         * src/pic16/ralloc.c (pic16_assignRegisters): clear dynrIdx variable
2020         before allocating temporary registers in functions,
2021
2022 2005-02-11 Maarten Brock <sourceforge.brock AT dse.nl>
2023
2024         * support/regression/tests/bitvars.c: corrected the "fix"
2025
2026 2005-02-10 Maarten Brock <sourceforge.brock AT dse.nl>
2027
2028         * support/regression/tests/bitvars.c,
2029         * support/regression/tests/bitwise.c,
2030         * support/regression/tests/rotate.c: "fixed" problems on Alpha
2031
2032 2005-02-10 Raphael Neider <rneider AT web.de>
2033
2034         * src/pic16/pcode.c (assignToSameBank) : fixed cast to pointer of
2035           different size for Alpha
2036         * src/pic16/gen.c (genCmpEq) : improved compare with 0
2037
2038 2005-02-09 Raphael Neider <rneider AT web.de>
2039
2040         * src/SDCC.lex(doPragma) : save and restore warning options as well
2041           (also added new stack plus clone- and copyAndFreeSDCCERRG())
2042         * have #pragma less_pedantic set the errorlevel to WARNING
2043           (fixes #1117001)
2044         * (cloneOptimize) : fixed wrong malloc's size
2045         * support/Util/SDCCerr.[ch] : made SDCCERRG globally accessible to
2046           facilitate correct handling of #pragma (save|restore)
2047
2048 2005-02-09 Maarten Brock <sourceforge.brock AT dse.nl>
2049
2050         * src/mcs51/gen.c: removed non-standard C nameless struct/union
2051
2052 2005-02-04 Slade Rich <slade_rich AT users.sourceforge.net>
2053
2054         * src/pic/gen.c : Fix for bugs #1080519 & #1115662.
2055
2056 2005-02-03 Maarten Brock <sourceforge.brock AT dse.nl>
2057
2058         * device/include/mcs51/c8051f120.h: added declarations for sbit port 2,3&4
2059
2060 2005-02-02 Raphael Neider <rneider AT web.de>
2061
2062         * src/SDCCast.c (processParms): disabled W_NONRENT_ARGS for pic16 port
2063         * src/pic16/gen.c (aopForSym): reenabled special case for function pointers
2064         * (pic16_storeForReturn): fixed to allow returning function pointers
2065         * (genPackBits): improved accessing full bytes, implemented for GPOINTERs
2066         * device/include/pic16/{stddef.h,stdbool.h}: added
2067
2068 2005-02-02 Maarten Brock <sourceforge.brock AT dse.nl>
2069
2070         * device/include/mcs51/c8051f040.h: added define CPT2_PAGE
2071
2072 2005-02-01 Slade Rich <slade_rich AT users.sourceforge.net>
2073
2074         * src/pic16/pic16.dsp : Added file graph.c to make it compile under windows
2075         * src/pic16/Makefile.bcc : Do not use this file but added file graph.c as it
2076          appeared to be required
2077
2078 2005-01-31 Borut Razem <borut.razem AT siol.net>
2079
2080         * support/scripts/sdcc.nsi: added include/asm/ds390, include/asm/mcs51,
2081           include/mcs51 and include/z80 directories to the package
2082
2083 2005-01-26 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
2084
2085         * src/hc08/gen.c (genFunction): fixed bug #1112752
2086
2087 2005-01-30 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
2088
2089         * src/mcs51/peeph.def: adapted peephole 258.x to changed gen.c (genAnd)
2090
2091 2005-01-29 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
2092
2093         * src/mcs51/gen.c (genAnd): accessing LSB/MSB by rotating acc
2094
2095 2005-01-29 Maarten Brock <sourceforge.brock AT dse.nl>
2096
2097         * device/include/Makefile.in: create/copy mcs51 and z80 include subdirs
2098
2099 2005-01-27 Maarten Brock <sourceforge.brock AT dse.nl>
2100
2101         * device/include/c8051fxxx.h: removed these 6 files
2102         * device/include/mcs51/c8051fxxx.h: added these 11 new files
2103
2104 2005-01-26 Raphael Neider <rneider AT web.de>
2105
2106         * src/pic16/gen.c (genAssign): fixed assignment from longs
2107           in codespace (were cut to three bytes)
2108         * (genDummyRead): implemented (except for CODESPACE...),
2109           fixed bug #1108575
2110         * src/pic16/glue.c (emitStatistics): beautified
2111         * device/lib/pic16/libm/Makefile: added include path
2112
2113 2005-01-26 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
2114
2115         * src/z80/gen.c (aopPut): fixed bug #1103902
2116
2117 2005-01-25 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
2118
2119         * device/lib/expf.c: fixed bug #1095792
2120
2121 2005-01-24 Vangelis Rokas <vrokas AT otenet.gr>
2122
2123         * device/lib/pic16/libm: added Math library sources
2124
2125 2005-01-24 Raphael Neider <rneider AT web.de>
2126
2127         * src/pic16/pcode.h: added second memory operand to pCodeOpReg
2128           to enable upcast to pCodeOpReg2 (there is no type tag to
2129           differenciate the two and pic16_popGet2p cast into PCOR2)
2130         * src/pic16/main.c (_process_pragma): fixed another malloc bug
2131           (sizeof(sectNames) changed to sizeof(sectName))
2132           Both patches fix segfaults under MinGW.
2133
2134 2005-01-23 Raphael Neider <rneider AT web.de>
2135
2136         * src/pic16/{device.c,pcode.c}: s/free/Safe_free/g for
2137           Safe_[mc]?alloc()'ed variables
2138         * src/pic16/gen.c (pic16_aopOp,pic16_popGet): added handling
2139           of (byte sized) temporaries (assign them to WREG for now)
2140         * src/pic16/main.c (_process_pragma): fixed nasty malloc bug
2141           (used sizeof(set *sectSyms) instead of sizeof(struct sectSym)),
2142           this might fix SIGSEGVs on MinGW...
2143         * src/SDCCopt.c (killDeadCode): restored original behaviour
2144           (volatile operands might get thrown away though)
2145
2146 2005-01-23 Vangelis Rokas <vrokas AT otenet.gr>
2147
2148         * src/pic16/gen.c: fixed bug #1106975,
2149         * src/pic16/gen.c: fixed possible bug #1102572, now during TOS
2150         pointer update, INTCON is saved, global interrupts are disabled and
2151         restored after updateing TOS.
2152         * src/SDCC.y, src/SDCC.lex, src/SDCCsymt.c, src/SDCCsymt.h:
2153         * added function attribute 'shadowregs' to take advantage of shadow
2154         registers,
2155         * added function attribute 'wparam' as an alternative to the wparam
2156         pragma,
2157         * support/Utils/SDCCerr.[ch]: added error E_SHADOWREGS_NO_ISR when
2158         user declares a non-ISR function as 'shadowregs',
2159         * doc/sdccman.lyx: updated to reflect recent changes of pic16 port
2160
2161 2005-01-22 Vangelis Rokas <vrokas AT otenet.gr>
2162
2163         * .version: bumped version number to 2.4.8
2164         * device/lib/pic16/pics.all: list of PIC18F devices supported by
2165         pic16 port,
2166         * device/lib/pic16/libio/i2c/: I2C module support library,
2167         * device/include/pic16/i2c.h: I2C support library header,
2168         * device/lib/pic16/libc/stdio/: standard IO support sources,
2169         * (printf_small.c): printf_small() source, supports float print,
2170         * (printf_tiny.c): printf_tiny() source, does not support floats,
2171         * device/lib/pic16/Makefile.common.in: added OPT_FLAGS macro to
2172         enable global optimizations for entire library source, other
2173         Makefiles in the source tree are also modified to reflect this,
2174         * device/lib/pic16/libc/stdlib/putchar.c (putchar): dummy putchar()
2175         function,
2176         * doc/sdccman.lyx: updated to reflect new changes,
2177         * src/pic16/gen.c (aopForSym): don't handle sym->iaccess in
2178         sym->onStack if-case,
2179         * src/pic16/main.c (_pic16_keywords): commented out keywords bit,
2180         sbit, idata, _idata, xdata, _xdata,
2181         * added pragma library, to link an external library, (see doc),
2182         * removed command line options, --pomit-config-words, --pomit-ivt,
2183         --pleave-reset-vector,
2184         * (pic16_finaliseOptions): when define macro SDCC_MODEL_{SMALL/LARGE}
2185         when calling assembler to reflect memory model used, also define
2186         macro STACK_MODEL_{SMALL/LARGE} when compiling and assembling to
2187         reflect stack model used,
2188         * src/pic16/ralloc.c (pic16_allocDirReg): when operand is allocated
2189         on stack return NULL,
2190
2191 2005-01-22 Daniel Winkler <post AT danielwinkler.de>
2192
2193         * src/SDCCopt.c (killDeadCode): do not throw iCodes away if one
2194           of the operands is volatile. Fixes #1020220
2195
2196 2005-01-22 Daniel Winkler <post AT danielwinkler.de>
2197
2198         * src/pic16/pcoderegs.c (pCodeOptime2pCodes): reenabled optimization
2199         * (OptimizeRegUsage): make sure that there is really no other flow where
2200           the first pCode is used
2201
2202 2005-01-22 Raphael Neider <rneider AT web.de>
2203
2204         * src/pic16/pcoderegs.c (pCodeOptime2pCodes): disabled optimization
2205           to fix #1106967 (pCode->seq are not set up correctly)
2206
2207 2005-01-22 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
2208
2209         * src/SDCCglue.c (glue): make sure code area is declared before the
2210         static initialization area.
2211
2212 2005-01-21 Raphael Neider <rneider AT web.de>
2213
2214         * device/lib/Makefile.in: fixed test for pic16 install dir
2215         * device/lib/pic16/*/Makefile*: modified compile flags to enable
2216           optimizations
2217         * doc/sdccman.lyx: updated banksel optimization, removed --flr-support and
2218           added --optimize-goto compiler switch and pragma wparam documentation
2219         * src/pic16/pcode.c (pic16_OptimizeBanksel): removed statistics dump
2220         * src/pic16/pcodepeep.c (pic16_pCodeOpCopy): fixed copying of WREG, PRODL
2221           and PRODH closing bug #1071770 (peephole optimizer)
2222
2223 2005-01-19 Raphael Neider <rneider AT web.de>
2224
2225         * src/SDCCglobl.h: ensure that PATH_MAX >= 2048 to guarantee
2226           cmdLine buffers (used when calling sdcpp...) are large enough
2227           (MAX_PATH=256 truncates arguments leading to system halts when
2228           used in MinGW...)
2229         * src/pic16/gen.c (pic16_sameRegs): relaxed size criterion
2230         * (genUminus): rewritten to for efficiency
2231         * (genNearPointer[GS]et): enforce reloading of FSR0 (was still
2232           used uninitialized in some cases)
2233         * (genCast): upcasting a 16bit int to a 24bit GPOINTER may not
2234           copy the third byte from the int -- now assumes 0x80 (data memory)
2235         * src/pic16/genarith.c (pic16_genPlus): fixed bug when swapping
2236           operands (genAddLit expects the iCode's operands to swapped as
2237           well), fixed leftover bytes (crashed for short left operands)
2238         * (pic16_genMinusDec): performance improvements, removed false
2239           PIC14 emitSKPNCs
2240         * (pic16_genMinus): fixed to cope with differently sized operands
2241         * src/pic16/glue.c (pic16_glue): added new banksel optimization
2242           for --obanksel > 1
2243         * src/pic16/pcode.c: implemented (first phase of) banksel optimization
2244         * src/pic16/graph.[ch]: implementation of directed graphs, used by
2245           new banksel optimization
2246         * src/pic16/pcoderegs.c (pCodeRegMapLiveRangesInFlow): prevented
2247           analysis for temporary registers (segfaults...)
2248         * src/pic16/peeph.def: added rule
2249
2250 2005-01-18 Vangelis Rokas <vrokas AT otenet.gr>
2251
2252         * device/lib/pic16/libc/stdlib/x_ftoa.c: it defines x_ftoa function
2253         which converts a float number to its ASCII representation
2254         * device/lib/pic16/libc/utils/cnvfrac.S,cnvint.S: support
2255         functions to convert the fractional and integer part of a float to ASCII,
2256         * device/lib/pic16/libc/stdlib/(calloc.c,free.c, malloc.c,
2257         realloc.c): added _MALLOC_SPEC to explicit place variables in data
2258         ram
2259         * device/include/asm/pic16/features.h: added _CODE, _DATA, _AUTOMEM,
2260         _STATMEM macros,
2261         * device/include/pic16/adc.h: added GPL info,
2262         * src/pic16/gen.c (genIfxpCOpJump): perform an genIfxJump but using
2263         a pCodeOp as tested operand,
2264         * (genNearPointerGet): optimized bit testing, does not use
2265         intermediate register for bit value, test directly instead with
2266         BTFSS, BTFSC, works only for single bits,
2267         * (genpic16Code): dump the name of the iCode in the asm,
2268         * src/pic16/ralloc.c (decodeOp): removed static declaration and
2269         renamed to pic16_decodeOp,
2270         * (serialRegAssign): do not allocate a temporary register for iCode
2271         sequences that test a single bit for 1/0
2272
2273 2005-01-12 Vangelis Rokas <vrokas AT otenet.gr>
2274
2275         * src/pic16/pcode.[ch]: introduced pic16_stackpnt_*,
2276         pic16_framepnt_*, pic16_stack_*, pic1_frame_* pointer variables to
2277         access stack and frame pointers. They are initially assigned to
2278         point at pic16_pc_fsr1[lh] and pic16_pc_fsr2[lh] variables and other
2279         accessing SFRs. Updated all occurences of modification of stack or
2280         frame pointer in gen.c and pcode.c,
2281         * src/pic16/ralloc.c (serialRegAssign): fixed two bugs with
2282         assigning of a literal value to pointers,
2283         * src/pic16/main.c (pic16_finiliseOptions): set pre-processor define
2284         flag STACK_MODEL_SMALL or STACK_MODEL_LARGE according to the model
2285         selected
2286
2287 2005-01-11 Vangelis Rokas <vrokas AT otenet.gr>
2288
2289         * doc/sdccman.lyx: update documentation about stack pragma, added
2290         some info for stack memory models
2291
2292 2005-01-08 Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
2293
2294         * src/pic16/gen.c (DEBUGpc): MSVC 6 does not support macro variable arguments
2295
2296 2005-01-08 Raphael Neider <rneider AT web.de>
2297
2298         * src/pic16/device.c (pic16_dump_usection): changed naming scheme for
2299           udata sections to fix bug #1097823
2300
2301 2005-01-05 Raphael Neider <rneider AT web.de>
2302
2303         * src/pic16/gen.c (genGenericShift): added handling of differently
2304           sized left operand and result
2305
2306 2005-01-04 Raphael Neider <rneider AT web.de>
2307
2308         * src/pic16/gen.c (genIfxJump): fixed inverted skips on CARRY
2309         * (genIfx): fixed (?) read from uninitialized SPIL_LOC (now assumes CARRY
2310           to hold the condition bit)
2311         * added new version of genCmp (old code available via #define)
2312         * added new version of genShiftLeft/genShiftRight in a generic
2313           way, now supports shifting by negative values
2314         * (genLeftShiftLiteral, genRightShiftLiteral): use absolute value of
2315           shiftCount (expected by genGenericShift)
2316         * src/pic16/genarith.c (genPlus): added code for adding CARRY+literal
2317         * src/pic16/pcode.c (pic16_OptimizeJumps): removed annoying statistics
2318           dump
2319         * (pic16_newpCodeOpLit): changed to cast to unsigned char (as e.g. -32766
2320           is an invalid literal too...)
2321
2322 2005-01-04 Vangelis Rokas <vrokas AT otenet.gr>
2323
2324         * src/pic16/gen.c (aopForSym, genEndFunction): applied some fixes
2325         from Raphael Neider,
2326         * src/pic16/pcode.c (pic16_newpCodeOpLit): removed casting to char
2327         for 8-bit literals. This fixes some literal operands which are sign
2328         extended to 16-bits ints when instruction needs only 8-bits.
2329
2330 2004-12-31 Paul Stoffregen <paul AT pjrc.com>
2331
2332         * device/lib/logf.c: added mcs51 assembly version
2333         * device/lib/expf.c: added mcs51 assembly version
2334         * device/lib/_logexpf.c: new shared asm code for expf and logf
2335         * device/include/math.h: add defines for assembly math library
2336         * device/lib/Makefile.in: build new _logexpf.c
2337         * device/lib/libfloat.lib: use new _logexpf.c
2338
2339 2004-12-29 Slade Rich <slade_rich AT users.sourceforge.net>
2340
2341         * src/pic/device.c
2342         * src/pic/pcode.c : adjusted internal stack and pre-allocated registers for
2343           device types which have less than 0x7f registers.
2344
2345 2004-12-29 Slade Rich <slade_rich AT users.sourceforge.net>
2346
2347         * src/pic/genarith.c : Fixed problem with subtraction where the result would not be updated when borrowing.
2348
2349 2004-12-28 Paul Stoffregen <paul AT pjrc.com>
2350
2351         * device/lib/printf_fast.c: only build on supported arch.
2352         * device/lib/printf_tiny.c: only build on supported arch.
2353         * device/lib/printf_fast_f.c: only build if asm float lib
2354         * device/lib/_fsget1arg.c: only build if asm float lib
2355         * device/lib/_fsget2args.c: only build if asm float lib
2356         * device/lib/_fsnormalize.c: only build if asm float lib
2357         * device/lib/_fsreturnval.c: only build if asm float lib
2358         * device/lib/_fsrshift.c: only build if asm float lib
2359         * device/lib/_fsswapargs.c: only build if asm float lib
2360         * device/include/stdio.h: don't provide print_fast,
2361           print_fast_f, print_tiny prototypes if --xstack used
2362
2363 2004-12-28 Maarten Brock <sourceforge.brock AT dse.nl>
2364
2365         * device/lib/sincosf.c (sincosf): don't invert bit/bool by ~
2366         * support/regression/ports/mcs51-stack-auto/spec.mk: added new _fs.. files
2367           to the SOURCES
2368
2369 2004-12-28 Paul Stoffregen <paul AT pjrc.com>
2370
2371         * device/lib/printf_fast_f.c: same as printf_fast, but
2372           with floating point enabled
2373         * device/lib/printf_fast.c: minor tweaks
2374         * device/include/stdio.h: add printf_fast_f
2375
2376 2004-12-27 Paul Stoffregen <paul AT pjrc.com>
2377
2378         * src/SDCCmain.c: make --float-reent default for mcs51
2379         * device/lib/_fsadd.c: added mcs51 assembly version
2380         * device/lib/_fssub.c: added mcs51 assembly version
2381         * device/lib/_fsmul.c: added mcs51 assembly version
2382         * device/lib/_fsdiv.c: added mcs51 assembly version
2383         * device/lib/_fseq.c: added mcs51 assembly version
2384         * device/lib/_fsneq.c: added mcs51 assembly version
2385         * device/lib/_fsgt.c: added mcs51 assembly version
2386         * device/lib/_fslt.c: added mcs51 assembly version
2387         * device/lib/_fscmp.c: shared code for fseq,fsgt,fslt,fsneq
2388         * device/lib/Makefile.in: add _fscmp to build
2389         * device/lib/libfloat.lib: add _fscmp to build
2390
2391 2004-12-27 Paul Stoffregen <paul AT pjrc.com>
2392
2393         * device/lib/_fs2slong.c: added mcs51 assembly version
2394         * device/lib/_fs2sint.c: added mcs51 assembly version
2395         * device/lib/_fs2schar.c: added mcs51 assembly version
2396         * device/lib/_fs2ulong.c: added mcs51 assembly version
2397         * device/lib/_fs2uint.c: added mcs51 assembly version
2398         * device/lib/_fs2uchar.c: added mcs51 assembly version
2399         * device/lib/_slong2fs.c: added mcs51 assembly version
2400         * device/lib/_sint2fs.c: added mcs51 assembly version
2401         * device/lib/_schar2fs.c: added mcs51 assembly version
2402         * device/lib/_ulong2fs.c: added mcs51 assembly version
2403         * device/lib/_uint2fs.c: added mcs51 assembly version
2404         * device/lib/_uchar2fs.c: added mcs51 assembly version
2405         * device/include/float.h: added #define to select asm vs c
2406
2407 2004-12-26 Paul Stoffregen <paul AT pjrc.com>
2408
2409         * device/lib/printf_fast.c: improvements to float output
2410         * device/include/float.h: add defines for assembly float library
2411         * device/lib/_fsget1arg.c: receive 1 float arg
2412         * device/lib/_fsget2args.c: receive 2 float args (reentrant)
2413         * device/lib/_fsnormalize.c: normalize a float
2414         * device/lib/_fsreturnval.c: return float, various helper routines
2415         * device/lib/_fsrshift.c: right shift a float's mantissa
2416         * device/lib/_fsswapargs.c: swap 2 floats
2417         * device/lib/Makefile.in: build these 6 new files for mcs51
2418         * device/lib/libfloat.lib: add these 6 files to the library
2419
2420 2004-12-26 Borut Razem <borut.razem AT siol.net>
2421
2422         * sim/ucsim/avr.src/arith_inst.cc: fixed bug #1088372- savr is not
2423           built by gcc 3.4.2
2424
2425 2004-12-25 Paul Stoffregen <paul AT pjrc.com>
2426
2427         * device/lib/printf_tiny.c: printf for mcs51 in only 267 bytes,
2428           and fully reentrant and register bank neutral.
2429         * device/lib/printf_fast.c: added float (not enabled by default),
2430           added compact/slower integer (also not enabled by default),
2431           improved size/speed of fast integer code, other minor changes
2432         * device/include/stdio.h, device/lib/Makefile.in,
2433           device/lib/libsdcc.lib: integrate printf_tiny into mcs51 build
2434
2435 2004-12-24 Maarten Brock <sourceforge.brock AT dse.nl>
2436
2437         * src/pic16/pcode.c: declaring variables other than at the start of a
2438           block is not supported in C by VC6.
2439
2440 2004-12-22 Vangelis Rokas <vrokas AT otenet.gr>
2441
2442         * applied a previous patch from Raphael Neider that wasn't included
2443         in the previous commits, which fixes infinite loops within jumptable
2444         improvements,
2445         * made some fixes that previous patches introduced
2446
2447 2004-12-21 Vangelis Rokas <vrokas AT otenet.gr>
2448
2449         * src/pic16/gen.c (pic16_aopGet): applied fix from Raphael Neider
2450         that fixes an issue with AOP_PCODE asmop's offset,
2451         * (pic16_popCopyReg): update instance field too,
2452         * (mov2w): modified to pic16_mov2w because it conflicts with mov2w
2453         function of pic port,
2454         * (genCmp, genAnd, genAssign),
2455         * src/pic16/genarith.c (genAddLit): some fixes from Raphael Neider,
2456
2457 2004-12-20 Vangelis Rokas <vrokas AT otenet.gr>
2458
2459         * src/SDCCast.c (gatherAutoInit): allow pic16 to emit static
2460         variables initial values to idata section,
2461         * src/SDCCicode.c (geniCodeCall): patch from ### to fix unreferenced
2462         variables in some functions. This utilizes parmBytes field of iCode
2463         structure to hold the offset of the variable in stack. (might be
2464         able to use the stack field too?)
2465         * applied patch from Raphael Neider # ### , # ###
2466         * src/pic16/glue.c (pic16emitRegularMap): fix to print static
2467         variable initial values in idata section,
2468         * src/pic16/ralloc.c (pic16_allocDirReg): don't allocate register
2469         for static variables with initial value
2470         * src/device/lib/pic16/libsdcc/float/ulong2fs.c (__ulong2fs):
2471         applied fix in while loop from Raphael Neider.
2472
2473 2004-12-19 Maarten Brock <sourceforge.brock AT dse.nl>
2474
2475         * src/ds390/gen.c (genCpl): fixed bit=~(char/bit) bugs, added warning
2476         * src/ds390/main.c (_ds390_regparm): don't pass bit params in registers
2477         * src/ds390/ralloc.c (serialRegAssign): spill bits
2478         * src/mcs51/gen.c (genCpl): fixed bit=~(char) bugs, added warning
2479         * support/Util/SDCCerr.c,
2480         * support/Util/SDCCerr.h: added warning W_COMPLEMENT for using bit=~(bit)
2481         * support/regression/tests/bitvars.c: added tests for bitwise complement(~)
2482         * support/regression/tests/bitwise.c: added test for bitwise complement(~)
2483
2484 2004-12-09 Maarten Brock <sourceforge.brock AT dse.nl>
2485
2486         * device/include/sdcc-lib.h: inserted LGPL, added includes
2487           asm/ds390/features.h and asm/mcs51/features.h
2488         * device/include/asm/default/features.h,
2489         * device/include/asm/gbz80/features.h,
2490         * device/include/asm/z80/features.h: added empty _AUTOMEM
2491           and _STATMEM
2492         * device/include/asm/ds390/features.h,
2493         * device/include/asm/mcs51/features.h: added files with defines for
2494           _AUTOMEM and _STATMEM indicating automatic and static storage class
2495         * device/lib/printf_large.c (_print_format): optimized & used _AUTOMEM
2496         * doc/sdccman.lyx: version 2.4.7, updated xstack documentation
2497         * src/SDCCicode.c (geniCodeCast),
2498         * src/SDCCsymt.c (compareType): allow cast of data-ptr to idata-ptr
2499         * src/SDCCloop.c (loopInduction): removed unused variable lr
2500         * src/SDCCopt.c (convilong, convertToFcall): moved "easy special case"
2501           to convertToFcall to include char modulo (RFE 1065037), added check
2502           if left operand is unsigned and use abs of literal value
2503         * src/SDCCpeeph.c (setFromConditionArgs): removed double quotes option
2504           as it doesn't work after conversion from peephole.def to peephole.rul
2505         * src/mcs51/gen.c (toBoolean): added check for size,
2506           (genModOneByte): optimized code for signed char modulo a literal
2507           power of 2 (thanks to Hubert Sack),
2508           (genRRC): removed unnecessary "clr c",
2509           (genRLC): replaced "add a,acc" with cheaper "rlc a"
2510         * src/mcs51/peeph.def: renamed 115 to 115.a, added rule 115.b: another
2511           jump optimization,
2512           swapped rules 256.c and 256.d,
2513           extended 256.d by using new multiple checks (thanks Erik),
2514           added rules 256.e and 256.f,
2515           updated rule 261.a and 261.b to new generated code
2516         * support/regression/tests/muldiv.c: added test div/mod by a power of 2
2517
2518 2004-12-07 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
2519
2520         * src/SDCCloop.c (basicInduction, loopInduction): fixed several
2521           induction related bugs, including first part of bug #1074377
2522
2523 2004-12-05 Vangelis Rokas <vrokas AT otenet.gr>
2524
2525         * applied patch from bug-report #1076292,
2526         * applied patches for genAnd and Goto-optimizations for Raphael
2527         Neider,
2528         * src/SDCCicode.c (printOperand): fixed !REGA source to compile and
2529         dump a less iCode information,
2530         * src/pic16/device.h (pic16_options_t): added field debgen,
2531         * src/pic16/gen.h: added macros DUMP_FUNCTION_ENTRY,
2532         DUMP_FUNCTION_EXIT, FENTRY, FENTRY2,
2533         * src/pic16/gen.c (my_powof2): renamed to pic16_my_powof2 and made
2534         puclic,
2535         * (various functions): added macros FENTRY and FENTRY2 to functions,
2536         to emit function prologue,
2537         * (various functions): fixed indentation,
2538         * (genNearPointerGet): fixed loading of FSR0,
2539         * (genPackBits): applied patch from Raphael Neider to fix updating
2540         of FSR0 and touching only the modified bits,
2541         * src/pic16/genarith.c (various functions): added macros FENTRY to
2542         emit function prologue in comments,
2543         * src/pic16/pcode.h: added functions debugf2, debugf3,
2544         * src/pic16/ralloc.c: partial fix for packForPush caused
2545         segmentation fault,
2546
2547 2004-12-04 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
2548
2549         * src/mcs51/peeph.def: added 261.a,b (16 bit rotate) by Stas Sergeev
2550           <stsp AT users.sourceforge.net> with reversed byte order
2551         * support/regression/tests/rotate.c: added (ds390 skips some tests)
2552
2553 2004-12-03 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
2554
2555         * src/z80/gen.c (genLeftShift, genRightShift): fixed second part of
2556           bug #1074377
2557         * src/hc08/gen.c (genrshFour, shiftRLong, shiftLLong),
2558         * src/mcs51/gen.c (shiftLLong): Fixed some shifting bugs Frieder found
2559
2560 2004-12-02 Slade Rich <slade_rich AT users.sourceforge.net>
2561
2562         * src/pic/pcode.c : fixed a problem where banksel was not being inserted.
2563
2564 2004-12-02 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
2565
2566         * src/SDCCpeeph.c (callFuncByName): support combined peephole rule
2567           conditions,
2568           (setFromConditionArgs): friendly operand parser for peephole rules,
2569           (operandBaseName, operandsNotRelated): new peephole condition
2570           "operandsNotRelated" -- similar to "operandsNotSame", but takes
2571           architecture specific register naming into account, handles n-way
2572           comparisons, and supports quoted literals
2573         * src/mcs51/peeph.def: restored rule 177.d with an extra condition
2574
2575 2004-12-02 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
2576
2577         * src/mcs51/peeph.def: fixed bug #1076940
2578
2579 2004-12-02 Slade Rich <slade_rich AT users.sourceforge.net>
2580
2581         * device/include/pic/pic16f877.h : added an include file for the PIC16F877 device.
2582
2583 2004-11-28 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
2584
2585         Adding support for replacing ljmps with sjmps in jumptables
2586         generated for switch statements. For now you need to set the
2587         environment variable SDCC_SJMP_JUMPTABLE to enable this.
2588         Now 4 algorithms for mcs51 jumptable generation are used:
2589         ljmp or sjmp jumptables for up to 16 cases, stack-pushing target
2590         addresses loaded pc-relative for up to 112 cases and stack-pushing
2591         target addresses loaded with offset from dptr for up to 256 cases.
2592
2593         * src/SDCCpeeph.c: added peephole conditional labelJTInRange
2594         * src/mcs51/main.c: adapted constants for switch table generation
2595         * src/mcs51/peeph.def: added 260.x for replacing ljmp with sjmp
2596
2597 2004-11-26 Maarten Brock <sourceforge.brock AT dse.nl>
2598
2599         * device/lib/printf_large.c (_print_format): fixed bug 1073386
2600         * support/regression/tests/bug1057979.c: added test for bug 1073386
2601
2602 2004-11-25 Vangelis Rokas <vrokas AT otenet.gr>
2603
2604         * src/pic16/pcode.c: fixed bug which may produce error in non-GNU
2605         compilers
2606
2607 2004-11-25 Vangelis Rokas <vrokas AT otenet.gr>
2608
2609         * src/pic16/device.h,
2610         * src/pic16/genarith.c,
2611         * src/pic16/glue.c,
2612         * src/pic16/main.c,
2613         * src/pic16/pcode.c: applied patches #1068154 and #1070213
2614
2615 2004-11-24 Vangelis Rokas <vrokas AT otenet.gr>
2616
2617         Large cummulative patch for pic16 port.
2618         * device/lib/pic16/gstack.h: NEW, user can specify its own handler
2619         to call when a stack overflow occurs,
2620         * (malloc.h): added CVS Id tag,
2621         * (pic18f{242,252,442,452}.h): added T0CONbits structure and
2622         variable,
2623         * added libc directory. The current version of LibC contains string
2624         functions, ctype functions and macros and some functions of the
2625         stdlib set (like malloc/free/atof/atoi etc...). All functions are to
2626         be extensively tested in the future. Standard disclaimer here.
2627         Library is not automatically build yet. But one can build it by
2628         invoking 'make' inside the libc directory.
2629         * added ADC library under libio. Preliminary version yet.
2630
2631         * src/pic16/gen.h: added emitTOGC macro, to toggle Carry flag,
2632         * src/pic16/gen.c (aopForRemat): asmop size is filled by
2633         aopForRemat() now and not by pic16_aopOp(),
2634         * (pic16_popGetTempReg): removed warning messgae when allocating
2635         temporary registers, its a buggy feature and will be removed,
2636         * (pic16_popGet): set register instance field in AOP_CRY,
2637         * (pic16_outBitC): fixed for results in size greater than 1,
2638         * (genUminusFloat): fixed for pic16, ported code from mcs51,
2639         * (pic16_storeForReturn): optimized return of 0,
2640         * (genCmp): experimental code for new genCmp which uses PIC18's
2641         special compare&skip instructions. Initial tests fail some times
2642         with variables grater than 1 byte in size, so new code is disabled,
2643         * (genUnpackBits, genPackBits): more optimizations in reading/writing,
2644         a single bit,
2645         * (genCast): began a fix to optimize the casting of a bit to another
2646         bit, now assigning a bitfield to another bitfield will fail, sorry,
2647         * src/pic16/main.c: disabled the use of lr-support feature,
2648         * src/pic16/pcode.h: renamed PCASMDIR to PCAD,
2649         * added some function prototypes, added function _debugf prototype,
2650         * src/pic16/pcode.c: (pic16_get_op): fixed emitting operands of register
2651         bits with offset (case PO_GPR_BIT),
2652         * (genericPrint): don't emit INFO pcode when --pcode-verbose not in
2653         command line,
2654         * (isBankInstruction): modified to return 0 for no banking instruction,
2655         and 1 for banking instruction,
2656         * (pic16_isPCinFlow): check for PCAD (assembler directives) too,
2657         caused stop processing pCodes after a inline assembly block,
2658         * (pic16_popCopyGPR2Bit): updated to match bitfields with offset,
2659         * src/pic16/pcoderegs.c: fixed a bug with eliminating some temporary
2660         registers when it shouldn't,
2661         * src/pic16/ralloc.c (allocReg): add preliminary support for
2662         supporting a limited set of temporary registers,
2663
2664 2004-11-23 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
2665
2666         * src/hc08/gen.c (genAssign, genPointerGetSetOfs, genDataPointerGet,
2667           genDataPointerSet): ensure assignments always copy in MSB to LSB
2668           order,
2669           (loadRegFromAop): recognize CLRH optimization,
2670           (genFunction): optimize RECEIVE iCodes in reentrant functions
2671
2672 2004-11-20 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
2673
2674         * src/SDCCmain.c (parseCmdLine, optionsTable[]): fixed bug with
2675           --out-fmt-s19 turning into --out-fmt-elf if s19 was already
2676           selected.
2677         * src/SDCCmain.c (linkEdit): don't define SSEG for HC08
2678         * src/hc08/main.c (_hc08_setDefaultOptions): default xdata to be
2679           contiguous with data
2680
2681 2004-11-19 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
2682
2683         * device/lib/_gptrget.c (_gptrget),
2684         * device/lib/_gptrgetc.c (_gptrgetc),
2685         * device/lib/_gptrput.c (_gptrput): _naked allows to use ret
2686           instead of sjmp to ret
2687         * src/mcs51/peeph.def: added peepholes 3.d-g and 177.g,h provided
2688           by Hubert Sack <hsack2002 AT arcor.de> in RFE #1067986, thanks
2689
2690 2004-11-18 Maarten Brock <sourceforge.brock AT dse.nl>
2691
2692         * .version: bumped version to 2.4.7
2693         * device/lib/_gptrget.c (_gptrget): is now _naked
2694         * device/lib/_gptrgetc.c (_gptrgetc): is now _naked
2695         * device/lib/_gptrput.c (_gptrput): is now _naked
2696         * src/SDCCast.c (createBlock): removed ridiculous self-assignment,
2697           (createFunction): fixed xstack
2698         * src/SDCCglue.c (emitMaps): set allocation required for bit area
2699         * src/SDCCicode.c (geniCodeCast): don't change SPEC_OCLS for literal
2700           or bit either,
2701           (geniCodeCritical): store original interrupt state in an iTemp bit
2702           var unless stack-auto
2703         * src/SDCCicode.h: added CRITICAL and ENDCRITICAL to SKIP_IC2
2704         * src/SDCCmain.c (setIncludePath): added include/target to search path
2705         * src/SDCCmem.c (allocParms): store bit vars in bit space, not overlay
2706         * src/SDCCsymt.c (checkFunction): don't check regbank for isr's against
2707           prototype,
2708           (processFuncArgs): put bit vars in bit area
2709         * src/mcs51/gen.c (saveRegisters, unsaveRegisters, genXpush, saveRBank,
2710           unsaveRBank): fixed xstack,
2711           (genFunction): bugfix: replaced (global!) reentrant with fReentrant,
2712           (genFunction, genEndFunction): fixed xstack,
2713           (genAssign): optimization don't walk backwards through mem
2714         * src/mcs51/main.c (_mcs51_regparm): don't pass bit params in registers
2715         * src/mcs51/ralloc.c (createStackSpil): spill bits to bit area
2716         * support/regression/Makefile: also make library (for stack-auto) when
2717           making "all" and added "test-mcs51-xstack-auto"
2718         * support/regression/fwk/lib/testfwk.c: added T2_isr prototype for mcs51
2719         * support/regression/ports/mcs51/T2_isr.c: added this file as a stub
2720         * support/regression/ports/mcs51/fwk.lib: added to link T2_isr stub
2721         * support/regression/ports/mcs51/spec.mk: added rules for fwk.lib
2722         * support/regression/ports/mcs51-stack-auto/spec.mk: replaced
2723           make-library by MAKE_LIBRARY
2724         * support/regression/ports/mcs51-xstack-auto/spec.mk: file added to run
2725           regression tests for xstack
2726         * support/regression/tests/bitvars.c: test for bit vars (bug 938782)
2727         * support/regression/tests/critical.c: test for critical on mcs51
2728
2729 2004-11-18 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
2730
2731         * support/regression/ports/ucz80/spec.mk: use include and lib files from
2732           built version of sdcc instead of installed version
2733
2734 2004-11-14 Maarten Brock <sourceforge.brock AT dse.nl>
2735
2736         * src/mcs51/gen.c (toBoolean): fixed bug 1065458
2737         * device/lib/Makefile.in: z80 uses printf_large.c, sprintf.c and
2738           vprintf.c now
2739         * device/lib/printf_large.c (calculate_digit): fixed bug 1057979
2740         * device/lib/z80/Makefile: don't use printf.c as it fails bug 1057979
2741           WARNING: remove device/lib/build/z80/printf.o by hand when
2742           updating from previous build!
2743         * device/lib/z80/printf.c: updated comment
2744         * support/regression/tests/bug1057979.c: test all ports now
2745         * support/regression/tests/bug1065458.c: file added
2746
2747 2004-11-12 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
2748
2749         * src/z80/gen.c (genFunction, genEndFunction): avoided generating
2750           *_start and *_end symbols for static functions
2751
2752 2004-11-11 Maarten Brock <sourceforge.brock AT dse.nl>
2753
2754         * src/SDCCmain.c (linkEdit): don't suppress crt0 if --nostdlib is used
2755           and search crt0.o in all library paths,
2756           (setIncludePath): proper handling of --nostdinc,
2757           (setLibPath): proper handling of --nostdlib
2758         * support/regression/Makefile,
2759         * support/regression/ports/ds390/spec.mk,
2760         * support/regression/ports/gbz80/spec.mk,
2761         * support/regression/ports/hc08/spec.mk,
2762         * support/regression/ports/mcs51/spec.mk,
2763         * support/regression/ports/mcs51-large/spec.mk,
2764         * support/regression/ports/mcs51-stack-auto/spec.mk,
2765         * support/regression/ports/z80/spec.mk: use include and lib files from
2766           built version of sdcc instead of installed version
2767         * doc/sdccman.lyx: fixed typo in --nostdinc
2768
2769 2004-11-10 Slade Rich <slade_rich AT users.sourceforge.net>
2770
2771         * src/pic/pcode.c,
2772         * src/pic/device.c,
2773         * src/pic/ralloc.c,
2774         * src/pic/gen.c : added support to generate code for struct bit fields.
2775
2776 2004-11-06 Maarten Brock <sourceforge.brock AT dse.nl>
2777
2778         * as/xa51/xa_version.h,
2779         * device/include/errno.h,
2780         * device/include/regc515c.h,
2781         * device/lib/_itoa.c,
2782         * device/lib/_ltoa.c,
2783         * device/lib/ser_ir_cts_rts.c,
2784         * sim/ucsim/xa.src/glob.cc,
2785         * sim/ucsim/xa.src/inst_gen.cc,
2786         * sim/ucsim/xa.src/xa_bit.cc,
2787         * sim/ucsim/xa.src/xa_sfr.cc,
2788         * sim/ucsim/z80.src/inst_dd.cc,
2789         * sim/ucsim/z80.src/inst_fdcb.cc,
2790         * support/scripts/keil2sdcc.pl,
2791         * src/pic16/pic16.dsp,
2792         * src/pic16/pic16a.dsp: corrected cvs line endings
2793         * device/lib/printf_large.c: fixed bug 1057979
2794         * src/pic16/gen.c: fixed non-C standard code
2795         * src/SDCCmain.c: made --pack-iram default, added --no-pack-iram
2796         * src/SDCCglobl.h: changed pack_iram to no_pack_iram
2797         * support/regression/ports/mcs51/support.c: reload T1 asap
2798         * doc/sdccman.lyx: updated for options --pack-iram and --no-pack-iram,
2799           pdata use and clear idata startup behaviour
2800         * support/regression/tests/bug1057979.c: added
2801
2802 2004-11-04 Maarten Brock <sourceforge.brock AT dse.nl>
2803
2804         * device/examples/ds390/ow390/ad26.h,
2805         * device/examples/ds390/ow390/cnt1d.h,
2806         * device/examples/ds390/ow390/crcutil.c,
2807         * device/examples/ds390/ow390/ownet.h,
2808         * device/examples/ds390/ow390/owsesu.c,
2809         * device/examples/ds390/ow390/swt12.h,
2810         * device/examples/ds390/ow390/swtoper.c,
2811         * device/examples/ds390/ow390/temp10.h,
2812         * device/examples/ds390/ow390/thermodl.c,
2813         * device/examples/ds390/tinitalk/tinitalk.dsp,
2814         * device/examples/ds390/tinitalk/tinitalk.dsw,
2815         * device/examples/mcs51/clock/hw.h,
2816         * device/examples/mcs51/simple2/go.bat,
2817         * device/examples/serialcomm/windows/serial.h,
2818         * device/examples/xa51/dummy.c,
2819         * device/examples/xa51/hello.c,
2820         * device/include/80c51xa.h,
2821         * device/include/at89x051.h: corrected cvs line endings
2822
2823 2004-11-04 Vangelis Rokas <vrokas AT otenet.gr>
2824
2825         * src/pic16/main.c (options): added command line --gstack, to trace
2826         stack over/under flows,
2827         * added pragma 'wparam' to allow passing first byte of function
2828         parameters via WREG, syntax is #pragma wparam my_function[, func2...]
2829         * src/pic16/gen.c (pic16_testStackOverflow): function which emits a
2830         call to __gstack_test function and sets up the symbol as extern,
2831         * (pic16_pushpCodeOp, pic16_poppCodeOp, pushw, pushaop, popaopidx,
2832         * popaop): added call to pic16_testStackOverflow,
2833         * (wParamCmp, inWparamList): NEW, test existence of a symbol in
2834         wparamList list,
2835         * (genCall, genPcall): now all parameters are passed via stack
2836         except in functions that are pass to wparam pragma in which WREG is
2837         used too,
2838         * (genPcall): REENTRANT flag is checked to see if variable prototype
2839         contains reentrant keyword, don't call a non-reentrant function, via
2840         a reentrant function pointer or vice versa, functions are never
2841         passed via WREG,
2842         * (genJumpTab): applied patch from bug #1057478 by R.Neider and
2843         D.Winkler,
2844         * src/pic16/glue.c (pic16emitRegularMap): fixed bug which caused a
2845         SIGSEGV when accessing a NULL register stucture,
2846         * (pic16_printGPointerType): modified to handle UPPER modifier for
2847         function initializers, changed prototype of function to simpler one,
2848         * (pic16_printIvalFuncPtr): check to see if function is already
2849         added in externs list,
2850         * src/pic16/pcoderegs.c (pCodeOptime2pCodes): fixed bug which
2851         optimized a move from W to SFR with a move to the same register
2852         later after a CALL,
2853         * device/lib/pic16/debug: NEW directory, contains debug features
2854         which are enabled when linking with libdebug.lib, currently command
2855         line option --gstack enables stack pointer tracing for over/under
2856         flow, corresponding sources are in debug/gstack
2857
2858 2004-10-30 Vangelis Rokas <vrokas AT otenet.gr>
2859
2860         * doc/sdccman.lyx: updated SDCC version,
2861         * (PIC16 port): update list of command line options,
2862         * src/pic16/device.h (structure pic16_options_t): added field gstack
2863         to enable stack overflow tracing on push/pops,
2864         * src/pic16/device.c (statistics structure): added statistics
2865         structure,
2866         * (pic16_dump_access, pic16_dump_usection, pic16_dump_gsection,
2867         pic16_dump_int_registers): increase statistics counters for each
2868         * variable which is encountered
2869         * (pic16_dump_usection): emit each .udata variable to its own udata
2870         section,
2871         * src/pic16/gen.c (assignResultValue, genCall, genPcall, genFunction):
2872         when macro USE_WREG_IN_FUNC_PARAMS is set to 0 pass all function
2873         parameters via stack, otherwise use old scheme,
2874         * src/pic16/glue.c (pic16_emitStatistics): dump statistics in
2875         assembler output file,
2876         * src/pic16/main.c: added command line options --gstack to enable
2877         push/pop tracing for stack overflow,
2878         * src/pic16/pcode.c (all pCodeInstruction records for PIC18F
2879         instructions): added size of each instruction,
2880         * (pic16_countInstruction): estimate size of instructions in
2881         the_pFile list, inline assembly blocks are not counted,
2882         * (pic16_FixRegisterBanking): trace previous register usage, when
2883         banksel optimizations is greater than 0, don't emit a redudant
2884         banksel directive,
2885
2886 2004-10-26 Slade Rich <slade_rich AT users.sourceforge.net>
2887
2888         * src/pic/ralloc.c : fixed inefficient code produced when compiling a complimented bit operation.
2889         * src/pic16/ralloc.c : applied same fix for pic16.
2890         * src/pic/gen.c : tidied it up a little.
2891
2892 2004-10-25 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
2893
2894         * src/mcs51/peeph.def: disabled 259.a,b for removing redundant ret,
2895         thanks to Martin Helmling for reporting (mail on sdcc-devel 2004-10-25)
2896
2897 2004-10-22 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
2898
2899         * src/SDCCast.c (reverseParms): fixed bug #1040577 (part 2)
2900
2901 2004-10-22 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
2902
2903         * device/lib/ser_ir_cts_rts.c: integer promotion caused a call to the
2904         non-reentrant function __modsint in the interrupt function (thus
2905         corrupting math operations during serial I/O)
2906         * device/lib/ser_ir.c: as above, changed buffersize
2907         * src/mcs51/peeph.def: added 259.a,b for removing redundant ret,
2908         256.c,d for zeroing
2909         * doc/Makefile: added option -t for rsync
2910
2911 2004-10-22 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
2912
2913         * src/SDCCast.h (struct ast),
2914         * src/SDCCast.c (reverseParms, copyAst): fixed bug #1040577 (part 1)
2915
2916 2004-10-20 Borut Razem <borut.razem AT siol.net>
2917
2918         * support/scripts/sdcc.nsi: added include/pic16/*.h to the setup
2919         package
2920
2921 2004-10-20 Vangelis Rokas <vrokas AT otenet.gr>
2922
2923         * device/lib/pic16/libsdcc/Makefile: added lregs directory in
2924         makefile targets,
2925         * device/lib/pic16/libsdcc/lregs/{Makefile,lrst.c,lrrest.c}: NEW
2926         support functions to replace long sequences of MOVFF's from access
2927         bank registers to stack and vice versa,
2928         * src/pic16/device.h: added new field opt_flags, where optimization
2929         flags can be set to enable certain features,
2930         * src/pic16/gen.c (pic16_emitpinfo): NEW to add PC_INFO pCode in
2931         * pBlock, (genFunction, genEndFunction): surroung loop for
2932         saving/loading used registers in stack with PC_INFO pCodes,
2933         INF_LREGS. Code in between can then be optimized by pCode optimizer
2934         to support function calls,
2935         * (genDataPointerSet): fixed bug which loaded float fields in
2936         structures with corrupt data,
2937         * src/pic16/genutils.c (debugf, _debugf): macro/function which emits
2938         in a standard way debug info on stderr. Feature used for developing
2939         and debugging only,
2940         * src/pic16/glue.c (pic16glue): reformatted, deleted some old and
2941         obsolete chunks of code,
2942         * if optimization flag OF_LR_SUPPORT was set, call pic16_OptimizeLocalRegs,
2943         * src/pic16/main.c (_pic16_parseOptions): added handler for --flr-support,
2944         * pic16/src/pcode.c (pic16_newpCodeInfo,
2945         * (pic16_newpCodeOpLocalRegs),
2946         * (pic16_convertLocalRegs2Support): NEW, to support new optimization
2947         feature,
2948         * (pic16_pCodeConstString): printing of the initial value of a
2949         symbol as a comment is inhibited since parsing was already done by
2950         copyStr and output is corrupt,
2951         * (pic16_pCode2str, genericPrint): handle PC_INFO pCode,
2952
2953 2004-10-20 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
2954
2955         * src/mcs51/ralloc.c (packRegisters): fixed bug #1044601
2956
2957 2004-10-19 Maarten Brock <sourceforge.brock AT dse.nl>
2958
2959         * as/mcs51/lkarea.c: removed old K&R style,
2960           (lnksect): changed check on boundary error,
2961           (lnksect2): changed check on boundary error,
2962           (lnksect2): extend XSTK to end of page if size = 1
2963         * as/mcs51/lkmain.c: removed old K&R style,
2964           (Areas51): create l_IRAM symbol
2965         * as/mcs51/lkmem.c (summary2): added report on PSEG and XSTK
2966         * device/lib/Makefile.in: renamed model-mcs51-reentrant to
2967           model-mcs51-stack-auto, added model-mcs51-xstack-auto
2968         * device/lib/_mullong.c: added version to be compiled with xstack
2969         * device/lib/mcs51/crtclear.asm: clear only upto --iram-size
2970         * device/lib/mcs51/crtxclear.asm: clear pdata as well
2971         * device/lib/mcs51/crtxstack.asm: fixed comment
2972         * src/SDCCglue.c: maxInterrupts defaults to 0,
2973           (emitMaps): added pdata,
2974           (createInterruptVect): (re)moved default,
2975           (glue): added pdata,
2976           (glue): moved __start__xstack to XSTK with default size 1
2977         * src/SDCCmain.c (parseCmdLine): automatically set options.intlong_rent
2978           and options.float_rent when options.stackAuto is set,
2979           (linkEdit): only write XDATA_NAME if provided on command line
2980         * src/SDCCmem.h,
2981         * src/SDCCmem.c: added pdata
2982         * src/port.h: added pdata_name to PORT
2983         * src/mcs51/gen.c (toBoolean): fixed for Acc use of aopGet,
2984           (saveRegisters, unsaveRegisters): removed usage of B,
2985           (genMinus): fixed accumulator clash,
2986           (genJumpTab): added comment, this needs another look
2987         * src/mcs51/gen.c: added check for "B in use" paranoia,
2988           added pushB() and popB()
2989         * src/mcs51/peeph.def: restart after 177.c so 177.a can get a second
2990           chance
2991         * src/avr/main.c,
2992         * src/ds390/main.c,
2993         * src/hc08/main.c,
2994         * src/mcs51/main.c,
2995         * src/pic/main.c,
2996         * src/pic16/main.c,
2997         * src/xa51/main.c,
2998         * src/z80/main.c: (reset_regparms) made void parameter explicit and
2999           added PSEG (PAG,XDATA) or NULL to port specifier
3000         * src/ds390/main.c (_ds390_genIVT): moved implemented default in here
3001         * src/mcs51/main.c (_mcs51_genIVT): moved implemented default in here,
3002           (_mcs51_genInitStartup): removed __start__xstack equ,
3003           (mcs51_port): moved xstack from XSEG (XDATA) to XSTK (PAG,XDATA)
3004         * src/pic16/device.c (pic16_dump_usection, pic16_dump_isection),
3005         * src/z80/gen.c (_rleAppend): fixed warnings
3006         * support/regression/tests/zeropad.c: added pdata test
3007         * .version: bumped to 2.4.6
3008
3009 2004-10-17 Borut Razem <borut.razem AT siol.net>
3010
3011         * support/scripts/sdcc.nsi: cross compiling of WIN32 setup.exe on Linux
3012         as a part of nightly build
3013
3014 2004-10-16 Vangelis Rokas <vrokas AT otenet.gr>
3015
3016         * src/pic16/gen.c (struct _G): added field useWreg, is set to 1 when
3017         WREG holds the first byte function parameters,
3018         * (aopForSym): take special case for symbols which are in FARSPACE
3019         but in CODESPACE too,
3020         * (assignResultValue): modified to take into account _G.useWreg,
3021         * (genCall): don't use wreg for parameter passing when function is
3022         declared as reentrant, too, added optimization INCF to stack
3023         pointer when stack parameter count is 1,
3024         * (genFunction, genEndFunction): refurnished and fixed to not using
3025         wreg for passing parameters when function has varargs or is
3026         reentrant, fixed bug with symbol name compare for generating
3027         functions in absolute address,
3028         * (pic16_storeForReturn): refurnished,
3029         * (genCmp): began writing a new version of the function, not ready
3030         yet, therefore it is disabled,
3031         * (genAssign): do not read code memory when assigning a function to
3032         a pointer function,
3033         * src/pic16/glue.c (pic16emitStaticSeg): abSym->name is defined an
3034         array of characters, not pointer,
3035         * (pic16initialComments): in debug mode emit an .ident directive for
3036         the assembler,
3037         * (_process_pragma): emit a new warning type (internal to pic16)
3038         when setting stack to default length, emit a similar warning when
3039         placing a function at absolute address and address is not word aligned
3040         * (_pic16_parseOptions): added 'return TRUE' statement,
3041         * (_pic16_linkEdit): if compiling a source, then add the source's
3042         file object, first in the list of objects to link,
3043
3044 2004-10-13 Slade Rich <slade_rich AT users.sourceforge.net>
3045
3046         * src/pic/pcoderegs.c : increased count on regUsedinRange to prevent unnecessary warning.
3047         * src/pic/main.c : removed VC warning.
3048         * src/pic/gen.c : changed comment.
3049
3050 2004-10-12 Vangelis Rokas <vrokas AT otenet.gr>
3051
3052         * device/lib/pic16/libsdcc/gptr/gptrput[234].c: an external
3053         reference to a deprecated symbol _GPTRREG was causing failure to
3054         link. Thanks G. M. Gallant for the info.
3055
3056 2004-10-12 Slade Rich <slade_rich AT users.sourceforge.net>
3057
3058         * src/pic/pcode.c : Applied a code patch supplied by Paul Ashmore in
3059         comments for Bugs item #954788.
3060
3061 2004-10-10 Vangelis Rokas <vrokas AT otenet.gr>
3062
3063         * src/pic16/device.c (pic16_dump_gsection,
3064         * pic16_groupRegistersInSection): handle symbols declared to be in
3065         access bank differently,
3066         * src/pic16/gen.c (struct _G): added field resDirect,
3067         * (aopForSym): if symbol on stack and iCode is '=' and result exists,
3068         send values read from stack directly to result and don't allocate
3069         temporary values,
3070         * (pic16_sameRegs): fixed bug that allowed MOVFF to move between
3071         same registers,
3072         * (pic16_sameRegsOfs): NEW,
3073         * (freeAsmop): if _G.resDirect is set then do not mark registers as
3074         free because they were not allocated from temporary pool,
3075         * pic16_popRegFromString): workaround to fix a problem with
3076         allocating variables twice or never,
3077         * (genGenPointerGet): using PRODL instead of FSR0H,
3078         * (genGenPointerSet): using POSTDEC1 (that is a stack location)
3079         instead of FSR0H,
3080         * (genAssign): take advantage of the _G.resDirect flag,
3081         * (genCast): around line 11844, use mov2f instead of directly
3082         MOVFF'ing between operands to account for literal values,
3083         * src/pic16/genutils.c: some new debug functions for gpsim have been
3084         added,
3085         * src/pic16/glue.c (pic16_printIvalType): fixed bug that initialized
3086         float with integer part only,
3087         * src/pic16/main.c (_process_pragma): handle pragma udata access to
3088         place variables in access bank
3089         * device/lib/pic16/libsdcc/gptr/gptr*.c: using BRA instead of GOTO,
3090         updated sources to reflect recent changes in gen.c
3091
3092 2004-10-06 Vangelis Rokas <vrokas AT otenet.gr>
3093
3094         * device/lib/pic16/libsdcc/Makefile.rules: fixed bug concerning
3095         sources that searched for headers in installation path, now the
3096         device/include/pic16 is used,
3097         * src/pic16/glue.c (pic16glue),
3098         * src/pic16/pcode.c (pCode2str, genericPrint): don't print .file or
3099         .line directives if not in debug mode, this suppresses assembler's
3100         warnings for ignored directives
3101
3102 2004-10-05 Maarten Brock <sourceforge.brock AT dse.nl>
3103
3104         * src/port.h: made reset_regparms prototype void parameter explicit.
3105         * src/SDCCsymt.c (processFuncArgs): removed argument "func".
3106         * src/mcs51/ralloc.c (packRegisters): new fix for bugs 898889 & 979599.
3107         * doc/sdccman.lyx: documented warning disabling and how to use
3108           printf_large to make it print floats.
3109         * device/include/stdbool.h: NEW
3110         * device/lib/_atof.c,
3111         * device/lib/_divuint.c,
3112         * device/lib/_divulong.c,
3113         * device/lib/expf.c,
3114         * device/lib/printf_large.c,
3115         * device/lib/sincosf.c,
3116         * device/lib/sincoshf.c: used stdbool.h, all compile with stack-auto now
3117         * device/lib/Makefile.in: added target for model-mcs51-reentrant to build
3118           a completely reentrant lib.
3119
3120 2004-10-05 Vangelis Rokas <vrokas AT otenet.gr>
3121
3122         * device/lib/pic16/libsdcc/gptr/gptr*.c: added return statements
3123         * device/include/pic16/stdio.h: fixed bug with colon
3124
3125 2004-10-03 Vangelis Rokas <vrokas AT otenet.gr>
3126
3127         * device/include/pic16/stdio.h,
3128         * device/include/pic16/stdlib.h,
3129         * device/include/pic16/math.h: NEW
3130         * device/lib/pic16/libsdcc/gptr/*.c (gptrget*, gptrput*): functions
3131         declared as _naked to reduce overhead
3132         * device/lib/Makefile.in (target port-specific-objects-pic16):
3133         changed * to *.* so to ignore the CVS directory,
3134         * src/pic16/gen.c (pic16_freeAsmop): added code to store result of
3135         stacked variables back in stack,
3136         * (genEndFunction): fixed bug reported by G.M. Gallant with stack
3137         corruption
3138
3139 2004-10-01 Vangelis Rokas <vrokas AT otenet.gr>
3140
3141         * .version: bumped version number to 2.4.5
3142         * support/Util/SDCCerr.h: added warning W_POSSBUG2.
3143         * support/Util/SDCCerr.c (messages structure): added entry for
3144         W_POSSBUG2
3145
3146         Large cumulative patch for pic16 port and libraries.
3147         * device/include/pic16/sdcc-lib.h,
3148         * device/include/pic16/stdarg.h,
3149         * device/include/asm/pic16/features.h,
3150         * device/include/lib/pic16/libsdcc/gptr/{*.c, Makefile}: NEW,
3151         * device/include/pic16/float.h: changes reentrant keyword with
3152         _FS_REENTRANT, added prototype for __fsneq, included sdcc-lib.h
3153         * device/lib/pic16/libsdcc/Makefile: added target directory gptr,
3154         updated target build-libraries to include objects from gptr,
3155         * device/lib/pic16/libsdcc/{char,int,long}/*.c: added macro
3156         _IL_REENTRANT to all function headings, included sdcc-lib.h header,
3157         * device/lib/pic16/libsdcc/float/*.c: added macro _FS_REENTRANT to
3158         all function headings,
3159         * src/SDCCmain.c: added global parameter userIncDirsSet,
3160         * (parseCmdLine): when option -I is encountered add directory to
3161         userIncDirsSet too,
3162         * src/version.awk: added space between control and long,
3163         * src/pic16/NOTES: added some notes for the port,
3164         * src/pic16/gen.c: added prototype for mov2fp function,
3165         * (fReturnpic16[]): properly named return value registers,
3166         * (_G structure): added fields stackRegSet, fregsUsed, stack_lat,
3167         * (aopForSym): added code to handle symbols with onStack flag set,
3168         symbols onStack are allocated PTRSIZE bytes,
3169         * (aopFreeAsmop): handles special case where asmops are stack objects,
3170         * (aopGet, pic16_popGet): adde cod to handle new asmop AOP_STA,
3171         * (pic16_popGetTempReg, pic16_popGetTempRegCond, pic16_popReleaseTempReg):
3172         added argument lock to trace flaws in allocating temporary registers
3173         when developing port,
3174         * (pic16_popGetLit, pic16_popGetLit2): changed lit from unsigned to signed
3175         * (pic16_popRegFromString): reenabled allocating a direct register
3176         from string,
3177         * (assignResultValue): various beautifications,
3178         * fixed bug #1037717 (patch from R. Neider & D. Wrinkler) with mistaken
3179         referenced function argument,
3180         * (genIpush): reenabled to allow stacked arguments, handles only
3181         ic->parmPush iCodes,
3182         * (genCall, genPcall): major changes to allow for variable argument
3183         functions, fixed a bug with falsely restoring stack pointer after
3184         returning from call,
3185         * (genFunction): pending code for critical function,
3186         * (shiftR1Left2ResultSigned, shiftR1Left2Result, shiftL2Left2Result,
3187         * (shiftR2Left2Result, shiftLLong) applied patch #1032155 from R.Neider,
3188         * (genNearPointerGet): fixed bug with indirect reading, was always
3189         reading from INDF0
3190         * (genGenPointerGet, genGenPointerSet): rewrote to support generic
3191         pointers,
3192         * (genAddrOf): rewrote code to take address of a stacked function parameter
3193         * (genCast): fixed casting to generic pointer type,
3194         * src/pic16/gen.h: added AOP_STA,
3195         * (struct asmop): added field stk,
3196         * src/pic16/genarith.c (pic16_AopType): handle AOP_STA,
3197         * (pic16_genPlusIncr): changed emitSKPNZ to emitSKPNZ,
3198         * (pic16_genAddLit, pic16_genPlus): applied patch #1034042 by tecodev,
3199         * (pic16_genMinus): fixed bug #1035119 with patch submitted by tecodev,
3200         * src/pic16/genutils.c (pic16_genNot): removed symbol *tlbl,
3201         * src/pic16/glue.c (pic16_printGPPointerType): fixed to support new
3202         generic pointers,
3203         * src/pic16/main.c (_pic16_initPaths): ignores default SDCC include
3204         and library paths,
3205         * (pic16_port structure): generic pointer size is set to 3,
3206         * src/pic16/pcode.c (pic16_newpCodeOpLit): correctly print literal integer,
3207         * (insertBankSwitch): cast to (char *) to prevent 64bit CPUs'
3208         compiler warning,
3209         * src/pic16/ralloc.c (allocReg): prevent allocating register when
3210         operand is an iTemp,
3211
3212 2004-09-24 Martin Helmling <mh AT octo-soft.de>
3213
3214         * debugger/mcs51/cmd.c: set PC if a symbol at pc reg is set
3215         * debugger/mcs51/simi.c: addapt new syntax of s51
3216
3217 2004-09-23 Vangelis Rokas <vrokas AT otenet.gr>
3218
3219         * src/pic16/genutils.c (pic16_genNot): fixed bug #1032265,
3220         * src/pic16/pcode.c: commented out some calls to free() in order to
3221         fix bug #989576,
3222
3223 2004-09-23 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
3224
3225         * src/SDCCicode.h,
3226         * src/SDCCicode.c (isiCodeInFunctionCall),
3227         * src/avr/ralloc.c (selectSpil),
3228         * src/pic/ralloc.c (selectSpil),
3229         * src/pic16/ralloc.c (selectSpil),
3230         * src/ds390/ralloc.c (selectSpil),
3231         * src/hc08/ralloc.c (selectSpil),
3232         * src/xa51/ralloc.c (selectSpil),
3233         * src/mcs51/ralloc.c (selectSpil): Don't use remainSpil to spill to the
3234         stack in the middle of a function call sequence (fixes bug #1020268)
3235         * src/SDCCicode.c (geniCodeJumpTable): fixed error in computing the
3236         costs associated with the minimum switch case.
3237
3238 2004-09-19 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
3239
3240         * src/SDCC.lex: fixed bug #1030549
3241
3242 2004-09-19 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
3243
3244         * src/SDCCcse.h (struct cseDef),
3245         * src/SDCCcse.c (cseBBlock, newCseDef, ifFromAddrTaken): purge CSEs
3246         over a function call if the CSE is derived from a symbol whose
3247         address has been taken (fixes bug #1029883)
3248         * support/regression/tests/bug-1029883: a new regression test for
3249         this bug
3250
3251 2004-09-18 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
3252
3253         * src/hc08/gen.c (emitinline): fixed bug #1029778
3254         * src/SDCC.y (assignment_expr): fixed the grammer so that assignment
3255         to a cast object is no longer a syntax error ("fixes" bug #1030006,
3256         and starts toward RFE #905167)
3257
3258 2004-09-17 Vangelis Rokas <vrokas AT otenet.gr>
3259
3260         * src/pic16/gen.c (mov2f): New function to move an operand to
3261         another without considering if it is a literal or a register,
3262         * (pic16_sameRegs): don't check if they are both AOP_REG,
3263         * (AccRsh): removed andmask=0 lines,
3264         * (genLeftShift): duplicated to be improved in future versions,
3265         * src/pic16/main.c (_process_pragma): emit stack default size in hex,
3266         * src/pic16/pcode.c: added POC_INFSNZW, updated inverted_op fields
3267         in POC_INCFSZ, POC_INCFSZW, POC_INFSNZ,
3268         * (pic16initMnemonics): added initialization for POC_INFSNZW,
3269         * (insertBankSwitch): fixed inserting banksel directives algorithm
3270         for instructions that follow a skip instruction, this fixes a report
3271         for broken subtraction code generation,
3272         * src/pic16/ralloc.c (deassignLRs): do not free register if current
3273         iCode is a left op, just in case result and right share the same
3274         registers
3275
3276 2004-09-16 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
3277
3278         * src/hc08/main.c,
3279         * src/hc08/gen.c (genJumpTable): more efficient jump table, supports
3280         preservation of HX
3281         * src/hc08/gen.c (pullRegs): fixed order of HX & XA pairs
3282         * src/mcs51/ralloc.c (packRegisters): removed the patch applied
3283         on 2004-09-12; it was buggy
3284
3285 2004-09-15 Bernhard Held <bernhard AT bernhardheld.de>
3286
3287         * src/SDCCsymt.h: removed RESULT_CHECK
3288         * src/SDCCast.c,
3289         * src/SDCCglue.c,
3290         * src/SDCCval.c,
3291         * src/pic/glue.c,
3292         * src/pic16/glue.c: replaced RESULT_CHECK with RESULT_TYPE_NONE
3293
3294 2004-09-15 Vangelis Rokas <vrokas AT otenet.gr>
3295
3296         * src/SDCCicode.c (piCode): applied patch from Raphael Neider,
3297         * src/pic16/device.c (pic16_assignConfigWordValues): wrong
3298         configuration values no more rejected by compiler, they are assigned
3299         to configuration registers with a warning message instead,
3300         * src/pic16/glue.c (pic16_emitConfigRegs): added +1 at top-limit of
3301         the for-loop so last conf register is emitted too,
3302         * (_pic16_initPaths): link library libsdcc.lib by default,
3303         * (_hasNativeMulFor): modified test for multiplication according to
3304         Raphael Neider's remarks. Integer multiplication is also done with
3305         support functions,
3306         * device/include/pic16/pic18fregs.h: corrected type error in while
3307         testing and including 18f6720 header file
3308
3309 2004-09-14 Vangelis Rokas <vrokas AT otenet.gr>
3310
3311         * src/pic16/device.h (pic16_options): removed field use_crt,
3312         * src/pic16/gen.c (genUnpackBits): added call to pic16_loadFSR0
3313         until an optimization to handle single bits is added,
3314         * (pic16_loadFSR0): moved before genUnpackBits,
3315         * (genAnd): some white lines removed,
3316         * src/pic16/main.c (_pic16_finaliseOptions): set omit_ivt and clear
3317         leave_reset flags in pic16_options when using crt modules,
3318
3319 2004-09-12 Maarten Brock <sourceforge.brock AT dse.nl>
3320
3321         * src/mcs51/ralloc.c (packRegisters): applied fix by Bernhard Held
3322           for bugs 898889 & 979599. Also used some safer print instructions.
3323
3324 2004-09-12 Vangelis Rokas <vrokas AT otenet.gr>
3325
3326         * src/pic16/device.h (pic16_options_t): added field use_crt,
3327         crt_name, no_crt,
3328         * src/pic16/genarith.c (pic16_genPlus): added an assert(0) line to
3329         catch a probable future bug,
3330         * src/pic16/gen.c: aopIdx function commented out,
3331         * (genAssign): commented out old code which used aopIdx,
3332         * src/pic16/glue.c (pic16glue): removed some legacy fragments of
3333         code, added if conditionals to take into account the --use-crt
3334         command line options,
3335         * src/pic16/main.c (pic16_optionsTable): added new command line
3336         options, --use-crt= and --no-crt,
3337         * (_pic16_linkEdit): now the proper crt object is added in the
3338         linker command line except than when --no-crt is specified,
3339         * src/pic16/pcode.c,
3340         * src/pic16/pcode.h: added some structures and functions for a new
3341         optimization scheme to compansate for instruction overhead between
3342         same iCodes, this scheme is currently under development and is not
3343         working in any way,
3344         * src/pic16/gen.c (genAnd): added patch provided by Aaron Collwell
3345         to && operator,
3346         * device/lib/pic16/startup/crt0i.c,
3347         * device/lib/pic16/startup/crt0iz.c: added global char variable
3348         __uflags to force the generation of an idata section
3349
3350 2004-09-12 Bernhard Held <bernhard AT bernhardheld.de>
3351
3352         * doc/Makefile,
3353         * doc/clean.mk: added support for easy creation of sdcc-doc.tar.bz2
3354         * doc/sdccman.lyx: updated sdcc version to 2.4.4
3355
3356 2004-09-10 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
3357
3358         * doc/sdccman.lyx: fixed a problem with my new index entries (thanks
3359         Frieder) and clarified the default code optimization mode
3360
3361 2004-09-10 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
3362
3363         * src/SDCC.lex (doPragma, process_pragma),
3364         * src/SDCCglobl.h (struct optimize): added pragmas "opt_code_speed",
3365         "opt_code_size", and "opt_code_balanced"
3366         * src/SDCCmain.c (optionsTable[], printOptions, scanOptionsTable):
3367         regrouped options by category, added support for category headers
3368         * src/SDCCmain.c (parseCmdLine): added options "--opt-code-speed"
3369         and "--opt-code-size"
3370         * doc/sdccman.lyx: documented these new options and pragmas
3371         * src/hc08/gen.c (AccLsh, AccRsh): take speed/size optimization
3372         preference into account
3373
3374 2004-09-08 Maarten Brock <sourceforge.brock AT dse.nl>
3375
3376         * src/SDCCicode.c (geniCodePostInc, geniCodePreInc, geniCodePostDec,
3377           geniCodePreDec): Fixed bug 904237 by generating a warning
3378         * src/SDCCerr.h,
3379         * src/SDCCerr.c: added warning W_SIZEOF_VOID
3380
3381 2004-09-09 Slade Rich <slade_rich AT users.sourceforge.net>
3382
3383         * src/pic/device.c : When no max ram set validate full memory range.
3384         * src/pic/pcode.c,
3385         * src/pic/pcodepeep.c : Copy C code comments to optimised replacement code.
3386
3387 2004-09-08 Maarten Brock <sourceforge.brock AT dse.nl>
3388
3389         * device/lib/_gptrget.c,
3390         * device/lib/_gptrput.c: updated comment
3391         * device/lib/calloc.c,
3392         * device/lib/free.c,
3393         * device/lib/malloc.c,
3394         * device/lib/realloc.c: added LGPL, made them reentrant-safe
3395         * src/SDCCcse.c (cseBBlock),
3396         * src/SDCCicode.c (printOperand, geniCodeArray),
3397         * src/SDCCicode.h (struct operand): fixed bug 868103
3398         * support/regression/tests/bug-868103.c: added
3399         * src/SDCCast.c (searchLitOp),
3400         * src/SDCCcse.h (struct cseDef),
3401         * src/SDCCglue.c (printIvalArray, spacesToUnderscores),
3402         * src/SDCCicode.h (struct operand),
3403         * src/SDCCsymt.h (struct sym_link),
3404         * src/avr/gen.c (hasInc),
3405         * src/ds390/gen.c (hasInc),
3406         * src/hc08/gen.c (genPlusIncr, hasInc),
3407         * src/mcs51/gen.c (hasInc),
3408         * src/pic16/glue.c (pic16_printIvalChar),
3409         * src/pic16/ralloc.c (regWithIdx),
3410         * src/xa51/gen.c (hasInc) : removed warnings
3411         * src/SDCCast.c (createBlock): added comment ???
3412         * src/hc08/ralloc.c: updated comments
3413
3414 2004-09-07 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
3415
3416         * doc/sdccman.lyx: updated section on switch statements, added
3417         section about semaphore locking
3418         * doc/Makefile: added option -info for latex2html
3419         * device/lib/_gptrget.c,
3420         * device/lib/_gptrput.c: __XPAGE instead of P2 in outcommented code
3421
3422 2004-09-06 Slade Rich <slade_rich AT users.sourceforge.net>
3423
3424         * src/pic/device.h,
3425         * src/pic/device.c,
3426         * src/pic/port.c : Changed PIC14 code to not set bit RP1 when
3427          maxram is less than 0x100.
3428
3429 2004-09-06 Slade Rich <slade_rich AT users.sourceforge.net>
3430
3431         * Bug fixes for PIC14 - signed RSHIFT problem. Patch supplied by Allen(agschrum).
3432
3433 2004-09-06 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
3434
3435         * src/port.h,
3436         * src/mcs51/main.c,
3437         * src/ds390/main.c,
3438         * src/z80/main.c,
3439         * src/hc08/main.c,
3440         * src/pic/main.c,
3441         * src/pic16/main.c,
3442         * src/avr/main.c,
3443         * src/xa51/main.c
3444         * src/SDCCicode.c (geniCodeJumpTable): Better logic to determine if a
3445         a jump table is the best form for a switch statement, including
3446         automatic insertion of missing cases to make the case range
3447         continuous. Developed in collaboration with Frieder Ferlemann.
3448
3449 2004-09-02 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
3450
3451         * src/hc08/ralloc.c (canDefAccResult): multi-byte shift is unsafe for
3452         accumulator result if it needs sign extension
3453
3454 2004-09-02 Maarten Brock <sourceforge.brock AT dse.nl>
3455
3456         * src/hc08/ralloc.c (canUseAccOperand): fixed comparison bug
3457
3458 2004-09-02 Maarten Brock <sourceforge.brock AT dse.nl>
3459
3460         * device/lib/gbz80/printf.c,
3461         * device/lib/z80/printf.c: removed define for NULL
3462
3463 2004-09-02 Maarten Brock <sourceforge.brock AT dse.nl>
3464
3465         * as/xa51/xa_link.c,
3466         * device/examples/ds390/ow390/ad26.c,
3467         * device/examples/ds390/ow390/cnt1d.c,
3468         * device/examples/ds390/ow390/counter.c,
3469         * device/examples/ds390/ow390/ds2480.h,
3470         * device/examples/ds390/ow390/ds2480ut.c,
3471         * device/examples/ds390/ow390/findtype.c,
3472         * device/examples/ds390/ow390/gethumd.c,
3473         * device/examples/ds390/ow390/owllu.c,
3474         * device/examples/ds390/ow390/ownetu.c,
3475         * device/examples/ds390/ow390/swt12.c,
3476         * device/examples/ds390/ow390/swtloop.c,
3477         * device/examples/ds390/ow390/temp.c,
3478         * device/examples/ds390/ow390/temp10.c,
3479         * device/examples/ds390/ow390/thermo21.c,
3480         * device/examples/ds390/ow390/tinilnk.c,
3481         * device/examples/ds390/ow390/tstfind.c,
3482         * device/examples/serialcomm/windows/serial.cpp,
3483         * device/examples/serialcomm/windows/test_serialcomm.cpp,
3484         * device/include/reg51.h: fixed line endings for cvs
3485
3486 2004-09-02 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
3487
3488         * src/hc08/ralloc.c (canDefAccResult, canUseAccOperand,
3489         packRegsForAccUse, packRegisters): new accumulator register
3490         packing algorithm
3491         * support/regression/ports/hc08/support.c (_putchar): suppress
3492         warning of unused variable
3493         * src/SDCCicode.c: added SWAP entry to codeTable
3494
3495 2004-09-01 Maarten Brock <sourceforge.brock AT dse.nl>
3496
3497         * device/lib/sprintf.c: forgot to add this file before previous commit
3498
3499 2004-09-01 Vangelis Rokas <vrokas AT otenet.gr>
3500
3501         * src/pic16/gen.c (genPackBits): added operand right in function
3502         parameters, load result directly if p_type is POINTER (that is
3503         called by genNearPointerSet)
3504         * (genUnPackBits): added operand left in function parameters,
3505         * (genNearPointerGet, genNearPointerSet): prevent the loading of
3506         FSR0 if accessing bitfields,
3507
3508 2004-08-31 Maarten Brock <sourceforge.brock AT dse.nl>
3509
3510         * device/include/stdio.h: added NULL, size_t, typedef pfn_outputchar,
3511           _print_format; updated printf, sprintf, vsprintf
3512         * device/include/asm/default/features.h: corrected comment/define
3513         * device/lib/Makefile.in: added sprintf.c
3514         * device/lib/libsdcc.lib: added sprintf module
3515         * device/lib/printf_large.c,
3516         * device/lib/vprintf.c,
3517         * device/lib/sprintf.c: totally refactored printf_large and vprintf
3518           into these 3 files
3519         * support/regression/Makefile: changed ALL_PORTS into a usefull default
3520         * support/regression/ports/mcs51-stack-auto/spec.mk: added sprintf
3521         * support/regression/tests/bug-927659.c: removed dummy putchar, enabled
3522           hc08 test
3523         * support/regression/tests/zeropad.c: define idata as data for hc08
3524
3525 2004-08-31 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
3526
3527         * src/SDCCpeeph.c (labelIsReturnOnly): support hc08 rts opcode also
3528         * src/SDCCpeeph.c (buildLabelRefCountHash): assume function entry point
3529         labels are referenced at least once (even if a reference is not found)
3530         * src/hc08/gen.c (emitcode): set isComment flag for comments
3531         * src/hc08/peeph.def: added rules 5a..5f (optimize redundant immediate
3532         loads), rules 6a..6b (optimize jumps to return)
3533
3534 2004-08-30 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
3535
3536         * device/lib/acosf.c (acosf),
3537         * device/lib/asinf.c (asinf),
3538         * device/lib/atanf.c (atanf),
3539         * device/lib/ceilf.c (ceilf),
3540         * device/lib/cosf.c (cosf),
3541         * device/lib/coshf.c (coshf),
3542         * device/lib/cotf.c (cotf),
3543         * device/lib/fabsf.c (fabsf),
3544         * device/lib/floorf.c (floorf),
3545         * device/lib/log10f.c (log10f),
3546         * device/lib/logf.c (logf),
3547         * device/lib/sinf.c (sinf),
3548         * device/lib/sinhf.c (sinhf),
3549         * device/lib/sqrtf.c (sqrtf),
3550         * device/lib/tanf.c (tanf),
3551         * device/lib/tanhf.c (tanhf),
3552         * device/include/math.h: defined _FLOAT_FUNC_REENTRANT macro and
3553         replaced all instances of "reentrant" in the library functions
3554         defined in math.h with this macro.
3555         * support/regression/tests/float_trans.c: reenabled test for hc08
3556
3557 2004-08-30 Bernhard Held <bernhard AT bernhardheld.de>
3558
3559         * device/lib/pic16/Makefile.common.in: added MODELFLAGS again, it was
3560         erroneously deleted
3561
3562 2004-08-30 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
3563
3564         * src/hc08/gen.c (loadRegFromAop): better use of clra & clrx
3565         * src/hc08/gen.c (genAnd, genOr): fixed bug with conditional when
3566         multi-byte volatile operands are used
3567         * src/hc08/gen.c (shiftRLong): fixed bug with wrong rotate direction
3568         * src/hc08/main.c (_hc08_genAssemblerPreamble): moved the built-in
3569         initialization to area GSINIT0 so that it would always precede
3570         any static initializers in GSINIT
3571         * support/regression/tests/zeropad.c: fixed idata define for hc08
3572         * support/regression/tests/bug-927659.c,
3573         * support/regression/tests/float_trans.c: disabled tests for hc08
3574         pending missing library routines
3575         * .version: increased version number to 2.4.4 - hc08 port now passes
3576         regression tests
3577
3578
3579 2004-08-29 Bernhard Held <bernhard AT bernhardheld.de>
3580
3581         * device/lib/pic16/Makefile.common.in: added $(MM) to fix `make clean`
3582         * Makefile.common.in,
3583         * as/Makefile,
3584         * as/hc08/Makefile.in,
3585         * as/mcs51/Makefile.in,
3586         * as/z80/Makefile.in,
3587         * debugger/mcs51/Makefile.in,
3588         * device/include/Makefile.in,
3589         * device/lib/Makefile.in,
3590         * doc/Makefile,
3591         * link/Makefile,
3592         * link/z80/Makefile.in,
3593         * packihx/Makefile.in,
3594         * sim/ucsim/main_in.mk,
3595         * sim/ucsim/avr.src/Makefile.in,
3596         * sim/ucsim/doc/Makefile.in,
3597         * sim/ucsim/gui.src/serio.src/Makefile.in,
3598         * sim/ucsim/hc08.src/Makefile.in,
3599         * sim/ucsim/s51.src/Makefile.in,
3600         * sim/ucsim/xa.src/Makefile.in,
3601         * sim/ucsim/z80.src/Makefile.in,
3602         * src/Makefile.in,
3603         * support/cpp2/Makefile.in,
3604         * support/librarian/Makefile,
3605         * support/makebin/Makefile: added DESTDIR to the install path proposed
3606         by "Maciej 'Agaran' Pijanka" <agaran AT pld-linux.org>
3607         * doc/sdccman.lyx: added DESTDIR documentation
3608
3609 2004-08-29 Vangelis Rokas (vrokas AT otenet.gr>
3610
3611         * src/pic16/gen.c (genFunction, genEndFunction): fixed return
3612         instruction for interrupt handlers, use fast returns when returning
3613         from high priority interrupts
3614
3615 2004-08-29 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
3616
3617         * src/hc08/gen.c (genAnd, genOr, transferAopAop, rmwWithAop): optimized
3618         code generation
3619         * src/hc08/gen.c (genrshFour, genCpl): fixed bugs
3620         * src/hc08/gen.c (genMultOneByte, genDivOneByte, genModOneByte): fixed
3621         bugs, ported much of Bernhard's code from mcs51
3622         * src/mcs51/gen.c (genSend),
3623         * src/hc08/gen.c (genSend): fixed bug with lost SEND iCodes if more
3624         than one when calling a reentrant function
3625         * device/lib/_mullong.c: defined an alternate struct layout for big
3626         endian ports (hc08)
3627
3628 2004-08-28 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
3629
3630         * src/hc08/gen.c (shiftL2Left2Result): fix for bug-500536 regression
3631         test
3632
3633 2004-08-28 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
3634
3635         * src/SDCCsymt.c (processFuncArgs): make sure parameter types
3636         are sane and complete before asking the port its prefered parameter
3637         passing method (fixes bug #1017633)
3638         * device/lib/hc08/_ret.c: added "data" storage class to _ret2
3639         and _ret3
3640
3641 2004-08-27 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
3642
3643         * src/hc08/gen.c (genPackBitsImmed, genUnpackBitsImmed): fix offset
3644         problem in bitfields >= 8 bits.
3645
3646 2004-08-27 Maarten Brock <sourceforge.brock AT dse.nl>
3647
3648         * src/SDCCsymt.c: undid changes that were not meant to be committed
3649
3650 2004-08-27 Maarten Brock <sourceforge.brock AT dse.nl>
3651
3652         * support/regression/ports/hc08spec.mk: REENTRANT must be reentrant
3653
3654 2004-08-27 Maarten Brock <sourceforge.brock AT dse.nl>
3655
3656         * src/hc08/gen.c (genUminusFloat): fixed bug where only 3 bytes were
3657           copied and wrong bit got inverted
3658
3659 2004-08-27 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
3660
3661         * src/hc08/gen.c (genPointerSet, genFarPointerSet): moved code from
3662         genFarPointerSet into genPointerSet; eliminated genFarPointerSet
3663         * src/hc08/gen.c (genPointerGet, genFarPointerGet): moved code from
3664         genFarPointerGet into genPointerGet; eliminated genFarPointerGet
3665         * src/hc08/gen.c (genPackBitsImmed): generate optimized code for
3666         assignments to bitfields at known addresses
3667         * src/hc08/gen.c (genUnpackBitsImmed): generate optimized code for
3668         reads from bitfields at known addresses
3669         * src/hc08/ralloc.c (packRegisters),
3670         * src/hc08/gen.c (genPointerGet, genUnpackBits, genUnpackBitsImmed,
3671         genhc08Code): optimize pointer get values used as conditionals
3672         * src/hc08/peeph.def: added rules 2e & 2f to optimize bit test
3673         and branch
3674
3675 2004-08-24 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
3676
3677         * src/mcs51/gen.c (genPointerGet, genNearPointerGet, genPagedPointerGet,
3678         genFarPointerGet, genCodePointerGet, genGenPointerGet, genUnpackBits),
3679         * src/mcs51/ralloc.c (packRegisters): optimize pointer get values used
3680         as conditionals
3681
3682 2004-08-22 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
3683
3684         * src/mcs51/peeph.def: peepholes 248.i-m for xdata bitfields
3685
3686 2004-08-21 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
3687
3688         * src/mcs51/ralloc.c (packRegsForOneuse): fixed bug #1012650 and some
3689         related problems
3690
3691 2004-08-21 Bernhard Held <bernhard AT bernhardheld.de>
3692
3693         * sim/ucsim/cmd.src/Makefile.in: run lex only if $(PRJDIR)/devel exists
3694
3695 2004-08-18 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
3696
3697         * src/z80/ralloc.c (packRegsForAssign): ported some bug fixes from the
3698         mcs51 port
3699
3700 2004-08-16 Slade Rich <slade_rich AT users.sourceforge.net>
3701
3702         * src/pic/gen.c: Restored fn genRet as previous fix was incorrect.
3703
3704 2004-08-14 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
3705
3706         * src/mcs51/gen.c (genJumpTab): jumptables for more than 16 switch
3707         cases use more compact code.
3708
3709 2004-08-13 Slade Rich <slade_rich AT users.sourceforge.net>
3710
3711         * src/pic/gen.c: Fixed problem with fn returning a variable bigger than a char.
3712
3713 2004-08-12 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
3714
3715         * src/SDCClrange.c (findPrevUse): fixed bug #1007371
3716
3717 2004-08-12 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
3718
3719         * src/SDCCsymt.h,
3720         * src/SDCCsymt.c (changePointer, checkDecl, addSymChain): changed
3721         parameter of changePointer() from symbol* to sym_link*
3722         * src/SDCCast.c (decorateType): call changePointer() for CAST op
3723         * src/SDCCsymt.c (compareType): void* type is castable to other
3724         pointers, but not necesarily an exact match.
3725         * src/SDCCicode.c (geniCodeCast): allow void* casting here since it
3726         is no longer blindly treated as an exact match.
3727         * src/SDCCval.c (valCastLiteral): treat missing type as cast to void
3728
3729 2004-08-12 Slade Rich <slade_rich AT users.sourceforge.net>
3730
3731         * src/pic/glue.c: Added struct initialisation fn printIvalStruct.
3732
3733 2004-08-11 Slade Rich <slade_rich AT users.sourceforge.net>
3734
3735         * src/pic/gen.c,
3736         * src/pic/pcode.c,
3737         * src/pic/ralloc.h,
3738         * src/pic/ralloc.c: Printing rIdx on internal verbose debug.
3739
3740 2004-08-10 Slade Rich <slade_rich AT users.sourceforge.net>
3741
3742         * src/pic/device.c,
3743         * src/pic/device.h,
3744         * src/pic/device.c: Will no longer exit if #pragma maxram has not been defined.
3745
3746 2004-08-06 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
3747
3748         * src/mcs51/gen.c (emitcode): fixed bug #992819
3749
3750 2004-08-05 Maarten Brock <sourceforge.brock AT dse.nl>
3751
3752         * src/pic/ralloc.c (deassignLR): allthough pic port is buggy already,
3753           there's no need to make it worse
3754
3755 2004-08-05 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
3756
3757         * src/mcs51/ralloc.c (deassignLR),
3758         * src/ds390/ralloc.c (deassignLR),
3759         * src/hc08/ralloc.c (deassignLR),
3760         * src/z80/ralloc.c (deassignLR),
3761         * src/pic/ralloc.c (deassignLR),
3762         * src/pic16/ralloc.c (deassignLR),
3763         * src/avr/ralloc.c (deassignLR),
3764         * src/SDCClrange.c (findRecursiveSucc, findRecursivePred, findPrevUse,
3765         rlivePoint): fixed another part of bug #971834
3766
3767 2004-08-04 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
3768
3769         * src/z80/main.c: enabled "critical" keyword
3770         * src/z80/mappings.i,
3771         * src/z80/gen.c (genFunction, genEndFunction): support for interrupt
3772         functions (fixes bug #979646)
3773         * doc/sdccman.lyx: added a subsection explaining z80 interrupt support
3774
3775 2004-08-04 Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
3776
3777         * src/mcs51/gen.c (genInline): Add \n for labels, not DOS/WIN dirs
3778           such as c:\mydir.
3779
3780 2004-08-03 Maarten Brock <sourceforge.brock AT dse.nl>
3781
3782         * src/SDCCloop.c (loopInvariants): fixed bug 983545, hope this
3783           doesn't disable too much optimizations
3784
3785 2004-08-02 Slade Rich <slade_rich AT users.sourceforge.net>
3786
3787         * src/pic/glue.c Disabled "WARNING: function 'main' undefined" when -S option is used.
3788
3789 2004-08-02 Maarten Brock <sourceforge.brock AT dse.nl>
3790
3791         * src/SDCClrange.c (rlivePoint): fixed bug 988568, thanks to anonymous
3792
3793 2004-08-02 Slade Rich <slade_rich AT users.sourceforge.net>
3794
3795         * src/pic/gen.c tidied up tabs
3796         * src/pic/genarith.c tidied up tabs and fixed bug with literal multiple where same register was used for hi and low byte
3797         * src/pic/main.c tidied up tabs
3798         * src/pic/pcode.c tidied up tabs and disabled verbose code generation
3799         * src/pic/pcoderegs.c tidied up tabs
3800         * src/pic/ralloc.c tidied up tabs
3801
3802 2004-07-30 Vangelis Rokas <vrokas AT otenet.gr>
3803
3804         * src/SDCCmem.c (allocGlobal): don't turn S_REGISTER storage class
3805         to S_FIXED for pic16 port and when symbol is not in level 0,
3806         allocate for S_REGISTER storage class and pic16 port, too,
3807         * src/pic16/device.h: prototype for checkSym,
3808         * src/pic16/device.c (pic16_dump_access, checkSym): NEW,
3809         * (pic16_assignConfigWordValue): test the value and the mask to
3810         validate that the value is suitable for the configuration word,
3811         * src/pic16/glue.c (pic16_printIvalFuncPtr): use 'externs' to
3812         collect extern declared symbols, don't emit symbol twice, check
3813         first if symbol is in publics set first,
3814         * src/pic16/main.c (_pic16_keywords[]): added keyword 'register',
3815         * added command line '--fstack' which enables an experimental
3816         feature for stack access, too buggy to be used yet...
3817         * src/pic16/ralloc.c (pic16_accessregWithName): NEW,
3818         * (pic16_allocDirReg): when register has storage class S_REGISTER
3819         allocate in pic16_dynAccessRegs,
3820         * device/include/pic16/pic18f????.h: modified configuration word
3821         naming convention, words started as CONFIG0H but should be CONFIG1H
3822
3823 2004-07-29 Maarten Brock <sourceforge.brock AT dse.nl>
3824
3825         * device/include/mcs51reg.h: fixed bug 970993
3826
3827 2004-07-27 Maarten Brock <sourceforge.brock AT dse.nl>
3828
3829         * added lib/calloc.c, lib/free.c, lib/realloc.c, include/stddef.h
3830         * updated lib/malloc.c, lib/libsdcc.lib, lib/Makefile.in, include/malloc.h
3831         * src/SDCC.lex (doPragma): added pragma disable_warning <nnn>
3832         * src/SDCCmain.c (parseCmdLine): added option --disable-warning <nnn>
3833         * src/ds390/gen.c (genPlusIncr): fixed bug when incrementing generic pointers
3834         * support/Util/SDCCerr.c (vwerror): suppress disabled warnings and output
3835           error/warning numbers,
3836           added function setWarningDisabled()
3837         * support/Util/SDCCerr.h: added setWarningDisabled() and MAX_ERROR_WARNING
3838         * support/regression/ports/mcs51-stack-auto/spec.mk: added dependencies
3839           _memcmp.c _memmove.c calloc.c realloc.c free.c
3840         * support/regression/tests/malloc.c: added tests for new functionality
3841         * support/regression/tests/zeropad.c: added tests for truncated initializers
3842           and initialized char arrays starting with '\x0'
3843         * src/mcs51/peeph.def: fixed regression, added peephole 177.f
3844
3845 2004-07-26 Bernhard Held <bernhard AT bernhardheld.de>
3846
3847         * support/valdiag/tests/overflow.c: fixed warning on (1 >> 40)
3848
3849 2004-07-26 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
3850
3851         * doc/sdccman.lyx: updated example in section "Absolute Addressing"
3852         * src/mcs51/peeph.def: added contributed fix for "bug" #995347 as
3853         peephole 177.e. Thanks to anonymous
3854
3855 2004-07-25 Vangelis Rokas <vrokas AT otenet.gr>
3856
3857         * src/pic16/glue.c (pic16_printIvalFuncPtr): when an extern
3858         function isn't used in the source but referenced as a
3859         variable initializer then declare it as extern in .asm file
3860
3861 2004-07-24 Vangelis Rokas <vrokas AT otenet.gr>
3862
3863         * .version: increased version number to 2.4.3
3864
3865         Adding version extension according to ChangeLog CVS revision
3866         * src/Makefile.in (target all): added dependency 'version.h'
3867         * (rule version.h): added rule to create version.h from ChangeLog,
3868         * (rule dep): added dependency version.h,
3869         * src/version.awk: AWK script to create version.h
3870         * src/SDCCdwarf2.c (dwWriteModule),
3871         * src/SDCCglue.c (initialComments),
3872         * src/SDCCmain.c (printVersionInfo): modified to write after
3873         version string the version extension number,
3874         * src/SDCCutil.c: included "version.h"
3875         * (getBuildNumber): NEW, returns SDCC's ChangeLog minor revision
3876         number,
3877         * src/SDCCutil.h: added prototype for getBuildNumber
3878
3879         * src/SDCCmain.c (parseCmdLine): when sOpt is 'I' add rest in
3880         includeDirsSet, too,
3881         * src/SDCCsymt.c (checkSClass): don't emit error when a variable,
3882         const char [] is found in function prototype...
3883
3884         * src/pic16/genarith.c (pic16_genUMult8XLit_8): optimization to omit
3885         moving to WREG with source is already in WREG,
3886         * src/pic16/gen.h: added AOP_FSR0 and AOP_FSR2 in enum,
3887         * src/pic16/gen.c (getFreePtr): updated to look for FSR0 and FSR2,
3888         * (aopForSym): stack'ed symbols are partially supported, added
3889         if-clause to support symbols in FARSPACE,
3890         * (sameRegs): added test for AOP_ACC to see if registers are same,
3891         * (pic16_freeAsmop): added case for AOP_FSR0 and AOP_FSR2,
3892         * (pic16_aopGet): added case for AOP_FSR0 and AOP_FSR2,
3893         * (pic16_popRegFromString): will not allocate a new register if it
3894         doesn't find one by name, bug may have introduced...
3895         * (pic16_popGet): added case for AOP_FSR0 and AOP_FSR2,
3896         * (genIpush): revived to use pic16 port's stack,
3897         * (genAddrOf): added incomplete case for stack'ed operand,
3898         * (genCast): optimized a pair of MOVFW,MOVWF to MOVFF
3899         * src/pic16/genutils.c (pic16_genNot): almot new vesrion for NOT,
3900         can handle multibyte operands,
3901         * src/pic16/glue.c (pic16_printIval*): some debug info added,
3902         * (pic16initialComments): added message for MPLAB compatibility
3903         mode enabled,
3904         * src/pic16/main.h: prototype for pic16_mplab_comp,
3905         * src/pic16/main.c (pic16_optionsTable): new option --mplab-comp,
3906         which enabled MPLAB compatibility mode (i.e. no #LINE/#FILE, BANKED)
3907         * (_pic16_linkEdit): NEW, handles link stage, transferred here
3908         because of increased complexity of procedure,
3909         * (_process_pragma): stack pragma changed to format 'stack pos len',
3910         emit symbol '_stack_end' to conform with gplink,
3911         * src/pic16/pcode.c (pic16_newpCodeOpBit): using pic16_regWithName
3912         to search for register,
3913         * (pic16_get_op, pic16_get_op2): added case for PO_W, PO_WREG and
3914         PO_GPR_REGISTER,
3915         * (pic16_pCode2str): when in MPLAB compatibility mode, comment out
3916         #LINE directives and replace 'B' with 'BANKED' in instruction opcodes
3917         * (pic16_getRegFromInstruction, pic16_getRegFromInstruction2): added
3918         case for PO_GPR_REGISTER,
3919         * (pic16_AnalyzeBanking): removed the old message for inc2h.pl, past
3920         dies, the new era is ahead !...
3921         * src/pic16/ralloc.c: added hash reposits pic16_dynAllocRegNames and
3922         pic16_dynInternalRegs,
3923         * (pic16_allocregWithName, pic16_procregWithName, pic16_regWithname): NEW,
3924         * (pic16_allocDirReg): minor optimizations and bug fixes,
3925         * (pic16_allocWithIdx): when searching pic16_dynProcessorRegs use fixed,
3926
3927         * device/lib/pic16/startup/crt0*.c: extern definition of stack_end,
3928         load stack and frame pointer with address of 'stack_end' symbol
3929
3930 2004-07-23 Vangelis Rokas <vrokas AT otenet.gr>
3931
3932         * src/pic16/glue.c (pic16emitStaticSeg): fixed bug with files
3933         without source code but only variable initializers
3934
3935 2004-07-20 Vangelis Rokas <vrokas AT otenet.gr>
3936
3937         * src/pic16/glue.c (pic16emitRegularMap): unused functions marked as
3938         external are not declared as extern to reduce overhead while linking
3939
3940 2004-07-20 Maarten Brock <sourceforge.brock AT dse.nl>
3941
3942         * src/SDCCast.c (decorateType): removed buggy fix for bug #979599
3943
3944 2004-07-11 Maarten Brock <sourceforge.brock AT dse.nl>
3945
3946         * src/SDCCglue.c (printIvalArray): fixed bug #984229, thanks to Phuah
3947           Yee Keat for the patch
3948         * src/SDCCast.c (decorateType): fixed bug #979599
3949         * src/ds390/gen.h: removed local fReturnSizeDS390
3950         * src/ds390/gen.c: made fReturnSizeDS390 signed short to remove a warning
3951         * src/ds390/gen.c (genAnd, genOr, genXor),
3952         * src/mcs51/gen.c (genAnd, genOr, genXor): generate better optimized code
3953
3954 2004-07-04 Vangelis Rokas <vrokas AT otenet.gr>
3955
3956         * src/SDCCmain.c (linkEdit): modifications only for pic16 port,
3957         add relFilesSet to $3, manipulate $2 to handle linking of object
3958         files without source files in command line,
3959         * device/include/pic16 (all headers): added ID location macros,
3960         * src/pic16/device.c (struct PIC16_device Pics16[]): added field
3961         entries for ID location bytes,
3962         * (pic16_assignIdByteValue): NEW,
3963         * src/pic16/device.h: new structures idRegInfo_t and idBytesInfo_t,
3964         added field dumpcalltree to pic16_options_t,
3965         * src/pic16/gen.c (genCmp): fixed bug case so a temporary register
3966         is used instead of pic16_Gstack_base_addr, check if (ifx) before
3967         emitting rFalseIfx label after check_carry label,
3968         * src/pic16/glue.c (PIC16_IS_IDLOC_ADDRESS, PIC16_IS_HWREG_ADDRESS,
3969         pic16_emitDIRegs), NEW
3970         * (pic16glue): dump .calltree file when option --calltree found,
3971         * src/pic16/main.c (OPTION _pic16_optionsTable): new option --calltree
3972         * (_pic16_genAssemblerPreamble): emit ID locations after
3973         configuration registers,
3974         * (pic16_linkCmd): modifications of the link command,
3975         * src/pic16/pcode.c (pic16_pciMOVFF): PCC_REGISTER replaces PCC_REGISTER2
3976         * (pic16_pCodeInitRegisters): don't init stack registers,
3977         * (pic16_findPrevInstruction): fixed bug,
3978         * (pic16_getRegFromInstruction, pic16_getRegFromInstruction2): fixed
3979         bug with immediate registers,
3980         * (buildCallTree): traces stack push and pop,
3981         * (pct2): dump also stack usage for each function,
3982         * src/pic16/ralloc.c (dynrIdx): registers names start from 0x00
3983         * (pic16_allocDirReg): various modifications,
3984         * (pic16_typeRegWithIdx): when searching pic16_dynProcessorRegs set
3985         fixed to 1,
3986
3987 2004-07-02 Vangelis Rokas <vrokas AT otenet.gr>
3988
3989         * src/pic16/pcode.c: removed buggy double colon
3990
3991 2004-07-01 Borut Razem <borut.razem AT siol.net>
3992
3993         * support/scripts/sdcc.nsi: added include/pic16 to setup
3994
3995 2004-06-30 Vangelis Rokas <vrokas AT otenet.gr>
3996
3997         * device/lib/Makefile.in: fixed bug in target objects-pic16,
3998         * device/lib/pic16/Makefile: prefixed with dash (-) command under
3999         target 'clean',
4000         * doc/sdccman.lyx: changed version to 2.4.2 and added some port
4001         specific command line arguments. Also added sample lkr script
4002         for placing a variable at a specific memory bank.
4003         * src/pic16/device.c (pic16_dump_gsection): NEW, to dump variables
4004         at a specific memory bank,
4005         * (pic16_dump_isection): fixed bug which caused string literals to
4006         be omitted when dumping idata section,
4007         * (pic16_groupRegistersInSection): added code to handle registers
4008         in specific memory banks,
4009         * src/pic16/gen.c: labelOffset is prefixed with pic16_ and made
4010         public, all references are renamed too,
4011         * (pic16_aopGet): removed switch cases for AOP_R0,AOP_R1,AOP_DPTR,
4012         AOP_DPTR2,
4013         * (pic16_storeForReturn): added case to handle when dest is WREG,
4014         * src/pic16/genarith.c (pic16_pCodeOpSubType): NEW,
4015         * src/pic16/glue.c (pic16emitRegularMap): when adding a register in
4016         pic16_rel_udata, check to see if that register is marked as being
4017         a member of a specific memory bank,
4018         * (pic16_printIvalCharPtr): added code to add string literals either
4019         to code or the idata sections,
4020         * src/pic16/main.c (_process_pragma): added \n to WHITE constant,
4021         also accept the 'udata' pragma,
4022         * src/pic16/main.h: new structure types sectName and sectSym
4023         * src/pic16/pcode.c: added new pCodeInstruction entry for BANKSEL
4024         * (newpCodeOpBit): added PIC_OPTYPE subt in function prototype,
4025         * (pic16_findPrevInstruction): fixed, it returned nothing,
4026         * (insertBankSwitch): fixed to emit banksel/skip and skip/banksel
4027         instruction combinations,
4028         * (pic16_FixRegisterBanking): heavily reorganised,
4029         * (pic16_AnalyzeBanking): if generating banksel directives is
4030         disabled, then don't call FixRegisterBanking at all,
4031         * src/pic16/ralloc.c (bitEQUs, aliasEQUs, allDefsOutOfRange):
4032         completely removed,
4033         * (pic16_writeUsedRegisters): added call to pic16_dump_gsection
4034
4035 2004-06-29 Bernhard Held <bernhard AT bernhardheld.de>
4036
4037         * src/SDCCglue.c (printChar): fixed bug #973350, patch provided by
4038         Phuah Yee Keat <yk.phuah AT nestac.com>
4039
4040 2004-06-28 Vangelis Rokas <vrokas AT otenet.gr>
4041
4042         * src/pic16/glue.c (pic16createInterruptVect): function now emits
4043         correctly the IVT even if it is relocated to some other location
4044
4045 2004-06-28 Vangelis Rokas <vrokas AT otenet.gr>
4046
4047         * device/include/pic16/pic18fregs.h: added case for pic18f2220.h
4048         * device/include/pic16/pic18f2220.h: NEW,
4049         * device/lib/pic16/libdev/pic18f2220.c: NEW,
4050         * device/lib/pic16/libdev/Makefile: added 18f2220 in DEVS,
4051         * src/pic16/device.c (struct Pics16): added info for 18f2220,
4052         * src/pic16/device.h (struct pic16_options): added ivt_loc and
4053         nodefaultlibs, ivt_loc is the location of the interrupt vector
4054         table, and nodefaultlibs signs that default libraries should not be
4055         linked in link stage,
4056         * src/pic16/gen.c (genFunction): relocate interrupt vector functions
4057         according to --ivt-loc argument,
4058         * src/pic16/main.c (_process_pragma): emit '_stack' as public symbol
4059         when pragma stack is found,
4060
4061 2004-06-25 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
4062
4063         * src/mcs51/peeph.def: added peepholes 182.d (return 0.0),
4064         256 (range check), 257 (do while), 258.a-f (bit banging
4065         f.e. on 3-wire SPI bus)
4066
4067 2004-06-21 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
4068
4069         * src/SDCClrange.c (findNextUseSym): fixed a live range bug with
4070         variables used exclusively within a loop
4071
4072 2004-06-21 Bernhard Held <bernhard AT bernhardheld.de>
4073
4074         * src/mcs51/gen.c (genCpl): quick fix for bug #974835
4075
4076 2004-06-21 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
4077
4078         * src/SDCClrange.c (computeClash): fixed bug #971834
4079
4080 2004-06-20 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
4081
4082         * src/mcs51/gen.c (genCmp): fixed bug #975903
4083         * src/hc08/gen.c (operandsEqu),
4084         * src/ds390/gen.c (operandsEqu),
4085         * src/z80/gen.c (operandsEqu),
4086         * src/pic/gen.c (operandsEqu),
4087         * src/pic16/gen.c (operandsEqu),
4088         * src/mcs51/gen.c (operandsEqu): fixed bug #976283
4089         * src/SDCCmain.c (parseCmdLine): report --unknown-option only once
4090
4091 2004-06-15 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
4092
4093         * src/SDCCcse.c (cseBBlock): fixed bug #966963
4094
4095 2004-06-12 Vangelis Rokas <vrokas AT otenet.gr>
4096
4097         * src/pic16/gen.c (genPointerGet): added E_INTERNAL_ERROR for
4098         default case in switch statement,
4099         * glue.c (pic16_initPointer): expr is initialised via decoarteType
4100         to eliminate problem with initialisation of pointers, but problem
4101         still exists,
4102         * (pic16_pointerTypeToGPByte): removed, no needed for pic16,
4103         * (emitStaticSegment): removed various lines emitting debug info,
4104         * src/pic16/pcode.c, src/pic16/pcode.h, src/pic16/ralloc.h:
4105         added processor registers for utilizing EEPROM,
4106         * src/pic16/pcode.c (pic16_emitDB): number of DBs emitted is not
4107         configurable and set 8
4108
4109 2004-06-08 Vangelis Rokas <vrokas AT otenet.gr>
4110
4111         * .version: increased version number to 2.4.2,
4112
4113         Cumulative patch for pic16 port
4114         * src/pic16/device.c: changed scheme to dump initial values for
4115         variables in idata segment, all print_idata* functions were removed,
4116         now the pic16_printIval* will be called,
4117         * src/pic16/glue.c: (pic16_initPointer, pic16_pointerTypeToGPByte,
4118         * _pic16_printPointerType, pic16_printPointerType,
4119         * pic16_printGPointerType, pic16_printIvalArray, pic16_printIvalStruct,
4120         * pic16_printIvalBitFields, pic16_printIvalFuncPtr, pic16_printIvalPtr:
4121         NEW, similar to the respective functions in SDCCglue.c,
4122         * src/pic16/pcode.c (pic16_emitDB, pic16_flushDB): reverted to old
4123         way, emitting hex bytes,
4124         * (pic16_emitDS): NEW, emits a string for pointer initialisation,
4125
4126 2004-06-08 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
4127
4128         * src/avr/ralloc.c (serialRegAssign),
4129         * src/xa51/ralloc.c (serialRegAssign),
4130         * src/pic/ralloc.c (serialRegAssign),
4131         * src/pic16/ralloc.c (serialRegAssign),
4132         * src/hc08/ralloc.c (serialRegAssign),
4133         * src/z80/ralloc.c (serialRegAssign),
4134         * src/ds390/ralloc.c (serialRegAssign),
4135         * src/mcs51/ralloc.c (serialRegAssign): fixed bug #964479
4136
4137 2004-06-08 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
4138
4139         * src/SDCCicode.c (geniCodeJumpTable): fixed bug #967601
4140         * src/SDCCpeeph.c (labelIsReturnOnly): fixed bug #966505
4141
4142 2004-06-07 Vangelis Rokas <vrokas AT otenet.gr>
4143
4144         Cumulative patch for pic16 port:
4145         * src/pic16/device.h (typedef PIC16_device) modified fields for
4146         defining microcontrollers,
4147         * src/pic16/device.c: added new info for all devices in Pics16 array,
4148         * src/pic16/gen.c (genPcall): fixed bug that caused the return label
4149         to be optimised out by the pCode optimiser,
4150         * src/pic16/glue.c (pic16emitRegularMap): treat implicit aggragates
4151         specially, bug reported by G.M. Gallant,
4152         * src/pic16/pcode.c (pic16_newpCodeLabelFORCE): NEW, marks a label
4153         as force'd so that cannot be optimised out by pCode optimiser,
4154         * src/pic16/pcode.c,
4155         * src/pic16/pcodepeeph.c,
4156         * src/pic16/pcoderegs.c: many modifications to re-enable peepholes,
4157         they are disabled by default, but can be enabled explicit with
4158         command argument --denable-peeps, for testing,
4159         * device/lib/pic16/startup/Makefile: added --no-peep,--pomit-config-words,
4160         --pomit-ivt in COMPILE_FLAGS
4161
4162 2004-06-06 Maarten Brock <sourceforge.brock AT dse.nl>
4163
4164         * src/pic16/pcode.c (pic16_emitDB): removed double semicolon which fails
4165           compilation on MSVC
4166
4167 2004-06-06 Maarten Brock <sourceforge.brock AT dse.nl>
4168
4169         * device/include/sab80515.h: added sfr P6, changed GPL to LGPL
4170
4171 2004-06-06 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
4172
4173         device/include/sab80515.h: fixed bug #967492, DAPR is defined at adress
4174         0xd8, but the correct adress is 0xda. Thanks to anonymous for reporting
4175
4176 2004-06-06 Vangelis Rokas <vrokas AT otenet.gr>
4177
4178         * src/pic16/device.c (pic16_assignConfigWord): fixed bug that
4179         would only assign 0x300001 register.
4180
4181 2004-06-05 Vangelis Rokas <vrokas AT otenet.gr>
4182
4183         * device/lib/pic16/startup/Makefile: added $(MODELFLAGS)
4184         in COMPILE_FLAGS. Thanks to G. Gallant for report.
4185
4186 2004-06-05 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
4187
4188         * doc/sdccman.lyx: minor changes, mentioned beta vendor support
4189         for ds80c400
4190         * src/mcs51/peeph.def: ran unexpand -a over peeph.def
4191         * src/mcs51/peeph.def: removed obsolete peephole 100.a,
4192         added peephole 254 (left shift), 255 (jump table)
4193
4194 2004-06-04 Vangelis Rokas <vrokas AT otenet.gr>
4195
4196         * device/lib/Makefile.in: removed comment line with model-pic16,
4197         * (target port-specific-objects-pic16): the libraries and objects
4198         are copied to the build directory form the device/lib/pic16/bin
4199         directory
4200
4201         Cumulative patch concerning pic16 port:
4202         * library directory has been re-organized,
4203         * added support for PIC18F1220,
4204         * added headers and library sources for chips 18f1220,18f6520,
4205         18f6620,18f6680,18f6720,18f8520,18f8620,18f8680,18f8720
4206
4207         * configuration registers setting has changed, now each supported
4208         device has a complete description of the registers it uses,
4209         * all initialisations are moved to idata sections, these section
4210         can be absolute or relocatable,
4211         * fixed initialisation of codespace variables,
4212         * fixed warning about PCLATU and gpsim,
4213         * src/pic16/gen.c (genCmp): now can handle partially iCodes with no ifx,
4214         * (genAssign): use table reads when assigning from variables in codespace,
4215         * src/pic16/glue.c (pic16emitStaticSeg): fixed to correctly initialise
4216         char/int variables placed in codespace,
4217         * (pic16_emitConfigRegs): NEW, emits a list with configuration
4218         registers set in .asm file, no need for --pomit-config-words anymore,
4219         * (pic16glue): some 8051 legacy segments are commented out
4220         (to be removed completely),
4221         * added support for alternative assembler and linker with --asm=
4222         and --link= command line arguments,
4223         * peepholes are disabled automatically in the port, no need to
4224         specify on command line,
4225         * port supports natively char/int/long multiplication, but converts
4226         all divisions to support functions,
4227         * main.c: pic16_linkCmd and pic16_asmCmd changed to force output
4228         to the file set in variable $2,
4229         * pcode.c (pic16_emitDB, pic16_flushDB): modified to print printable
4230         strings in ASCII format and not in hex,
4231         * ralloc.c (serialRegAssign): added a triplet of conditional calls
4232         to pic16_allocDirReg for IC_RESULT, IC_LEFT and IC_RIGHT so to
4233         allocate proper register if iCodes aren't temporary,
4234
4235 2004-06-02 Maarten Brock <sourceforge.brock AT dse.nl>
4236
4237         * support/regression/tests/zeropad.c: added TEST_G macro for alpha
4238
4239 2004-06-02 Vangelis Rokas <vrokas AT otenet.gr>
4240
4241         * src/pic16/gen.c (genPcall): warning about gpsim and PCLATU
4242         is commented out
4243
4244 2004-06-01 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
4245
4246         * src/hc08/gen.c (genPointerGetSetOfs): disabled optimization if
4247         computed address is reused
4248         * src/hc08/gen.c (genPackBits): fixed offsets in assignments to
4249         multi-byte bitfields
4250
4251 2004-06-01 Maarten Brock <sourceforge.brock AT dse.nl>
4252
4253         * src/z80/gen.c: (genArrayInit): must check for pointers too
4254
4255 2004-06-01 Maarten Brock <sourceforge.brock AT dse.nl>
4256
4257         * support/regression/tests/zeropad.c: never meant to commit the
4258           nestedstruct test: removed, added check for GCC version
4259
4260 2004-05-31 Maarten Brock <sourceforge.brock AT dse.nl>
4261
4262         * src/SDCCast.c (createIvalArray): fixed bug 770487 SIGSEGV
4263         * src/SDCCglue.c (emitRegularMap): fixed bug 770484 allocation problem
4264         * src/SDCCglue.c (initPointer, printIvalType, printIvalStruct,
4265           printIvalArray, printIvalFuncPtr, printIvalPtr, printIval): fixed
4266           bugs 928906 and 954082 half-empty initializers
4267         * src/SDCCsymt.h,
4268         * src/SDCCsymt.c (getAllocSize): added for above fix
4269         * src/z80/gen.c (genArrayInit): fixed bug 741044
4270         * support/regression/tests/zeropad.c: added tests
4271
4272 2004-05-30 Vangelis Rokas <vrokas AT otenet.gr>
4273
4274         * src/pic16/device.c (pic16_dump_section): corrected bug which
4275         caused some symbols of the libraries to be misplaced
4276
4277 2004-05-28 Vangelis Rokas <vrokas AT otenet.gr>
4278
4279         * src/pic16/glue.c,
4280         * src/pic16/ralloc.h,
4281         * src/pic16/ralloc.cc: prefixed IS_CONFIG_ADDRESS with PIC16_
4282         to fix conflict with pic port
4283
4284 2004-05-28 Vangelis Rokas <vrokas AT otenet.gr>
4285
4286         * src/pic16/glue.c (pic16emitStaticSeg): do not print as publics or
4287         externs configuration variables,
4288         * src/pic16/ralloc.h,
4289         * src/pic16/ralloc.cc: IS_CONFIG_ADDRESS is made public and added
4290         prototype in header, commented out some debug messages
4291
4292 2004-05-26 Vangelis Rokas <vrokas AT otenet.gr>
4293
4294         * src/pic16/glue.c,
4295         * src/pic16/main.c,
4296         * src/pic16/pcode.c: added gpasm directives #FILE/#LINE
4297         for gpasm COFF object generation. Thanks to D. Hawkins for
4298         his patch info
4299
4300 2004-05-25 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
4301
4302         * src/ds390/main.c,
4303         * src/mcs51/main.c: fixed sort order of mnemonics (thanks to Maarten
4304         Brock for spotting this)
4305         * src/ds390/gen.c (genEndFunction),
4306         * src/mcs51/gen.c (genEndFunction): always save psw if function is an
4307         interrupt handler and critical. Disable push/pop optimizations when
4308         peephole optimizations disabled.
4309
4310 2004-05-25 Vangelis Rokas <vrokas AT otenet.gr>
4311
4312         Updated pic16 library sources and headers.
4313         * device/lib/pic16/pic18f*/ ,
4314         * device/include/pic16/*.h: modified to handle structured SFR
4315         definitions
4316
4317 2004-05-25 Vangelis Rokas <vrokas AT otenet.gr>
4318
4319         * src/port.h (PORT structure): added hook initPaths, now each
4320         port can declare its own default search paths,
4321         which can been seen with the --print-search-dirs option,
4322         see pic16 port for example,
4323         * src/SDCCmain.c (setBinPaths, setIncludePaths, setLibPath,
4324         setDataPaths): test to options.printSearchDirs is ifdef'ed out,
4325         * (doPrintSearchDirs): NEW, replaces in a central manner the
4326         printing of search dirs which was split in set*Paths functions,
4327         * (main): added call to port->initPaths and doPrintSearchDirs,
4328         * src/avr/main.c,
4329         * src/ds390/main.c,
4330         * src/hc08/main.c,
4331         * src/izt/i186.c,
4332         * src/izt/tlcs900h.c,
4333         * src/mcs51/main.c,
4334         * src/pic/main.c,
4335         * src/pic16/main.c: modified port structures to reflect addition of
4336         initPaths hook,
4337
4338         * src/pic16/device.c (regCompare): registers are finally sorted by name,
4339         * (pic16_dump_section): for registers in same address reserve memory once,
4340         * src/pic16/device.h (struct PIC16_device): changed variable gen_banksel
4341         to no_banksel,
4342         * src/pic16/genarith.c (pic16_genPlus): added code to handle cases where
4343         result is greater in size than right or left,
4344         * (pic16_genUMult8X8_8): there are some cases where the result can
4345         be 16 bits size, so handle these,
4346         * src/pic16/gen.c: changed some pic16_emitpcomment to DEBUGpic16_emitcode,
4347         * (pic16_outBitC): modified to emit pcodes,
4348         * (pic16_storeForReturn): using is_LitOp to see if operand is literal
4349         or not,
4350         * (genDivOneByte): implemented algorithm to divide 8-bits,
4351         * (genCmp): uncommented goto, but issues still exist,
4352         * (genAnd): fixed a bug with variables >8bits,
4353         * (genPackBits): optimization added that uses BCF/BSF to change a
4354         single bit,
4355         * (genAssign): fixed bug when assigning floating point literals,
4356         * src/pic16/glue.c (pic16glue): added assembler directive 'code' before
4357         __sdcc_gsinit_startup label,
4358         * src/pic16/main.c (_pic16_init): removed search directory
4359         initialisations,
4360         * (_pic16_initPaths): NEW, used to initialise search directories,
4361         * (_hasNativeMulFor): support functions for all except char/int
4362         multiplication, and char division,
4363         * (PIC16_port struct): modified entry for native mul support,
4364         * src/pic16/pcode.c (insertBankSwitch): modified to support the renamed
4365         no_banksel option,
4366         * (buildCallTree): call to register_usage is ifdef'ed out,
4367
4368 2004-05-22 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
4369
4370         * device/include/string.h: applied Stas Sergeev's patch to make this
4371         header file compatible with the preprocessor -Wundef option
4372         * src/SDCCmain.c (main): abort compilation if preprocessor reports
4373         failure (fixes bug #941458)
4374
4375 2004-05-21 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
4376
4377         * src/SDCCopt.c (killDeadCode): fixed bug #907733
4378         * support/Util/SDCCerr.c: reworded E_AUTO_ASSUMED diagnostic to clarify
4379         that the variable, not the function, should be static
4380         * src/SDCCval.c (valCastLiteral): fixed bit initialization from literal
4381         to be consistent with non-literal case
4382
4383 2004-05-19 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
4384
4385         * src/SDCCast.c (isConformingBody): fixed bug #949967
4386         * src/SDCCopt.c (cnvToFcall, cnvToFloatCast, cnvFromFloatCast,
4387         convilong): fixed bug #952086
4388
4389 2004-05-18 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
4390
4391         * src/SDCCmem.c (allocVariables): fixed bug #955321
4392
4393 2004-05-18 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
4394
4395         * src/hc08/main.c (_hc08_genAssemblerEnd),
4396         * src/SDCCdwarf2.c (dwOpenFile, dwCloseFile, dwWriteFunction,
4397         dwWriteModule, dwWriteCLine, dwWriteALine, dwarf2FinalizeFile):
4398         completely eliminated the use of a temporary file
4399         * src/SDCCdwarf2.c (dwWriteAttr): fixed bug with location list offset
4400         when more than one file linked
4401         * src/SDCCloop.c (pointerAssigned): fixed bug #954163
4402
4403 2004-05-17 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
4404
4405         * src/SDCCval.c (valForArray): applied Maarten Brock's patch #947682
4406         which fixes bug #543481
4407         * support/regression/tests/bug-751703.c: fixed comments left from a
4408         cut and paste error
4409         * src/SDCCdwarf2.c (dwCloseFile): don't explicitly close a temp file
4410         * src/SDCCdwarf2.c (dwTagFromType): added bitfield support
4411         * src/SDCCdwarf2.c (dwWriteSymbolInternal): handle extern within local
4412         scopes
4413         * src/SDCCdwarf2.c (dwWriteLineNumber): line number deltas are signed
4414         * src/SDCCmain.c (processFile, parseCmdLine): non-alphanumeric chars
4415         are now changed to underscores in moduleName
4416
4417 2004-05-15 Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
4418
4419         * as/mcs51/lkmem.c: better fix for bug #954173
4420
4421 2004-05-15 Maarten Brock <sourceforge.brock AT dse.nl>
4422         committed by Frieder Ferlemann <Frieder.Ferlemann AT web.de>
4423
4424         * device/include/c8051f020.h: newly added SiLabs (Cygnal) header file
4425         * device/include/c8051f000.h,
4426         * device/include/c8051f120.h,
4427         * device/include/c8051f300.h,
4428         * device/include/c8051f310.h,
4429         * device/include/c8051f320.h: updated (added _XPAGE, CAPN, CAPP,
4430         PWM16) and detab'ed
4431
4432 2004-05-15 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
4433
4434         * doc/sdccman.lyx: mentioned sourceforge's delay between web frontend
4435         and mailing lists, doc'ed --no-peep-comments, removed reference
4436         to knoppix (newest version has no LyX/LaTeX), other minor changes
4437         * src/SDCCglue.c (glue): save 2 bytes stack space with
4438         option --main-return. The ljmp could probably be avoided too
4439
4440 2004-05-14 Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
4441
4442         * as/mcs51/lkmem.c, as/mcs51/lkaomf51: fixed bug 954173
4443
4444 2004-05-14 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
4445
4446         * src/SDCCsymt.h: added IS_AUTO(symbol) test macro
4447         * src/SDCCopt.c (isLocalWithoutDef),
4448         * src/SDCCicode.c (operandFromSymbol): use the IS_AUTO test macro
4449         which adds a !IS_EXTERN codition. Fixes bugs #877426 and #751703.
4450         (credit to Maarten Brock for patch #949363, on which this is based)
4451         * support/regression/tests/bug-751703.c: some test cases of extern used
4452         within inner scopes.
4453
4454 2004-05-14 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
4455
4456         * src/SDCCdwarf2.c (dwMatchTypes): structs must have matching
4457         SPEC_STRUCT
4458         * src/SDCCdwarf2.c (dwTagFromType): fix to handle recursive
4459         struct definitions
4460         * src/SDCCdwarf2.c (dwWriteModule, dwNewDebugSymbol, dwWriteEndFunction,
4461         dwWriteLabel): fix to create valid debugger symbols even when
4462         the module name has non-alphanumeric symbols in it
4463         * src/SDCCdwarf2.c (dwWriteSymbolInternal): better detection for
4464         when a variable's allocation has been optimized away
4465
4466
4467 2004-05-13 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
4468
4469         * src/hc08/gen.c (hc08_emitDebuggerSymbol),
4470         * src/hc08/main.c,
4471         * src/mcs51/gen.c (mcs51_emitDebuggerSymbol),
4472         * src/mcs51/main.c,
4473         * src/ds390/gen.c (ds390_emitDebuggerSymbol),
4474         * src/ds390/main.c,
4475         * src/z80/gen.c (z80_emitDebuggerSymbol),
4476         * src/z80/main.c,
4477         * src/pic/gen.c (pic14_emitDebuggerSymbol),
4478         * src/pic/main.c,
4479         * src/pic16/gen.c (pic14_emitDebuggerSymbol),
4480         * src/pic16/main.c,
4481         * src/avr/gen.c (avr_emitDebuggerSymbol),
4482         * src/avr/main.c,
4483         * src/xa51/gen.c (xa51_emitDebuggerSymbol),
4484         * src/xa51/main.c,
4485         * src/SDCCdebug.c (emitDebuggerSymbol),
4486         * src/SDCCdebug.h,
4487         * src/port.h: added a debugger struct to the port struct. Added a
4488         callback for defining debugger symbols
4489
4490         * src/SDCCast.c (createLabel),
4491         * src/SDCC.y (labeled_statement): mark all compiler generated labels
4492         with isitmp = 1
4493         * src/SDCCicode.h,
4494         * src/SDCCicode.c (geniCodeFunctionBody): added a link from the FUNCTION
4495         iCode back to the ast for the function
4496
4497         * src/hc08/ralloc.c (hc08_assignRegisters),
4498         * src/hc08/ralloc.h: define a regs struct for the stack pointer. Removed
4499         unneeded fields from the regs struct.
4500         * src/hc08/gen.c (transferRegReg, genFunction, genEndFunction): use the
4501         pushReg() & pullReg() functions instead of emitcode()
4502
4503         * src/hc08/gen.c (genLabel, genhc08Code),
4504         * src/SDCCdebug.h: Added additional debugger hooks needed for DWARF
4505
4506         * src/cdbFile.c (cdbWriteLabel, cdbWriteScope): Added stubs for unneeded
4507         debugger hooks
4508
4509         * src/hc08/gen.c (genEndFunction, genhc08Code),
4510         * src/hc08/gen.h,
4511         * src/mcs51/gen.c (genEndFunction, gen51Code),
4512         * src/mcs51/gen.h,
4513         * src/ds390/gen.c (genEndFunction, gen390Code),
4514         * src/ds390/gen.h,
4515         * src/z80/gen.c (genEndFunction, genZ80Code),
4516         * src/z80/gen.h,
4517         * src/z80/z80.h,
4518         * src/pic/gen.c (genEndFunction, genpic14Code),
4519         * src/pic/gen.h,
4520         * src/pic16/gen.c (genEndFunction, genpic16Code),
4521         * src/pic16/gen.h,
4522         * src/avr/gen.c (genEndFunction, genAVRCode),
4523         * src/avr/gen.h,
4524         * src/xa51/gen.c (genEndFunction, genXA51Code),
4525         * src/xa51/gen.h,
4526         * src/cdbFile.c (cdbWriteFunction, cdbWriteEndFunction): moved cdb
4527         specific code to cdbFile.c and out of the backend code generators
4528
4529         * as/hc08/lkmain.c (main): removed OMF51 support from link-hc08
4530         * as/hc08/lkarea.c (lnkarea): areas with NOLOAD attribute default
4531         starting address is now 0
4532
4533         * as/hc08/asm.h,
4534         * as/hc08/m08pst.c,
4535         * as/hc08/asmain.c (asmbl): implemented the .sleb128 and .uleb128
4536         assembler directive for DWARF support
4537         * as/hc08/lkelf.c (elf): only increment address when rtflg[] set
4538
4539         * src/src.dsp,
4540         * src/Makefile.in,
4541         * src/SDCCdwarf2.c: preliminary DWARF (ver 2) debugger data generator
4542
4543 2004-05-04 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
4544
4545         * src/hc08/gen.c (genJumpTab, emitcode, genhc08code): fixed stack error
4546         and inappropriate peephole optimization in jump tables
4547
4548 2004-04-30 Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
4549
4550         * as/hc08/m08pst.c,
4551         * src/SDCCglue.c: sdccopt works for the hc08 port now
4552
4553 2004-04-27 Bernhard Held <bernhard AT bernhardheld.de>
4554
4555         * src/SDCCicode.c (geniCodePreInc, geniCodePreDec): fixed bug #942130
4556
4557 2004-04-27 Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
4558
4559         * as/hc08/lkelf.c: sdccconf.h is not available in WIN32
4560
4561 2004-04-24 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
4562
4563         * src/SDCCpeeph.c (replaceRule): support empty replacement peephole
4564         rules
4565         * src/SDCCmain.c,
4566         * src/SDCCglobl.h,
4567         * src/SDCCpeeph.c (getPeepLine): new option --no-peep-comments omits
4568         comments from the peephole optimizer replacement rules
4569         * src/SDCCmem.c (printAllocInfoSeg): give actual location of spilled
4570         symbols
4571         * src/SDCCcse.c (updateSpillLocation),
4572         * src/SDCCopt.c (killDeadCode, findReqv): better tracking of register
4573         equivalents
4574         * src/hc08/ralloc.c (regTypeNum): pseudo symbols must be in DATA only
4575         * src/hc08/main.c (_hc08_finaliseOptions): made pointers to stack
4576         objects far pointers
4577
4578 2004-04-23 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
4579
4580         * src/SDCCsymt.h: a missing part of my last change
4581         * src/pic/ralloc.c (regTypeNum),
4582         * src/pic16/ralloc.c (regTypeNum): fixed statement/declaration order
4583
4584 2004-04-23 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
4585
4586         * src/SDCCicode.h,
4587         * src/SDCCicode.c (aggrToPtrDclType),
4588         * src/SDCCptropt.h,
4589         * src/SDCCptropt.c (ptrBaseRematSym, ptrPseudoSymSafe,
4590         ptrPseudoSymConvert),
4591         * src/pic/ralloc.c (regTypeNum),
4592         * src/pic16/ralloc.c (regTypeNum),
4593         * src/hc08/ralloc.c (regTypeNum),
4594         * src/ds390/ralloc.c (regTypeNum),
4595         * src/mcs51/ralloc.c (regTypeNum): check for dependancy hazards before
4596         creating pseudo symbols (fixed bugs #777768, #930484, and #933966)
4597
4598 2004-04-22 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
4599
4600         * link/z80/lkmain.c (afile),
4601         * as/hc08/lkmain.c (afile),
4602         * as/mcs51/lkmain.c (afile): fix suggested by Maarten Brock to
4603         prevent a pointer problem when a filename has no directory and
4604         no extension specified.
4605
4606 2004-04-21 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
4607
4608         * link/z80/lkmain.c (afile): allow periods in directory names
4609         * link/z80/lkmain.c (afile),
4610         * as/mcs51/lkmain.c (afile),
4611         * as/hc08/lkmain.c (afile): allow linker script file to have an
4612         extension other than ".lnk"
4613         * link/z80/lklex.c (getfid),
4614         * link/z80/lkmain.c (parse),
4615         * as/mcs51/lklex.c (getfid),
4616         * as/mcs51/lkmain.c (parse),
4617         * as/hc08/lklex.c (getfid),
4618         * as/hc08/lkmain.c (parse): Support comments in the linker script
4619         file on lines by themselves and after filenames
4620
4621 2004-04-20 Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
4622
4623         * as/link_hc08.dsp: Added as/hc08/lkelf.c to project.
4624
4625 2004-04-20 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
4626
4627         * src/z80/peeph-z80.def: removed some peephole rules that don't
4628         work with multibyte arithmetic (fixed bug #937126)
4629         * src/mcs51/peeph.def: fixed peephole rules 150-158 to apply only
4630         to registers and not global variables
4631         * src/SDCCicode.c (geniCodeAssign, ast2iCode, geniCodePostInc,
4632         geniCodePreInc, geniCodePostDec, geniCodePreDec,
4633         geniCodeLogicAndOr, geniCodeConditional): enforce strict lvalue
4634         checking for assignments not internally generated (fixed bug #931895)
4635         * src/SDCC.y (postfix_expr): ignore typedefs when looking for a
4636         structure member (fixed bug #930072)
4637
4638 2004-04-19 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
4639
4640         * src/SDCCmain.c (linkEdit),
4641         * src/hc08/main.c (_hc08_parseOptions),
4642         * as/hc08/Makefile.in,
4643         * as/hc08/aslink.h,
4644         * as/hc08/asm.h,
4645         * as/hc08/m08pst.c,
4646         * as/hc08/lkrloc.c (relr, rele),
4647         * as/hc08/lkarea.c (lnkarea)
4648         * as/hc08/lkmain.c (afile, parse),
4649         * as/hc08/lkelf.c: support for ELF output
4650         * as/hc08/lks19.c (s19),
4651         * as/hc08/lkihx.c (ihx): ignore areas with the NOLOAD attribute
4652
4653 2004-04-17 Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
4654
4655         * as/mcs51/lkihx.c: Fixed bug #899105.
4656
4657 2004-04-16 Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
4658
4659         * doc/sdccman.lyx: Added instructons on how to convert MSVC .dsw and
4660         .dsp files from Unix to DOS.
4661
4662 2004-04-16 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
4663
4664         * doc/sdccman.lyx: removed the ANSI-C noncompliance note regarding
4665         function pointers; we have been compliant for several months now.
4666         * src/mcs51/ralloc.c (serialRegAssign): enabled part of my 2004-04-13
4667         change that was accidently commented out
4668         * src/mcs51/gen.c (freeAsmop, getFreePtr, freeForBranchAsmop, genIfxJump,
4669         genCmpEq, jmpTrueOrFalse, genCmp, genAnd, genOr, genXor, genIfx): fixed
4670         bug #922319
4671
4672 2004-04-15 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
4673
4674         * src/hc08/gen.c: output of all of the internal debugging information
4675         is now controlled by the D() macro; it is disabled by default
4676
4677 2004-04-13 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
4678
4679         * src/mcs51/ralloc.c (serialRegAssign, fillGaps, allocThisReg): try
4680         harder to keep the same registers during a CAST iCode
4681         * src/SDCCopt.c (optimizeCastCast, eBBlockFromiCode): casts of char to
4682         long via int can be done in a single cast, if the signedness is
4683         correct.
4684         * support/regression/tests/bug-927659.c: fixed to avoid conflict with
4685         putchar() in tinibios.c in ds390's library
4686
4687 2004-04-12 Bernhard Held <bernhard AT bernhardheld.de>
4688
4689         * src/SDCCast.c (decorateType): fixed bug #898889,
4690         cast result of a literal complement too
4691         * src/mcs51/ralloc.c (packRegsForAssign): fixed bug #930931,
4692         fixed check for bitfields
4693
4694 2004-04-11 Bernhard Held <bernhard AT bernhardheld.de>
4695
4696         * src/SDCCicode.c (geniCodeLogic): made it static,
4697         (geniCodeLogicAndOr): added in order to fix bug #905492,
4698         (ast2iCode): fixed bug #905492
4699         * support/regression/tests/bug-905492.c: added
4700         * src/SDCCast.c (decorateType): don't decorate/process parms twice,
4701         (processParms): fixed bug #927659: don't copy parms, this will clear
4702         decorated flag
4703         * support/regression/tests/bug-927659.c: added
4704
4705 2004-03-29 Bernhard Held <bernhard AT bernhardheld.de>
4706
4707         * src/SDCCast.c (addCast): don't cast float to char
4708         * device/lib/libsdcc.lib: added _memmove
4709
4710 2004-03-28 Bernhard Held <bernhard AT bernhardheld.de>
4711
4712         * device/lib/large/Makefile: fixed parallel execution by
4713         replacing `make` by `$(MAKE)`
4714
4715 2004-03-28 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
4716
4717         * src/hc08/gen.c (genPointerGetSetOfs): correctly handle 1 byte array
4718         offsets (fixes bug #923936)
4719
4720 2004-03-26 Bernhard Held <bernhard AT bernhardheld.de>
4721
4722         * device/lib/small/Makefile: fixed parallel execution by
4723         replacing `make` by `$(MAKE)`
4724
4725 2004-03-23 Bernhard Held <bernhard AT bernhardheld.de>
4726
4727         * device/lib/vprintf.c (vsprintf): minor optimization, see bug #801101
4728
4729 2004-03-23  Scott Dattalo  <scott AT dattalo.com>
4730
4731         * src/pic/gen.c (genCpl): multi-byte complements were not working.
4732         * src/regression/Makefile: Regression test was not running.
4733
4734 2004-03-23 Bernhard Held <bernhard AT bernhardheld.de>
4735
4736         * src/SDCCast.c (resultTypePropagate, decorateType): avoid promotion to int for
4737         complement if possible
4738         * src/SDCCval.c (valComplement),
4739         * src/SDCCicode.c (operandOperation): fixed complement of literal
4740         * support/regression/tests/onebyte.c (testComplement): added
4741
4742 2004-03-22 Bernhard Held <bernhard AT bernhardheld.de>
4743
4744         * src/SDCCast.c (processParms): fixed bug #920866; decorateType() can
4745         return an optimized tree; actually replace actParm with the new tree
4746         * src/SDCCast.h: added some parantheses to remove side effects
4747         * support/regression/tests/bug-920866.c
4748
4749 2004-03-21  Scott Dattalo  <scott AT dattalo.com>
4750         * src/pic/gen.c, src/pic/gen.h, src/pic/genarith.c, src/pic/pcode.c:
4751         Bit operands were not being handled properly in the pic14 port.
4752         (now src/regression/add.c passes again).
4753
4754 2004-03-20 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
4755
4756         * src/SDCC.y (labeled_statement): case and default no longer require
4757         a following statement (RFE #893037)
4758
4759 2004-03-19 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
4760
4761         * src/mcs51/gen.c (pushSide, genSignedRightShift, genDjnz, geniPush):
4762         use MOVA macro to avoid "mov a,acc" when peephole optimizer is
4763         disabled (fixes bug #916294)
4764         * sim/ucsim/s51.src/mov.cc (inst_mov_a_addr): Throw an error on
4765         "mov a,acc"; patch provided by Lenny Story
4766         * device/include/mc68hc908gp32.h: header contibuted by Juan Gonzalez
4767
4768 2004-03-19 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
4769
4770         * src/mcs51/gen.c (genFunction): optimize RECEIVE in reentrant
4771         functions
4772         * src/ds390/gen.c (genFunction, genEndFunction),
4773         * src/ds390/ralloc.c (ds390_assignRegisters),
4774         * src/mcs51/gen.c (genFunction, genEndFunction, mcs51_assignRegisters):
4775         * src/mcs51/ralloc.c (mcs51_assignRegisters): Skip optimizing registers
4776         pushed if there are parameters passed on the stack. Also, a cleaner
4777         way to decide if r0/r1 should be pushed/popped. (Together they fix
4778         bug #918693)
4779
4780 2004-03-18 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
4781
4782         * doc/sdccman.lyx,
4783         * device/lib/mcs51/crtpagesfr.asm,
4784         * device/lib/mcs51/crtxinit.asm,
4785         * device/lib/mcs51/crtxstack.asm: Changed name of _PAGESFR to _XPAGE
4786         to avoid confusion with Si Lab's SFRPAGE register.
4787
4788 2004-03-17 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
4789
4790         * src/SDCCglue.c (emitMaps): allow public sfr variables
4791         * src/SDCCglue.c (initialComments): include compiler build date
4792         with compiler version and put the timestamp of the generated
4793         assembly file on a serperate line to be less confusing.
4794         * src/port.h: added genInitStartup hook
4795         * src/avr/main.c,
4796         * src/ds390/main.c,
4797         * src/hc08/main.c,
4798         * src/pic/main.c,
4799         * src/pic16/main.c,
4800         * src/xa51/main.c,
4801         * src/z80/main.c: genInitStartup initialize as NULL (default to
4802         historical behaviour)
4803         * src/SDCCglue.c (glue): _sdcc_gsinit_startup is now port specific.
4804         * src/mcs51/main.c: (_mcs51_genInitStartup, _mcs51_genExtraAreas,
4805         _mcs51_genXINIT, _mcs51_genRAMCLEAR): link initialization code from the
4806         library instead of hard coding it into the compiler.
4807         * support/regression/ports/mcs51-stack-auto/spec.mk,
4808         * src/SDCCmain.c (linkEdit): added mcs51.lib to the link libraries
4809         * device/lib/mcs51/Makefile,
4810         * device/lib/small/Makefile,
4811         * device/lib/large/Makefile,
4812         * device/lib/mcs51/crtpagesfr.asm,
4813         * device/lib/mcs51/crtstart.asm,
4814         * device/lib/mcs51/crtxclear.asm,
4815         * device/lib/mcs51/crtxinit.asm,
4816         * device/lib/mcs51/crtclear.asm,
4817         * device/lib/mcs51/crtxstack.asm: move most of the mcs51 C runtime
4818         startup/initialization out of src/SDCCglue.c and src/mcs51/main.c
4819         and into user configurable files.
4820         * device/lib/clean.mk: clean mcs51 directory too
4821         * support/regression/tests/longlit.c: added static to T1 declaration
4822         * doc/sdccman.lyx: documented _PAGESFR sfr for customizing pdata
4823         accesses in the initialization code
4824
4825 2004-03-14 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
4826
4827         * device/include/mc68hc908qy.h: corrected declarations of FLBPR and
4828         OSCTRIMVAL as noted in bug #916008
4829
4830 2004-03-14 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
4831
4832         * src/SDCCloop.c (basicInduction): fixed bug with loop induction
4833         in loops with multiple exits (reported as incorrect registers
4834         used by Martin Helmling in Sdcc-user list)
4835
4836 2004-03-12 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
4837
4838         * src/ds390/main.c (_ds390_genAssemblerPreamble): cosmetic change,
4839         made ds390 register extensions look less like error messages
4840
4841 2004-03-12 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
4842
4843         * src/SDCCglue.c (printIvalPtr): fixed bug with pointer initializer
4844         reported by Adam Wozniak in Sdcc-user list
4845
4846 2004-03-10 Bernhard Held <bernhard AT bernhardheld.de>
4847
4848         * src/SDCCast.c (decorateType): fixed with bug and promotion in
4849         arithmetic optimizations, added debug output
4850
4851 2004-03-09 Bernhard Held <bernhard AT bernhardheld.de>
4852
4853         * device/lib/time.c (mktime): fixed bug reported by Bert Thomas
4854         * sdcc.spec: updated and split sdcc into 3 rpms
4855         * src/SDCCast.c (decorateType): &|^ don't need addCast(); addCast() is
4856         needed for literals of LEFT_OP and '+'
4857         * src/SDCCicode.c (geniCodeLogic): I must have been braindead when I
4858         introduced RESULT_TYPE_NOPROM
4859         (geniCodeMultiply): fixed logic for decision if mul is optimized to
4860         left shift
4861         * src/SDCCsymt.c (computeType): op is int; added RESULT_TYPE_OTHER;
4862         limited promotion to int only for '*'
4863         * src/SDCCsymt.h (computeType): op is int, removed RESULT_TYPE_NOPROM
4864
4865 2004-03-09 Hans Dorn <hjdorn AT users.sourceforge.net>
4866
4867         * src/pic16/gen.c (genSkip),
4868         (genc16bit2lit), (gencjneshort): commented out
4869         (is_LitOp): new helper function, checks operand type
4870         (genCmpEq): rewritten
4871
4872 2004-03-08 Bernhard Held <bernhard AT bernhardheld.de>
4873
4874         * support/regression/tests/bug-908454.c: added
4875
4876 2004-03-07 Bernhard Held <bernhard AT bernhardheld.de>
4877
4878         * src/SDCCast.c (addCast): fixed bug #908454 by promoting bits to char
4879         * src/SDCCicode.c (usualBinaryConversions): op needs int type
4880         (geniCodeCast): cosmetic, don't preserve bit storage class
4881         (geniCodeLeftShift): added promotion
4882         (geniCodeLogic): fixed regression
4883         * src/SDCCsymt.c (computeTypeOr): accept bits too
4884         (compareType): 2nd part of fix for bug #908454, needed for bitfields
4885
4886 2004-03-07  Borut Razem <borut.razem AT siol.net>
4887
4888         * support/Util/findme.c: alloca() replaced with malloc()/free() pair
4889
4890 2004-03-06 Vangelis Rokas <vrokas AT otenet.gr>
4891
4892         * src/pic16/ralloc.c (pic16_genPackRegisters): reverted to old
4893         version of pic16_genPackRegisters which does not check if ic is a
4894         CAST operator,
4895         * src/pic16/gen.c (ifxForOp): disabled new and untested code in
4896         function cause string1.c regression test fails
4897
4898 2004-03-06 Bernhard Held <bernhard AT bernhardheld.de>
4899
4900         * sim/ucsim/configure.in,
4901         * sim/ucsim/configure,
4902         * sim/ucsim/doc/Makefile.in: use docdir
4903         * src/SDCC.y: fixed sbit atrributes
4904         * src/SDCCast.c (getResultTypeFromType): added support for bitfields
4905         * src/SDCCast.c (decorateType): |^& need special promotion handling
4906         * src/SDCCast.h,
4907         * src/SDCCsymt.h: moved definition of RESULT_TYPE
4908         * src/SDCCsymt.h (computeType),
4909         * src/SDCCicode.c: computeType() needs op
4910         * src/SDCCsymt.c (checkTypeSanity),
4911         * doc/sddman.lyx: "plain" bitfields are unsigned
4912         * src/SDCCsymt.c (computeTypeOr): added
4913         * src/SDCCsymt.c (computeType): added support for bitfields, fixed
4914         |^& ops
4915         * src/SDCCval.c (val*): computeType() needs op
4916         * src/SDCCval.c (valCastLiteral): fixed casting of bitfields
4917         * support/regression/tests/onebyte.c: added tests for |^&
4918
4919 2004-03-06 Hans Dorn <hjdorn AT users.sourceforge.net>
4920
4921         * src/pic16/gen.c: (genpic16Code) use copy of printILine's output
4922         for writing icode into asm output.
4923
4924 2004-03-05 Vangelis Rokas <vrokas AT otenet.gr>
4925
4926         * src/pic16/device.c: added some debug lines enabled
4927         with macro DEBUG_CHECK,
4928         * src/pic16/genarith.c: more debug in genPlus,
4929         * (pic16_genUMult8XLit_16, pic16_genUMult8X8_16): removed,
4930         * (pic16_genUMult16X16_16, pic16_genUMult16XLit_16): NEW,
4931         * src/pic16/gen.c: added prototypes for pic16_genMult16X16_16,
4932         * (aopForSym): onStack symbols are re-placed in data memspace,
4933         and onStack flag is cleared,
4934         * (pic16_popGetTempReg, pic16_popReleaseTempReg): modified to
4935         copy temporary pcodeop,
4936         * (genPcall): added warning for not updating PCLATU,
4937         * (genFunction): removed test with IFFUNC_CALLEESAVES, its
4938         always true for pic16 port,
4939         * (genMultOneWord): NEW, supports integer multiplication,
4940         * (genMult): modified to call genMultOneWord,
4941         * (ifxForOp): added warning when return NULL,
4942         * src/pic16/glue.c (pic16emitRegularMap): symbol implicit
4943         flag is set before call to operandFromSymbol for implicit
4944         added structures,
4945         * src/pic16/main.c (_pic16_finaliseOptions): options.float_rent,
4946         options.intlong_rent are set by default,
4947         * (_hasNativeMulFor): modified to allow port generation of integer
4948         multiplication,
4949         * src/pic16/ralloc.c (pic16_allocDirReg): commented out line which
4950         set regtype to REG_SFR for all registers, restricting seting the
4951         accessBank flag for registers 0<= r < 0x80 and 0xf80<=r<=0xfff,
4952
4953 2004-03-05 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
4954
4955         * src/mcs51/peephole.def: added 251.b and 253.x. 253.x are applied
4956         more than 500 times in the regression tests
4957
4958 2004-03-05 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
4959
4960         * support/Util/SDCCerr.h,
4961         * support/Util/SDCCerr.c,
4962         * src/SDCC.y (struct_or_union_specifier, enum_specifier,
4963         enumerator_list),
4964         * src/SDCCsymt.c (addSymChain): show location of oriignal definition
4965         for symbol conflicts.
4966         * support/valdiags/tests/enum.c,
4967         * support/valdiags/tests/tentdecl.c,
4968         * support/valdiags/tests/struct.c: expect possible error messages
4969         referring to original symbol definitions.
4970         * src/SDCC.y (struct_or_union_specifier, struct_declarator),
4971         * src/SDCCsymt.h,
4972         * src/SDCCsymt.c (promoteAnonStructs): support anonymous struct/union
4973
4974 2004-03-03 Hans Dorn <hjdorn AT users.sourceforge.net>
4975
4976         * src/pic16/gen.c (gencjne): fixed for right=REG / left=LIT
4977
4978 2004-02-03 Vangelis Rokas <vrokas AT otenet.gr>
4979
4980         * src/pic16/ralloc.c (newReg): fixed bug #908929
4981
4982 2004-03-02 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
4983
4984         * src/ds390/gen.c: added missing #include "main.h"
4985
4986 2004-03-02 Vangelis Rokas <vrokas AT otenet.gr>
4987
4988         * src/pic16/device.c (checkAddSym): NEW, adds a symbol to set while
4989         checking if symbol is already in set,
4990         * src/pic16/device.h: prototype for checkAddSym,
4991         * src/pic16/gen.c: (_G): added entry interruptvector,
4992         * (assignResultValue): removed some commented out lines,
4993         * (genFunction): check for ISR via sym->type, absolute section for
4994         interrupt code is created via a new pBlock, the goto instruction is
4995         placed now correctly at the interrupt vector position, changed all
4996         references from ivec to _G.interruptvector,
4997         * WREG,STATUS,BSR are not saved in stack upon an entry to interrupt
4998         is the interrupt is a high priority one, same for return from ISR,
4999         * src/pic16/glue.c: changed all calls of addSetHead for publics and
5000         externs to calls of checkAddSym,
5001         * src/pic16/pcode.c (pic16_pBlockConvert2*): emit warning when
5002         pic16_pcode_verbose flag is set,
5003         * src/pic16/pcode.h: extern to pic16_pcode_verbose,
5004         * src/pic16/pcoderegs.c: message about how many registers are saved
5005         will only be emitted if pic16_pcode_verbose flag is set,
5006
5007 2004-03-02 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
5008
5009         * src/ds390/ralloc.h,
5010         * src/ds390/ralloc.c (ds390_regWithIdx),
5011         * src/ds390/gen.c (emitcode),
5012         * src/ds390/main.h,
5013         * src/ds390/main.c (instructionSize, ds390newAsmLineNode, updateOpRW,
5014         ds390opcodeCompare, asmLineNodeFromLineNode, getInstructionSize,
5015         ds390operandCompare, getRegsRead, getRegsWritten,
5016         initializeAsmLineNode): customized instruction size calculation for
5017         ds390, started basis for some register optimizations
5018         * src/ds390/gen.c (gen390Code, emitcode): associate iCodes with
5019         corresponding assembly output
5020         * src/ds390/gen.c (genFunction, genEndFunction): added case to handle
5021         missing push/pop of r0/r1. Optimized push/pops
5022
5023 2004-03-01 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
5024
5025         * src/mcs51/main.c (instructionSize): fixed ACALL size
5026         * src/mcs51/main.c (updateOpRW): fixed bug with @dptr, @a+dptr operands
5027
5028 2004-03-01 Vangelis Rokas <vrokas AT otenet.gr>
5029
5030         * src/pic16/device.c (pic16_dump_section): fixed a bug that allowed
5031         the sorting of rlist with NULL elements
5032         * (print_idataType, print_idata): NEW to create idata sections
5033         * src/pic16/device.h: idataSymSet new variable
5034         * src/pic16/gen.c (genFunction): fixed some bugs in string
5035         comparing, improved the absolute section creation for ISRs,
5036         added FSR0L/FSR0H in registers that are saved in an ISR,
5037         * (genInline): fixed the processing of inline snippets,
5038         now they undergo no process by the peephole optimizer
5039         * src/pic16/glue.c (pic16emitRegularMap): symbols with initialiser
5040         are placed in idataSymSet,
5041         * (pic16emitStaticSeg): extern symbols are added in externs,
5042         * src/pic16/ralloc.c (pic16_allocDirReg): work around to reduce bank
5043         switching when aboslute variables are placed in access bank memory
5044         * (pic16_writeUsedRegs): added call to pic16_dump_idata,
5045         * (packRegsForSupport,packRegsForAccUse,packRegsForOneuse):
5046         commented out with #if,
5047         * (pic16_packRegisters): reintroduce the check for CAST because some
5048         symbols are not correctly handled,
5049         * src/pic16/pcode.h: changed the definition of pCodeAsmDir to hold a
5050         pCodeInstruction instead of pCode,
5051         * src/pic16/pcode.c (pic16_newpCodeAsmDir): modified for the new
5052         pCodeAsmDir definition,
5053         * (pic16_pCode2str, genericPrint): when an AsmDir pcode has a NULL
5054         directive, then the argument directive is emitted without the leading
5055         tab, hack for inline labels which must be in the first column,
5056         * (compareLabel,pic16_findNextInstruction),
5057         * (pic16_findPrevInstruction): added case for PO_ASMDIR,
5058         * (insertBankSwitch): modified for the new pCodeAsmDir,
5059
5060 2004-03-01 Hans-Juergen Dorn <hans.dorn AT apl-landau.de>
5061         patch applied by Vangelis Rokas <vrokas AT otenet.gr>
5062
5063         * src/pic16/gen.c (pic16_popGet): case PO_DIR, adds the offset to
5064         instance,
5065         * (pushSide): commented out with #if,
5066         * (assignResultValue): fixed some typos in saving
5067         registers,
5068         * (genPcall): FIXED and sync'ed with genCall,
5069         * (genDataPointerGet,genDataPointerSet): using offset not leoffset
5070         * (genNearPointerGet): fixed to handle some more cases,
5071         implementation scheme via table reads,
5072         * (genConstPointerGet): modified to access code memory correct,
5073         * (genCodePointerGet,genNearPointerSet,genGenPointerSet): modified
5074         and improved to handle some cases
5075         * glue.c (printIvalType,printIvalChar,emitStaticSeg): use "DB"
5076         instead of "RETLW" for init data
5077         * src/pic16/ralloc.c (pic16_allocDirReg): warning when a symbol is
5078         not IN_DIRSPACE, work around to reduce bank switching when aboslute
5079         variables are placed in access bank memory (<0x80 and >=0xf80),
5080         * src/pic16/pcode.c: added SFRs TBLPTR, TABLAT, added opcodes TBLRD,
5081         TBLRD_POSTINC,TBLRD_POSTDEC,TBLRD_PREINC,TBLWT,TBLWT_POSTINC,
5082         TBLWT_POSTDEC,TBLWT_PREINC
5083         * Fixed initialisation of BSR, set "alias" for SSAVE to "0"
5084         * (pic16_emitDB,pic16_flushDB): New functions to generate "DB"
5085         directives
5086         * (pic16_pCodeConstString): use "DB" instead of "RETLW"
5087         * src/pic16/pcode.h: added TBLRD*,TBLWT*, added pic16_emitDB,
5088         pic16_flushDB, made pic16_newpCodeAsmDir public, added TBLPTR, TABLAT
5089         * src/pic16/ralloc.h: added IDX_BSR,IDX_TBLPTR*,IDX_TABLAT
5090
5091 2004-02-29  Borut Razem <borut.razem AT siol.net>
5092
5093         * src/Makefile.in, src/SDCCutil.c, support/Util/findme.c,
5094         support/Util/findme.h, support/Util/system.h: enhance binary relative
5095         search for lib and include by using findProgramPath()
5096
5097 2004-02-28 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
5098
5099         * src/SDCCpeeph.h,
5100         * src/SDCCpeeph.c (pcDistance),
5101         * src/port.h,
5102         * src/mcs51/ralloc.h,
5103         * src/mcs51/ralloc.c (mcs51_regWithIdx),
5104         * src/mcs51/main.h,
5105         * src/mcs51/main.c (instructionSize, asmLineNode, updateOpRW,
5106         mcs51opcodeCompare, asmLineNodeFromLineNode, getInstructionSize,
5107         mcs51operandCompare, getRegsRead, getRegsWritten): made instruction
5108         size calculation port specific, started basis for some register
5109         optimizations
5110         * src/mcs51/gen.c (genFunction, genEndFunction): added case to handle
5111         missing push/pop of r0/r1. Optimized push/pops
5112         * src/mcs51/ralloc.c (packregisters): fixed bug #727095
5113         * device/lib/_modsint.c (_modsint),
5114         * device/lib/_modslong.c (_modslong): fixed sign of result in non-asm
5115         and stack version so regression tests pass
5116
5117 2004-02-26 Bernhard Held <bernhard AT bernhardheld.de>
5118
5119         * src/Makefile.in (dep): include SLIBOBJS in dependency check
5120         * src/SDCCast.c (decorateType): catch another small optimization
5121         with '?' operator
5122         * src/SDCCsymt.c (computeType): added comments and cosmetic changes
5123         * src/SDCCval.c (valMult, valDiv, valMod, valPlus, valMinus, valShift):
5124         modified to finally use computeType() all over SDCC,
5125         see Feature Request #877103
5126         * src/SDCCval.h: cosmetic
5127         * src/SDCCicode.c (operandOperation): fixed EQ_OP bug, now same as in
5128         valCompare(); regression tested in muldiv.c
5129         * support/regression/tests/muldiv.c (testMod): mod sign follows
5130         dividend only
5131
5132 2004-02-23 Bernhard Held <bernhard AT bernhardheld.de>
5133
5134         * src/SDCCast.c (decorateType): fixed bug #902362
5135         * doc/INSTALL.txt: fixed install instructions for win32
5136
5137 2004-02-21 Bernhard Held <bernhard AT bernhardheld.de>
5138
5139         * device/include/Makefile.in (install): fixed by replacing spaces
5140         by tabs
5141         * doc/README.txt,
5142         * doc/INSTALL.txt: updated for release
5143         * doc/sdccman.lyx: added warning for --xstack being buggy
5144
5145 2004-02-20 Bernhard Held <bernhard AT bernhardheld.de>
5146
5147         * src/pic16/ralloc.c (packRegsForAccUse):  disabled functions with #if
5148         to eliminate build warnings.
5149         * src/pic16/gen.c (pic16_popGet): fixed for gcc 2.95.4
5150
5151 2004-02-20 Vangelis Rokas <vrokas AT otenet.gr>
5152            Hans-Juergen Dorn <hans.dorn AT apl-landau.de>
5153
5154         * doc/sdccman.lyx: removed PIC16 from PIC16 Port Specific Options,
5155         removed -penable-stack, added comment for stack pragma, added
5156         warning for not initializing the stack/frame registers, removed
5157         comment at interrupts section
5158
5159         Stack is made permanent, there is no ability to disable stack usage.
5160         * src/pic16/device.h,
5161         * src/pic16/device.c: removed all references to USE_STACK macro,
5162         * src/pic16/device.c (pic16_dump_section): when no elements in
5163         rlist, free rlist before return,
5164         * (pic16_dump_int_registers): NEW, internal registers are a new set
5165         of general purpose registers reused by each function,
5166         * (checkAddReg): returns 1 if registers is added to set,
5167         * (pic16_groupRegistersInSection): when a registers is of type
5168         PO_GPR_TEMP add it in pic16_int_regs and not in pic16_rel_udata,
5169         * src/pic16/device.h: memRange and Assigned Memory are deleted,
5170         SRCASECMP macro is moved here from device.c
5171         * src/pic16/genarith.c (pic16_pCodeOpType): added cases for
5172         PO_PCLATU, PO_PRODL, PO_PRODH,
5173         * (pic16_pCodeOpType, genMinus,
5174         changed compares to "a" register, with AOP_ACC,
5175         * (pic16_genPlus): fixed some bugs and indented properly,
5176         * (pic16_addSign): changed size to size+offset in the MOVWF
5177         instruction,
5178         * (pic16_genUMult8XLit_8): NEW, uses processor MULLW instruction to
5179         multiply 8-bit operand by literal, result is 8-bit,
5180         * (pic16_genUMult8X8_8): NEW, uses processor MULWF instruction to
5181         multiply 2 8-bit operand, result is 8-bit,
5182         * (pic16_genMult8X8_8): modified to call genUMult8X*_8 functions and not
5183         genUMult8X*_16,
5184         * src/pic16/gen.c: changed accUse to contain WREG only,
5185         * (pic16_emitcomment): renamed to pic16_emitpcomment,
5186         * (aopForSym): allocated dir register when IN_DIRSPACE(space) is,
5187         true, do not use immediate addressing any more unless sym is a
5188         pointer in codespace,
5189         * (aopForRemat): do not use immediate addressing when symbol not in
5190         codespace and when symbol's address is requested,
5191         * (aopOp): for-loop in if(sym->accUse) is modified for the new
5192         accUse size (= 1),
5193         * (aopGet): added case for AOP_ACC and don't return "accumulator
5194         bug" but WREG instead,
5195         * (popGetTempReg): pushes contents of temporary register in stack,
5196         * (popReleaseTempReg): pops contents of temporary register from
5197         stack. Use popGetTempReg/popReleaseTempReg in aligned pairs,
5198         * (pic16_popGet): separated case AOP_ACC to return register WREG
5199         from processor registers, AOP_PCODE not checks if pcop is PO_DIR
5200         or PO_IMMEDIATE and initializes their instance/offset appropriately,
5201         * The whole issue with aopForSym,aopForRemat,popGet) is to minimize
5202         the use of immediate pointers to certain cases only.
5203
5204         * (pic16_pushpCodeOpReg, pic16_poppCodeOpReg): use pic16_popGet2p,
5205         * (pic16_loadFromReturn, pic16_storeForReturn: NEW,
5206         * (assignResultValue, genCall, genRet): modified to use the new
5207         function return value scheme with WREG,PRODL,PRODH,FSR0L and FSR0,
5208         genPcall is still broken,
5209         * (genFunction): added code to create 'A' type pBlocks when
5210         interrupt functions are generated, code not extensively tested yet,
5211         ISRs push WREG,STATUS,BSR,PRODL,PRODH,FSR0L,FSR0H registers on stack,
5212         * (genEndFunction): modified so ISRs pop stored registers from stack,
5213         * (genMultOneByte): cleanup,
5214         * (AccRsh): added flag andmask, to and result with appropriate mask,
5215         * (genUnpackBits,genPackBits): fixed and can handle bit fields,
5216         * (genDataPointerGet): fixed and reenabled its use,
5217         * (genNearDataPointerGet): bugs fixed,
5218         * (genDataPointerSet): bugs fixed,
5219         * src/pic16/genutils.c: added functions pic16_DumpValue,pic16_DumpAop,
5220         pic16_DumpSymbol, pic16_DumpOp,
5221         * src/pic16/genutils.h: function prototypes for the above functions,
5222         * src/pic16/glue.c: new flags initsfpnt, to initialize stack/frame
5223         pointers,
5224         * (pic16emitRegularMap): many many many improvements, but needs a
5225         major cleanup,
5226         * src/pic16/main.c: enable_stack in pic16_options is removed,
5227         * (_pic16_parseOptions): removed command line options -penable-stack,
5228         * (_process_pragma): emit stack symbol only when stack pragma is
5229         processed,
5230         * src/pic16/pcode.c: pic16_pc_fsr0 is removed, all operations are
5231         redirected to FSR0L/FSR0H pair,
5232         * (pic16_get_op, pic16_get_op2): modifications and improvements,
5233         * (pic16_getRegFromInstruction, pic16_getRegFromInstruction2): added
5234         cases PO_PRODL,PO_PRODH, pic16_getRegFromInstruction2 returns sane
5235         for immediates,
5236         * (insertBankSwitch): modified to handle cases like: (alfa + 1)
5237         * (dumpPicOptype): NEW,
5238         * src/pic16/pcode.h: added PO_PCLATU,PO_PRODL,PO_PRODH in enum,
5239         * src/pic16/pcoderegs.c (pCodeRegMapLiveRangesInFlow): fixed bug
5240         with movff instruction,
5241         * src/pic16/ralloc.c: renamed typeRegWithIdx to pic16_typeRegWithIdx,
5242         added pic16_int_regs, some packRegsFor* functions are commented out,
5243         because produce errors,
5244         * src/pic16/NOTES: minor modifications
5245
5246 2004-02-18  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
5247
5248         * as/mcs51/aslink.h, as/mcs51/lkarea.c, as/mcs51/lkdata.c, as/mcs51/lkmain.c,
5249         as/mcs51/lkmem.c, src/SDCCglob.h, src/SDCCmain.c: added options --stack-size and
5250         --pack-iram.
5251         * doc/sdccman.lyx: described options --stack-size and --pack-iram.
5252         * as/mcs51/lkaomf51.c: fixed bug #895763
5253
5254 2004-02-17 Bernhard Held <bernhard AT bernhardheld.de>
5255
5256         * device/include/c8051f320.h: added. Contributed by Maarten Brock.
5257
5258 2004-02-17 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
5259
5260         * doc/sdccman.lyx: added details about the HC08 storage classes and
5261         interrupts, fixed the register usage info for z80 & gbz80
5262
5263 2004-02-17 Vangelis Rokas <vrokas AT otenet.gr>
5264
5265         * doc/sdccman.lyx: added more pic16 port documentation
5266         * device/include/pic16/: added header pic18fregs.h
5267
5268 2004-02-16 Bernhard Held <bernhard AT bernhardheld.de>
5269
5270         * doc/sdccman.lyx: added Vangelis' contribution
5271
5272 2004-02-16 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
5273
5274         * src/SDCClrange.c (rlivePoint): live range of SEND operand should
5275         extend to the next CALL or PCALL, not just to the next CALL.
5276
5277 2004-02-16 Vangelis Rokas <vrokas AT otenet.gr>
5278
5279         * src/pic16/gen.c (genInline): fixed bug #896482 with inline assembly
5280
5281 2004-02-15 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
5282
5283         * src/mcs51/ralloc.c (packRegsForAssign, reassignAliasedSym): fixed
5284         bug #895752 and a better fix for bug #716790
5285
5286 2004-02-15 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
5287
5288         * src/SDCCsymt.c (processFuncArgs): fixed bug #896796
5289
5290 2004-02-14 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
5291
5292         * doc/sdccman.lyx: minor changes, minor changed
5293
5294 2004-02-13 Bernhard Held <bernhard AT bernhardheld.de>
5295
5296         * src/SDCCicode.c (usualBinaryConversions): removed pic16 from ports
5297         which can't handle SDCC_NEWONEBYTEOPS,
5298         (geniCodeMultiply): removed conversion from mult to shift for pic14
5299         and pic16
5300
5301 2004-02-12 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
5302
5303         * src/hc08/gen.h,
5304         * src/hc08/gen.c (storeRegToAop, aopOp, aopAdrStr, accopWithAop,
5305         rmwWithAop): Ported my 2003-10-02 fix for bug #663539 to the hc08,
5306         thus fixing bug #895406
5307
5308 2004-02-11 Bernhard Held <bernhard AT bernhardheld.de>
5309
5310         * device/lib/_modsint.c,
5311         * device/lib/_modslong.c: sign follows divisor only
5312         * src/hc08/gen.c (genMultOneByte): if result size is 1,
5313         signs or signedness can be ignored
5314         * src/SDCCast.c (addCast): cosmetic - added lineno to CAST
5315         * src/SDCCast.c (resultTypePropagate): added even more ops: +, - and *,
5316         added optimization for IFX,
5317         (decorateType): Mult/Div/ModOneByte ops can handle all kind of signed
5318         arguments;
5319         reenabled optimization for IFX, which was removed on 2004-01-11
5320         * src/SDCCast.h: added return type IFX
5321         * src/SDCCicode.c: Mult/Div/ModOneByte ops can handle all kind of signed
5322         arguments with 8 or 16 bit results; pic14 and pic16 ports use old
5323         promotion behaviour; env. var. SDCC_NEWONEBYTEOPS selects the new,
5324         SDCC_OLDONEBYTEOPS selects the old behaviour
5325         * src/SDCCsymt.c (computeType): type2 can be NULL (for LEFT_OP);
5326         changed again and commented promotion rule
5327         * src/SDCCval.c (valDiv): promotion no longer necessary
5328         * src/ds390/gen.c (genMultOneByte) (genDivOneByte) (genModOneByte),
5329         * src/mcs51/gen.c (genMultOneByte) (genDivOneByte) (genModOneByte):
5330         rewritten
5331         * support/regression/tests/onebyte.c: added
5332
5333 2004-02-11 Vangelis Rokas <vrokas AT otenet.gr>
5334
5335         * gen.c (genInline): reverted to old code for assemnling inline
5336         code because of bug reported James Chadd
5337
5338 2004-02-10 Vangelis Rokas <vrokas AT otenet.gr>
5339
5340         * ralloc.h: missing declarations from previous patch,
5341         seems that patch for ralloc.h was never applied, fixed
5342
5343 2004-02-10 Hans-Juergen Dorn <hans.dorn AT apl-landau.de>
5344            patch committed by Vangelis Rokas <vrokas AT otenet.gr>
5345
5346         * pcode.c,
5347         * pcode.h,
5348         * ralloc.h: added FSR0L, FSR0H and other missing PIC16 SFR's for
5349         indirect addressing. Marked FSR0 as deprecated
5350         * gen.c (pointerCode): commented out, not needed now
5351         (pic16_popGet2p): new MOVFF helper function
5352         (genGenPointerGet),
5353         (genGenPointerSet): reimplemented with MOVFF and POSTINC0
5354         (shiftRLong): removed duplicate debugging info
5355
5356 2004-02-10 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
5357
5358         * src/ds390/gen.c (genNearPointerGet),
5359         * src/mcs51/gen.c (genNearPointerGet): allow the genDataPointerGet()
5360         optimization with bits, but not bitfields.
5361         * src/ds390/ralloc.c (packRegisters),
5362         * src/mcs51/ralloc.c (packRegisters): fixed bug #884453 & #880832
5363
5364 2004-02-09 Bernhard Held <bernhard AT bernhardheld.de>
5365
5366         * src/SDCCcse.c (algebraicOpts): copy operands before modification
5367
5368 2004-02-09 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
5369
5370         * src/SDCCsymt.h,
5371         * src/SDCCicode.c (operandFromSymbol),
5372         * src/mcs51/ralloc.c (verifyRegsAssigned, serialRegAssign),
5373         * src/ds390/ralloc.c (verifyRegsAssigned, serialRegAssign),
5374         * src/z80/ralloc.c (verifyRegsAssigned, serialRegAssign),
5375         * src/hc08/ralloc.c (verifyRegsAssigned, serialRegAssign),
5376         * src/pic/ralloc.c (verifyRegsAssigned, serialRegAssign),
5377         * src/pic16/ralloc.c (verifyRegsAssigned, serialRegAssign): fixed
5378         bug #892038
5379         * src/SDCCast.c (createIvalStruct, createIvalArray, gatherAutoInit),
5380         * src/SDCCglue.c (emitRegularMap, printIvalStruct, printIvalArray,
5381         printIvalCharPtr, printIvalPtr, printIval, emitStaticSeg, emitOverlay)
5382         * src/SDCCsymt.c (newSymbol),
5383         * src/SDCC.y (struct_or_union_specifier, enum_specifier,
5384         enumerator_list),
5385         * src/SDCCval.h,
5386         * src/SDCCval.c (newiList): fixed bug #885705
5387
5388 2004-02-08  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
5389
5390         * doc/sdccman.lyx: added section 3.1.4: sdcclib.
5391         * as/mcs51/lkmem.c: report the size of the stack in .mem file.
5392
5393 2004-02-08 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
5394
5395         * device/include/c8051f120.h,
5396         * device/include/c8051f300.h,
5397         * device/include/c8051f310.h: added/updated header files for Silicon
5398         Laboratories (formerly Cygnal) CPUs. Contributed by Maarten Brock.
5399         * doc/sdccman.lyx: minor changes, recommended diff -Naur and diff -u
5400         in new section Submitting patches
5401
5402 2004-02-08 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
5403
5404         * src/mcs51/gen.c (genNearPointerGet, genPagedPointerGet,
5405         genFarPointerGet, genCodePointerGet, genGenPointerGet,
5406         genNearPointerSet, genPagedPointerSet, genFarPointerSet,
5407         genGenPointerSet),
5408         * src/ds390/gen.c (genNearPointerGet, genPagedPointerGet,
5409         genFarPointerGet, genCodePointerGet, genGenPointerGet,
5410         genNearPointerSet, genPagedPointerSet, genFarPointerSet,
5411         genGenPointerSet),
5412         * src/pic16/gen.c (genNearPointerGet, genPagedPointerGet,
5413         genFarPointerGet, genCodePointerGet, genGenPointerGet,
5414         genNearPointerSet, genPagedPointerSet, genFarPointerSet,
5415         genGenPointerSet),
5416         * src/pic/gen.c (genNearPointerGet, genPagedPointerGet,
5417         genFarPointerGet, genCodePointerGet, genGenPointerGet,
5418         genNearPointerSet, genPagedPointerSet, genFarPointerSet,
5419         genGenPointerSet): fixed bug #892400
5420         * src/pic16/gen.c (genSkipz, AccRol): disabled functions with #if 0
5421         to eliminate build warnings.
5422         * src/SDCCast.c (processParms),
5423         * src/SDCC.y (function_declarator2, declarator2_function_attributes):
5424         fixed bug 751859
5425         * support/valdiag/valdiag.py: added GCC to the list of defines active
5426         when compiling with gcc
5427
5428 2004-02-07 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
5429
5430         * support/Util/SDCCerr.h,
5431         * support/Util/SDCCerr.c,
5432         * src/SDCCast.c (decorateType, sizeofOp): complain when sizeof is used
5433         with an incomplete type (fixed bug #883734)
5434         * src/SDCCicode.c (geniCodeCast): fixed bug #890510
5435
5436 2004-02-07 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
5437
5438         * src/pic16/gen.c (genCmpEq, shiftRLong): fixed declarations
5439
5440 2004-02-06 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
5441
5442         * src/SDCCast.c (decorateType),
5443         * src/SDCCicode.c (geniCodeParms, geniCodeCall): fixed bugs in my ANSI
5444         function pointer implementation
5445         * support/regression/tests/funptrs.c: added tests to verify both forms
5446         of function pointers work correctly. Added tests to verify parameters
5447         are passed in the correct order.
5448
5449 2004-02-06  Vangelis Rokas <vrokas AT otenet.gr>
5450
5451         * device.c (regCompare): registers are sorted by ascending
5452         address and increasing size,
5453         * main.c (_pic16_finaliseOptions): removed the declaration
5454         of compiler macro MCU. Now a macro of the format pic18fxxxx
5455         will be defined from the command line
5456
5457 2004-02-06  Hans-Juergen Dorn <hans.dorn AT apl-landau.de>
5458             patch committed by Vangelis Rokas <vrokas AT otenet.gr>
5459
5460         * pcode.c (pic16initMnemonics): fixed typo in assignment to PCOP_RLNCF
5461         PCOP_RLCF was overwritten!
5462         * gen.c (genSkip): commented out calls to pic16_emitcode,
5463         * (genCmpEQ): fixed "long" compares, only high word did get compared,
5464         * (genlshTwo),
5465         * (genRRC): added debugging info,
5466         * (shiftL2Left2Result): Fixed bug, if offr > offl. Result got
5467         overwritten while shifting,
5468         * (shiftR2Left2Result): Fixed bug, if offr < offl. Result got
5469         overwritten while shifting,
5470         * (AccLsh),
5471         * (AccRsh),
5472         * (shiftLLeftOrResult),
5473         * (shiftRLeftOrResult),
5474         * (shiftRLong),
5475         * (shiftLLong): Implemented with pic16_emitpcode
5476         * (genlshFour): Replaced pic16_aopPut with pic16_emitpcode,
5477         * (genLeftShift): Fixed bug, operand for shift by variable always
5478         was "and"ed with 0x0f,
5479         * (genLeftShiftLiteral),
5480         * (genrshTwo),
5481         * (genRightShiftLiteral): added debugging info,
5482         * (genrshFour): added comment,
5483         * (genRightShift): determined signedness from operand "left"
5484         instead of "result"
5485
5486 2004-02-04 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
5487
5488         * src/SDCCicode.c (geniCodeParms),
5489         * src/SDCCast.c (decorateType, processParms): support for ANSI-style
5490         function pointers, fixed function pointer bugs #861242 and #861896
5491
5492 2004-01-31 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
5493
5494         * device/include/c8051f000.h,
5495         * device/include/c8051f120.h,
5496         * device/include/c8051f300.h: added header files for Silicon
5497         Laboratories (formerly Cygnal) CPUs. Contributed by Maarten Brock.
5498
5499 2004-01-31 Bernhard Held <bernhard AT bernhardheld.de>
5500
5501         * src/SDCCast.c (processParams): added new type flow and restructured
5502         (gatherAutoInit): added new type flow
5503         (addCast): cosmetic changes
5504         (getLeftResultType): added new type flow for array indices, patch
5505         provided by Stas, see FR #877103
5506         (decorateType): SDCC_NEWTYPEFLOW removed, new type flow is now standard;
5507         array index patch by Stas
5508         * src/SDCCast.h: added prototype getResultTypeFromType()
5509         * src/SDCCval.h,
5510         * src/SDCCval.c (resolveIvalSym) (resolveIvalSym),
5511         * src/pic/glue.c (pic14emitStaticSeg),
5512         * src/pic16/glue.c (pic16emitStaticSeg),
5513         * src/SDCCglue.c (emitRegularMap) (emitStaticSeg): added new type flow
5514         for initialization of symbols
5515         * src/SDCCicode.c (geniCodeArray): removed warning W_ARRAY_BOUND
5516         * support/Util/SDCCerr.h:
5517         * support/Util/SDCCerr.c: replaced W_ARRAY_BOUND by W_IDX_OUT_OF_BOUNDS
5518         * .version: bumped version number to 2.3.8
5519         * device/include/Makefile.in (install),
5520         * doc/Makefile (install): changed to 'rm `find ...`' construct to
5521         avoid warnings
5522
5523 2004-01-30 Bernhard Held <bernhard AT bernhardheld.de>
5524
5525         * support/regression/tests/libmullong.c: fixed for 64 bit hosts
5526         Slade Rich fixed an optimization bug
5527         * src/pic/pcodepeep.c,
5528         * src/pic/pcoderegs.c
5529         * doc/Makefile (install): added test for directory
5530
5531 2004-01-30 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
5532
5533         * src/mcs51/ralloc.c (getRegPtr, getRegGpr),
5534         * src/ds390/ralloc.c (getRegPtr, getRegGpr),
5535         * src/pic/ralloc.c (getRegPtr, getRegGpr),
5536         * src/pic16/ralloc.c (getRegPtr, getRegGpr),
5537         * src/z80/ralloc.c (getRegGpr): fixed bug #883361
5538         * as/mcs51/asexpr.c (term),
5539         * as/hc08/asexpr.c (term): fixed bug #887146
5540
5541 2004-01-29 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
5542
5543         * src/z80/gen.c (genMult): handle single byte result product
5544         * src/SDCCopt.c (killDeadCode): never convert ADDRESS_OF iCode to
5545         DUMMY_READ_VOLATILE (fixed bug #886367)
5546
5547 2004-01-27 Bernhard Held <bernhard AT bernhardheld.de>
5548
5549         * support/regression/tests/libmullong.c: fixed logic, on little endian
5550         hosts we ended without a mullong_wrapper()
5551
5552 2004-01-27 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
5553
5554         * ChangeLog: changed "@" to " AT " in hopes of reducing spam and
5555         virus/worm forged address usage.
5556
5557 2004-01-27 Bernhard Held <bernhard AT bernhardheld.de>
5558
5559         Fixed promotion, it should be done on AST level:
5560         * src/SDCCast.c (addCast): added promotion to int
5561         (decorateType): updated call to upCast()
5562         * src/SDCCicode.c (geniCodeLeftShift): removed call to
5563         usualUnaryConversions()
5564
5565 2004-01-26  Michael Hope  <michaelh AT juju.net.nz>
5566
5567         * support/regression/tests/literalop.c (mulWrapper): Added a
5568         wrapper to remove integer overflow warnings.
5569
5570         * support/regression/tests/float_trans.c: Made work on host.
5571
5572         * support/regression/ports/ucz80/spec.mk (UCZ80): Made detect the
5573         location of sz80.
5574
5575         * support/regression/generate-cases.py (main): Changed from inline
5576         to a main method.
5577
5578         * doc/Makefile (install): Changed to depth first to get rid of
5579         missing directory install warning.
5580
5581         * as/Makefile (install-doc): Made work on Mac.
5582
5583 2004-01-25 Bernhard Held <bernhard AT bernhardheld.de>
5584
5585         * src/SDCCast.c: added an additional type flow in decorateType() of
5586         opposite direction, see feature request #860006; it's enabled at runtime
5587         by setting the environment variable SDCC_NEWTYPEFLOW
5588         * src/SDCCast.h: changed prototype of decorateType()
5589         * src/SDCCglue.c (emitRegularMap): updated call of decorateType()
5590         * src/SDCCicode.c (geniCodeDivision) (geniCodeModulus): promotion from
5591         'char' to 'int' can be omitted, if both operands are 'unsigned char';
5592         see feature request #877103
5593         * src/SDCCval.c: updated call of decorateType()
5594         (valBitwise): fixed bug #882876
5595         (valMinus): added promotion
5596         (valLogicAndOr): result is unsigned
5597         (cheapestVal) (constVal): literals from 0...255 are 'unsigned char' now
5598         * src/SDCCsymt.c (computeType),
5599         * src/mcs51/gen.c (genCmpGt) (genCmpLt): literal 'unsigned char'
5600         must not cause an unsigned operation
5601         * src/pic/glue (pic14emitRegularMap),
5602         * src/pic16/glue.c (pic16emitRegularMap): updated call of decorateType()
5603
5604 2004-01-23 Bernhard Held <bernhard AT bernhardheld.de>
5605
5606         * src/pic/pcode.c (PCodeID): commented out left over debug code
5607
5608 2004-01-20 Bernhard Held <bernhard AT bernhardheld.de>
5609
5610         * support/valdiag/tests/overflow.c: added shift tests
5611         * src/pic/device.c,
5612         * src/pic/gen.c,
5613         * src/pic/gen.h,
5614         * src/pic/glue.c,
5615         * src/pic/main.c,
5616         * src/pic/pcode.c,
5617         * src/pic/pcode.h,
5618         * src/pic/pcodepeep.c,
5619         * src/pic/pcoderegs.c,
5620         * src/pic/ralloc.c,
5621         * src/pic/ralloc.h: applied patch from Slade Rich;
5622         added support for multiple code pages and multiple RAM banks on the
5623         PIC 14 port. The ASM files now no longer simply assume all the
5624         code / RAM are in the same page / bank. This means the linker can
5625         safely allocate code/RAM of separate ASM files to different pages/banks.
5626         * doc/sdccman.lyx: added Slade's tips
5627         * src/mcs51/peeph.def: fixed bug #880768
5628
5629 2004-01-20 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
5630
5631         * src/hc08/ralloc.c (rematStr): fixed bug #879282
5632         * src/SDCCast.c (decorateType): fixed bug #880197
5633
5634 2004-01-20  Michael Hope  <michaelh AT juju.net.nz>
5635
5636         * sim/ucsim/gui.src/serio.src/main.cc: Fixed unconditional use of
5637         getopt.h.
5638
5639         * debugger/mcs51/cmd.c (getValBasic): Changed strtof to strtod as
5640         strtof is not part of C89 and isn't included with Mac OS X.
5641
5642 2004-01-20 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
5643
5644         * src/hc08/gen.c (genPlusIncr, genUminus, genMinusDec, genCmp,
5645         shiftL2Left2Result): fixed bug #879326
5646         (genAnd, genOr, genXor): fixed bug when result was of type AOP_CRY
5647         (genMultOneByte): fixed bug in signed vs unsigned multiplication
5648         * sim/ucsim/hc08.src/inst.cc (inst_clr): added missing effective
5649         address fetch for clr instruction
5650         * device/lib/hc08/_mulint.c: created optimized assembly version
5651         * src/SDCCdflow.c (computeDataFlow): fixed bug #878209
5652
5653 2004-01-19 Bernhard Held <bernhard AT bernhardheld.de>
5654
5655         * src/SDCCicode.c (geniCodeArray): applied patch from Stas Sergeev
5656         proposed in FR #877103
5657
5658 2004-01-18 Bernhard Held <bernhard AT bernhardheld.de>
5659
5660         * src/SDCCval.c (cheapestVal): added missing checks
5661         * src/SDCCicode.c (usualBinaryConversions): fixed condition
5662         * src/SDCCicode.c (geniCodeAdd): fixed part of bug #877103
5663
5664 2004-01-16 Klaus Flittner <klaus_flittner AT gmx.de>
5665
5666         * src/ds390/gen.c (aopOp3): fixed the assignment of different dptrs to
5667         equal operands
5668
5669 2004-01-16 Vangelis Rokas <vrokas AT otenet.gr>
5670
5671         * src/SDCCmain.c (linkEdit): variable $3 of the linker command is
5672         loaded with the linker search paths (-L arguments) and the libraries
5673         to be linked with the current source (-l arguments). Changes
5674         currently will affect only the pic16 port.
5675         * src/pic16/main.c (_pic16_finaliseOptions): add to the linker
5676         include path the port specific paths and port specific libraries,
5677         * gplink command now contains the $3 argument,
5678         * src/pic16/device.h,
5679         * src/pic16/device.c,: structure PIC_device is made public and
5680         renamed to PIC16_device, the same for variable Pics which is renamed
5681         to Pics16. Updated all references to them.
5682         * src/pic16/glue.c (pic16glue): corrected bug with code
5683         initialization which bypassed the variable initializations block.
5684
5685         * device/lib/pic16/Makefile.rules: removed --penable-stack from
5686         COMPILE_FLAGS and added the --nostdinc option
5687
5688 2004-01-15 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
5689
5690         * device/include/mc68hc908jb8.h: Register defs for another member
5691         of the hc08 family. Contributed by Bjorn Bringert - thanks!
5692
5693 2004-01-14 Vangelis Rokas <vrokas AT otenet.gr>
5694
5695         Documenting changes from previous commits.
5696         * configure.in (version 1.56),
5697         * configure: initially I've added AC_CONFIG_SUBDIRS(device/lib/pic16)
5698         when generating output files to configure the pic16 library,
5699         but now I've commented it out, since gputils aren't installed in the
5700         SF compile farm, so library won't compile
5701
5702         * device/lib/Makefile.in (version 1.56): initially I've added in
5703         target 'all' the prerequestive 'model-pic16' so it compiled the
5704         pic16 library, but now I've commented it out for the same reasons
5705         above,
5706         * added targets 'model-pic16' and 'objects-pic16' to compile the
5707         library
5708         * added target 'port-specific-objects-pic16' to handle the
5709         generated libraries and copy them into the build/ directory
5710         * added target 'clean-intermediate-pic16' to clean intermediate
5711         files into pic16 directory
5712         * in target 'installdirs' added line to create directory pic16 in
5713         the installation path
5714
5715         * device/include/Makefile.in (version 1.11): in target 'install'
5716         added lines to copy all header files to installation path,
5717         * in target 'installdirs' added line create directory for pic16
5718         headers in the installation path
5719
5720 2004-01-13 Klaus Flittner <klaus_flittner AT gmx.de>
5721
5722         * src/ds390/gen.c (genCall): fixed a double use of acc and b after
5723          a function call
5724
5725 2004-01-13 Bernhard Held <bernhard AT bernhardheld.de>
5726
5727         * configure,
5728         * device/lib/configure.in,
5729         * device/lib/configure: fixed for autoconf 2.57
5730
5731 2004-01-13 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
5732
5733         * src/z80/main.c (_parseOptions): fixed the portmode= command line
5734         option so that it actually works. Made it specific to the z80, since
5735         the gbz80 doesn't have these kinds of I/O ports.
5736
5737 2004-01-13 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
5738
5739         * device/include/z180.h,
5740         * device/lib/_memcpy.c,
5741         * device/lib/_memmove.c,
5742         * device/lib/_mulint.c,
5743         * device/lib/ser_ir.c,
5744         * device/lib/ser_ir_cts_rts.c,
5745         * device/lib/_strcmp.c,
5746         * device/lib/_strtok.c: fixed pragmas to non-deprecated form
5747         * src/z80/main.c (_process_pragma): add support for pragmas bank and
5748         portmode; added deprecation warning for bank= and protmode= forms.
5749         Also, guard against buffer overflow.
5750         * src/z80/gen.c (aopGet): generate better code for sfr banked read
5751
5752 2004-01-13 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
5753
5754         * src/hc08/main.c (_hc08_genAssemblerPreamble): fixed bug #875487. Also
5755         changed interrupt vector table generation to only emit declared vectors.
5756         * device/include/Makefile.in: added missing backslash
5757         * device/lib/pic16/Makefile.rules: add $(MODELFLAGS) to $(CFLAGS)
5758
5759 2004-01-13 Vangelis Rokas <vrokas AT otenet.gr>
5760
5761         Mainly changes to support compilation of the device libraries
5762         * src/pic16/device.c: stack is allocated via symbol and not
5763         via literal number. The symbol is placed in the corresponding
5764         position of the data ram
5765         * (pic16_dump_section): relocatable and absolute uninitialized
5766         data are now emitted in sorted order to reduce section naming,
5767         * src/pic16/ralloc.c (newReg): fixed bug with SFR's that
5768         weren't marked as being in the access bank,
5769
5770 2004-01-13 Vangelis Rokas <vrokas AT otenet.gr>
5771
5772         Added portion of GNU PIC Library under the directory
5773         device/include/pic16 and device/lib/pic16. These files
5774         contain the declarations of SFRs for the PIC18Fxx2 devices.
5775         The directory is initialized via configure from toplevel.
5776
5777 2004-01-12 Klaus Flittner <klaus_flittner AT gmx.de>
5778
5779         * src/ds390/gen.c (operandsEqu): fixed a little typo, that prevented
5780         the spilllocations to be compared correctly
5781
5782 2004-01-12 Bernhard Held <bernhard AT bernhardheld.de>
5783
5784         * src/SDCCast.c (decorateType): fixed bug introduced today
5785
5786 2004-01-12  Borut Razem <borut.razem AT siol.net>
5787
5788         * src/SDCC.lex, support/Util/SDCCerr.h, support/Util/SDCCerr.c,
5789         doc/sdccman.lyx: upper case pragmas are deprecated
5790
5791 2004-01-12 Bernhard Held <bernhard AT bernhardheld.de>
5792
5793         * src/SDCCast.c (decorateType): replacing 'ul > 0' by  '!ul' results
5794         in simpler and even better code
5795
5796 2004-01-11 Bernhard Held <bernhard AT bernhardheld.de>
5797
5798         * src/SDCCicode.c (operandOperation): fixed bug #874819
5799         * src/SDCCast.c (decorateType): fixed
5800         char foo (unsigned long ul) { return ul > 0; }
5801
5802 2004-01-11 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
5803
5804         * doc/sdccman.lyx: Moved and added some sections, small changes
5805         all over. Telling LaTeX to be less strict with word spacing
5806         to better keep the right margin. Changed some notes about
5807         maintainance of the ports in section 3.2.1 - is it OK like this?
5808
5809 2004-01-11 Vangelis Rokas <vrokas AT otenet.gr>
5810
5811         SDCC source changes:
5812         * src/SDCCopt.c (cntToFcall, cnvToFloatCast, cnvFromFloatCast,
5813         convilong): modified to inform the pic16 port that builtin functions
5814         are external
5815
5816         PIC16 PORT specific changes:
5817         * src/pic16/device.c pic16_dump_equates() added,
5818         processor registers declared internally by the port are emitted in
5819         the translation as equates,
5820         * src/pic16/gen.c: inline code is passed unprocessed to the
5821         translation,
5822         * (pic16_popGetLit2): fnuction modified to take second operand as
5823         pCodeOp pointer and not as literal,
5824         * (popRegFromIdx): prefixed with pic16_,
5825         * (pic16_popCombine2): modified to receive already allocated pCode
5826         operands,
5827         * (pic16_pushpCodeOpReg, pic16_poppCodeOpReg): added
5828         * (genFunction): initializes local stack frame and pushes on stack
5829         all the registers used by this function,
5830         * (genEndFunction): restores all registers from stack and restores
5831         stack frame,
5832         * src/pic16/glue.c (pic16emitRegularMap): various changes and
5833         improvements,
5834         * (pic16glue): changed the program startup sequence,
5835         * added new dbName code 'A' for functions placed in absolute section
5836         * src/pic16/main.c: added function attribute _naked,
5837         * added pragma 'code' to place a fnuction at an absolute address,
5838         * added command line arguments --debug-ralloc and --pcode-verbose,
5839         * (_pic16_finiliseOptions): options.all_callee_saves is set by default
5840         * src/pic16/pcode.c (pic16_pBlockConvert2Absolute) added,
5841         * (pic16_newpCodeOpLit2): modified to take the second operand as
5842         pCodeOp pointer,
5843         * (pic16_printpBlock): modified to emit each function in a separate
5844         section,
5845         * (pic16_get_op): modified to use the gpasm modifiers LOW,HIGH and
5846         UPPER for immediate operands,
5847         * src/pic16/pcodepeeph.c: added peephole support for the LFSR
5848         instruction,
5849         * src/pic16/peeph.def: all peepholes with movff are commented out,
5850         because there is a problem in the pcode peep optimizer,
5851         * src/pic16/ralloc.c: the register allocator can now reuse local
5852         function symbols for another function. This saves register usage.
5853         * src/pic16/ralloc.h: added flag isLocal in structure regs,
5854
5855         Added file src/pic16/NOTES with information about program writing on
5856         the current port version.
5857
5858 2004-01-11 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
5859
5860         * src/mcs51/peephole.def: added peepholes 177.c,d (redundant moves)
5861         and peephole 252 (array access)
5862
5863 2004-01-09  Borut Razem <borut.razem AT siol.net>
5864
5865         * src/SDCCmain.c : fixed #872250: -l command line defined library
5866           files are scanned before standard library files
5867
5868 2004-01-10 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
5869
5870         * src/SDCCast.c (decorateType): fixed bug #874046
5871
5872 2004-01-09  Borut Razem <borut.razem AT siol.net>
5873
5874         * support/scripts/sdcc.nsi: remove previous installation
5875
5876 2004-01-09 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
5877
5878         * src/SDCCglue.c (createInterruptVect): don't append 7(5) padding
5879         bytes for last interrupt vector (mcs51)
5880         * sdcc.spec: fixed typo
5881
5882 2004-01-09 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
5883
5884         * src/mcs51/gen.c (genFunction, genEndFunction, genReceive, getTempRegs,
5885         gen51Code): more efficient parameter receive for --model-large
5886         ("bug" #845294)
5887
5888 2004-01-09 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
5889
5890         * src/ds390/main.c,
5891         * src/z80/main.c: added missed needLinkerScript flags (more than
5892         one port structure defined in these file)
5893         * src/ds390/gen.c (aopForSym, aopOp, operandsEqu, aopOp3): fixed
5894         bug #795325
5895
5896 2004-01-08 Vangelis Rokas <vrokas AT otenet.gr>
5897
5898         * src/SDCCmain.c: removed various references to DEFAULT_PORT
5899         * src/port.h: added flag needLinkerScript in port->linker
5900         structure to inform whether to create a .lnk file or not,
5901         * src/avr/main.c,
5902         * src/ds390/main.c,
5903         * src/hc08/main.c,
5904         * src/mcs51/main.c,
5905         * src/pic/main.c,
5906         * src/pic16/main.c,
5907         * src/xa51/main.c,
5908         * src/z80/main.c: changed appropriately to configure
5909         needLinkerScript flag
5910         * src/pic/gen.c,
5911         * src/pic16/gen.c (genAddrOf): fixed bug #863624
5912         * src/pic/glue.c: added variable udata_section_name to
5913         override default uninitialized data segment definition for
5914         devices only with SHAREBANK memory (reported from Erik Epetrich)
5915         * (pic14emitOverlay): modified to emit a commented overlay segment
5916         directive when no overlay data exist
5917         * (picglue): modified to emit uninitialized data segment
5918         according to udata_section_name
5919         * src/pic/main.c (_pic14_parseOptions): added command line
5920         options --udata-section-name=[name] to override default
5921         udata definition name
5922         * modified _linkCmd and _asmCmd to include compiler passed
5923         arguments via -W option
5924         * src/pic16/main.c: added $l in _asmCmd, changed extension for
5925         object file from '.rel' to '.o' in port->linker structure,
5926         changed size of fptr from 2 to 3 in port structure
5927
5928 2004-01-07  Borut Razem <borut.razem AT siol.net>
5929
5930         * support/scripts/sdcc.nsi: update PATH
5931         * support/scripts/sdcc.ico: craeted
5932
5933 2004-01-07 Bernhard Held <bernhard AT bernhardheld.de>
5934
5935         * device/include/Makefile.in: fix install
5936         * doc/Makefile: fix install
5937
5938 2004-01-07 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
5939
5940         * src/SDCCsymt.c (processFuncArgs): fixed superflous allocation noted
5941         in bug #860505
5942         * src/SDCCmem.c (printAllocInfoSeg, printAllocInfo): minor changes to
5943         how the function variable allocation summary is displayed; also
5944         include information about variables allocated to the overlay
5945         segment
5946
5947 2004-01-06  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
5948
5949         * as/mcs51/lkmain.c: Help about -Y option
5950         * as/mcs51/lkarea.c: Fixed gcc warnings
5951
5952 2004-01-06 Bernhard Held <bernhard AT bernhardheld.de>
5953
5954         * src/SDCCval.c (valShift): changed from 16 to 32 bit shift count,
5955         fixed warning
5956         * support/valdiag/tests/overflow.c: added
5957         * src/SDCCast.c (decorateType),
5958         * src/SDCCicode.c (geniCodeLeftShift): added promotion to int for
5959         LEFT_OP (left shift)
5960
5961 2004-01-06  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
5962
5963         * as/mcs51/lkmain.c: stack must be after data when option -Y is not used
5964         (default behaviour).
5965
5966 2004-01-06 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
5967
5968         A python script to validate compiler diagnostic messages. It can be
5969         used to verify that sdcc complains about bad c source code and
5970         gives a good location of the error.
5971         * support/valdiag/Makefile,
5972         * support/valdiag/valdiag.py,
5973         * support/valdiag/tests/*
5974
5975 2004-01-06 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
5976
5977         * src/SDCC.y (enum_specifier, enumerator_list, opt_assign_expr),
5978         * src/SDCCsymt.c (newEnumType),
5979         * src/SDCCsymt.h
5980         * support/Util/SDCCerr.c,
5981         * support/Util/SDCCerr.h: fixed bug #871258 and some other unreported
5982         enum related bugs.
5983         * support/regression/tests/enum.c: added test for enum values that
5984         require at least 2 bytes of storage.
5985
5986 2004-01-06 Vangelis Rokas <vrokas AT otenet.gr>
5987
5988         * src/common.h: added ifndef/define/endif macros
5989         around the header file.
5990         Bug reported from Jesus Calvino-Fraga
5991
5992 2004-01-06 Bernhard Held <bernhard AT bernhardheld.de>
5993
5994         * sdcc.spec: updated
5995         * device/include/Makefile.in: don't install CVS directories
5996         * device/lib/Makefile.in: added removal of CVS directories after install
5997         * doc/Makefile: fixed install, added local_icons
5998         * sim/ucsim/gui.src/Makefile.in: fixed an old typo
5999         * src/mcs51/gen.c (genRightShift): fixed bug #870788
6000         * src/ds390/gen.c (genRightShift): fixed bug #870788
6001         * src/SDCCast.c (decorateType): fixed bug #870781
6002
6003 2004-01-06 Vangelis Rokas <vrokas AT otenet.gr>
6004
6005         PIC16 port related changes:
6006         * device.c: removed pic16_finalMapping and pic16_finalMappingSize,
6007         added variable stackPos,
6008
6009         * gen.c: genCall, assignResultValue: added support for
6010         pushing/retrieving function parameters to/from stack,
6011         genFunction,genEndFunction: setup stack frame for the
6012         generated function,
6013         genAddrOf: will be changed according to bug 863624
6014
6015         * added files genutils.c and genutils.h which contain gen*
6016         debugged and optimised functions extracted from gen.c
6017
6018         * glue.c: added variable 'externs' which holds extern symbols,
6019         pic16emitRegularMap: is modified to properly handle relocatable
6020          symbols under the new scheme,
6021         pic16createInterruptVect: is modified
6022         pic16printPublics: is modified to emit 'global' assembler directives,
6023         added pic16_printExterns to print extern symbols,
6024         pic16glue: initializes stack/frame pointer in the beginning of
6025         the assembly output. Temporary hack, will be corrected later,
6026         because gplink yet does not support stack and SDCC does not
6027         yet support a type of crt0.o object to create the final binary.
6028
6029         * Removed many lines that contain 8051 legacy code.
6030         * The code is finally placed under a 'code' directive.
6031         * Added port specific options.
6032
6033         * _process_pragma: simplified since now we do not need *special*
6034         include file to define SFR registers. But a separate header
6035         will be needed. This will be developed later.
6036         * _pic16_parseOptions: added, parses port specific options:
6037         --pgen-banksel, --obanksel=, --pomit-config-words, --pomit-ivt,
6038         --pleave-reset-vector, --penable-stack, --pstack-model, --debug-xtra
6039         --preplace-udata-with=
6040
6041         * _pic16_setDefaultOptions: modified to initialize section names,
6042         but hack is temporarly out of order since it needs improvement.
6043         * _pic16_genAssemblerPreamble: configuration words are emitted by
6044         their address instead of their name. This part is incomplete and
6045         supports only the 18Fxx2 devices. Other devices will emit an error
6046         during assembly since they do not contain the same set of config
6047         registers
6048         * _pic16_genIVT: is modified,
6049
6050         * pcode.c: added definitions for some hardware registers that are needed
6051         for stack support
6052         * added flag is2LitOp and variable pci_magic in pCodeInstruction.
6053         All PCI entries are updated. Now LFSR is supported.
6054         * Removed pic16_pciTRIS is mentioned by mdubuc in source
6055         * added pic16_newpCodeOpLit2 to support instructions with
6056         two literal arguments
6057         * pic16_pCode2str: corrected code that emits assembler instructions
6058         with two literal operands and those that have an access bit modifier
6059         * genericPrint: now PC_ASMDIR pCodes, can emit a label if it exists,
6060         this fixes a bug which caused some labels to be lost, when an
6061         assembler directive was added, i.e. banksel,
6062         * pic16_FixRegisterBanking: improved logic that causes the insertion
6063         of bank switching,
6064         * InlineFunction: functions that are called once, are not any more
6065         inlined. This can be a port option in the future,
6066
6067         * pcode.h: added pCodeOpLit2 and added variable label in pCodeAsmDir
6068
6069         * ralloc.c: added pic16_rel_udata and pic16_fix_udata variables which
6070         hold the corresponding uninitialized symbols,
6071         * pic16_allocProcessorRegister: registers have explicit marked the
6072         accessBank field,
6073         * pic16_allocInternalRegister: registers are explicit marked as
6074         not used,
6075         * pic16_writeUsedRegs: pic16_dynDirectBitRegs was missing from the
6076         processing list, so bit registers were lost,
6077         *
6078
6079         * ralloc.h: added field 'accessBank' and original symbol operand
6080         in register definition,
6081         * removed the field isMapped from register definition,
6082
6083         ** Several functions have been removed from various sources:
6084         BanksUsedFlow2,BanksUsedFlow,FixBankFlow,InstructionRegBank,
6085         pic16_addMemRange,pic16_isREGinBank,pic16_dump_map,pic16_dump_cblock
6086         isSFR,validAddress,mapRegister,assignRegister,pic16_assignFixedRegisters
6087         pic16_assignRelocatableRegisters
6088
6089         ** others have been introduced:
6090         pic16_areRegsSame,pic16_dump_section,checkAddReg,pic16_groupRegistersInSection
6091         pic16_popGetLit2,pic16_popCombine2,pushw,pushaop
6092
6093 2004-01-05 Vangelis Rokas <vrokas AT otenet.gr>
6094
6095         * support/scripts/inc2h.pl: changed definition of BIT_AT
6096         to emit 'sbit at' instead of 'bit at'. This was a request.
6097
6098         PIC16 port related preliminary changes:
6099         * gen.c: prefixed function popRegFromString with
6100         pic16_ and all references to it corrected
6101         * pcode.c: all pic16_pc_* hardware registers prefixed
6102         with underscore (_),
6103         pic16_popCopyGPR2Bit(): function sets register wasUsed=1
6104         * ralloc.c: newReg(): when register is REG_SFR then
6105         set address to rIdx,
6106         pic16_allocProcessorRegister(): marks register wasUsed=0
6107         pic16_writeUsedRegs(): added a call to assign processor
6108         registers via pic16_assignFixedRegisters
6109
6110 2004-01-04  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
6111
6112         * as/mcs51/aslink.h, as/mcs51/lkarea.c, as/mcs51/lkdata.c,
6113         as/mcs51/lkmain.c, as/mcs51/lkmem.c: 8051 linker can now pack
6114         variables in unused register banks.  Also the SSEG is placed
6115         wherever there is enough space for it, and IDATA can be anywhere
6116         in internal RAM.  For now compile using -Wl-Y[stack_size].
6117         The mem file is different for this option as well, since it
6118         makes no sense of talking about DSEG lenght.
6119
6120 2004-01-02 Vangelis Rokas <vrokas AT otenet.gr>
6121
6122         * src/SDCClrange.c: fixed bug 869095 that caused segfault
6123         in certain cases, e.g. when ROM assignment, patch provided
6124         from Albert den Haan.
6125
6126 2004-01-01 Bernhard Held <bernhard AT bernhardheld.de>
6127
6128         Many signedness and type propagation fixes:
6129         * src/SDCCicode.c: made geniCodeCast() static
6130         replaced SPEC_ by IS_ (cosmetic)
6131         (operandOperation): fixed div and mod operation
6132         (usualBinaryConversions): added support for promotion of char
6133         (geniCodeMultiply): replaced (unsigned long) by (TYPE_UDWORD)
6134         (geniCodeDivision): replaced (unsigned long) by (TYPE_UDWORD)
6135         (geniCodeAdd): an array index will stay unsigned, even if promoted
6136         from char to int
6137         (geniCodeArray): ditto
6138         * src/SDCCicode.h: made geniCodeCast() static: removed prototype
6139         * src/SDCCsymt.c (computeType): added more support for char;
6140         promotion of char is selectable by promoteCharToInt, fixed signedness
6141         for all cases
6142         (powof2): replaced (unsigned long) by (TYPE_UDWORD)
6143         * src/SDCCsymt.h (powof2): replaced (unsigned long) by (TYPE_UDWORD)
6144         * src/SDCCval (val*): replaced signedness calculation by
6145         computeType()
6146         rearranged if-branches (cosmetic)
6147         (valShift): added warning W_SHIFT_CHANGED
6148         (valCompare): fixed problem with different types
6149         * src/hc08/rallo.c (leastUsedLR): fixed gcc 3.3 warning
6150         * support/regression/tests/literalop.c: added many cases
6151         * support/regression/tests/ast_constant_folding.c: changed finally to
6152         'unsigned int'
6153         * .version: new year, new version: 2.3.7
6154         * src/SDCCmain.c (main): applied patch #866468
6155         * debugger/mcs51/sdcdb.c (parseCmdLine): added -k for ucsim, patch
6156         provided by Scott Bronson
6157         * doc/sdccman.lyx: updated documentation for sdcdb
6158         updated and added chapter tips
6159
6160 2004-01-01 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
6161
6162         * src/SDCCsymt.h: missing from yesterday's commits
6163
6164 2003-12-31 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
6165
6166         * src/SDCC.y (struct_or_union_specifier),
6167         * support/Util/SDCCerr.c,
6168         * support/Util/SDCCerr.h: verify that struct & union tags are used
6169         as declared.
6170
6171 2003-12-29 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
6172
6173         * src/SDCCglobl.h: missing from yesterday's commits
6174
6175 2003-12-28 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
6176
6177         * src/SDCC.y (external_definition, type_specifier2, sfr_reg_bit,
6178         sft_attributes, struct_declaration, parameter_declaration,
6179         type_name, start_block, declaration_list),
6180         * src/SDCC.lex (check_type): support redefinition of typedef names
6181
6182 2003-12-22 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
6183
6184         * src/mcs51/gen.c (genPlus): added special handling for 256 byte
6185         aligned xdata arrays. Erik helped me with the if clause.
6186
6187 2003-12-20 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
6188
6189         * device/lib/ds390/tinibios.c (CpuSpeed): suppress unreachable code
6190         warning
6191
6192 2003-12-20 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
6193
6194         * src/SDCCast.h,
6195         * src/SDCCast.c (newAst_),
6196         * src/SDCCicode.h,
6197         * src/SDCCicode.c (ast2iCode, newiCode),
6198         * src/SDCCglobl.h,
6199         * src/SDCC.y (logical_and_expr, logical_or_expr, conditional_expr,
6200         expr, statement, expression_statement, selection_statement,
6201         iteration_statement, expr_opt, jump_statement): foundation for tracking
6202         sequence points
6203         * src/SDCCopt.c (killDeadCode): fixed bug #861580 (needs the sequence
6204         point code too)
6205
6206 2003-12-19 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
6207
6208         * support/Util/SDCCerr.c,
6209         * src/SDCCast.h,
6210         * src/SDCCast.c (createCase, createDefault, decorateType),
6211         * src/SDCClabel.c (labelUnreach),
6212         * src/SDCC.y (labeled_statement, jump_statement): More improvements
6213         to error messages.
6214         * support/Util/SDCCerr.c (werrorfl): fixed a non-standard declaration
6215         (with thanks to Stas Sergeev)
6216         * device/include/time.h,
6217         * device/lib/time.c (CheckTime): suppress unreachable code warning
6218
6219 2003-12-18 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
6220
6221         * src/SDCCast.c (createIvalCharPtr),
6222         * src/SDCCglue.c (printChar): fixed bug #862241 (an error in my fix for
6223         bug #753752)
6224         * support/regression/tests/nullstring.c: tests for these two bugs
6225
6226 2003-12-18 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
6227
6228         * support/Util/SDCCerr.h,
6229         * support/Util/SDCCerr.c (E_NOT_ALLOWED),
6230         * src/SDCC.y (struct_declaration, struct_or_union_specifier): complain
6231         about storage class and 'at' used inside struct or union
6232         * src/SDCCBBlock.c (iCodeFromeBBlock),
6233         * src/SDCCcse.c (ifxOptimize),
6234         * src/SDCCglue.c (emitRegularMap, initPointer, printIvalStruct,
6235         printIvalArray, printiValFuncPtr, printIvalCharPtr, printIvalPtr,
6236         printIval, emitStaticSeg, emitOverlay),
6237         * src/SDCClabel.c (deleteIfx),
6238         * src/SDCCopt.c (replaceRegEqv, eBBlockFromiCode),
6239         * src/SDCCast.c (resolveSymbols, createIvalStruct, createIvalArray,
6240         gatherAutoInit, processParms),
6241         * support/Util/SDCCerr.h,
6242         * support/Util/SDCCerr.c (werrorfl): Support for better error location
6243         reporting for post-parse errors.
6244
6245 2003-12-16 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
6246
6247         * src/SDCCval.c (valPlus, valMinus, valShift): fixed some problems with
6248         implicit casts via union; they don't work on big endian systems
6249         (possible fix for bug #861138)
6250
6251 2003-12-16 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
6252
6253         (committed by Erik Petrich <epetrich AT ivorytower.norman.ok.us> on Frieder's behalf)
6254         * src/mcs51/main.c: fixed the fix for bug #737001
6255
6256 2003-12-15  Borut Razem <borut.razem AT siol.net>
6257
6258         * support/scripts/sdcc.nsi: updated for NSIS 2.0 beta 4
6259
6260 2003-12-14 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
6261
6262         * support/makebin/makebin.c: put output in binary mode
6263
6264 2003-12-13 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
6265
6266         * src/mcs51/main.c: fixed bug #737001 for the mcs51. SDCC clears
6267         xdata and data memory on startup. Set the environment variable
6268         SDCC_NOGENRAMCLEAR to disable this.
6269         * src/mcs51/peephole.def,
6270         * src/ds390/peephole.def: using the atomic test and clear instruction jbc
6271         (allows non-interrupt and interrupt code to safely compete for a resource
6272         without the non-interrupt code having to disable interrupts)
6273
6274 2003-12-13 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
6275
6276         * src/SDCCicode.c (geniCodeAdd),
6277         * src/SDCCast.c (decorateType): fixed bug #857753 (need to be careful
6278         with valFromType if type might be a pointer and host is big endian).
6279         * src/SDCCast.c (decorateType): unary plus compatible with all arithmetic
6280         types, not just integer types.
6281         * src/SDCCsymt.c (addSymChain): clarified error message when symbol is
6282         multiply defined with mismatching "at" address.
6283
6284 2003-12-12 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
6285
6286         * src/ds390/main.c (PORT tininative_port): fixed bug #858416
6287         * src/SDCCglue.c (printChar, printIvalChar, emitStaticSeg),
6288         * src/SDCCast.c (createIvalCharPtr, stringToSymbol): handle strings
6289         with embedded nulls (fixed bug #753752)
6290
6291 2003-12-12 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
6292
6293         * src/mcs51/main.c(_mcs51_genRAMCLEAR): using r0 instead of r1/r2.
6294         Apparently this did not see much testing (endless loop)
6295
6296 2003-12-11 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
6297
6298         * src/z80/ralloc.c: set DISABLE_PACK_HL = 1 as a temporary fix to bug #855165
6299
6300 2003-12-10 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
6301
6302         * src/SDCCdebug.c (outputDebugSymbols, outputDebugStackSymbols, dumpSymInfo):
6303         gracefully handle NULL memmap pointers
6304
6305 2003-12-08 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
6306
6307         * src/SDCCopt.c (killDeadCode): change iCode type to DUMMY_READ_VOLATILE
6308         instead of deleting the iCode when an operand is volatile
6309         * src/z80/gen.c (genDummyRead),
6310         * src/mcs51/gen.c (genDummyRead),
6311         * src/ds390/gen.c (genDummyRead),
6312         * src/hc08/gen.c (genDummyRead): handle operands in IC_LEFT and/or IC_RIGHT,
6313         not just IC_RIGHT
6314         * src/SDCCicode.c (geniCodeCall): fixed bug #851607
6315         * src/SDCC.y: fixed bug #850420
6316
6317 2003-12-05 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
6318
6319         Applied z80 i/o port patch from Peter Townson and fixed some operators
6320         to better handle operands in A register.
6321         * device/include/z180.h
6322         * src/SDCC.y
6323         * src/SDCCglue.c
6324         * src/z80/gen.c
6325         * src/z80/gen.h
6326         * src/z80/main.c
6327         * src/z80/peeph-z80.def
6328         * src/z80/peeph.def
6329         * src/z80/z80.h
6330
6331 2003-12-03 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
6332
6333         * src/SDCCsymt.c (addSymChain, compareTypeExact): fixed bug #838241 again
6334
6335 2003-12-01 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
6336
6337         * device/lib/hc08/_mullong.c: Removed extra #endif
6338
6339 2003-12-01 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
6340
6341         * sim/ucsim/hc08.src/inst.cc,
6342         * sim/ucsim/hc08.src/hc08mac.h: fixed some problems with CC flag bits and
6343         carries from x to h
6344         * src/hc08/gen.c (aopAdrStr): fixed problem with 16 bit immediate
6345         * src/hc08/gen.c (XAccRsh): fixed problem with right shift
6346         * device/include/stdarg.h: fixed varargs for hc08
6347         * device/lib/Makefile.in,
6348         * device/lib/hc08/Makefile,
6349         * device/lib/hc08/_mulint.c,
6350         * device/lib/hc08/_mullong.c: fixed some endian problems
6351
6352 2003-11-28 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
6353
6354         * sdcc/src/mcs51/gen.c (genMultOneByte): help peephole 105
6355         * sdcc/src/mcs51/peeph.def: added peephole 186.e array access in code space
6356         * device/lib/_gptrget.c,
6357         * device/lib/_gptrput.c: P2 not used any more (related to #850747, #785979)
6358
6359 2003-11-27 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
6360
6361         * src/SDCClrange.c (findNextUseSym, rlivePoint): fixed bug #849795
6362         * src/SDCCast.c (astErrors): fixed bug #846007
6363         * src/SDCCsymt.c (checkFunction): fixed follow-up bug on bug #846007
6364
6365 2003-11-26 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
6366
6367         * src/SDCCast.c (decorateType): disabled a transformation I added in
6368         revision 1.188 (access to fields of a structure at an absolute address);
6369         it breaks with bitfields, extern declarations, and gcse analysis.
6370         * src/SDCCopt.c (isLocalWithoutDef): if ADDRESS_OF applied to a symbol, it
6371         could be assigned through a pointer, so don't complain.
6372         * src/SDCCast.c (astErrors),
6373         * src/SDCCast.h,
6374         * src/SDCCglue.c (emitRegularMap): fixed bug #847813
6375
6376 2003-11-26 Vangelis Rokas <vrokas AT otenet.gr>
6377
6378         * src/pic16/main.c (_pic16_genIVT): fixed interrupt vector table
6379         * src/pic16/main.c (_pic16_genAssemblerPreamble): re-enabled the
6380         output of __config directives, since gpasm now supports them
6381         * src/pic16/main.c (_pic16_finaliseOptions): define MCU
6382         pre-processor macro, i.e. -DMCU=p18f452
6383         * src/pic16/ralloc.c: renamed packRegisters to pic16_packRegisters,
6384         and modified to handle 'cast' icode similarly to '=' icode
6385         * src/pic16/device.h (typedef struct PIC_device): added field
6386         'extMIface' to indicate that chip has external memory interface
6387         * src/pic16/device.c: added chips 18F248, 18F258, 18F448, 18F458,
6388         18F6520, 18F6620, 18F6680, 18F6720, 18F8520, 18F8620, 18F8680,
6389         18F8720
6390
6391 2003-11-26 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
6392
6393         * src/SDCC.y (pointer): fixed bug #846006
6394         * support/Util/SDCCerr.c: made W_PTR_TYPE_INVALID message clearer
6395         * src/SDCCast.c (decorateType): fixed bug #846009
6396         * src/ds390/peeph.def,
6397         * src/ds390/gen.c (genAnd, genOr),
6398         * src/mcs51/peeph.def,
6399         * src/mcs51/gen.c (genAnd, genOr): fixed bug #846777
6400
6401 2003-11-25 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
6402
6403         Fixed several common-sub-expression bugs (#772861, #768380, & #755323)
6404         * src/SDCCdflow.c
6405         * src/SDCCcse.c
6406         * src/SDCCcse.h
6407         * src/SDCCBBlock.h
6408         * src/SDCCBBlock.c
6409
6410 2003-11-23 Klaus Flittner <klaus_flittner AT gmx.de>
6411
6412         fixed bug #845089
6413         * src/SDCCbitv.h,
6414         * src/SDCCbitv.c: added function to free a bitvector
6415         * src/SDCClrange.h,
6416         * src/SDCClrange.c: added function to recompute the liveranges
6417         * src/avr/ralloc.c,
6418         * src/ds390/ralloc.c,
6419         * src/hc08/ralloc.c,
6420         * src/mcs51/ralloc.c,
6421         * src/pic/ralloc.c,
6422         * src/pic16/ralloc.c,
6423         * src/xa51/ralloc.c,
6424         * src/z80/ralloc.c: recompute the liveranges after register packing
6425
6426 2003-11-21 Klaus Flittner <klaus_flittner AT gmx.de>
6427
6428         * src/SDCCloop.c (newInduction): fixed bug #845630
6429
6430 2003-11-21 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
6431
6432         * src/SDCCsymt.c (compareTypesExact): disabled debugging output
6433         inadvertantly left behind from my 2003-11-12 change
6434
6435 2003-11-20 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
6436
6437         Updated headers I neglected to commit yesterday.
6438         * src/SDCClrange.h,
6439         * src/SDCCicode.h
6440
6441 2003-11-19 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
6442
6443         * src/SDCCcse.c (algebraicOpts): fixed bug #773153
6444         * src/SDCClrange.c (rlivePoint): need to mark IC_RESULT used if POINTER_SET op
6445         * src/SDCCopt.c (eBBlockFromiCode),
6446         * src/SDCClrange.c (hashiCodeKeys, sequenceiCode, computeLiveRanges): seperated
6447         the creation of the key hash table from the sequencing so it can be used
6448         earlier (for some GCSE bug fixes still pending)
6449
6450 2003-11-15 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
6451
6452         * src/mcs51/gen.c (genPlus): generate shortcut for adding 0xab00
6453         * support/regression/tests/addsub.c: testing genPlus shortcut
6454
6455 2003-11-15  Borut Razem <borut.razem AT siol.net>
6456
6457         * src/SDCCmain.c: fixed bug #841645: -MM command line option passed to sdcpp
6458
6459 2003-11-15 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
6460
6461         * src/SDCCcse.c (cseBBlock): fixed bug #527779
6462         * src/SDCCcse.c (deleteGetPointers): rewrote so that the set
6463         ordering is immaterial.
6464         * src/SDCCdflow.c (mergeInExprs): fixed bug #587536
6465
6466 2003-11-14 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
6467
6468         * src/SDCCicode.c (geniCodeAddressOf): fixed part of bug #840381
6469         * src/SDCCopt.c (replaceRegEqv, isLocalWithoutDef): fixed other part
6470         (SIGSEV) of bug #840381
6471         * src/SDCCmain.c (linkEdit, assemble): fixed bug #841606 (don't
6472         unlink new file before rename if new and old filenames are the same)
6473
6474 2003-11-13 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
6475
6476         * src/mcs51/main.c: started fixing bug #737001 (SDCC not clearing
6477         uninitialized variables) for the mcs51. Set environment variable
6478         SDCC_GENRAMCLEAR to test.
6479         xdata initialization slightly shorter
6480
6481 2003-11-12 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
6482
6483         * src/SDCCsymt.h,
6484         * src/SDCCsymt.c (addSymTypeChain, compareTypesExact): fixed bugs
6485         #838241 & 780691 (basicly the same bug)
6486         * src/SDCCBBlock.c (iCode2eBBlock): fixed bug #840148
6487         * src/SDCCBBlock.c (iCodeFromeBBlock): fixed bug #840162
6488
6489 2003-11-11 Bernhard Held <bernhard AT bernhardheld.de>
6490
6491         * src/SDCCmain.c (linkEdit): "fix" #834252
6492
6493 2003-11-11 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
6494
6495         * src/SDCCast.c (removePostIncDecOps, removePreIncDecOps),
6496         * src/SDCCast.h,
6497         * src/SDCC.y: fixed bug #819403
6498
6499 2003-11-08 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
6500
6501         * support/regression/fwk/lib/testfwk.c: printn is recursive and thus needs
6502         the reentrant attribute.
6503         * src/hc08/gen.c (genPackBits): added missing stack readjustment
6504         * sim/ucsim/hc08.src/inst.cc (inst_mov): fixed bugs with mov instruction
6505         simulation
6506         * src/SDCCast.c (decorateType): fixed bug with storage class not being
6507         updated during pointer dereference; f.e. ~(((char *)1)*) was being
6508         erroneously reduced to a literal.
6509         * src/hc08/ralloc.c (packRegisters, rematStr),
6510         * src/hc08/gen.c (aopForRemat): allow literals to be rematerialized in
6511         some cases
6512
6513 2003-11-08 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
6514
6515         * src/mcs51/main.c: fixed bug #838385. Thanks to Josef Pavlik for finding and fixing
6516         * doc/sdccman.lyx: changed from 'article' to 'book'
6517         * doc/Makefile: readded test_suite_spec and cdbfileformat
6518
6519 2003-11-08 Bernhard Held <bernhard AT bernhardheld.de>
6520
6521         * device/include/stdlib.h: include malloc.h to comply with ANSI
6522         * support/regression/tests/malloc.c: include stdlib.h instead of malloc.h
6523
6524 2003-11-07 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
6525
6526         * doc/Makefile: sdccman.pdf should build with correct references (more info in commit msg)
6527         * doc/clean.mk: also remove *.out files
6528         * doc/sdccman.lyx: some additions, larger top/bottom margins
6529
6530 2003-11-07 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
6531
6532         * src/SDCC.y: fixed bug #837365
6533         * support/regression/tests/bitopcse.c
6534         * src/hc08/gen.c (genPointerGet): Don't assume pointer operand is
6535         a symbol (might be valop instead)
6536         * device/lib/Makefile.in: added errno.c to HC08SOURCES
6537         * device/lib/clean.mk: added hc08 to the cleaning list
6538
6539 2003-11-04  Borut Razem <borut.razem AT siol.net>
6540
6541         * configure, configure.in, sdcc_vc_in.h, sdcconf_in.h: reverted changes,
6542           made 2003-11-04
6543         * support/Util/NewAlloc.c, as/hc08/lklibr.c, as/mcs51/lklibr.c,
6544           as/z80/aslist.c, as/z80/assym.c: removed inclusion of nonstandard malloc.h;
6545           malloc is declared in standard stdlib.h
6546
6547 2003-11-06 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
6548
6549         * device/lib/hc08/Makefile: need to clean .rel not .o files
6550         * src/hc08/gen.c (genDjnz): can't use djnz with extended addressing mode
6551
6552 2003-11-06 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
6553
6554         * src/port.h,
6555         * src/hc08/main.c,
6556         * src/mcs51/main.c,
6557         * src/ds390/main.c,
6558         * src/z80/main.c,
6559         * src/avr/main.c,
6560         * src/pic/main.c,
6561         * src/pic16/main.c,
6562         * src/xa51/main.c: added hasExtBitOp & oclsExpense functions to ports
6563         * src/SDCCicode.c: changed several IS_FARSPACE tests to isOclsExpensive
6564         tests (which uses the port's oclsExpense function)
6565         * src/SDCC.y,
6566         * src/SDCCast.c,
6567         * src/SDCCicode.c,
6568         * src/hc08/gen.c,
6569         * src/ds390/gen.c,
6570         * src/mcs51/gen.c: added support for the SWAP iCode (RFE #834167)
6571
6572 2003-11-04 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
6573
6574         * src/SDCCcse.c (ifxOptimize),
6575         * src/SDCClabel.c (labelIfx, deleteIfx): When the condition to
6576         an IFX iCode is volatile, convert to DUMMY_READ_VOLATILE instead
6577         deleting the IFX iCode.
6578         * src/hc08/ralloc.c: reduced unneeded slocs
6579         * src/hc08/gen.c: fixed bug in asmopToBoolean
6580
6581 2003-11-04  Borut Razem <borut.razem AT siol.net>
6582
6583         * configure, configure.in, sdcc_vc_in.h, sdcconf_in.h,
6584           support/Util/NewAlloc.c, as/hc08/lklibr.c, as/mcs51/lklibr.c,
6585           as/z80/aslist.c, as/z80/assym.c: decision to include malloc.h
6586           transferred to configure
6587
6588 2003-11-03 Bernhard Held <bernhard AT bernhardheld.de>
6589
6590         Use headers defined in the C[++] standards:
6591         * sim/ucsim/gui.src/serio.src/fileio.cc
6592         * sim/ucsim/gui.src/serio.src/frontend.cc
6593         * sim/ucsim/gui.src/serio.src/main.cc
6594         * sim/ucsim/gui.src/serio.src/posix_signal.cc
6595         * support/Util/NewAlloc.c
6596         * as/hc08/lklibr.c
6597         * as/mcs51/lklibr.c
6598         * as/z80/aslist.c
6599         * as/z80/assym.c
6600
6601 2003-11-03  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
6602
6603         * Added MSVC projects for hc08 assembler and linker:
6604         all.dsp, config.dsp, sdcc.dsw, /as/hc08/as_hc08.dsp,
6605         /as/hc08/link_hc08.dsp
6606
6607 2003-11-03 Martin Helmling <Martin.Helmling AT octo-soft.de>
6608
6609         * debugger/mcs51/cmd.c: allows filename starting with digit(+ some debug)
6610
6611 2003-11-02 Bernhard Held <bernhard AT bernhardheld.de>
6612
6613         * src/SDCCmain.c (linkEdit): "fixed" again bug #833605
6614
6615 2003-11-01 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
6616
6617         * src/mcs51/main.c: xdata initialization is 13 bytes shorter now
6618
6619 2003-10-31  Borut Razem <borut.razem AT siol.net>
6620
6621         * support/cpp2/cpplib.h,
6622           support/cpp2/cpplib.c,
6623           support/cpp2/cpplex.c,
6624           support/cpp2/cppinit.c: introduced #pragma preproc_asm [ + | - ]
6625           to switch _asm block preprocessing on / off. Default is
6626           #pragma preproc_asm +
6627
6628 2003-10-31  Borut Razem <borut.razem AT siol.net>
6629
6630         * support/cpp2/cpplex.c: Fixed _WIN32 problem with CR-CR-LF sequences
6631           when outputting comment blocks (when executed with -C option) and
6632           _asm (SDCPP specific) blocks
6633
6634 2003-10-31 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
6635
6636         * as/hc08/lkrloc.c (relr): Fixed ihx output, fixed lastAreaIndex warning
6637
6638 2003-10-31 Klaus Flittner <klaus_flittner AT gmx.de>
6639
6640         * src/SDCCcse.c (updateSpillLocation): fixed bug #808027
6641
6642 2003-10-31 Bernhard Held <bernhard AT bernhardheld.de>
6643
6644         * src/SDCCmain.c (linkEdit): "fixed" bug #833605
6645         * src/SDCCast.c (decorateType): fixed bug #832664
6646
6647 2003-10-31  Borut Razem <borut.razem AT siol.net>
6648
6649         * support\cpp2\cpplex.c: fixed for SDCPP:
6650           comments(when executed with -C option) and _asm blocks
6651           were included even if they where in skipped #if block.
6652           Applied solution from GCC cpp 3.3.2
6653
6654 2003-10-31  Borut Razem <borut.razem AT siol.net>
6655
6656         * src/SDCC.lex: sdcc now understands both formats:
6657           '# <line_number> <file_name>' and
6658           '#line <line_number> <file_name>'
6659         * support/cpp2/cppmain.c: sdcpp now generates the standard
6660           '# <line_number> <file_name>' instead of former
6661           '#line <line_number> <file_name>'
6662
6663 2003-10-30  Borut Razem <borut.razem AT siol.net>
6664
6665         * support/cpp2/cpphash.h,
6666         * support/cpp2/cpplib.h
6667         * support/cpp2/cpplex.c,
6668         * support/cpp2/cppmain.c,
6669         * support/cpp2/cppinit.c: fixed bug #828015 - Syntax variation for _asm character constants
6670
6671 2003-10-30 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
6672
6673         Fixed a number of problems revealed by bug #827883.
6674         * src/SDCCloop.c (loopInvariants): Spill location of the
6675         result operand should be recomputed if extracted from
6676         a loop. Also, don't extract assignments of an iTemp
6677         from a literal.
6678         * src/SDCCast.c (isConformingBody): loop reversal should
6679         not occur if the control variable is involved with a
6680         relational operator.
6681
6682 2003-10-28 Bernhard Held <bernhard AT bernhardheld.de>
6683
6684         * .version: bumped to 2.3.6 to reflect the big improvements
6685         made by Erik and Klaus. Thanks!
6686
6687 2003-10-28 Klaus Flittner <klaus_flittner AT gmx.de>
6688
6689         Replaced the livrange code.
6690         * src/SDCClrange.c: added new LR code
6691         * src/SDCCloop.c,
6692         * src/SDCCBBlock.h: removed remainig parts from old LR code
6693         * src/ds390/ralloc.c,
6694         * src/ds390/gen.c: minor fixes to make it work with new code
6695
6696 2003-10-28 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
6697
6698         * as/hc08/asm.h,
6699         * as/hc08/lkrloc.c,
6700         * src/hc08/gen.c,
6701         * src/hc08/ralloc.c: Fix various warnings related to the hc08
6702         * src/SDCCicode.c (geniCodePreInc, geniCodePreDec): Fixed bug #829717
6703         (tweaked fix for bug #818696)
6704
6705 2003-10-23 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
6706
6707         * src/z80/ralloc.c (joinPushes): Fixed bug #828742
6708
6709 2003-10-23 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
6710
6711         * src/SDCCmain.c,
6712         * sdccconf_in.h: Fixed bug #828387 (--disable-hc08-port didn't work)
6713         * src/mcs51/gen.c (gencjneshort),
6714         * src/ds390/gen.c (gencjneshort): Made comparison with AOP_IMMD operand
6715         more efficient (per Scott Bronson's suggestion)
6716
6717 2003-10-22 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
6718
6719         Extended the semantics of the critical keyword to include
6720         individual statements. See RFE #827755 and #799831
6721         * src/SDCC.y
6722         * src/SDCCicode.c
6723         * src/SDCCopt.c
6724         * src/SDCCast.c
6725         * support/Util/SDCCerr.c
6726         * support/Util/SDCCerr.h
6727         * src/mcs51/gen.c
6728         * src/ds390/gen.c
6729         * src/hc08/gen.c
6730
6731 2003-10-19  Borut Razem <borut.razem AT siol.net>
6732
6733         * src/SDCC.lex: fixed bug #825944 - defined yytext_ptr to make it compile with flex 2.5.31
6734
6735 2003-10-19 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
6736
6737         * src/SDCCicode.c (geniCodePreInc, geniCodePreDec, ast2iCode):
6738         Fixed bug #818696
6739         * src/SDCCast.c (ast_print): Fixed --dumptree so that preincrement
6740         and predecrement operand is displayed
6741
6742 2003-10-13 Bernhard Held <bernhard AT bernhardheld.de>
6743
6744         * src/SDCCval.c (valMinus): fixed bug #826041
6745
6746 2003-10-15 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
6747
6748         Some hc08 related updates that I missed earlier
6749         * sim/ucsim/stypes.h
6750         * support/regression/ports/hc08/spec.mk
6751
6752 2003-10-15 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
6753
6754         New target "hc08" for the Motorola 68hc08 family of micros
6755
6756         * configure
6757         * configure.in
6758         * Makefile
6759         * src/hc08/*
6760         * src/SDCCmain.c
6761         * src/port.h
6762         * sim/ucsim/hc08.src/*
6763         * sim/ucsim/configure.in
6764         * src/ucsim/configure
6765         * sim/ucsim/packages_in.mk
6766         * as/hc08/*
6767         * as/Makefile
6768         * device/include/mc68hc908qy.h
6769         * device/lib/hc08/*
6770         * device/lib/Makefile.in
6771         * support/regression/ports/hc08/*
6772         * support/regression/Makefile
6773
6774 2003-10-14 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
6775
6776         * src/z80/gen.c: fixed bug revealed by ast_constant_folding.c
6777         regression test
6778         * src/ds390/gen.c (genCast): fixed bug #821957
6779
6780 2003-10-13 Bernhard Held <bernhard AT bernhardheld.de>
6781
6782         * device/lib/logf.c: "fixed" overlay bug
6783         * support/regression/ports/host/spec.mk: added m library
6784         * support/regression/ports/mcs51-stack-auto/spec.mk: added float funcs
6785         * support/regression/tests/float_trans: added (for Eric)
6786
6787 2003-10-12 Bernhard Held <bernhard AT bernhardheld.de>
6788
6789         * src/mcs51/gen.c (genCpl): fixed bug
6790         http://sf.net/mailarchive/message.php?msg_id=6263915
6791
6792 2003-10-10 Bernhard Held <bernhard AT bernhardheld.de>
6793
6794         * src/SDCCast.c (decorateType): added extended constant folding
6795         * src/SDCCsymt.c (computeType): cleanup
6796         * src/SDCCval.c (valShift): minor optimization
6797         * support/regression/tests/ast_constant_folding.c: added
6798
6799 2003-10-09  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
6800
6801         * src/SDCCmain.c: removed some unintended changes
6802
6803 2003-10-09  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
6804
6805         * src/SDCCmain.c (setParseWithComma): fixed bug #816685
6806         * src/z80/gen.c: fixed part of bug #817589
6807         * src/SDCCsymt.c (checkFunction): fixed bug #817895
6808
6809 2003-10-08 Bernhard Held <bernhard AT bernhardheld.de>
6810
6811         Replaced cast (void **) with (void *) to avoid gcc 3 warning:
6812         * src/SDCCcflow.c
6813         * src/SDCCcse.c
6814         * src/SDCCdflow.c
6815         * src/SDCClabel.c
6816         * src/SDCClrange.c
6817         * src/SDCCmem.c
6818         * src/SDCCopt.c
6819         * src/SDCCpeeph.c
6820         * src/SDCCset.c
6821         * src/avr/ralloc.c
6822         * src/ds390/ralloc.c
6823         * src/izt/ralloc.c
6824         * src/mcs51/ralloc.c
6825         * src/pic/ralloc.c
6826         * src/pic16/ralloc.c
6827         * src/xa51/ralloc.c
6828         * src/z80/ralloc.c
6829         * src/z80/gen.c: removed unused label "release:"
6830
6831 2003-10-06  Borut Razem <borut.razem AT siol.net>
6832
6833         * src/SDCC.lex: removed definition of unused variables
6834           save_optimize and save_options
6835
6836 2003-10-06 Bernhard Held <bernhard AT bernhardheld.de>
6837
6838         * clean.mk: removed '=' in "-maxdepth=1"
6839         * src/SDCCloop.c: replace LRKLAUS with SDCC_LRKLAUS
6840         * src/SDCClrange.c: replace LRKLAUS with SDCC_LRKLAUS
6841
6842 2003-10-06  Borut Razem <borut.razem AT siol.net>
6843
6844         * src/SDCC.lex, src/SDCC.lex: use dbuf for "_asm" definitions;
6845           my_unput() replaced by unput()
6846
6847 2003-10-05 Bernhard Held <bernhard AT bernhardheld.de>
6848
6849         * src/SDCCloop.c (assignmentsToSym, loopInduction): cast argument of
6850         setToNull() to (void *) to avoid gcc3.x's warning: "dereferencing
6851         type-punned pointer will break strict-aliasing rules"
6852         Old LR behaviour is again default; Klaus' LR can be choosen by
6853         defining the environment variable LRKLAUS
6854         * src/SDCCBBlock.h
6855         * src/SDCCloop.c
6856         * src/SDCClrange.c
6857         * src/ds390/ralloc.c (spillThis): applied Klaus' patch
6858         * clean.mk: fixed removal of files in bin/CVS/
6859         * device/lib/clean.mk: fixed removal of directories small and large
6860         * support/Util/SDCCerr.c: changed W_INT_OVL to ERROR_LEVEL_PEDANTIC
6861         * src/SDCCicode.c,
6862         * src/SDCCval.c: removed superflous test for pedantic
6863
6864 2003-10-05  Borut Razem <borut.razem AT siol.net>
6865
6866         * src/SDCC.lex, support/Util/SDCCerr.c, sdcc/support/Util/SDCCerr.h:
6867           Fixed bug #816692: introduced new ERROR_LEVEL_PEDANTIC warning
6868           message "unmatched #pragma SAVE and #pragma RESTORE"
6869
6870 2003-10-04  Frieder Ferlemann <Frieder.Ferlemann AT web.de>
6871
6872         * doc/sdccman.lyx: various additions and updates (interrupts, inline
6873           assembly, critical functions, atomic, nojtbound)
6874
6875 2003-10-04 Bernhard Held <bernhard AT bernhardheld.de>
6876
6877         Applied liferange patch from Klaus Flittner <klaus_flittner AT gmx.de>
6878         * src/SDCCBBlock.h
6879         * src/SDCCloop.c
6880         * src/SDCCloop.h
6881         * src/SDCClrange.c
6882
6883 2003-10-03  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
6884
6885         * src/z80/gen.h,
6886         * src/z80/gen.c (aopOp, aopGet, aopPut, genDummyRead),
6887         * src/mcs51/gen.h
6888         * src/mcs51/gen.c (aopOp, aopGet, aopPut, genDummyRead),
6889         * src/ds390/gen.h
6890         * src/ds390/gen.c (aopOp, aopGet, aopPut, genDummyRead),
6891         * src/SDCCicode.c (ast2iCode, geniCodeDummyRead): Fixed bug #663539
6892         * src/SDCCopt.c (killDeadCode): Fixed bugs #663539 & #816705
6893
6894 2003-10-02  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
6895
6896         * src/z80/gen.c (genRet): fixed bug #524753
6897         * src/z80/gen.c (genCast): fixed internal error on cast from
6898         pointer to long
6899         * src/z80/gen.c (_saveRegsForCall, emitCall): adapted Johan's
6900         fix for bug #477835 to the z80
6901         * src/z80/gen.c (genZ80code, _vemit2, _emit2): added support
6902         for tracking iCodes in the peephole optimizer for z80
6903
6904 2003-10-01  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
6905
6906         * src/SDCCicode.c (geniCodeJumpTable, geniCodeSwitch): fixed
6907         the other part of bug #814548
6908         * src/SDCCpeeph.c (labelInRange): fixed bug #814558
6909
6910 2003-09-30  Bernhard Held <bernhard AT bernhardheld.de>
6911
6912         * src/SDCCcse.c: fixed part of bug #814548
6913
6914 2003-09-28  Borut Razem <borut.razem AT siol.net>
6915
6916         * src/asm.c: rewrite of printILine() to use temporary file instead
6917           a pipe
6918         * src/xa51/main.c: commented out declaration of int rewinds
6919
6920 2003-09-27  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
6921
6922         * src/SDCCicode.c (geniCodeJumpTable): Fixed bug #813206
6923
6924 2003-09-26  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
6925
6926         * src/SDCCdflow.c (computeDataFlow): Fixed bug #810746
6927         * src/asm.c (printILine): Fixed bug #811015
6928
6929 2003-09-22  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
6930
6931         *link/z80/lklibr.c, as/mcs51/lklibr.c: Improved memory allocation and
6932         freeing.
6933
6934 2003-09-21  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
6935
6936         * src/z80/gen.c (setupToPreserveCarry): Fixed bug #796955
6937         * src/z80/gen.c (setupPair, genMovePairPair): Fixed setupPair
6938         to correctly handle general case of AOP_PAIRPTR
6939         * src/z80/gen.c (aopGet, aopPut): Generalized AOP_PAIRPTR handling
6940
6941 2003-09-21  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
6942
6943         * src/mcs51/ralloc.c (fillGaps),
6944         * src/ds390/ralloc.c (fillGaps): fixed bug #810093 (yet another
6945         register positioning bug)
6946
6947 2003-09-21  Bernhard Held <bernhard AT bernhardheld.de>
6948
6949         * device/lib/_fsdiv.c: replaced (1<<31) by (1ul<<31)
6950
6951 2003-09-19  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
6952
6953         * src/mcs51/gen.c (loadDptrFromOperand, genFarPointerGet,
6954         genCodePointerGet, genGenPointerGet, genFarPointerSet,
6955         genGenPointerSet): handle AOP_DPTR correctly when loading dptr
6956         (ralloc doesn't intentionally do this now, but perhaps later)
6957         * src/mcs51/ralloc.c (serialRegAssign, fillGaps),
6958         * src/ds390/ralloc.c (serialRegAssign, fillGaps): fixed some
6959         register positioning bugs (Fixed bug #762602 and #795325)
6960         * src/SDCCicode.c (geniCodeDerefPtr): Track output class correctly
6961         (Fixed bug #808779)
6962         * src/z80/gen.c: increased _vemit2's buffer[] to handle long
6963         lines that --i-code-in-asm generates
6964
6965 2003-09-18  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
6966
6967         *link/z80/lklibr.c, as/mcs51/lklibr.c: Fixed Linux segfaults when
6968         trying to fclose a FILE* that was already closed.
6969
6970 2003-09-18  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
6971
6972         * src/SDCCsymt.c (structElemType): fixed bug #808291 (members
6973         of const struct should be treated as if const themselves)
6974
6975 2003-09-18  Bernhard Held <bernhard AT bernhardheld.de>
6976
6977         * src/SDCCval.c (valPlus, valMinus): fixed bug #808337
6978
6979 2003-07-06  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
6980
6981         * support/librarian/sdcclib.c: Generate correct offsets for libraries with
6982         Unix (/n) and DOS (/r/n) line terminations.
6983
6984 2003-09-17  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
6985
6986         * src/SDCCopt.c (cnvFromFloatCast, cnvToFloatCast): fixed
6987         bug #613775
6988
6989 2003-09-16  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
6990
6991         * src/mcs51/gen.c (genFunction, genEndFunction),
6992         * src/ds390/gen.c (genFunction, genEndFunction): Moved save
6993         and restore of EA so that stack offsets to parameters are
6994         correct when using both critical and reentrant/stack-auto.
6995         * src/z80/gen.c (aopOp): removed erroneous assertion about sloc
6996         size (can be triggered in error if sloc is shared between
6997         different sized objects)
6998         * device/include/float.h: fixed macros to explicitly use
6999         unsigned long where needed
7000
7001 2003-09-15  Bernhard Held <bernhard AT bernhardheld.de>
7002
7003         Feature req. 799831: added code to allow nesting of critical functions
7004         * src/mcs51/gen.c (genFunction, genEndFunction)
7005         * src/ds390/gen.c (genFunction, genEndFunction)
7006
7007 2003-09-14  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
7008
7009         * src/SDCCsymt.c (sclsFromPtr),
7010         * src/SDCCsymt.h,
7011         * src/SDCCast.c (decorateType): fixed bug #462971. Also, better
7012         support for standard C idiom of memory mapped variables; for
7013         example, *((xdata int*)0x1234) = 1 is now internally equivalent
7014         to xdata int at 0x1234 tempvar = 1.
7015         * sim/ucsim/z80.src/inst_xd.cc: fixed bug #805483 with patch
7016         provided by Akiya ISHIDA
7017
7018 2003-09-13  Bernhard Held <bernhard AT bernhardheld.de>
7019
7020         * src/SDCCval.c (cheapestVal): reenabled to reduce int to char
7021         * src/SDCCval.c (constVal): added reduction from int to char
7022         * src/SDCCval.c (valMult, valDiv): fixed sign handling
7023         * src/SDCCval.c (valShift): fixed after change of cheapestVal()
7024         * src/SDCCval.c (valCompare): fixed EQ_OP and NE_OP; they have
7025         to ignore the sign
7026         * support/regression/tests/shifts.c: fixed
7027
7028 2003-09-13  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
7029
7030         * src/z80/gen.c (genXor): Fixed bug #805445
7031
7032 2003-09-12  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
7033
7034         Fixed bug #621531 (const & volatile confusion in the type chain).
7035         DCL_PTR_CONST, DCL_PTR_VOLATILE, & IS_PTR_CONST now exclusively
7036         refer to the const or volatile state of the pointer itself.
7037
7038         * src/SDCCast.c
7039         * src/SDCCglue.c
7040         * src/SDCCicode.c
7041         * src/SDCCsymt.c
7042         * src/SDCCval.c
7043         * src/SDCC.y
7044         * src/SDCCsymt.h
7045         * src/pic/gen.c
7046         * src/pic/ralloc.c
7047         * src/pic16/gen.c
7048         * src/pic16/ralloc.c
7049         * support/regression/tests/const.c
7050
7051 2003-09-10  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
7052
7053         When checking for duplicated modules, use absolute paths
7054         instead of relative paths.  Files changed:
7055
7056         * as/mcs51/lklib.c
7057         * link/z80/lklib.c
7058
7059 2003-09-09  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
7060
7061         * src/SDCCicode.c (geniCodeLogic): fixed bug #797572
7062
7063 2003-09-07  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
7064
7065         * device/include/string.h: added size_t typedef, changed
7066         prototypes to use size_t, eliminated separate reentrant and
7067         non-reentrant declarations, added _memmove declaration
7068         * device/lib/_memcpy.c: changed to use size_t instead of int,
7069         changed /4 to >>2 to avoid division library call
7070         * device/lib/_memcmp.c,
7071         * device/lib/_memset.c,
7072         * device/lib/_strncat.c,
7073         * device/lib/_strncpy.c,
7074         * device/lib/_strncmp.c: changed to use size_t instead of int
7075         * device/lib/_memmove.c: new file (fixed bug #772294)
7076         * device/lib/Makefile.in: added _memmove.c
7077         * device/lib/z80/asm_strings.s: fixed bug #772290
7078         * support/regression/tests/bitfields.c: attempt to fix host assertion
7079         failure on amd64-unknown-linux2.2
7080
7081 2003-09-06  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
7082
7083         * src/z80/gen.c (aopPut, spillPairReg): fixed bug #800998
7084         * src/z80/gen.c (genFunction, genEndFunction): fixed "bug" #774700
7085         * as/z80/asmain.c (main): fixed bug #801766
7086
7087 2003-09-06  Bernhard Held <bernhard AT bernhardheld.de>
7088
7089         * src/SDCCicode.c (ast2iCode): fixed differences in iCode with different
7090         compilers
7091
7092 2003-09-05  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
7093
7094         * src/SDCCast.c (isConformingBody): fixed loop reversal bug
7095         reported in bug #800609
7096
7097 2003-09-04  Vangelis Rokas <vrokas AT otenet.gr>
7098
7099         * Top header beautifications in src/pic16 directory:
7100           device.c, device.h, gen.c, gen.h, genarith.c, glue.c, pcode.c,
7101           pcodeflow.c, pcodeflow.h, pcode.h, pcodepeep.c, pcoderegs.c,
7102           pcoderegs.h, ralloc.c, ralloc.h
7103         * main.c: added top header and GPL license notice
7104         * pcode.c: fixed the if-conditional warning
7105
7106 2003-09-04  Bernhard Held <bernhard AT bernhardheld.de>
7107
7108         * device/lib/_mullong.c: replaced int by short for gcc
7109
7110 2003-08-31  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
7111
7112         * src/SDCCpeeph.c (notVolatile, notVolatileVariable): handle IFX
7113         and JUMPTABLE iCodes properly now (worked by accident before)
7114         * src/mcs51/gen.c (leftRightUseAcc),
7115         * src/ds390/gen.c (leftRightUseAcc): handle IFX and JUMPTABLE
7116         iCode properly now. Use getSize instead of nRegs since a & b
7117         aren't part of the nRegs tally.
7118
7119 2003-08-31  Vangelis Rokas <vrokas AT otenet.gr>
7120
7121         * src/pic16/main.c: corrected offsets of interrupt vectors in _pic16_genIVT()
7122         * src/pic16/pcode.c: fix to disable inserting BANKSEL directive
7123           before instructions that use the _STATUS register
7124
7125 2003-08-31  Bernhard Held <bernhard AT bernhardheld.de>
7126
7127         * src/mcs51/gen.c (freeAsmop): fixed off by one in stack offset (AOP_STK)
7128         * src/mcs51/gen.c (genNearPointerSet): added missing opcode for
7129         fetching of the pointer
7130         * src/mcs51/gen.c (genNearPointerGet): added reuse of PREG,
7131         copied from genNearPointerSet()
7132         * src/mcs51/gen.c (genNearPointerGet): don't pop r0/r1, if RESULTONSTACK
7133         * src/mcs51/gen.c: changed order of freeAsmop(left/right/result)-calls.
7134         If they pop r0/r1 they must be called in the opposite order than aopOp().
7135         * device/lib/_mullong.c: fixed for "--model-large --int-long-reent"
7136         (resp. --stack-auto), prepared for --xstack
7137
7138 2003-08-28  Frieder Ferlemann <Frieder.Ferlemann AT web.de>
7139
7140         * doc/sdccman.lyx: reverted tables to those in cvs 1.64
7141
7142 2003-08-28  Bernhard Held <bernhard AT bernhardheld.de>
7143
7144         * device/lib/_startup.c: quick & dirty fix for ds390/ds400;
7145         these ports have their own __sdcc_external_start()
7146
7147 2003-08-26  Bernhard Held <bernhard AT bernhardheld.de>
7148
7149         pic patch provided by Slade Rich <slade_rich AT yahoo.com>
7150         * src/pic/glue.c (pic14printPublics): fixed bug introduced when symbol
7151         type for bits was changed. It resulted in bit variables becoming
7152         global, which is not permitted in PIC 14 assembly output.
7153
7154 2003-08-23  Frieder Ferlemann <Frieder.Ferlemann AT web.de>
7155
7156         * doc/sdccman.lyx: various additions and updates. Rearranged sections
7157
7158 2003-08-22  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
7159
7160         Z80 and MCS51 linkers complaint if a public symbol is defined
7161         in more than one library module:
7162
7163         * as/mcs51/lklib.c
7164         * link/z80/lklib.c
7165         * as/mcs51/Makefile.in
7166
7167 2003-08-22  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
7168
7169         A few small changes that speed up the peephole optimizer.
7170
7171         * src/SDCCpeeph.c
7172
7173 2003-08-22  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
7174
7175         Try to make the peephole optimizer smarter by maintaining
7176         an association between the assembly source code and the
7177         iCodes that originated them. Put this information to use
7178         with a new peephole rule condition "notVolatile" so that
7179         the rules can be aggressive yet still safe.
7180
7181         * src/SDCCpeeph.c
7182         * src/SDCCpeeph.h
7183         * src/mcs51/gen.c
7184         * src/mcs51/peeph.def
7185
7186 2003-08-20  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
7187
7188         Fixed bug #741761
7189
7190         * src/mcs51/gen.c (aopForSym, leftRightUseAcc),
7191         * src/ds390/gen.c (aopForSym, leftRightUseAcc): preserve A and B
7192         if the left or right operand symbols have the accuse flag set.
7193
7194 2003-08-20  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
7195
7196         Changed the type of the result of the ! (NOT) operator to char;
7197         previously it returned the same type as the source. This allows
7198         us to eliminate all the genFloatNot functions (all of its target
7199         implementations were very buggy) since !float can use the same
7200         code as !long now.
7201
7202         * src/SDCCicode.c (ast2iCode): ! returns char
7203         * src/mcs51/gen.c (genNot, genNotFloat),
7204         * src/ds390/gen.c (genNot, genNotFloat),
7205         * src/z80/gen.c (genNot, genNotFloat),
7206         * src/pic/gen.c (genNot, genNotFloat),
7207         * src/pic16/gen.c (genNot, genNotFloat): eliminated genNotFloat
7208
7209 2003-08-19  Bernhard Held <bernhard AT bernhardheld.de>
7210
7211         pic patch provided by Slade Rich <slade_rich AT yahoo.com>
7212         1. Interrupt would not compile properly. Ensure PCLATH register is saved
7213            during interrupts. Ensure WSAVE is located at a shared bank address.
7214         2. Fixed page selection in some places
7215         3. Fixed BTFSS/C to where necessary use registers directly and not simply
7216            the registers name strings.
7217         4. Fixed "signed / unsigned compare" compiler warnings.
7218         5. The PIC port manages its own allocation of the general purpose
7219            registers, but makes no attempt to reuse them. As a result when
7220            compiling it soon runs out of general purpose registers. Some
7221            additional code was added to the files pcode.c and device.c to walk
7222            through the function call tree and rename the registers so that they
7223            get reused.
7224
7225         * src/pic/device.c
7226         * src/pic/gen.c
7227         * src/pic/glue.c
7228         * src/pic/pcode.c
7229         * src/pic/pcode.h
7230         * src/pic/ralloc.c
7231         * src/pic/ralloc.h
7232         * src/pic/genarith.c: Fixed problems with PIC 14 port in functions
7233         genPlus() & genMinus() when the result is the same as left or right
7234
7235 2003-08-18  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
7236
7237         * src/z80/gen.c (isUnsplitable, fetchPairLong): fixed bug #770454
7238
7239 2003-08-18  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
7240
7241         Made bitfield a distinct type from bit so that bitfields
7242         convert as per ANSI C and bits retain their traditional
7243         boolean style behaviour. Implemented bitfield support in
7244         the z80 port.
7245
7246         * src/SDCCsymt.h,
7247         * src/SDCCsymt.c,
7248         * src/SDCCast.c,
7249         * src/cdbFile.c,
7250         * src/mcs51/gen.c,
7251         * src/ds390/gen.c: bit v bitfield split
7252         * src/z80/gen.c: New support for bitfields
7253         * support/regression/tests/bitfields.c: reenabled z80,
7254         added more tests
7255
7256 2003-08-17  Frieder Ferlemann <Frieder.Ferlemann AT web.de>
7257
7258         Rules 246.x, 247.x relate to bitfields, the others speed up
7259         access to xdata mapped I/O devices.
7260
7261         * src/mcs51/peeph.def: added 26 peepholes 246.x - 248.x, 180.x
7262
7263 2003-08-16  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
7264
7265         Cleaned up genPackBits and genUnpackBits and added two helper
7266         functions, emitPtrByteGet & emitPtrByteSet. Added optimizations
7267         for literal assignments in genPackBits (thanks to Frieder for
7268         reminding me).
7269
7270         * src/mcs51/gen.c
7271         * src/ds390/gen.c
7272
7273 2003-08-16  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
7274
7275         Fixed bug #748310 (pointer to function type mishandled when the
7276         function name is omitted). Also fixed a SIGSEGV when a function
7277         attribute (reentrant, etc) is used on a non-function or on a
7278         function but misplaced before the parameter list.
7279
7280         * src/SDCC.y (abstract_declarator, abstract_declaractor2): fixed
7281         bug #748310
7282         * src/SDCC.y (declarator2_function_attributes): avoided SIGSEGV
7283         * support/Util/SDCCerr.h,
7284         * support/Util/SDCCerr.c: Added func attr misuse error msg
7285
7286 2003-08-13  Bernhard Held <bernhard AT bernhardheld.de>
7287
7288         Fixed bug #787649 by anonymous
7289         * src/SDCCglue.c (emitRegularMap): added emission of sloc for func ptr
7290         * src/ds390/gen.c (aopForSym): fixed func ptr in sloc
7291
7292 2003-08-14  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
7293
7294         Fixed numerous bitfield problems.
7295
7296         * src/SDCC.y: More bitfield related error checking
7297         * src/SDCCsymt.h,
7298         * src/SDCCsymt.c (compStructSize): fixed bitfield offset calc
7299         * support/Util/SDCCerr.h,
7300         * support/Util/SDCCerr.c: Added & edited some bitfield err msgs
7301         * src/mcs51/gen.c (genPackBits, genUnpackBits): fixed mask bugs
7302         * src/ds390/gen.c (genPackBits, genUnpackBits): fixed mask bugs
7303         * support/regression/tests/bitfields.c: tests added
7304
7305 2003-08-13  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
7306
7307         Made the constant following the "interrupt" keyword optional. If
7308         omitted, the function will not automatically be given an entry
7309         in the interrupt vector table (similar to #pragma NOIV, but
7310         less syntacticly kludgy). The interrupt number is also now
7311         range checked. Also fixed a bug in the high order bit example
7312         in the manual.
7313
7314         * src/SDCC.y
7315         * src/SDCCmem.c
7316         * src/SDCCglue.c
7317         * src/SDCCsymt.h
7318         * support/Util/SDCCerr.c
7319         * support/Util/SDCCerr.h
7320         * doc/sdccman.lyx
7321
7322 2003-08-13  Bernhard Held <bernhard AT bernhardheld.de>
7323
7324         * src/SDCCcse.c (algebraicOpts): fix bug converting op from value to type
7325         * src/SDCCicode.c (operandOperation): rewritten some ops
7326         (*, ==, unary_minus) to fix possible overflows and to accord with ANSI
7327         * src/SDCCsymt.c (computeType): literals are handled the same way as any
7328         other type
7329         * src/SDCCval.c (cheapestVal): removed, it doesn't accord with ANSI (can
7330         be re-activated by defining REDUCE_LITERALS)
7331         * src/SDCCval.c (constVal): fixed; hex and octal constants can be
7332         unsigned, but are signed by default
7333         * src/SDCCval.c (constVal): rearranged
7334         * src/SDCCval.c (valMod): preliminary fix
7335         * src/SDCCval.c (valCastLiteral): use TYPE_* types
7336         * support/regression/literalop.c: added, work in progress
7337
7338 2003-08-12  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
7339
7340         Generate warnings for useless declarations like "char data;"
7341         that don't do what new users expect.
7342
7343         * src/SDCC.y
7344         * support/Util/SDCCerr.h
7345         * support/Util/SDCCerr.c
7346
7347 2003-08-09  Bernhard Held <bernhard AT bernhardheld.de>
7348
7349         * src/SDCCval.c (valMult): fix overflow detection of negative int
7350
7351 2003-08-07  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
7352
7353         * src/z80/ralloc.c (joinPushes): made compatible with new signedness
7354
7355         Changes to support big endian targets:
7356
7357         * src/ports.h
7358         * src/SDCCglue.c
7359         * src/avr/main.c
7360         * src/ds390/main.c
7361         * src/izt/i186.c
7362         * src/mcs51/main.c
7363         * src/pic/main.c
7364         * src/pic16/main.c
7365         * src/xa51/main.c
7366         * src/z80/main.c
7367
7368 2003-08-06  Bernhard Held <bernhard AT bernhardheld.de>
7369
7370         * src/SDCCval.c (cheapestVal): changed behaviour to the same as constVal()
7371         * device/lib/time.c: fixed warning "integer overflow in expression"
7372
7373 2003-08-05  Bernhard Held <bernhard AT bernhardheld.de>
7374
7375         * src/SDCCval.c (cheapestVal, valueFromLit): use TYPE_* types
7376         * src/SDCCval.c (constVal): changed default to signed; hex and octal
7377         constants are unsigned; added recognition of "u" flag for unsigned
7378         * src/SDCCval.c (valMult): fixed signdness, added warning for overflow
7379         * src/SDCCval.c (valDiv, valMod): fixed signdness
7380         * src/SDCCicode.c (operandOperation): fixed critical typo; fixed
7381         signedness of modulo, left and right shift
7382         * support/Util/SDCCerr.c: added warning "integer overflow in expression"
7383         * support/Util/SDCCerr.h: added warning W_INT_OVL
7384         * src/SDCCast.c (decorateType): fixed gcc3.3 warning
7385         * src/SDCCast.c (ast_print): improved output of constants
7386
7387 2003-08-04  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
7388
7389         Fixed some warnings when building with MSVC:
7390
7391         * as\mcs51\asdata.c
7392         * as\z80\asdata.c
7393         * as\mcs51\asm.h
7394         * as\z80\asm.h
7395         * link\z80\aslink.h
7396         * link\z80\lkdata.c
7397         * link\z80\lkeval.c
7398         * link\z80\lkgb.c
7399         * link\z80\lkihx.c
7400         * link\z80\lks19.c
7401         * link\z80\lksym.c
7402         * support\cpp2\cpplib.c
7403         * src\ds390\gen.c
7404         * src\mcs51\gen.c
7405
7406 2003-08-03  Bernhard Held <bernhard AT bernhardheld.de>
7407
7408         * src/SDCCast.c (constExprTree): fix bug #781827 by Carl Worth <cworth AT isi.edu>
7409
7410 2003-08-01  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
7411
7412         * support\librarian\clean.mk: Do not remove Makefile.
7413         * support\librarian\Makefile: added.
7414
7415 2003-08-01  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
7416
7417         Added librarian to MSVC build:
7418         * all.dsp
7419         * sdcc.dsw
7420         * support\librarian\librarian.dsp
7421
7422         'configure' not needed for librarian, removed:
7423         * support\librarian\configure
7424         * support\librarian\configure.in
7425         * support\librarian\config_in.h
7426         * support\librarian\Makefile.in
7427
7428         Hopefully these ones built the librarian and the rest of sdcc properly:
7429         * Makefile
7430         * Makefile.common.in
7431
7432         Messed up 'configure', so revert to previous version:
7433         * configure
7434         * configure.in
7435
7436 2003-07-31  Bernhard Held <bernhard AT bernhardheld.de>
7437
7438         * src/SDCCicode.c (operandOperation): 3. fix, this time for Alpha; ULONG has 64 bits
7439         there, while the mantissa of a double is "only" 53 bits wide.
7440
7441 2003-07-31  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
7442
7443         Adding sdcclib to the build.  MSVC project coming soon.
7444         Files added/changed:
7445
7446         * support\librarian\clean.mk
7447         * support\librarian\configure
7448         * support\librarian\configure.in
7449         * support\librarian\config_in.h
7450         * support\librarian\Makefile.bcc
7451         * support\librarian\Makefile.in
7452         * support\librarian\sdcclib.c
7453         * Makefile.bcc
7454         * Makefile
7455         * Makefile.common.in
7456         * configure
7457         * configure.in
7458
7459 2003-07-29  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
7460
7461         Linker now complaints if linked modules have conflicting options, for
7462         example, one compiled using --model-large and another one compiled with
7463         --model-small.  The following files were modified:
7464
7465         * as\mcs51\asdata.c
7466         * as\mcs51\aslink.h
7467         * as\mcs51\asm.h
7468         * as\mcs51\asmain.c
7469         * as\mcs51\asout.c
7470         * as\mcs51\i51pst.c
7471         * as\mcs51\lkdata.c
7472         * as\mcs51\lklibr.c
7473         * as\mcs51\lkmain.c
7474         * as\z80\asdata.c
7475         * as\z80\asm.h
7476         * as\z80\asmain.c
7477         * as\z80\asout.c
7478         * as\z80\z80pst.c
7479         * link\z80\aslink.h
7480         * link\z80\lkdata.c
7481         * link\z80\lklibr.c
7482         * link\z80\lkmain.c
7483         * src\SDCCglue.c
7484
7485 2003-07-28  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
7486
7487         *link/z80/aslink.h, link/z80/lklibr.c, as/mcs51/aslink.h,
7488         as/mcs51/lklibr.c: Generate a warning when a library is not found.
7489
7490 2003-07-28  Bernhard Held <bernhard AT bernhardheld.de>
7491
7492         * src/z80/mappings.i: fix _mul[us][int,long] entries
7493
7494 2003-07-26  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
7495
7496         *src/SDCCmain.c: do not search for crt0.o when using --nostdlib
7497
7498 2003-07-24  Bernhard Held <bernhard AT bernhardheld.de>
7499
7500         * src/SDCCicode.c (operandOperation): really fixed problem with bitops
7501         * support/regression/tests/bitopcse.c: added
7502         fixed warning:
7503         * src/avr/gen.c:
7504         * src/pic/gen.c:
7505         * src/pic16/gen.c:
7506         * src/z80/gen.c:
7507         * src/xa51/gen.c:
7508
7509 2003-07-24  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
7510
7511         added support for new library format to z80, gbz80 linkers:
7512         *link/z80/aslink.h
7513         *link/z80/lklex.c
7514         *link/z80/lklib.c
7515         *link/z80/lklist.c
7516
7517 2003-07-24  Bernhard Held <bernhard AT bernhardheld.de>
7518
7519         * src/SDCCicode.c (operandOperation): fixed problem with bitops and 0xffffffff;
7520         after {double d = 0xffffffff; long l = d;} l will be 0x80000000 (LONG_MIN)
7521
7522 2003-07-23  Bernhard Held <bernhard AT bernhardheld.de>
7523
7524         added DUMMY_READ_VOLATILE:
7525         * src/SDCC.y:
7526         * src/avr/gen.c:
7527         * src/xa51/gen.c:
7528         * src/z80/gen.c:
7529         * src/pic/gen.c:
7530         * src/pic16/gen.c:
7531         * src/mcs51/gen.c:
7532         * src/ds390/gen.c:
7533         * src/SDCCcse.c (algebraicOpts): many improvements
7534         * src/SDCCcse.h: removed algebraicOpts()
7535         * src/SDCCicode.c (picDummyRead): added
7536
7537 2003-07-23  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
7538
7539         * as/mcs51/lkmem.c: Changed message "Insufficient DRAM memory" to
7540         "Insufficient space in data memory".
7541
7542 2003-07-20  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
7543
7544         * src/mcs51/gen.c: fixed bug #771358
7545         * src/z80/gen.c: fixed bug #759087
7546
7547 2003-07-20  Bernhard Held <bernhard AT bernhardheld.de>
7548
7549         * src/pic16/glue.c: minor cleanup by Vangelis
7550
7551 2003-07-19  Frieder Ferlemann <Frieder.Ferlemann AT web.de>
7552
7553         * device/include/regc515c.h: fixed #758477
7554         * device/lib/_gptrget.c: saving some cycles in generic pointer get
7555         * device/lib/_gptrput.c: saved a few bytes
7556         * my tab spacing is 8, yours too?)
7557         * device/lib/_ser.c: process RX bytes earlier than TX bytes
7558         * device/lib/serial.c: process RX bytes earlier than TX bytes
7559         * src/mcs51/gen.c(genGenPointerGet/Set): removed writing of type after postincrement
7560
7561 2003-07-18  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
7562
7563         * src/z80/gen.c: fixed some right shift bugs (#772726 among them)
7564
7565 2003-07-17  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
7566
7567     * link/z80/lklibr.c: fixed bug when there is a '.' in a library path.
7568
7569 2003-07-17  Bernhard Held <bernhard AT bernhardheld.de>
7570
7571         * device/lib/Makefile.in: bad fix, reverted to 1.43
7572
7573 2003-07-16  Bernhard Held <bernhard AT bernhardheld.de>
7574
7575         * device/lib/Makefile.in: added missing z80 object files
7576
7577 2003-07-14  Bernhard Held <bernhard AT bernhardheld.de>
7578
7579         * src/SDCCcse.c (algebraicOpts): CSE fun with &|^ and 0x00/0xff literals
7580         pic16 progress by Vangelis:
7581         * src/SDCCglobl.h:
7582         * src/SDCCmain.c:
7583         * src/pic/Makefile:
7584         * src/pic:
7585         * pic/Makefile:
7586         * pic16/device.c:
7587         * pic16/device.h:
7588         * pic16/gen.c:
7589         * pic16/gen.h:
7590         * pic16/genarith.c:
7591         * pic16/glue.c:
7592         * pic16/main.c:
7593         * pic16/pcode.c:
7594         * pic16/pcode.h:
7595         * pic16/pcodepeep.c:
7596         * pic16/peeph.def:
7597
7598 2003-07-13  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
7599
7600     * src/SDCCmain.c, src/SDCCglobl.h: added option --no-std-crt0
7601
7602 2003-07-12  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
7603
7604     * sdcc.dsw, all.dsp, link/z80/linkgbz80.dsp, as/z80/as-gbz80.dsp:
7605     added gbz80 build to MSVC project.
7606     * src/SDCCmain.c, src/SDCCglue.c, src/z80/main.c, src/z80/z80.dsp,
7607     link/z80/aslink.h, linkz80.dsp: cleaned up z80 and gbz80 asm files
7608     from 8051 stuff and setup so it links using a .lnk file.
7609
7610 2003-07-06  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
7611
7612     * support/librarian/sdcclib.c: sdcc librarian.
7613     * as/mcs51/aslink.h, as/mcs51/lklib.c: Support for libraries created
7614     with sdcclib.
7615
7616 2003-07-03  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
7617
7618     * as/mcs51/lkmain.c: properly handle extensions in function afile.
7619
7620 2003-07-02  Borut Razem <borut.razem AT siol.net>
7621
7622         * src/port.h, src/SDCCmain.c, src/pic/glue.h, src/pic/main.c,
7623         src/pic16/glue.h, sdcc/src/pic16/main.c, src/izt/i186.c,
7624         src/izt/tlcs900h.c, src/avr/main.c, src/ds390/main.c, src/mcs51/main.c,
7625         src/xa51/main.c, src/z80/main.c:
7626         virtualization of glue() function: each port has it's own glue function,
7627         which is accessed by do_glue function pointer in PORT.general structure
7628
7629 2003-07-01 Kevin Vigor <kevin AT vigor.nu>
7630
7631         * DS800C400 fun, improved ROM interface and tinibios.
7632
7633 2003-06-27 Kevin Vigor <kevin AT vigor.nu>
7634
7635         * More support for DS80C400. Now includes beginning of interface to ROM.
7636
7637 2003-06-25  Bernhard Held <bernhard AT bernhardheld.de>
7638
7639         * src/mcs51/gen.c (gencjneshort): fixed bug #760345
7640
7641 2003-06-20  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
7642
7643         * as/mcs51/lkaomf51.c: Make sure the size of the last procedure is correct.
7644
7645 2003-06-19  Borut Razem <borut.razem AT siol.net>
7646
7647         * src/z80/main.c: fixed Z80 port again: missing -k library paths in linker command line
7648
7649 2003-06-19  Borut Razem <borut.razem AT siol.net>
7650
7651         * src/SDCCutil.h, src/SDCCutil.c, src/SDCCglobl.h, src/SDCCmain.c, src/z80/main.c:
7652         fixed Z80 port - crt0.o: cannot open.
7653
7654 2003-06-19  Bernhard Held <bernhard AT bernhardheld.de>
7655
7656         * support/Util/MySystem.c (merge_command): revert bad fix
7657
7658 2003-06-18  Borut Razem <borut.razem AT siol.net>
7659
7660         * src/SDCC.lex, src/SDCCmain.c: fixed some warnings, introduced with changes made 15.06.1003
7661
7662 2003-06-18  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
7663
7664         * src/SDCCglobl.h, src/SDCCmain.c, doc/sdccman.lyx:
7665         option --use-stdout sends errors to stdout instead of stderr.
7666
7667 2003-06-18  Bernhard Held <bernhard AT bernhardheld.de>
7668
7669         * support/Util/MySystem.c (merge_command): quick fix for Linux segfault with \"cmd\" arg
7670
7671 2003-06-15  Borut Razem <borut.razem AT siol.net>
7672
7673         * support/cpp2/sdcc.h: HAVE_DOS_BASED_FILE_SYSTEM defined for _WIN32
7674         * src/SDCC.lex: cloneXxx and copyAndFreeXxx functions for options and optimize stack handling
7675         * src/SDCCglobl.h, src/SDCCmain.c, src/ds390/main.c, src/mcs51/main.c, src/z80/main.c:
7676         fixed width array of pointers replaced with sets;
7677         multiple include and lib paths ared transferred to preprocessor and linker
7678         * src/SDCCset.c, src/SDCCset.h: added function setFromSetNonRev() and mergeSets()
7679         * src/SDCCsymt.c: reimplemented function inCalleeSaveList() by using sets instead
7680         fixed width array of pointers
7681         * src/SDCCutil.c, src/SDCCutil.h: added functions fputStrSet(), appendStrSet(), joinStrSet();
7682         removed functions addToList(), join(), joinn(), pathCharsEquivalent(), pathCharTransform(),
7683         fixupPath(), getPathDifference()
7684         * src/ds390/gen.c, src/mcs51/gen.c: reimplemented function  inExcludeList() by using sets instead
7685         fixed width array of pointers
7686
7687 2003-06-11  Bernhard Held <bernhard AT bernhardheld.de>
7688
7689         * src/pic16/ralloc.c: fix warnings
7690         * src/pic16/pcode.c: fix warning
7691
7692 2003-06-10  Scott Dattalo  <scott AT dattalo.com>
7693
7694          Scott D. for Vangelis Rokas (vrokas AT otenet.gr). I (scott) don't
7695         know all the details, but essentially this set of changes enable
7696         the pic16 port to generate movff instructions and generate assembler
7697         directives,
7698         * src/SDCCmain.c:
7699         * src/pic16/gen.c:
7700         * src/pic16/glue.c:
7701         * src/pic16/pcode.c:
7702         * src/pic16/device.c:
7703         * src/pic16/main.c:
7704         * src/pic16/pcode.h:
7705         * src/pic16/pcoderegs.c:
7706         * src/pic16/ralloc.c:
7707         * src/pic16/ralloc.h:
7708
7709 2003-06-08  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
7710
7711         * support/Util/SDCCerr.c, src/SDCCglobl.h, src/SDCCmain.c, doc/sdccman.lyx:
7712         added option --vc, so sdcc errors and warnings are compatible with
7713         Microsoft Visual Studio.
7714
7715 2003-06-07  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
7716
7717         * device/lib/_atof.c, device/lib/Makefile.in, device/include/stdlib.h,
7718           device/lib/libfloat.lib: added atof function.
7719
7720 2003-06-04  Bernhard Held <bernhard AT bernhardheld.de>
7721
7722         * doc/sdccman.lyx: updated to Lyx 1.3
7723         * doc/cdbfileformat.lyx: updated to Lyx 1.3
7724         * doc/test_suite_spec.lyx: updated to Lyx 1.3
7725         * doc/Makefile: added fix for the \tabularnewline problem, thanks to Jesus
7726
7727 2003-06-03  Bernhard Held <bernhard AT bernhardheld.de>
7728
7729         * src/SDCCpeeph.c: separate peepRules2pCode() for pic16 by "Vangelis Rokas" <vrokas AT otenet.gr>
7730
7731 2003-06-02  Frieder Ferlemann <Frieder.Ferlemann AT web.de>
7732
7733         * doc/sdccman.lyx: cvs revision keywords, passing pdf information in latex preamble,
7734           additions to the "related tools/documentation" section
7735
7736 2003-06-02  Bernhard Held <bernhard AT bernhardheld.de>
7737
7738         * src/SDCCglue.c (tempfileandname): added check for missing TMP/TEMP/TMPDIR variable
7739
7740 2003-05-29  Bernhard Held <bernhard AT bernhardheld.de>
7741
7742         * src/pic/device.c: added 16F819, patch by "David I. Lehn" <dlehn AT vt.edu>
7743         * src/SDCCcse.c (algebraicOpts): fixed "c * 1"
7744
7745 2003-05-28  Bernhard Held <bernhard AT bernhardheld.de>
7746
7747         * doc/sdccman.lyx: fix double dash and other minor things
7748         * doc/Makefile: fix double dash
7749
7750 2003-05-28  Karl Bongers(patches from Martin Helmling)
7751         * debugger/mcs51/sdcdb.c,cmd.c,break.c and .h files. Martin adds
7752           condition and ignore commands.
7753
7754 2003-05-28  Frieder Ferlemann <Frieder.Ferlemann AT web.de>
7755
7756         * doc/sdccman.lyx: Changes all over, index improved, smaller margins. The manual
7757           is in parts still quite out of date, I did changes as far as I felt makes sense
7758           for a non-native english speaker.
7759           Please feel free to add to the manual or to correct my changes.
7760         * doc/Makefile: undid touching the date of intermediate tex files.
7761
7762 2003-05-26  Frieder Ferlemann <Frieder.Ferlemann AT web.de>
7763
7764         * doc/sdccman.lyx: Manual has an index now
7765
7766 2003-05-25  Bernhard Held <bernhard AT bernhardheld.de>
7767
7768         Finalize muluint/mulsint and mululong/mulslong merging:
7769         * device/lib/_mulint.c
7770         * device/lib/_mullong.c
7771         * device/lib/gbz80/mul.s
7772         * device/lib/gbz80/stubs.s
7773         * device/lib/z80/mul.s
7774         * device/lib/z80/stubs.s
7775         * src/SDCCsymt.c (initCSupport)
7776
7777 2003-05-25  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
7778
7779         * as/mcs51/lkaomf51.c: Address space 'z' was missing.
7780         * src/avr/avr.dsp, src/ds390/ds390.dsp, src/mcs51/mcs51.dsp,
7781           src/pic/pic.dsp, src/pic16/pic16.dsp, src/xa51/xa51.dsp,
7782           src/x80/z80.dsp: peep.rul is bigger now, so /Zm1000 is used
7783           instead of /Zm500.
7784
7785 2003-05-25  Frieder Ferlemann <Frieder.Ferlemann AT web.de>
7786
7787         * src/mcs51/peeph.def: added rules 244.x, 245.x. Although they pass
7788           the regression tests I'm not brave enough to enable 245.b, 245.c
7789         * doc/sdccman.lyx: added latex preamble for hyperref package.
7790           Using pdflatex this will give you a hyperlinked pdf file with
7791           bookmarks. (prepend '%' before /usepackage if this breaks something)
7792
7793 2003-05-24  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
7794
7795          * doc/sdccman.lyx: updated information about .adb files (fixed bug 742649)
7796
7797 2003-05-22  Bernhard Held <bernhard AT bernhardheld.de>
7798
7799         * src/pic16/pcode.c (pic16_get_op_from_instruction): fixed a gcc 3.x warning
7800
7801 2003-05-21    <johan AT balder>
7802
7803         * src/SDCCglue.c (printIval): fixed bug #739934
7804
7805 2003-05-19  Bernhard Held <bernhard AT bernhardheld.de>
7806
7807         Applied patch from bug 737905 (renamed yylineo to mylineno):
7808         * src/altlex.c
7809         * src/SDCCast.c
7810         * src/SDCglobl.h
7811         * src/SDCC.lex
7812         * src/SDCCsymt.c
7813         * src/SDCCval.c
7814         * src/pic16/pcode.c: Cleaned warnings
7815         * src/pic16/pcodeflow.c: Cleaned warnings
7816         * src/pic16/pcoderegs.c: Cleaned warnings
7817
7818 2003-05-19  Scott Dattalo  <scott AT dattalo.com>
7819
7820         * src/pic16/pcode.c: Cleaned warnings
7821         * src/pic16/pcodepeep.c: Cleaned warnings
7822         * src/pic16/ralloc.c: Cleaned warnings
7823
7824 2003-05-19  Bernhard Held <bernhard AT bernhardheld.de>
7825
7826         * doc/sdccman.lyx: fixed bug 739745
7827         * src/pic16/pcode.c (pic16_get_op): fixed warning on alpha
7828
7829 2003-05-18  Bernhard Held <bernhard AT bernhardheld.de>
7830
7831         * src/port.h: removed DEFAULT_PORT, it's not yet pic16 ;-)
7832         it can be defined with CFLAGS when running configure
7833         * src/SDCCmain.c: fixed compiling + linking with object files
7834
7835 2003-05-18  Vangelis Rokas (vrokas AT otenet.gr)
7836
7837         * configure.in: configure for pic16 port,
7838             added --disable-pic16-port
7839         * sdccconf_in.h: added macro OPT_DISABLE_PIC16
7840         * src/SDCCmain.c: linkOptions is changed to set *,
7841             added if/endif conditional macros to remove options help
7842             messages from optionsTable when a port is not configured, added
7843             support for the PIc16 port in the ports table, when executing
7844             the compiler with no port specified on command line, a default
7845             port is selected with the new macro DEFAULT_PORT which is
7846             defined in port.h, in setDefaultOptions() linkOptions is removed
7847             from initialization assignment, since now it is a set,
7848             parseCmdLine uses setParseWithComma for linkOptions, in
7849             linkEdit() linkOptions are accessed with new function indexSet()
7850             which returns the i'th item of a set variable. See SDCCset.c, in
7851             linkEdit() when calling buildCmdLine(), added linkOptions as
7852             last argument. Now users can pass arguments to gplink via the
7853             -Wl option, main() uses pic16glue() to glue up pic16 programs
7854         * src/SDCCpeeph.c: various changes to support pic16
7855         * src/SDCCset.c: added function  void *indexSet(set *, int)  to
7856             return the i'th item of the set
7857         * src/SDCCset.h: added function prototype for indexSet()
7858         * src/SDCCsymt.c: in checkSClass(), added support for PIC16
7859         * src/clean.mk: added pic16 in CLEANALLPORTS variable
7860         * src/port.h: added TARGET_ID_PIC16,TARGET_IS_PIC16 macro,
7861             added macro DEFAULT_PORT
7862         * src/pic/main.c: corrected arguments of gplnk in _linkCmd
7863         * src/pic16/gen.c: bug fix in genCpl(), now the correct code is
7864             generated
7865         * src/pic16/glue.c: commented out some error producing lines
7866         * src/pic16/main.c: __config directives are commented out to stop
7867             gpasm complaining and test the linkage with gplink, _linkCmd and
7868             _asmCmd changed to be more gplink and gpasm friendly
7869         * src/pic16/peeph.def: peep rule 3 is commented out, since it
7870             produced an error when parsed, peep rule 12 is added to utilize
7871             movff, but it is commented out since the pCode does not support
7872             yet a command with 2 address arguments
7873
7874 2003-05-18    <johan AT balder>
7875
7876         * src/ds390/gen.c (genArrayInit): removed obsolete and buggy ARRAYINIT
7877         * src/ds390/main.c (genArrayInit): removed obsolete and buggy ARRAYINIT
7878 2003-05-17  Karl Bongers(apply patches from Martin Helmling)
7879
7880         * debugger/mcs51/sdcdb.c,cmd.c,break.c and .h files.
7881   Added feature to script commands from file.
7882
7883 2003-05-14  Bernhard Held <bernhard AT bernhardheld.de>
7884
7885         * device/lib/_strtok.c: fixed bug #734355 by Lenny Story and Tim Woodall
7886         * src/SDCCutil.c: include ctype.h for win32
7887
7888 2003-05-13  Bernhard Held <bernhard AT bernhardheld.de>
7889
7890         * src/pic16/*: removed CR from many files, reported by Vangelis Rokas
7891
7892 2003-05-12  Karl Bongers(apply development patches from Martin Helmling)
7893
7894         * debugger/mcs51/sdcdb.c,simi.c,cmd.c,break.c and .h files.
7895   Fixed so you can set breakpoints prior to run, run does not stop
7896   on entry now.  Add tbreak.  Other enhancements and fixes for use
7897   with ddd.
7898
7899 2003-05-12  Borut Razem <borut.razem AT siol.net>
7900
7901         * src/SDCCmain.c: fixed the problem with searching the DATADIR as the last resort on *nix
7902
7903 2003-05-11  Borut Razem <borut.razem AT siol.net>
7904
7905         * src/SDCCutil.c: WIN32 version of getBinPath() calls GetModuleFileName() to determine
7906         the path of bin directory, so that PATH is the only env. variable, which has to be set
7907         in case of standard installation.
7908         * src/ds390/ds390.dsp: increased value of /Zm option to 1000
7909         * src/pic/main.c: add quotes to file name parameters for gplink and gpasm
7910         * src/SDCCglobl.h, src/SDCCmain.c, doc/sdccman.lyx: added --print-search-dirs command line option
7911
7912 2003-05-04  Bernhard Held <bernhard AT bernhardheld.de>
7913
7914         * src/SDCCmain.c (linkEdit): fixed buffer overflow for gbz80
7915         * support/regression/Makefile: inter-port-clean is no longer nesessary, the
7916         temp files are in the port dir; clean the gen/test directory when
7917         generating new test.c
7918         * support/regression/ports/host/spec.mk: defined OBJEXT for target clean
7919         * support/regression/tests/vaargs.c: fixed gcc 3.3 warning
7920         * support/regression/tests/zeropad.c: added
7921
7922 2003-05-09    <johan AT balder>
7923
7924         * src/SDCCglue.c: fixed bug #597940
7925
7926 2003-05-05  Karl Bongers(apply patches from Martin Helmling)
7927
7928         * debugger/mcs51/sdcdb.c,simi.c,cmd.c,symtab.c and .h files.
7929   cache sfr, optimize next,step, fix off by one sourceline,
7930   support ddd list function.
7931         * sim/ucsim/cmd.src/newcmd.cc - small fix for sdcdb use.
7932
7933 2003-05-04  Bernhard Held <bernhard AT bernhardheld.de>
7934
7935         * support/regression/HTMLgen.py: added compare_s2f()
7936         * support/regression/Makefile: redo 1.27
7937         * support/regression/generate-cases.py: redo 1.5
7938
7939 2003-04-30  Bernhard Held <bernhard AT bernhardheld.de>
7940
7941         * support/regression/tests/float.c: workaround 33 bit hex constant
7942         * support/regression/tests/simplefloat.c: fix division for host
7943
7944 2003-04-29  Scott Dattalo  <scott AT dattalo.com>
7945
7946         * src/pic/pcoderegs.c Applied patch from Jim Hawkridge <jim AT jimhawkridge.uk.eu.org>
7947         that tame's the PIC's over-aggressive optimizer.
7948
7949 2003-04-29  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
7950
7951          * src.dsw, link/z80/aslink.h, link/z80/linkz80.dsp: z80 linker
7952          support for MSVC.
7953
7954 2003-04-29  Kevin Vigor <kevin AT vigor.nu>
7955
7956         Initial support for DS80C400. "Hello world" runs on TINIm400
7957         (with polled I/O).
7958
7959 2003-04-28  Karl Bongers(apply patches for Martin Helmling)
7960
7961          * debugger/mcs51/sdcdb.c,simi.c,cmd.c,symtab.c and .h files.
7962          * Some notes on ddd usage added in debugger/README
7963          Martin Helmling adding more features and fixes for ddd GUI debugger.
7964          Code added for nexti, stepi, up, down, and other adjustments.
7965
7966 2003-04-28  Scott Dattalo  <scott AT DATTALO.COM>
7967
7968         * src/pic/pCodepeep.c non-wildcard asmops are now handled
7969         * src/pic/peeph.def Added two rules to optimize carry manipulation
7970         * src/pic/* removed debug printfs
7971
7972 2003-04-28  Bernhard Held <bernhard AT bernhardheld.de>
7973
7974         * debugger/mcs51/cmd.c: added header newalloc.h
7975
7976 2003-04-26  Bernhard Held <bernhard AT bernhardheld.de>
7977
7978         * as/Makefile: new EXEEXT
7979         * as/z80/Makefile: remove trailing slash of BUILDIR
7980         * as/z80/clean.mk: new EXEEXT
7981         * Makefile.common.in: add to CFLAGS (and others), don't replace it
7982         * support/cpp2/Makefile.in: new EXEEXT
7983         * src/pic/glue.c (pic14emitRegularMap): fixed warning
7984
7985 2003-04-24  Bernhard Held <bernhard AT bernhardheld.de>
7986
7987         Cygwin's gcc always appends .exe: 'gcc -o a a.c' creates a.exe;
7988         EXEEXT was introduced to fix all related problems with targets
7989         "clean", "install" and "uninstall"; a couple of further flaws
7990         especially with "clean" have been fixed too
7991         * as/mcs51/Makefile.in
7992         * as/mcs51/clean.mk
7993         * as/z80/Makefile
7994         * Makefile
7995         * clean.mk
7996         * debugger/mcs51/Makefile.in
7997         * debugger/mcs51/clean.mk
7998         * link/z80/Makefile
7999         * link/z80/Makefile.in
8000         * link/z80/clean.mk
8001         * link/Makefile
8002         * packihx/Makefile.in
8003         * packihx/clean.mk
8004         * sim/ucsim/Makefile
8005         * sim/ucsim/clean.mk
8006         * sim/ucsim/avr.src/Makefile.in
8007         * sim/ucsim/avr.src/clean.mk
8008         * sim/ucsim/s51.src/Makefile.in
8009         * sim/ucsim/s51.src/clean.mk
8010         * sim/ucsim/xa.src/Makefile.in
8011         * sim/ucsim/xa.src/clean.mk
8012         * sim/ucsim/z80.src/Makefile.in
8013         * sim/ucsim/z80.src/clean.mk
8014         * sim/ucsim/main_in.mk
8015         * sim/ucsim/packages_in.mk
8016         * sim/ucsim/gui.src/Makefile.in
8017         * sim/ucsim/gui.src/serio.src/Makefile.in
8018         * sim/ucsim/gui.src/serio.src/clean.mk
8019         * src/Makefile.in
8020         * src/clean.mk
8021         * support/cpp2/Makefile.in
8022         * support/cpp2/clean.mk
8023         * support/makebin/Makefile
8024         * support/makebin/clean.mk
8025         * support/scripts/sdcc_mingw32: --program-suffix no longer needed
8026         * doc/sdccman.lyx: --program-suffix no longer needed
8027
8028 2003-04-23  Karl Bongers(apply patches for Martin Helmling)
8029
8030          * debugger/mcs51/sdcdb.c,simi.c,cmd.c,..
8031          Martin Helmling added support for ddd GUI debugger.
8032          Code added to display assembly, set variables, and other commands
8033          to interface to ddd.
8034
8035 2003-04-23  Bernhard Held <bernhard AT bernhardheld.de>
8036
8037         * as/Makefile: fix target clean
8038         * as/clean.mk: fix target clean
8039         * as/z80/clean.mk: fix target clean
8040
8041 2003-04-22  Bernhard Held <bernhard AT bernhardheld.de>
8042
8043         * Makefile.common.in: added  AT EXEEXT AT
8044         * configure.in: removed all mingw32 stuff
8045         * configure: rebuilt from configure.in
8046         * doc/sdccman.lyx: updated section "installation"
8047         * support/scripts/sdcc_mingw32: adapted to configure
8048         * support/scripts/sdcc_cygwin_mingw32: added
8049
8050 2003-04-22  Scott Dattalo  <scott AT dattalo.com>
8051
8052         * src/pic Added object file support for the PIC port
8053         * src/pic Applied patch from Craig Franklin (this started the object file support)
8054         * src/regression Updated the PIC regression tests for object files
8055
8056 2003-04-20  Borut Razem <borut.razem AT siol.net>
8057
8058         * sdcc/as/mcs51/lklex.c: make getfid() more robust and fixed gcc warning:
8059           lklex.c: In function `getfid':
8060           lklex.c:203: warning: array subscript has type `char'
8061         * src/SDCCglobl.h: small change in stack handling macros, to avoid crash when compiled
8062           with MSVC with global optimization enabled (probably an cl compiler bug ;-)
8063         * support/Util/SDCCerr.c, support/Util/SDCCerr.h: added function fatal(), called from
8064           stack handling macros
8065
8066 2003-04-19  Borut Razem <borut.razem AT siol.net>
8067
8068         * "handling space characters in file path" task:
8069         * src/SDCCmacro.c: fixed bug in handlig quote at the end of line
8070         * support/Util/BuildCmd.c: define par as NULL if parameter value is invalid
8071         * support/Util/MySystem.h: make it self-sufficient
8072         * src/avr/main.c, src/ds390/main.c, src/mcs51/main.c, src/pic/main.c, src/xa51/main.c,
8073           src/z80/main.c, sdcc/as/mcs51/lklex.c:
8074           handling space characters in file path
8075         * src/SDCCmain.c: introduced setDataPaths() function, {datadir} macro
8076           (it will be used by assemblers, which have their own includes, e.g. gpasm)
8077         * support/Util/MySystem.c: handling space characters in executable's path
8078
8079 2003-04-19  Bernhard Held <bernhard AT bernhardheld.de>
8080
8081         * as/z80/Makefile: fix permanent rebuild of z80
8082         * sim/ucsim/gui.src/Makefile.in: target "install" builds the same packages as target "all"
8083         * support/regression/tests/bitfields.c: added Johan's bitfields.c
8084
8085 2003-04-18      Kevin Vigor <kevin AT vigor.nu>
8086
8087         * src/SDCCopt.c: add special case optimization to replace modulo by
8088           a power of two with a bitwise AND.
8089
8090 2003-04-18    <johan AT balder>
8091
8092         * src/mcs51/gen.c (getFreePtr): fixed bug #635354
8093
8094 2003-04-17    <johan AT balder>
8095
8096         * src/mcs51/ralloc.c (packRegsForAssign): fixed bug #716790 and removes lot's of redundant register usage around function calls
8097         * src/mcs51/ralloc.c (packRegisters): fixed bug #720667
8098
8099 2003-04-13  Borut Razem <borut.razem AT siol.net>
8100
8101         * doc/sdccman.lyx: updated info about #pragma SAVE/RESTORE nesting
8102         * configure.in, configure: fixed problems on cygwin/WinCVS environmet with ports.* line endings;
8103           fixed mingw problem in adl_NORMALIZE_PATH
8104
8105 2003-04-12  Borut Razem <borut.razem AT siol.net>
8106
8107         * fixed "#pragma SAVE/RESTORE can not be nested":
8108         * src/SDCC.lex: reworked pragma handling functions
8109         * sdcc/src/SDCCglobl.h: reworked stack handling macros
8110         * support/Util/SDCCerr.c, support/Util/SDCCerr.h: added E_STACK_VIOLATION error
8111
8112 2003-04-12  Bernhard Held <bernhard AT bernhardheld.de>
8113
8114         * src/SDCCutil.c (pathEquivalent): defined but not used
8115         * debugger/mcs51/sdcdb.c: replace SDCC_LIB_DIR
8116         * configure.in: remove sdcc_datadir, sdcc_lib_dir and sdcc_include_dir
8117         * configure: rebuilt from configure.in
8118         * sdccconf_in.h: remove SDCC_LIB_DIR and SDCC_INCLUDE_DIR
8119         * sdcc_vc_in.h: remove SDCC_LIB_DIR and SDCC_INCLUDE_DIR
8120         * device/include/Makefile.in: replace sdcc_datadir
8121         * device/lib/Makefile.in: replace sdcc_datadir
8122         * Makefile.common.in: add LDFLAGS from configure
8123         * packihx/Makefile.in: use LDFLAGS
8124         * src/Makefile.in: use LDFLAGS
8125         * support/cpp2/Makefile.in: add LDFLAGS from configure
8126         * support/makebin/Makefile: use LDFLAGS
8127         * .version: bumped version number to 2.3.5
8128
8129 2003-04-12  Borut Razem <borut.razem AT siol.net>
8130
8131         * completed "different paths" task:
8132         * src/SDCCmacro.c: fixed bug in handling quotes
8133         * src/SDCCutil.c, src/SDCCutil.c: rewritten getPrefixFromBinPath()
8134         * src/SDCCmain.c: _discoverPaths() replaced with setBinPaths(), setIncludePath() and setLibPath()
8135
8136 2003-04-12  Bernhard Held <bernhard AT bernhardheld.de>
8137
8138         * src/pic/pcoderegs.c (Remove1pcode): fix warning on alpha
8139
8140 2003-04-11 kevin Vigor <kevin AT vigor.nu>
8141
8142         * ds390/gen.c ds390/peeph.def: fix bug 706781
8143
8144 2003-04-11  Borut Razem <borut.razem AT siol.net>
8145
8146         * support/Util/dbuf.c, support/Util/dbuf.h: update to version 1.1.1 - re-added C++ stuff to make it still more portable
8147
8148 2003-04-10  Scott Dattalo  <scott AT dattalo.com>
8149
8150         * src/pic/* Applied the pointer-to-function patch from Steve Tell.
8151         * src/pic/* Fixed several pointer bugs. (PIC port broke when the ruonly bit was
8152          set - this bit used to not be set...).
8153         * src/pic/gen.c Fixed buf 609268 ==> x = (x+1) & 0xf; generated
8154           bad code in PIC Port
8155         * src/regression/and2.c added to test bug 609268
8156         * src/regression/Makefile added and2.c to regression test
8157
8158
8159 2003-04-08    <johan AT CP255758-A>
8160
8161         * src/mcs51/gen.c (gen51Code): display reg usage in --icode-in-asm
8162         * src/mcs51/ralloc.c (serialRegAssign): update the registers in use and save some slocs
8163         * src/SDCCicode.h: added riu to show the register usage in --icode-in-asm
8164
8165 2003-04-07  Bernhard Held <bernhard AT bernhardheld.de>
8166
8167         * configure.in: fully support prefix, exec_prefix, datadir, docdir;
8168         fix bug #487815
8169         * support/cpp2/Makefile.in: fix bug #487815
8170         * configure: rebuilt from configure.in
8171         * Makefile.common.in: docdir changed, new path suffixes
8172         * sdccconf_in.h: new RETSIGTYPE, and other PATHs
8173         * sdcc_vc_in.h: reflect changes from sdccconf.h
8174         * src/SDCCglobl.h: remove *SEPARATOR_CHARS, they are now in sdccconf.h
8175         * src/SDCCutil.h: remove BINDIR hack
8176         * doc/sdccman.lyx: update new path hierarchy
8177
8178 2003-04-06    Paul Stoffregen <paul AT pjrc.com>
8179
8180         * src/SDCCpeeph.c: added okToRemoveSLOC test
8181
8182 2003-04-06    Paul Stoffregen <paul AT pjrc.com>
8183
8184         * device/lib/printf_fast.c: added leading zero format ("%06d", etc)
8185
8186 2003-04-06    Paul Stoffregen <paul AT pjrc.com>
8187
8188         * src/SDCCpeeph.c: added labelIsReturnOnly test
8189         * src/mcs51/peeph.def: Peephole 244: replace ljmp to ret with ret
8190
8191 2003-04-05    <johan AT balder>
8192
8193         * src/SDCCcse.c (cseAllBlocks): fixed bug #460088
8194         * src/SDCCloop.c (DEFSETFUNC): fixed bug #460088
8195         * src/SDCCopt.c (eBBlockFromiCode): fixed bug #460088
8196         * src/SDCCast.c: fixed a warning
8197         * src/SDCCast.h: fixed a warning
8198         * src/SDCCicode.c (operandFromAst): fixed a warning
8199
8200 2003-04-04    <johan AT balder>
8201
8202         * src/SDCCloop.c (DEFSETFUNC): undid the fix for bug #519584
8203         * src/SDCCast.c (decorateType): fixed bug #715076
8204         * src/SDCC.y: fixed bug #702907
8205
8206 2003-04-03    <johan AT balder>
8207
8208         * device/lib/_mulint.c (_muluint): new #pragma LESS_PEDANTIC
8209         * src/SDCCopt.c (eBBlockFromiCode): new #pragma LESS_PEDANTIC
8210         * src/SDCCglobl.h (PRAGMA_LESSPEDANTIC): new #pragma LESS_PEDANTIC
8211         * src/SDCC.lex (doPragma): new #pragma LESS_PEDANTIC
8212         * src/SDCCmain.c (parseCmdLine): new #pragma LESS_PEDANTIC
8213
8214 2003-04-03  Bernhard Held <bernhard AT bernhardheld.de>
8215
8216         * _decdptr.c: fix return values
8217         * _gptrget.c: fix return values
8218         * _gptrgetc.c: fix return values
8219         * _gptrput.c: fix return values
8220         * _mulint.c: fix return values
8221         * as/z80/Makefile: fix 'make -j' problem
8222
8223 2003-04-02  Bernhard Held <bernhard AT bernhardheld.de>
8224
8225         * Makefile.common.in: unused PORT, SCC and SAS removed, fixed docdir
8226         * configure.in: big cleanup, updated to autoconf 2.5x
8227         * configure: rebuilt from configure.in
8228         * sdccconf_in.h: new RETSIGTYPE, and other PATHs
8229         * sdcc_vc_in.h: reflect changes from sdccconf.h
8230         * doc/Makefile: fixed a flaw in "make install"
8231
8232 2003-04-02    <johan AT balder>
8233
8234         * src/ds390/gen.c (genCmp): no comments
8235         * src/mcs51/gen.c (genCmp): no comments
8236         * src/SDCCopt.c (eBBlockFromiCode): detect missing return values
8237         * src/SDCCast.c (ast_print): fixed the function type in --dumptree
8238
8239 2003-04-01  Bernhard Held <bernhard AT bernhardheld.de>
8240
8241         * support/regression/generate-cases.py: place generated file in given sub directory
8242         * support/regression/ports/host/spec.mk: prevent removal of testfwk.o
8243         * support/regression/Makefile: improvements for 'make -j';
8244         side effect: it's simpler and faster now
8245
8246 2003-03-31  Borut Razem <borut.razem AT siol.net>
8247
8248         * src/z80/main.c: link-{port} and as-{port} defined without path
8249         * src/src.dsp: support/Util/MySystem.h and src/SDCCutil.h added to project
8250
8251 2003-03-31  Bernhard Held <bernhard AT bernhardheld.de>
8252
8253         * Makefile, src/Makefile.in: add dependencies, so that 'make -j' works
8254
8255 2003-03-30  Borut Razem <borut.razem AT siol.net>
8256
8257         * support/Util/BuildCmd.c, support/Util/BuildCmd.h: rewrite buildCmdLine(),
8258           changed type of list parameter to set
8259         * src/ds390/main.c: changed type of parameter asmOptions to set in _tininative_do_assemble()
8260         * src/port.h: changed type of do_assemble() parameter to set
8261         * src/SDCCmain.c: type of asmOptions changed to set, introduced setParseWithComma(),
8262           sdcpp defined without path, removed variable VersionString, introduced set binPathSet,
8263           definition of "cppoutfilename" macro with NULL value in preProcess()
8264         * src/SDCCglobl.h: included "SDCCset.h", added declaration of setParseWithComma()
8265         * src/SDCCglue.c: removed variable VersionString, inroduced spacesToUnderscores()
8266         * support/Util/MySystem.c, support/Util/MySystem.h: rewrite, char *ExePathList[]
8267           replaced with set *binPathSet
8268         * shash_add() deallocates the item, if allready exsists, before adding the new one
8269         * src/SDCCmacro.c: handling macros with empty or NULL values in _evalMacros()
8270
8271 2003-03-30  Scott Dattalo  <scott AT dattalo.com>
8272
8273         * src/pic/gen.c: Commit patch from Steve Tell <tell AT telltronics.org> that fixes
8274           a nested for loop bug in the PIC port
8275         * src/regression/nestfor.c: new regression test file Steve wrote to test nested
8276           for loops
8277
8278 2003-03-29  Bernhard Held <bernhard AT bernhardheld.de>
8279
8280         * support/Util/dbuf.h: remove C++ stuff to make it portable
8281
8282 2003-03-28  Borut Razem <borut.razem AT siol.net>
8283
8284         * src/SDCC.lex: Fix for bug #711240: dynamic buffer handling of C
8285           literal strings in stringLiteral()
8286         * support/Util/dbuf.c, support/Util/dbuf.h: added: dynamic buffer handling
8287         * src/Makefile.bcc, src/Makefile.in, src\src.dsp: added support/Util/dbuf.c
8288           to the project
8289
8290 2003-03-27  Paul Stoffregen <paul AT pjrc.com>
8291
8292         * src/SDCCpeeph.c (pcDistance): accurate byte distance for mcs51
8293
8294 2003-03-26    <johan AT balder>
8295
8296         * src/mcs51/gen.c (saveRegisters): catched symbol abuse
8297         * src/ds390/gen.c (saveRegisters): catched symbol abuse
8298         * src/SDCCast.c (decorateType): fixed " -v < 3"
8299
8300 2003-03-23  Bernhard Held <bernhard AT bernhardheld.de>
8301
8302         * doc/cdbfile.html: removed, replaced by cdbfileformat.lyx
8303         Added Lenny Story's debug infrastructure changes:
8304         * src/Makefile.in:  added new files cdbFile.c and SDCCdebug.c
8305         * src/Makefile.bcc: added new files cdbFile.c and SDCCdebug.c
8306         * src/cdbFile.c: added
8307         * src/SDCCdebug.c: added
8308         * src/SDCCdebug.h: added
8309         * src/SDCCast.c (createFunction)
8310         * src/SDCCglue.c (emitRegularMap, emitStaticSeg, emitOverlay, glue)
8311         * src/SDCCmain.c (parseCmdLine, main)
8312         * src/SDCCmem.c (redoStackOffsets)
8313         * src/SDCCsymt.c (cdbStructBlock, cdbTypeInfo, cdbSymbol, cdbStruct, cdbStructBlock)
8314         * src/SDCCsymt.h
8315         * src/common.h
8316         * src/avr/gen.c (genAVRCode)
8317         * src/ds390/gen.c (gen390Code)
8318         * src/mcs51/gen.c (gen51Code)
8319         * src/pic/gen.c (genpic14Code)
8320         * src/pic/glue.c (pic14emitRegularMap, pic14emitStaticSeg, pic14emitOverlay, picglue)
8321         * src/xa51/gen.c (genXA51Code)
8322         * src/SDCCast.c: fixed "void foo(void){char c; -c < 0;}"
8323
8324 2003-03-22  Frieder Ferlemann <Frieder.Ferlemann AT web.de>
8325
8326         * src/mcs51/gen.c (genCodePointerGet): quicker code for bug #700797
8327         * src/mcs51/peeph.def: added rules 177, 241.x to 243, touched 181, 182.x, 193.x
8328
8329 2003-03-22    <johan AT balder>
8330
8331         * src/SDCCicode.c (geniCodeDerefPtr): fixed bug #698231
8332
8333 2003-03-21  Bernhard Held <bernhard AT bernhardheld.de>
8334
8335         * support/scripts/sdcc_mingw32: adapted to configure from autoconf 2.54
8336         * doc/cdbfileformat.lyx: added, written by Lenny Story
8337         * doc/Makefile: added cdbfileformat.lyx
8338         * doc/clean.mk: added cdbfileformat.lyx
8339
8340 2003-03-20  Bernhard Held <bernhard AT bernhardheld.de>
8341
8342         * src/mcs51/peeph.def: fix bug #705773
8343
8344 2003-03-20    <johan AT balder>
8345
8346         An sfr/sbit can have an "at #" AND an initializer
8347         * src/SDCCsymt.c (checkSClass):
8348         * src/SDCCmem.c (allocGlobal):
8349         * src/SDCCmem.c (allocLocal):
8350         * src/SDCCast.c (createBlock):
8351
8352 2003-03-17  Bernhard Held <bernhard AT bernhardheld.de>
8353
8354         * src/ds390/peeph.def: fix bug #704878: added rule 213.b suggested by Jan Rejlek
8355
8356 2003-03-16    <johan AT balder>
8357
8358         Undid the hackup of const and volatile, the problem is much bigger
8359         * src/SDCC.y:1.65
8360         * src/SDCCast.c:1.171
8361         * src/SDCCglue.c:1.138
8362         * src/SDCCicode.c:1.146
8363         * src/SDCCsymt.c:1.150
8364         * src/SDCCval.c:1.65
8365
8366 2003-03-15  Bernhard Held <bernhard AT bernhardheld.de>
8367
8368         * src/mcs51/ralloc.c (packRegsForAssign): fixed bug #703541
8369         * src/ds390/gen.c (genAddrOf): fixed bug #704087
8370
8371 2003-03-13    <johan AT balder>
8372
8373         Hackup const and volatile modifiers in type chains a bit:
8374         * src/SDCC.y:1.63
8375         * src/SDCCast.c:1.169
8376         * src/SDCCglue.c:1.136
8377         * src/SDCCicode.c:1.143
8378         * src/SDCCsymt.c1.146
8379         * src/SDCCsymt.h1.59
8380         * src/SDCCval.c:1.63
8381
8382 2003-03-12    <johan AT balder>
8383
8384         * src/SDCCBBlock.h: more LRH debugging junk
8385         * src/SDCCcflow.h: more LRH debugging junk
8386         * src/SDCCloop.c: more LRH debugging junk
8387         * src/SDCC.y (struct_declaration): fixed bug #697590
8388         * src/SDCCsymt.[hc] (cloneSpec): NEVER EVER use this again
8389         * src/ds390/gen.c (aopForRemat): fixed bug #700031
8390         * src/SDCCglue.c (emitStaticSeg): fixed bug #700797
8391
8392 2003-03-11 Kevin Vigor <kevin AT vigor.nu>
8393         * src/SDCCpeeph.c: quit being lazy and made proper fix (peephole
8394         test function names must now match exactly).
8395         * src/SDCCcse.c: added special case in findCheaperOp to allow
8396         extending a short integer. Makes less awful code for bug 700121 test case.
8397
8398 2003-03-11  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
8399
8400         * as/mcs51/lkmain.c: Added ASlink-Warning to messages
8401         * as/mcs51/lkaomf51.c: Fixed bug when linking asmblink example
8402
8403 2003-03-11 Kevin Vigor <kevin AT vigor.nu>
8404
8405         * src/SDCCpeeph.c: fix so that operandsNotEqualX functions are
8406         actually called (operandsNotEqual() was called for all
8407         operandsNotEqualX tests).
8408
8409 2003-03-11 Kevin Vigor <kevin AT vigor.nu>
8410
8411         * src/SDCCcse.c: fix findCheaperOp to prevent replacing int types
8412         with shorter literals. Fixes bug 700121.
8413
8414 2003-03-11    <johan AT balder>
8415
8416         * src/SDCCsymt.c (compareType): a (void *) can be assigned to any pointer
8417
8418 2003-03-11  Bernhard Held <bernhard AT bernhardheld.de>
8419
8420         * src/SDCCloop.c (mergeRegions): an evil beast is dead
8421         * src/SDCCmain.c (preProcess): minor cleanup: eliminate preOutName
8422
8423 2003-03-10  Borut Razem <borut.razem AT siol.net>
8424
8425         * src/SDCCmain.c: pipe preprocessor's output
8426         * support/Util/MySystem.c, support/Util/MySystem.h: added my_popen()
8427         * sdcc_vc_in.h: define pclose as _pclose for WIN32
8428         * src/SDCCglue.c, src/SDCCglue.h: added set pipeSet, added function closePipes,
8429         which closes all pipes in pipeSet set
8430         * src/SDCCset.c: free deleted item in function deleteSetItem()
8431         * src/src.dsp, src/z80/z80.dsp: files support/Util/BuildCmd.c and support/Util/MySystem.c
8432         moved from z80 to src subproject
8433         * .version: increased version number to 2.3.4
8434
8435 2003-03-10  Bernhard Held <bernhard AT bernhardheld.de>
8436
8437         * support/regression/ports/mcs51/spec.mk: increase timeout for CF's sparc to 30s
8438         * support/regression/ports/ds390/spec.mk: increase timeout for CF's sparc to 25s
8439         * support/regression/ports/xa51/spec.mk: fix typo
8440
8441 2003-03-09  Bernhard Held <bernhard AT bernhardheld.de>
8442
8443         * src/SDCCglobl.h: PATH_MAX is already defined in mingw32 headers
8444
8445 2003-03-09  Borut Razem <borut.razem AT siol.net>
8446
8447         * src/SDCCmain.c: pipe preprocessor's output
8448         * support/Util/MySystem.c, support/Util/MySystem.h: added my_popen()
8449         * sdcc_vc_in.h: define pclose as _pclose for WIN32
8450         * src/SDCCglue.c, src/SDCCglue.h: added set pipeSet, added function closePipes,
8451         which closes all pipes in pipeSet set
8452         * src/SDCCset.c: free deleted item in function deleteSetItem()
8453         * src/src.dsp, src/z80/z80.dsp: files support/Util/BuildCmd.c and support/Util/MySystem.c
8454         moved from z80 to src subproject
8455
8456 2003-03-09  Borut Razem <borut.razem AT siol.net>
8457
8458         * src/SDCCglue.c: re-implemented tempfilename() and tempfile(): using mkstemp() if available
8459         * src/SDCCsymt.h: fixed MSVC and BORLANDC compilation (included SDCCglobl.h instead srccconf.h)
8460         * sdcc_vc_in.h: explicitly undefined HAVE_MKSTEMP which is not available on BORLANDC and MSVC
8461         * src/SDCCset.h: removed inclusion of sdccconf.h or sdcc_vc.h
8462         * src/SDCCglobl.h: unification of WIN32 native definitions
8463
8464 2003-03-09  Frieder Ferlemann <Frieder.Ferlemann AT web.de>
8465
8466         * src/mcs51/gen.c: applied in-/dec patch mentioned on sdcc-devel 2003-03-01
8467
8468 2003-03-08  Bernhard Held <bernhard AT bernhardheld.de>
8469
8470         * src/configure.in:   check for endianess (even while cross-compiling)
8471         * src/configure:      check for endianess (even while cross-compiling)
8472         * src/configure_in.h: check for endianess (even while cross-compiling)
8473         * src/avr/gen.c:        remove old endianess stuff
8474         * src/mcs51/gen.c:      remove old endianess stuff
8475         * src/ds390/gen.c:      remove old endianess stuff
8476         * src/pic/gen.c:        remove old endianess stuff
8477         * src/pic/genarith.c:   remove old endianess stuff
8478         * src/pic/glue.c:       fix endianess check
8479         * src/pic16/gen.c:      remove old endianess stuff
8480         * src/pic16/genarith.c: remove old endianess stuff
8481         * src/pic16/glue.c:     fix endianess check
8482         * src/xa51/gen.c:       remove old endianess stuff
8483         * src/z80/gen.c:        fix endianess check
8484         * src/SDCCglue.c:       fix endianess check
8485         * src/ds390/peeph.def: fix bug 700036
8486
8487 2003-03-08  Bernhard Held <bernhard AT bernhardheld.de>
8488
8489         * src/SDCCsymt.h: use appropriate data-types on host for SDCC's int and long
8490         * src/configure: find appropriate data-types on host for SDCC's int and long
8491         * src/configure.in: find appropriate data-types on host for SDCC's int and long
8492         * src/sdccconf_in.h: find appropriate data-types on host for SDCC's int and long
8493         * src/xa51/gen.c: use %d, not %ld for 4 byte variables
8494
8495 2003-03-07    <johan AT balder>
8496
8497         Just a big NOOP:
8498                 some minor cleanups before the big shot
8499                 OP_DEFS and OP_USES now use Kevin's protection
8500                 new option --nolabelopt
8501
8502         * src/SDCCBBlock.c:
8503         * src/SDCCast.c,:
8504         * src/SDCCcflow.c:
8505         * src/SDCCcse.c:
8506         * src/SDCCicode.c:
8507         * src/SDCCicode.h:
8508         * src/SDCClabel.c:
8509         * src/SDCCloop.c:
8510         * src/SDCCmain.c:
8511         * src/ds390/ralloc.c:
8512         * src/mcs51/ralloc.c:
8513         * src/pic/ralloc.c:
8514         * src/xa51/ralloc.c:
8515         * src/z80/ralloc.c:
8516
8517 2003-03-06  Bernhard Held <bernhard AT bernhardheld.de>
8518
8519         * src/pic/pcode.c (get_op): fix 64 bit warnings
8520         * src/pic/pcode.c (pCode2str): fix 64 bit warnings
8521         * src/SDCChasht.c (newHashTable): fix 64 bit warnings
8522         * src/SDCCsymt.c (checkTypeSanity): fix 64 bit warnings
8523         * support/regression/tests/malloc.c: fix 64 bit warnings
8524
8525 2003-03-04  Bernhard Held <bernhard AT bernhardheld.de>
8526
8527         * src/mcs51/gen.c (genMinus): fixed bug 696436
8528
8529 2003-03-02  Borut Razem <borut.razem AT siol.net>
8530
8531         * src/SDCCmain.c: added BORLANDC, corrected MSVC in printVersionInfo()
8532
8533 2003-02-26  Bernhard Held <bernhard AT bernhardheld.de>
8534
8535         * configure.in: test for mkstemp
8536         * sdccconf_in.h: add HAVE_MKSTEMP
8537
8538 2003-02-24  Bernhard Held <bernhard AT bernhardheld.de>
8539
8540         * device/include/ctype.h: removed warning while using --stack-auto
8541         * device/include/malloc.h: removed warning while using --stack-auto
8542         * device/include/string.h: removed warning while using --stack-auto
8543
8544 2003-02-23  Borut Razem <borut.razem AT siol.net>
8545
8546         * src/asm.h: corrected assertion in function printILine(): _pipe() was not executed on MSVC,
8547         because NDEBUG is defined (see man assert)
8548         * sdcc_vc_in.h: vsnprintf is defined as _vsnprintf on MSVC
8549
8550 2003-02-23  Frieder Ferlemann <Frieder.Ferlemann AT web.de>
8551
8552         * src/mcs51/gen.c (genUminusFloat): avoided dptr in-/decrement for xdata variables
8553         * src/mcs51/peeph.def: added rule suggested by Gernot Fink, white space/comment changes
8554
8555 2003-02-18  Frieder Ferlemann <Frieder.Ferlemann AT web.de>
8556
8557         * src/SDCCpeeph.c: added peephole conditions testing for same arguments
8558         * src/mcs51/peeph.def: added rules 238a-d which remove redundant moves
8559
8560 2003-02-18    <johan AT balder>
8561
8562         * as/mcs51/asmain.c (asmbl): module can start with a digit
8563         * as/z80/asmain.c (asmbl): module can start with a digit
8564
8565 2003-02-16  Bernhard Held <bernhard AT bernhardheld.de>
8566
8567         * sim/ucsim/mkecho: inserted #!/bin/sh for Cygwin, so that it's executable
8568         * src/asm.c: fix pipe() for Mingw32
8569
8570 2003-02-15  Bernhard Held <bernhard AT bernhardheld.de>
8571
8572         * src/SDCCglue.h: make tmpfileNameSet available for preOutName
8573         * src/SDCCmain.c (preProcess): make sure, that preOutName will be deleted;
8574         make -V work again; --c1mode reads now from stdin
8575         * doc/sdccman.lyx: added --c1mode
8576         * support/Util/SDCCerr.c: new messages for c1 mode
8577         * support/Util/SDCCerr.h: new messages for c1 mode
8578         * src/SDCC.lex (checkCurrFile): test if fullSrcFileName is NULL for c1mode
8579
8580 2003-02-15    <johan AT balder>
8581
8582         * src/asm.c: new options: --no-c-code-in-asm and --i-code-in-asm
8583
8584 2003-02-14  Bernhard Held <bernhard AT bernhardheld.de>
8585
8586         * doc/sdccman.lyx: Environment variables, -o and other minor things
8587
8588 2003-02-14    <johan AT balder>
8589
8590         * src/xa51/main.c: before anyone really tries to use it :)
8591
8592         * Install doc's in share/sdcc/doc
8593         * removed some obsolete files
8594         * Do a proper make distclean and uninstall
8595         M Makefile.common.in
8596         R sdccbuild.sh
8597         M as/Makefile
8598         M device/include/Makefile.in
8599         M device/lib/Makefile.in
8600         M doc/sdccman.lyx
8601         M link/Makefile
8602         M sim/ucsim/doc/Makefile.in
8603         M src/clean.mk
8604         R src/avr/peeph.rul
8605         R src/xa51/peeph.rul
8606         M support/cpp2/Makefile.in
8607         M support/makebin/Makefile
8608
8609
8610 2003-02-13  Bernhard Held <bernhard AT bernhardheld.de>
8611
8612         * support/regression/ports/host/spec.mk: use cc as host compiler for max osx
8613
8614 2003-02-10  Borut Razem <borut.razem AT siol.net>
8615
8616         * doc/bccinst.txt, packihx/packihx.c, sdcc_vc_in.h, src/SDCCset.h,
8617         support/cpp2/config.in: Borland C++ build doesn't depend on Cygwin configure
8618         * Bcc.ini, Makefile.bcc, as/mcs51/Makefile.bcc,
8619         device/examples/ds390/tinitalk/Makefile.bcc, packihx/Makefile.bcc,
8620         support/cpp2/Makefile.bcc, src/Makefile.bcc, src/avr/Makefile.bcc,
8621         src/ds390/Makefile.bcc, src/izt/Makefile.bcc, src/mcs51/Makefile.bcc,
8622         src/pic/Makefile.bcc, src/pic16/Makefile.bcc, src/xa15/Makefile.bcc,
8623         src/z80/Makefile.bcc: Borland Makefile cleanup
8624         * as/z80/Makefile.bcc: Added Borland Makefile
8625         * support/cpp2/borland.h: Removed
8626
8627 2003-02-10  Bernhard Held <bernhard AT bernhardheld.de>
8628
8629         * doc/sdccman.lyx: new pragma NOIV by "Johannes Stezenbach" <js AT convergence.de>
8630         * src/SDCC.lex: new pragma NOIV
8631         * src/SDCCglobl.h: new pragma NOIV
8632         * src/SDCCmem.c: new pragma NOIV
8633
8634 2003-02-09  Bernhard Held <bernhard AT bernhardheld.de>
8635
8636         * src/SDCCmain.c: signal handling is switched off by SDCC_LEAVE_SIGNALS
8637
8638 2003-02-09  Bernhard Held <bernhard AT bernhardheld.de>
8639
8640         * src/SDCCmain.c: signal handling is switched off by --debug
8641         * doc/Makefile: small fix for install; use clean.mk again
8642         * doc/clean.mk: clean *.pdf and *.html too
8643
8644 2003-02-08  Bernhard Held <bernhard AT bernhardheld.de>
8645
8646         * device/lib/_mulint.c: small fix for large/ds390 --int-long-reent resp. --stack-auto
8647         * device/lib/printfl.c: fix a ds390 bug by making it portable
8648         * src/SDCCsymt.c (initCSupport): fix compile warning on Cygwin
8649         * src/SDCCopt.c (cnvToFloatCast): fix compile warning on Cygwin
8650         * src/SDCCopt.c (cnvFromFloatCast): fix compile warning on Cygwin
8651         * debugger/mcs51/cmd.c: converted multi-line string literals
8652         * sim/ucsim/globals.cc: converted multi-line string literals
8653         * src/SDCCmain.c: introduced signal handler to remove temp files
8654         * doc/Makefile: small tweaks, implement clean
8655         * doc: removed generated files
8656
8657 2003-02-05  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
8658
8659         * as/mcs51/aslink.h, as/mcs51/lkihx.c, as/mcs51/lkrloc.c:  Applied
8660         patch from Jan Rejlek <jr AT apex-lib.cz> to fix Bug 677692: "Extended
8661         Address Record is not correctly generated for DS390."
8662
8663 2003-02-02  Borut Razem <borut.razem AT siol.net>
8664
8665         * Makefile.bcc: removed non existing cpp project and non compilable izt project from makefile
8666         * as/mcs51/asm.h: fixed compilation with Borland C
8667         * support/cpp2/Makefile.bcc: added rule to generate auto-host.h
8668         * support/cpp2/auto-host_vc_in.h: fixed compilation with Borland C
8669         * src/mcs51/mcs51a.dsp: corrected misspelled project name from msc51a to mcs51a
8670         * src/avr/Makefile.bcc, src/ds390/Makefile.bcc, src/izt/Makefile.bcc,
8671         src/mcs51/Makefile.bcc, src/pic16/Makefile.bcc, src/xa51/Makefile.bcc,
8672         src/z80/Makefile.bcc: delete $(LIB) only if exist
8673         * src/Makefile.bcc, src/pic/Makefile.bcc:  fixed compilation with Borland C
8674
8675 2003-02-02  Bernhard Held <bernhard AT bernhardheld.de>
8676
8677         * device/include/malloc.h: introduced NULL
8678         * device/include/string.h: introduced NULL
8679         * device/include/stdlib.h: introduced NULL
8680         * device/lib/_memcpy.c: removed NULL
8681         * device/lib/_strcat.c: removed NULL
8682         * device/lib/_strchr.c: removed NULL
8683         * device/lib/_strcmp.c: removed NULL
8684         * device/lib/_strcpy.c: removed NULL
8685         * device/lib/_strcspn.c: removed NULL
8686         * device/lib/_strlen.c: removed NULL
8687         * device/lib/_strncat.c: removed NULL
8688         * device/lib/_strncmp.c: removed NULL
8689         * device/lib/_strncpy.c: removed NULL
8690         * device/lib/_strpbrk.c: removed NULL
8691         * device/lib/_strrchr.c: removed NULL
8692         * device/lib/_strspn.c: removed NULL
8693         * device/lib/_strstr.c: removed NULL
8694         * device/lib/_strtok.c: removed NULL
8695         * device/lib/malloc.c: removed NULL, include own header
8696
8697 2003-02-02    <johan AT balder>
8698
8699         * 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
8700         * support/regression/fwk/lib/testfwk.c: div and mod isn't broken anymore
8701         * regressions ds390/spec.mk and mcs51/spec.mk (timeout): my good old balder isn't fast enough for some tests
8702         * src/z80/gen.c (genZ80Code): added c-lines in asm comments
8703         * as/z80/asm.h (NINPUT): increased for long c-comments in regression tests
8704         * src/z80/gen.c (genRightShiftLiteral): fixed the (char)(-3)>>8 (I think)
8705
8706 2003-02-01  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
8707
8708         * src/SDCCmain.c: Fixed bug 678574: "ds390: ASlink-Error-Stack overlaps
8709         area 'DATA'"
8710
8711 2003-02-01    <johan AT balder>
8712
8713         * src/SDCCval.c (valBitwise): fixed Karl's "2 | (1<<8)"
8714
8715 2003-01-31    <johan AT CP255758-A>
8716
8717         * src/ds390/main.c (_ds390_genAssemblerPreamble): applied Jan Rejlek's >64K startup patch
8718
8719 2003-01-30    <johan AT balder>
8720
8721         * src/SDCCBBlock.c: automatic bug detection
8722         * src/SDCCicode.c: automatic bug detection
8723
8724 2003-01-29  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
8725
8726         * src/SDCCglobl.h:   now --xram-size 0 works
8727         * src/SDCCmain.c:    now --xram-size 0 works
8728
8729 2003-01-29    <johan AT balder>
8730
8731         * src/almosteverything: changed OP_DEFS and OP_USES from macros to functions to catch symbol abuse (a hot topic in the bug list :)
8732
8733 2003-01-29  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
8734
8735         * as/mcs51/aslink.h: Added options --xram-size and --code-size
8736         * as/mcs51/lkdata.c: Added options --xram-size and --code-size
8737         * as/mcs51/lkmain.c: Added options --xram-size and --code-size
8738         * as/mcs51/lkmem.c:  Added options --xram-size and --code-size
8739         * src/SDCCglobl.h:   Added options --xram-size and --code-size
8740         * src/SDCCmain.c:    Added options --xram-size and --code-size
8741
8742 2003-01-28  Bernhard Held <bernhard AT bernhardheld.de>
8743
8744         * src/ds390/gen.c: fix deps by replacing <common.h> with "common.h"
8745         * src/SDCC.lex: rename P_OVERLAY to P_OVERLAY_ for cross-gcc 3.2 MINGW32
8746
8747 2003-01-27    <johan AT balder>
8748
8749         * src/SDCC.y: fixed bug #613764
8750
8751 2003-01-26    <johan AT balder>
8752
8753         * src/SDCClrange.c:  fixed Bernhard's "char * code ptr = &c"
8754         * src/SDCCsymt.h: fixed bug #673374
8755         * src/SDCCglue.c: fixed bug #661910
8756         * src/SDCCast.c: fixed bug #458099 and 673374
8757
8758 2003-01-26  Bernhard Held <bernhard AT bernhardheld.de>
8759
8760         * as/mcs51/strcmpi.c: added, provides Aurelien Jarno's as_strcmpi(); strcmpi() is not ANSI
8761         * as/mcs51/strcmpi.h: added
8762         * as/mcs51/asm.h: remove ugly "#define strcmpi strcmp"
8763         * as/mcs51/aslink.h: remove ugly "#define strcmpi strcmp"
8764         * as/mcs51/asmain.c: strcmpi -> as_strcmpi
8765         * as/mcs51/assym.c: strcmpi -> as_strcmpi
8766         * as/mcs51/lkmem.c: strcmpi -> as_strcmpi
8767         * as/mcs51/lknoice.c: strcmpi -> as_strcmpi
8768         * as/mcs51/lksym.c: strcmpi -> as_strcmpi
8769         * as/mcs51/Makefile.aslink: new module strcmpi
8770         * as/mcs51/Makefile.asx8051: new module strcmpi
8771         * as/mcs51/Makefil.bcc: new module strcmpi
8772         * as/mcs51/Makefile.in: new module strcmpi
8773         * sim/ucsim/s51.src/uc390.cc (get_mem_size): make RAM big enough for tinibios
8774
8775 2003-01-26    <johan AT balder>
8776
8777         * src/SDCCglue.c: reverted back to 1.124
8778         * src/SDCCast.c: reverted back to 1.156
8779         * src/mcs51/gen.c (aopGet): applied Frieder's efficiency patch
8780
8781 2003-01-25    <johan AT balder>
8782
8783         * src/SDCCglue.c: A better fix for bug #661910
8784         * src/SDCCast.c: A better fix for bug #661910
8785         * src/SDCCglue.c (emitRegularMap): That was a little too efficient
8786
8787 2003-01-24  Bernhard Held <bernhard AT bernhardheld.de>
8788
8789         * src/Makefile.in: remove spawn.o
8790         * src/SDCCmain.c: remove spawn.h
8791         * src/SDCCmain.c (printVersionInfo): report MINGW32 instead of UNIX
8792         * src/spawn.c: removed
8793         * src/spawn.h: removed
8794         * support/regression/ports/ds390/spec.mk: link with -r
8795
8796 2003-01-24    <johan AT CP255758-A>
8797
8798         * src/ds390/gen.c (aopOp): fixed bug #667458
8799         * src/SDCCglue.c (emitRegularMap): fixed bug #458099 again
8800         * src/SDCCast.c (createIvalCharPtr): fixed bug #661910
8801         (createIvalCharPtr): an ival doesn't always have a storage class anymore
8802
8803 2003-01-24  Bernhard Held <bernhard AT bernhardheld.de>
8804
8805         * src/mcs51/peeph.def: better assembler identation by Frieder
8806         * src/mcs51/gen.c: better assembler identation by Frieder
8807
8808 2003-01-22  Bernhard Held <bernhard AT bernhardheld.de>
8809
8810         * as/z80/string.h: removed for gcc 3.2
8811         * support/makebin/makebin.c: #include <string.h> for gcc 3.2
8812         * src/pic/pcode.c (get_op_from_instruction): fix concatenation of string literals with __FUNCTION__ for gcc 3.2
8813
8814 2003-01-19  Bernhard Held <bernhard AT bernhardheld.de>
8815
8816         * src/SDCCmain.c (linkEdit): rename mem and map files even in case of failure
8817         * src/SDCCpeeph.c (replaceRule): fix bug #663503
8818         * support/regression/Makefile: separate temp files for ports
8819         * support/regression/generate-cases.py: separate temp files for ports
8820         * src/mcs51/peeph.def: Frieder: removed 237 (obsolete by 236g and 105); added 237 a/b
8821         * src/ds390/peeph.def: Frieder: removed 237 (obsolete by 236g and 105); added 237 a/b
8822
8823 2003-01-19  Bernhard Held <bernhard AT bernhardheld.de>
8824
8825         * moved tinitalk to device/examples/ds390
8826
8827 2003-01-14  Bernhard Held <bernhard AT bernhardheld.de>
8828
8829         * as/mcs51/lkmem.c: rflag is for DS390
8830         * src/SDCCglobl.h: removed out_name and options stackOnData, genericPtr
8831         * src/SDCCmain.c (optionsTable, setDefaultOptions): removed --stack-after-data and --generic
8832                          (linkEdit): move mem- and map-files the same way as ihx-files
8833         * src/z80/main.c (_setDefaultOptions): removed --generic
8834         * src/SDCCmain.c (_processC1Arg, parseCmdLine, main): --c1mode works again
8835         * src/SDCCglue.c (createInterruptVect, glue): --c1mode works again
8836         * src/pic/glue.c (picglue): --c1mode works again
8837         * src/pic16/glue.c (pic16glue): --c1mode works again
8838         * src/asm.c (printCLine): fix #660034
8839
8840 2003-01-13  Bernhard Held <bernhard AT bernhardheld.de>
8841
8842         * src/ds390/peeph.def: fix #123; add 14 rules by Fiorenzo D. Ramaglia <fd.ramaglia AT tin.it>, 1 by Frieder
8843         * src/mcs51/peeph.def: fix #123; add 14 rules by Fiorenzo, 1 by Frieder
8844         * src/mcs51/gen.c (genFunction): emit r0 instead of ar0 by Fiorenzo
8845         * as/mcs51/lkmem (summary): better fix for sp problem
8846         * src/SDCCglue.c (glue): __start_stack - 1, saves 1 byte!
8847         * src/ds390/main.c (_ds390_finaliseOptions, _tininative_finaliseOptions): stack_loc = 0x400008
8848         * support/regression/ports/*/spec.mk: moving testfwk-object to port dir allow parallel execution of regression tests
8849                                               remove --stack-after-data
8850
8851 2003-01-12  Bernhard Held <bernhard AT bernhardheld.de>
8852
8853         * src/SDCCmain.c (main): port->finaliseOptions() moved for z80 linking
8854         * src/SDCCutil.c (join): ugly bug: missing '\0'
8855         * as/mcs51/lkmem.c (summary): sp on address 7 is safe
8856
8857 2003-01-11  Bernhard Held <bernhard AT bernhardheld.de>
8858
8859         * src/SDCCmain.c (assemble, linkEdit): preparations for -o
8860         * src/port.h: typo
8861         * src/pic/main.c (_asmCmd): gpasm supports -o
8862         * src/z80/main.c: more general macros
8863         * device/lib/Makefile.in: remove intermediate files
8864
8865 2003-01-11  Bernhard Held <bernhard AT bernhardheld.de>
8866
8867         * .version: Bumped version number to 2.3.3
8868         * src/SDCCBBlock.c: new option -o
8869         * src/SDCCglobl.h: new option -o
8870         * src/SDCCglue.c: new option -o
8871         * src/SDCCmain.c: new option -o
8872         * src/asm.c: new option -o
8873         * src/ds390/main.c: new option -o
8874         * src/pic/glue.c: new option -o
8875         * src/pic/pcode.c: new option -o
8876         * src/pic/ralloc.c: new option -o
8877         * src/pic16/glue.c: new option -o
8878         * src/pic16/pcode.c: new option -o
8879         * src/pic16/ralloc.c: new option -o
8880         * src/z80/main.c: new option -o
8881         * device/lib/Makefile.in: use -o
8882         * support/regression/ports/ds390/spec.mk: use -o
8883         * support/regression/ports/gbz80/spec.mk: use -o
8884         * support/regression/ports/mcs51/spec.mk: use -o
8885         * support/regression/ports/mcs51-stack-auto/spec.mk: use -o
8886         * support/regression/ports/z80/spec.mk: use -o
8887         * support/regression/ports/ucz80/spec.mk: use -o
8888         * support/regression/ports/xa51/spec.mk: use -o
8889         * support/regression/fwk/lib/timeout.c: fix usage string
8890
8891 2003-01-09  Bernhard Held <bernhard AT bernhardheld.de>
8892         * src/mcs51/gen.c (genPlus): replaced "mov b,acc" by "mov b,a" Fiorenzo D. Ramaglia <fd.ramaglia AT tin.it>
8893
8894 2003-01-07    <johan AT balder>
8895
8896         * src/SDCCast.c (decorateType): fixed bug #600035
8897
8898 2003-01-07  Bernhard Held <bernhard AT bernhardheld.de>
8899         * as/mcs51/lkmem.c: added several l-modifiers to printf to remove warnings
8900         * as/mcs51/lkaomf51.c: #include <ctype.h> to remove warnings
8901         * src/pic/main.c (_hasNativeMulFor): outcommented unused variables to remove warnings
8902         * src/pic/pcode.c: outcommented unused variable to remove warnings
8903         * src/pic/ralloc.c: outcommented unused variable to remove warnings
8904
8905 2003-01-06    <karl AT turbobit.com>
8906         * sim/ucsim/cmd.src/command.cc: fixed so "break xram r 0x7654" works again in
8907    regression tests.
8908
8909 2003-01-06    <johan AT balder>
8910
8911         * src/SDCCicode.c: fixed array add
8912
8913 2002-01-05  Bernhard Held <bernhard AT bernhardheld.de>
8914         * src/SDCCmacro.c: MAX_STRING_LENGTH increased to 2048; was too small for regression tests
8915         * support/regression/ports/host/support.c: #include <stdarg.h> for gcc 3.2
8916
8917 2003-01-04    <johan AT balder>
8918
8919         * src/SDCCval.c (getNelements): fixed the initialized array of structures
8920
8921 2002-12-29  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
8922         * as/mcs51/Makefile.bcc: fixed typo lkomf51.o -> lkaomf51.o
8923
8924 2002-12-28  Bernhard Held <bernhard AT bernhardheld.de>
8925         * src/mcs51/peeph.def: added rules 234 and 235 from Frieder Ferlemann <frieder.ferlemann AT web.de>
8926         * support/regression/tests/bug-524697.c: fit mem usage into 8032
8927
8928 2002-12-28  Bernhard Held <bernhard AT bernhardheld.de>
8929         * src/mcs51/gen.c (aopGetUsesAcc): inserted missing "return FALSE"
8930
8931 2002-12-27  Bernhard Held <bernhard AT bernhardheld.de>
8932         * as/mcs51/Makefile.in: fixed typo lkomf51.o -> lkaomf51.o
8933
8934 2002-12-26  Bernhard Held <bernhard AT bernhardheld.de>
8935         * src/mcs51/main.c: removed {bindir}{sep} from aslink
8936
8937 2002-12-10  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
8938
8939     * in \sdcc\as\mcs51\ changed these files in order to create an
8940     aomf51 file: aslink.h, lkdta.c, lklex.c, lklibr.c, lklist.c,
8941     lkmain.c.  Also added: lkmem.c and lkaomf51.c.  Changed the
8942     following files to include the previous two files: aslink.dsp,
8943     Makefile.aslink, Makefile.bcc, and Makefile.in.
8944
8945     * Changed \sdcc\src\SDCCmain.c so it creates files with extension
8946     .adb instead of .cdb
8947
8948 2002-11-09  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
8949
8950         * \sdcc\as\mcs51\lklist.c: Now reports memory usage using the
8951         value from option --iram-size.
8952
8953 2002-09-20  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
8954
8955         * \sdcc\as\mcs51\lklist.c: added boundary check before using
8956         dram[] array.
8957
8958 2002-09-18    <wiml AT hhhh.org>
8959
8960         * SDCClrange.h: exposed setFromRange() and setToRange()
8961         * mcs51/ralloc.c: fixed over-eager packRegsForSupport() and
8962           packRegsForAccUse() (bug 542397)
8963         * mcs51/gen.c: MOVA() is now a function to avoid calling aopGet()
8964           multiple times and emitting the fetch operations more than once
8965           added aopGetUsesAcc() function to allow binary operators to
8966           fetch their operands in the correct order; made genMinus() emit
8967           compact code for X = LITERAL - Y
8968
8969 2002-09-00  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
8970         * \sdcc\as\mcs51\lklist.c: Fixed incorrect number of parameters to
8971         sprintf() in line 1267.
8972
8973 2002-09-08  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
8974         * \sdcc\src\SDCCglue.c: Generate areas REG_BANK_[0-3] only for 8051
8975         like ports.
8976
8977 2002-09-04  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
8978         Changes to aslink (All the changes are marked with 'JCF'):
8979
8980         * \sdcc\as\mcs51\aslink.h: External definition of sflag and
8981         summary().
8982
8983         * \sdcc\as\mcs51\lkarea.c: Computes the size of area BSEG_BYTES from
8984         area BSEG.  Also moves, if possible, the DATA area down into the internal
8985         ram so more space is available.
8986
8987         * \sdcc\as\mcs51\lkdata.c: Definition of memory summary output flag
8988         sflag.
8989
8990         * \sdcc\as\mcs51\lklist.c: For the BSEG area report the size in bits,
8991         not bytes.  Function summary() which creates a memory usage summary
8992         file with extension .mem.  Reports of overlaping stack and small stack
8993         size.  If the space for the stack is less than 16 bytes aslink trows a
8994         warning.
8995
8996         * \sdcc\as\mcs51\lkmain.c: Creation of some of the default areas for
8997         the 8051.  Option 'y' for memory summary output file.
8998
8999         Changes to sdcc (All the changes are marked with 'JCF'):
9000
9001         * \sdcc\src\SDCCglobl.h: External definition of RegBankUsed[4].
9002
9003         * \sdcc\src\SDCCglue.c:  If a register bank is used, creates an
9004         overlaying area for it (uses RegBankUsed[4]).
9005
9006         * \sdcc\src\SDCCmain.c: Definition RegBankUsed[4]; marks register
9007         bank zero as used by default.  By default aslink locates the stack
9008         (equivalent to --stack-after-data).  Pass option 'y' to aslink for
9009         the creation of the .mem file.  Delegates the allocation of data area
9010         to aslink (it is not longer 0x30 by default).  If --stack-loc passes
9011         the begining of the stack area to aslink.
9012
9013         * \sdcc\src\SDCCmem.c:  If a register bank is used, marks it so
9014         glue() in SDCCglue.c creates an area for it.
9015
9016 2002-09-03  Borut Razem <borut.razem AT siol.net>
9017         * sdcc/src/SDCCglue.c, sdcc/src/SDCCglue.h, sdcc/src/SDCCmain.c,
9018         sdcc/src/pic/glue.c:
9019         introduced atexit() handler for teporay files removal in case of
9020         errors, assertions, ...
9021
9022 2002-08-29  Borut Razem <borut.razem AT siol.net>
9023         * sdcc/support/cpp2/auto-host_vc_in.h:
9024         re-definition of O_BINARY and other O_XXX as _O_BINARY and _O_XXX, so the problem
9025         with the returned value from read() in sdcc/support/cpp2/cppfiles.c is solved for MSC.
9026         Maybe there is a similar problem with BORLANDC? It should be checked!
9027
9028         * sdcc/src/ds390/ralloc.c, sdcc/src/mcs51/ralloc.c, sdcc/src/z80/ralloc.c:
9029         corrected improper use of assert: the assignment to clr variable was done inside the assert.
9030         In case that NDEBUG was defined, the assert macro was substituted with no-op, so the assignment
9031         was not executed, and the compiler (cl) launched a warning:
9032         ralloc.c(1442) : warning C4700: local variable 'clr' used without having been initialized
9033
9034 2002-08-28  Bernhard Held <bernhard AT bernhardheld.de>
9035         * src/SDCCglue.c (printIvalArray): iterative calculation of array length
9036
9037 2002-08-28  Jesus Calvino-Fraga and Borut Razem <borut.razem AT siol.net>
9038         * sdcc/sdcc.dsw: added sdcpp, sdcppa, yacc, conf projects
9039
9040         * sdcc/src/src.dsp, sdcc/src/avr/avr.dsp, sdcc/src/ds390/ds390.dsp,
9041           sdcc/src/mcs51/mcs51.dsp, sdcc/src/pic/pic.dsp, sdcc/src/z80/z80.dsp,
9042           sdcc/src/xa51/xa51.dsp, sdcc/src/avr/avra.dsp,
9043           sdcc/src/ds390/ds390a.dsp, sdcc/src/mcs51/mcs51a.dsp,
9044           sdcc/src/pic/pica.dsp, sdcc/src/z80/z80a.dsp,
9045           sdcc/src/xa51/xa51a.dsp, sdcc/as/as_z80.dsp,
9046           sdcc/as/aslink.dsp, sdcc/as/asx8051.dsp, sdcc/packihx/packihx.dsp:
9047         - added Release configuration in VS projects
9048         - review of compiler an linker options
9049         - VC .exe files are generated in bin_vc directory, not to interfere
9050           with binaries generated from other projects (cygwin, mingw, bcc ...)
9051
9052         * sdcc/src/yacc.dsp: added
9053
9054         * sdcc/config.dsp, sdcc/configure_vc.awk, sdcc/sdcc_vc_in.h:
9055         added - genarate sdcc_vc.h using sdcc_vc_in.h as template
9056         and insert the version number definitions from .version
9057
9058         * sdcc/support/cpp2/sdcpp.dsp: added - VC project for sdcpp
9059
9060         * sdcc/support/cpp2/sdcppa.dsp, sdcc/support/cpp2/auto-host_vc_in.h:
9061         added - genarate auto-host.h using auto-host_vc_in.h as template
9062
9063         * sdcc/sdcc_vc.h,
9064         removed from CVS, generated automatically
9065
9066 2002-08-25  Bernhard Held <bernhard AT bernhardheld.de>
9067         * support/scripts/inc2h.pl: use gputils or gpasm (from Nathan Hurst)
9068
9069 2002-08-11  Borut Razem <borut.razem AT siol.net>
9070         * support/Util/NewAlloc.c: removed unneeded #include "sdccconf.h" (suggested by Jesus Calvino-Fraga)
9071
9072 2002-08-10  Borut Razem <borut.razem AT siol.net>
9073         * src/SDCCmain.c (main):
9074         file preOutName was unlinked before closed. This seems to be OK on UNIX and cygwin
9075         platforms, but it doesn't work with Visual Studio: the opened file can not be removed.
9076         The consequence was that some temporary files were not removed.
9077
9078         * src/SDCCglue.c:
9079         unification of code in functions tempfilename() and tempfile():
9080         function tempnam() is defined in Visual Studio 6.0 and .NET
9081
9082         * sdcc/sdcc.dsw: removed project sdcpp, added project xa51a
9083
9084         * sdcc/src/src.dsp, sdcc/src/avr/avr.dsp, sdcc/src/ds390/ds390.dsp,
9085           sdcc/src/mcs51/mcs51.dsp, sdcc/src/pic/pic.dsp, sdcc/src/z80/z80.dsp:
9086         - removed compiler command line option /WX: Treats all warnings as errors
9087         - update a list of source files, included into the project
9088
9089         * sdcc/src/avr/avra.dsp, sdcc/src/ds390/ds390a.dsp, sdcc/src/mcs51/mcs51a.dsp,
9090           sdcc/src/pic/pica.dsp, sdcc/src/z80/z80a.dsp:
9091         changed project type to Generic Project so that can be correcly converted to VS.NET project
9092
9093         * sdcc/as/mcs51/asm.h: definition of PATH_MAX for MSC
9094
9095         * sdcc/src/SDCCast.c: solved MSC error in function decorateType()
9096
9097         * sdcc/src/SDCC.y: added missing ending ';' to rules to get rid of bison warnings
9098
9099         * dcc/src/ds390/ralloc.c, sdcc/src/mcs51/ralloc.c:
9100         added return 0 statements after assert() to make compiler happy
9101
9102         * sdcc/src/xa51/peeph.rul, sdcc/src/xa51/peeph.def, sdcc/src/z80/ralloc.c:
9103         added newline in the def file to keep MSC compiler satisfied
9104
9105         * sdcc/src/z80/gen.c:
9106         - function strcasecmp() is not defined in MSC (and probably also in BORLANDC),
9107           so it is replaced with STRCASECMP, which is defined as stricmp in case of MSC and BORLANDC
9108         - solved MSC error in function aopDump()
9109
9110         * sdcc_vc.h: define PREFIX as "\\sdcc"
9111
9112 2002-07-18  Bernhard Held <bernhard AT bernhardheld.de>
9113         * src/SDCCast.c (decorateType): fixed access to array of structures http://sourceforge.net/mailarchive/forum.php?thread_id=902690&forum_id=4107
9114
9115 2002-06-22  Scott Dattalo <scott AT dattalo.com>
9116         * src/pic/*: Numerous bug fixes. Flow analysis has been enhanced.
9117         - Rewrote the register banking algorithm.
9118         - Added pCode live-range analysis to registers (for now, only non-used and
9119         singly-used registers optimized away)
9120
9121         * src/pic/pcoderegs.[ch]: Added new files for pCode live-range analysis
9122
9123         * 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.
9124
9125 2002-05-10  Scott Dattalo <scott AT dattalo.com>
9126         * src/pic/*: Added support for multiplication. Fixed many,many bugs.
9127
9128 2002-04-22  Michael Hope  <michaelh AT vroom>
9129
9130         * device/lib/z80/printf.c: Changed emitter to volatile to work around a pcall bug.
9131
9132         * configure.in (DD_COPT): Added include support required for gbdk.
9133
9134         * .version: Bumped version number just to increase it.
9135
9136         * src/SDCCmain.c: Added -nostdinc to the default options.
9137
9138 2002-04-15  Michael Hope  <michaelh AT vroom>
9139
9140         * device/lib/z80/printf.c (sprintf): Added.
9141
9142         * src/z80/ralloc.c (packRegisters): Disabled pack HL use for GB as it's broken.
9143
9144         * src/z80/peeph.def: Added transpose redundent load rule.
9145
9146         * src/z80/main.c: Added force callee saves for jaune.
9147
9148         * src/port.h: Removed the i186 and tlcs-900h ports as they weren't being being developed.
9149
9150         * src/SDCCmain.c: Pulled the options definition out so that you can add port specific options without changing the main file.
9151
9152 2002-03-28  Johan Knol  <johan AT balder>
9153
9154         * src/SDCCval.c: fixed bug #532436
9155
9156 2002-03-14  Scott Dattalo <scott AT dattalo.com>
9157         * /src/port.h:
9158         Added "char *Processor" field to the port structure.
9159
9160         * /src/SDCCmain.c:
9161         Added -p option. Allows port dependent processor to be specified.
9162
9163         * all ports:
9164         Initialized the new field char *Processor field to NULL in all ports
9165
9166         * /src/pic/*:
9167         Compiler generated registers for interrupt context saving
9168         were not getting allocated.
9169
9170 2002-03-16  Sandeep Dutta  <sandeep AT ddi.com>
9171
9172         * /src/SDCCast.c:
9173         Fixed left shift. Will promote the left side of a left shift
9174         if a) left shifting more than size of operand or b) when assigned
9175         to something size > size of left side
9176
9177 2002-03-14  Scott Dattalo <scott AT dattalo.com>
9178         * src/pic/*
9179         tons of changes. Register allocation has been
9180         rewritten. Added customization for the various PICs. Flow
9181         analysis is restructured. ...
9182
9183         * src/pic/device.h:
9184         Added
9185
9186         * src/pic/device.c:
9187         Added. device.c is a PIC port hack to accomodate variations
9188         in PIC devices.
9189
9190 2002-03-13  Michael Hope  <michaelh AT vroom>
9191
9192         * src/z80/gen.c (genGenPointerGet): Fixed a bug where a pointer in HL is dereferenced into HL but HL is not spilled.  Yeah.
9193
9194 2002-03-04  johanknol  <johanknol AT manik>
9195
9196         * /src/SDCCval.c: fixed
9197
9198         const unsigned char arr[][2] = { { 0, 1 } };
9199         t18.c:1: error: Initializer element is not constant
9200
9201 2002-03-04  bela  <bela AT manik>
9202
9203         * /device/include/mcs51reg.h:
9204         ds89c420 register definition update
9205
9206 2002-03-03    <johan AT FRIJA>
9207
9208         * support/Util/SDCCerr.c: did something, but don't no why anymore
9209
9210         * support/regression/tests/bug-524691.c: made it a little less shy
9211
9212         * src/SDCCast.c (decorateType): fixed bug #524697
9213
9214         * src/SDCCast.c: made some lineno improvements
9215
9216         * src/SDCCval.c (getNelements): changed warning to error
9217
9218         * src/SDCCglue.c (printIvalArray): changed warning to error
9219
9220         * src/SDCCicode.c: fixed a warning for mingw
9221
9222         * src/SDCCast.c (decorateType): fixed the << promotion for ops
9223
9224         * src/SDCCicode.c (geniCodeDivision): divide is shift only for unsigned (bug #524685)
9225
9226 2002-03-02  Sandeep Dutta  <sandeep AT ddi.com>
9227
9228         * src/ds390/peeph.def:
9229         Added some more peephole rules
9230
9231         * src/ds390/gen.c: Various fixes & enhancements
9232
9233         * src/SDCClrange.c, src/SDCClrange.h:
9234         functions "alldefsoutofrange" and "notusedinblock" moved to SDCClrange.c
9235
9236         * src/ds390/ralloc.c:
9237         various fixes & enhancements (ds390) specific
9238
9239         * src/avr/ralloc.c, src/mcs51/ralloc.c, src/pic/ralloc.c, src/xa51/ralloc.c, src/z80/ralloc.c:
9240         Functions "allDefsOutOfRange" & "notUsedinBlock" moved to SDCClrange.c
9241         from rallocs.
9242
9243         * sdcc/src/SDCCcse.c: Better fix for bug # 514308
9244
9245 2002-03-02    <johan AT FRIJA>
9246
9247         * src/SDCCast.c (decorateType): fixed bug #524708
9248
9249         * src/SDCCval.c (floatFromVal): fixed the literal void (whatever that may be)
9250
9251         * src/SDCCicode.c (geniCodePtrPtrSubtract): fixed bug #524691
9252
9253 2002-03-01  Michael Hope  <michaelh AT vroom>
9254
9255         * src/SDCCsymt.c (initCSupport): Removed managling of support function names.
9256
9257         * src/z80/ralloc.c (packRegsForIYUse): Fixed fp bug where four byte operands were packed into IY.
9258
9259 2002-03-01    <johan AT FRIJA>
9260
9261         * src/SDCCglue.c (printIvalPtr): fixed bug #524211
9262
9263         * src/SDCCast.c (decorateType): fixed bug #524209
9264
9265         * src/SDCCval.c (valNot): fixed bug #524195
9266
9267 2002-02-26    <johan AT balder>
9268
9269         * src/xa51/gen.c: fixed a warning
9270
9271         * src/SDCCglue.c (printIvalFuncPtr): fixed bug #522534
9272
9273         * src/SDCCast.c (decorateType): fixed bug #522534
9274
9275 2002-02-23    <johan AT balder>
9276
9277         * src/SDCCdflow.c (computeDataFlow): fixed bug #460088
9278
9279 2002-02-22    <johan AT balder>
9280
9281         * src/SDCCast.c: fixed bug #514865
9282
9283         * src/SDCCy.c ("SDCC.y"): fixed bug #516625
9284
9285 2002-02-21  Sandeep Dutta  <sandeep AT ddi.com>
9286
9287         * sdcc/src/SDCCloop.c:
9288         Previous fix was not good. basic blocks that have "break" or "return" are
9289         not really partof a loop , but live ranges used in these blocks should
9290         be live thru the entire loop, so set partOfLoop but don't add them to
9291         loop region
9292
9293 2002-02-21    <johan AT FRIJA>
9294
9295         * src/SDCCcse.c: fixed bug #514308
9296
9297 2002-02-20  Sandeep Dutta  <sandeep AT ddi.com>
9298
9299         * src/SDCCloop.c:
9300         Fixed BUG #519583. If a conditional block ended in a return/break
9301         statement inside a loop, it was not being considered part of the loop.
9302
9303         * src/SDCCcflow.c: Removed fix (Fixed in SDCCloop.c)
9304
9305 2002-02-10  Karl Bongers <karl AT turbobit.com>
9306
9307         * debugger/*:
9308         Fixed up SDCDB debugger somewhat.  Updated debugger/README
9309         with lots of comments and notes.
9310
9311         * device/examples/test2.c:
9312         Fix bug, "red" variable not being initialized(compiler complained).
9313
9314         * device/examples/Makefile, examples/test3.c:
9315         Add Makefile in device/examples folder, compiles test3.c
9316         for use as a multiple module SDCDB test case.
9317
9318         * sim/ucsim/cmd.src/cmdset.cc:
9319         Took out debug printfs in ucsim "next" command.
9320
9321         * sim/ucsim/xa.src:
9322         Karl and Johan start ucsim XA support.  Most dissassembly working,
9323         about 75% emulation done(plenty of work remaining).
9324
9325         * sim/ucsim/z80.src:
9326         Add Z80 support to ucsim, add test-ucz80 regression test,
9327         notice ucsim/z80 emulation fails on examples/test3.c/itoa code.
9328         Notice z80 compiler fails on examples/test3.c/crc code.
9329
9330 2002-01-30  Sandeep Dutta  <sandeep AT ddi.com>
9331
9332         * src/mcs51/gen.c, src/mcs51/main.c, src/mcs51/ralloc.c:
9333         Added support for --parms-in-bank1
9334
9335         * src/ds390/peeph.def:
9336         added a few more peephole optimzations
9337
9338         * src/ds390/main.c:
9339         1) added __builtin_inp & __builtin_outp used to read in data of given length
9340            from a memory mapped port
9341         2) added __builtin_memcmp
9342         3) added __builtin_swapw swap bytes of a short
9343
9344         * src/ds390/gen.c, src/ds390/gen.h, src/ds390/ralloc.c:
9345         1) handle multiple send & receives from register bank1
9346         2) ralloc can now allocate DPTR1 to some liveRanges
9347
9348         * src/SDCCsymt.c, src/SDCCsymt.h:
9349         changes to handle multiple sends & receives
9350
9351         * src/SDCCptropt.h:
9352         added some pointer arithmetic optimization
9353
9354         * src/SDCCptropt.c:
9355         added some pointer arithmetic optimizations but not stable yet so not
9356         called from anywhere (will get this working shortly)
9357
9358         * src/SDCCopt.c: fixed for multiple sends & receives
9359
9360         * src/SDCCmain.c:
9361         1) added options --parms-in-bank1 (ds390/mcs51) & --protect-sp-update
9362         2) preprocessing done AFTER port->finalizeoptions . This allows ports to
9363            set preprocessor defines (depending on options)
9364
9365         * src/SDCCicode.c, src/SDCCicode.h:
9366         changes made to handle multiple sends & receives
9367
9368         * src/SDCCglobl.h:
9369         Added options --protect-sp-update (ds390) and --parms-in-bank1 (ds390/mcs51)
9370
9371         * src/SDCCcse.c, src/SDCCcse.h:
9372         added function findbackward def (to be used in upcoming optimization)
9373
9374         * src/SDCCcflow.c, src/SDCCcflow.h:
9375         added function returnAtEnd - to determine if a basic block terminates with
9376         a RETURN iCode
9377
9378         * src/SDCCast.c, src/SDCCast.h:
9379         added option parms-in-bank1
9380
9381         * device/lib/_divsint.c, device/lib/_divslong.c, device/lib/_divuint.c
9382         * device/lib/_divulong.c, device/lib/_modsint.c, device/lib/_modslong.c
9383         * device/lib/_modulong.c, device/lib/_mulint.c, device/lib/_mullong.c:
9384         adjusted for --parms-in-bank1 option
9385
9386         * device/include/string.h:
9387         donot redefine "reentrant" keyword
9388
9389         * device/include/ds80c390.h: Added some more SFRs
9390
9391 2002-01-28  Bernhard Held  <bernhard AT bernhardheld.de>
9392
9393         * sim/ucsim: Merged branch ucsim-034-pre3 to main trunk; new version 0.4
9394
9395 2002-01-26  Bernhard Held  <bernhard AT bernhardheld.de>
9396
9397         * src/SDCCast.c (funcOfType): fix usage of double --float-reent
9398
9399 2002-01-22  Bernhard Held  <bernhard AT bernhardheld.de>
9400
9401         * support/regression/fwk/lib/testfwk.c (main): Removed workaround for bug #505387
9402
9403 2002-01-18  Paul Stoffregen  <paul AT pjrc.com>
9404
9405         * Added --xram-movc option
9406
9407 2002-01-13  Bernhard Held  <bernhard AT bernhardheld.de>
9408
9409         * support/regression/Makefile: don't include test-mcs51-stack-auto in target all
9410
9411 2002-01-11  Johan Knol
9412
9413         * Added math lib of Jesus Calvino-Fraga
9414
9415 2002-01-08  Bernhard Held  <bernhard AT bernhardheld.de>
9416
9417         * src/SDCCmain.c (processFile): fix processing of ../../src.c
9418         * support/regression/Makefile: new target test-mcs51-stack-auto
9419         * support/regression/ports/mcs51-stack-auto/spec.mk: added
9420
9421 2002-01-04  Bernhard Held  <bernhard AT bernhardheld.de>
9422
9423         * src/SDCCglue.h: printIvalCharPtr(), not printIvalChar()
9424
9425 2002-01-04  Bernhard Held  <bernhard AT bernhardheld.de>
9426
9427         * support/regression/ports/mcs51/support.c: correct setup of timer / UART
9428
9429 2002-01-03  Bernhard Held  <bernhard AT bernhardheld.de>
9430
9431         * src/SDCCsymt.c (processFuncArgs): fix #498307 by Johan
9432
9433         * src/SDCCglue.h: add definition for printIvalChar()
9434
9435 2002-01-02  Bernhard Held  <bernhard AT bernhardheld.de>
9436
9437         * src/SDCCast.c: fix #498138 by Johan
9438
9439         * src/SDCCglue.c: fix #498138 by Johan
9440
9441 2002-01-02  Bernhard Held  <bernhard AT bernhardheld.de>
9442
9443         * support/regression/Makefile: fix clean
9444
9445         * support/regression/ports/ds390/support.c: fix transmission of last character
9446
9447 2001-12-29  Sandeep Dutta  <sandeep AT ddi.com>
9448
9449         * /sdcc/src/ds390/gen.c:
9450         a) improved computing address of stack variable
9451         b) took out some #if 0 code
9452         c) improved parmBytes adjustment
9453         d) improved genPlusIncr & genMinusIncr
9454         e) genCmp could generate bad code (when left assigned to DPTR)
9455         f) Fixed bug in hasInc
9456
9457         * /sdcc/src/ds390/ralloc.c:
9458         a) packRegsForSupport could mess up live information (Fixed)
9459         b) packRegsDPTRuse could be incorrect for left & right shift
9460
9461         * /sdcc/src/mcs51/ralloc.c:
9462         packRegsForSupport could mess up the live information (Fixed)
9463
9464         * /sdcc/src/mcs51/gen.c: Fixed a bug in hasInc
9465
9466         * /sdcc/src/SDCCast.c:
9467         can reverse a loop even if function call is present as long
9468         as the loop control variable is local & is not passed as parameter
9469
9470 2001-12-24  Sandeep Dutta  <sandeep AT ddi.com>
9471
9472         * /sdcc/ChangeLog: *** empty log message ***
9473
9474         * /sdcc/src/ds390/gen.c, /sdcc/src/ds390/main.c:
9475         More builtin function additions for TININative
9476
9477         * /sdcc/src/ds390/ralloc.c:
9478         Had broken the regression testsuite
9479
9480         * /sdcc/src/SDCCast.c: Fixed a bug in dumptree
9481
9482         * /sdcc/src/SDCCsymt.c, /sdcc/src/SDCCsymt.h:
9483         Added funcattr hasStackParms will be set for reentrant functions when there
9484         are paramteres on the stack, this helps in minimizing frame pointer generation
9485         typeFromStr can handle function pointers now
9486
9487         * /sdcc/doc/builtins.txt, /sdcc/doc/TININative.txt:
9488         *** empty log message ***
9489
9490 2001-12-24  Sandeep Dutta  <sandeep AT ddi.com>
9491
9492         * /src/ds390/gen.c, /src/ds390/main.c:
9493         More builtin function additions for TININative
9494
9495         * /src/ds390/ralloc.c:
9496         Had broken the regression testsuite
9497
9498         * /src/SDCCast.c: Fixed a bug in dumptree
9499
9500         * /src/SDCCsymt.c, /src/SDCCsymt.h:
9501         Added funcattr hasStackParms will be set for reentrant functions when there
9502         are paramteres on the stack, this helps in minimizing frame pointer generation
9503         typeFromStr can handle function pointers now
9504
9505         * /doc/builtins.txt, /doc/TININative.txt:
9506         *** empty log message ***
9507
9508
9509 2001-12-24  Sandeep Dutta  <sandeep AT ddi.com>
9510
9511         * /src/ds390/gen.c, /src/ds390/main.c, /src/ds390/peeph.def, /src/ds390/ralloc.c:
9512         ALPHA version for -mTININative
9513
9514         * /src/izt/i186.c, /src/izt/tlcs900h.c, /src/mcs51/main.c, /src/pic/main.c, /src/z80/main.c, /src/avr/main.c:
9515         updated to reflect changes in the port structure
9516
9517         * /src/port.h:
9518         added function do_assemble (similar to do_link) if non-null this function
9519         will be called to do assembly (-mTININative) requires a multi command
9520         assembly
9521         added function genAssemblerEnd will be called to generate assembler Epilogue
9522
9523         * /src/SDCCsymt.c:
9524         added _JavaNative to debug info printing
9525
9526         * /src/SDCCmain.c: added option --tini-libid
9527         added port->do_assemble function (-mTININative) has a multi command assemble
9528
9529         * /src/SDCCglue.c: Disabled "constExpr" check
9530         added port->genAssemblerEnd function
9531
9532         * /src/SDCCglobl.h: Added option --tini-libid value
9533
9534         * /src/SDCCast.h:
9535         tookout optimizeCompare from the header (has no external references)
9536
9537         * /src/SDCCast.c: made one more function "static"
9538
9539 2001-12-23  Michael Hope  <michaelh AT juju.net.nz>
9540
9541         * src/z80/mappings.i: Added z80asm support.
9542
9543         * src/z80/main.c: Added z80asm support on --asm=z80asm
9544
9545         * src/z80/gen.c: Fixed asm portability issues.
9546
9547         * src/asm.c (tvsprintf): Removed old code, added 'N' for function name.  For extern support.
9548
9549         * src/SDCCglue.c (printExterns): Added global/extern split.
9550
9551 2001-12-17  Bernhard Held  <bernhard AT bernhardheld.de>
9552
9553         * support/regression/Makefile: added test for mcs51 model large
9554
9555         * support/regression/ports/mcs51-large/spec.mk: added test for mcs51 model large
9556
9557         * support/regression/ports/gbz80/spec.mk: added -mgbz80
9558
9559 2001-12-05  Michael Hope  <michaelh AT juju.net.nz>
9560
9561         * src/diff.1 (Index): Many, many optmisiations.  Dhrystone up to 201.
9562
9563 1904-01-06  Michael Hope  <michaelh AT juju.net.nz>
9564
9565         * src/z80/ralloc.c (packRegsForIYUse): Fixed the case where an operand is in direct space.
9566
9567         * src/z80/gen.c (makeFreePairId): Optimised IY load by using a spare pair.
9568
9569 2001-12-02  Bernhard Held  <bernhard AT bernhardheld.de>
9570
9571         * src/mcs51/gen.c (genFunction): avoid excess "inc sp"
9572
9573         * support/regression/tests/simplefloat.c: Port to mcs51.
9574
9575 2001-11-25  Michael Hope  <michaelh AT juju.net.nz>
9576         * support/regression/tests/bug-485362.c: Added.
9577
9578         * support/regression/tests/simplefloat.c (testDivNearOne): Added.
9579
9580         * src/z80/gen.c (aopOp): Fixed case where left and result are in the same spill loc and they have different sizes.
9581
9582         * src/z80/peeph.def: Added rules for optimising two byte compares on the same thing, and to optimise two ptr assign.
9583
9584         * src/z80/gen.c (aopDump): Added a dump function.
9585
9586 2001-11-25  Bernhard Held  <bernhard AT bernhardheld.de>
9587         * sim/ucsim/s51.src/glob.cc: DS390 SFRs and bits added.
9588
9589         * sim/ucsim/s51.src/port.cc: Port 4 and 5 added.
9590
9591         * sim/ucsim/s51.src/regs51.h: DS390 SFRs added.
9592
9593         * sim/ucsim/s51.src/uc390.cc: Some details improved, CKRDY works for tinibios.
9594
9595         * sim/ucsim/s51.src/uc390cl.h: Work in progress.
9596
9597         * sim/ucsim/sim.src/uccl.h: 6 ports for DS390.
9598
9599         * support/regression/fwk/lib/testfwk.c: Run with tinibios.
9600
9601         * support/regression/ports/mcs51/spec.mk: Fine tuninig.
9602
9603         * support/regression/ports/ds390/support.c: Use tinibios.
9604
9605         * support/regression/ports/ds390/spec.mk: Fine tuning, use tinibios.
9606
9607 2001-11-23  Michael Hope  <michaelh AT juju.net.nz>support/regression/tests/bug-460010.c
9608
9609         * src/z80/ralloc.c (packRegsForHLUse3): Changed to not pack into HL if anything is in direct space.
9610         (packRegsForHLUse3): Added packing support for send, cast, and return value from a call.
9611
9612         * src/z80/peeph.def: Added rules for optimising pushes of part of a pair.
9613
9614         * src/z80/gen.c (emitCall): Changed the stack fixup to not use HL.
9615
9616 2001-11-18  Michael Hope  <michaelh AT juju.net.nz>
9617
9618         * src/z80/gen.c (genCmp): Fixed compare on unsigned.
9619
9620         * src/z80/ralloc.c (packRegsForHLUse3): Created and optimised.
9621         (packRegsForIYUse): Created and optimised.
9622
9623 2001-11-07  Michael Hope  <michaelh AT juju.net.nz>
9624
9625         * support/regression/tests/float.c (testFloatAdd): Fixed up warning.
9626 2001-11-18  Bernhard Held  <bernhard AT bernhardheld.de>
9627
9628         * sdcc/support/regression/tests/bug-460010.c: fix seg violation on host
9629
9630         * sdcc/support/regression/tests/muldiv.c: fix output on mcs51
9631
9632         * sdcc/support/regression/tests/stacks.c: fix DSEG overflow on mcs51
9633
9634 2001-11-07  Bernhard Held  <bernhard AT bernhardheld.de>
9635
9636         * sdcc/sim/device/lib/_gptrget.c: mem region 5 (idata) added
9637
9638         * sdcc/sim/device/lib/_gptrput.c: mem region 5 (idata) added
9639
9640 2001-11-07  Bernhard Held  <bernhard AT bernhardheld.de>
9641
9642         * sdcc/sim/ucsim/globals.cc: New: IXRAM.
9643
9644         * sdcc/sim/ucsim/stypes.h: New: IXRAM.
9645
9646         * sdcc/sim/ucsim/s51.src/uc390.cc: New: IXRAM.
9647
9648 2001-11-07  Michael Hope  <michaelh AT juju.net.nz>
9649
9650         * src/z80/ralloc.c (packRegsForHLUse): Banned IFXs from being packed into HL.
9651         (packRegsForHLUse): Added rule to pack address of/pointer get for itemps into HL for the Z80.
9652         (packRegsForAccUse2): Added rule to pack hbit IFXs into A.
9653
9654         * src/z80/main.c (_setDefaultOptions): Made float code re-entrant by default.
9655
9656         * src/z80/gen.c (aopGetLitWordLong): Added word support for floats.
9657         (genNotFloat): Added.
9658         (genUminusFloat): Added.
9659
9660         * device/lib/z80/Makefile: Added floating pt stubs.
9661
9662         * device/lib/Makefile.in (Z80SOURCES): Added floating pt support.
9663
9664         * src/z80/gen.c (genIpush): Fixed up a push of one byte when left is in a pair.
9665
9666         * device/lib/_fsadd.c (__fsadd): Fixed up return where the numbers are hugely different.
9667
9668 2001-11-07  Bernhard Held  <bernhard AT bernhardheld.de>
9669
9670         * sdcc/sim/ucsim/s51.src/glob.cc: Minor fix.
9671
9672         * sdcc/sim/ucsim/s51.src/regs51.h: Minor fix.
9673
9674         * sdcc/support/regression/Makefile: Add port ds390.
9675
9676         * sdcc/support/regression/ports/mcs51/spec.mk: Minor change.
9677
9678         * sdcc/support/regression/ports/z80/spec.mk: Minor change.
9679
9680         * sdcc/support/regression/ports/ds390/spec.mk: Added.
9681
9682         * sdcc/support/regression/ports/ds390/support.c: Added.
9683
9684         * sdcc/support/regression/ports/ds390/uCsim.cmd: Added.
9685
9686         * sdcc/support/regression/ports/mcs51/timeout.c: Cut.
9687
9688         * sdcc/support/regression/fwk/lib/timeout.c: Paste.
9689
9690 2001-11-04  Michael Hope  <michaelh AT juju.net.nz>
9691
9692         * device/include/malloc.h: Added z80 and gbz80 support.
9693
9694         * device/lib/gbz80/heap.s: Added.
9695
9696         * device/lib/z80/heap.s: Added.
9697
9698         * device/lib/malloc.c: Added z80 and gbz80 support.
9699
9700         * support/regression/tests/malloc.c (testMalloc): Added.
9701
9702         * src/SDCCmain.c (parseCmdLine): Added support for -Wp.
9703
9704         * support/regression/tests/bug-478094.c: Added.
9705
9706         * src/z80/gen.c (commitPair): Fixed silly gbz80/z80 commit to static bug.
9707
9708 2001-11-04  Bernhard Held  <bernhard AT bernhardheld.de>
9709
9710         * sdcc/sim/ucsim/s51.src/uc390cl.h: Improvement for ds390 to run regression tests
9711
9712         * sdcc/sim/ucsim/s51.src/uc390.h: Improvement for ds390 to run regression tests
9713
9714         * sdcc/sim/ucsim/s51.src/regs51.h: Improvement for ds390 to run regression tests
9715
9716         * sdcc/sim/ucsim/s51.src/glob.cc: Improvement for ds390 to run regression tests
9717
9718         * sdcc/support/regression/tests/bug-460010.c: Small change for ds390
9719
9720 2001-11-04  Michael Hope  <michaelh AT juju.net.nz>
9721
9722         * src/z80/peeph-gbz80.def: Removed a bad sub optimisation.
9723
9724 2001-11-03  Michael Hope  <michaelh AT juju.net.nz>
9725
9726         * support/regression/tests/bug-477927.c: Added.
9727
9728         * src/z80/peeph.def: Added minor rules.
9729
9730         * src/z80/gen.c (genPlusIncr): Added an extra plusinc rule.
9731
9732         * src/z80/peeph.def: Added jump optimisation modification.
9733
9734 2001-11-01  Michael Hope  <michaelh AT juju.net.nz>
9735
9736         * src/SDCCmain.c (linkEdit): Added runtime path detection to the mcs51 port.
9737
9738 2001-10-30  Michael Hope  <michaelh AT juju.net.nz>
9739
9740         * support/regression/tests/funptrs.c: Added.
9741
9742 2001-10-29  Michael Hope  <michaelh AT juju.net.nz>
9743
9744         * src/z80/ralloc.c (packRegsForHLUse): Fixed up bad spill due to pushing one byte via HL.
9745
9746 2001-10-28  Michael Hope  <michaelh AT juju.net.nz>
9747
9748         * src/z80/gen.c (genArrayInit): Made it work for on stack arrays.
9749
9750         * src/z80/main.c (gbz80_port =): Added rle support to the gbz80 port.
9751
9752         * src/z80/gen.c (genMinus): Fixed for where the result is one byte.
9753         (movLeft2ResultLong): Created.
9754
9755         * src/z80/ralloc.c (packRegsForHLUse): Added a couple of simple cases for the GB.
9756         (joinPushes): Added.  Joins two char pushes into a word push.
9757
9758 2001-10-27  Michael Hope  <michaelh AT juju.net.nz>
9759
9760         * support/cpp2/Makefile.in (install): Added creation of dest dir.
9761
9762         * support/makebin/Makefile (install): Added creation of dest dir.
9763
9764 2001-10-24 Karl Bongers <karl AT turbobit.com>
9765
9766         * configure.in, configure, Makefile, support/cpp: Removed cpp folder, since we have new cpp2 preprocessor code.
9767
9768 2001-10-21  Michael Hope  <michaelh AT juju.net.nz>
9769
9770         * src/z80/ralloc.c: Turned off faulty pack for one use.
9771
9772         * src/z80/peeph-gbz80.def: Removed redundent restart options.
9773
9774         * src/z80/gen.c (genMult): Added native mul for constants on the z80 and gbz80.
9775
9776 2001-10-21  Bernhard Held  <bernhard AT bernhardheld.de>
9777
9778         * support/regression/Makefile: Improved clean
9779
9780         * support/regression/ports/gbz80/spec.mk: Added clean
9781
9782         * support/regression/ports/host/spec.mk: Added clean
9783
9784         * support/regression/ports/z80/spec.mk: Added clean
9785
9786         * support/regression/ports/mcs51/spec.mk: Added clean, little improvements
9787
9788         * support/regression/ports/mcs51/timeout.c: little improvements
9789
9790 2001-10-17  Michael Hope  <michaelh AT juju.net.nz>
9791
9792         * device/lib/malloc.c (MEMHEADER): Fixed against new pedantic pointers.
9793
9794         * support/regression/fwk/include/testfwk.h: Fixed up to use function pts correctly.
9795
9796         * support/regression/generate-cases.py: Fixed up to use function pts correctly.
9797
9798 2001-10-16  Bernhard Held  <bernhard AT bernhardheld.de>
9799
9800         * support/regression/port/mcs51/spec.mk: add timeout for uCsim
9801
9802         * support/regression/port/mcs51/timeout.c: add timeout for uCsim
9803
9804 2001-10-13  Michael Hope  <michaelh AT juju.net.nz>
9805         * src/z80/gen.c (emitCall): Fixed up missing spill of HL when used to assign the result value.
9806
9807         * src/z80/ralloc.c: Turned off pack for one use as it's quite broken.
9808
9809         * src/SDCCmain.c (linkEdit): Added support for passing a legacy command line through the processor.
9810
9811         * src/mcs51/main.c (_linkCmd): Added bin path to command.
9812
9813         * src/SDCCmain.c (initValues): Added support for when it it called just to link.
9814
9815         * as/mcs51/lklibr.c (libfil;): Turned off 'library file' message.
9816
9817         * src/SDCCval.c (constVal): Fixed usage of 'L' modifier problems on ppc.
9818
9819         * support/regression/tests/longor.c: Added.
9820
9821 2001-10-11  Bernhard Held  <bernhard AT bernhardheld.de>
9822
9823         * as/mcs51/asdata.c: replaced FILENAME_MAX with PATH_MAX
9824
9825         * as/mcs51/aslink.h: define PATH_MAX
9826
9827         * as/mcs51/asm.h: define PATH_MAX
9828
9829         * as/mcs51/asmain.c: replaced FILENAME_MAX with PATH_MAX
9830
9831         * as/mcs51/asnoice.c: replaced FILENAME_MAX with PATH_MAX
9832
9833         * as/mcs51/lklex.c: replaced FILENAME_MAX with PATH_MAX
9834
9835         * as/mcs51/lkmain.c: replaced FILENAME_MAX with PATH_MAX
9836
9837         * src/SDCCglobl.h: define PATH_MAX
9838
9839         * src/SDCCmacro.c: replaced FILENAME_MAX with PATH_MAX
9840
9841         * src/SDCCmain.c: replaced FILENAME_MAX with PATH_MAX
9842
9843 2001-10-11  Michael Hope  <michaelh AT juju.net.nz>
9844
9845         * src/z80/gen.c (gencjneshort): Fixed
9846
9847         * src/z80/ralloc.c (packRegsForHLUse): Added pack into HL for cast then ipush.
9848
9849 2001-10-09  Michael Hope  <michaelh AT juju.net.nz>
9850
9851         * support/regression/tests/bug-469671.c: Added.
9852
9853         * src/z80/gen.c (shiftIntoPair): Fixed up warning.
9854
9855 2001-10-08  Michael Hope  <michaelh AT juju.net.nz>
9856
9857         * src/SDCCmain.c: Added --fommit-frame-pointer option and implemented in the z80 port.
9858
9859         * src/z80/gen.c (genPlus): Fixed to work with extended stack.  Also fixed genMinus, genCmp.  genUMinus is still left.
9860
9861 2001-10-08  Bernhar Held  <bernhard AT bernhardheld.de>
9862
9863         * src/SDCCmain.c (preProcess): added define SDCC_NOOVERLAY
9864
9865         * src/device/lib/_mulint.c  : removed hint: nooverlay bug
9866
9867         * src/device/lib/_mullong.c : removed hint: nooverlay bug
9868
9869         * src/device/lib/_divuint.c : removed hint: nooverlay bug
9870
9871         * src/device/lib/_divulong.c: removed hint: nooverlay bug
9872
9873         * src/device/lib/_moduint.c : removed hint: nooverlay bug
9874
9875         * src/device/lib/_modulong.c: removed hint: nooverlay bug
9876
9877 2001-10-07  Michael Hope  <michaelh AT juju.net.nz>
9878
9879         * 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.
9880
9881         * support/Util/NewAlloc.c (freeTrace): Changed free for the gc case to not free at all.  Fixes runtime segfault.
9882
9883         * support/regression/tests/scott-compare3.c (c_abcd): Fixed up casts.
9884
9885 2001-10-07    <johan AT FRIJA>
9886
9887         * device/lib/gets.c (gets): fixed the return value.
9888
9889 2001-10-06  Michael Hope  <michaelh AT juju.net.nz>
9890         * src/SDCCmain.c (WRITE_SEG_LOC): Fixed up to use Safe_strdup.
9891
9892         * 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.
9893
9894         * 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.
9895
9896         * src/z80/gen.c (genZ80Code): Added de-allocation via trace support.
9897
9898         * src/pic/gen.c: Removed Safe_strdup.
9899
9900         * configure.in: Added option to enable libgc support.
9901
9902         * src/SDCCbitv.c (bitVectnBitsOn): Optimised.
9903         (bitVectUnion): Optimised.
9904         (bitVectIntersect): Optimised.
9905         (bitVectBitsInCommon): Optimised.
9906         (bitVectCplAnd): Optimised.
9907
9908         * support/makebin/makebin.c (usage): Removed getopt as mingw32 doesn't have it.  Sigh.
9909
9910 2001-10-03 Bernhard Held <bernhard AT bernhardheld.de>
9911
9912         * src/SDCCmain.c: distinguish between assembler debug and plain options
9913
9914         * src/avr/main.c:   remove standard assembler options
9915
9916         * src/ds390/main.c: remove standard assembler options
9917
9918         * src/mcs51/main.c: remove standard assembler options
9919
9920         * src/port.h: removed "PENDING" comment
9921
9922 2001-10-03 Bernhard Held <bernhard AT bernhardheld.de>
9923
9924         * src/device/lib/_mulint.c  : new, with assember functions
9925
9926         * src/device/lib/_mullong.c : new, with assember functions
9927
9928         * src/device/lib/_divuint.c : with assember functions
9929
9930         * src/device/lib/_divsint.c : with assember functions
9931
9932         * src/device/lib/_divulong.c: with assember functions
9933
9934         * src/device/lib/_divslong.c: with assember functions
9935
9936         * src/device/lib/_moduint.c : with assember functions
9937
9938         * src/device/lib/_modsint.c : with assember functions
9939
9940         * src/device/lib/_modulong.c: with assember functions
9941
9942         * src/device/lib/_modslong.c: with assember functions
9943
9944         * src/device/lib/libint.lib:  replaced _muluint.c  and _mulsint.c  by _mulint.c
9945
9946         * src/device/lib/liblong.lib: replaced _mululong.c and _mulslong.c by _mullong.c
9947
9948         * src/device/lib/Makefile.in: replaced _muluint.c  and _mulsint.c  by _mulint.c
9949                                       replaced _mululong.c and _mulslong.c by _mullong.c
9950
9951 2001-10-03 Bernhard Held <bernhard AT bernhardheld.de>
9952
9953         * src/SDCCsymt.c: sequence of specifiers in pintTypeChain() corrected
9954
9955 2001-10-01 Bernhard Held <bernhard AT bernhardheld.de>
9956
9957         * src/SDCCglue.c: test, if win32api is available for MINGW
9958
9959 2001-10-01 Bernhard Held <bernhard AT bernhardheld.de>
9960
9961         * src/SDCCsymt.c: no more _modifier in printTypeChain()
9962         * support/regression/tests/driverstruct.c: REENTRANT for mcs51
9963         * support/regression/ports/gbz80/spec.mk: removed GENERIC
9964         * support/regression/ports/host/spec.mk: removed GENERIC
9965         * support/regression/ports/mcs51/spec.mk: removed GENERIC
9966         * support/regression/ports/z80/spec.mk: removed GENERIC
9967
9968 2001-10-01  Michael Hope  <michaelh AT juju.net.nz>
9969
9970         * support/regression/fwk/lib/testfwk.c (__printf): Removed GENERIC.
9971
9972         * support/regression/tests/bug-467035.c: Created.
9973
9974 2001-10-01    <johan AT FRIJA>
9975
9976         * src/SDCC.y: fixed bug #466586 part 1
9977
9978 2001-10-01  Johan Knol <johan.knol AT iduna.nl>
9979
9980         * SDCCicode.c: z80 has no generic pointers
9981         * removed -s from strip in all Makefile(.in)'s. It is not needed, but Solaris chocks on it.
9982
9983 2001-09-30  Michael Hope  <michaelh AT juju.net.nz>
9984
9985         * sim/ucsim/cmd.src/Makefile.in ($(PRJDIR)/libcmd.a): Changed all ar references to $(AR) for Solaris.
9986
9987 2001-09-29  Michael Hope  <michaelh AT juju.net.nz>
9988
9989         * Makefile (sdcc-libs): Added makebin to the list of standard targets.
9990
9991         * support/regression/ports/z80/spec.mk: Updated to use env for sdcc bin dir for automatic regression.
9992
9993 2001-09-25  Michael Hope  <michaelh AT juju.net.nz>
9994
9995         * configure.in: Fixed up so that ucsim is only configured once.
9996
9997         * support/cpp2/configure.in: Fixed to use the program transform to append the .exe for the win32 build.
9998
9999         * src/SDCCutil.c (getPrefixFromBinPath): Fixed up to work with win32 in all of its glory.
10000         (getPathDifference): As above.
10001
10002         * src/SDCCmain.c (preProcess): Changed to use a temporary file in a proper temp directory.  Fixed case where pre-processing only.
10003
10004         * src/SDCCglue.c (tempfilename): Added function for pre-processor.
10005
10006 2001-09-23  Michael Hope  <michaelh AT juju.net.nz>
10007         * .version: Updated to 2.3.1
10008
10009         * src/z80/main.c (z80_port =): Added macro based linker and assembler command line support.
10010         Added copyright header.
10011
10012         * src/SDCCmain.c: Shifted various functions into SDCCutil.c
10013         (assemble): Added support for macro based assembler commands.
10014         (linkEdit): Added support for macro based linker commands.
10015         (preProcess): Changed the pre-processor to use macros.
10016         (_setPaths): Added functionality to autodetect the include, lib and bin dir paths.
10017         (_discoverPaths): Added support for overriding the install directory using the SDCCDIR env variable.
10018
10019         * device/lib/z80/crt0.s: Added module name for debugging.
10020
10021 2001-09-20  Michael Hope  <michaelh AT juju.net.nz>
10022
10023         * src/SDCCmain.c (printVersionInfo): Added the build date to the version info.
10024
10025         * src/SDCChasht.c (hTabDeleteByKey): Fixed delete as it would delete the last item from a bucket even if it wasn't the real one.
10026
10027         * src/SDCCglue.c: Moved gc_strdup to SDCCutil.c
10028
10029         * src/Makefile.in: Added SDCCmacro and SDCCutil
10030
10031 2001-09-19  Michael Hope  <michaelh AT juju.net.nz>
10032
10033         * src/SDCCmain.c (printVersionInfo): Added the build date to the version info.
10034
10035 2001-09-16    <johan AT FRIJA>
10036
10037         * 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.
10038
10039 2001-09-15    <johan AT FRIJA>
10040
10041         * src/mcs51/ralloc.c: (findAssignToSym): fixed bug #460662 part 1
10042         * src/ds390/ralloc.c (findAssignToSym): fixed bug #460662 part 1
10043
10044 2001-09-11    <johan AT FRIJA>
10045
10046         * src/SDCCval.c (valDiv Mod Minus Plus Shift): keep litteral expressions as small as possible (bug #460010)
10047
10048 2001-09-10  Michael Hope  <michaelh AT juju.net.nz>
10049
10050         * support/regression/tests/bug-460444.c: Added test case.
10051
10052         * src/z80/gen.c (genOr): bug 460444: if (a ^ lit) was broken for &, |, and ^.
10053         (genCast): Added justification for all of the asserts.
10054
10055 2001-09-10  Bernhard Held <bernhard AT bernhardheld.de>
10056
10057         * support/regression/support.c: _xdata replaced by xdata
10058
10059         * support/regression/spec.mk: removed _generic
10060
10061 2001-09-09  Michael Hope  <michaelh AT juju.net.nz>
10062
10063         * src/pic/ralloc.c (debugLogRegType): Removed some old types to get it to compile.
10064
10065         * src/z80/gen.c (shiftR2Left2Result): Improved the case when v = v >> n for small values of n to use less code space and time.
10066         (genrshTwo): Fixed v = v >> n where v is a negative int and n is > 8: bug 460010.
10067
10068         * src/z80/peeph.def: Added a rule to optimise shift then compare.
10069
10070         * support/regression/tests/bug-460000.c (testShiftByParam): Added test case.
10071
10072         * support/regression/tests/bug-460010.c: Added test case.
10073
10074         * support/regression/Makefile (test-host): Removed a silly 'clean' target when testing against gcc.
10075
10076 2001-09-09  Bernhard Held <bernhard AT bernhardheld.de>
10077
10078         * support/regression/Makefile: inter-port-clean adjusted for mcs51
10079
10080         * support/regression/testfwk.c: removed workaround for bug #436344
10081
10082         * support/regression/tests/bp.c: use less memory with mcs51
10083
10084         * support/regression/tests/bug-441448.c: use less memory
10085
10086         * support/regression/tests/ports/mcs51/spec.mk: cleanup, use --stack-after-data
10087
10088         * support/regression/collate-results.py: typo
10089
10090 2001-09-08  Michael Hope  <michaelh AT juju.net.nz>
10091
10092         * support/regression/tests/fetchoverlap.c: Added new test case.
10093
10094         * support/regression/tests/bp.c: Added new test case.
10095
10096         * support/regression/tests/bug-448984.c: Added new test case.
10097
10098         * support/regression/tests/pow2shifts.c: Added new test case.
10099
10100         * src/z80/gen.c: Turned off the noise it normally generates for the release.
10101         (genlshTwo): Fixed right shift for count > 8.
10102
10103         * src/z80/ralloc.c: Disabled most of the ACC packing rules as they weren't getting hit and weren't at all safe.
10104
10105 2001-09-08    <johan AT FRIJA>
10106
10107         * src/SDCCicode.c (geniCodeCall): a CPOINTER can be used as a function
10108
10109 2001-09-07    <johan AT FRIJA>
10110
10111         * src/SDCCicode.c (newiCodeCondition): fixed bug #456235 (1.77)
10112
10113         * src/SDCCglue.c (emitRegularMap): only delete a symbol when it is a symbol
10114
10115 2001-09-06    <johan AT FRIJA>
10116
10117         * src/SDCC.y: this could be a fix for bug #458744 (1.37)
10118         * bernhard noted me at this: "() equals to (void)" (1.38)
10119
10120 2001-09-05    <johan AT FRIJA>
10121
10122         * src/SDCCglue.c (emitRegularMap): a fix for bug #458099/2
10123
10124 2001-09-04    <johan AT FRIJA>
10125
10126         * src/SDCCsymt.c (checkSClass): a fix for bug #458099/1
10127
10128
10129 2001-09-04  Paul Stoffregen  <paul AT pjrc.com>
10130
10131         * pragma noinduction broke memcpy on mcs51 large model.  Moved it inside z80 optimization
10132
10133 2001-09-03  Michael Hope  <michaelh AT juju.net.nz>
10134
10135         * link/z80/aslink.h: Fixed path for PATH_MAX
10136
10137 2001-09-02  Michael Hope  <michaelh AT juju.net.nz>
10138
10139         * src/z80/gen.c (fetchLitPair): Changed so that it properly caches direct space references.
10140
10141         * support/regression/tests/addsub.c: Added cases to cover all the +, - combinations.
10142
10143         * support/regression/tests/uminus.c: Added a test for the unary minus operator.
10144
10145         * 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.
10146
10147 2001-09-01  Michael Hope  <michaelh AT juju.net.nz>
10148
10149         * src/z80/gen.c: Fixed up generator to pass the regresion tests, specifically fixing loads for longs, genCmp, and turned on the map file.
10150         (genCmp): Fixed up genCmp for the GB with longs.
10151
10152         * device/lib/gbz80/Makefile: Fixed up all the libraries to pass the regression tests.
10153
10154         * support/regression/ports/host/spec.mk: Updated to compile with the new type specifiers.
10155
10156         * device/lib/Makefile.in (Z80SOURCES): Removed old _mululong, _mulslong, and unneeded _mulint.
10157
10158         * device/lib/_mullong.c (_mulslong): Changed to actually return a value :)
10159
10160 2001-08-30  Paul Stoffregen  <paul AT pjrc.com>
10161
10162         * added peepholes 223 to 231 to mcs51 port.  These improve code when using large model.
10163
10164 2001-08-30  Michael Hope  <michaelh AT juju.net.nz>
10165
10166         * 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.
10167
10168         * src/z80/gen.c (genPlus): Changed bad long add for gb to a fall through.
10169
10170 2001-08-29  Michael Hope  <michaelh AT juju.net.nz>
10171
10172         * link/z80/aslink.h: Fixed long file name support.  Is now based off PATH_MAX instead of a constant.
10173
10174         * src/z80/gen.c: Fixed add and sub for the case where left or right are in static space.
10175
10176 2001-08-30 Bernhard Held   <bernhard AT bernhardheld.de>
10177
10178   * sim/ucsim/configure:    little improvement of Cygwin-detection
10179   * sim/ucsim/configure.in: little improvement of Cygwin-detection
10180   * sim/ucsim/cmd.src/newcmdcl.h: include <sys/types.h> to define fd_set automated build
10181   * support/regression/tests/bug-221100.c: small changes for mcs51
10182   * support/regression/tests/bug-221168.c: small changes for mcs51
10183   * support/regression/tests/bug-227710.c: small changes for mcs51
10184   * support/regression/tests/staticinit.c: small changes for mcs51
10185   * as/mcs51/aslink.h: accept everything as symbol name in rel-files, bug fix ID 452601
10186   * as/mcs51/lklex.c:  accept everything as symbol name in rel-files, bug fix ID 452601
10187   * as/mcs51/lksym.c:  accept everything as symbol name in rel-files, bug fix ID 452601
10188
10189 $Revision$