* src/SDCCcse.c (ReplaceOpWithCheaperOp): minor fix for debugging only
[fw/sdcc] / ChangeLog
1 2005-11-18 Bernhard Held <bernhard AT bernhardheld.de>
2
3         * src/SDCCcse.c (ReplaceOpWithCheaperOp): minor fix for debugging only
4         * src/mcs51/gen.c (genUnpackBits): better code and a fix,
5         (genCast) cosmetic change
6         * src/ds390/gen.c (genUnpackBits, ): ported from mcs51
7         * src/ds390/ralloc.c (packRegsForAssign): ported fix for bitfields
8         from mcs51
9         * support/regression/tests/bitfields (testSignedBitfields): added
10
11 2005-11-18 Borut Razem <borut.razem AT siol.net>
12
13         * sdcc/device/lib/Makefile.in: remove all unnecessary files
14         * device/lib/pic/Makefile.rules, device/lib/pic16/Makefile.subdir:
15           introduced SILENT option to make building of pic16 libraries less
16
17 2005-11-18 Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
18
19         * device/lib/modff.c, device/lib/ceilf.c, device/lib/floorf.c:
20           Now they work properly with floats between -1.0 and 0.0
21         * device/lib/printf_large.c: Removed temporary patch for bug 1358192
22
23 2005-11-18 Maarten Brock <sourceforge.brock AT dse.nl>
24
25         * src/SDCCicode.c (printOperand): added missing else
26
27 2005-11-18 Bernhard Held <bernhard AT bernhardheld.de>
28
29         * src/SDCCsymt.c (computeType): fixed bug 1358192: added missing else,
30         reformatted for better readability
31         * src/mcs51/gen.c (genUnpackBits): initial, incomplete support for
32         signed bitfields
33
34 2005-11-17 Borut Razem <borut.razem AT siol.net>
35
36         * device/lib/pic16/Makefile.rules, device/lib/pic16/Makefile.subdir:
37           introduced SILENT option to make building of pic16 libraries less
38           verbose - used for nightly snapshot build
39         * doc/sdccman.lyx: documented that SDCDB and ucSim are currently not
40           available on Win32 platforms.
41         * sdcc/device/lib/Makefile.in: added library sources for mcs51, small,
42           medium, large, pic and pic16
43
44 2005-11-16 Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
45
46         * device/lib/printf_large.c: Temporary patch for bug 1358192:
47           printf("%f"...) sets fraction to zero.
48
49 2005-11-16 Raphael Neider <rneider AT web.de>
50
51         * src/pic/pcode.c (LinkFlow): handle empty flows correctly,
52           fixes #1357221
53         * src/pic/gen.c (genIfx): implemented for CARRY bit
54         * src/pic16/gen.c (genAssign,genCast): fixed assigning/casting
55           to generic pointers, fixes #1357332,
56           (pic16_movLit2f): NEW,
57           (pic16_storeForReturn,genDataPointerSet): use pic16_movLit2f
58
59 2005-11-14 Maarten Brock <sourceforge.brock AT dse.nl>
60
61         * src/SDCCmain.c (parseCmdLine): fixed bug 1356800, thanks rsudjian
62
63 2005-11-11 Raphael Neider <rneider AT web.de>
64
65         * src/pic/gen.c: handle FPOINTERS like POINTERS everywhere
66         * src/pic16/gen.c (pic16_derefPtr): now works for non-pointers as well,
67           compute pointer's type from operand,
68           (genUnpackBits,genPackBits): handle FPOINTERS correctly, re-indented,
69           improved single bit reads, fixes bug #1353379
70
71 2005-11-09 Borut Razem <borut.razem AT siol.net>
72
73         * support/scripts/sdcc.nsi: added lib/pic to the package
74
75 2005-11-08 Maarten Brock <sourceforge.brock AT dse.nl>
76
77         * src/SDCCval.c (valUnaryPM): fixed bug 1350699
78
79 2005-11-06 Maarten Brock <sourceforge.brock AT dse.nl>
80
81         * support/regression/tests/bug1348008.c: added
82         * src/mcs51/gen.c (saveRBank, unsaveRBank): fixed bug 1348008
83         * support/regression/tests/bug1337835.c: updated comment
84
85 2005-11-06 Borut Razem <borut.razem AT siol.net>
86
87         * sim/ucsim/error.cc, sim/ucsim/errorcl.h,
88           sim/ucsim/sim.src/stack.cc, sim/ucsim/sim.src/stackcl.h,
89           sim/ucsim/sim.src/uc.cc, sim/ucsim/sim.src/uccl.h,
90           sim/ucsim/sim.src/mem.cc, sim/ucsim/sim.src/memcl.h,
91           sim/ucsim/cmd.src/set.cc, sim/ucsim/cmd.src/show.cc:
92           dynamic construction of cl_error_class and derivates - 2.nd try
93
94 2005-11-05 Borut Razem <borut.razem AT siol.net>
95
96         * sim/ucsim/sim.src/error.cc: fixed uninitialized class member variable
97           bug, which caused Bus Errors on sparc solaris
98
99 2005-11-04 Borut Razem <borut.razem AT siol.net>
100
101         * sim/ucsim/error.cc, sim/ucsim/errorcl.h,
102           sim/ucsim/sim.src/stack.cc, sim/ucsim/sim.src/stackcl.h,
103           sim/ucsim/sim.src/uc.cc, sim/ucsim/sim.src/uccl.h,
104           sim/ucsim/sim.src/mem.cc, sim/ucsim/sim.src/memcl.h,
105           sim/ucsim/cmd.src/cmdconf.cc: dynamic construction of cl_error_class
106           and derivates to resolve the initialization problem on OSX
107
108 2005-11-02 Borut Razem <borut.razem AT siol.net>
109
110         * sim/ucsim/cmd.src/cmdutil.cc, sim/ucsim/cmd.src/newcmd.cc:
111           corrected typo - #include <winsock2.h>
112
113 2005-11-02 Maarten Brock <sourceforge.brock AT dse.nl>
114
115         * src/asm.c (printILine): always close tmpFile, thanks Beau E. Cox,
116           (_asxxxx_mapping): added org directive for future enhancements
117
118 2005-11-01 Borut Razem <borut.razem AT siol.net>
119
120         * sim/ucsim/app.cc, sim/ucsim/cmd.src/cmdutil.cc, sim/ucsim/cmd.src/newcmd.cc:
121           enabled sockets on WIN32
122         * sim/ucsim/cmd.src/newcmd.cc: fixed bug with uninitialized variables
123
124 2005-10-31 Borut Razem <borut.razem AT siol.net>
125
126         * support/regression/generate-cases.py: escape backslashes in {testcase}:
127           WIN32 backslash path delimiters should be escaped when used in C strings
128         * support/regression/tests/bitfields.c: exclude failing assertions for
129           __CYGWIN32__ and __MINGW32__ hosts
130
131 2005-10-30 Borut Razem <borut.razem AT siol.net>
132
133         * src/SDCCutil.c: corrected double comparison typo
134
135 2005-10-30 Maarten Brock <sourceforge.brock AT dse.nl>
136
137         * device/lib/medium/Makefile: added for new memory model medium
138         * device/include/asm/mcs51/features.h: updated for medium/pdata
139         * device/include/mcs51/c8051f120.h: added sfr16/sfr32 definitions,
140           added Multiply & Accumulate sbit's and MAC0_PAGE define
141         * device/include/mcs51/c8051f300.h: added sfr16 definitions
142         * device/include/mcs51/c8051f310.h: added sfr16 definitions
143         * device/lib/_mullong.c: update for medium model
144         * device/lib/incl.mk: added medium model
145         * doc/sdccman.lyx: documented medium model
146         * src/SDCCast.c (isBitAndPow2): simplified using updated powof2
147         * src/SDCCicode.c (geniCodeMultiply, geniCodeDivision): use updated powof2
148         * src/SDCCmain.c (optionsTable, linkEdit): enabled medium model
149         * src/SDCCmem.c (allocIntoSeg): set iaccess for pdata symbols,
150           (allocParms): set SCLS and OCLS to pdata for medium model
151         * src/SDCCsymt.c (processFuncArgs): use default_local_map and set iaccess
152           for pdata,
153           (powof2): return <0 if not power of 2
154         * src/avr/gen.c (genBitWise): use updated powof2
155         * src/mcs51/gen.c (genMinusDec): use acc if necessary,
156           (shiftR2Left2Result): small optimization in setup, save acc when storing,
157           (shiftLLeftOrResult): use B if necessary
158         * src/mcs51/main.c (_mcs51_finaliseOptions, mcs51_port): added medium model
159         * src/mcs51/peeph.def: renamed 226 to 226.b, added 226.a
160         * src/pic/main.c (_pic14_do_link): made void parameter list explicit
161         * support/regression/Makefile.in: added test-mcs51-medium
162         * support/regression/ports/mcs51-medium/spec.mk: added to test medium model
163
164 2005-10-28 Bernhard Held <bernhard AT bernhardheld.de>
165
166         * src/SDCCsymt.c (compStructSize): make bitfields without (un)signed
167         specifier unsigned
168         * device/lib/time.c (mktime): fixed bug 1334315
169
170 2005-10-28 Raphael Neider <rneider AT web.de>
171
172         * device/include/pic/p16f_common.inc: added common declarations
173         * src/pic/ralloc.c (initStack): moved regs *r to block start for Alpha
174
175 2005-10-27 Maarten Brock <sourceforge.brock AT dse.nl>
176
177         * src/mcs51/gen.c (getTempRegs): return 0 if not enough registers found,
178           (aopPutUsesAcc): added to predict accumulator use,
179           (assignResultValue): save acc if necessary,
180           (genMinusDec): store result if indirectly addressed,
181           (genDivOneByte):  save acc if necessary,
182           (movLeft2Result): bugfix if left already in acc,
183           (genAnd, genOr, genXor, shiftL2Left2Result, shiftR2Left2Result): pay more
184             attention to accumulator use (esp. pdata),
185           (genReceive): receive pdata correctly
186         * src/SDCCicode.c (isOperandInPagedSpace): added to detect pdata operands
187         * src/SDCCicode.h: added isOperandInPagedSpace prototype
188
189 2005-10-27 Raphael Neider <rneider AT web.de>
190
191         * doc/sdccman.lyx: corrected version (should be 2.5.4 not 2.5.5)
192
193 2005-10-27 Raphael Neider <rneider AT web.de>
194
195         * .version: changed version to 2.5.4
196         * doc/sdccman.lyx: changed version to 2.5.4, added some remarks to PIC14
197         * device/lib/pic/libsdcc/{_mulint.c,_mullong.c}: use unsigned literals,
198           (_divschar.c,divuchar.c,_mulchar.c,_modschar.c,_moduchar): NEW,
199             arithmetics support routines
200         * device/lib/pic/Makefile.rules: have assembler sources preprocessed
201         * device/lib/Makefile.in: also create installdir for pic
202
203         * src/SDCCopt.c (cnvToFcall): mark support routines `extern' for
204           pic14 port as well
205         * src/pic/device.c (dump_sfr): rewritten to delegate register
206           placement to the linker (use `extern sym' rather than sym EQU addr),
207           (validAddress): fixed to check last specified address
208         * src/pic/gen.c (aopForSym): added code to deal with array (useless?),
209           (popGetLit): truncate literal value to 8 bit,
210           (popGet): moved assert to more appropriate place
211           (popGetExternal): create pCode operand from and mark the according
212             symbol as being `extern'
213           (popGetAddr): added sanity check on immediate's offset, provide
214             GPOINTER tag on demand
215           (aopPut): fixed for immediates,
216           (mov2w_op): move operand's address or contents to WREG (depending on
217             operand type), safer variant of mov2w,
218           (movwf,call_libraryfunc): NEW, handy abbreviations,
219           (get_argument_pcop,get_return_val_pcop,pass_argument,
220           get_returnvalue): interface for accessing function parameters and
221             return values,
222           (assignResultValuei,genRet): use new parameter/return value interface
223           (pic14_getDataSize): back to old version handling generic pointers,
224           (pic14_toBoolean,genNot,genCpl,genCmpEq,genOrOp): heavily rewritten,
225             provided implementation and/or fixed old one,
226           (genMultOneByte,genDivOneByte,genModOneByte): implemented as library
227             calls, removed legacy 8051 reference code
228           (AccLsh,AccRsh): rewritten and fixed to deal with signed operands
229           (loadSignToC): NEW, move the operands sign bit to CARRY,
230           (genGenericShift): NEW, replaces genLeftShift, genRightShift and
231             genRightShiftSigned, accepts negative shift counts,
232           (setup_fsr): load FSR and adjust IRP (indirect memory access),
233           (emitPtrByteGet,emitPtrByteSet): rewritten, now works with
234             generic pointers, __data pointers and __code pointers,
235           (genUnpackBits,genPackBits): rewritten to work with generic pointers
236             and signed bitfields, limit bitfields to 8 bit,
237           (genDataPointerGet): fixed number of bytes read,
238           (genGenPointerGet,genConstPointerGet): fixed bitfield access,
239           (genPointerGet,genPointerSet): fixed handling of __code pointers,
240             pointers to constant data are no longer assumed to point to __code
241             space, removed invalid pointer types,
242           (bitpatternFromVal): retrieve the PICs representation of an integer
243             or float literal,
244           (genDataPointerSet): fixed assigning to po_immediate operands,
245           (genGenPointerSet): implemented as library call,
246           (genIfx): fixed incorrect condition,
247           (genAddrOf): limit generic pointers' addresses to 2 bytes,
248             provide GPOINTER tag according to destination's storage class,
249           (genCast): added code to handle casting to generic pointers, added
250             sign-/zero extension of the result
251           (aop_isLitLike,op_isLitLike): fixed handling of immediates
252         * src/pic/gen.h: added macros to access IRP bit in STATUS register
253         * src/pic/genarith.c (genAddLit): use min(result's,left's) size, sign
254           extend the result
255         * src/pic/glue.c (is_shared_address,is_shared): check whether a given
256           address/register resides in the shared banks
257           (emitSymbolToFile): improved to handle global and `pinned' symbols,
258             put all variables into separate sections (have the linker arrange
259             them)
260           (picglue): put init code and interrupt handlers in separate sections
261         * src/pic/main.c: added port specific options table, modified to PORT
262           structure to make GPOINTERs 3 byte, added pic14_options
263           (_pic14_do_link): private linking routine (update paths to libraries,
264             add libsdcc.lib by default)
265         * src/pic/main.h: declare pic14_options
266         * src/pic/pcode.c: fixed instructions i/o relations,
267           (RegCond): reverted to correct version,
268           (newpCodeOpLit): truncate literals to 8 bit,
269           (genericPrint): added debug output,
270           (getRegFromInstruction): fixed for various operand types, simplified
271           (BuildFlow): fixed broken handling of isntructions with labels
272           (LinkFlow): start at last instruction in flow (skip trailing comments),
273             pass the flow on to the next instruction after CALL
274           (pCodeReplace): NEW, replace a pCode and move meta data to the new one
275           (insertPCodeInstruction): fixed inserting after a skip instruction,
276           (DoBankSelect): fixed for labeled instructions
277           (OptimizepBlock): honor --nopeep switch
278           (AnalyzeFlow,ReuseReg): prevent crash on source files with no function
279         * src/pic/pcodepeep.c (pCodePeepMatchRule): prevent NULL pointer accesses
280         * src/pic/pcoderegs.c (regIsLocal): NEW, check visibility of a register
281           (pCodeOptime2pCodes): allow disabling this optimization via
282             --no-pcode-opt due seldomly occuring bugs, fixed some conditions
283             but is still buggy), started implementation of a dataflow based
284             pCode optimization (CSE + dead code elimination)
285           (pCodeRegMapLiveRangesInFlow): removed bogus inCond
286         * src/pic/ralloc.c (initStack): renamed stack registers to STK%d, the new
287           names are independant of the stack location and therefore portable across
288           devices
289
290 2005-10-27 Maarten Brock <sourceforge.brock AT dse.nl>
291
292         * src/mcs51/ralloc.c (bitType): added to detect bit variables,
293           (selectSpil): fixed bug 1337835 by not spilling bit variables
294         * support/regression/tests/bug1337835.c: added test for this bug
295         * src/mcs51/peeph.def: restart after rule 3.c,
296           addded rules 263.x to optimize loading constants
297
298 2005-10-26 Raphael Neider <rneider AT web.de>
299
300         * src/SDCCsymt.c (compStructSize): allow signed bitfields for PIC ports
301         * src/pic16/gen.c (genUnpackBits): support signed bitfields,
302           (genAssign): emit warning when casting literals to generic pointer
303             type, also applies when taking the address of a fixed variable,
304           (genCast): improved casting to generic pointers
305         * src/pic16/glue.c (pic16emitStaticSeg): fixed(?) handling of fixed
306           extern variables, added verbose error message
307         * device/include/pic16/{string.h,errno.h}: added #pragma library c
308
309 2005-10-26 Bernhard Held <bernhard AT bernhardheld.de>
310
311         * src/mcs51/gen.c (genMinus): fixed bug 1270906: reverse subtraction,
312         carry must be complemented too
313         * src/mcs51/peeph.def: addded rule 262 to remove double cpl c, which
314         could be emitted by genMinus
315         * src/SDCCval.c (constVal): fixed bug 1305065
316
317 2005-10-25 Bernhard Held <bernhard AT bernhardheld.de>
318
319         * src/SDCCast.c (addCast): added promotion for bit variables
320         (decorateType): emit W_COMPLEMENT before the problem vanishes behind
321         promotion casts + optimisation
322         (optimizeGetWord): fix warning 'i' might be used uninitialized
323         * src/mcs51/gen.c (genCpl): removed W_COMPLEMENT
324         * src/ds390/gen.c (genCpl): removed W_COMPLEMENT
325
326 2005-10-24 Bernhard Held <bernhard AT bernhardheld.de>
327
328         * src/SDCCicode.c (ast2iCode): reverted to 1.224 because of regression:
329         all chars are promoted to int; promotion should be handled in SDCCast.c
330
331 2005-10-15 Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
332
333         * device/lib/_strcmp.c: Fixed bug 1326457
334
335 2005-10-11 Raphael Neider <rneider AT web.de>
336
337         * device/lib/pic16/libio/i2c.ignore: added 1320, fixes broken builds
338         * device/lib/pic16/libdev/pic18f1320.c: added 1320's device library
339
340 2005-10-05 Maarten Brock <sourceforge.brock AT dse.nl>
341
342         * src/SDCC.y (AT): fixed bug with sfr32 addresses when built with GCC
343         * support/regression/tests/sfr16.c: added test for the sfr32 bug
344
345 2005-10-04 Raphael Neider <rneider AT web.de>
346
347         * device/include/pic16/pic18fregs.h, src/pic16/devices.inc,
348           device/lib/pic16/pics.all: added pic18f1320
349         * src/pic16/pcode.c (mnem2key): fixed prototype's argument mismatch
350
351 2005-09-30 Raphael Neider <rneider AT web.de>
352
353         * src/pic16/device.c (Pics16[]): moved device descriptions to devices.inc
354         * src/pic16/devices.inc: NEW, provides device descriptions
355         * src/pic16/gen.c (genInline): fixed handling of ';'-comments
356
357 2005-09-26 Maarten Brock <sourceforge.brock AT dse.nl>
358
359         * src/SDCCicode.c (operandOperation): added GETABIT, GETBYTE, GETWORD and
360           GETHBIT
361
362 2005-09-25 Maarten Brock <sourceforge.brock AT dse.nl>
363
364         * doc/sdccman.lyx: updated Highest Order Bit documentation,
365           documented Any Order Bit, Higher Order Byte and Higher Order Word
366         * src/SDCC.y: added tokens GETABIT, GETBYTE, GETWORD
367         * src/SDCCast.c (optimizeGetHbit): updated to also accept bool=expr&(1<<n),
368           (optimizeGetAbit): new, to get any bit, not only the high bit,
369           (optimizeGetByte): new, to get a byte from a (long) int: expr>>(8*n),
370           (optimizeGetWord): new, to get a word from a long int: expr>>(8*n),
371           (isConformingBody): also check GETABIT, GETBYTE, GETWORD,
372           (decorateType): '&': also try GETABIT, GETBYTE, GETWORD optimization,
373             RIGHT_OP: also try GETBYTE, GETWORD optimization,
374             GETABIT, GETBYTE, GETWORD: decorate them,
375           (isShiftRightLitVal, isBitAndPowOf2): new helper functions,
376           (ast_print): added GETABIT, GETBYTE, GETWORD
377         * src/SDCCcse.c (isSignedOp): added GETABIT, GETBYTE, GETWORD
378         * src/SDCCicode.c (codeTable): added GETABIT, GETBYTE, GETWORD,
379           (geniCodeBinary): new generic binary icode,
380           (ast2iCode): added GETABIT, GETBYTE, GETWORD
381         * src/port.h: updated comment for PORT.hasExtBitOp
382         * src/mcs51/gen.c (genGetAbit): new, to get any single bit,
383           (genGetByte): new, to get a single byte,
384           (genGetWord): new, to get a word from a long,
385           (gen51Code): added GETABIT, GETBYTE, GETWORD
386         * src/mcs51/main.c (hasExtBitOp): added GETABIT, GETBYTE, GETWORD
387
388 2005-09-23 Raphael Neider <rneider AT web.de>
389
390         * configure.in, configure: have device/lib/pic configured
391         * device/lib/Makefile.in: added model-pic14
392         * device/lib/clean.mk: added pic/ to clean rule
393         * device/lib/pic: added rudimentary pic14 library providing support
394           functions for multiplication/division/generic pointer access
395         * src/SDCCopt.c (convilong): mark support functions as extern
396           for pic14 port as well
397         * src/pic/gen.c (genMult): added assertions,
398           (genpic14Code): emit warning on unhandled iCodes
399         * src/pic/main.c (_hasNativeMulFor): return true only for 8x8 bit
400         * src/pic/pcode.c (pCodeOpCopy),
401         * src/pic16/pcodepeep.c (pic16_pCodeOpCopy): fixed handling of various
402           pCodeOpReg-subtypes (PO_{STATUS,INTCON,PCL,PCLATH,PCLATU,BSR,
403           SFR_REGISTER}), made safe for future extensions
404         * src/pic16/pcode.c (pic16_safepCodeUnlink): allow for removal of
405           instructions even if preceeded by SKIP instructions (also remove
406           them); removed unused code
407         * src/pic16/pcode.h: added arg2 to pCodeOpLit to match pCodeOpLit2,
408           prevents leaving parts of the structure uninitialized after copying
409
410 2005-09-22 Maarten Brock <sourceforge.brock AT dse.nl>
411
412         * src/mcs51/gen.c (genMinus): fix for undetected bug introduced 3 months
413           ago by me
414         * support/regression/tests/addsub.c: added test for the bug
415
416 2005-09-21 Raphael Neider <rneider AT web.de>
417
418         * device/include/pic16/pic18f1220.h,
419           device/lib/pic16/libdev/pic18f1220.c: added ECCPAS sfr and bitfield
420         * device/lib/pic16/Makefile.rules: added missing opening paren
421         * src/pic16/gen.c (pic16_genNot,pic16_genCpl): removed as these
422           are provided in genutils.c,
423           (genUminusFloat,genUminus,genCmpEq): added asserts on different
424           operand/result sizes,
425           (genCmp): assert on NULL pointers first, then check deref'ed values
426         * src/pic16/genutils.c (pic16_genCpl): fixed for different operand/
427           result size
428
429 2005-09-18 Raphael Neider <rneider AT web.de>
430
431         * src/pic16/gen.c (genFarPointerGet,genFarPointerSet): removed
432           as these are now unused,
433           (genPointerGet,genPointerSet): handle FPOINTERs like POINTERs
434         * src/pic16/pcode.c (pic16_symIsSpecial): assume REG_TMPs to be
435           local, avoids uninitialized pointer dereference on r->name
436         * src/pic16/ralloc.c (newReg): fixed indentation
437
438 2005-09-13 Maarten Brock <sourceforge.brock AT dse.nl>
439
440         * src/SDCCval.c (constVal): fixed bug 730366
441         * support/Util/SDCCerr.c,
442         * support/Util/SDCCerr.h: added warning W_INVALID_INT_CONST
443
444 2005-09-10 Maarten Brock <sourceforge.brock AT dse.nl>
445
446         * as/mcs51/lkmem.c (summary2): fixed report for absolute areas (bug 1210220)
447
448 2005-09-09 Maarten Brock <sourceforge.brock AT dse.nl>
449
450         * src/mcs51/peeph.def (241.x): fixed bug when comparing generic pointers
451
452 2005-09-08 Maarten Brock <sourceforge.brock AT dse.nl>
453
454         * as/hc08/lkaomf51.c (OutputName): made name unsigned char,
455           (hex2dec): made hex_digit unsigned char, removed ascii dependance
456         * as/mcs51/lkaomf51.c (OutputName): made name unsigned char,
457           (hex2dec): made hex_digit unsigned char, removed ascii dependance
458         * as/mcs51/lkarea.c (lnkarea2): sort absolute areas to the front
459         * packihx/packihx.c (hexDigit): made c unsigned char
460         * as/mcs51/lklibr.c (fndsym),
461         * link/z80/lkgb.c (gb),
462         * link/z80/lklibr.c (fndsym),
463         * link/z80/lkrloc.c (relr),
464         * sim/ucsim/libltdl/ltdl.c (load_deplibs, try_dlopen),
465         * src/SDCC.lex (checkCurrFile, process_pragma),
466         * src/SDCCglue.c (spacesToUnderscores),
467         * src/SDCCmain.c (setParseWithComma, processFile),
468         * src/asm.c (tvsprintf, printCLine),
469         * src/avr/gen.c (emitcode, aopPut),
470         * src/ds390/gen.c (emitcode),
471         * src/hc08/gen.c (emitcode, emitinline),
472         * src/mcs51/gen.c (emitcode, genInline),
473         * src/pic/pcodepeep.c (cvt_extract_destination, cvt_extract_status,
474           tokenizeLineNode),
475         * src/pic/ralloc.c (debugLog),
476         * src/pic16/pcodepeep.c (cvt_extract_destination, cvt_extract_status,
477           tokenizeLineNode),
478         * src/pic16/ralloc.c (debugLog),
479         * src/z80/main.c (_process_pragma):
480            made all ctype.h function calls safe
481         * src/SDCCopt.c: include math.h for fabs
482         * src/SDCCpeeph.c: added macros ISCHARDIGIT, ISCHARSPACE and ISCHARALNUM
483           and used them throughout the code to make ctype.h function calls safe
484         * src/ds390/main.c (asmLineNodeFromLineNode),
485         * src/mcs51/main.c (asmLineNodeFromLineNode): made p unsigned char*
486         * src/pic/gen.c (DEBUGpic14_emitcode, pic14_emitcode): made lbp
487            unsigned char*
488         * src/pic/pcode.c (mnem2key): made mnem unsigned char*,
489           (newpCodeAsmDir): made ctype.h function calls safe
490         * src/pic16/gen.c (pic16_emitpcomment, DEBUGpic16_emitcode,
491           pic16_emitcode):  made lbp unsigned char*
492         * src/pic16/pcode.c (mnem2key): made mnem unsigned char*,
493           (pic16_newpCodeAsmDir): made ctype.h function calls safe
494         * src/xa51/gen.c (emitcode),
495         * src/z80/gen.c (_emit2): made lbp unsigned char*
496         * support/Util/MySystem.c (split_command): made cmd_line and p unsigned
497            char*
498
499 2005-09-05 Raphael Neider <rneider AT web.de>
500
501         * src/pic16/ralloc.c (pic16_allocDirReg): use device specific
502           access bank splitpoint
503
504 2005-09-05 Raphael Neider <rneider AT web.de>
505
506         * device/lib/pic16/libc/Makefile: added (missing) string to SUBDIRS
507
508 2005-09-03 Maarten Brock <sourceforge.brock AT dse.nl>
509
510         * .version: changed to version 2.5.3
511         * doc/sdccman.lyx: changed version to 2.5.3,
512           documented --codeseg and --constseg and pragma codeseg and constseg,
513           documented bit parameters (reentrant) and bit returning
514         * src/SDCCicode.c (geniCodeReceive): fixed (possible) bug generating
515            currFunc->recvSize, but is this ok for all ports?
516           (ast2iCode): result of ~ on unsigned char must be cast to int for
517            bool to work
518         * src/SDCCmem.c (allocGlobal, allocLocal): don't put bit returning
519           function pointers in bit space
520         * src/SDCCsymt.c (checkSClass): allow bit returning function pointers,
521           (processFuncArgs): call port.reg_parm() with reentrancy info
522         * src/port.h,
523         * src/avr/main.c,
524         * src/ds390/main.c,
525         * src/hc08/main.c,
526         * src/pic/main.c,
527         * src/pic16/main.c,
528         * src/xa51/main.c,
529         * src/z80/main.c: port.reg_parm prototype extended with
530           "bool reentrant" parameter
531         * src/mcs51/main.c (_mcs51_regparm): use parameter reentrant instead of
532           options.stackAuto for allocating bit register parameters
533         * src/mcs51/gen.c (genNot): optimized complementing direct bit,
534           (genSend): set BitBankUsed if it is,
535           (selectRegBank): factored out of genCall for use in genPcall,
536           (genCall): removed redundant dtype assignmen, use selectRegBank,
537           (genPcall): handle returning in Carry properly, save in F0 if needed,
538           (genReceive): handle bit register parameters
539         * src/mcs51/ralloc.c (updateRegUsage): update BitBankUsed along the way,
540           (mcs51_assignRegisters): enable bit registers for all reentrant
541            functions and don't set BitBankUsed unconditionally
542         * src/mcs51/peeph.def (177.d): fixed bug if %2==%3
543         * support/regression/tests/bitvars.c: enable tests for SDCC_STACK_AUTO
544         * support/regression/tests/funptrs.c: added tests for BOOL and for return
545
546 2005-08-27 Borut Razem <borut.razem AT siol.net>
547
548         * device/lib/Makefile.in: cp on sparc-solaris (SunOS) and on
549         ppc-osx (Darwin) does not support -u option. It seems that it is
550         supported only on Linux - GNU cp
551
552 2005-08-25 Borut Razem <borut.razem AT siol.net>
553
554         * sim/ucsim/gui.src/serio.src/Makefile.in,
555           sim/ucsim/s51.src/Makefile.in, sim/ucsim/avr.src/Makefile.in,
556           sim/ucsim/z80.src/Makefile.in, sim/ucsim/hc08.src/Makefile.in,
557           sim/ucsim/xa.src/Makefile.in: install -s changed to 2 steps:
558           install and strip, since the strip at /usr/ccs/bin should be used
559           on solaris
560
561 2005-08-24 Borut Razem <borut.razem AT siol.net>
562
563         * clean.mk, device/lib/clean.mk: find on sparc-solaris does not support -maxdepth option
564
565 2005-08-23 Bernhard Held <bernhard AT bernhardheld.de>
566
567         * src/SDCCopt.c (convertToFcall): fixed modulus with divisors 1 and
568         ffffffffu
569
570 2005-08-23 Maarten Brock <sourceforge.brock AT dse.nl>
571
572         * as/mcs51/aslink.h: completed lkrloc.c prototypes
573         * as/mcs51/lkmain.c (link_main): fixed warning
574         * device/include/stdbool.h: ds390 has no advanced bit support yet
575         * src/SDCC.y: use SPEC_SHORT and renamed _signed to b_signed
576         * src/SDCCsymt.c: use SPEC_SHORT and renamed _signed to b_signed
577         * src/SDCCsymt.h (struct specifier): renamed _xxx bitfields to b_xxx
578           and updated their macros
579         * src/SDCCval.c (constVal): updated comment for renamed b_long
580
581 2005-08-22 Maarten Brock <sourceforge.brock AT dse.nl>
582
583         * as/mcs51/asdata.c: changed ctype['['] to BINOP
584         * as/mcs51/asexpr.c (expr): added case '[' for bit access in bdata,
585           (term): abused bit 15 of s_addr to indicate bit-addressable bytes,
586           (oprio): set priority for '['
587         * as/mcs51/aslink.h: added define R_BIT, and prototypes for adb_bit
588            and adb_24_bit
589         * as/mcs51/asm.h: added defines R_BIT and S_BIT
590         * as/mcs51/lkarea.c (lnksect2): use T for seg BIT_BANK and overlay it
591         * as/mcs51/lkdata.c: changed ctype['['] to BINOP
592         * as/mcs51/lkmain.c (Areas51): rel2 contains 12 (=C) areas now,
593           added overlayable BIT_BANK area
594         * as/mcs51/lkmem.c (summary): add BIT_BANK to BSEG_BYTES in the report,
595           (summary2): explain 'T' in legenda
596         * as/mcs51/lkrloc.c: replaced old K&R style,
597           (relr): added R_BIT processing,
598           (errmsg): added "Bit-addressable relocation error",
599           (adb_bit): added for converting from byte- to bit-addressable space,
600           (adb_24_bit): added for converting from byte- to bit-addressable space
601         * device/include/stdbool.h: changed BOOL to __bit for mcs51 as it can be
602            used in reentrant functions now even as return value
603         * device/lib/_gptrput.c (_gptrput): removed obsolete code
604         * src/SDCCast.c (resultTypePropagate): also propagate AND_OP and OR_OP,
605           (decorateType): case '!', GETHBIT, AND_OP, OR_OP: result in bool or char
606         * src/SDCCglobl.h: added indicator BitBankUsed
607         * src/SDCCglue.c (glue): emit area BIT_BANK with byte 'bits' and equ's for
608            the bit registers b0-b7
609         * src/SDCCicode.c (operandFromSymbol): removed IS_BITVAR check,
610           (geniCodeCast): fixed bug 1263853,
611           (geniCodeLogicAndOr): put result in bool or char,
612           (geniCodeReceive): added parameter func for accessing the return type,
613           (geniCodeFunctionBody): pass func to geniCodeReceive
614         * src/SDCCmain.c: added indicator BitBankUsed
615         * src/SDCCmem.c (allocLocal): explicitly set sclass for V_BIT
616         * src/SDCCsymt.c (newBoolLink): added for creating a bool/bit,
617           (checkSClass): don't put automatic bool/bit on stack,
618           (checkFunction): removed check on function cannot return bit
619         * src/SDCCsymt.h: added newBoolLink prototype
620         * src/mcs51/gen.c (rb1regs): added bit registers,
621           (movc): created for assigning to carry,
622           (pushReg, popReg): created for pushing registers,
623           (sameRegs): check both AOP_REG and AOP_CRY types,
624           (aopOp): handle bit registers,
625           (aopPut): optimization no self-assign,
626           (saveRegisters): push reg->base (bits) only once for bit registers,
627            and use pushReg,
628           (unsaveRegisters): pop reg->base only once and use popReg,
629           (assignResultValue): added parameter func and return in carry for bits,
630           (genIpush): optimization no reload in A if not changed,
631           (genSend): bit parameters in reentrant functions are passed in bit
632            registers by first assigning to bits in B, then save registers and
633            copy B to bits,
634           (genCall): handle returning in Carry properly, save it in F0 if needed,
635           (genPcall): updated assignResultValue call, this is not safe yet for bit
636            returning function !!!
637           (genFunction): don't generate equ's for bit registers and use pushReg,
638           (genEndFunction): take care of bit returning functions and use popReg,
639           (genRet): return bit in Carry,
640           (genIfx): optimize bit registers and other directly addressable bits,
641           (genReceive): updated assignResultValue call
642         * src/mcs51/main.c (_mcs51_reset_regparm): added regBitParmFlg,
643           (_mcs51_regparm): allow passing of upto 8 bit parameters in bit
644            registers when using stack-auto
645         * src/mcs51/ralloc.c (_G): added allBitregs,
646           (regs8051): added the bit registers,
647           (createStackSpil): use macro IS_BIT,
648           (getRegBit): added to allocate a bit register, else spill,
649           (getRegBitNoSpil): added to allocate a bit register, else a gpr,
650           (updateRegUsage): factored out to ease stepping while debugging,
651           (serialRegAssign): use updateRegUsage, only spill bits if necessary,
652            also allocate bit registers,
653           (fillGaps): handle bit registers,
654           (findAllBitregs): added to create bit vector with all bit registers,
655           (mcs51_allBitregs): returns this bit vector,
656           (mcs51_assignRegisters): when using stack-auto use bit registers for
657            passing parameters and creating local variables
658         * src/mcs51/ralloc.h: added B0_IDX..B7_IDX and prototype mcs51_allBitregs
659
660 2005-08-22 Borut Razem <borut.razem AT siol.net>
661
662         * device/lib/Makefile.in: replaced find option -or with -o
663           to make it run on solaris
664
665 2005-08-22 Raphael Neider <rneider AT web.de>
666
667         * src/pic16/gen.c (pic16_loadFromReturn): added check for AOP_PCODE,
668           fixes #1265442 (crash on Solaris)
669
670 2005-08-20 Borut Razem <borut.razem AT siol.net>
671
672         * configure, configure.in: added tests for libsocket and libnsl libraries,
673           requred by sdcdb on sparc-solaris; generate support/regression/Makefile
674           from support/regression/Makefile.in
675         * support/regression/Makefile.in: added
676         * device/lib/pic16/Makefile.common.in: force make to use bash shell
677         * sim/ucsim/libtool: regenerated on sparc-solaris
678         * sim/ucsim/avr.src/Makefile.in, sim/ucsim/hc08.src/Makefile.in,
679           sim/ucsim/s51.src/Makefile.in, sim/ucsim/xa.src/Makefile.in,
680           sim/ucsim/z80.src/Makefile.in: removed GNU ld specific linker options
681           -Wl,--start-group and -Wl,--end-group to enable ucsim compilation on
682           sparc-solaris, which doesn't use GNU ld linker
683         * device/lib/Makefile.in: cp on sparc-solaris (SunOS) does not support -u option
684         * as/Makefile: find on sparc-solaris does not support -maxdepth option
685
686 2005-08-19 Maarten Brock <sourceforge.brock AT dse.nl>
687
688         * src/mcs51/peeph.def: updated comments
689
690 2005-08-16 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
691
692         * device/lib/_gptrget.c,
693         * device/lib/_gptrput.c: slightly shorter
694         * doc/sdccman.lyx: incremented version
695         * src/mcs51/peeph.def: moved peephole comments to the line of first
696           change to better keep line correlation, reanimated 186.e
697         * src/mcs51/peeph.def: renamed similar peepholes by using suffixes
698
699 2005-08-16 Slade Rich <slade_rich AT users.sourceforge.net>
700
701         * src/pic/pcode.c : Pasted ".line" assembly directives patch from
702           David Saxton with quotes around file name.
703
704 2005-08-15 Borut Razem <borut.razem AT siol.net>
705
706         * support/regression/tests/bitfields.c, support/regression/tests/bitvars.c,
707           support/regression/tests/bitwise.c, support/regression/tests/literalop.c,
708           support/regression/tests/rotate.c, support/regression/tests/zeropad.c:
709           make tests run on x86_64 platform
710
711 2005-08-13 Raphael Neider <rneider AT web.de>
712
713         * device/lib/pic16/Makefile.subdir: weakened clean-intermediate rule
714           as it might be executed DURING a build (parallel make is wonderful)
715
716 2005-08-13 Raphael Neider <rneider AT web.de>
717
718         * device/lib/Makefile.in (port-specific-objects-pic16):
719           revert to cp $(PORT)/bin/*.* $(PORTDIR)
720         * device/lib/pic16/Makefile: added .PHONY targets, removed builddir
721           dependency
722         * device/lib/pic16/Makefile.rules: build subdirs before creating
723           the library, removed builddir rule, create $(builddir) early in
724           recurse rule, use empty recurse rule for leaf directories
725         * device/lib/pic16/Makefile.subdir: added phony targets, ignore
726           mkdir errors (race condition), removed duplicate suffix "hex"
727           from clean rules
728         * device/lib/pic16/libdev/Makefile: recursive make via + and $(MAKE)
729         * device/lib/pic16/libio/Makefile: create sub-make's builddir early,
730           prevents mkdir -p from aborting on Alpha
731
732 2005-08-12 Raphael Neider <rneider AT web.de>
733
734         * src/pic16/glue.c (pic16_print(G)PointerType): do not flush
735           db-statements in order to allow for arrays of pointers in code
736           sections to be placed without interspersed 0-padding, fixes
737           bug #1256215
738         * (emitStatistics): fixed division by zero for pic18f1220
739         * src/pic16/pcode.c: buffer (up to) 12 DB directives to allow for
740           unpadded writing of 8-bit, 16-bit, 24-bit and 32-bit values
741         * (pic16_emitDS): respect DB_ITEMS_PER_LINE
742         * (pic16_pCodeConstString): keep track of already emitted string
743           literals to prevent "duplicate definitions of symbol _str_NR"
744         * src/pic16/ralloc.c (pic16_allocRegByName): removed not so helpful
745           debug message
746         * device/lib/Makefile.in: ignore failing PIC16 library builds
747         * device/lib/pic16/Makefile: do not build if gputils are missing
748         * device/lib/pic16/Makefile.common.in: do not enforce MAKEFLAGS=-s
749
750 2005-08-10 Raphael Neider <rneider AT web.de>
751
752         * device/lib/Makefile.in: fixed copying pic16 libraries (broken by
753           my last commit)
754
755 2005-08-10 Raphael Neider <rneider AT web.de>
756
757         * src/*.c, src/pic16/{gen.c,glue.c,main.c}: applied Vangelis
758           Rokas' patch to add the new fixed point type "__fixed16x16"
759         * device/lib/pic16/libsdcc/fixed16x16: added Vangelis' support
760           functions for __fixed16x16 arithmetics
761         * device/lib/pic16: reimplemented the build system to support
762           a separate build directory, better handling of libio (create
763           the library in a separate subdir for each architecture) and
764           easier configuration (centralized in Makefile.common)
765
766 2005-08-07 Raphael Neider <rneider AT web.de>
767
768         * src/pic16/gen.c (genrshTwo): fixed sign extension
769         * src/pic16/device.c: added pic18f2320, 4220 and 4320
770         * device/include/pic16/pic18f2220.h: changed some bit definitions,
771           added T0CONbits
772         * device/include/pic16/pic18f4220.h: NEW, header for
773           pic18f4220 and pic18f4320
774         * device/include/pic16/pic18fregs.h: added new devices,
775           embraced Nop(), ClrWdt(), Sleep() and Reset() with do {} while(0)
776         * device/include/pic16/signal.h: resolved name clashes
777           on bit definitions, added DEF_HANDLER2(sig1,sig2,handler)
778           to also allow testing for interrupt enable bits, added
779           comments on how to use the macros
780         * device/lib/pic16/libdev/pic18f2220.c: added T0CONbits
781         * device/lib/pic16/libdev/pic18f{2320,4220,4320}.c: NEW,
782           register definitions for the devices
783         * device/lib/pic16/pics.all: added new devices
784         * device/lib/pic16/libc/stdlib/calloc.c: fixed zeroing
785           allocated memory
786         * device/lib/pic16/libc/stdlib/memfree: do not count
787           the block header as free memory
788         * device/lib/pic16/libc/stdlib/memmisc.c (_initHeap):
789           simplified and added missing end-of-blocklist-marker
790           (reported by Peter Onion, fixes #1252814)
791         * (_mergeHeapBlock): fixed loop condition
792         * device/lib/pic16/libc/stdlib/realloc.c: return NULL for
793           len==0, restructured code
794         * device/lib/pic16/libc/stdlib/{malloc,memfreemax}.c: cleaned
795           up a bit, reduced bitfield accesses, prevent endless loops
796           in case of heap corruption
797         * device/lib/pic16/libc/stdlib/x_ftoa.c: disabled
798           "unreferenced arguments/must return a value" warnings
799         * device/lib/pic16/libio/usart/ubaud.c (usart_baud):
800           replaced BAUDREG with SPBRG
801         * device/lib/pic16/libsdcc/lregs/{lrrest.c,lrst.c},
802           device/lib/pic16/debug/gstack/gstack.c: replaced
803           _naked, _asm, _endasm with __naked, __asm, __endasm
804
805 2005-08-05 Raphael Neider <rneider AT web.de>
806
807         * src/pic16/gen.c (pic16_aopGet): fixed handling of offsets in
808           AOP_PCODE operands, fixes multibyte union-bitfield-accesses
809
810 2005-08-05 Borut Razem <borut.razem AT siol.net>
811
812         * device/lib/Makefile.in: added missing ';'
813         * configure: removed ^M characters
814
815 2005-08-04 Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
816
817         * device/include/mcs51/at89c51ed2.h, device/include/mcs51/p89v51rd2.h,
818           device/include/mcs51/at89s53.h: changed to GNU Lesser General Public
819           License
820
821 2005-08-04 Borut Razem <borut.razem AT siol.net>
822
823         * configure.in: pic16 libraries build 2nd try - enable running
824           configure in device/lib/pic16
825         * configure: regenerated from configure.in
826         * device/lib/Makefile.in: create $(PORT)/bin directory
827
828 2005-08-03 Raphael Neider <rneider AT web.de>
829
830         * src/pic16/gen.c (pic16_derefPtr): NEW, single place
831           to get/set values via pointers
832         * (genUnpackBits,genPackBits): changed detection of
833           ptr->bitfield vs. sym.bitfield, fixed access via generic
834           pointers, removed dead (wrong) code for multibyte bitfields
835         * (genNearPointerGet, genGenPointerGet): removed useless code,
836           fixed bitfield detection, fixes #1250594
837         * (genNearPointerSet): removed useless code
838         * src/pic16/gen.h: renamed pic16_emitpcode to pic16_emitpcode_real
839           and introduced macro pic16_emitpcode that conditionally emits
840           the origin of the following pCode (useful for debugging SDCC)
841         * src/pic16/pcode.c: changed (and disabled) some debug outputs
842         * (createDefmap): fixed handling of LFSR for --optimize-df
843
844 2005-08-02 Borut Razem <borut.razem AT siol.net>
845
846         * device/lib/Makefile.in: pic16 libraries build enabled since
847           gputils-0.13.2 are now localy installed at sourceforge's compile farm
848
849 2005-08-02 Raphael Neider <rneider AT web.de>
850
851         * src/pic16/gen.c (genPackBits): removed deprecated warning
852         * (genGenPointerSet): fixed bitfield detection
853
854 2005-08-02 Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
855
856         * device/include/mcs51/msm8xc154s.h: Removed PT2 definition, now in 8052.h.
857
858 2005-07-31 Raphael Neider <rneider AT web.de>
859
860         * device/lib/pic16/libdev/pic18f458.c,
861           device/include/pic16/pic18f458.h: added missing T0CONbits
862
863 2005-07-29 Maarten Brock <sourceforge.brock AT dse.nl>
864
865         * device/include/mcs51/msm8xc154s.h: added, thanks to Matthias Arndt
866
867 2005-07-28 Maarten Brock <sourceforge.brock AT dse.nl>
868
869         * src/mcs51/gen.c (operandsEqu): fixed bug 1246687
870
871 2005-07-23 Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
872
873         * device/include/mcs51/at89c51ed2.h: added.
874
875 2005-07-23 Raphael Neider <rneider AT web.de>
876
877         * src/pic/gen.h: added emitpcode macro for debugging
878         * src/pic/gen.c (emitpcode): renamed to emitpcode_real
879           and replace by macro adding debug information on demand
880         * (genNot): fixed to C semantics (!0 = 1; !x = 0 iff x != 0)
881         * (gencjne): tried to fix; replaced with correct (slower) code
882         * (gen{Unp,P}ackBits): fixed single bit access
883         * src/pic/pcode.c (AnalyzepCode): fixed DFPRINTF argument
884         * src/pic/pcodepeep.c (pCodeSearchCondition): fixed finding
885           previous instruction
886         * src/pic/pcoderegs.c (regIsSpecial): NEW, check whether a
887           register has to be handled with care (forbidding movement
888           of assignments/uses, removing assignments completely, ...)
889         * (pCodeOptime2pCodes): make use of regIsSpecial
890         * added lots of debugging output (commented out)
891         * src/pic/rallloc.c (deassignLRs): prevent operand registers
892           from being reused as result UNLESS it is known to work
893
894 2005-07-23 Maarten Brock <sourceforge.brock AT dse.nl>
895
896         * support/Util/dbuf.h: include <stddef.h> for size_t
897         * .version: changed to version 2.5.2
898
899 2005-07-23 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
900
901         * src/SDCCloop.c (loopInvariants): fixed bug #1234048
902
903 2005-07-22 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
904
905         * src/hc08/gen.c (genMinus): fixed bug #1241835,
906           (genModOneByte): removed needless psha/pula
907
908 2005-07-22 Raphael Neider <rneider AT web.de>
909
910         * src/SDCCmain.c (linkEdit): initialized linkerScriptFileName,
911           have PIC14 handled like PIC16, fixes broken pic14 linker calls
912         * src/pic/gen.c (resolveIfx): do not "invent" labels
913         * (genSkipc): changed to positive logic
914         * (genSkipCond): removed as no longer needed
915         * (pic14_mov2w_regOrLit,genCmp): NEW, replacement for buggy version,
916           backport from PIC16
917         * (genLeftShift): check operands are in different registers
918         * src/pic/genarith.c (genPlus): replaced INCF with ADDLW as
919           INCF does not update CARRY...
920         * src/pic/main.c: fixed _linkCmd
921         * src/pic/pcode.c (unlinkpCode): added inactive code
922         * src/pic/ralloc.c (deassignLRs): keep arguments to shift operations
923           alive (do not assign result and operand overlapping registers)
924
925 2005-07-22 Raphael Neider <rneider AT web.de>
926
927         * src/pic/device.c (dump_sfr): replaced register declaration with
928           call to emitSymbolToFile() to avoid duplicate symbols
929         * (assignRelocatableRegisters): do not declare external symbols
930         * src/pic/ralloc.c (allocNewDirReg): fixed to get size of arrays
931           right (take size of type, not etype)
932         * (allocDirReg): fixed call to allocNewDirReg() to pass OP_SYM_TYPE
933         * (writeUsedRegs): also dump dynDirectRegs (e.g. local variables)
934         * (packRegsForAccUse): disabled assignment of WREG as
935           the result reg to prevent occurence of just fixed #1235003,
936           fixes #1242954
937         * src/pic/glue.c (emitSymbolToFile): NEW, central place to declare
938           symbols (avoids duplicate symbols in .asm file)
939         * (pic14emitRegularMap): use emitSymbolToFile()
940         * src/pic/gen.c (aopOp): fixed spillLocation handling
941         * (gen{Unp,P}ackBits): fixed acquiring bit-operands
942         * (genDataPointerSet): removed unneccessary variables/output
943
944 2005-07-22 Maarten Brock <sourceforge.brock AT dse.nl>
945
946         * as/mcs51/lkarea.c: enlarged codemap for banked memory
947         * device/lib/mcs51/crtbank.asm: added # to 0x0F
948
949 2005-07-21 Raphael Neider <rneider AT web.de>
950
951         * src/pic/gen.c (aopOp): do not generate AOP_ACC operands as pic14
952           architecture cannot handle them efficiently, fixes bug #1235003
953         * src/pic16/device.c (pic16_dump_{u,i}section,pic16_dump_int_registers):
954           check for empty sets before using them (fixes bug #1232190)
955
956 2005-07-19 Maarten Brock <sourceforge.brock AT dse.nl>
957
958         * as/mcs51/lkarea.c (lnkarea, lnkarea2): improved BSEG size calculation,
959           (lnksect2): generate warnings for memory overlap
960         * src/SDCC.lex (doPragma, process_pragma): added pragma's codeseg and
961           constseg to set the name of these segments so you can instruct the linker
962           to place them in banks
963         * src/SDCCast.c (decorateType): use new macro IS_FUNCPTR()
964         * src/SDCCglobl.h: added MODEL_HUGE to enum,
965           added code_seg and const_seg to options
966         * src/SDCCglue.c (emitMaps): use options.const_seg,
967           (createInterruptVect): put interrupt vectors in segment HOME,
968           (glue): put HOME before static segment and put the main glue in HOME,
969           (glue): use options.code_seg
970         * src/SDCCicode.c (geniCodeCall): use new macro IS_FUNCPTR()
971         * src/SDCCmain.c: added option --codeseg and --constseg to set the name of
972           these segments so you can instruct the linker to place them in banks
973           (linkEdit): use code_loc for HOME segment which should be the first
974           segment in code memory now
975         * src/SDCCmem.c: fixed more stuff like bug 1238386
976         * src/SDCCsymt.c (getSize): use generic pointer size for banked functions,
977           (changePointer): don't change function pointers to code pointers for
978           banked functions,
979           (compareType): added exceptional check for banked function pointers
980         * src/SDCCsymt.h: changed IFFUNC_ISBANKEDCALL, added IS_FUNCPTR
981         * src/hc08/main.c (_hc08_genAssemblerPreamble): put HOME first, put CSEG
982           after static in code memory
983         * src/mcs51/gen.c: added aopLiteralLong prototype,
984           (aopForSym): use getSize for functions,
985           (genCall): generate banked calls over one trampoline __sdcc_banked_call
986           in HOME with lsb of address in r0, msb in r1 and bank in r2, use
987           -Wl-bBANKSEG=0xbbaaaa option to set the address (aaaa) and bank (bb) of
988           the segment,
989           (genPcall): use call for literal function pointers and generate banked
990           calls over the one trampoline so there's only one place for the user to
991           modify according to his/hers hardware,
992           (genEndFunction): jump to __sdcc_banked_ret in HOME for banked functions,
993           (genPlusIncr): moved check icount>4 beyond inc dptr optimization
994         * src/mcs51/main.c: added keyword banked,
995           (_mcs51_genExtraAreas): put HOME first followed by GSINIT, STATIC and CSEG
996         * support/Util/SDCCerr.c,
997         * support/Util/SDCCerr.h: added E_BANKED_WITH_CALLEESAVES, registers are
998           needed for passing the bank and address to the trampoline
999         * device/lib/mcs51/crtbank.asm: added for bankswitching
1000         * device/lib/mcs51/Makefile: added crtbank
1001
1002 2005-07-16 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
1003
1004         * src/SDCCcse.c (algebraicOpts): fixed loss of volatility
1005           for fields at offset 0 of a struct or union as reported
1006           on 2005-07-07 in the developer mailing list.
1007
1008 2005-07-15 Maarten Brock <sourceforge.brock AT dse.nl>
1009
1010         * src/SDCCmem.c: fixed bug 1238386
1011
1012 2005-07-12 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
1013
1014         * src/mcs51/peeph.def: added labelrefcounting for peepholes
1015           (patch #1144962), added peephole 300, enabled 259.x
1016         * doc/sdccman.lyx: removed screenshot and provided link instead
1017
1018 2005-07-05 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
1019
1020         * doc/sdccman.lyx: added section about debugging with ddd
1021         * doc/figures/ddd_example.eps: screenshot of debugging session
1022
1023 2005-07-04 Raphael Neider <rneider AT web.de>
1024
1025         * src/pic/gen.c (genPointerGet): handle pointers to CONST values
1026           like CODE pointers, fixes #1115683
1027         * src/pic/pcode.c (DoBankSelect): forget LastRegIdx during function
1028           call, fixes bugs #1232211, #1228110,
1029           fixed wrong casts to pCodeFlow from pCodeInstructions
1030
1031 2005-07-04 Raphael Neider <rneider AT web.de>
1032
1033         * src/pic/gen.c (popGet): changed assert to allow for
1034           bit operands
1035         * (popGetAddr): changed signature to provide
1036           an additional index, patched all call sites
1037         * (genCmpEq): handle literal-like operands correctly
1038         * (genAddrOf): added sanity checks on __code/__data pointers
1039         * (genAssign): added handling of symbols from __code section
1040         * (gencjne): do not generate code for comparisons whose result
1041           is neither stored nor used, fixes bug #1171114
1042         * (AccLsh, AccRsh): operate on operand instead of WREG
1043         * (shift{Left,Right}_Left2ResultLit): NEW, size independant
1044           replacement for Shift{LR}{12}Left2Result; shift (byte/int/long)
1045           by known count
1046         * rewrote complete shift-by-literal logic, commented unused
1047           functions out
1048         * (genConstPointerGet): get multiple bytes (if result size > 1),
1049           fixed handling of non-immediate addresses
1050         * (genPointerGet): handle CODE pointers like CONST pointers
1051         * (genpic14Code): insert C-SRC lines as Cource-pCodes
1052         * ({aop,op}_isLitLike): NEW, single place to decide whether an
1053           operand is to be treated as a literal or not
1054         * (mov2w,genPcall,genCmpEq),
1055           src/pic/genarith.c: use aop_isLitLike() to decide between
1056           literal/register contents
1057         * (addSign): added missing offset
1058         * src/pic/gen.h: remove newline after FENTRY/FEXIT comments,
1059           only emit comment in debug-mode,
1060           use {aop,op}_isLitLike throughout the file
1061         * src/pic/glue.c: fix initializers for pointers (work in progress)
1062         * src/pic/pcode.c (get_op): honor index on _const symbols
1063         * ({reset,dump}pCodeStatistics): NEW, estimate code size
1064         * (dumppBlock): added pCode size estimation
1065         * src/pic/ralloc.c (deassignLRs,serialRegAssign,packRegisters):
1066           check for IS_SYMOP before OP_SYMBOL'ing
1067         * fixed indentation, compacted switch-statements
1068         * (allocReg): find free register and allocate it instead of
1069           allocating new registers all the time
1070         * (deassignLRs): prevent POINTER_GET's from being assigned the same
1071           registers as its operands (necessary only for multibyte GETs)
1072
1073 2005-07-01 Raphael Neider <rneider AT web.de>
1074
1075         * src/pic/gen.h: added prototypes emitpComment, popGetAddr and
1076           debugging .asm-output macros FENTRY + FEXIT
1077         * src/pic/gen.c (Safe_vsnprintf): NEW, is there a more generic
1078           way... I wonder...
1079         * (emitpComment): NEW, printf to pCode
1080         * (popGet): added assert on too large offsets, fixed PO_IMMEDIATE's
1081           offset handling
1082         * (popGetAddr): NEW, variant of popGet to access an immediates
1083           high(er) bytes instead of the n'th byte of memory they reference,
1084           replaced popGet with popGetAddr where neccessary
1085         * (genDataPointerGet): reactivated and fixed implementation
1086         * (genNearPointerGet): enabled call to genDataPointerGet, fixes array-
1087           accesses
1088         * (genDataPointerSet): fixed multibyte assignments
1089         * (genpic14Code): fixed --i-code-in-asm handling
1090         * src/pic/genarith.c: fixed PO_IMMEDIATE issue using popGetAddr,
1091         * (genPlus): fixed index-out-of-bounds error
1092         * src/pic/pcode.c (get_op): fixed PO_IMMEDIATE's index/offset handling
1093         * src/pic/ralloc.c: added debugging output macro FENTRY2
1094         * (spillThis): fixed indentation, enbraced for-body for clarity
1095         * (rematStr): commented out as now unused
1096         * (regTypeNum): commented out special spill case (overwrites
1097           arbitrary values)
1098         * fixes bugs #1229346, #1216476 (both arrays) and #1115667 (SIGSEGV)
1099
1100 2005-06-30 Maarten Brock <sourceforge.brock AT dse.nl>
1101
1102         * doc/sdccman.lyx: documented sfr16/sfr32,
1103           added example for using storage class with function pointers
1104         * src/mcs51/gen.c (genPlusIncr): optimized small offsets from dptr
1105
1106 2005-06-28 Maarten Brock <sourceforge.brock AT dse.nl>
1107
1108         * device/lib/_gptrget.c: also push/pop _PSBANK, added # to 0x03
1109         * device/lib/_itoa.c,
1110         * device/lib/_ltoa.c: optimized codesize
1111         * src/SDCCsymt.c (checkSClass): added sanity check for sfr at addresses,
1112           but don't know how to suppress the double warning.
1113         * src/mcs51/gen.c (genPlusIncr): fixed bug when incrementing volatile int's
1114         * support/Util/SDCCerr.c,
1115         * support/Util/SDCCerr.h: added warning W_SFR_ABSRANGE for sanity check
1116
1117 2005-06-27 Maarten Brock <sourceforge.brock AT dse.nl>
1118
1119         * as/mcs51/asexpr.c (expr): disabled warning "not in .flat24 mode",
1120           fixed old K&R prototypes
1121         * as/mcs51/asout.c (outrb): always output as if generating 24bit addresses
1122         * device/lib/_gptrget.c,
1123         * device/lib/_gptrgetc.c,
1124         * device/lib/_gptrput.c: changed versions for new memory indicator values,
1125           also new versions for small generic pointers and banked generic pointers
1126         * src/port.h: added const_name
1127         * src/SDCC.lex: added keywords sfr16, __sfr16, sfr32, __sfr32
1128         * src/SDCC.y: added tokens SFR16, SFR32 and their sfr_attributes
1129         * src/SDCCcse.c (findPrevIc): check all associative operators
1130         * src/SDCCglue.c (emitMaps): use CONST_NAME if defined
1131         * src/SDCCicode.h: added macro IS_ASSOCIATIVE
1132         * src/SDCCmem.c: updated comments,
1133           set far-space to 0 for pdata, results in optimized code
1134         * src/SDCCmem.h: added macro CONST_NAME
1135         * src/SDCCsymt.h: renumerated generic pointer types GPTYPE_... thereby
1136           moving the info into the highest bits, see also gptrget/gptrput
1137         * src/src.dsp: added sdcc.ico to project files
1138         * src/avr/gen.c (genCast): fixed bug 0x%d
1139         * src/avr/main.c (avr_port): added "CONST (CODE)" for const_name
1140         * src/ds390/gen.c (aopForRemat, adjustArithmeticResult): disconnected direct
1141           relation between ptr_type and DCL_TYPE,
1142           (genCast): fixed bug 0x%d
1143         * src/ds390/main.c (ds390_port, tininative_port, ds400_port): added "CONST
1144           (CODE)" for const_name
1145         * src/hc08/gen.c (genCast): fixed bug 0x%d
1146         * src/hc08/main.c (_hc08_genAssemblerPreamble): added .area ...const_name,
1147           (hc08_port): added "CONST (CODE)" for const_name
1148         * src/mcs51/gen.c (aopForSym): optimized pushing ACC,
1149           (aopForRemat, adjustArithmeticResult): disconnected direct relation
1150           between ptr_type and DCL_TYPE,
1151           (aopGetUsesAcc, aopGet, aopPut): changed first parameter from asmop* to
1152           operand* and took AOP() inside function so sfr-ness can be checked,
1153           (all over): repaired calls to aopGetUsesAcc, aopGet, aopPut to comply with
1154           new prototype,
1155           (genFunction, genEndFunction): optimized stack setup,
1156           (genMinus): optimized for literals with ending zeroes (in bytes),
1157           (genCast): fixed bug 0x%d
1158         * src/mcs51/main.c (_mcs51_keywords): added sfr16 and sfr32,
1159           (mcs51_port): added "CONST (CODE)" for const_name
1160         * src/mcs51/peeph.def: made rule 226 more generic
1161         * src/pic/main.c (pic_port): added "CONST (CODE)" for const_name
1162         * src/pic16/main.c (pic16_port): added "CONST (CODE)" for const_name
1163         * src/xa51/main.c (xa51_port): added "CONST (CODE)" for const_name
1164         * src/z80/main.c (z80_port): added NULL for const_name,
1165           (gbz80_port): added NULL for const_name
1166         * support/regression/tests/bug663539.c,
1167         * support/regression/tests/sfr16.c: new tests
1168
1169 2005-06-25 Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
1170
1171         * device/include/mcs51/p89v51rd2.h, device/include/mcs51/at89s53.h: added.
1172
1173 2005-06-24 Raphael Neider <rneider AT web.de>
1174
1175         * device/lib/pic16/libdev/pic18f[68][567]20.c:
1176           corrected typos...
1177         * device/include/pic16/signal.h: added USBIF
1178           and SIG_USB
1179
1180 2005-06-24 Raphael Neider <rneider AT web.de>
1181
1182         * device/lib/pic16/libdev/pic18f2455.c,
1183           device/include/pic16/pic18f2455.h: NEW
1184         * device/include/pic16/pic18fregs.h,
1185           device/lib/pic16/pics.all,
1186           src/pic16/device.c: added 18f2455
1187         * device/lib/pic16/libdev/pic18f[68][567]20.c,
1188           device/include/pic16/{pic18f[68][567].h,usart.h}:
1189           replaced MULTIPLE_USARTS define with more relaible
1190           compatibility sfrs (for USART access)
1191
1192 2005-06-20 Slade Rich <slade_rich AT users.sourceforge.net>
1193
1194         * src/pic/pcode.c : Fixed problem when a string constant contains a "\r\n"
1195           and the output asm file line is printed on two lines.
1196
1197 2005-06-19 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
1198
1199         * sim/ucsim/hc08.src/inst.cc (inst_condbranch): fixed simulation of
1200           BGT, BLE, BHI, and BLS instructions
1201         * src/hc08/gen.c (outAcc, outBitC, outBitNV, genCmpLt, genCmpGt,
1202           genCmpEq): removed
1203         * src/hc08/gen.c (genCmpEQorNE, genCmp, branchopCmp, nameCmp,
1204           negatedCmp, exchangedCmp, genhc08Code): rewrite of comparison handling,
1205           fixes bug #1216342
1206         * src/hc08/peeph.def: added rules 2g - 2l for new conditional branches
1207
1208 2005-06-15 Raphael Neider <rneider AT web.de>
1209
1210         * src/pic16/NOTES: moved Vangelis from active developers to people to contact
1211         * device/include/pic16/{6520.h,8520.h}: fixed configuration bits
1212         * src/pic16/gen.c (): prevent iTemps from being considered to be in CODESPACE,
1213           fixes bug #1221120; for symbols in CODESPACE get number of bytes to read from
1214           OP_SYM_TYPE() instead of OP_SYM_ETYPE()
1215
1216 2005-06-06 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
1217
1218         * device/include/mcs51/reg764.h: Changed PB0 to PBO as requested by
1219           Marcel Telka in bug #1215704
1220
1221 2005-06-02 Slade Rich <slade_rich AT users.sourceforge.net>
1222
1223         * src/pic/pcode.c : Changed pseudo stack size to 15 to allow WSAVE to be
1224           located in shared memory bank.
1225
1226 2005-05-31 Raphael Neider <rneider AT web.de>
1227
1228         * src/pic16/{gen.c,genarith.c}: replaced sign-extension
1229           "CLRF, BTFSC <signbit>, DECF/COMF" with side-effect-free
1230           "CLRF, BTFSC <signbit>, SETF"; fixes "long>>9"
1231
1232 2005-05-27 Maarten Brock <sourceforge.brock AT dse.nl>
1233
1234         * device/lib/_strncpy.c: fixed the fix
1235
1236 2005-05-26 Raphael Neider <rneider AT web.de>
1237
1238         * src/pic16/glue.c (pic16_printIvalChar): fixed _constant_ string
1239           initializers with \0, bug #1208187
1240         * src/pic/glue.c (printIvalChar): fixed (non- and constant) string
1241           intializers with \0, bug #1208187
1242
1243 2005-05-26 Raphael Neider <rneider AT web.de>
1244
1245         * src/pic16/glue.c (pic16_printIvalChar): fixed string
1246           initializers with \0, bug #1208187
1247         * src/pic16/main.c (_process_pragma): added sanity checks
1248           for stack position and size, emit warnings when appropriate
1249
1250 2005-05-26 Maarten Brock <sourceforge.brock AT dse.nl>
1251
1252         * device/lib/_strncpy.c: fixed not filling with \0
1253
1254 2005-05-26 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
1255
1256         * src/SDCCast.c (funcOfType, funcOfTypeVarg, stringToSymbol,
1257           createFunction),
1258         * src/SDCC.y (external_definition, enumerator, parameter_declaration,
1259           compound_statement),
1260         * src/SDCCsymt.h,
1261         * src/SDCCsymt.c (addSymChain, processFuncArgs): fixed bug #1159134
1262
1263 2005-05-24 Raphael Neider <rneider AT web.de>
1264
1265         * src/pic16/glue.c (pic16_printGPointerType): fixed #1207796
1266
1267 2005-05-24 Raphael Neider <rneider AT web.de>
1268
1269         * device/include/pic16/pic18f{442,452,458}.h: fixed wrong
1270           TRISE definitions, closes bug #1162453
1271
1272 2005-05-22 Raphael Neider <rneider AT web.de>
1273
1274         * src/pic16/main.c (_process_pragma): check for missing
1275           arguments to pragmas code and udata
1276         * device/include/pic16/pic18f{2550,4331,4455,4520}.h:
1277           consistency fixes to match other headers (thanks to Jim Paris)
1278         * device/lib/pic16/libio/i2c.ignore: 18f4331 provides no I2C
1279
1280 2005-05-21 Maarten Brock <sourceforge.brock AT dse.nl>
1281
1282         * src/SDCCicode.c (isOperandEqual): fixed missing ;
1283
1284 2005-05-19 Maarten Brock <sourceforge.brock AT dse.nl>
1285
1286         * support/regression/tests/bug1198642.c: new test
1287         * src/SDCCicode.c (isOperandEqual): fixed bug 1198642
1288         * src/SDCCcse.c (findPrevIc): added comment, please have a look
1289         * support/scripts/resource.h,
1290         * support/scripts/resource.rc,
1291         * src/src.dsp: added sdcc.ico to project as icon for sdcc.exe
1292         * support/scripts/sdcc.ico: added 32x32 icon
1293
1294 2005-05-18 Raphael Neider <rneider AT web.de>
1295
1296         * device/lib/pic16/libdev/pic18f*.c,
1297         * device/include/pic16/pic18f*.h: updated "sfr" and "at X"
1298           keywords to "__sfr" and "__at (X)"
1299         * device/include/pic16/pic18fregs.h: added pic18f4520
1300         * src/pic16/pcode.c (pic16_pCode2str): fixed (?) bug
1301           #1203088 (MPLAB compatibility)
1302
1303 2005-05-17 Raphael Neider <rneider AT web.de>
1304
1305         * device/include/pic16/pic18f{2550,4331,4455,4520}.h: NEW
1306         * device/lib/pic16/libdev/pic18f{2550,4331,4455,4520}.c: NEW
1307         * device/lib/pic16/pics.all: added new devices
1308         * src/pic16/device.c: added support for pic18f4520
1309
1310 2005-05-16 Raphael Neider <rneider AT web.de>
1311         * src/pic16/gen.{c,h}: s/mov2f/pic16_mov2f made public
1312         * src/pic16/genarith.c (genAddLit): fixed bug 1202480
1313         * src/pic16/pcode.{c,h} (pic16_newpCodeOpBit_simple): NEW
1314           convenience function for bit access
1315
1316 2005-05-15 Maarten Brock <sourceforge.brock AT dse.nl>
1317
1318         * device/lib/printf_large.c: fixed bug 1193299
1319         * support/regression/tests/bug1057979.c: added test %3.3s
1320
1321 2005-05-15 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
1322
1323         * device/include/mcs51/8051.h,
1324         * device/include/mcs51/8052.h: made parseable with lint
1325         * device/include/mcs51/lint.h: added include file for (sp)lint
1326         * doc/sdccman.lyx: added doc about use of splint (syntax checking tool)
1327         * doc/cdbfileformat.lyx,
1328         * doc/test_suite_spec.lyx: hardcoded date to the date of last text change
1329
1330 2005-05-14 Raphael Neider <rneider AT web.de>
1331
1332         * device/lib/pic16/Makefile.common.in: add --optimize-df to OPT_FLAGS
1333         * device/lib/pic16/libc/stdlib/itoa.c (new)
1334         * device/lib/pic16/libc/stdlib/Makefile: have itoa.c built
1335         * device/lib/pic16/libio/Makefile: exclude subdir according to
1336           ${subdir}.ignore for certain PICs (lacking e.g. i2c)
1337         * device/lib/pic16/libio/i2c.ignore (new): pic18f1220 has no I2C support
1338         * src/pic16/gen.c (genFunction): prevent annoying warning
1339         * src/pic16/pcode.c: renamed stack_t to dynstack_t to prevent
1340           nameclashes on BeOS
1341         * support/cpp2/cppmain.c (cpp_output_string): new
1342         * support/cpp2/cpplib.c (_cpp_do__Pragma): fixed _Pragma(""),
1343           fixes bug 1116802
1344
1345 2005-05-13 Borut Razem <borut.razem AT siol.net>
1346
1347         * src/SDCCmain.c (linkEdit): fixed bug 1195202
1348
1349 2005-05-12 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
1350
1351         * .version: changed to version 2.5.1; back to bleeding edge development
1352
1353 2005-05-11 Borut Razem <borut.razem AT siol.net>
1354
1355         * doc/sdccman.lyx doc/cdbfileformat.lyx doc/test_suite_spec.lyx:
1356           generate PDF version 1.3 documents
1357
1358 2005-05-07 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
1359
1360         * .version: changed to version 2.5.0
1361
1362 2005-04-27 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
1363
1364         * doc/sdccman.lyx: updated weblinks, index and smaller updates
1365
1366 2005-04-26 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
1367
1368         * doc/sdccman.lyx: changed version 2.5.0, documented --std-c89,
1369         --std-sdcc89, --std-c99, --std-sdcc99, and the corresponding #pragmas, as
1370         well as many smaller updates.
1371         * .version: changed to version 2.5.0-pre1
1372
1373 2005-04-26 Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
1374
1375         * src/SDCCmain.c (setIncludePath): added port->target to SDCC_INCLUDE_NAME
1376
1377 2005-04-26 Maarten Brock <sourceforge.brock AT dse.nl>
1378
1379         * support/regression/tests/bug1185672.c: added
1380         * src/mcs51/gen.c (aopGetUsesAcc, genCpl, genAnd, genOr, genXor): fixed
1381           bug 1185672
1382         * src/mcs51/gen.c (genCall): added comments, made it look safer
1383         * src/mcs51/gen.c (genEndFunction): simplified
1384
1385 2005-04-25 Maarten Brock <sourceforge.brock AT dse.nl>
1386
1387         * src/mcs51/ralloc.c (serialRegAssign): fixed bug 1189609
1388
1389 2005-04-14 Borut Razem <borut.razem AT siol.net>
1390
1391         * fixed bug 1045046 - SIGSEGV with really simple code?:
1392           src/pic/pcode.c (pCodeInitRegisters)- pseudo stack size increased to 16
1393           src/pic/ralloc.c (typeRegWithIdx) - error message on pseudo stack overflow
1394
1395 2005-04-14 Borut Razem <borut.razem AT siol.net>
1396
1397         * src/pic16/gen.c (genInline), src/pic16/main.c (_process_pragma),
1398           src/pic16/device.h: temporarily disabled experimental #inline pragma
1399           for 2.5.0 release
1400
1401 2005-04-14 Maarten Brock <sourceforge.brock AT dse.nl>
1402
1403         * device/include/z80/stdio.h,
1404         * device/include/z80/string.h: removed these highly incomplete files so
1405           SDCC can use the default ones in device/include/
1406
1407 2005-04-14 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
1408
1409         * src/mcs51/gen.c (genEndFunction): removed unused variable to fix
1410         gcc warning.
1411         * device/lib/Makefile.in: default PORTINCDIR to the mcs51 subdir to
1412         fix sdcpp warnings.
1413
1414 2005-04-12 Maarten Brock <sourceforge.brock AT dse.nl>
1415
1416         * device/include/malloc.h: removed redundant __reentrant prototypes
1417         * device/lib/_mullong.c: added working xstack variant in asm (C version
1418           doesn't pass regression tests)
1419         * device/lib/bpx.c: used __data and made bpx char for mcs51
1420         * src/SDCCast.c (decorateType): removed unused GPTYPE_IDATA,
1421           (createFunction): fixed bug with xstackPtr
1422         * src/SDCCcse.c: corrected comments
1423         * src/SDCCopt.c (convertToFcall): fixed warning in MSVC,
1424           (killDeadCode, eBBlockFromiCode): removed unused code
1425         * src/SDCCsymt.h: removed unused GPTYPE_GPTR and GPTYPE_IDATA,
1426           corrected comments
1427         * src/mcs51/gen.c (aopForSym, aopPut, toBoolean, unsaveRegisters,
1428           assignResultValue, genCall, genFunction, genEndFunction, genAnd,
1429           genOr, genXor, genAddrOf): fixed several bugs concerning xstack
1430           (genModOneByte): fixed warning in MSVC
1431         * src/mcs51/main.c (): added comments
1432         * src/mcs51/peeph.def: changed 129 to 129.a, added 129.b, 129.c & 129.d
1433
1434 2005-04-12 Maarten Brock <sourceforge.brock AT dse.nl>
1435
1436         * src/SDCCmain.c (linkEdit): oops, changed one line too many
1437
1438 2005-04-11 Maarten Brock <sourceforge.brock AT dse.nl>
1439
1440         * src/SDCCmain.c (linkEdit): fixed bug with finding crt0.o for z80
1441
1442 2005-04-10 Vangelis Rokas <vrokas AT users.sourceforge.net>
1443
1444         * src/pic16/glue.c (printIvalChar): fixed bug when emitting
1445         characters arrays of larger size than the declared one.
1446
1447 2005-04-10 Borut Razem <borut.razem AT siol.net>
1448
1449         * src/pic/gen.c (genInline),
1450           src/pic/pcode.c (newpCodeAsmDir), (pCode2str),
1451           (genericPrint), (unlinkpCodeFromBranch), (compareLabel),
1452           (findNextInstruction), (findPrevInstruction),
1453           (findInstructionUsingLabel),
1454           src/pic/pcode.h: fixed bug #1164907 - Labels not being recognized
1455         * src/pic/pcode.c (findLabel): added missing '\n'
1456         * src/src.dsp: added SDCCdwarf2.c to the project
1457
1458 2005-04-09 Borut Razem <borut.razem AT siol.net>
1459
1460         * support/scripts/sdcc.nsi: added include/hc08/* h to NSIS setup
1461
1462 2005-04-08 Raphael Neider <rneider AT web.de>
1463
1464         * src/pic16/pcode.c: added helpers defmapInsertAfter (insert a new item
1465           into the chain after a given one) and mergeDefmapSymbols (combine
1466           defmap entries for each symbol per pcode)
1467         * (createDefmap): have defmap entries merged in the end
1468         * (defmapReplaceSymRef): split defmap entries covering two accesses to
1469           a symbol before replacing one access type's symbol, merge symbols in
1470           the end (replacement symbol might already have an entry)
1471         * (assignValnums): keep reference to written WREG intact
1472
1473 2005-04-08 Raphael Neider <rneider AT web.de>
1474
1475         * src/pic16/pcode.c (struct defmap_s): named anonymous union (for
1476           Alpha)
1477
1478 2005-04-08 Vangelis Rokas <vrokas AT users.sourceforge.net>
1479
1480         * src/pic16/pcode.c (pic16_get_op2): enlarged size of array b to 128
1481         bytes
1482
1483 2005-04-07 Raphael Neider <rneider AT web.de>
1484
1485         * device/include/pic16/usart.h: added compatibility defines for
1486           devices with more than one USART
1487         * device/include/pic16/pic18f[68][567]20.h: activated above defines
1488
1489 2005-04-07 Maarten Brock <sourceforge.brock AT dse.nl>
1490
1491         * device/lib/Makefile.in: updated for port specific include
1492
1493 2005-04-07 Maarten Brock <sourceforge.brock AT dse.nl>
1494
1495         * support/regression/ports/mcs51/spec.mk: added mcs51 include
1496
1497 2005-04-07 Maarten Brock <sourceforge.brock AT dse.nl>
1498
1499         * device/include/8051.h,
1500         * device/include/8052.h,
1501         * device/include/at89S8252.h,
1502         * device/include/at89c55.h,
1503         * device/include/at89x051.h,
1504         * device/include/at89x51.h,
1505         * device/include/at89x52.h,
1506         * device/include/mcs51reg.h,
1507         * device/include/reg51.h,
1508         * device/include/reg764.h,
1509         * device/include/regc515c.h,
1510         * device/include/sab80515.h: (re)moved these 12 files
1511         * device/include/mcs51/8051.h,
1512         * device/include/mcs51/8052.h,
1513         * device/include/mcs51/at89S8252.h,
1514         * device/include/mcs51/at89c55.h,
1515         * device/include/mcs51/at89x051.h,
1516         * device/include/mcs51/at89x51.h,
1517         * device/include/mcs51/at89x52.h,
1518         * device/include/mcs51/mcs51reg.h,
1519         * device/include/mcs51/reg51.h,
1520         * device/include/mcs51/reg764.h,
1521         * device/include/mcs51/regc515c.h,
1522         * device/include/mcs51/sab80515.h: and added them here
1523
1524 2005-04-06 Maarten Brock <sourceforge.brock AT dse.nl>
1525
1526         * device/include/stdarg.h: changed SDCC specific keywords to double
1527           underlined form.
1528         * device/include/stdint.h: changed intptr_t and uintptr_t for others than
1529           mcs51 and ds390.
1530         * device/include/hc08/mc68hc908gp32.h,
1531         * device/include/hc08/mc68hc908jb8.h,
1532         * device/include/hc08/mc68hc908jkjl.h,
1533         * device/include/hc08/mc68hc908qy.h: fixed comments
1534         * device/include/mcs51/README: updated
1535         * device/include/mcs51/c8051f120.h: added PINRSF
1536         * device/lib/pic16/libc/stdlib/crc16.c: fixed comments
1537         * src/pic16/pcode.c: MSVC6 doesn't accept declaring new variables
1538           amidst code. Also inline is not supported.
1539
1540 2005-04-06 Raphael Neider <rneider AT web.de>
1541
1542         * src/pic16/pcode.c (pic16_pCodeReplace): also update pcflow->end
1543         * (createDefmap): fixed CALLs to depend on FSR1 and RETLW to restore
1544           callers stack/frame pointers
1545
1546 2005-04-06 Vangelis Rokas <vrokas AT users.sourceforge.net>
1547
1548         * device/include/pic16/usart.h: added, missing in previous commit,
1549         * device/include/pic16/adc.h: fixed typo,
1550         * device/lib/pic16/libc/utils/cvtdec.S: added missing in previous
1551         commit,
1552         * device/lib/pic16/libc/stdlib/g_ftoa.S: modified to include
1553         <p18fxxx.inc>
1554         * device/lib/pic16/libc/stdio/streams.c: leave stdin, stdout
1555         uninitialized because a bug appears with gplink
1556         * device/lib/pic16/{some makefiles}: moved $(CSTD) from CFLAGS to
1557         COMPILE_FLAGS and added CPPFLAGS with -nostdinc because sdcpp
1558         complains for unrecognised option
1559
1560 2005-04-05 Raphael Neider <rneider AT web.de>
1561
1562         * src/pic16/gen.c (pic16_popCopyReg): made copying work for extended
1563           structs as well (using memcpy)
1564         * (genFunction): fixed comparison, used pCodeOpLabel to reduce warning
1565           on ISRs (GOTO has no label)
1566         * src/pic16/device.h: added OF_OPTIMIZE_DF
1567         * src/pic16/main.c: added compiler switch --optimize-df to enable the
1568           new data flow analysis/optimization
1569         * src/pic16/pcode.c: added (prototypes for and implementation of)
1570           dataflow analysis functions, fixed pCodeInstructions' inCond and
1571           outCond values, made RCALL a branch instruction
1572         * (pic16_unlinkpCode): keep C line if possible
1573         * (pic16_pCodeUnlink): removed cast on left side of assignment, have
1574           C line moved if possible
1575         * (pic16_getRegFrompCodeOp): NEW, improved version of...
1576         * (pic16_getRegFromInstruction,pic16_getRegFromInstruction2): changed
1577           to use new pic16_getRegFrompCodeOp (works for more SFRs)
1578         * (pic16_BuildFlow): fixed skip instructions with label (did not start
1579           new flow)
1580         * (pic16_getJumptabpCode): NEW, needed in...
1581         * (LinkFlow): fixed handling of jumptables, calls and conditional
1582           branches
1583         * (pic16_InsertCommentAfter): NEW
1584         * (pic16_pCodeReplace): made verbose and flow preserving
1585         * (AnalyzeFlow): added call to data flow analysis
1586         * src/pic16/pcode.h: added defmaps to pCodeFlow struct
1587         * src/pic16/pcodeflow.h: added PCC_STATUS to mean all STATUS bits
1588         * src/pic16/ralloc.c (packRegsForAssign): added return 1 in the end
1589
1590 2005-04-03 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
1591
1592         * src/SDCCast.c (decorateType): fixed bug #1105626
1593
1594 2005-04-02 Vangelis Rokas <vrokas AT users.sourceforge.net>
1595
1596         * device/include/asm/pic16/features.h,
1597         * pic18f*.h headers,
1598         * device/include/pic16/adc.h,
1599         * device/include/pic16/delay.h,
1600         * device/include/pic16/i2c.h,
1601         * device/include/pic16/malloc.h,
1602         * device/include/pic16/stdio.h,
1603         * device/include/pic16/stdlib.h,
1604         * device/include/pic16/string.h,
1605         * device/lib/pic16/libc/stdio/printf_tiny.c,
1606         * device/lib/pic16/libc/stdio/printf_small.c,
1607         * device/lib/pic16/libc/stdio/strmgpsim.c,
1608         * device/lib/pic16/libc/stdio/strmmssp.c,
1609         * device/lib/pic16/libc/stdio/strmusart.c,
1610         * device/lib/pic16/libc/stdio/vfprintf.c,
1611         * device/lib/pic16/libc/stdlib/ltoa.c,
1612         * device/lib/pic16/libc/stdlib/putchar.c,
1613         * device/lib/pic16/libc/stdlib/x_ftoa.c,
1614         * device/lib/pic16/libc/stdlib/memchrpgm.c,
1615         * device/lib/pic16/libc/stdlib/memchrram.c,
1616         * device/lib/pic16/libc/stdlib/memcpypgm2ram.c,
1617         * device/lib/pic16/libc/stdlib/memcpyram2ram.c,
1618         * device/lib/pic16/libio/adc/adcbusy.c,
1619         * device/lib/pic16/libio/adc/adcread.c,
1620         * device/lib/pic16/libio/adc/adcsetch.c,
1621         * device/lib/pic16/libio/usart/ubaud.c,
1622         * device/lib/pic16/libio/usart/ubusy.c,
1623         * device/lib/pic16/libio/usart/udrdy.c,
1624         * device/lib/pic16/libio/usart/uopen.c,
1625         * device/lib/pic16/libio/usart/uputc.c,
1626         * device/lib/pic16/libsdcc/gptr/gptrget1.c,
1627         * device/lib/pic16/libsdcc/gptr/gptrget2.c,
1628         * device/lib/pic16/libsdcc/gptr/gptrget3.c,
1629         * device/lib/pic16/libsdcc/gptr/gptrget4.c,
1630         * device/lib/pic16/libsdcc/gptr/gptrput1.c,
1631         * device/lib/pic16/libsdcc/gptr/gptrput2.c,
1632         * device/lib/pic16/libsdcc/gptr/gptrput3.c,
1633         * device/lib/pic16/libsdcc/gptr/gptrput4.c: modified all SDCC
1634         specific keywords to double underlined form,
1635         * device/lib/pic16/libc/Makefile.rules,
1636         * device/lib/pic16/libsdcc/Makefile.rules,
1637         * device/lib/pic16/libm/Makefile,
1638         * device/lib/pic16/libio/Makefile.rules: added CSTD macro in CFLAGS
1639         to compile with C standard set in Makefile.common
1640         * device/lib/pic16/libc/stdlib/Makefile: added new C sources
1641         rand.c and crc.c in compilation process,
1642         * device/lib/pic16/libsdcc/int/divuint.c,
1643         * device/lib/pic16/libsdcc/long/divulong.c: changed declaration of
1644         `c' from signed to unsigned,
1645         * device/lib/pic16/startup/crt0.c,
1646         * device/lib/pic16/startup/crt0i.c,
1647         * device/lib/pic16/startup/crt0iz.c: adopted to all SDCC specific
1648         keywords to double underlined form, bug fixes in _do_cinit function
1649         which prevented the correct initialization of the .idata segment,
1650         * src/pic16/pcoderegs.c (insideLRBlock): fixed a bug that caused the
1651         core to enter a infinite loop
1652         * device/lib/pic16/libc/stdlib/rand.c, crc.c: new files
1653
1654 2005-04-02 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
1655
1656         * src/SDCCicode.c (getArraySizePtr): fixed bug #1122171
1657
1658 2005-04-01 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
1659
1660         * device/include/Makefile.in: add support for hc08 subdirectory
1661         * device/include/hc08/: new subdirectory
1662         * device/include/hc08/mc68hc908jkjl.h: new header contributed by
1663         Lucas Loizaga, thanks!
1664         * device/include/hc08/mc68hc908qy.h,
1665         * device/include/hc08/mc68hc908gp32.h,
1666         * device/include/hc08/mc68hc908jb8.h: moved hc08 register defs to
1667         their own directory. Changed internal macro names to use the compiler
1668         reserved namespace. Changed SDCC specific keywords to double
1669         underlined form.
1670         * device/include/math.h,
1671         * device/include/malloc.h,
1672         * device/include/stdarg.h,
1673         * device/include/stdbool.h
1674         * device/include/string.h,
1675         * device/include/tinibios.h,
1676         * device/include/ds400rom.h,
1677         * device/include/8051.h,
1678         * device/include/8052.h,
1679         * device/include/80c51xa.h,
1680         * device/include/at89c55.h,
1681         * device/include/at89S8252.h,
1682         * device/include/at89x51.h,
1683         * device/include/at89x52.h,
1684         * device/include/ds80c390.h,
1685         * device/include/reg764.h,
1686         * device/include/regc515c.h,
1687         * device/include/sab80515.h,
1688         * device/include/mcs51/c8051f000.h,
1689         * device/include/mcs51/c8051f018.h,
1690         * device/include/mcs51/c8051f020.h,
1691         * device/include/mcs51/c8051f040.h,
1692         * device/include/mcs51/c8051f060.h,
1693         * device/include/mcs51/c8051f120.h,
1694         * device/include/mcs51/c8051f300.h,
1695         * device/include/mcs51/c8051f310.h,
1696         * device/include/mcs51/c8051f320.h,
1697         * device/include/mcs51/c8051f330.h,
1698         * device/include/mcs51/c8051f350.h,
1699         * device/include/z180.h: Changed SDCC specific keywords to double
1700         underlined form.
1701
1702 2005-03-31 Vangelis Rokas <vrokas AT users.sourceforge.net>
1703
1704         * src/pic16/device.c (Pics16[]): added devices 18F2550, 18F4331,
1705         18F4455,
1706         * (pic16_assignConfigWordValue): disable testing of configuration
1707         register value with config mask,
1708         * src/pic16/gen.c (pic16_testStackOverflow): prefix stack test
1709         function with port->fun_prefix,
1710         * (genFunction): when generating a naked interrupt function never
1711         create an absolute segment placed in interrupt vector address, place
1712         the actual interrupt function at IVA instead, when an interrupt
1713         function is generated with unspecified interrupt then do not create
1714         the absolute section,
1715         * (genGenPointerGet, genGenPointerSet, genPackBits): replace all
1716         code for generating a call to generic pointer get/put function with
1717         a call to function pic16_callGenericPointer(),
1718         * src/pic16/genutils.c (pic16_callGenericPointerRW): NEW, generates
1719         the call to the generic pointer get/put functions with prefixing the
1720         function name with port->fun_prefix,
1721         * src/pic16/glue.c (pic16glue): ifdef-out test of OF_LR_SUPPORT,
1722         * src/pic16/main.c (_process_pragma): prefix function with
1723         port->fun_prefix,
1724         * (_pic16_finaliseOptions): define macro __18Fxxxx macro when
1725         calling assembler, old 18Fxxxx macro is deprecated,
1726         * src/pic16/pcode.c (unlinkpCodeFromBranch): added PC_INLINE and
1727         PC_ASMDIR in while condition,
1728         * (findInstruction): add PC_ASMDIR in while condition,
1729         * (buildCallTree): prefix main with port->fun_prefix,
1730         * (pic16_pCode2str): fixed bug that didn't emit the memory access
1731         identifier for variable with banked access in instructions BTFSS,
1732         BTFSC, BCF, BSF, BTG
1733         * (AnalyzeFlow): moved call to OptimizepCode to pic16_AnalyzeBanking,
1734         * src/pic16/pcodepeep.c (pCodeOpCompare): increase size of b to 1024,
1735         * src/pic16/pcoderegs.c (pic16_pCodeRegoptimizeRegUsage): don't
1736         perform optimization when enviroment variable NO_REG_OPT is set,
1737         * (insideLRBlock): NEW, return 1 if register is inside an
1738         INF_LOCALREGS block,
1739         * (RemoveRegFromLRBlock): remove a register that is completely
1740         eliminated by register optimization, but it is still left in local
1741         register store/restore in/from stack block,
1742         * (Remove2pcodes): after removing register, check to see if it
1743         should be removed from local register store/restore in/from stack
1744         block,
1745         * src/pic16/ralloc.c (pic16_decodeOp): added decode for
1746         DUMMY_READ_VOLATILE,
1747
1748         * device/include/pic16/adc.h: minor prototype modifications and
1749         update,
1750         * device/include/pic16/malloc.h: added GPL notice various
1751         modifications,
1752         * device/include/pic16/stdint.h: NEW, standard header for ints
1753         * device/include/pic16/delay.h: NEW, header for delay functions,
1754         delay10tcy, delay100tcy, delay1ktcy, delay10ktcy, delay100ktcy,
1755         delay1mtcy,
1756         * device/include/pic16/signal.h: NEW, header providing helper macros
1757         for implementing signal handlers,
1758         * device/include/pic16/stdio.h: added prototypes for functions,
1759         printf, vprintf, sprintf, vsprintf, fprintf, vfprintf. Added
1760         prototypes for stdin and stdout, added macro PUTCHAR to
1761         automatically implement putchar function prototype,
1762         * device/include/pic16/usart.h: modified and updated USART library,
1763         * device/lib/pic16/libio/adc/,
1764         * device/lib/pic16/libio/i2c: some modifications to improve library
1765         performance,
1766         * device/lib/pic16/libc/stdio/: modifications for the new printf*
1767         family of functions,
1768         * device/lib/pic16/libc/stdlib/: various modifications in the malloc
1769         family of functions and other sources,
1770         * device/lib/pic16/libio/usart/: NEW, c sources for the usart module
1771         of the PIC18Fxx[28] devices,
1772         * device/lib/pic16/libc/delay/: NEW, c sources for the delay functions,
1773         * device/lib/pic16/libc/utils/: minor modifications in the .S sources,
1774         * device/lib/pic16/startup/{crt0i.c, crt0iz.c}: redesign of the
1775         _do_cinit function, because the previous failed when local variables
1776         where not placed in the same memory bank,
1777         * device/lib/pic16/libsdcc/char/: various modifications to improve
1778         library performance,
1779         * doc/sdccman.lyx: some reorganization of the PIC16 part, added many
1780         information on the new functions of the c library and more...
1781
1782 2005-03-28 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
1783
1784         * src/SDCCBBlock.c (iCodeBreakDown): fixed bug #1170212
1785
1786 2005-03-26 Raphael Neider <rneider AT web.de>
1787
1788         * src/pic16/gen.c (genSkipc): fixed semantics (execute branch
1789           if condition == CARRY)
1790         * (genCmp): adapted to new genSkipc semantics
1791         * src/pic16/genutils.c (pic6_genCmp_special): removed side effect
1792           on rIfx (genCmp was broken)
1793
1794 2005-03-26 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
1795
1796         * src/SDCCmain.c (setDefaultOptions, optionsTable[], parseCmdLine),
1797         * src/z80/main.c (_keywords[]),
1798         * src/SDCCglobal.h (struct options),
1799         * src/SDCC.y,
1800         * src/SDCC.lex (isTargetKeyword, doPragma, pragma_tbl[]): new pragmas
1801         to enable/disable SDCC and C99 extensions/keywords (std_c89, std_sdcc89,
1802         std_c99, std_sdcc99). Also, equivalent command line options (--std-c89,
1803         --std-sdcc89, --std-c99, --std-sdcc99). SDCC specific keywords are
1804         always available in leading double underscore form. The C99 support is
1805         mostly missing, but it's a start.
1806         * support/regression/tests/bug-227710.c: fixed nonconforming use of
1807         reserved identifier "__data".
1808
1809 2005-03-24 Maarten Brock <sourceforge.brock AT dse.nl>
1810
1811         * src/mcs51/peeph.def: fixed bug 1170013
1812
1813 2005-03-22 Maarten Brock <sourceforge.brock AT dse.nl>
1814
1815         * device/include/mcs51reg.h: fixed bug 842007
1816
1817 2005-03-21 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
1818
1819         * src/SDCCcflow.c (dfNumCompare): committed the wrong version of this
1820         last time.
1821
1822 2005-03-20 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
1823
1824         * src/port.h (struct PORT),
1825         * src/avr/ralloc.c (avr_assignRegisters),
1826         * src/avr/main.c,
1827         * src/ds390/ralloc.c (ds390_assignRegisters),
1828         * src/ds390/main.c,
1829         * src/hc08/ralloc.c (hc08_assignRegisters),
1830         * src/hc08/main.c,
1831         * src/mcs51/ralloc.c (mcs51_assignRegisters),
1832         * src/mcs51/main.c,
1833         * src/pic/ralloc.c (pic14_assignRegisters),
1834         * src/pic/main.c,
1835         * src/pic16/ralloc.c (pic16_assignRegisters),
1836         * src/pic16/main.c,
1837         * src/xa51/ralloc.c (xa51_assignRegisters),
1838         * src/xa51/main.c,
1839         * src/z80/ralloc.c (z80_assignRegisters),
1840         * src/z80/ralloc.h,
1841         * src/SDCCopt.c (eBBlockFromiCode, replaceRegEqv, killDeadCode),
1842         * src/SDCCcse.c (ifxOptimize, cseBBlock, cseAllBlocks),
1843         * src/SDCCcse.h,
1844         * src/SDCCdflow.c (computeDataFlow),
1845         * src/SDCCdflow.h,
1846         * src/SDCCloop.c (addDefInExprs, loopInvariants, loopOptimizations),
1847         * src/SDCCloop.h,
1848         * src/SDCCcflow.c (*),
1849         * src/SDCCcflow.h,
1850         * src/SDCCBBlock.c (iCodeBreakDown, dumpEbbsToFileExt, eBBWithEntryLabel),
1851         * src/SDCCBBlock.h (struct ebbIndex): new struct that keeps two copies
1852         of the eBBlock list, sorted by both bbnum and dfnum. (fixes bug with
1853         immedDom() returning wrong block; probably fixes bug #1160833)
1854
1855 2005-03-20 Borut Razem <borut.razem AT siol.net>
1856
1857         * support/scripts/inc2h.pl: WIN32 port
1858
1859 2005-03-19 Maarten Brock <sourceforge.brock AT dse.nl>
1860
1861         * device/lib/makefile.in: added abs.c and labs.c
1862
1863 2005-03-17 Maarten Brock <sourceforge.brock AT dse.nl>
1864
1865         * device/include/stdint.h: added
1866         * device/lib/abs.c: added
1867         * device/lib/labs.c: added
1868         * device/include/stdlib.h: added abs() and labs() prototypes
1869         * device/lib/libsdcc.lib: added abs and labs
1870         * device/include/float.h,
1871         * device/lib/_fsmul.c,
1872         * device/lib/printf_fast.c,
1873         * device/lib/printf_tiny.c: updated comments
1874
1875 2005-03-16 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
1876
1877         * src/SDCCicode.c (geniCodeSwitch, geniCodeJumpTable): fixed
1878         bug #1164313
1879
1880 2005-03-16 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
1881
1882         * src/SDCCcse.c (cseBBlock): retain assignment to self when volatile
1883         * src/SDCCast.c (isLoopCountable): fixed bug #1161985
1884
1885 2005-03-15 Maarten Brock <sourceforge.brock AT dse.nl>
1886
1887         * device/lib/printf_large.c: removed inline assembly for portability and
1888           readability. Use printf_fast if speed or size are more important.
1889         * src/pic16/gen.c: removed conditions around use of DEBUGpc
1890         * src/pic16/genutils.h: added define for DEBUGpc for MSVC
1891
1892 2005-03-15 Vangelis Rokas <vrokas AT users.sourceforge.net>
1893
1894         * src/pic16/genutils.c (pic16_genCmp_special): initialized offs to
1895         prevent compiler warning
1896
1897 2005-03-14 Vangelis Rokas <vrokas AT users.sourceforge.net>
1898
1899         * device/lib/pic16/startup/crt0i.c (_cinit): local variables where
1900         moved to level 0 and declared as static. Also they are explicit
1901         placed in access bank. This was necessery because some times they
1902         might cross memory bank boundaries. crt0iz.c is *NOT* updated!!!
1903         * src/pic16/device.h: added flag OPTIMIZE_CMP to enable some compare
1904         optimizations. Currently only compare to unsigned char is implemented,
1905         * src/pic16/gen.c: added fReturnIdx array,
1906         * (struct resolvedIfx) is moved to gen.h and made public,
1907         * (struct _G): added sregsAlloc and sregsAllocSet fields,
1908         * (aopForSym): added an optimization to directly store in stack of
1909         the operand of a SEND iCode,
1910         * (pic16_aopOp): don't return return registers as strings (AOP_STR)
1911         but as registers instead (AOP_REG) using the fReturnIdx array,
1912         * (pic16_freeAsmop): remove the freed register from the
1913         _G.sregsAlloc field,
1914         * (pic16_aopGet): in case AOP_STR, the compare to 'a' is changed to
1915         a compare of 'WREG',
1916         * (pic16_popGetTempRegCond): changed function prototype, now
1917         function takes also a bitVector argument v which holds the current
1918         set of registers that are allocated for stack access by aopForSym,
1919         registers allocated in aopForSym for accessing stack symbols are not
1920         any more part of the functions usedRegs field,
1921         * (genCall): some times aopOp is called for a stack variable to be
1922         send, aopForSym might perform the push, if this is true make sure
1923         that genCall doesn't push the variable twice by testing _G.resDirect,
1924         * (genFunction): changed testing for unspecified interrupt number
1925         from 256 to INTNO_UNSPEC,
1926         * modified selection scheme of frame pointer generation. Previously
1927         if function did use local registers a frame pointer was generated,
1928         now a frame pointer is generated only if function has arguments
1929         (that need PLUSW2 register access), or has stack arguments, or the
1930         compiler is not instructed to omit the frame pointer,
1931         * (genEndFunction): before restoring local registers that were saved
1932         in the function preamble, also restore the registers that *might*
1933         have been allocated for stack access,
1934         * (genRet): removed some old comments,
1935         * (genCmp, the active (RN's) version): added a call to the
1936         pic16_genCmp_special function to perform the compare with a more
1937         robust and optimized way,
1938         * (genInline): a feature has been added in inline code generation,
1939         which allows a wildcard variable substitution when writing inline
1940         assembly. Code is incomplete and experimental therefore undocumented,
1941         * (genCast): changed order of aopOp for result and right to allow
1942         aopForSym to directly load the result if possible,
1943         * src/pic16/genutils.c (selectCompareOp, pic16_genCmp_special): NEW,
1944         perform an optimized compare on some selected special occasions,
1945         * src/pic16/genutils.h: declaration of resolvedIfx structure from gen.c,
1946         * src/pic16/glue.c (pic16createInterrupVect): make sure we never
1947         generate an IVT any more,
1948         * src/pic16/main.c (pic16_optionsTable): added command line option
1949         --optimize-cmp,
1950         * (_pic16_initPaths): when calling C preprocessor define pic18fXXXX
1951         macro too, when calling assembler define pic18fXXXX *and* __18Fxxxx
1952         macros,
1953         * src/pic16/NOTES: Raphael Neider added in list of active developers
1954         * src/pic16/pcode.c (OPT_TYPE_STR): added strings jumptable_begin and
1955         jumptable_end to prevent bug #,
1956         * (pic16_pciADDWFC, ADDFWC, COMF, CLRF): added some missing flags in
1957         inCond and outCond fields,
1958         * src/pic16/pcoderegs.c (pCodeOptime2pCodes): add a fix for bug #,
1959         * src/pic16/ralloc.c (serialRegAssign): explicit set willCS to 0 to
1960         turn off register spilling,
1961         * (packRegsForOneUse): synced with other ports' versions although it
1962         is not used currently,
1963         * (pic16_packRegisters): added an optimization while reading
1964         structure bitfields, some registers may be saved (malloc code is
1965         decreased by 80 bytes)
1966
1967 2005-03-12 Vangelis Rokas <vrokas AT users.sourceforge.net>
1968
1969         * src/SDCCcse.c (cseBBlock): inside 'do operand lookup' loop test if
1970         left is a bitfield, if yes, then don't optimize assignment. Perhaps
1971         this can be optimized more?
1972
1973 2005-03-10 Raphael Neider <rneider AT web.de>
1974
1975         * src/pic16/gen.c (pic16_loadFSR0, genPackBits, genUnpackBits,
1976           genNearPointerGet): (hopefully) fixed access to bitfields via
1977           pointers (p->bitN = x; and x = p->bitN; failed)
1978
1979 2005-03-09 Paul Stoffregen <paul AT pjrc.com>
1980
1981         * device/lib/printf_fast.c: fix leading zero format, eg "%02d"
1982
1983 2005-03-09 Raphael Neider <rneider AT web.de>
1984
1985         * src/SDCCopt.c (killDeadCode): fixed bug #1156016
1986
1987 2005-03-06 Maarten Brock <sourceforge.brock AT dse.nl>
1988
1989         * src/SDCCicode.h: moved CRITICAL and ENDCRITICAL from SKIP_IC2 to SKIP_IC
1990         * src/mcs51/ralloc.c (willCauseSpill): added check for REG_BIT type,
1991           (regTypeNum): set REG_BIT type if necessary
1992         * src/mcs51/ralloc.h: added define REG_BIT, used to fix bug 1144613
1993         * support/regression/tests/critical.c: check bug 1144613
1994
1995 2005-03-02 Raphael Neider <rneider AT web.de>
1996
1997         * src/pic16/gen.c (genRightShiftLiteral): fixed bug #1154256
1998
1999 2005-02-26 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
2000
2001         * src/avr/ralloc.c (serialRegAssign),
2002         * src/ds390/ralloc.c (serialRegAssign),
2003         * src/hc08/ralloc.c (serialRegAssign),
2004         * src/mcs51/ralloc.c (serialRegAssign),
2005         * src/pic/ralloc.c (serialRegAssign),
2006         * src/pic16/ralloc.c (serialRegAssign),
2007         * src/xa51/ralloc.c (serialRegAssign),
2008         * src/z80/ralloc.c (serialRegAssign): fixed bug #1105154
2009
2010 2005-02-22 Maarten Brock <sourceforge.brock AT dse.nl>
2011
2012         * src/SDCCast.c (decorateType): fixed bug 1124787
2013
2014 2005-02-20 Hubert Sack <sack AT digiplan.de>
2015         committed by Frieder Ferlemann <Frieder.Ferlemann AT web.de>
2016
2017         * src/mcs51/peeph.def: added peepholes 3.h-k and 132.a-f from
2018         patch #1121755
2019
2020 2005-02-20 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
2021
2022         * src/SDCCpeeph.def: new keyword "labelRefCountChange" which allows peepholes
2023         to keep the correct label reference count when adding/removing references
2024         to labels. A peephole file using this is appended to patch #1144962.
2025
2026 2005-02-14 Raphael Neider <rneider AT web.de>
2027
2028         * device/lib/pic16/libc/string/memccpy.c: changed 3rd argument to char
2029         * src/SDCC.lex (process_pragma): fixed to make disable_warning work for PIC16
2030         * src/pic16/gen.c (aopForSym, calls to pic16_aopOp): prevent unneccessary
2031           retrievals of result operand's value on assignment
2032
2033 2005-02-13 Vangelis Rokas <vrokas AT otenet.gr>
2034
2035         * device/include/pic16/string.h: modified prototype for memccpy()
2036         to memccpy(void *, void *, char, size_t)
2037         * src/pic16/gen.c (genFunction, genEndFunction): reenable if-case to
2038         check whether to omit frame pointer or not,
2039         * (genInline): convert all occurences of "\n" to LF in inline
2040         assembler blocks, this helps formatting the inline text,
2041         * (pic16_loadFSR0): modified prototype,
2042         * (genNearPointerGet, genNearPointerSet): reorganization of code,
2043         removed some 8051 legacy code,
2044         * (genPackBits): enabled handling bitfields exceeding one byte in size,
2045         * src/pic16/ralloc.c (pic16_assignRegisters): clear dynrIdx variable
2046         before allocating temporary registers in functions,
2047
2048 2005-02-11 Maarten Brock <sourceforge.brock AT dse.nl>
2049
2050         * support/regression/tests/bitvars.c: corrected the "fix"
2051
2052 2005-02-10 Maarten Brock <sourceforge.brock AT dse.nl>
2053
2054         * support/regression/tests/bitvars.c,
2055         * support/regression/tests/bitwise.c,
2056         * support/regression/tests/rotate.c: "fixed" problems on Alpha
2057
2058 2005-02-10 Raphael Neider <rneider AT web.de>
2059
2060         * src/pic16/pcode.c (assignToSameBank) : fixed cast to pointer of
2061           different size for Alpha
2062         * src/pic16/gen.c (genCmpEq) : improved compare with 0
2063
2064 2005-02-09 Raphael Neider <rneider AT web.de>
2065
2066         * src/SDCC.lex(doPragma) : save and restore warning options as well
2067           (also added new stack plus clone- and copyAndFreeSDCCERRG())
2068         * have #pragma less_pedantic set the errorlevel to WARNING
2069           (fixes #1117001)
2070         * (cloneOptimize) : fixed wrong malloc's size
2071         * support/Util/SDCCerr.[ch] : made SDCCERRG globally accessible to
2072           facilitate correct handling of #pragma (save|restore)
2073
2074 2005-02-09 Maarten Brock <sourceforge.brock AT dse.nl>
2075
2076         * src/mcs51/gen.c: removed non-standard C nameless struct/union
2077
2078 2005-02-04 Slade Rich <slade_rich AT users.sourceforge.net>
2079
2080         * src/pic/gen.c : Fix for bugs #1080519 & #1115662.
2081
2082 2005-02-03 Maarten Brock <sourceforge.brock AT dse.nl>
2083
2084         * device/include/mcs51/c8051f120.h: added declarations for sbit port 2,3&4
2085
2086 2005-02-02 Raphael Neider <rneider AT web.de>
2087
2088         * src/SDCCast.c (processParms): disabled W_NONRENT_ARGS for pic16 port
2089         * src/pic16/gen.c (aopForSym): reenabled special case for function pointers
2090         * (pic16_storeForReturn): fixed to allow returning function pointers
2091         * (genPackBits): improved accessing full bytes, implemented for GPOINTERs
2092         * device/include/pic16/{stddef.h,stdbool.h}: added
2093
2094 2005-02-02 Maarten Brock <sourceforge.brock AT dse.nl>
2095
2096         * device/include/mcs51/c8051f040.h: added define CPT2_PAGE
2097
2098 2005-02-01 Slade Rich <slade_rich AT users.sourceforge.net>
2099
2100         * src/pic16/pic16.dsp : Added file graph.c to make it compile under windows
2101         * src/pic16/Makefile.bcc : Do not use this file but added file graph.c as it
2102          appeared to be required
2103
2104 2005-01-31 Borut Razem <borut.razem AT siol.net>
2105
2106         * support/scripts/sdcc.nsi: added include/asm/ds390, include/asm/mcs51,
2107           include/mcs51 and include/z80 directories to the package
2108
2109 2005-01-26 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
2110
2111         * src/hc08/gen.c (genFunction): fixed bug #1112752
2112
2113 2005-01-30 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
2114
2115         * src/mcs51/peeph.def: adapted peephole 258.x to changed gen.c (genAnd)
2116
2117 2005-01-29 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
2118
2119         * src/mcs51/gen.c (genAnd): accessing LSB/MSB by rotating acc
2120
2121 2005-01-29 Maarten Brock <sourceforge.brock AT dse.nl>
2122
2123         * device/include/Makefile.in: create/copy mcs51 and z80 include subdirs
2124
2125 2005-01-27 Maarten Brock <sourceforge.brock AT dse.nl>
2126
2127         * device/include/c8051fxxx.h: removed these 6 files
2128         * device/include/mcs51/c8051fxxx.h: added these 11 new files
2129
2130 2005-01-26 Raphael Neider <rneider AT web.de>
2131
2132         * src/pic16/gen.c (genAssign): fixed assignment from longs
2133           in codespace (were cut to three bytes)
2134         * (genDummyRead): implemented (except for CODESPACE...),
2135           fixed bug #1108575
2136         * src/pic16/glue.c (emitStatistics): beautified
2137         * device/lib/pic16/libm/Makefile: added include path
2138
2139 2005-01-26 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
2140
2141         * src/z80/gen.c (aopPut): fixed bug #1103902
2142
2143 2005-01-25 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
2144
2145         * device/lib/expf.c: fixed bug #1095792
2146
2147 2005-01-24 Vangelis Rokas <vrokas AT otenet.gr>
2148
2149         * device/lib/pic16/libm: added Math library sources
2150
2151 2005-01-24 Raphael Neider <rneider AT web.de>
2152
2153         * src/pic16/pcode.h: added second memory operand to pCodeOpReg
2154           to enable upcast to pCodeOpReg2 (there is no type tag to
2155           differenciate the two and pic16_popGet2p cast into PCOR2)
2156         * src/pic16/main.c (_process_pragma): fixed another malloc bug
2157           (sizeof(sectNames) changed to sizeof(sectName))
2158           Both patches fix segfaults under MinGW.
2159
2160 2005-01-23 Raphael Neider <rneider AT web.de>
2161
2162         * src/pic16/{device.c,pcode.c}: s/free/Safe_free/g for
2163           Safe_[mc]?alloc()'ed variables
2164         * src/pic16/gen.c (pic16_aopOp,pic16_popGet): added handling
2165           of (byte sized) temporaries (assign them to WREG for now)
2166         * src/pic16/main.c (_process_pragma): fixed nasty malloc bug
2167           (used sizeof(set *sectSyms) instead of sizeof(struct sectSym)),
2168           this might fix SIGSEGVs on MinGW...
2169         * src/SDCCopt.c (killDeadCode): restored original behaviour
2170           (volatile operands might get thrown away though)
2171
2172 2005-01-23 Vangelis Rokas <vrokas AT otenet.gr>
2173
2174         * src/pic16/gen.c: fixed bug #1106975,
2175         * src/pic16/gen.c: fixed possible bug #1102572, now during TOS
2176         pointer update, INTCON is saved, global interrupts are disabled and
2177         restored after updateing TOS.
2178         * src/SDCC.y, src/SDCC.lex, src/SDCCsymt.c, src/SDCCsymt.h:
2179         * added function attribute 'shadowregs' to take advantage of shadow
2180         registers,
2181         * added function attribute 'wparam' as an alternative to the wparam
2182         pragma,
2183         * support/Utils/SDCCerr.[ch]: added error E_SHADOWREGS_NO_ISR when
2184         user declares a non-ISR function as 'shadowregs',
2185         * doc/sdccman.lyx: updated to reflect recent changes of pic16 port
2186
2187 2005-01-22 Vangelis Rokas <vrokas AT otenet.gr>
2188
2189         * .version: bumped version number to 2.4.8
2190         * device/lib/pic16/pics.all: list of PIC18F devices supported by
2191         pic16 port,
2192         * device/lib/pic16/libio/i2c/: I2C module support library,
2193         * device/include/pic16/i2c.h: I2C support library header,
2194         * device/lib/pic16/libc/stdio/: standard IO support sources,
2195         * (printf_small.c): printf_small() source, supports float print,
2196         * (printf_tiny.c): printf_tiny() source, does not support floats,
2197         * device/lib/pic16/Makefile.common.in: added OPT_FLAGS macro to
2198         enable global optimizations for entire library source, other
2199         Makefiles in the source tree are also modified to reflect this,
2200         * device/lib/pic16/libc/stdlib/putchar.c (putchar): dummy putchar()
2201         function,
2202         * doc/sdccman.lyx: updated to reflect new changes,
2203         * src/pic16/gen.c (aopForSym): don't handle sym->iaccess in
2204         sym->onStack if-case,
2205         * src/pic16/main.c (_pic16_keywords): commented out keywords bit,
2206         sbit, idata, _idata, xdata, _xdata,
2207         * added pragma library, to link an external library, (see doc),
2208         * removed command line options, --pomit-config-words, --pomit-ivt,
2209         --pleave-reset-vector,
2210         * (pic16_finaliseOptions): when define macro SDCC_MODEL_{SMALL/LARGE}
2211         when calling assembler to reflect memory model used, also define
2212         macro STACK_MODEL_{SMALL/LARGE} when compiling and assembling to
2213         reflect stack model used,
2214         * src/pic16/ralloc.c (pic16_allocDirReg): when operand is allocated
2215         on stack return NULL,
2216
2217 2005-01-22 Daniel Winkler <post AT danielwinkler.de>
2218
2219         * src/SDCCopt.c (killDeadCode): do not throw iCodes away if one
2220           of the operands is volatile. Fixes #1020220
2221
2222 2005-01-22 Daniel Winkler <post AT danielwinkler.de>
2223
2224         * src/pic16/pcoderegs.c (pCodeOptime2pCodes): reenabled optimization
2225         * (OptimizeRegUsage): make sure that there is really no other flow where
2226           the first pCode is used
2227
2228 2005-01-22 Raphael Neider <rneider AT web.de>
2229
2230         * src/pic16/pcoderegs.c (pCodeOptime2pCodes): disabled optimization
2231           to fix #1106967 (pCode->seq are not set up correctly)
2232
2233 2005-01-22 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
2234
2235         * src/SDCCglue.c (glue): make sure code area is declared before the
2236         static initialization area.
2237
2238 2005-01-21 Raphael Neider <rneider AT web.de>
2239
2240         * device/lib/Makefile.in: fixed test for pic16 install dir
2241         * device/lib/pic16/*/Makefile*: modified compile flags to enable
2242           optimizations
2243         * doc/sdccman.lyx: updated banksel optimization, removed --flr-support and
2244           added --optimize-goto compiler switch and pragma wparam documentation
2245         * src/pic16/pcode.c (pic16_OptimizeBanksel): removed statistics dump
2246         * src/pic16/pcodepeep.c (pic16_pCodeOpCopy): fixed copying of WREG, PRODL
2247           and PRODH closing bug #1071770 (peephole optimizer)
2248
2249 2005-01-19 Raphael Neider <rneider AT web.de>
2250
2251         * src/SDCCglobl.h: ensure that PATH_MAX >= 2048 to guarantee
2252           cmdLine buffers (used when calling sdcpp...) are large enough
2253           (MAX_PATH=256 truncates arguments leading to system halts when
2254           used in MinGW...)
2255         * src/pic16/gen.c (pic16_sameRegs): relaxed size criterion
2256         * (genUminus): rewritten to for efficiency
2257         * (genNearPointer[GS]et): enforce reloading of FSR0 (was still
2258           used uninitialized in some cases)
2259         * (genCast): upcasting a 16bit int to a 24bit GPOINTER may not
2260           copy the third byte from the int -- now assumes 0x80 (data memory)
2261         * src/pic16/genarith.c (pic16_genPlus): fixed bug when swapping
2262           operands (genAddLit expects the iCode's operands to swapped as
2263           well), fixed leftover bytes (crashed for short left operands)
2264         * (pic16_genMinusDec): performance improvements, removed false
2265           PIC14 emitSKPNCs
2266         * (pic16_genMinus): fixed to cope with differently sized operands
2267         * src/pic16/glue.c (pic16_glue): added new banksel optimization
2268           for --obanksel > 1
2269         * src/pic16/pcode.c: implemented (first phase of) banksel optimization
2270         * src/pic16/graph.[ch]: implementation of directed graphs, used by
2271           new banksel optimization
2272         * src/pic16/pcoderegs.c (pCodeRegMapLiveRangesInFlow): prevented
2273           analysis for temporary registers (segfaults...)
2274         * src/pic16/peeph.def: added rule
2275
2276 2005-01-18 Vangelis Rokas <vrokas AT otenet.gr>
2277
2278         * device/lib/pic16/libc/stdlib/x_ftoa.c: it defines x_ftoa function
2279         which converts a float number to its ASCII representation
2280         * device/lib/pic16/libc/utils/cnvfrac.S,cnvint.S: support
2281         functions to convert the fractional and integer part of a float to ASCII,
2282         * device/lib/pic16/libc/stdlib/(calloc.c,free.c, malloc.c,
2283         realloc.c): added _MALLOC_SPEC to explicit place variables in data
2284         ram
2285         * device/include/asm/pic16/features.h: added _CODE, _DATA, _AUTOMEM,
2286         _STATMEM macros,
2287         * device/include/pic16/adc.h: added GPL info,
2288         * src/pic16/gen.c (genIfxpCOpJump): perform an genIfxJump but using
2289         a pCodeOp as tested operand,
2290         * (genNearPointerGet): optimized bit testing, does not use
2291         intermediate register for bit value, test directly instead with
2292         BTFSS, BTFSC, works only for single bits,
2293         * (genpic16Code): dump the name of the iCode in the asm,
2294         * src/pic16/ralloc.c (decodeOp): removed static declaration and
2295         renamed to pic16_decodeOp,
2296         * (serialRegAssign): do not allocate a temporary register for iCode
2297         sequences that test a single bit for 1/0
2298
2299 2005-01-12 Vangelis Rokas <vrokas AT otenet.gr>
2300
2301         * src/pic16/pcode.[ch]: introduced pic16_stackpnt_*,
2302         pic16_framepnt_*, pic16_stack_*, pic1_frame_* pointer variables to
2303         access stack and frame pointers. They are initially assigned to
2304         point at pic16_pc_fsr1[lh] and pic16_pc_fsr2[lh] variables and other
2305         accessing SFRs. Updated all occurences of modification of stack or
2306         frame pointer in gen.c and pcode.c,
2307         * src/pic16/ralloc.c (serialRegAssign): fixed two bugs with
2308         assigning of a literal value to pointers,
2309         * src/pic16/main.c (pic16_finiliseOptions): set pre-processor define
2310         flag STACK_MODEL_SMALL or STACK_MODEL_LARGE according to the model
2311         selected
2312
2313 2005-01-11 Vangelis Rokas <vrokas AT otenet.gr>
2314
2315         * doc/sdccman.lyx: update documentation about stack pragma, added
2316         some info for stack memory models
2317
2318 2005-01-08 Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
2319
2320         * src/pic16/gen.c (DEBUGpc): MSVC 6 does not support macro variable arguments
2321
2322 2005-01-08 Raphael Neider <rneider AT web.de>
2323
2324         * src/pic16/device.c (pic16_dump_usection): changed naming scheme for
2325           udata sections to fix bug #1097823
2326
2327 2005-01-05 Raphael Neider <rneider AT web.de>
2328
2329         * src/pic16/gen.c (genGenericShift): added handling of differently
2330           sized left operand and result
2331
2332 2005-01-04 Raphael Neider <rneider AT web.de>
2333
2334         * src/pic16/gen.c (genIfxJump): fixed inverted skips on CARRY
2335         * (genIfx): fixed (?) read from uninitialized SPIL_LOC (now assumes CARRY
2336           to hold the condition bit)
2337         * added new version of genCmp (old code available via #define)
2338         * added new version of genShiftLeft/genShiftRight in a generic
2339           way, now supports shifting by negative values
2340         * (genLeftShiftLiteral, genRightShiftLiteral): use absolute value of
2341           shiftCount (expected by genGenericShift)
2342         * src/pic16/genarith.c (genPlus): added code for adding CARRY+literal
2343         * src/pic16/pcode.c (pic16_OptimizeJumps): removed annoying statistics
2344           dump
2345         * (pic16_newpCodeOpLit): changed to cast to unsigned char (as e.g. -32766
2346           is an invalid literal too...)
2347
2348 2005-01-04 Vangelis Rokas <vrokas AT otenet.gr>
2349
2350         * src/pic16/gen.c (aopForSym, genEndFunction): applied some fixes
2351         from Raphael Neider,
2352         * src/pic16/pcode.c (pic16_newpCodeOpLit): removed casting to char
2353         for 8-bit literals. This fixes some literal operands which are sign
2354         extended to 16-bits ints when instruction needs only 8-bits.
2355
2356 2004-12-31 Paul Stoffregen <paul AT pjrc.com>
2357
2358         * device/lib/logf.c: added mcs51 assembly version
2359         * device/lib/expf.c: added mcs51 assembly version
2360         * device/lib/_logexpf.c: new shared asm code for expf and logf
2361         * device/include/math.h: add defines for assembly math library
2362         * device/lib/Makefile.in: build new _logexpf.c
2363         * device/lib/libfloat.lib: use new _logexpf.c
2364
2365 2004-12-29 Slade Rich <slade_rich AT users.sourceforge.net>
2366
2367         * src/pic/device.c
2368         * src/pic/pcode.c : adjusted internal stack and pre-allocated registers for
2369           device types which have less than 0x7f registers.
2370
2371 2004-12-29 Slade Rich <slade_rich AT users.sourceforge.net>
2372
2373         * src/pic/genarith.c : Fixed problem with subtraction where the result would not be updated when borrowing.
2374
2375 2004-12-28 Paul Stoffregen <paul AT pjrc.com>
2376
2377         * device/lib/printf_fast.c: only build on supported arch.
2378         * device/lib/printf_tiny.c: only build on supported arch.
2379         * device/lib/printf_fast_f.c: only build if asm float lib
2380         * device/lib/_fsget1arg.c: only build if asm float lib
2381         * device/lib/_fsget2args.c: only build if asm float lib
2382         * device/lib/_fsnormalize.c: only build if asm float lib
2383         * device/lib/_fsreturnval.c: only build if asm float lib
2384         * device/lib/_fsrshift.c: only build if asm float lib
2385         * device/lib/_fsswapargs.c: only build if asm float lib
2386         * device/include/stdio.h: don't provide print_fast,
2387           print_fast_f, print_tiny prototypes if --xstack used
2388
2389 2004-12-28 Maarten Brock <sourceforge.brock AT dse.nl>
2390
2391         * device/lib/sincosf.c (sincosf): don't invert bit/bool by ~
2392         * support/regression/ports/mcs51-stack-auto/spec.mk: added new _fs.. files
2393           to the SOURCES
2394
2395 2004-12-28 Paul Stoffregen <paul AT pjrc.com>
2396
2397         * device/lib/printf_fast_f.c: same as printf_fast, but
2398           with floating point enabled
2399         * device/lib/printf_fast.c: minor tweaks
2400         * device/include/stdio.h: add printf_fast_f
2401
2402 2004-12-27 Paul Stoffregen <paul AT pjrc.com>
2403
2404         * src/SDCCmain.c: make --float-reent default for mcs51
2405         * device/lib/_fsadd.c: added mcs51 assembly version
2406         * device/lib/_fssub.c: added mcs51 assembly version
2407         * device/lib/_fsmul.c: added mcs51 assembly version
2408         * device/lib/_fsdiv.c: added mcs51 assembly version
2409         * device/lib/_fseq.c: added mcs51 assembly version
2410         * device/lib/_fsneq.c: added mcs51 assembly version
2411         * device/lib/_fsgt.c: added mcs51 assembly version
2412         * device/lib/_fslt.c: added mcs51 assembly version
2413         * device/lib/_fscmp.c: shared code for fseq,fsgt,fslt,fsneq
2414         * device/lib/Makefile.in: add _fscmp to build
2415         * device/lib/libfloat.lib: add _fscmp to build
2416
2417 2004-12-27 Paul Stoffregen <paul AT pjrc.com>
2418
2419         * device/lib/_fs2slong.c: added mcs51 assembly version
2420         * device/lib/_fs2sint.c: added mcs51 assembly version
2421         * device/lib/_fs2schar.c: added mcs51 assembly version
2422         * device/lib/_fs2ulong.c: added mcs51 assembly version
2423         * device/lib/_fs2uint.c: added mcs51 assembly version
2424         * device/lib/_fs2uchar.c: added mcs51 assembly version
2425         * device/lib/_slong2fs.c: added mcs51 assembly version
2426         * device/lib/_sint2fs.c: added mcs51 assembly version
2427         * device/lib/_schar2fs.c: added mcs51 assembly version
2428         * device/lib/_ulong2fs.c: added mcs51 assembly version
2429         * device/lib/_uint2fs.c: added mcs51 assembly version
2430         * device/lib/_uchar2fs.c: added mcs51 assembly version
2431         * device/include/float.h: added #define to select asm vs c
2432
2433 2004-12-26 Paul Stoffregen <paul AT pjrc.com>
2434
2435         * device/lib/printf_fast.c: improvements to float output
2436         * device/include/float.h: add defines for assembly float library
2437         * device/lib/_fsget1arg.c: receive 1 float arg
2438         * device/lib/_fsget2args.c: receive 2 float args (reentrant)
2439         * device/lib/_fsnormalize.c: normalize a float
2440         * device/lib/_fsreturnval.c: return float, various helper routines
2441         * device/lib/_fsrshift.c: right shift a float's mantissa
2442         * device/lib/_fsswapargs.c: swap 2 floats
2443         * device/lib/Makefile.in: build these 6 new files for mcs51
2444         * device/lib/libfloat.lib: add these 6 files to the library
2445
2446 2004-12-26 Borut Razem <borut.razem AT siol.net>
2447
2448         * sim/ucsim/avr.src/arith_inst.cc: fixed bug #1088372- savr is not
2449           built by gcc 3.4.2
2450
2451 2004-12-25 Paul Stoffregen <paul AT pjrc.com>
2452
2453         * device/lib/printf_tiny.c: printf for mcs51 in only 267 bytes,
2454           and fully reentrant and register bank neutral.
2455         * device/lib/printf_fast.c: added float (not enabled by default),
2456           added compact/slower integer (also not enabled by default),
2457           improved size/speed of fast integer code, other minor changes
2458         * device/include/stdio.h, device/lib/Makefile.in,
2459           device/lib/libsdcc.lib: integrate printf_tiny into mcs51 build
2460
2461 2004-12-24 Maarten Brock <sourceforge.brock AT dse.nl>
2462
2463         * src/pic16/pcode.c: declaring variables other than at the start of a
2464           block is not supported in C by VC6.
2465
2466 2004-12-22 Vangelis Rokas <vrokas AT otenet.gr>
2467
2468         * applied a previous patch from Raphael Neider that wasn't included
2469         in the previous commits, which fixes infinite loops within jumptable
2470         improvements,
2471         * made some fixes that previous patches introduced
2472
2473 2004-12-21 Vangelis Rokas <vrokas AT otenet.gr>
2474
2475         * src/pic16/gen.c (pic16_aopGet): applied fix from Raphael Neider
2476         that fixes an issue with AOP_PCODE asmop's offset,
2477         * (pic16_popCopyReg): update instance field too,
2478         * (mov2w): modified to pic16_mov2w because it conflicts with mov2w
2479         function of pic port,
2480         * (genCmp, genAnd, genAssign),
2481         * src/pic16/genarith.c (genAddLit): some fixes from Raphael Neider,
2482
2483 2004-12-20 Vangelis Rokas <vrokas AT otenet.gr>
2484
2485         * src/SDCCast.c (gatherAutoInit): allow pic16 to emit static
2486         variables initial values to idata section,
2487         * src/SDCCicode.c (geniCodeCall): patch from ### to fix unreferenced
2488         variables in some functions. This utilizes parmBytes field of iCode
2489         structure to hold the offset of the variable in stack. (might be
2490         able to use the stack field too?)
2491         * applied patch from Raphael Neider # ### , # ###
2492         * src/pic16/glue.c (pic16emitRegularMap): fix to print static
2493         variable initial values in idata section,
2494         * src/pic16/ralloc.c (pic16_allocDirReg): don't allocate register
2495         for static variables with initial value
2496         * src/device/lib/pic16/libsdcc/float/ulong2fs.c (__ulong2fs):
2497         applied fix in while loop from Raphael Neider.
2498
2499 2004-12-19 Maarten Brock <sourceforge.brock AT dse.nl>
2500
2501         * src/ds390/gen.c (genCpl): fixed bit=~(char/bit) bugs, added warning
2502         * src/ds390/main.c (_ds390_regparm): don't pass bit params in registers
2503         * src/ds390/ralloc.c (serialRegAssign): spill bits
2504         * src/mcs51/gen.c (genCpl): fixed bit=~(char) bugs, added warning
2505         * support/Util/SDCCerr.c,
2506         * support/Util/SDCCerr.h: added warning W_COMPLEMENT for using bit=~(bit)
2507         * support/regression/tests/bitvars.c: added tests for bitwise complement(~)
2508         * support/regression/tests/bitwise.c: added test for bitwise complement(~)
2509
2510 2004-12-09 Maarten Brock <sourceforge.brock AT dse.nl>
2511
2512         * device/include/sdcc-lib.h: inserted LGPL, added includes
2513           asm/ds390/features.h and asm/mcs51/features.h
2514         * device/include/asm/default/features.h,
2515         * device/include/asm/gbz80/features.h,
2516         * device/include/asm/z80/features.h: added empty _AUTOMEM
2517           and _STATMEM
2518         * device/include/asm/ds390/features.h,
2519         * device/include/asm/mcs51/features.h: added files with defines for
2520           _AUTOMEM and _STATMEM indicating automatic and static storage class
2521         * device/lib/printf_large.c (_print_format): optimized & used _AUTOMEM
2522         * doc/sdccman.lyx: version 2.4.7, updated xstack documentation
2523         * src/SDCCicode.c (geniCodeCast),
2524         * src/SDCCsymt.c (compareType): allow cast of data-ptr to idata-ptr
2525         * src/SDCCloop.c (loopInduction): removed unused variable lr
2526         * src/SDCCopt.c (convilong, convertToFcall): moved "easy special case"
2527           to convertToFcall to include char modulo (RFE 1065037), added check
2528           if left operand is unsigned and use abs of literal value
2529         * src/SDCCpeeph.c (setFromConditionArgs): removed double quotes option
2530           as it doesn't work after conversion from peephole.def to peephole.rul
2531         * src/mcs51/gen.c (toBoolean): added check for size,
2532           (genModOneByte): optimized code for signed char modulo a literal
2533           power of 2 (thanks to Hubert Sack),
2534           (genRRC): removed unnecessary "clr c",
2535           (genRLC): replaced "add a,acc" with cheaper "rlc a"
2536         * src/mcs51/peeph.def: renamed 115 to 115.a, added rule 115.b: another
2537           jump optimization,
2538           swapped rules 256.c and 256.d,
2539           extended 256.d by using new multiple checks (thanks Erik),
2540           added rules 256.e and 256.f,
2541           updated rule 261.a and 261.b to new generated code
2542         * support/regression/tests/muldiv.c: added test div/mod by a power of 2
2543
2544 2004-12-07 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
2545
2546         * src/SDCCloop.c (basicInduction, loopInduction): fixed several
2547           induction related bugs, including first part of bug #1074377
2548
2549 2004-12-05 Vangelis Rokas <vrokas AT otenet.gr>
2550
2551         * applied patch from bug-report #1076292,
2552         * applied patches for genAnd and Goto-optimizations for Raphael
2553         Neider,
2554         * src/SDCCicode.c (printOperand): fixed !REGA source to compile and
2555         dump a less iCode information,
2556         * src/pic16/device.h (pic16_options_t): added field debgen,
2557         * src/pic16/gen.h: added macros DUMP_FUNCTION_ENTRY,
2558         DUMP_FUNCTION_EXIT, FENTRY, FENTRY2,
2559         * src/pic16/gen.c (my_powof2): renamed to pic16_my_powof2 and made
2560         puclic,
2561         * (various functions): added macros FENTRY and FENTRY2 to functions,
2562         to emit function prologue,
2563         * (various functions): fixed indentation,
2564         * (genNearPointerGet): fixed loading of FSR0,
2565         * (genPackBits): applied patch from Raphael Neider to fix updating
2566         of FSR0 and touching only the modified bits,
2567         * src/pic16/genarith.c (various functions): added macros FENTRY to
2568         emit function prologue in comments,
2569         * src/pic16/pcode.h: added functions debugf2, debugf3,
2570         * src/pic16/ralloc.c: partial fix for packForPush caused
2571         segmentation fault,
2572
2573 2004-12-04 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
2574
2575         * src/mcs51/peeph.def: added 261.a,b (16 bit rotate) by Stas Sergeev
2576           <stsp AT users.sourceforge.net> with reversed byte order
2577         * support/regression/tests/rotate.c: added (ds390 skips some tests)
2578
2579 2004-12-03 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
2580
2581         * src/z80/gen.c (genLeftShift, genRightShift): fixed second part of
2582           bug #1074377
2583         * src/hc08/gen.c (genrshFour, shiftRLong, shiftLLong),
2584         * src/mcs51/gen.c (shiftLLong): Fixed some shifting bugs Frieder found
2585
2586 2004-12-02 Slade Rich <slade_rich AT users.sourceforge.net>
2587
2588         * src/pic/pcode.c : fixed a problem where banksel was not being inserted.
2589
2590 2004-12-02 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
2591
2592         * src/SDCCpeeph.c (callFuncByName): support combined peephole rule
2593           conditions,
2594           (setFromConditionArgs): friendly operand parser for peephole rules,
2595           (operandBaseName, operandsNotRelated): new peephole condition
2596           "operandsNotRelated" -- similar to "operandsNotSame", but takes
2597           architecture specific register naming into account, handles n-way
2598           comparisons, and supports quoted literals
2599         * src/mcs51/peeph.def: restored rule 177.d with an extra condition
2600
2601 2004-12-02 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
2602
2603         * src/mcs51/peeph.def: fixed bug #1076940
2604
2605 2004-12-02 Slade Rich <slade_rich AT users.sourceforge.net>
2606
2607         * device/include/pic/pic16f877.h : added an include file for the PIC16F877 device.
2608
2609 2004-11-28 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
2610
2611         Adding support for replacing ljmps with sjmps in jumptables
2612         generated for switch statements. For now you need to set the
2613         environment variable SDCC_SJMP_JUMPTABLE to enable this.
2614         Now 4 algorithms for mcs51 jumptable generation are used:
2615         ljmp or sjmp jumptables for up to 16 cases, stack-pushing target
2616         addresses loaded pc-relative for up to 112 cases and stack-pushing
2617         target addresses loaded with offset from dptr for up to 256 cases.
2618
2619         * src/SDCCpeeph.c: added peephole conditional labelJTInRange
2620         * src/mcs51/main.c: adapted constants for switch table generation
2621         * src/mcs51/peeph.def: added 260.x for replacing ljmp with sjmp
2622
2623 2004-11-26 Maarten Brock <sourceforge.brock AT dse.nl>
2624
2625         * device/lib/printf_large.c (_print_format): fixed bug 1073386
2626         * support/regression/tests/bug1057979.c: added test for bug 1073386
2627
2628 2004-11-25 Vangelis Rokas <vrokas AT otenet.gr>
2629
2630         * src/pic16/pcode.c: fixed bug which may produce error in non-GNU
2631         compilers
2632
2633 2004-11-25 Vangelis Rokas <vrokas AT otenet.gr>
2634
2635         * src/pic16/device.h,
2636         * src/pic16/genarith.c,
2637         * src/pic16/glue.c,
2638         * src/pic16/main.c,
2639         * src/pic16/pcode.c: applied patches #1068154 and #1070213
2640
2641 2004-11-24 Vangelis Rokas <vrokas AT otenet.gr>
2642
2643         Large cummulative patch for pic16 port.
2644         * device/lib/pic16/gstack.h: NEW, user can specify its own handler
2645         to call when a stack overflow occurs,
2646         * (malloc.h): added CVS Id tag,
2647         * (pic18f{242,252,442,452}.h): added T0CONbits structure and
2648         variable,
2649         * added libc directory. The current version of LibC contains string
2650         functions, ctype functions and macros and some functions of the
2651         stdlib set (like malloc/free/atof/atoi etc...). All functions are to
2652         be extensively tested in the future. Standard disclaimer here.
2653         Library is not automatically build yet. But one can build it by
2654         invoking 'make' inside the libc directory.
2655         * added ADC library under libio. Preliminary version yet.
2656
2657         * src/pic16/gen.h: added emitTOGC macro, to toggle Carry flag,
2658         * src/pic16/gen.c (aopForRemat): asmop size is filled by
2659         aopForRemat() now and not by pic16_aopOp(),
2660         * (pic16_popGetTempReg): removed warning messgae when allocating
2661         temporary registers, its a buggy feature and will be removed,
2662         * (pic16_popGet): set register instance field in AOP_CRY,
2663         * (pic16_outBitC): fixed for results in size greater than 1,
2664         * (genUminusFloat): fixed for pic16, ported code from mcs51,
2665         * (pic16_storeForReturn): optimized return of 0,
2666         * (genCmp): experimental code for new genCmp which uses PIC18's
2667         special compare&skip instructions. Initial tests fail some times
2668         with variables grater than 1 byte in size, so new code is disabled,
2669         * (genUnpackBits, genPackBits): more optimizations in reading/writing,
2670         a single bit,
2671         * (genCast): began a fix to optimize the casting of a bit to another
2672         bit, now assigning a bitfield to another bitfield will fail, sorry,
2673         * src/pic16/main.c: disabled the use of lr-support feature,
2674         * src/pic16/pcode.h: renamed PCASMDIR to PCAD,
2675         * added some function prototypes, added function _debugf prototype,
2676         * src/pic16/pcode.c: (pic16_get_op): fixed emitting operands of register
2677         bits with offset (case PO_GPR_BIT),
2678         * (genericPrint): don't emit INFO pcode when --pcode-verbose not in
2679         command line,
2680         * (isBankInstruction): modified to return 0 for no banking instruction,
2681         and 1 for banking instruction,
2682         * (pic16_isPCinFlow): check for PCAD (assembler directives) too,
2683         caused stop processing pCodes after a inline assembly block,
2684         * (pic16_popCopyGPR2Bit): updated to match bitfields with offset,
2685         * src/pic16/pcoderegs.c: fixed a bug with eliminating some temporary
2686         registers when it shouldn't,
2687         * src/pic16/ralloc.c (allocReg): add preliminary support for
2688         supporting a limited set of temporary registers,
2689
2690 2004-11-23 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
2691
2692         * src/hc08/gen.c (genAssign, genPointerGetSetOfs, genDataPointerGet,
2693           genDataPointerSet): ensure assignments always copy in MSB to LSB
2694           order,
2695           (loadRegFromAop): recognize CLRH optimization,
2696           (genFunction): optimize RECEIVE iCodes in reentrant functions
2697
2698 2004-11-20 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
2699
2700         * src/SDCCmain.c (parseCmdLine, optionsTable[]): fixed bug with
2701           --out-fmt-s19 turning into --out-fmt-elf if s19 was already
2702           selected.
2703         * src/SDCCmain.c (linkEdit): don't define SSEG for HC08
2704         * src/hc08/main.c (_hc08_setDefaultOptions): default xdata to be
2705           contiguous with data
2706
2707 2004-11-19 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
2708
2709         * device/lib/_gptrget.c (_gptrget),
2710         * device/lib/_gptrgetc.c (_gptrgetc),
2711         * device/lib/_gptrput.c (_gptrput): _naked allows to use ret
2712           instead of sjmp to ret
2713         * src/mcs51/peeph.def: added peepholes 3.d-g and 177.g,h provided
2714           by Hubert Sack <hsack2002 AT arcor.de> in RFE #1067986, thanks
2715
2716 2004-11-18 Maarten Brock <sourceforge.brock AT dse.nl>
2717
2718         * .version: bumped version to 2.4.7
2719         * device/lib/_gptrget.c (_gptrget): is now _naked
2720         * device/lib/_gptrgetc.c (_gptrgetc): is now _naked
2721         * device/lib/_gptrput.c (_gptrput): is now _naked
2722         * src/SDCCast.c (createBlock): removed ridiculous self-assignment,
2723           (createFunction): fixed xstack
2724         * src/SDCCglue.c (emitMaps): set allocation required for bit area
2725         * src/SDCCicode.c (geniCodeCast): don't change SPEC_OCLS for literal
2726           or bit either,
2727           (geniCodeCritical): store original interrupt state in an iTemp bit
2728           var unless stack-auto
2729         * src/SDCCicode.h: added CRITICAL and ENDCRITICAL to SKIP_IC2
2730         * src/SDCCmain.c (setIncludePath): added include/target to search path
2731         * src/SDCCmem.c (allocParms): store bit vars in bit space, not overlay
2732         * src/SDCCsymt.c (checkFunction): don't check regbank for isr's against
2733           prototype,
2734           (processFuncArgs): put bit vars in bit area
2735         * src/mcs51/gen.c (saveRegisters, unsaveRegisters, genXpush, saveRBank,
2736           unsaveRBank): fixed xstack,
2737           (genFunction): bugfix: replaced (global!) reentrant with fReentrant,
2738           (genFunction, genEndFunction): fixed xstack,
2739           (genAssign): optimization don't walk backwards through mem
2740         * src/mcs51/main.c (_mcs51_regparm): don't pass bit params in registers
2741         * src/mcs51/ralloc.c (createStackSpil): spill bits to bit area
2742         * support/regression/Makefile: also make library (for stack-auto) when
2743           making "all" and added "test-mcs51-xstack-auto"
2744         * support/regression/fwk/lib/testfwk.c: added T2_isr prototype for mcs51
2745         * support/regression/ports/mcs51/T2_isr.c: added this file as a stub
2746         * support/regression/ports/mcs51/fwk.lib: added to link T2_isr stub
2747         * support/regression/ports/mcs51/spec.mk: added rules for fwk.lib
2748         * support/regression/ports/mcs51-stack-auto/spec.mk: replaced
2749           make-library by MAKE_LIBRARY
2750         * support/regression/ports/mcs51-xstack-auto/spec.mk: file added to run
2751           regression tests for xstack
2752         * support/regression/tests/bitvars.c: test for bit vars (bug 938782)
2753         * support/regression/tests/critical.c: test for critical on mcs51
2754
2755 2004-11-18 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
2756
2757         * support/regression/ports/ucz80/spec.mk: use include and lib files from
2758           built version of sdcc instead of installed version
2759
2760 2004-11-14 Maarten Brock <sourceforge.brock AT dse.nl>
2761
2762         * src/mcs51/gen.c (toBoolean): fixed bug 1065458
2763         * device/lib/Makefile.in: z80 uses printf_large.c, sprintf.c and
2764           vprintf.c now
2765         * device/lib/printf_large.c (calculate_digit): fixed bug 1057979
2766         * device/lib/z80/Makefile: don't use printf.c as it fails bug 1057979
2767           WARNING: remove device/lib/build/z80/printf.o by hand when
2768           updating from previous build!
2769         * device/lib/z80/printf.c: updated comment
2770         * support/regression/tests/bug1057979.c: test all ports now
2771         * support/regression/tests/bug1065458.c: file added
2772
2773 2004-11-12 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
2774
2775         * src/z80/gen.c (genFunction, genEndFunction): avoided generating
2776           *_start and *_end symbols for static functions
2777
2778 2004-11-11 Maarten Brock <sourceforge.brock AT dse.nl>
2779
2780         * src/SDCCmain.c (linkEdit): don't suppress crt0 if --nostdlib is used
2781           and search crt0.o in all library paths,
2782           (setIncludePath): proper handling of --nostdinc,
2783           (setLibPath): proper handling of --nostdlib
2784         * support/regression/Makefile,
2785         * support/regression/ports/ds390/spec.mk,
2786         * support/regression/ports/gbz80/spec.mk,
2787         * support/regression/ports/hc08/spec.mk,
2788         * support/regression/ports/mcs51/spec.mk,
2789         * support/regression/ports/mcs51-large/spec.mk,
2790         * support/regression/ports/mcs51-stack-auto/spec.mk,
2791         * support/regression/ports/z80/spec.mk: use include and lib files from
2792           built version of sdcc instead of installed version
2793         * doc/sdccman.lyx: fixed typo in --nostdinc
2794
2795 2004-11-10 Slade Rich <slade_rich AT users.sourceforge.net>
2796
2797         * src/pic/pcode.c,
2798         * src/pic/device.c,
2799         * src/pic/ralloc.c,
2800         * src/pic/gen.c : added support to generate code for struct bit fields.
2801
2802 2004-11-06 Maarten Brock <sourceforge.brock AT dse.nl>
2803
2804         * as/xa51/xa_version.h,
2805         * device/include/errno.h,
2806         * device/include/regc515c.h,
2807         * device/lib/_itoa.c,
2808         * device/lib/_ltoa.c,
2809         * device/lib/ser_ir_cts_rts.c,
2810         * sim/ucsim/xa.src/glob.cc,
2811         * sim/ucsim/xa.src/inst_gen.cc,
2812         * sim/ucsim/xa.src/xa_bit.cc,
2813         * sim/ucsim/xa.src/xa_sfr.cc,
2814         * sim/ucsim/z80.src/inst_dd.cc,
2815         * sim/ucsim/z80.src/inst_fdcb.cc,
2816         * support/scripts/keil2sdcc.pl,
2817         * src/pic16/pic16.dsp,
2818         * src/pic16/pic16a.dsp: corrected cvs line endings
2819         * device/lib/printf_large.c: fixed bug 1057979
2820         * src/pic16/gen.c: fixed non-C standard code
2821         * src/SDCCmain.c: made --pack-iram default, added --no-pack-iram
2822         * src/SDCCglobl.h: changed pack_iram to no_pack_iram
2823         * support/regression/ports/mcs51/support.c: reload T1 asap
2824         * doc/sdccman.lyx: updated for options --pack-iram and --no-pack-iram,
2825           pdata use and clear idata startup behaviour
2826         * support/regression/tests/bug1057979.c: added
2827
2828 2004-11-04 Maarten Brock <sourceforge.brock AT dse.nl>
2829
2830         * device/examples/ds390/ow390/ad26.h,
2831         * device/examples/ds390/ow390/cnt1d.h,
2832         * device/examples/ds390/ow390/crcutil.c,
2833         * device/examples/ds390/ow390/ownet.h,
2834         * device/examples/ds390/ow390/owsesu.c,
2835         * device/examples/ds390/ow390/swt12.h,
2836         * device/examples/ds390/ow390/swtoper.c,
2837         * device/examples/ds390/ow390/temp10.h,
2838         * device/examples/ds390/ow390/thermodl.c,
2839         * device/examples/ds390/tinitalk/tinitalk.dsp,
2840         * device/examples/ds390/tinitalk/tinitalk.dsw,
2841         * device/examples/mcs51/clock/hw.h,
2842         * device/examples/mcs51/simple2/go.bat,
2843         * device/examples/serialcomm/windows/serial.h,
2844         * device/examples/xa51/dummy.c,
2845         * device/examples/xa51/hello.c,
2846         * device/include/80c51xa.h,
2847         * device/include/at89x051.h: corrected cvs line endings
2848
2849 2004-11-04 Vangelis Rokas <vrokas AT otenet.gr>
2850
2851         * src/pic16/main.c (options): added command line --gstack, to trace
2852         stack over/under flows,
2853         * added pragma 'wparam' to allow passing first byte of function
2854         parameters via WREG, syntax is #pragma wparam my_function[, func2...]
2855         * src/pic16/gen.c (pic16_testStackOverflow): function which emits a
2856         call to __gstack_test function and sets up the symbol as extern,
2857         * (pic16_pushpCodeOp, pic16_poppCodeOp, pushw, pushaop, popaopidx,
2858         * popaop): added call to pic16_testStackOverflow,
2859         * (wParamCmp, inWparamList): NEW, test existence of a symbol in
2860         wparamList list,
2861         * (genCall, genPcall): now all parameters are passed via stack
2862         except in functions that are pass to wparam pragma in which WREG is
2863         used too,
2864         * (genPcall): REENTRANT flag is checked to see if variable prototype
2865         contains reentrant keyword, don't call a non-reentrant function, via
2866         a reentrant function pointer or vice versa, functions are never
2867         passed via WREG,
2868         * (genJumpTab): applied patch from bug #1057478 by R.Neider and
2869         D.Winkler,
2870         * src/pic16/glue.c (pic16emitRegularMap): fixed bug which caused a
2871         SIGSEGV when accessing a NULL register stucture,
2872         * (pic16_printGPointerType): modified to handle UPPER modifier for
2873         function initializers, changed prototype of function to simpler one,
2874         * (pic16_printIvalFuncPtr): check to see if function is already
2875         added in externs list,
2876         * src/pic16/pcoderegs.c (pCodeOptime2pCodes): fixed bug which
2877         optimized a move from W to SFR with a move to the same register
2878         later after a CALL,
2879         * device/lib/pic16/debug: NEW directory, contains debug features
2880         which are enabled when linking with libdebug.lib, currently command
2881         line option --gstack enables stack pointer tracing for over/under
2882         flow, corresponding sources are in debug/gstack
2883
2884 2004-10-30 Vangelis Rokas <vrokas AT otenet.gr>
2885
2886         * doc/sdccman.lyx: updated SDCC version,
2887         * (PIC16 port): update list of command line options,
2888         * src/pic16/device.h (structure pic16_options_t): added field gstack
2889         to enable stack overflow tracing on push/pops,
2890         * src/pic16/device.c (statistics structure): added statistics
2891         structure,
2892         * (pic16_dump_access, pic16_dump_usection, pic16_dump_gsection,
2893         pic16_dump_int_registers): increase statistics counters for each
2894         * variable which is encountered
2895         * (pic16_dump_usection): emit each .udata variable to its own udata
2896         section,
2897         * src/pic16/gen.c (assignResultValue, genCall, genPcall, genFunction):
2898         when macro USE_WREG_IN_FUNC_PARAMS is set to 0 pass all function
2899         parameters via stack, otherwise use old scheme,
2900         * src/pic16/glue.c (pic16_emitStatistics): dump statistics in
2901         assembler output file,
2902         * src/pic16/main.c: added command line options --gstack to enable
2903         push/pop tracing for stack overflow,
2904         * src/pic16/pcode.c (all pCodeInstruction records for PIC18F
2905         instructions): added size of each instruction,
2906         * (pic16_countInstruction): estimate size of instructions in
2907         the_pFile list, inline assembly blocks are not counted,
2908         * (pic16_FixRegisterBanking): trace previous register usage, when
2909         banksel optimizations is greater than 0, don't emit a redudant
2910         banksel directive,
2911
2912 2004-10-26 Slade Rich <slade_rich AT users.sourceforge.net>
2913
2914         * src/pic/ralloc.c : fixed inefficient code produced when compiling a complimented bit operation.
2915         * src/pic16/ralloc.c : applied same fix for pic16.
2916         * src/pic/gen.c : tidied it up a little.
2917
2918 2004-10-25 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
2919
2920         * src/mcs51/peeph.def: disabled 259.a,b for removing redundant ret,
2921         thanks to Martin Helmling for reporting (mail on sdcc-devel 2004-10-25)
2922
2923 2004-10-22 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
2924
2925         * src/SDCCast.c (reverseParms): fixed bug #1040577 (part 2)
2926
2927 2004-10-22 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
2928
2929         * device/lib/ser_ir_cts_rts.c: integer promotion caused a call to the
2930         non-reentrant function __modsint in the interrupt function (thus
2931         corrupting math operations during serial I/O)
2932         * device/lib/ser_ir.c: as above, changed buffersize
2933         * src/mcs51/peeph.def: added 259.a,b for removing redundant ret,
2934         256.c,d for zeroing
2935         * doc/Makefile: added option -t for rsync
2936
2937 2004-10-22 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
2938
2939         * src/SDCCast.h (struct ast),
2940         * src/SDCCast.c (reverseParms, copyAst): fixed bug #1040577 (part 1)
2941
2942 2004-10-20 Borut Razem <borut.razem AT siol.net>
2943
2944         * support/scripts/sdcc.nsi: added include/pic16/*.h to the setup
2945         package
2946
2947 2004-10-20 Vangelis Rokas <vrokas AT otenet.gr>
2948
2949         * device/lib/pic16/libsdcc/Makefile: added lregs directory in
2950         makefile targets,
2951         * device/lib/pic16/libsdcc/lregs/{Makefile,lrst.c,lrrest.c}: NEW
2952         support functions to replace long sequences of MOVFF's from access
2953         bank registers to stack and vice versa,
2954         * src/pic16/device.h: added new field opt_flags, where optimization
2955         flags can be set to enable certain features,
2956         * src/pic16/gen.c (pic16_emitpinfo): NEW to add PC_INFO pCode in
2957         * pBlock, (genFunction, genEndFunction): surroung loop for
2958         saving/loading used registers in stack with PC_INFO pCodes,
2959         INF_LREGS. Code in between can then be optimized by pCode optimizer
2960         to support function calls,
2961         * (genDataPointerSet): fixed bug which loaded float fields in
2962         structures with corrupt data,
2963         * src/pic16/genutils.c (debugf, _debugf): macro/function which emits
2964         in a standard way debug info on stderr. Feature used for developing
2965         and debugging only,
2966         * src/pic16/glue.c (pic16glue): reformatted, deleted some old and
2967         obsolete chunks of code,
2968         * if optimization flag OF_LR_SUPPORT was set, call pic16_OptimizeLocalRegs,
2969         * src/pic16/main.c (_pic16_parseOptions): added handler for --flr-support,
2970         * pic16/src/pcode.c (pic16_newpCodeInfo,
2971         * (pic16_newpCodeOpLocalRegs),
2972         * (pic16_convertLocalRegs2Support): NEW, to support new optimization
2973         feature,
2974         * (pic16_pCodeConstString): printing of the initial value of a
2975         symbol as a comment is inhibited since parsing was already done by
2976         copyStr and output is corrupt,
2977         * (pic16_pCode2str, genericPrint): handle PC_INFO pCode,
2978
2979 2004-10-20 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
2980
2981         * src/mcs51/ralloc.c (packRegisters): fixed bug #1044601
2982
2983 2004-10-19 Maarten Brock <sourceforge.brock AT dse.nl>
2984
2985         * as/mcs51/lkarea.c: removed old K&R style,
2986           (lnksect): changed check on boundary error,
2987           (lnksect2): changed check on boundary error,
2988           (lnksect2): extend XSTK to end of page if size = 1
2989         * as/mcs51/lkmain.c: removed old K&R style,
2990           (Areas51): create l_IRAM symbol
2991         * as/mcs51/lkmem.c (summary2): added report on PSEG and XSTK
2992         * device/lib/Makefile.in: renamed model-mcs51-reentrant to
2993           model-mcs51-stack-auto, added model-mcs51-xstack-auto
2994         * device/lib/_mullong.c: added version to be compiled with xstack
2995         * device/lib/mcs51/crtclear.asm: clear only upto --iram-size
2996         * device/lib/mcs51/crtxclear.asm: clear pdata as well
2997         * device/lib/mcs51/crtxstack.asm: fixed comment
2998         * src/SDCCglue.c: maxInterrupts defaults to 0,
2999           (emitMaps): added pdata,
3000           (createInterruptVect): (re)moved default,
3001           (glue): added pdata,
3002           (glue): moved __start__xstack to XSTK with default size 1
3003         * src/SDCCmain.c (parseCmdLine): automatically set options.intlong_rent
3004           and options.float_rent when options.stackAuto is set,
3005           (linkEdit): only write XDATA_NAME if provided on command line
3006         * src/SDCCmem.h,
3007         * src/SDCCmem.c: added pdata
3008         * src/port.h: added pdata_name to PORT
3009         * src/mcs51/gen.c (toBoolean): fixed for Acc use of aopGet,
3010           (saveRegisters, unsaveRegisters): removed usage of B,
3011           (genMinus): fixed accumulator clash,
3012           (genJumpTab): added comment, this needs another look
3013         * src/mcs51/gen.c: added check for "B in use" paranoia,
3014           added pushB() and popB()
3015         * src/mcs51/peeph.def: restart after 177.c so 177.a can get a second
3016           chance
3017         * src/avr/main.c,
3018         * src/ds390/main.c,
3019         * src/hc08/main.c,
3020         * src/mcs51/main.c,
3021         * src/pic/main.c,
3022         * src/pic16/main.c,
3023         * src/xa51/main.c,
3024         * src/z80/main.c: (reset_regparms) made void parameter explicit and
3025           added PSEG (PAG,XDATA) or NULL to port specifier
3026         * src/ds390/main.c (_ds390_genIVT): moved implemented default in here
3027         * src/mcs51/main.c (_mcs51_genIVT): moved implemented default in here,
3028           (_mcs51_genInitStartup): removed __start__xstack equ,
3029           (mcs51_port): moved xstack from XSEG (XDATA) to XSTK (PAG,XDATA)
3030         * src/pic16/device.c (pic16_dump_usection, pic16_dump_isection),
3031         * src/z80/gen.c (_rleAppend): fixed warnings
3032         * support/regression/tests/zeropad.c: added pdata test
3033         * .version: bumped to 2.4.6
3034
3035 2004-10-17 Borut Razem <borut.razem AT siol.net>
3036
3037         * support/scripts/sdcc.nsi: cross compiling of WIN32 setup.exe on Linux
3038         as a part of nightly build
3039
3040 2004-10-16 Vangelis Rokas <vrokas AT otenet.gr>
3041
3042         * src/pic16/gen.c (struct _G): added field useWreg, is set to 1 when
3043         WREG holds the first byte function parameters,
3044         * (aopForSym): take special case for symbols which are in FARSPACE
3045         but in CODESPACE too,
3046         * (assignResultValue): modified to take into account _G.useWreg,
3047         * (genCall): don't use wreg for parameter passing when function is
3048         declared as reentrant, too, added optimization INCF to stack
3049         pointer when stack parameter count is 1,
3050         * (genFunction, genEndFunction): refurnished and fixed to not using
3051         wreg for passing parameters when function has varargs or is
3052         reentrant, fixed bug with symbol name compare for generating
3053         functions in absolute address,
3054         * (pic16_storeForReturn): refurnished,
3055         * (genCmp): began writing a new version of the function, not ready
3056         yet, therefore it is disabled,
3057         * (genAssign): do not read code memory when assigning a function to
3058         a pointer function,
3059         * src/pic16/glue.c (pic16emitStaticSeg): abSym->name is defined an
3060         array of characters, not pointer,
3061         * (pic16initialComments): in debug mode emit an .ident directive for
3062         the assembler,
3063         * (_process_pragma): emit a new warning type (internal to pic16)
3064         when setting stack to default length, emit a similar warning when
3065         placing a function at absolute address and address is not word aligned
3066         * (_pic16_parseOptions): added 'return TRUE' statement,
3067         * (_pic16_linkEdit): if compiling a source, then add the source's
3068         file object, first in the list of objects to link,
3069
3070 2004-10-13 Slade Rich <slade_rich AT users.sourceforge.net>
3071
3072         * src/pic/pcoderegs.c : increased count on regUsedinRange to prevent unnecessary warning.
3073         * src/pic/main.c : removed VC warning.
3074         * src/pic/gen.c : changed comment.
3075
3076 2004-10-12 Vangelis Rokas <vrokas AT otenet.gr>
3077
3078         * device/lib/pic16/libsdcc/gptr/gptrput[234].c: an external
3079         reference to a deprecated symbol _GPTRREG was causing failure to
3080         link. Thanks G. M. Gallant for the info.
3081
3082 2004-10-12 Slade Rich <slade_rich AT users.sourceforge.net>
3083
3084         * src/pic/pcode.c : Applied a code patch supplied by Paul Ashmore in
3085         comments for Bugs item #954788.
3086
3087 2004-10-10 Vangelis Rokas <vrokas AT otenet.gr>
3088
3089         * src/pic16/device.c (pic16_dump_gsection,
3090         * pic16_groupRegistersInSection): handle symbols declared to be in
3091         access bank differently,
3092         * src/pic16/gen.c (struct _G): added field resDirect,
3093         * (aopForSym): if symbol on stack and iCode is '=' and result exists,
3094         send values read from stack directly to result and don't allocate
3095         temporary values,
3096         * (pic16_sameRegs): fixed bug that allowed MOVFF to move between
3097         same registers,
3098         * (pic16_sameRegsOfs): NEW,
3099         * (freeAsmop): if _G.resDirect is set then do not mark registers as
3100         free because they were not allocated from temporary pool,
3101         * pic16_popRegFromString): workaround to fix a problem with
3102         allocating variables twice or never,
3103         * (genGenPointerGet): using PRODL instead of FSR0H,
3104         * (genGenPointerSet): using POSTDEC1 (that is a stack location)
3105         instead of FSR0H,
3106         * (genAssign): take advantage of the _G.resDirect flag,
3107         * (genCast): around line 11844, use mov2f instead of directly
3108         MOVFF'ing between operands to account for literal values,
3109         * src/pic16/genutils.c: some new debug functions for gpsim have been
3110         added,
3111         * src/pic16/glue.c (pic16_printIvalType): fixed bug that initialized
3112         float with integer part only,
3113         * src/pic16/main.c (_process_pragma): handle pragma udata access to
3114         place variables in access bank
3115         * device/lib/pic16/libsdcc/gptr/gptr*.c: using BRA instead of GOTO,
3116         updated sources to reflect recent changes in gen.c
3117
3118 2004-10-06 Vangelis Rokas <vrokas AT otenet.gr>
3119
3120         * device/lib/pic16/libsdcc/Makefile.rules: fixed bug concerning
3121         sources that searched for headers in installation path, now the
3122         device/include/pic16 is used,
3123         * src/pic16/glue.c (pic16glue),
3124         * src/pic16/pcode.c (pCode2str, genericPrint): don't print .file or
3125         .line directives if not in debug mode, this suppresses assembler's
3126         warnings for ignored directives
3127
3128 2004-10-05 Maarten Brock <sourceforge.brock AT dse.nl>
3129
3130         * src/port.h: made reset_regparms prototype void parameter explicit.
3131         * src/SDCCsymt.c (processFuncArgs): removed argument "func".
3132         * src/mcs51/ralloc.c (packRegisters): new fix for bugs 898889 & 979599.
3133         * doc/sdccman.lyx: documented warning disabling and how to use
3134           printf_large to make it print floats.
3135         * device/include/stdbool.h: NEW
3136         * device/lib/_atof.c,
3137         * device/lib/_divuint.c,
3138         * device/lib/_divulong.c,
3139         * device/lib/expf.c,
3140         * device/lib/printf_large.c,
3141         * device/lib/sincosf.c,
3142         * device/lib/sincoshf.c: used stdbool.h, all compile with stack-auto now
3143         * device/lib/Makefile.in: added target for model-mcs51-reentrant to build
3144           a completely reentrant lib.
3145
3146 2004-10-05 Vangelis Rokas <vrokas AT otenet.gr>
3147
3148         * device/lib/pic16/libsdcc/gptr/gptr*.c: added return statements
3149         * device/include/pic16/stdio.h: fixed bug with colon
3150
3151 2004-10-03 Vangelis Rokas <vrokas AT otenet.gr>
3152
3153         * device/include/pic16/stdio.h,
3154         * device/include/pic16/stdlib.h,
3155         * device/include/pic16/math.h: NEW
3156         * device/lib/pic16/libsdcc/gptr/*.c (gptrget*, gptrput*): functions
3157         declared as _naked to reduce overhead
3158         * device/lib/Makefile.in (target port-specific-objects-pic16):
3159         changed * to *.* so to ignore the CVS directory,
3160         * src/pic16/gen.c (pic16_freeAsmop): added code to store result of
3161         stacked variables back in stack,
3162         * (genEndFunction): fixed bug reported by G.M. Gallant with stack
3163         corruption
3164
3165 2004-10-01 Vangelis Rokas <vrokas AT otenet.gr>
3166
3167         * .version: bumped version number to 2.4.5
3168         * support/Util/SDCCerr.h: added warning W_POSSBUG2.
3169         * support/Util/SDCCerr.c (messages structure): added entry for
3170         W_POSSBUG2
3171
3172         Large cumulative patch for pic16 port and libraries.
3173         * device/include/pic16/sdcc-lib.h,
3174         * device/include/pic16/stdarg.h,
3175         * device/include/asm/pic16/features.h,
3176         * device/include/lib/pic16/libsdcc/gptr/{*.c, Makefile}: NEW,
3177         * device/include/pic16/float.h: changes reentrant keyword with
3178         _FS_REENTRANT, added prototype for __fsneq, included sdcc-lib.h
3179         * device/lib/pic16/libsdcc/Makefile: added target directory gptr,
3180         updated target build-libraries to include objects from gptr,
3181         * device/lib/pic16/libsdcc/{char,int,long}/*.c: added macro
3182         _IL_REENTRANT to all function headings, included sdcc-lib.h header,
3183         * device/lib/pic16/libsdcc/float/*.c: added macro _FS_REENTRANT to
3184         all function headings,
3185         * src/SDCCmain.c: added global parameter userIncDirsSet,
3186         * (parseCmdLine): when option -I is encountered add directory to
3187         userIncDirsSet too,
3188         * src/version.awk: added space between control and long,
3189         * src/pic16/NOTES: added some notes for the port,
3190         * src/pic16/gen.c: added prototype for mov2fp function,
3191         * (fReturnpic16[]): properly named return value registers,
3192         * (_G structure): added fields stackRegSet, fregsUsed, stack_lat,
3193         * (aopForSym): added code to handle symbols with onStack flag set,
3194         symbols onStack are allocated PTRSIZE bytes,
3195         * (aopFreeAsmop): handles special case where asmops are stack objects,
3196         * (aopGet, pic16_popGet): adde cod to handle new asmop AOP_STA,
3197         * (pic16_popGetTempReg, pic16_popGetTempRegCond, pic16_popReleaseTempReg):
3198         added argument lock to trace flaws in allocating temporary registers
3199         when developing port,
3200         * (pic16_popGetLit, pic16_popGetLit2): changed lit from unsigned to signed
3201         * (pic16_popRegFromString): reenabled allocating a direct register
3202         from string,
3203         * (assignResultValue): various beautifications,
3204         * fixed bug #1037717 (patch from R. Neider & D. Wrinkler) with mistaken
3205         referenced function argument,
3206         * (genIpush): reenabled to allow stacked arguments, handles only
3207         ic->parmPush iCodes,
3208         * (genCall, genPcall): major changes to allow for variable argument
3209         functions, fixed a bug with falsely restoring stack pointer after
3210         returning from call,
3211         * (genFunction): pending code for critical function,
3212         * (shiftR1Left2ResultSigned, shiftR1Left2Result, shiftL2Left2Result,
3213         * (shiftR2Left2Result, shiftLLong) applied patch #1032155 from R.Neider,
3214         * (genNearPointerGet): fixed bug with indirect reading, was always
3215         reading from INDF0
3216         * (genGenPointerGet, genGenPointerSet): rewrote to support generic
3217         pointers,
3218         * (genAddrOf): rewrote code to take address of a stacked function parameter
3219         * (genCast): fixed casting to generic pointer type,
3220         * src/pic16/gen.h: added AOP_STA,
3221         * (struct asmop): added field stk,
3222         * src/pic16/genarith.c (pic16_AopType): handle AOP_STA,
3223         * (pic16_genPlusIncr): changed emitSKPNZ to emitSKPNZ,
3224         * (pic16_genAddLit, pic16_genPlus): applied patch #1034042 by tecodev,
3225         * (pic16_genMinus): fixed bug #1035119 with patch submitted by tecodev,
3226         * src/pic16/genutils.c (pic16_genNot): removed symbol *tlbl,
3227         * src/pic16/glue.c (pic16_printGPPointerType): fixed to support new
3228         generic pointers,
3229         * src/pic16/main.c (_pic16_initPaths): ignores default SDCC include
3230         and library paths,
3231         * (pic16_port structure): generic pointer size is set to 3,
3232         * src/pic16/pcode.c (pic16_newpCodeOpLit): correctly print literal integer,
3233         * (insertBankSwitch): cast to (char *) to prevent 64bit CPUs'
3234         compiler warning,
3235         * src/pic16/ralloc.c (allocReg): prevent allocating register when
3236         operand is an iTemp,
3237
3238 2004-09-24 Martin Helmling <mh AT octo-soft.de>
3239
3240         * debugger/mcs51/cmd.c: set PC if a symbol at pc reg is set
3241         * debugger/mcs51/simi.c: addapt new syntax of s51
3242
3243 2004-09-23 Vangelis Rokas <vrokas AT otenet.gr>
3244
3245         * src/pic16/genutils.c (pic16_genNot): fixed bug #1032265,
3246         * src/pic16/pcode.c: commented out some calls to free() in order to
3247         fix bug #989576,
3248
3249 2004-09-23 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
3250
3251         * src/SDCCicode.h,
3252         * src/SDCCicode.c (isiCodeInFunctionCall),
3253         * src/avr/ralloc.c (selectSpil),
3254         * src/pic/ralloc.c (selectSpil),
3255         * src/pic16/ralloc.c (selectSpil),
3256         * src/ds390/ralloc.c (selectSpil),
3257         * src/hc08/ralloc.c (selectSpil),
3258         * src/xa51/ralloc.c (selectSpil),
3259         * src/mcs51/ralloc.c (selectSpil): Don't use remainSpil to spill to the
3260         stack in the middle of a function call sequence (fixes bug #1020268)
3261         * src/SDCCicode.c (geniCodeJumpTable): fixed error in computing the
3262         costs associated with the minimum switch case.
3263
3264 2004-09-19 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
3265
3266         * src/SDCC.lex: fixed bug #1030549
3267
3268 2004-09-19 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
3269
3270         * src/SDCCcse.h (struct cseDef),
3271         * src/SDCCcse.c (cseBBlock, newCseDef, ifFromAddrTaken): purge CSEs
3272         over a function call if the CSE is derived from a symbol whose
3273         address has been taken (fixes bug #1029883)
3274         * support/regression/tests/bug-1029883: a new regression test for
3275         this bug
3276
3277 2004-09-18 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
3278
3279         * src/hc08/gen.c (emitinline): fixed bug #1029778
3280         * src/SDCC.y (assignment_expr): fixed the grammer so that assignment
3281         to a cast object is no longer a syntax error ("fixes" bug #1030006,
3282         and starts toward RFE #905167)
3283
3284 2004-09-17 Vangelis Rokas <vrokas AT otenet.gr>
3285
3286         * src/pic16/gen.c (mov2f): New function to move an operand to
3287         another without considering if it is a literal or a register,
3288         * (pic16_sameRegs): don't check if they are both AOP_REG,
3289         * (AccRsh): removed andmask=0 lines,
3290         * (genLeftShift): duplicated to be improved in future versions,
3291         * src/pic16/main.c (_process_pragma): emit stack default size in hex,
3292         * src/pic16/pcode.c: added POC_INFSNZW, updated inverted_op fields
3293         in POC_INCFSZ, POC_INCFSZW, POC_INFSNZ,
3294         * (pic16initMnemonics): added initialization for POC_INFSNZW,
3295         * (insertBankSwitch): fixed inserting banksel directives algorithm
3296         for instructions that follow a skip instruction, this fixes a report
3297         for broken subtraction code generation,
3298         * src/pic16/ralloc.c (deassignLRs): do not free register if current
3299         iCode is a left op, just in case result and right share the same
3300         registers
3301
3302 2004-09-16 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
3303
3304         * src/hc08/main.c,
3305         * src/hc08/gen.c (genJumpTable): more efficient jump table, supports
3306         preservation of HX
3307         * src/hc08/gen.c (pullRegs): fixed order of HX & XA pairs
3308         * src/mcs51/ralloc.c (packRegisters): removed the patch applied
3309         on 2004-09-12; it was buggy
3310
3311 2004-09-15 Bernhard Held <bernhard AT bernhardheld.de>
3312
3313         * src/SDCCsymt.h: removed RESULT_CHECK
3314         * src/SDCCast.c,
3315         * src/SDCCglue.c,
3316         * src/SDCCval.c,
3317         * src/pic/glue.c,
3318         * src/pic16/glue.c: replaced RESULT_CHECK with RESULT_TYPE_NONE
3319
3320 2004-09-15 Vangelis Rokas <vrokas AT otenet.gr>
3321
3322         * src/SDCCicode.c (piCode): applied patch from Raphael Neider,
3323         * src/pic16/device.c (pic16_assignConfigWordValues): wrong
3324         configuration values no more rejected by compiler, they are assigned
3325         to configuration registers with a warning message instead,
3326         * src/pic16/glue.c (pic16_emitConfigRegs): added +1 at top-limit of
3327         the for-loop so last conf register is emitted too,
3328         * (_pic16_initPaths): link library libsdcc.lib by default,
3329         * (_hasNativeMulFor): modified test for multiplication according to
3330         Raphael Neider's remarks. Integer multiplication is also done with
3331         support functions,
3332         * device/include/pic16/pic18fregs.h: corrected type error in while
3333         testing and including 18f6720 header file
3334
3335 2004-09-14 Vangelis Rokas <vrokas AT otenet.gr>
3336
3337         * src/pic16/device.h (pic16_options): removed field use_crt,
3338         * src/pic16/gen.c (genUnpackBits): added call to pic16_loadFSR0
3339         until an optimization to handle single bits is added,
3340         * (pic16_loadFSR0): moved before genUnpackBits,
3341         * (genAnd): some white lines removed,
3342         * src/pic16/main.c (_pic16_finaliseOptions): set omit_ivt and clear
3343         leave_reset flags in pic16_options when using crt modules,
3344
3345 2004-09-12 Maarten Brock <sourceforge.brock AT dse.nl>
3346
3347         * src/mcs51/ralloc.c (packRegisters): applied fix by Bernhard Held
3348           for bugs 898889 & 979599. Also used some safer print instructions.
3349
3350 2004-09-12 Vangelis Rokas <vrokas AT otenet.gr>
3351
3352         * src/pic16/device.h (pic16_options_t): added field use_crt,
3353         crt_name, no_crt,
3354         * src/pic16/genarith.c (pic16_genPlus): added an assert(0) line to
3355         catch a probable future bug,
3356         * src/pic16/gen.c: aopIdx function commented out,
3357         * (genAssign): commented out old code which used aopIdx,
3358         * src/pic16/glue.c (pic16glue): removed some legacy fragments of
3359         code, added if conditionals to take into account the --use-crt
3360         command line options,
3361         * src/pic16/main.c (pic16_optionsTable): added new command line
3362         options, --use-crt= and --no-crt,
3363         * (_pic16_linkEdit): now the proper crt object is added in the
3364         linker command line except than when --no-crt is specified,
3365         * src/pic16/pcode.c,
3366         * src/pic16/pcode.h: added some structures and functions for a new
3367         optimization scheme to compansate for instruction overhead between
3368         same iCodes, this scheme is currently under development and is not
3369         working in any way,
3370         * src/pic16/gen.c (genAnd): added patch provided by Aaron Collwell
3371         to && operator,
3372         * device/lib/pic16/startup/crt0i.c,
3373         * device/lib/pic16/startup/crt0iz.c: added global char variable
3374         __uflags to force the generation of an idata section
3375
3376 2004-09-12 Bernhard Held <bernhard AT bernhardheld.de>
3377
3378         * doc/Makefile,
3379         * doc/clean.mk: added support for easy creation of sdcc-doc.tar.bz2
3380         * doc/sdccman.lyx: updated sdcc version to 2.4.4
3381
3382 2004-09-10 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
3383
3384         * doc/sdccman.lyx: fixed a problem with my new index entries (thanks
3385         Frieder) and clarified the default code optimization mode
3386
3387 2004-09-10 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
3388
3389         * src/SDCC.lex (doPragma, process_pragma),
3390         * src/SDCCglobl.h (struct optimize): added pragmas "opt_code_speed",
3391         "opt_code_size", and "opt_code_balanced"
3392         * src/SDCCmain.c (optionsTable[], printOptions, scanOptionsTable):
3393         regrouped options by category, added support for category headers
3394         * src/SDCCmain.c (parseCmdLine): added options "--opt-code-speed"
3395         and "--opt-code-size"
3396         * doc/sdccman.lyx: documented these new options and pragmas
3397         * src/hc08/gen.c (AccLsh, AccRsh): take speed/size optimization
3398         preference into account
3399
3400 2004-09-08 Maarten Brock <sourceforge.brock AT dse.nl>
3401
3402         * src/SDCCicode.c (geniCodePostInc, geniCodePreInc, geniCodePostDec,
3403           geniCodePreDec): Fixed bug 904237 by generating a warning
3404         * src/SDCCerr.h,
3405         * src/SDCCerr.c: added warning W_SIZEOF_VOID
3406
3407 2004-09-09 Slade Rich <slade_rich AT users.sourceforge.net>
3408
3409         * src/pic/device.c : When no max ram set validate full memory range.
3410         * src/pic/pcode.c,
3411         * src/pic/pcodepeep.c : Copy C code comments to optimised replacement code.
3412
3413 2004-09-08 Maarten Brock <sourceforge.brock AT dse.nl>
3414
3415         * device/lib/_gptrget.c,
3416         * device/lib/_gptrput.c: updated comment
3417         * device/lib/calloc.c,
3418         * device/lib/free.c,
3419         * device/lib/malloc.c,
3420         * device/lib/realloc.c: added LGPL, made them reentrant-safe
3421         * src/SDCCcse.c (cseBBlock),
3422         * src/SDCCicode.c (printOperand, geniCodeArray),
3423         * src/SDCCicode.h (struct operand): fixed bug 868103
3424         * support/regression/tests/bug-868103.c: added
3425         * src/SDCCast.c (searchLitOp),
3426         * src/SDCCcse.h (struct cseDef),
3427         * src/SDCCglue.c (printIvalArray, spacesToUnderscores),
3428         * src/SDCCicode.h (struct operand),
3429         * src/SDCCsymt.h (struct sym_link),
3430         * src/avr/gen.c (hasInc),
3431         * src/ds390/gen.c (hasInc),
3432         * src/hc08/gen.c (genPlusIncr, hasInc),
3433         * src/mcs51/gen.c (hasInc),
3434         * src/pic16/glue.c (pic16_printIvalChar),
3435         * src/pic16/ralloc.c (regWithIdx),
3436         * src/xa51/gen.c (hasInc) : removed warnings
3437         * src/SDCCast.c (createBlock): added comment ???
3438         * src/hc08/ralloc.c: updated comments
3439
3440 2004-09-07 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
3441
3442         * doc/sdccman.lyx: updated section on switch statements, added
3443         section about semaphore locking
3444         * doc/Makefile: added option -info for latex2html
3445         * device/lib/_gptrget.c,
3446         * device/lib/_gptrput.c: __XPAGE instead of P2 in outcommented code
3447
3448 2004-09-06 Slade Rich <slade_rich AT users.sourceforge.net>
3449
3450         * src/pic/device.h,
3451         * src/pic/device.c,
3452         * src/pic/port.c : Changed PIC14 code to not set bit RP1 when
3453          maxram is less than 0x100.
3454
3455 2004-09-06 Slade Rich <slade_rich AT users.sourceforge.net>
3456
3457         * Bug fixes for PIC14 - signed RSHIFT problem. Patch supplied by Allen(agschrum).
3458
3459 2004-09-06 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
3460
3461         * src/port.h,
3462         * src/mcs51/main.c,
3463         * src/ds390/main.c,
3464         * src/z80/main.c,
3465         * src/hc08/main.c,
3466         * src/pic/main.c,
3467         * src/pic16/main.c,
3468         * src/avr/main.c,
3469         * src/xa51/main.c
3470         * src/SDCCicode.c (geniCodeJumpTable): Better logic to determine if a
3471         a jump table is the best form for a switch statement, including
3472         automatic insertion of missing cases to make the case range
3473         continuous. Developed in collaboration with Frieder Ferlemann.
3474
3475 2004-09-02 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
3476
3477         * src/hc08/ralloc.c (canDefAccResult): multi-byte shift is unsafe for
3478         accumulator result if it needs sign extension
3479
3480 2004-09-02 Maarten Brock <sourceforge.brock AT dse.nl>
3481
3482         * src/hc08/ralloc.c (canUseAccOperand): fixed comparison bug
3483
3484 2004-09-02 Maarten Brock <sourceforge.brock AT dse.nl>
3485
3486         * device/lib/gbz80/printf.c,
3487         * device/lib/z80/printf.c: removed define for NULL
3488
3489 2004-09-02 Maarten Brock <sourceforge.brock AT dse.nl>
3490
3491         * as/xa51/xa_link.c,
3492         * device/examples/ds390/ow390/ad26.c,
3493         * device/examples/ds390/ow390/cnt1d.c,
3494         * device/examples/ds390/ow390/counter.c,
3495         * device/examples/ds390/ow390/ds2480.h,
3496         * device/examples/ds390/ow390/ds2480ut.c,
3497         * device/examples/ds390/ow390/findtype.c,
3498         * device/examples/ds390/ow390/gethumd.c,
3499         * device/examples/ds390/ow390/owllu.c,
3500         * device/examples/ds390/ow390/ownetu.c,
3501         * device/examples/ds390/ow390/swt12.c,
3502         * device/examples/ds390/ow390/swtloop.c,
3503         * device/examples/ds390/ow390/temp.c,
3504         * device/examples/ds390/ow390/temp10.c,
3505         * device/examples/ds390/ow390/thermo21.c,
3506         * device/examples/ds390/ow390/tinilnk.c,
3507         * device/examples/ds390/ow390/tstfind.c,
3508         * device/examples/serialcomm/windows/serial.cpp,
3509         * device/examples/serialcomm/windows/test_serialcomm.cpp,
3510         * device/include/reg51.h: fixed line endings for cvs
3511
3512 2004-09-02 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
3513
3514         * src/hc08/ralloc.c (canDefAccResult, canUseAccOperand,
3515         packRegsForAccUse, packRegisters): new accumulator register
3516         packing algorithm
3517         * support/regression/ports/hc08/support.c (_putchar): suppress
3518         warning of unused variable
3519         * src/SDCCicode.c: added SWAP entry to codeTable
3520
3521 2004-09-01 Maarten Brock <sourceforge.brock AT dse.nl>
3522
3523         * device/lib/sprintf.c: forgot to add this file before previous commit
3524
3525 2004-09-01 Vangelis Rokas <vrokas AT otenet.gr>
3526
3527         * src/pic16/gen.c (genPackBits): added operand right in function
3528         parameters, load result directly if p_type is POINTER (that is
3529         called by genNearPointerSet)
3530         * (genUnPackBits): added operand left in function parameters,
3531         * (genNearPointerGet, genNearPointerSet): prevent the loading of
3532         FSR0 if accessing bitfields,
3533
3534 2004-08-31 Maarten Brock <sourceforge.brock AT dse.nl>
3535
3536         * device/include/stdio.h: added NULL, size_t, typedef pfn_outputchar,
3537           _print_format; updated printf, sprintf, vsprintf
3538         * device/include/asm/default/features.h: corrected comment/define
3539         * device/lib/Makefile.in: added sprintf.c
3540         * device/lib/libsdcc.lib: added sprintf module
3541         * device/lib/printf_large.c,
3542         * device/lib/vprintf.c,
3543         * device/lib/sprintf.c: totally refactored printf_large and vprintf
3544           into these 3 files
3545         * support/regression/Makefile: changed ALL_PORTS into a usefull default
3546         * support/regression/ports/mcs51-stack-auto/spec.mk: added sprintf
3547         * support/regression/tests/bug-927659.c: removed dummy putchar, enabled
3548           hc08 test
3549         * support/regression/tests/zeropad.c: define idata as data for hc08
3550
3551 2004-08-31 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
3552
3553         * src/SDCCpeeph.c (labelIsReturnOnly): support hc08 rts opcode also
3554         * src/SDCCpeeph.c (buildLabelRefCountHash): assume function entry point
3555         labels are referenced at least once (even if a reference is not found)
3556         * src/hc08/gen.c (emitcode): set isComment flag for comments
3557         * src/hc08/peeph.def: added rules 5a..5f (optimize redundant immediate
3558         loads), rules 6a..6b (optimize jumps to return)
3559
3560 2004-08-30 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
3561
3562         * device/lib/acosf.c (acosf),
3563         * device/lib/asinf.c (asinf),
3564         * device/lib/atanf.c (atanf),
3565         * device/lib/ceilf.c (ceilf),
3566         * device/lib/cosf.c (cosf),
3567         * device/lib/coshf.c (coshf),
3568         * device/lib/cotf.c (cotf),
3569         * device/lib/fabsf.c (fabsf),
3570         * device/lib/floorf.c (floorf),
3571         * device/lib/log10f.c (log10f),
3572         * device/lib/logf.c (logf),
3573         * device/lib/sinf.c (sinf),
3574         * device/lib/sinhf.c (sinhf),
3575         * device/lib/sqrtf.c (sqrtf),
3576         * device/lib/tanf.c (tanf),
3577         * device/lib/tanhf.c (tanhf),
3578         * device/include/math.h: defined _FLOAT_FUNC_REENTRANT macro and
3579         replaced all instances of "reentrant" in the library functions
3580         defined in math.h with this macro.
3581         * support/regression/tests/float_trans.c: reenabled test for hc08
3582
3583 2004-08-30 Bernhard Held <bernhard AT bernhardheld.de>
3584
3585         * device/lib/pic16/Makefile.common.in: added MODELFLAGS again, it was
3586         erroneously deleted
3587
3588 2004-08-30 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
3589
3590         * src/hc08/gen.c (loadRegFromAop): better use of clra & clrx
3591         * src/hc08/gen.c (genAnd, genOr): fixed bug with conditional when
3592         multi-byte volatile operands are used
3593         * src/hc08/gen.c (shiftRLong): fixed bug with wrong rotate direction
3594         * src/hc08/main.c (_hc08_genAssemblerPreamble): moved the built-in
3595         initialization to area GSINIT0 so that it would always precede
3596         any static initializers in GSINIT
3597         * support/regression/tests/zeropad.c: fixed idata define for hc08
3598         * support/regression/tests/bug-927659.c,
3599         * support/regression/tests/float_trans.c: disabled tests for hc08
3600         pending missing library routines
3601         * .version: increased version number to 2.4.4 - hc08 port now passes
3602         regression tests
3603
3604
3605 2004-08-29 Bernhard Held <bernhard AT bernhardheld.de>
3606
3607         * device/lib/pic16/Makefile.common.in: added $(MM) to fix `make clean`
3608         * Makefile.common.in,
3609         * as/Makefile,
3610         * as/hc08/Makefile.in,
3611         * as/mcs51/Makefile.in,
3612         * as/z80/Makefile.in,
3613         * debugger/mcs51/Makefile.in,
3614         * device/include/Makefile.in,
3615         * device/lib/Makefile.in,
3616         * doc/Makefile,
3617         * link/Makefile,
3618         * link/z80/Makefile.in,
3619         * packihx/Makefile.in,
3620         * sim/ucsim/main_in.mk,
3621         * sim/ucsim/avr.src/Makefile.in,
3622         * sim/ucsim/doc/Makefile.in,
3623         * sim/ucsim/gui.src/serio.src/Makefile.in,
3624         * sim/ucsim/hc08.src/Makefile.in,
3625         * sim/ucsim/s51.src/Makefile.in,
3626         * sim/ucsim/xa.src/Makefile.in,
3627         * sim/ucsim/z80.src/Makefile.in,
3628         * src/Makefile.in,
3629         * support/cpp2/Makefile.in,
3630         * support/librarian/Makefile,
3631         * support/makebin/Makefile: added DESTDIR to the install path proposed
3632         by "Maciej 'Agaran' Pijanka" <agaran AT pld-linux.org>
3633         * doc/sdccman.lyx: added DESTDIR documentation
3634
3635 2004-08-29 Vangelis Rokas (vrokas AT otenet.gr>
3636
3637         * src/pic16/gen.c (genFunction, genEndFunction): fixed return
3638         instruction for interrupt handlers, use fast returns when returning
3639         from high priority interrupts
3640
3641 2004-08-29 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
3642
3643         * src/hc08/gen.c (genAnd, genOr, transferAopAop, rmwWithAop): optimized
3644         code generation
3645         * src/hc08/gen.c (genrshFour, genCpl): fixed bugs
3646         * src/hc08/gen.c (genMultOneByte, genDivOneByte, genModOneByte): fixed
3647         bugs, ported much of Bernhard's code from mcs51
3648         * src/mcs51/gen.c (genSend),
3649         * src/hc08/gen.c (genSend): fixed bug with lost SEND iCodes if more
3650         than one when calling a reentrant function
3651         * device/lib/_mullong.c: defined an alternate struct layout for big
3652         endian ports (hc08)
3653
3654 2004-08-28 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
3655
3656         * src/hc08/gen.c (shiftL2Left2Result): fix for bug-500536 regression
3657         test
3658
3659 2004-08-28 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
3660
3661         * src/SDCCsymt.c (processFuncArgs): make sure parameter types
3662         are sane and complete before asking the port its prefered parameter
3663         passing method (fixes bug #1017633)
3664         * device/lib/hc08/_ret.c: added "data" storage class to _ret2
3665         and _ret3
3666
3667 2004-08-27 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
3668
3669         * src/hc08/gen.c (genPackBitsImmed, genUnpackBitsImmed): fix offset
3670         problem in bitfields >= 8 bits.
3671
3672 2004-08-27 Maarten Brock <sourceforge.brock AT dse.nl>
3673
3674         * src/SDCCsymt.c: undid changes that were not meant to be committed
3675
3676 2004-08-27 Maarten Brock <sourceforge.brock AT dse.nl>
3677
3678         * support/regression/ports/hc08spec.mk: REENTRANT must be reentrant
3679
3680 2004-08-27 Maarten Brock <sourceforge.brock AT dse.nl>
3681
3682         * src/hc08/gen.c (genUminusFloat): fixed bug where only 3 bytes were
3683           copied and wrong bit got inverted
3684
3685 2004-08-27 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
3686
3687         * src/hc08/gen.c (genPointerSet, genFarPointerSet): moved code from
3688         genFarPointerSet into genPointerSet; eliminated genFarPointerSet
3689         * src/hc08/gen.c (genPointerGet, genFarPointerGet): moved code from
3690         genFarPointerGet into genPointerGet; eliminated genFarPointerGet
3691         * src/hc08/gen.c (genPackBitsImmed): generate optimized code for
3692         assignments to bitfields at known addresses
3693         * src/hc08/gen.c (genUnpackBitsImmed): generate optimized code for
3694         reads from bitfields at known addresses
3695         * src/hc08/ralloc.c (packRegisters),
3696         * src/hc08/gen.c (genPointerGet, genUnpackBits, genUnpackBitsImmed,
3697         genhc08Code): optimize pointer get values used as conditionals
3698         * src/hc08/peeph.def: added rules 2e & 2f to optimize bit test
3699         and branch
3700
3701 2004-08-24 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
3702
3703         * src/mcs51/gen.c (genPointerGet, genNearPointerGet, genPagedPointerGet,
3704         genFarPointerGet, genCodePointerGet, genGenPointerGet, genUnpackBits),
3705         * src/mcs51/ralloc.c (packRegisters): optimize pointer get values used
3706         as conditionals
3707
3708 2004-08-22 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
3709
3710         * src/mcs51/peeph.def: peepholes 248.i-m for xdata bitfields
3711
3712 2004-08-21 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
3713
3714         * src/mcs51/ralloc.c (packRegsForOneuse): fixed bug #1012650 and some
3715         related problems
3716
3717 2004-08-21 Bernhard Held <bernhard AT bernhardheld.de>
3718
3719         * sim/ucsim/cmd.src/Makefile.in: run lex only if $(PRJDIR)/devel exists
3720
3721 2004-08-18 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
3722
3723         * src/z80/ralloc.c (packRegsForAssign): ported some bug fixes from the
3724         mcs51 port
3725
3726 2004-08-16 Slade Rich <slade_rich AT users.sourceforge.net>
3727
3728         * src/pic/gen.c: Restored fn genRet as previous fix was incorrect.
3729
3730 2004-08-14 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
3731
3732         * src/mcs51/gen.c (genJumpTab): jumptables for more than 16 switch
3733         cases use more compact code.
3734
3735 2004-08-13 Slade Rich <slade_rich AT users.sourceforge.net>
3736
3737         * src/pic/gen.c: Fixed problem with fn returning a variable bigger than a char.
3738
3739 2004-08-12 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
3740
3741         * src/SDCClrange.c (findPrevUse): fixed bug #1007371
3742
3743 2004-08-12 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
3744
3745         * src/SDCCsymt.h,
3746         * src/SDCCsymt.c (changePointer, checkDecl, addSymChain): changed
3747         parameter of changePointer() from symbol* to sym_link*
3748         * src/SDCCast.c (decorateType): call changePointer() for CAST op
3749         * src/SDCCsymt.c (compareType): void* type is castable to other
3750         pointers, but not necesarily an exact match.
3751         * src/SDCCicode.c (geniCodeCast): allow void* casting here since it
3752         is no longer blindly treated as an exact match.
3753         * src/SDCCval.c (valCastLiteral): treat missing type as cast to void
3754
3755 2004-08-12 Slade Rich <slade_rich AT users.sourceforge.net>
3756
3757         * src/pic/glue.c: Added struct initialisation fn printIvalStruct.
3758
3759 2004-08-11 Slade Rich <slade_rich AT users.sourceforge.net>
3760
3761         * src/pic/gen.c,
3762         * src/pic/pcode.c,
3763         * src/pic/ralloc.h,
3764         * src/pic/ralloc.c: Printing rIdx on internal verbose debug.
3765
3766 2004-08-10 Slade Rich <slade_rich AT users.sourceforge.net>
3767
3768         * src/pic/device.c,
3769         * src/pic/device.h,
3770         * src/pic/device.c: Will no longer exit if #pragma maxram has not been defined.
3771
3772 2004-08-06 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
3773
3774         * src/mcs51/gen.c (emitcode): fixed bug #992819
3775
3776 2004-08-05 Maarten Brock <sourceforge.brock AT dse.nl>
3777
3778         * src/pic/ralloc.c (deassignLR): allthough pic port is buggy already,
3779           there's no need to make it worse
3780
3781 2004-08-05 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
3782
3783         * src/mcs51/ralloc.c (deassignLR),
3784         * src/ds390/ralloc.c (deassignLR),
3785         * src/hc08/ralloc.c (deassignLR),
3786         * src/z80/ralloc.c (deassignLR),
3787         * src/pic/ralloc.c (deassignLR),
3788         * src/pic16/ralloc.c (deassignLR),
3789         * src/avr/ralloc.c (deassignLR),
3790         * src/SDCClrange.c (findRecursiveSucc, findRecursivePred, findPrevUse,
3791         rlivePoint): fixed another part of bug #971834
3792
3793 2004-08-04 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
3794
3795         * src/z80/main.c: enabled "critical" keyword
3796         * src/z80/mappings.i,
3797         * src/z80/gen.c (genFunction, genEndFunction): support for interrupt
3798         functions (fixes bug #979646)
3799         * doc/sdccman.lyx: added a subsection explaining z80 interrupt support
3800
3801 2004-08-04 Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
3802
3803         * src/mcs51/gen.c (genInline): Add \n for labels, not DOS/WIN dirs
3804           such as c:\mydir.
3805
3806 2004-08-03 Maarten Brock <sourceforge.brock AT dse.nl>
3807
3808         * src/SDCCloop.c (loopInvariants): fixed bug 983545, hope this
3809           doesn't disable too much optimizations
3810
3811 2004-08-02 Slade Rich <slade_rich AT users.sourceforge.net>
3812
3813         * src/pic/glue.c Disabled "WARNING: function 'main' undefined" when -S option is used.
3814
3815 2004-08-02 Maarten Brock <sourceforge.brock AT dse.nl>
3816
3817         * src/SDCClrange.c (rlivePoint): fixed bug 988568, thanks to anonymous
3818
3819 2004-08-02 Slade Rich <slade_rich AT users.sourceforge.net>
3820
3821         * src/pic/gen.c tidied up tabs
3822         * src/pic/genarith.c tidied up tabs and fixed bug with literal multiple where same register was used for hi and low byte
3823         * src/pic/main.c tidied up tabs
3824         * src/pic/pcode.c tidied up tabs and disabled verbose code generation
3825         * src/pic/pcoderegs.c tidied up tabs
3826         * src/pic/ralloc.c tidied up tabs
3827
3828 2004-07-30 Vangelis Rokas <vrokas AT otenet.gr>
3829
3830         * src/SDCCmem.c (allocGlobal): don't turn S_REGISTER storage class
3831         to S_FIXED for pic16 port and when symbol is not in level 0,
3832         allocate for S_REGISTER storage class and pic16 port, too,
3833         * src/pic16/device.h: prototype for checkSym,
3834         * src/pic16/device.c (pic16_dump_access, checkSym): NEW,
3835         * (pic16_assignConfigWordValue): test the value and the mask to
3836         validate that the value is suitable for the configuration word,
3837         * src/pic16/glue.c (pic16_printIvalFuncPtr): use 'externs' to
3838         collect extern declared symbols, don't emit symbol twice, check
3839         first if symbol is in publics set first,
3840         * src/pic16/main.c (_pic16_keywords[]): added keyword 'register',
3841         * added command line '--fstack' which enables an experimental
3842         feature for stack access, too buggy to be used yet...
3843         * src/pic16/ralloc.c (pic16_accessregWithName): NEW,
3844         * (pic16_allocDirReg): when register has storage class S_REGISTER
3845         allocate in pic16_dynAccessRegs,
3846         * device/include/pic16/pic18f????.h: modified configuration word
3847         naming convention, words started as CONFIG0H but should be CONFIG1H
3848
3849 2004-07-29 Maarten Brock <sourceforge.brock AT dse.nl>
3850
3851         * device/include/mcs51reg.h: fixed bug 970993
3852
3853 2004-07-27 Maarten Brock <sourceforge.brock AT dse.nl>
3854
3855         * added lib/calloc.c, lib/free.c, lib/realloc.c, include/stddef.h
3856         * updated lib/malloc.c, lib/libsdcc.lib, lib/Makefile.in, include/malloc.h
3857         * src/SDCC.lex (doPragma): added pragma disable_warning <nnn>
3858         * src/SDCCmain.c (parseCmdLine): added option --disable-warning <nnn>
3859         * src/ds390/gen.c (genPlusIncr): fixed bug when incrementing generic pointers
3860         * support/Util/SDCCerr.c (vwerror): suppress disabled warnings and output
3861           error/warning numbers,
3862           added function setWarningDisabled()
3863         * support/Util/SDCCerr.h: added setWarningDisabled() and MAX_ERROR_WARNING
3864         * support/regression/ports/mcs51-stack-auto/spec.mk: added dependencies
3865           _memcmp.c _memmove.c calloc.c realloc.c free.c
3866         * support/regression/tests/malloc.c: added tests for new functionality
3867         * support/regression/tests/zeropad.c: added tests for truncated initializers
3868           and initialized char arrays starting with '\x0'
3869         * src/mcs51/peeph.def: fixed regression, added peephole 177.f
3870
3871 2004-07-26 Bernhard Held <bernhard AT bernhardheld.de>
3872
3873         * support/valdiag/tests/overflow.c: fixed warning on (1 >> 40)
3874
3875 2004-07-26 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
3876
3877         * doc/sdccman.lyx: updated example in section "Absolute Addressing"
3878         * src/mcs51/peeph.def: added contributed fix for "bug" #995347 as
3879         peephole 177.e. Thanks to anonymous
3880
3881 2004-07-25 Vangelis Rokas <vrokas AT otenet.gr>
3882
3883         * src/pic16/glue.c (pic16_printIvalFuncPtr): when an extern
3884         function isn't used in the source but referenced as a
3885         variable initializer then declare it as extern in .asm file
3886
3887 2004-07-24 Vangelis Rokas <vrokas AT otenet.gr>
3888
3889         * .version: increased version number to 2.4.3
3890
3891         Adding version extension according to ChangeLog CVS revision
3892         * src/Makefile.in (target all): added dependency 'version.h'
3893         * (rule version.h): added rule to create version.h from ChangeLog,
3894         * (rule dep): added dependency version.h,
3895         * src/version.awk: AWK script to create version.h
3896         * src/SDCCdwarf2.c (dwWriteModule),
3897         * src/SDCCglue.c (initialComments),
3898         * src/SDCCmain.c (printVersionInfo): modified to write after
3899         version string the version extension number,
3900         * src/SDCCutil.c: included "version.h"
3901         * (getBuildNumber): NEW, returns SDCC's ChangeLog minor revision
3902         number,
3903         * src/SDCCutil.h: added prototype for getBuildNumber
3904
3905         * src/SDCCmain.c (parseCmdLine): when sOpt is 'I' add rest in
3906         includeDirsSet, too,
3907         * src/SDCCsymt.c (checkSClass): don't emit error when a variable,
3908         const char [] is found in function prototype...
3909
3910         * src/pic16/genarith.c (pic16_genUMult8XLit_8): optimization to omit
3911         moving to WREG with source is already in WREG,
3912         * src/pic16/gen.h: added AOP_FSR0 and AOP_FSR2 in enum,
3913         * src/pic16/gen.c (getFreePtr): updated to look for FSR0 and FSR2,
3914         * (aopForSym): stack'ed symbols are partially supported, added
3915         if-clause to support symbols in FARSPACE,
3916         * (sameRegs): added test for AOP_ACC to see if registers are same,
3917         * (pic16_freeAsmop): added case for AOP_FSR0 and AOP_FSR2,
3918         * (pic16_aopGet): added case for AOP_FSR0 and AOP_FSR2,
3919         * (pic16_popRegFromString): will not allocate a new register if it
3920         doesn't find one by name, bug may have introduced...
3921         * (pic16_popGet): added case for AOP_FSR0 and AOP_FSR2,
3922         * (genIpush): revived to use pic16 port's stack,
3923         * (genAddrOf): added incomplete case for stack'ed operand,
3924         * (genCast): optimized a pair of MOVFW,MOVWF to MOVFF
3925         * src/pic16/genutils.c (pic16_genNot): almot new vesrion for NOT,
3926         can handle multibyte operands,
3927         * src/pic16/glue.c (pic16_printIval*): some debug info added,
3928         * (pic16initialComments): added message for MPLAB compatibility
3929         mode enabled,
3930         * src/pic16/main.h: prototype for pic16_mplab_comp,
3931         * src/pic16/main.c (pic16_optionsTable): new option --mplab-comp,
3932         which enabled MPLAB compatibility mode (i.e. no #LINE/#FILE, BANKED)
3933         * (_pic16_linkEdit): NEW, handles link stage, transferred here
3934         because of increased complexity of procedure,
3935         * (_process_pragma): stack pragma changed to format 'stack pos len',
3936         emit symbol '_stack_end' to conform with gplink,
3937         * src/pic16/pcode.c (pic16_newpCodeOpBit): using pic16_regWithName
3938         to search for register,
3939         * (pic16_get_op, pic16_get_op2): added case for PO_W, PO_WREG and
3940         PO_GPR_REGISTER,
3941         * (pic16_pCode2str): when in MPLAB compatibility mode, comment out
3942         #LINE directives and replace 'B' with 'BANKED' in instruction opcodes
3943         * (pic16_getRegFromInstruction, pic16_getRegFromInstruction2): added
3944         case for PO_GPR_REGISTER,
3945         * (pic16_AnalyzeBanking): removed the old message for inc2h.pl, past
3946         dies, the new era is ahead !...
3947         * src/pic16/ralloc.c: added hash reposits pic16_dynAllocRegNames and
3948         pic16_dynInternalRegs,
3949         * (pic16_allocregWithName, pic16_procregWithName, pic16_regWithname): NEW,
3950         * (pic16_allocDirReg): minor optimizations and bug fixes,
3951         * (pic16_allocWithIdx): when searching pic16_dynProcessorRegs use fixed,
3952
3953         * device/lib/pic16/startup/crt0*.c: extern definition of stack_end,
3954         load stack and frame pointer with address of 'stack_end' symbol
3955
3956 2004-07-23 Vangelis Rokas <vrokas AT otenet.gr>
3957
3958         * src/pic16/glue.c (pic16emitStaticSeg): fixed bug with files
3959         without source code but only variable initializers
3960
3961 2004-07-20 Vangelis Rokas <vrokas AT otenet.gr>
3962
3963         * src/pic16/glue.c (pic16emitRegularMap): unused functions marked as
3964         external are not declared as extern to reduce overhead while linking
3965
3966 2004-07-20 Maarten Brock <sourceforge.brock AT dse.nl>
3967
3968         * src/SDCCast.c (decorateType): removed buggy fix for bug #979599
3969
3970 2004-07-11 Maarten Brock <sourceforge.brock AT dse.nl>
3971
3972         * src/SDCCglue.c (printIvalArray): fixed bug #984229, thanks to Phuah
3973           Yee Keat for the patch
3974         * src/SDCCast.c (decorateType): fixed bug #979599
3975         * src/ds390/gen.h: removed local fReturnSizeDS390
3976         * src/ds390/gen.c: made fReturnSizeDS390 signed short to remove a warning
3977         * src/ds390/gen.c (genAnd, genOr, genXor),
3978         * src/mcs51/gen.c (genAnd, genOr, genXor): generate better optimized code
3979
3980 2004-07-04 Vangelis Rokas <vrokas AT otenet.gr>
3981
3982         * src/SDCCmain.c (linkEdit): modifications only for pic16 port,
3983         add relFilesSet to $3, manipulate $2 to handle linking of object
3984         files without source files in command line,
3985         * device/include/pic16 (all headers): added ID location macros,
3986         * src/pic16/device.c (struct PIC16_device Pics16[]): added field
3987         entries for ID location bytes,
3988         * (pic16_assignIdByteValue): NEW,
3989         * src/pic16/device.h: new structures idRegInfo_t and idBytesInfo_t,
3990         added field dumpcalltree to pic16_options_t,
3991         * src/pic16/gen.c (genCmp): fixed bug case so a temporary register
3992         is used instead of pic16_Gstack_base_addr, check if (ifx) before
3993         emitting rFalseIfx label after check_carry label,
3994         * src/pic16/glue.c (PIC16_IS_IDLOC_ADDRESS, PIC16_IS_HWREG_ADDRESS,
3995         pic16_emitDIRegs), NEW
3996         * (pic16glue): dump .calltree file when option --calltree found,
3997         * src/pic16/main.c (OPTION _pic16_optionsTable): new option --calltree
3998         * (_pic16_genAssemblerPreamble): emit ID locations after
3999         configuration registers,
4000         * (pic16_linkCmd): modifications of the link command,
4001         * src/pic16/pcode.c (pic16_pciMOVFF): PCC_REGISTER replaces PCC_REGISTER2
4002         * (pic16_pCodeInitRegisters): don't init stack registers,
4003         * (pic16_findPrevInstruction): fixed bug,
4004         * (pic16_getRegFromInstruction, pic16_getRegFromInstruction2): fixed
4005         bug with immediate registers,
4006         * (buildCallTree): traces stack push and pop,
4007         * (pct2): dump also stack usage for each function,
4008         * src/pic16/ralloc.c (dynrIdx): registers names start from 0x00
4009         * (pic16_allocDirReg): various modifications,
4010         * (pic16_typeRegWithIdx): when searching pic16_dynProcessorRegs set
4011         fixed to 1,
4012
4013 2004-07-02 Vangelis Rokas <vrokas AT otenet.gr>
4014
4015         * src/pic16/pcode.c: removed buggy double colon
4016
4017 2004-07-01 Borut Razem <borut.razem AT siol.net>
4018
4019         * support/scripts/sdcc.nsi: added include/pic16 to setup
4020
4021 2004-06-30 Vangelis Rokas <vrokas AT otenet.gr>
4022
4023         * device/lib/Makefile.in: fixed bug in target objects-pic16,
4024         * device/lib/pic16/Makefile: prefixed with dash (-) command under
4025         target 'clean',
4026         * doc/sdccman.lyx: changed version to 2.4.2 and added some port
4027         specific command line arguments. Also added sample lkr script
4028         for placing a variable at a specific memory bank.
4029         * src/pic16/device.c (pic16_dump_gsection): NEW, to dump variables
4030         at a specific memory bank,
4031         * (pic16_dump_isection): fixed bug which caused string literals to
4032         be omitted when dumping idata section,
4033         * (pic16_groupRegistersInSection): added code to handle registers
4034         in specific memory banks,
4035         * src/pic16/gen.c: labelOffset is prefixed with pic16_ and made
4036         public, all references are renamed too,
4037         * (pic16_aopGet): removed switch cases for AOP_R0,AOP_R1,AOP_DPTR,
4038         AOP_DPTR2,
4039         * (pic16_storeForReturn): added case to handle when dest is WREG,
4040         * src/pic16/genarith.c (pic16_pCodeOpSubType): NEW,
4041         * src/pic16/glue.c (pic16emitRegularMap): when adding a register in
4042         pic16_rel_udata, check to see if that register is marked as being
4043         a member of a specific memory bank,
4044         * (pic16_printIvalCharPtr): added code to add string literals either
4045         to code or the idata sections,
4046         * src/pic16/main.c (_process_pragma): added \n to WHITE constant,
4047         also accept the 'udata' pragma,
4048         * src/pic16/main.h: new structure types sectName and sectSym
4049         * src/pic16/pcode.c: added new pCodeInstruction entry for BANKSEL
4050         * (newpCodeOpBit): added PIC_OPTYPE subt in function prototype,
4051         * (pic16_findPrevInstruction): fixed, it returned nothing,
4052         * (insertBankSwitch): fixed to emit banksel/skip and skip/banksel
4053         instruction combinations,
4054         * (pic16_FixRegisterBanking): heavily reorganised,
4055         * (pic16_AnalyzeBanking): if generating banksel directives is
4056         disabled, then don't call FixRegisterBanking at all,
4057         * src/pic16/ralloc.c (bitEQUs, aliasEQUs, allDefsOutOfRange):
4058         completely removed,
4059         * (pic16_writeUsedRegisters): added call to pic16_dump_gsection
4060
4061 2004-06-29 Bernhard Held <bernhard AT bernhardheld.de>
4062
4063         * src/SDCCglue.c (printChar): fixed bug #973350, patch provided by
4064         Phuah Yee Keat <yk.phuah AT nestac.com>
4065
4066 2004-06-28 Vangelis Rokas <vrokas AT otenet.gr>
4067
4068         * src/pic16/glue.c (pic16createInterruptVect): function now emits
4069         correctly the IVT even if it is relocated to some other location
4070
4071 2004-06-28 Vangelis Rokas <vrokas AT otenet.gr>
4072
4073         * device/include/pic16/pic18fregs.h: added case for pic18f2220.h
4074         * device/include/pic16/pic18f2220.h: NEW,
4075         * device/lib/pic16/libdev/pic18f2220.c: NEW,
4076         * device/lib/pic16/libdev/Makefile: added 18f2220 in DEVS,
4077         * src/pic16/device.c (struct Pics16): added info for 18f2220,
4078         * src/pic16/device.h (struct pic16_options): added ivt_loc and
4079         nodefaultlibs, ivt_loc is the location of the interrupt vector
4080         table, and nodefaultlibs signs that default libraries should not be
4081         linked in link stage,
4082         * src/pic16/gen.c (genFunction): relocate interrupt vector functions
4083         according to --ivt-loc argument,
4084         * src/pic16/main.c (_process_pragma): emit '_stack' as public symbol
4085         when pragma stack is found,
4086
4087 2004-06-25 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
4088
4089         * src/mcs51/peeph.def: added peepholes 182.d (return 0.0),
4090         256 (range check), 257 (do while), 258.a-f (bit banging
4091         f.e. on 3-wire SPI bus)
4092
4093 2004-06-21 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
4094
4095         * src/SDCClrange.c (findNextUseSym): fixed a live range bug with
4096         variables used exclusively within a loop
4097
4098 2004-06-21 Bernhard Held <bernhard AT bernhardheld.de>
4099
4100         * src/mcs51/gen.c (genCpl): quick fix for bug #974835
4101
4102 2004-06-21 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
4103
4104         * src/SDCClrange.c (computeClash): fixed bug #971834
4105
4106 2004-06-20 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
4107
4108         * src/mcs51/gen.c (genCmp): fixed bug #975903
4109         * src/hc08/gen.c (operandsEqu),
4110         * src/ds390/gen.c (operandsEqu),
4111         * src/z80/gen.c (operandsEqu),
4112         * src/pic/gen.c (operandsEqu),
4113         * src/pic16/gen.c (operandsEqu),
4114         * src/mcs51/gen.c (operandsEqu): fixed bug #976283
4115         * src/SDCCmain.c (parseCmdLine): report --unknown-option only once
4116
4117 2004-06-15 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
4118
4119         * src/SDCCcse.c (cseBBlock): fixed bug #966963
4120
4121 2004-06-12 Vangelis Rokas <vrokas AT otenet.gr>
4122
4123         * src/pic16/gen.c (genPointerGet): added E_INTERNAL_ERROR for
4124         default case in switch statement,
4125         * glue.c (pic16_initPointer): expr is initialised via decoarteType
4126         to eliminate problem with initialisation of pointers, but problem
4127         still exists,
4128         * (pic16_pointerTypeToGPByte): removed, no needed for pic16,
4129         * (emitStaticSegment): removed various lines emitting debug info,
4130         * src/pic16/pcode.c, src/pic16/pcode.h, src/pic16/ralloc.h:
4131         added processor registers for utilizing EEPROM,
4132         * src/pic16/pcode.c (pic16_emitDB): number of DBs emitted is not
4133         configurable and set 8
4134
4135 2004-06-08 Vangelis Rokas <vrokas AT otenet.gr>
4136
4137         * .version: increased version number to 2.4.2,
4138
4139         Cumulative patch for pic16 port
4140         * src/pic16/device.c: changed scheme to dump initial values for
4141         variables in idata segment, all print_idata* functions were removed,
4142         now the pic16_printIval* will be called,
4143         * src/pic16/glue.c: (pic16_initPointer, pic16_pointerTypeToGPByte,
4144         * _pic16_printPointerType, pic16_printPointerType,
4145         * pic16_printGPointerType, pic16_printIvalArray, pic16_printIvalStruct,
4146         * pic16_printIvalBitFields, pic16_printIvalFuncPtr, pic16_printIvalPtr:
4147         NEW, similar to the respective functions in SDCCglue.c,
4148         * src/pic16/pcode.c (pic16_emitDB, pic16_flushDB): reverted to old
4149         way, emitting hex bytes,
4150         * (pic16_emitDS): NEW, emits a string for pointer initialisation,
4151
4152 2004-06-08 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
4153
4154         * src/avr/ralloc.c (serialRegAssign),
4155         * src/xa51/ralloc.c (serialRegAssign),
4156         * src/pic/ralloc.c (serialRegAssign),
4157         * src/pic16/ralloc.c (serialRegAssign),
4158         * src/hc08/ralloc.c (serialRegAssign),
4159         * src/z80/ralloc.c (serialRegAssign),
4160         * src/ds390/ralloc.c (serialRegAssign),
4161         * src/mcs51/ralloc.c (serialRegAssign): fixed bug #964479
4162
4163 2004-06-08 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
4164
4165         * src/SDCCicode.c (geniCodeJumpTable): fixed bug #967601
4166         * src/SDCCpeeph.c (labelIsReturnOnly): fixed bug #966505
4167
4168 2004-06-07 Vangelis Rokas <vrokas AT otenet.gr>
4169
4170         Cumulative patch for pic16 port:
4171         * src/pic16/device.h (typedef PIC16_device) modified fields for
4172         defining microcontrollers,
4173         * src/pic16/device.c: added new info for all devices in Pics16 array,
4174         * src/pic16/gen.c (genPcall): fixed bug that caused the return label
4175         to be optimised out by the pCode optimiser,
4176         * src/pic16/glue.c (pic16emitRegularMap): treat implicit aggragates
4177         specially, bug reported by G.M. Gallant,
4178         * src/pic16/pcode.c (pic16_newpCodeLabelFORCE): NEW, marks a label
4179         as force'd so that cannot be optimised out by pCode optimiser,
4180         * src/pic16/pcode.c,
4181         * src/pic16/pcodepeeph.c,
4182         * src/pic16/pcoderegs.c: many modifications to re-enable peepholes,
4183         they are disabled by default, but can be enabled explicit with
4184         command argument --denable-peeps, for testing,
4185         * device/lib/pic16/startup/Makefile: added --no-peep,--pomit-config-words,
4186         --pomit-ivt in COMPILE_FLAGS
4187
4188 2004-06-06 Maarten Brock <sourceforge.brock AT dse.nl>
4189
4190         * src/pic16/pcode.c (pic16_emitDB): removed double semicolon which fails
4191           compilation on MSVC
4192
4193 2004-06-06 Maarten Brock <sourceforge.brock AT dse.nl>
4194
4195         * device/include/sab80515.h: added sfr P6, changed GPL to LGPL
4196
4197 2004-06-06 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
4198
4199         device/include/sab80515.h: fixed bug #967492, DAPR is defined at adress
4200         0xd8, but the correct adress is 0xda. Thanks to anonymous for reporting
4201
4202 2004-06-06 Vangelis Rokas <vrokas AT otenet.gr>
4203
4204         * src/pic16/device.c (pic16_assignConfigWord): fixed bug that
4205         would only assign 0x300001 register.
4206
4207 2004-06-05 Vangelis Rokas <vrokas AT otenet.gr>
4208
4209         * device/lib/pic16/startup/Makefile: added $(MODELFLAGS)
4210         in COMPILE_FLAGS. Thanks to G. Gallant for report.
4211
4212 2004-06-05 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
4213
4214         * doc/sdccman.lyx: minor changes, mentioned beta vendor support
4215         for ds80c400
4216         * src/mcs51/peeph.def: ran unexpand -a over peeph.def
4217         * src/mcs51/peeph.def: removed obsolete peephole 100.a,
4218         added peephole 254 (left shift), 255 (jump table)
4219
4220 2004-06-04 Vangelis Rokas <vrokas AT otenet.gr>
4221
4222         * device/lib/Makefile.in: removed comment line with model-pic16,
4223         * (target port-specific-objects-pic16): the libraries and objects
4224         are copied to the build directory form the device/lib/pic16/bin
4225         directory
4226
4227         Cumulative patch concerning pic16 port:
4228         * library directory has been re-organized,
4229         * added support for PIC18F1220,
4230         * added headers and library sources for chips 18f1220,18f6520,
4231         18f6620,18f6680,18f6720,18f8520,18f8620,18f8680,18f8720
4232
4233         * configuration registers setting has changed, now each supported
4234         device has a complete description of the registers it uses,
4235         * all initialisations are moved to idata sections, these section
4236         can be absolute or relocatable,
4237         * fixed initialisation of codespace variables,
4238         * fixed warning about PCLATU and gpsim,
4239         * src/pic16/gen.c (genCmp): now can handle partially iCodes with no ifx,
4240         * (genAssign): use table reads when assigning from variables in codespace,
4241         * src/pic16/glue.c (pic16emitStaticSeg): fixed to correctly initialise
4242         char/int variables placed in codespace,
4243         * (pic16_emitConfigRegs): NEW, emits a list with configuration
4244         registers set in .asm file, no need for --pomit-config-words anymore,
4245         * (pic16glue): some 8051 legacy segments are commented out
4246         (to be removed completely),
4247         * added support for alternative assembler and linker with --asm=
4248         and --link= command line arguments,
4249         * peepholes are disabled automatically in the port, no need to
4250         specify on command line,
4251         * port supports natively char/int/long multiplication, but converts
4252         all divisions to support functions,
4253         * main.c: pic16_linkCmd and pic16_asmCmd changed to force output
4254         to the file set in variable $2,
4255         * pcode.c (pic16_emitDB, pic16_flushDB): modified to print printable
4256         strings in ASCII format and not in hex,
4257         * ralloc.c (serialRegAssign): added a triplet of conditional calls
4258         to pic16_allocDirReg for IC_RESULT, IC_LEFT and IC_RIGHT so to
4259         allocate proper register if iCodes aren't temporary,
4260
4261 2004-06-02 Maarten Brock <sourceforge.brock AT dse.nl>
4262
4263         * support/regression/tests/zeropad.c: added TEST_G macro for alpha
4264
4265 2004-06-02 Vangelis Rokas <vrokas AT otenet.gr>
4266
4267         * src/pic16/gen.c (genPcall): warning about gpsim and PCLATU
4268         is commented out
4269
4270 2004-06-01 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
4271
4272         * src/hc08/gen.c (genPointerGetSetOfs): disabled optimization if
4273         computed address is reused
4274         * src/hc08/gen.c (genPackBits): fixed offsets in assignments to
4275         multi-byte bitfields
4276
4277 2004-06-01 Maarten Brock <sourceforge.brock AT dse.nl>
4278
4279         * src/z80/gen.c: (genArrayInit): must check for pointers too
4280
4281 2004-06-01 Maarten Brock <sourceforge.brock AT dse.nl>
4282
4283         * support/regression/tests/zeropad.c: never meant to commit the
4284           nestedstruct test: removed, added check for GCC version
4285
4286 2004-05-31 Maarten Brock <sourceforge.brock AT dse.nl>
4287
4288         * src/SDCCast.c (createIvalArray): fixed bug 770487 SIGSEGV
4289         * src/SDCCglue.c (emitRegularMap): fixed bug 770484 allocation problem
4290         * src/SDCCglue.c (initPointer, printIvalType, printIvalStruct,
4291           printIvalArray, printIvalFuncPtr, printIvalPtr, printIval): fixed
4292           bugs 928906 and 954082 half-empty initializers
4293         * src/SDCCsymt.h,
4294         * src/SDCCsymt.c (getAllocSize): added for above fix
4295         * src/z80/gen.c (genArrayInit): fixed bug 741044
4296         * support/regression/tests/zeropad.c: added tests
4297
4298 2004-05-30 Vangelis Rokas <vrokas AT otenet.gr>
4299
4300         * src/pic16/device.c (pic16_dump_section): corrected bug which
4301         caused some symbols of the libraries to be misplaced
4302
4303 2004-05-28 Vangelis Rokas <vrokas AT otenet.gr>
4304
4305         * src/pic16/glue.c,
4306         * src/pic16/ralloc.h,
4307         * src/pic16/ralloc.cc: prefixed IS_CONFIG_ADDRESS with PIC16_
4308         to fix conflict with pic port
4309
4310 2004-05-28 Vangelis Rokas <vrokas AT otenet.gr>
4311
4312         * src/pic16/glue.c (pic16emitStaticSeg): do not print as publics or
4313         externs configuration variables,
4314         * src/pic16/ralloc.h,
4315         * src/pic16/ralloc.cc: IS_CONFIG_ADDRESS is made public and added
4316         prototype in header, commented out some debug messages
4317
4318 2004-05-26 Vangelis Rokas <vrokas AT otenet.gr>
4319
4320         * src/pic16/glue.c,
4321         * src/pic16/main.c,
4322         * src/pic16/pcode.c: added gpasm directives #FILE/#LINE
4323         for gpasm COFF object generation. Thanks to D. Hawkins for
4324         his patch info
4325
4326 2004-05-25 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
4327
4328         * src/ds390/main.c,
4329         * src/mcs51/main.c: fixed sort order of mnemonics (thanks to Maarten
4330         Brock for spotting this)
4331         * src/ds390/gen.c (genEndFunction),
4332         * src/mcs51/gen.c (genEndFunction): always save psw if function is an
4333         interrupt handler and critical. Disable push/pop optimizations when
4334         peephole optimizations disabled.
4335
4336 2004-05-25 Vangelis Rokas <vrokas AT otenet.gr>
4337
4338         Updated pic16 library sources and headers.
4339         * device/lib/pic16/pic18f*/ ,
4340         * device/include/pic16/*.h: modified to handle structured SFR
4341         definitions
4342
4343 2004-05-25 Vangelis Rokas <vrokas AT otenet.gr>
4344
4345         * src/port.h (PORT structure): added hook initPaths, now each
4346         port can declare its own default search paths,
4347         which can been seen with the --print-search-dirs option,
4348         see pic16 port for example,
4349         * src/SDCCmain.c (setBinPaths, setIncludePaths, setLibPath,
4350         setDataPaths): test to options.printSearchDirs is ifdef'ed out,
4351         * (doPrintSearchDirs): NEW, replaces in a central manner the
4352         printing of search dirs which was split in set*Paths functions,
4353         * (main): added call to port->initPaths and doPrintSearchDirs,
4354         * src/avr/main.c,
4355         * src/ds390/main.c,
4356         * src/hc08/main.c,
4357         * src/izt/i186.c,
4358         * src/izt/tlcs900h.c,
4359         * src/mcs51/main.c,
4360         * src/pic/main.c,
4361         * src/pic16/main.c: modified port structures to reflect addition of
4362         initPaths hook,
4363
4364         * src/pic16/device.c (regCompare): registers are finally sorted by name,
4365         * (pic16_dump_section): for registers in same address reserve memory once,
4366         * src/pic16/device.h (struct PIC16_device): changed variable gen_banksel
4367         to no_banksel,
4368         * src/pic16/genarith.c (pic16_genPlus): added code to handle cases where
4369         result is greater in size than right or left,
4370         * (pic16_genUMult8X8_8): there are some cases where the result can
4371         be 16 bits size, so handle these,
4372         * src/pic16/gen.c: changed some pic16_emitpcomment to DEBUGpic16_emitcode,
4373         * (pic16_outBitC): modified to emit pcodes,
4374         * (pic16_storeForReturn): using is_LitOp to see if operand is literal
4375         or not,
4376         * (genDivOneByte): implemented algorithm to divide 8-bits,
4377         * (genCmp): uncommented goto, but issues still exist,
4378         * (genAnd): fixed a bug with variables >8bits,
4379         * (genPackBits): optimization added that uses BCF/BSF to change a
4380         single bit,
4381         * (genAssign): fixed bug when assigning floating point literals,
4382         * src/pic16/glue.c (pic16glue): added assembler directive 'code' before
4383         __sdcc_gsinit_startup label,
4384         * src/pic16/main.c (_pic16_init): removed search directory
4385         initialisations,
4386         * (_pic16_initPaths): NEW, used to initialise search directories,
4387         * (_hasNativeMulFor): support functions for all except char/int
4388         multiplication, and char division,
4389         * (PIC16_port struct): modified entry for native mul support,
4390         * src/pic16/pcode.c (insertBankSwitch): modified to support the renamed
4391         no_banksel option,
4392         * (buildCallTree): call to register_usage is ifdef'ed out,
4393
4394 2004-05-22 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
4395
4396         * device/include/string.h: applied Stas Sergeev's patch to make this
4397         header file compatible with the preprocessor -Wundef option
4398         * src/SDCCmain.c (main): abort compilation if preprocessor reports
4399         failure (fixes bug #941458)
4400
4401 2004-05-21 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
4402
4403         * src/SDCCopt.c (killDeadCode): fixed bug #907733
4404         * support/Util/SDCCerr.c: reworded E_AUTO_ASSUMED diagnostic to clarify
4405         that the variable, not the function, should be static
4406         * src/SDCCval.c (valCastLiteral): fixed bit initialization from literal
4407         to be consistent with non-literal case
4408
4409 2004-05-19 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
4410
4411         * src/SDCCast.c (isConformingBody): fixed bug #949967
4412         * src/SDCCopt.c (cnvToFcall, cnvToFloatCast, cnvFromFloatCast,
4413         convilong): fixed bug #952086
4414
4415 2004-05-18 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
4416
4417         * src/SDCCmem.c (allocVariables): fixed bug #955321
4418
4419 2004-05-18 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
4420
4421         * src/hc08/main.c (_hc08_genAssemblerEnd),
4422         * src/SDCCdwarf2.c (dwOpenFile, dwCloseFile, dwWriteFunction,
4423         dwWriteModule, dwWriteCLine, dwWriteALine, dwarf2FinalizeFile):
4424         completely eliminated the use of a temporary file
4425         * src/SDCCdwarf2.c (dwWriteAttr): fixed bug with location list offset
4426         when more than one file linked
4427         * src/SDCCloop.c (pointerAssigned): fixed bug #954163
4428
4429 2004-05-17 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
4430
4431         * src/SDCCval.c (valForArray): applied Maarten Brock's patch #947682
4432         which fixes bug #543481
4433         * support/regression/tests/bug-751703.c: fixed comments left from a
4434         cut and paste error
4435         * src/SDCCdwarf2.c (dwCloseFile): don't explicitly close a temp file
4436         * src/SDCCdwarf2.c (dwTagFromType): added bitfield support
4437         * src/SDCCdwarf2.c (dwWriteSymbolInternal): handle extern within local
4438         scopes
4439         * src/SDCCdwarf2.c (dwWriteLineNumber): line number deltas are signed
4440         * src/SDCCmain.c (processFile, parseCmdLine): non-alphanumeric chars
4441         are now changed to underscores in moduleName
4442
4443 2004-05-15 Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
4444
4445         * as/mcs51/lkmem.c: better fix for bug #954173
4446
4447 2004-05-15 Maarten Brock <sourceforge.brock AT dse.nl>
4448         committed by Frieder Ferlemann <Frieder.Ferlemann AT web.de>
4449
4450         * device/include/c8051f020.h: newly added SiLabs (Cygnal) header file
4451         * device/include/c8051f000.h,
4452         * device/include/c8051f120.h,
4453         * device/include/c8051f300.h,
4454         * device/include/c8051f310.h,
4455         * device/include/c8051f320.h: updated (added _XPAGE, CAPN, CAPP,
4456         PWM16) and detab'ed
4457
4458 2004-05-15 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
4459
4460         * doc/sdccman.lyx: mentioned sourceforge's delay between web frontend
4461         and mailing lists, doc'ed --no-peep-comments, removed reference
4462         to knoppix (newest version has no LyX/LaTeX), other minor changes
4463         * src/SDCCglue.c (glue): save 2 bytes stack space with
4464         option --main-return. The ljmp could probably be avoided too
4465
4466 2004-05-14 Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
4467
4468         * as/mcs51/lkmem.c, as/mcs51/lkaomf51: fixed bug 954173
4469
4470 2004-05-14 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
4471
4472         * src/SDCCsymt.h: added IS_AUTO(symbol) test macro
4473         * src/SDCCopt.c (isLocalWithoutDef),
4474         * src/SDCCicode.c (operandFromSymbol): use the IS_AUTO test macro
4475         which adds a !IS_EXTERN codition. Fixes bugs #877426 and #751703.
4476         (credit to Maarten Brock for patch #949363, on which this is based)
4477         * support/regression/tests/bug-751703.c: some test cases of extern used
4478         within inner scopes.
4479
4480 2004-05-14 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
4481
4482         * src/SDCCdwarf2.c (dwMatchTypes): structs must have matching
4483         SPEC_STRUCT
4484         * src/SDCCdwarf2.c (dwTagFromType): fix to handle recursive
4485         struct definitions
4486         * src/SDCCdwarf2.c (dwWriteModule, dwNewDebugSymbol, dwWriteEndFunction,
4487         dwWriteLabel): fix to create valid debugger symbols even when
4488         the module name has non-alphanumeric symbols in it
4489         * src/SDCCdwarf2.c (dwWriteSymbolInternal): better detection for
4490         when a variable's allocation has been optimized away
4491
4492
4493 2004-05-13 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
4494
4495         * src/hc08/gen.c (hc08_emitDebuggerSymbol),
4496         * src/hc08/main.c,
4497         * src/mcs51/gen.c (mcs51_emitDebuggerSymbol),
4498         * src/mcs51/main.c,
4499         * src/ds390/gen.c (ds390_emitDebuggerSymbol),
4500         * src/ds390/main.c,
4501         * src/z80/gen.c (z80_emitDebuggerSymbol),
4502         * src/z80/main.c,
4503         * src/pic/gen.c (pic14_emitDebuggerSymbol),
4504         * src/pic/main.c,
4505         * src/pic16/gen.c (pic14_emitDebuggerSymbol),
4506         * src/pic16/main.c,
4507         * src/avr/gen.c (avr_emitDebuggerSymbol),
4508         * src/avr/main.c,
4509         * src/xa51/gen.c (xa51_emitDebuggerSymbol),
4510         * src/xa51/main.c,
4511         * src/SDCCdebug.c (emitDebuggerSymbol),
4512         * src/SDCCdebug.h,
4513         * src/port.h: added a debugger struct to the port struct. Added a
4514         callback for defining debugger symbols
4515
4516         * src/SDCCast.c (createLabel),
4517         * src/SDCC.y (labeled_statement): mark all compiler generated labels
4518         with isitmp = 1
4519         * src/SDCCicode.h,
4520         * src/SDCCicode.c (geniCodeFunctionBody): added a link from the FUNCTION
4521         iCode back to the ast for the function
4522
4523         * src/hc08/ralloc.c (hc08_assignRegisters),
4524         * src/hc08/ralloc.h: define a regs struct for the stack pointer. Removed
4525         unneeded fields from the regs struct.
4526         * src/hc08/gen.c (transferRegReg, genFunction, genEndFunction): use the
4527         pushReg() & pullReg() functions instead of emitcode()
4528
4529         * src/hc08/gen.c (genLabel, genhc08Code),
4530         * src/SDCCdebug.h: Added additional debugger hooks needed for DWARF
4531
4532         * src/cdbFile.c (cdbWriteLabel, cdbWriteScope): Added stubs for unneeded
4533         debugger hooks
4534
4535         * src/hc08/gen.c (genEndFunction, genhc08Code),
4536         * src/hc08/gen.h,
4537         * src/mcs51/gen.c (genEndFunction, gen51Code),
4538         * src/mcs51/gen.h,
4539         * src/ds390/gen.c (genEndFunction, gen390Code),
4540         * src/ds390/gen.h,
4541         * src/z80/gen.c (genEndFunction, genZ80Code),
4542         * src/z80/gen.h,
4543         * src/z80/z80.h,
4544         * src/pic/gen.c (genEndFunction, genpic14Code),
4545         * src/pic/gen.h,
4546         * src/pic16/gen.c (genEndFunction, genpic16Code),
4547         * src/pic16/gen.h,
4548         * src/avr/gen.c (genEndFunction, genAVRCode),
4549         * src/avr/gen.h,
4550         * src/xa51/gen.c (genEndFunction, genXA51Code),
4551         * src/xa51/gen.h,
4552         * src/cdbFile.c (cdbWriteFunction, cdbWriteEndFunction): moved cdb
4553         specific code to cdbFile.c and out of the backend code generators
4554
4555         * as/hc08/lkmain.c (main): removed OMF51 support from link-hc08
4556         * as/hc08/lkarea.c (lnkarea): areas with NOLOAD attribute default
4557         starting address is now 0
4558
4559         * as/hc08/asm.h,
4560         * as/hc08/m08pst.c,
4561         * as/hc08/asmain.c (asmbl): implemented the .sleb128 and .uleb128
4562         assembler directive for DWARF support
4563         * as/hc08/lkelf.c (elf): only increment address when rtflg[] set
4564
4565         * src/src.dsp,
4566         * src/Makefile.in,
4567         * src/SDCCdwarf2.c: preliminary DWARF (ver 2) debugger data generator
4568
4569 2004-05-04 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
4570
4571         * src/hc08/gen.c (genJumpTab, emitcode, genhc08code): fixed stack error
4572         and inappropriate peephole optimization in jump tables
4573
4574 2004-04-30 Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
4575
4576         * as/hc08/m08pst.c,
4577         * src/SDCCglue.c: sdccopt works for the hc08 port now
4578
4579 2004-04-27 Bernhard Held <bernhard AT bernhardheld.de>
4580
4581         * src/SDCCicode.c (geniCodePreInc, geniCodePreDec): fixed bug #942130
4582
4583 2004-04-27 Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
4584
4585         * as/hc08/lkelf.c: sdccconf.h is not available in WIN32
4586
4587 2004-04-24 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
4588
4589         * src/SDCCpeeph.c (replaceRule): support empty replacement peephole
4590         rules
4591         * src/SDCCmain.c,
4592         * src/SDCCglobl.h,
4593         * src/SDCCpeeph.c (getPeepLine): new option --no-peep-comments omits
4594         comments from the peephole optimizer replacement rules
4595         * src/SDCCmem.c (printAllocInfoSeg): give actual location of spilled
4596         symbols
4597         * src/SDCCcse.c (updateSpillLocation),
4598         * src/SDCCopt.c (killDeadCode, findReqv): better tracking of register
4599         equivalents
4600         * src/hc08/ralloc.c (regTypeNum): pseudo symbols must be in DATA only
4601         * src/hc08/main.c (_hc08_finaliseOptions): made pointers to stack
4602         objects far pointers
4603
4604 2004-04-23 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
4605
4606         * src/SDCCsymt.h: a missing part of my last change
4607         * src/pic/ralloc.c (regTypeNum),
4608         * src/pic16/ralloc.c (regTypeNum): fixed statement/declaration order
4609
4610 2004-04-23 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
4611
4612         * src/SDCCicode.h,
4613         * src/SDCCicode.c (aggrToPtrDclType),
4614         * src/SDCCptropt.h,
4615         * src/SDCCptropt.c (ptrBaseRematSym, ptrPseudoSymSafe,
4616         ptrPseudoSymConvert),
4617         * src/pic/ralloc.c (regTypeNum),
4618         * src/pic16/ralloc.c (regTypeNum),
4619         * src/hc08/ralloc.c (regTypeNum),
4620         * src/ds390/ralloc.c (regTypeNum),
4621         * src/mcs51/ralloc.c (regTypeNum): check for dependancy hazards before
4622         creating pseudo symbols (fixed bugs #777768, #930484, and #933966)
4623
4624 2004-04-22 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
4625
4626         * link/z80/lkmain.c (afile),
4627         * as/hc08/lkmain.c (afile),
4628         * as/mcs51/lkmain.c (afile): fix suggested by Maarten Brock to
4629         prevent a pointer problem when a filename has no directory and
4630         no extension specified.
4631
4632 2004-04-21 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
4633
4634         * link/z80/lkmain.c (afile): allow periods in directory names
4635         * link/z80/lkmain.c (afile),
4636         * as/mcs51/lkmain.c (afile),
4637         * as/hc08/lkmain.c (afile): allow linker script file to have an
4638         extension other than ".lnk"
4639         * link/z80/lklex.c (getfid),
4640         * link/z80/lkmain.c (parse),
4641         * as/mcs51/lklex.c (getfid),
4642         * as/mcs51/lkmain.c (parse),
4643         * as/hc08/lklex.c (getfid),
4644         * as/hc08/lkmain.c (parse): Support comments in the linker script
4645         file on lines by themselves and after filenames
4646
4647 2004-04-20 Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
4648
4649         * as/link_hc08.dsp: Added as/hc08/lkelf.c to project.
4650
4651 2004-04-20 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
4652
4653         * src/z80/peeph-z80.def: removed some peephole rules that don't
4654         work with multibyte arithmetic (fixed bug #937126)
4655         * src/mcs51/peeph.def: fixed peephole rules 150-158 to apply only
4656         to registers and not global variables
4657         * src/SDCCicode.c (geniCodeAssign, ast2iCode, geniCodePostInc,
4658         geniCodePreInc, geniCodePostDec, geniCodePreDec,
4659         geniCodeLogicAndOr, geniCodeConditional): enforce strict lvalue
4660         checking for assignments not internally generated (fixed bug #931895)
4661         * src/SDCC.y (postfix_expr): ignore typedefs when looking for a
4662         structure member (fixed bug #930072)
4663
4664 2004-04-19 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
4665
4666         * src/SDCCmain.c (linkEdit),
4667         * src/hc08/main.c (_hc08_parseOptions),
4668         * as/hc08/Makefile.in,
4669         * as/hc08/aslink.h,
4670         * as/hc08/asm.h,
4671         * as/hc08/m08pst.c,
4672         * as/hc08/lkrloc.c (relr, rele),
4673         * as/hc08/lkarea.c (lnkarea)
4674         * as/hc08/lkmain.c (afile, parse),
4675         * as/hc08/lkelf.c: support for ELF output
4676         * as/hc08/lks19.c (s19),
4677         * as/hc08/lkihx.c (ihx): ignore areas with the NOLOAD attribute
4678
4679 2004-04-17 Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
4680
4681         * as/mcs51/lkihx.c: Fixed bug #899105.
4682
4683 2004-04-16 Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
4684
4685         * doc/sdccman.lyx: Added instructons on how to convert MSVC .dsw and
4686         .dsp files from Unix to DOS.
4687
4688 2004-04-16 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
4689
4690         * doc/sdccman.lyx: removed the ANSI-C noncompliance note regarding
4691         function pointers; we have been compliant for several months now.
4692         * src/mcs51/ralloc.c (serialRegAssign): enabled part of my 2004-04-13
4693         change that was accidently commented out
4694         * src/mcs51/gen.c (freeAsmop, getFreePtr, freeForBranchAsmop, genIfxJump,
4695         genCmpEq, jmpTrueOrFalse, genCmp, genAnd, genOr, genXor, genIfx): fixed
4696         bug #922319
4697
4698 2004-04-15 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
4699
4700         * src/hc08/gen.c: output of all of the internal debugging information
4701         is now controlled by the D() macro; it is disabled by default
4702
4703 2004-04-13 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
4704
4705         * src/mcs51/ralloc.c (serialRegAssign, fillGaps, allocThisReg): try
4706         harder to keep the same registers during a CAST iCode
4707         * src/SDCCopt.c (optimizeCastCast, eBBlockFromiCode): casts of char to
4708         long via int can be done in a single cast, if the signedness is
4709         correct.
4710         * support/regression/tests/bug-927659.c: fixed to avoid conflict with
4711         putchar() in tinibios.c in ds390's library
4712
4713 2004-04-12 Bernhard Held <bernhard AT bernhardheld.de>
4714
4715         * src/SDCCast.c (decorateType): fixed bug #898889,
4716         cast result of a literal complement too
4717         * src/mcs51/ralloc.c (packRegsForAssign): fixed bug #930931,
4718         fixed check for bitfields
4719
4720 2004-04-11 Bernhard Held <bernhard AT bernhardheld.de>
4721
4722         * src/SDCCicode.c (geniCodeLogic): made it static,
4723         (geniCodeLogicAndOr): added in order to fix bug #905492,
4724         (ast2iCode): fixed bug #905492
4725         * support/regression/tests/bug-905492.c: added
4726         * src/SDCCast.c (decorateType): don't decorate/process parms twice,
4727         (processParms): fixed bug #927659: don't copy parms, this will clear
4728         decorated flag
4729         * support/regression/tests/bug-927659.c: added
4730
4731 2004-03-29 Bernhard Held <bernhard AT bernhardheld.de>
4732
4733         * src/SDCCast.c (addCast): don't cast float to char
4734         * device/lib/libsdcc.lib: added _memmove
4735
4736 2004-03-28 Bernhard Held <bernhard AT bernhardheld.de>
4737
4738         * device/lib/large/Makefile: fixed parallel execution by
4739         replacing `make` by `$(MAKE)`
4740
4741 2004-03-28 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
4742
4743         * src/hc08/gen.c (genPointerGetSetOfs): correctly handle 1 byte array
4744         offsets (fixes bug #923936)
4745
4746 2004-03-26 Bernhard Held <bernhard AT bernhardheld.de>
4747
4748         * device/lib/small/Makefile: fixed parallel execution by
4749         replacing `make` by `$(MAKE)`
4750
4751 2004-03-23 Bernhard Held <bernhard AT bernhardheld.de>
4752
4753         * device/lib/vprintf.c (vsprintf): minor optimization, see bug #801101
4754
4755 2004-03-23  Scott Dattalo  <scott AT dattalo.com>
4756
4757         * src/pic/gen.c (genCpl): multi-byte complements were not working.
4758         * src/regression/Makefile: Regression test was not running.
4759
4760 2004-03-23 Bernhard Held <bernhard AT bernhardheld.de>
4761
4762         * src/SDCCast.c (resultTypePropagate, decorateType): avoid promotion to int for
4763         complement if possible
4764         * src/SDCCval.c (valComplement),
4765         * src/SDCCicode.c (operandOperation): fixed complement of literal
4766         * support/regression/tests/onebyte.c (testComplement): added
4767
4768 2004-03-22 Bernhard Held <bernhard AT bernhardheld.de>
4769
4770         * src/SDCCast.c (processParms): fixed bug #920866; decorateType() can
4771         return an optimized tree; actually replace actParm with the new tree
4772         * src/SDCCast.h: added some parantheses to remove side effects
4773         * support/regression/tests/bug-920866.c
4774
4775 2004-03-21  Scott Dattalo  <scott AT dattalo.com>
4776         * src/pic/gen.c, src/pic/gen.h, src/pic/genarith.c, src/pic/pcode.c:
4777         Bit operands were not being handled properly in the pic14 port.
4778         (now src/regression/add.c passes again).
4779
4780 2004-03-20 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
4781
4782         * src/SDCC.y (labeled_statement): case and default no longer require
4783         a following statement (RFE #893037)
4784
4785 2004-03-19 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
4786
4787         * src/mcs51/gen.c (pushSide, genSignedRightShift, genDjnz, geniPush):
4788         use MOVA macro to avoid "mov a,acc" when peephole optimizer is
4789         disabled (fixes bug #916294)
4790         * sim/ucsim/s51.src/mov.cc (inst_mov_a_addr): Throw an error on
4791         "mov a,acc"; patch provided by Lenny Story
4792         * device/include/mc68hc908gp32.h: header contibuted by Juan Gonzalez
4793
4794 2004-03-19 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
4795
4796         * src/mcs51/gen.c (genFunction): optimize RECEIVE in reentrant
4797         functions
4798         * src/ds390/gen.c (genFunction, genEndFunction),
4799         * src/ds390/ralloc.c (ds390_assignRegisters),
4800         * src/mcs51/gen.c (genFunction, genEndFunction, mcs51_assignRegisters):
4801         * src/mcs51/ralloc.c (mcs51_assignRegisters): Skip optimizing registers
4802         pushed if there are parameters passed on the stack. Also, a cleaner
4803         way to decide if r0/r1 should be pushed/popped. (Together they fix
4804         bug #918693)
4805
4806 2004-03-18 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
4807
4808         * doc/sdccman.lyx,
4809         * device/lib/mcs51/crtpagesfr.asm,
4810         * device/lib/mcs51/crtxinit.asm,
4811         * device/lib/mcs51/crtxstack.asm: Changed name of _PAGESFR to _XPAGE
4812         to avoid confusion with Si Lab's SFRPAGE register.
4813
4814 2004-03-17 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
4815
4816         * src/SDCCglue.c (emitMaps): allow public sfr variables
4817         * src/SDCCglue.c (initialComments): include compiler build date
4818         with compiler version and put the timestamp of the generated
4819         assembly file on a serperate line to be less confusing.
4820         * src/port.h: added genInitStartup hook
4821         * src/avr/main.c,
4822         * src/ds390/main.c,
4823         * src/hc08/main.c,
4824         * src/pic/main.c,
4825         * src/pic16/main.c,
4826         * src/xa51/main.c,
4827         * src/z80/main.c: genInitStartup initialize as NULL (default to
4828         historical behaviour)
4829         * src/SDCCglue.c (glue): _sdcc_gsinit_startup is now port specific.
4830         * src/mcs51/main.c: (_mcs51_genInitStartup, _mcs51_genExtraAreas,
4831         _mcs51_genXINIT, _mcs51_genRAMCLEAR): link initialization code from the
4832         library instead of hard coding it into the compiler.
4833         * support/regression/ports/mcs51-stack-auto/spec.mk,
4834         * src/SDCCmain.c (linkEdit): added mcs51.lib to the link libraries
4835         * device/lib/mcs51/Makefile,
4836         * device/lib/small/Makefile,
4837         * device/lib/large/Makefile,
4838         * device/lib/mcs51/crtpagesfr.asm,
4839         * device/lib/mcs51/crtstart.asm,
4840         * device/lib/mcs51/crtxclear.asm,
4841         * device/lib/mcs51/crtxinit.asm,
4842         * device/lib/mcs51/crtclear.asm,
4843         * device/lib/mcs51/crtxstack.asm: move most of the mcs51 C runtime
4844         startup/initialization out of src/SDCCglue.c and src/mcs51/main.c
4845         and into user configurable files.
4846         * device/lib/clean.mk: clean mcs51 directory too
4847         * support/regression/tests/longlit.c: added static to T1 declaration
4848         * doc/sdccman.lyx: documented _PAGESFR sfr for customizing pdata
4849         accesses in the initialization code
4850
4851 2004-03-14 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
4852
4853         * device/include/mc68hc908qy.h: corrected declarations of FLBPR and
4854         OSCTRIMVAL as noted in bug #916008
4855
4856 2004-03-14 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
4857
4858         * src/SDCCloop.c (basicInduction): fixed bug with loop induction
4859         in loops with multiple exits (reported as incorrect registers
4860         used by Martin Helmling in Sdcc-user list)
4861
4862 2004-03-12 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
4863
4864         * src/ds390/main.c (_ds390_genAssemblerPreamble): cosmetic change,
4865         made ds390 register extensions look less like error messages
4866
4867 2004-03-12 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
4868
4869         * src/SDCCglue.c (printIvalPtr): fixed bug with pointer initializer
4870         reported by Adam Wozniak in Sdcc-user list
4871
4872 2004-03-10 Bernhard Held <bernhard AT bernhardheld.de>
4873
4874         * src/SDCCast.c (decorateType): fixed with bug and promotion in
4875         arithmetic optimizations, added debug output
4876
4877 2004-03-09 Bernhard Held <bernhard AT bernhardheld.de>
4878
4879         * device/lib/time.c (mktime): fixed bug reported by Bert Thomas
4880         * sdcc.spec: updated and split sdcc into 3 rpms
4881         * src/SDCCast.c (decorateType): &|^ don't need addCast(); addCast() is
4882         needed for literals of LEFT_OP and '+'
4883         * src/SDCCicode.c (geniCodeLogic): I must have been braindead when I
4884         introduced RESULT_TYPE_NOPROM
4885         (geniCodeMultiply): fixed logic for decision if mul is optimized to
4886         left shift
4887         * src/SDCCsymt.c (computeType): op is int; added RESULT_TYPE_OTHER;
4888         limited promotion to int only for '*'
4889         * src/SDCCsymt.h (computeType): op is int, removed RESULT_TYPE_NOPROM
4890
4891 2004-03-09 Hans Dorn <hjdorn AT users.sourceforge.net>
4892
4893         * src/pic16/gen.c (genSkip),
4894         (genc16bit2lit), (gencjneshort): commented out
4895         (is_LitOp): new helper function, checks operand type
4896         (genCmpEq): rewritten
4897
4898 2004-03-08 Bernhard Held <bernhard AT bernhardheld.de>
4899
4900         * support/regression/tests/bug-908454.c: added
4901
4902 2004-03-07 Bernhard Held <bernhard AT bernhardheld.de>
4903
4904         * src/SDCCast.c (addCast): fixed bug #908454 by promoting bits to char
4905         * src/SDCCicode.c (usualBinaryConversions): op needs int type
4906         (geniCodeCast): cosmetic, don't preserve bit storage class
4907         (geniCodeLeftShift): added promotion
4908         (geniCodeLogic): fixed regression
4909         * src/SDCCsymt.c (computeTypeOr): accept bits too
4910         (compareType): 2nd part of fix for bug #908454, needed for bitfields
4911
4912 2004-03-07  Borut Razem <borut.razem AT siol.net>
4913
4914         * support/Util/findme.c: alloca() replaced with malloc()/free() pair
4915
4916 2004-03-06 Vangelis Rokas <vrokas AT otenet.gr>
4917
4918         * src/pic16/ralloc.c (pic16_genPackRegisters): reverted to old
4919         version of pic16_genPackRegisters which does not check if ic is a
4920         CAST operator,
4921         * src/pic16/gen.c (ifxForOp): disabled new and untested code in
4922         function cause string1.c regression test fails
4923
4924 2004-03-06 Bernhard Held <bernhard AT bernhardheld.de>
4925
4926         * sim/ucsim/configure.in,
4927         * sim/ucsim/configure,
4928         * sim/ucsim/doc/Makefile.in: use docdir
4929         * src/SDCC.y: fixed sbit atrributes
4930         * src/SDCCast.c (getResultTypeFromType): added support for bitfields
4931         * src/SDCCast.c (decorateType): |^& need special promotion handling
4932         * src/SDCCast.h,
4933         * src/SDCCsymt.h: moved definition of RESULT_TYPE
4934         * src/SDCCsymt.h (computeType),
4935         * src/SDCCicode.c: computeType() needs op
4936         * src/SDCCsymt.c (checkTypeSanity),
4937         * doc/sddman.lyx: "plain" bitfields are unsigned
4938         * src/SDCCsymt.c (computeTypeOr): added
4939         * src/SDCCsymt.c (computeType): added support for bitfields, fixed
4940         |^& ops
4941         * src/SDCCval.c (val*): computeType() needs op
4942         * src/SDCCval.c (valCastLiteral): fixed casting of bitfields
4943         * support/regression/tests/onebyte.c: added tests for |^&
4944
4945 2004-03-06 Hans Dorn <hjdorn AT users.sourceforge.net>
4946
4947         * src/pic16/gen.c: (genpic16Code) use copy of printILine's output
4948         for writing icode into asm output.
4949
4950 2004-03-05 Vangelis Rokas <vrokas AT otenet.gr>
4951
4952         * src/pic16/device.c: added some debug lines enabled
4953         with macro DEBUG_CHECK,
4954         * src/pic16/genarith.c: more debug in genPlus,
4955         * (pic16_genUMult8XLit_16, pic16_genUMult8X8_16): removed,
4956         * (pic16_genUMult16X16_16, pic16_genUMult16XLit_16): NEW,
4957         * src/pic16/gen.c: added prototypes for pic16_genMult16X16_16,
4958         * (aopForSym): onStack symbols are re-placed in data memspace,
4959         and onStack flag is cleared,
4960         * (pic16_popGetTempReg, pic16_popReleaseTempReg): modified to
4961         copy temporary pcodeop,
4962         * (genPcall): added warning for not updating PCLATU,
4963         * (genFunction): removed test with IFFUNC_CALLEESAVES, its
4964         always true for pic16 port,
4965         * (genMultOneWord): NEW, supports integer multiplication,
4966         * (genMult): modified to call genMultOneWord,
4967         * (ifxForOp): added warning when return NULL,
4968         * src/pic16/glue.c (pic16emitRegularMap): symbol implicit
4969         flag is set before call to operandFromSymbol for implicit
4970         added structures,
4971         * src/pic16/main.c (_pic16_finaliseOptions): options.float_rent,
4972         options.intlong_rent are set by default,
4973         * (_hasNativeMulFor): modified to allow port generation of integer
4974         multiplication,
4975         * src/pic16/ralloc.c (pic16_allocDirReg): commented out line which
4976         set regtype to REG_SFR for all registers, restricting seting the
4977         accessBank flag for registers 0<= r < 0x80 and 0xf80<=r<=0xfff,
4978
4979 2004-03-05 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
4980
4981         * src/mcs51/peephole.def: added 251.b and 253.x. 253.x are applied
4982         more than 500 times in the regression tests
4983
4984 2004-03-05 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
4985
4986         * support/Util/SDCCerr.h,
4987         * support/Util/SDCCerr.c,
4988         * src/SDCC.y (struct_or_union_specifier, enum_specifier,
4989         enumerator_list),
4990         * src/SDCCsymt.c (addSymChain): show location of oriignal definition
4991         for symbol conflicts.
4992         * support/valdiags/tests/enum.c,
4993         * support/valdiags/tests/tentdecl.c,
4994         * support/valdiags/tests/struct.c: expect possible error messages
4995         referring to original symbol definitions.
4996         * src/SDCC.y (struct_or_union_specifier, struct_declarator),
4997         * src/SDCCsymt.h,
4998         * src/SDCCsymt.c (promoteAnonStructs): support anonymous struct/union
4999
5000 2004-03-03 Hans Dorn <hjdorn AT users.sourceforge.net>
5001
5002         * src/pic16/gen.c (gencjne): fixed for right=REG / left=LIT
5003
5004 2004-02-03 Vangelis Rokas <vrokas AT otenet.gr>
5005
5006         * src/pic16/ralloc.c (newReg): fixed bug #908929
5007
5008 2004-03-02 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
5009
5010         * src/ds390/gen.c: added missing #include "main.h"
5011
5012 2004-03-02 Vangelis Rokas <vrokas AT otenet.gr>
5013
5014         * src/pic16/device.c (checkAddSym): NEW, adds a symbol to set while
5015         checking if symbol is already in set,
5016         * src/pic16/device.h: prototype for checkAddSym,
5017         * src/pic16/gen.c: (_G): added entry interruptvector,
5018         * (assignResultValue): removed some commented out lines,
5019         * (genFunction): check for ISR via sym->type, absolute section for
5020         interrupt code is created via a new pBlock, the goto instruction is
5021         placed now correctly at the interrupt vector position, changed all
5022         references from ivec to _G.interruptvector,
5023         * WREG,STATUS,BSR are not saved in stack upon an entry to interrupt
5024         is the interrupt is a high priority one, same for return from ISR,
5025         * src/pic16/glue.c: changed all calls of addSetHead for publics and
5026         externs to calls of checkAddSym,
5027         * src/pic16/pcode.c (pic16_pBlockConvert2*): emit warning when
5028         pic16_pcode_verbose flag is set,
5029         * src/pic16/pcode.h: extern to pic16_pcode_verbose,
5030         * src/pic16/pcoderegs.c: message about how many registers are saved
5031         will only be emitted if pic16_pcode_verbose flag is set,
5032
5033 2004-03-02 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
5034
5035         * src/ds390/ralloc.h,
5036         * src/ds390/ralloc.c (ds390_regWithIdx),
5037         * src/ds390/gen.c (emitcode),
5038         * src/ds390/main.h,
5039         * src/ds390/main.c (instructionSize, ds390newAsmLineNode, updateOpRW,
5040         ds390opcodeCompare, asmLineNodeFromLineNode, getInstructionSize,
5041         ds390operandCompare, getRegsRead, getRegsWritten,
5042         initializeAsmLineNode): customized instruction size calculation for
5043         ds390, started basis for some register optimizations
5044         * src/ds390/gen.c (gen390Code, emitcode): associate iCodes with
5045         corresponding assembly output
5046         * src/ds390/gen.c (genFunction, genEndFunction): added case to handle
5047         missing push/pop of r0/r1. Optimized push/pops
5048
5049 2004-03-01 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
5050
5051         * src/mcs51/main.c (instructionSize): fixed ACALL size
5052         * src/mcs51/main.c (updateOpRW): fixed bug with @dptr, @a+dptr operands
5053
5054 2004-03-01 Vangelis Rokas <vrokas AT otenet.gr>
5055
5056         * src/pic16/device.c (pic16_dump_section): fixed a bug that allowed
5057         the sorting of rlist with NULL elements
5058         * (print_idataType, print_idata): NEW to create idata sections
5059         * src/pic16/device.h: idataSymSet new variable
5060         * src/pic16/gen.c (genFunction): fixed some bugs in string
5061         comparing, improved the absolute section creation for ISRs,
5062         added FSR0L/FSR0H in registers that are saved in an ISR,
5063         * (genInline): fixed the processing of inline snippets,
5064         now they undergo no process by the peephole optimizer
5065         * src/pic16/glue.c (pic16emitRegularMap): symbols with initialiser
5066         are placed in idataSymSet,
5067         * (pic16emitStaticSeg): extern symbols are added in externs,
5068         * src/pic16/ralloc.c (pic16_allocDirReg): work around to reduce bank
5069         switching when aboslute variables are placed in access bank memory
5070         * (pic16_writeUsedRegs): added call to pic16_dump_idata,
5071         * (packRegsForSupport,packRegsForAccUse,packRegsForOneuse):
5072         commented out with #if,
5073         * (pic16_packRegisters): reintroduce the check for CAST because some
5074         symbols are not correctly handled,
5075         * src/pic16/pcode.h: changed the definition of pCodeAsmDir to hold a
5076         pCodeInstruction instead of pCode,
5077         * src/pic16/pcode.c (pic16_newpCodeAsmDir): modified for the new
5078         pCodeAsmDir definition,
5079         * (pic16_pCode2str, genericPrint): when an AsmDir pcode has a NULL
5080         directive, then the argument directive is emitted without the leading
5081         tab, hack for inline labels which must be in the first column,
5082         * (compareLabel,pic16_findNextInstruction),
5083         * (pic16_findPrevInstruction): added case for PO_ASMDIR,
5084         * (insertBankSwitch): modified for the new pCodeAsmDir,
5085
5086 2004-03-01 Hans-Juergen Dorn <hans.dorn AT apl-landau.de>
5087         patch applied by Vangelis Rokas <vrokas AT otenet.gr>
5088
5089         * src/pic16/gen.c (pic16_popGet): case PO_DIR, adds the offset to
5090         instance,
5091         * (pushSide): commented out with #if,
5092         * (assignResultValue): fixed some typos in saving
5093         registers,
5094         * (genPcall): FIXED and sync'ed with genCall,
5095         * (genDataPointerGet,genDataPointerSet): using offset not leoffset
5096         * (genNearPointerGet): fixed to handle some more cases,
5097         implementation scheme via table reads,
5098         * (genConstPointerGet): modified to access code memory correct,
5099         * (genCodePointerGet,genNearPointerSet,genGenPointerSet): modified
5100         and improved to handle some cases
5101         * glue.c (printIvalType,printIvalChar,emitStaticSeg): use "DB"
5102         instead of "RETLW" for init data
5103         * src/pic16/ralloc.c (pic16_allocDirReg): warning when a symbol is
5104         not IN_DIRSPACE, work around to reduce bank switching when aboslute
5105         variables are placed in access bank memory (<0x80 and >=0xf80),
5106         * src/pic16/pcode.c: added SFRs TBLPTR, TABLAT, added opcodes TBLRD,
5107         TBLRD_POSTINC,TBLRD_POSTDEC,TBLRD_PREINC,TBLWT,TBLWT_POSTINC,
5108         TBLWT_POSTDEC,TBLWT_PREINC
5109         * Fixed initialisation of BSR, set "alias" for SSAVE to "0"
5110         * (pic16_emitDB,pic16_flushDB): New functions to generate "DB"
5111         directives
5112         * (pic16_pCodeConstString): use "DB" instead of "RETLW"
5113         * src/pic16/pcode.h: added TBLRD*,TBLWT*, added pic16_emitDB,
5114         pic16_flushDB, made pic16_newpCodeAsmDir public, added TBLPTR, TABLAT
5115         * src/pic16/ralloc.h: added IDX_BSR,IDX_TBLPTR*,IDX_TABLAT
5116
5117 2004-02-29  Borut Razem <borut.razem AT siol.net>
5118
5119         * src/Makefile.in, src/SDCCutil.c, support/Util/findme.c,
5120         support/Util/findme.h, support/Util/system.h: enhance binary relative
5121         search for lib and include by using findProgramPath()
5122
5123 2004-02-28 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
5124
5125         * src/SDCCpeeph.h,
5126         * src/SDCCpeeph.c (pcDistance),
5127         * src/port.h,
5128         * src/mcs51/ralloc.h,
5129         * src/mcs51/ralloc.c (mcs51_regWithIdx),
5130         * src/mcs51/main.h,
5131         * src/mcs51/main.c (instructionSize, asmLineNode, updateOpRW,
5132         mcs51opcodeCompare, asmLineNodeFromLineNode, getInstructionSize,
5133         mcs51operandCompare, getRegsRead, getRegsWritten): made instruction
5134         size calculation port specific, started basis for some register
5135         optimizations
5136         * src/mcs51/gen.c (genFunction, genEndFunction): added case to handle
5137         missing push/pop of r0/r1. Optimized push/pops
5138         * src/mcs51/ralloc.c (packregisters): fixed bug #727095
5139         * device/lib/_modsint.c (_modsint),
5140         * device/lib/_modslong.c (_modslong): fixed sign of result in non-asm
5141         and stack version so regression tests pass
5142
5143 2004-02-26 Bernhard Held <bernhard AT bernhardheld.de>
5144
5145         * src/Makefile.in (dep): include SLIBOBJS in dependency check
5146         * src/SDCCast.c (decorateType): catch another small optimization
5147         with '?' operator
5148         * src/SDCCsymt.c (computeType): added comments and cosmetic changes
5149         * src/SDCCval.c (valMult, valDiv, valMod, valPlus, valMinus, valShift):
5150         modified to finally use computeType() all over SDCC,
5151         see Feature Request #877103
5152         * src/SDCCval.h: cosmetic
5153         * src/SDCCicode.c (operandOperation): fixed EQ_OP bug, now same as in
5154         valCompare(); regression tested in muldiv.c
5155         * support/regression/tests/muldiv.c (testMod): mod sign follows
5156         dividend only
5157
5158 2004-02-23 Bernhard Held <bernhard AT bernhardheld.de>
5159
5160         * src/SDCCast.c (decorateType): fixed bug #902362
5161         * doc/INSTALL.txt: fixed install instructions for win32
5162
5163 2004-02-21 Bernhard Held <bernhard AT bernhardheld.de>
5164
5165         * device/include/Makefile.in (install): fixed by replacing spaces
5166         by tabs
5167         * doc/README.txt,
5168         * doc/INSTALL.txt: updated for release
5169         * doc/sdccman.lyx: added warning for --xstack being buggy
5170
5171 2004-02-20 Bernhard Held <bernhard AT bernhardheld.de>
5172
5173         * src/pic16/ralloc.c (packRegsForAccUse):  disabled functions with #if
5174         to eliminate build warnings.
5175         * src/pic16/gen.c (pic16_popGet): fixed for gcc 2.95.4
5176
5177 2004-02-20 Vangelis Rokas <vrokas AT otenet.gr>
5178            Hans-Juergen Dorn <hans.dorn AT apl-landau.de>
5179
5180         * doc/sdccman.lyx: removed PIC16 from PIC16 Port Specific Options,
5181         removed -penable-stack, added comment for stack pragma, added
5182         warning for not initializing the stack/frame registers, removed
5183         comment at interrupts section
5184
5185         Stack is made permanent, there is no ability to disable stack usage.
5186         * src/pic16/device.h,
5187         * src/pic16/device.c: removed all references to USE_STACK macro,
5188         * src/pic16/device.c (pic16_dump_section): when no elements in
5189         rlist, free rlist before return,
5190         * (pic16_dump_int_registers): NEW, internal registers are a new set
5191         of general purpose registers reused by each function,
5192         * (checkAddReg): returns 1 if registers is added to set,
5193         * (pic16_groupRegistersInSection): when a registers is of type
5194         PO_GPR_TEMP add it in pic16_int_regs and not in pic16_rel_udata,
5195         * src/pic16/device.h: memRange and Assigned Memory are deleted,
5196         SRCASECMP macro is moved here from device.c
5197         * src/pic16/genarith.c (pic16_pCodeOpType): added cases for
5198         PO_PCLATU, PO_PRODL, PO_PRODH,
5199         * (pic16_pCodeOpType, genMinus,
5200         changed compares to "a" register, with AOP_ACC,
5201         * (pic16_genPlus): fixed some bugs and indented properly,
5202         * (pic16_addSign): changed size to size+offset in the MOVWF
5203         instruction,
5204         * (pic16_genUMult8XLit_8): NEW, uses processor MULLW instruction to
5205         multiply 8-bit operand by literal, result is 8-bit,
5206         * (pic16_genUMult8X8_8): NEW, uses processor MULWF instruction to
5207         multiply 2 8-bit operand, result is 8-bit,
5208         * (pic16_genMult8X8_8): modified to call genUMult8X*_8 functions and not
5209         genUMult8X*_16,
5210         * src/pic16/gen.c: changed accUse to contain WREG only,
5211         * (pic16_emitcomment): renamed to pic16_emitpcomment,
5212         * (aopForSym): allocated dir register when IN_DIRSPACE(space) is,
5213         true, do not use immediate addressing any more unless sym is a
5214         pointer in codespace,
5215         * (aopForRemat): do not use immediate addressing when symbol not in
5216         codespace and when symbol's address is requested,
5217         * (aopOp): for-loop in if(sym->accUse) is modified for the new
5218         accUse size (= 1),
5219         * (aopGet): added case for AOP_ACC and don't return "accumulator
5220         bug" but WREG instead,
5221         * (popGetTempReg): pushes contents of temporary register in stack,
5222         * (popReleaseTempReg): pops contents of temporary register from
5223         stack. Use popGetTempReg/popReleaseTempReg in aligned pairs,
5224         * (pic16_popGet): separated case AOP_ACC to return register WREG
5225         from processor registers, AOP_PCODE not checks if pcop is PO_DIR
5226         or PO_IMMEDIATE and initializes their instance/offset appropriately,
5227         * The whole issue with aopForSym,aopForRemat,popGet) is to minimize
5228         the use of immediate pointers to certain cases only.
5229
5230         * (pic16_pushpCodeOpReg, pic16_poppCodeOpReg): use pic16_popGet2p,
5231         * (pic16_loadFromReturn, pic16_storeForReturn: NEW,
5232         * (assignResultValue, genCall, genRet): modified to use the new
5233         function return value scheme with WREG,PRODL,PRODH,FSR0L and FSR0,
5234         genPcall is still broken,
5235         * (genFunction): added code to create 'A' type pBlocks when
5236         interrupt functions are generated, code not extensively tested yet,
5237         ISRs push WREG,STATUS,BSR,PRODL,PRODH,FSR0L,FSR0H registers on stack,
5238         * (genEndFunction): modified so ISRs pop stored registers from stack,
5239         * (genMultOneByte): cleanup,
5240         * (AccRsh): added flag andmask, to and result with appropriate mask,
5241         * (genUnpackBits,genPackBits): fixed and can handle bit fields,
5242         * (genDataPointerGet): fixed and reenabled its use,
5243         * (genNearDataPointerGet): bugs fixed,
5244         * (genDataPointerSet): bugs fixed,
5245         * src/pic16/genutils.c: added functions pic16_DumpValue,pic16_DumpAop,
5246         pic16_DumpSymbol, pic16_DumpOp,
5247         * src/pic16/genutils.h: function prototypes for the above functions,
5248         * src/pic16/glue.c: new flags initsfpnt, to initialize stack/frame
5249         pointers,
5250         * (pic16emitRegularMap): many many many improvements, but needs a
5251         major cleanup,
5252         * src/pic16/main.c: enable_stack in pic16_options is removed,
5253         * (_pic16_parseOptions): removed command line options -penable-stack,
5254         * (_process_pragma): emit stack symbol only when stack pragma is
5255         processed,
5256         * src/pic16/pcode.c: pic16_pc_fsr0 is removed, all operations are
5257         redirected to FSR0L/FSR0H pair,
5258         * (pic16_get_op, pic16_get_op2): modifications and improvements,
5259         * (pic16_getRegFromInstruction, pic16_getRegFromInstruction2): added
5260         cases PO_PRODL,PO_PRODH, pic16_getRegFromInstruction2 returns sane
5261         for immediates,
5262         * (insertBankSwitch): modified to handle cases like: (alfa + 1)
5263         * (dumpPicOptype): NEW,
5264         * src/pic16/pcode.h: added PO_PCLATU,PO_PRODL,PO_PRODH in enum,
5265         * src/pic16/pcoderegs.c (pCodeRegMapLiveRangesInFlow): fixed bug
5266         with movff instruction,
5267         * src/pic16/ralloc.c: renamed typeRegWithIdx to pic16_typeRegWithIdx,
5268         added pic16_int_regs, some packRegsFor* functions are commented out,
5269         because produce errors,
5270         * src/pic16/NOTES: minor modifications
5271
5272 2004-02-18  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
5273
5274         * as/mcs51/aslink.h, as/mcs51/lkarea.c, as/mcs51/lkdata.c, as/mcs51/lkmain.c,
5275         as/mcs51/lkmem.c, src/SDCCglob.h, src/SDCCmain.c: added options --stack-size and
5276         --pack-iram.
5277         * doc/sdccman.lyx: described options --stack-size and --pack-iram.
5278         * as/mcs51/lkaomf51.c: fixed bug #895763
5279
5280 2004-02-17 Bernhard Held <bernhard AT bernhardheld.de>
5281
5282         * device/include/c8051f320.h: added. Contributed by Maarten Brock.
5283
5284 2004-02-17 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
5285
5286         * doc/sdccman.lyx: added details about the HC08 storage classes and
5287         interrupts, fixed the register usage info for z80 & gbz80
5288
5289 2004-02-17 Vangelis Rokas <vrokas AT otenet.gr>
5290
5291         * doc/sdccman.lyx: added more pic16 port documentation
5292         * device/include/pic16/: added header pic18fregs.h
5293
5294 2004-02-16 Bernhard Held <bernhard AT bernhardheld.de>
5295
5296         * doc/sdccman.lyx: added Vangelis' contribution
5297
5298 2004-02-16 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
5299
5300         * src/SDCClrange.c (rlivePoint): live range of SEND operand should
5301         extend to the next CALL or PCALL, not just to the next CALL.
5302
5303 2004-02-16 Vangelis Rokas <vrokas AT otenet.gr>
5304
5305         * src/pic16/gen.c (genInline): fixed bug #896482 with inline assembly
5306
5307 2004-02-15 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
5308
5309         * src/mcs51/ralloc.c (packRegsForAssign, reassignAliasedSym): fixed
5310         bug #895752 and a better fix for bug #716790
5311
5312 2004-02-15 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
5313
5314         * src/SDCCsymt.c (processFuncArgs): fixed bug #896796
5315
5316 2004-02-14 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
5317
5318         * doc/sdccman.lyx: minor changes, minor changed
5319
5320 2004-02-13 Bernhard Held <bernhard AT bernhardheld.de>
5321
5322         * src/SDCCicode.c (usualBinaryConversions): removed pic16 from ports
5323         which can't handle SDCC_NEWONEBYTEOPS,
5324         (geniCodeMultiply): removed conversion from mult to shift for pic14
5325         and pic16
5326
5327 2004-02-12 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
5328
5329         * src/hc08/gen.h,
5330         * src/hc08/gen.c (storeRegToAop, aopOp, aopAdrStr, accopWithAop,
5331         rmwWithAop): Ported my 2003-10-02 fix for bug #663539 to the hc08,
5332         thus fixing bug #895406
5333
5334 2004-02-11 Bernhard Held <bernhard AT bernhardheld.de>
5335
5336         * device/lib/_modsint.c,
5337         * device/lib/_modslong.c: sign follows divisor only
5338         * src/hc08/gen.c (genMultOneByte): if result size is 1,
5339         signs or signedness can be ignored
5340         * src/SDCCast.c (addCast): cosmetic - added lineno to CAST
5341         * src/SDCCast.c (resultTypePropagate): added even more ops: +, - and *,
5342         added optimization for IFX,
5343         (decorateType): Mult/Div/ModOneByte ops can handle all kind of signed
5344         arguments;
5345         reenabled optimization for IFX, which was removed on 2004-01-11
5346         * src/SDCCast.h: added return type IFX
5347         * src/SDCCicode.c: Mult/Div/ModOneByte ops can handle all kind of signed
5348         arguments with 8 or 16 bit results; pic14 and pic16 ports use old
5349         promotion behaviour; env. var. SDCC_NEWONEBYTEOPS selects the new,
5350         SDCC_OLDONEBYTEOPS selects the old behaviour
5351         * src/SDCCsymt.c (computeType): type2 can be NULL (for LEFT_OP);
5352         changed again and commented promotion rule
5353         * src/SDCCval.c (valDiv): promotion no longer necessary
5354         * src/ds390/gen.c (genMultOneByte) (genDivOneByte) (genModOneByte),
5355         * src/mcs51/gen.c (genMultOneByte) (genDivOneByte) (genModOneByte):
5356         rewritten
5357         * support/regression/tests/onebyte.c: added
5358
5359 2004-02-11 Vangelis Rokas <vrokas AT otenet.gr>
5360
5361         * gen.c (genInline): reverted to old code for assemnling inline
5362         code because of bug reported James Chadd
5363
5364 2004-02-10 Vangelis Rokas <vrokas AT otenet.gr>
5365
5366         * ralloc.h: missing declarations from previous patch,
5367         seems that patch for ralloc.h was never applied, fixed
5368
5369 2004-02-10 Hans-Juergen Dorn <hans.dorn AT apl-landau.de>
5370            patch committed by Vangelis Rokas <vrokas AT otenet.gr>
5371
5372         * pcode.c,
5373         * pcode.h,
5374         * ralloc.h: added FSR0L, FSR0H and other missing PIC16 SFR's for
5375         indirect addressing. Marked FSR0 as deprecated
5376         * gen.c (pointerCode): commented out, not needed now
5377         (pic16_popGet2p): new MOVFF helper function
5378         (genGenPointerGet),
5379         (genGenPointerSet): reimplemented with MOVFF and POSTINC0
5380         (shiftRLong): removed duplicate debugging info
5381
5382 2004-02-10 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
5383
5384         * src/ds390/gen.c (genNearPointerGet),
5385         * src/mcs51/gen.c (genNearPointerGet): allow the genDataPointerGet()
5386         optimization with bits, but not bitfields.
5387         * src/ds390/ralloc.c (packRegisters),
5388         * src/mcs51/ralloc.c (packRegisters): fixed bug #884453 & #880832
5389
5390 2004-02-09 Bernhard Held <bernhard AT bernhardheld.de>
5391
5392         * src/SDCCcse.c (algebraicOpts): copy operands before modification
5393
5394 2004-02-09 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
5395
5396         * src/SDCCsymt.h,
5397         * src/SDCCicode.c (operandFromSymbol),
5398         * src/mcs51/ralloc.c (verifyRegsAssigned, serialRegAssign),
5399         * src/ds390/ralloc.c (verifyRegsAssigned, serialRegAssign),
5400         * src/z80/ralloc.c (verifyRegsAssigned, serialRegAssign),
5401         * src/hc08/ralloc.c (verifyRegsAssigned, serialRegAssign),
5402         * src/pic/ralloc.c (verifyRegsAssigned, serialRegAssign),
5403         * src/pic16/ralloc.c (verifyRegsAssigned, serialRegAssign): fixed
5404         bug #892038
5405         * src/SDCCast.c (createIvalStruct, createIvalArray, gatherAutoInit),
5406         * src/SDCCglue.c (emitRegularMap, printIvalStruct, printIvalArray,
5407         printIvalCharPtr, printIvalPtr, printIval, emitStaticSeg, emitOverlay)
5408         * src/SDCCsymt.c (newSymbol),
5409         * src/SDCC.y (struct_or_union_specifier, enum_specifier,
5410         enumerator_list),
5411         * src/SDCCval.h,
5412         * src/SDCCval.c (newiList): fixed bug #885705
5413
5414 2004-02-08  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
5415
5416         * doc/sdccman.lyx: added section 3.1.4: sdcclib.
5417         * as/mcs51/lkmem.c: report the size of the stack in .mem file.
5418
5419 2004-02-08 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
5420
5421         * device/include/c8051f120.h,
5422         * device/include/c8051f300.h,
5423         * device/include/c8051f310.h: added/updated header files for Silicon
5424         Laboratories (formerly Cygnal) CPUs. Contributed by Maarten Brock.
5425         * doc/sdccman.lyx: minor changes, recommended diff -Naur and diff -u
5426         in new section Submitting patches
5427
5428 2004-02-08 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
5429
5430         * src/mcs51/gen.c (genNearPointerGet, genPagedPointerGet,
5431         genFarPointerGet, genCodePointerGet, genGenPointerGet,
5432         genNearPointerSet, genPagedPointerSet, genFarPointerSet,
5433         genGenPointerSet),
5434         * src/ds390/gen.c (genNearPointerGet, genPagedPointerGet,
5435         genFarPointerGet, genCodePointerGet, genGenPointerGet,
5436         genNearPointerSet, genPagedPointerSet, genFarPointerSet,
5437         genGenPointerSet),
5438         * src/pic16/gen.c (genNearPointerGet, genPagedPointerGet,
5439         genFarPointerGet, genCodePointerGet, genGenPointerGet,
5440         genNearPointerSet, genPagedPointerSet, genFarPointerSet,
5441         genGenPointerSet),
5442         * src/pic/gen.c (genNearPointerGet, genPagedPointerGet,
5443         genFarPointerGet, genCodePointerGet, genGenPointerGet,
5444         genNearPointerSet, genPagedPointerSet, genFarPointerSet,
5445         genGenPointerSet): fixed bug #892400
5446         * src/pic16/gen.c (genSkipz, AccRol): disabled functions with #if 0
5447         to eliminate build warnings.
5448         * src/SDCCast.c (processParms),
5449         * src/SDCC.y (function_declarator2, declarator2_function_attributes):
5450         fixed bug 751859
5451         * support/valdiag/valdiag.py: added GCC to the list of defines active
5452         when compiling with gcc
5453
5454 2004-02-07 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
5455
5456         * support/Util/SDCCerr.h,
5457         * support/Util/SDCCerr.c,
5458         * src/SDCCast.c (decorateType, sizeofOp): complain when sizeof is used
5459         with an incomplete type (fixed bug #883734)
5460         * src/SDCCicode.c (geniCodeCast): fixed bug #890510
5461
5462 2004-02-07 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
5463
5464         * src/pic16/gen.c (genCmpEq, shiftRLong): fixed declarations
5465
5466 2004-02-06 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
5467
5468         * src/SDCCast.c (decorateType),
5469         * src/SDCCicode.c (geniCodeParms, geniCodeCall): fixed bugs in my ANSI
5470         function pointer implementation
5471         * support/regression/tests/funptrs.c: added tests to verify both forms
5472         of function pointers work correctly. Added tests to verify parameters
5473         are passed in the correct order.
5474
5475 2004-02-06  Vangelis Rokas <vrokas AT otenet.gr>
5476
5477         * device.c (regCompare): registers are sorted by ascending
5478         address and increasing size,
5479         * main.c (_pic16_finaliseOptions): removed the declaration
5480         of compiler macro MCU. Now a macro of the format pic18fxxxx
5481         will be defined from the command line
5482
5483 2004-02-06  Hans-Juergen Dorn <hans.dorn AT apl-landau.de>
5484             patch committed by Vangelis Rokas <vrokas AT otenet.gr>
5485
5486         * pcode.c (pic16initMnemonics): fixed typo in assignment to PCOP_RLNCF
5487         PCOP_RLCF was overwritten!
5488         * gen.c (genSkip): commented out calls to pic16_emitcode,
5489         * (genCmpEQ): fixed "long" compares, only high word did get compared,
5490         * (genlshTwo),
5491         * (genRRC): added debugging info,
5492         * (shiftL2Left2Result): Fixed bug, if offr > offl. Result got
5493         overwritten while shifting,
5494         * (shiftR2Left2Result): Fixed bug, if offr < offl. Result got
5495         overwritten while shifting,
5496         * (AccLsh),
5497         * (AccRsh),
5498         * (shiftLLeftOrResult),
5499         * (shiftRLeftOrResult),
5500         * (shiftRLong),
5501         * (shiftLLong): Implemented with pic16_emitpcode
5502         * (genlshFour): Replaced pic16_aopPut with pic16_emitpcode,
5503         * (genLeftShift): Fixed bug, operand for shift by variable always
5504         was "and"ed with 0x0f,
5505         * (genLeftShiftLiteral),
5506         * (genrshTwo),
5507         * (genRightShiftLiteral): added debugging info,
5508         * (genrshFour): added comment,
5509         * (genRightShift): determined signedness from operand "left"
5510         instead of "result"
5511
5512 2004-02-04 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
5513
5514         * src/SDCCicode.c (geniCodeParms),
5515         * src/SDCCast.c (decorateType, processParms): support for ANSI-style
5516         function pointers, fixed function pointer bugs #861242 and #861896
5517
5518 2004-01-31 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
5519
5520         * device/include/c8051f000.h,
5521         * device/include/c8051f120.h,
5522         * device/include/c8051f300.h: added header files for Silicon
5523         Laboratories (formerly Cygnal) CPUs. Contributed by Maarten Brock.
5524
5525 2004-01-31 Bernhard Held <bernhard AT bernhardheld.de>
5526
5527         * src/SDCCast.c (processParams): added new type flow and restructured
5528         (gatherAutoInit): added new type flow
5529         (addCast): cosmetic changes
5530         (getLeftResultType): added new type flow for array indices, patch
5531         provided by Stas, see FR #877103
5532         (decorateType): SDCC_NEWTYPEFLOW removed, new type flow is now standard;
5533         array index patch by Stas
5534         * src/SDCCast.h: added prototype getResultTypeFromType()
5535         * src/SDCCval.h,
5536         * src/SDCCval.c (resolveIvalSym) (resolveIvalSym),
5537         * src/pic/glue.c (pic14emitStaticSeg),
5538         * src/pic16/glue.c (pic16emitStaticSeg),
5539         * src/SDCCglue.c (emitRegularMap) (emitStaticSeg): added new type flow
5540         for initialization of symbols
5541         * src/SDCCicode.c (geniCodeArray): removed warning W_ARRAY_BOUND
5542         * support/Util/SDCCerr.h:
5543         * support/Util/SDCCerr.c: replaced W_ARRAY_BOUND by W_IDX_OUT_OF_BOUNDS
5544         * .version: bumped version number to 2.3.8
5545         * device/include/Makefile.in (install),
5546         * doc/Makefile (install): changed to 'rm `find ...`' construct to
5547         avoid warnings
5548
5549 2004-01-30 Bernhard Held <bernhard AT bernhardheld.de>
5550
5551         * support/regression/tests/libmullong.c: fixed for 64 bit hosts
5552         Slade Rich fixed an optimization bug
5553         * src/pic/pcodepeep.c,
5554         * src/pic/pcoderegs.c
5555         * doc/Makefile (install): added test for directory
5556
5557 2004-01-30 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
5558
5559         * src/mcs51/ralloc.c (getRegPtr, getRegGpr),
5560         * src/ds390/ralloc.c (getRegPtr, getRegGpr),
5561         * src/pic/ralloc.c (getRegPtr, getRegGpr),
5562         * src/pic16/ralloc.c (getRegPtr, getRegGpr),
5563         * src/z80/ralloc.c (getRegGpr): fixed bug #883361
5564         * as/mcs51/asexpr.c (term),
5565         * as/hc08/asexpr.c (term): fixed bug #887146
5566
5567 2004-01-29 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
5568
5569         * src/z80/gen.c (genMult): handle single byte result product
5570         * src/SDCCopt.c (killDeadCode): never convert ADDRESS_OF iCode to
5571         DUMMY_READ_VOLATILE (fixed bug #886367)
5572
5573 2004-01-27 Bernhard Held <bernhard AT bernhardheld.de>
5574
5575         * support/regression/tests/libmullong.c: fixed logic, on little endian
5576         hosts we ended without a mullong_wrapper()
5577
5578 2004-01-27 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
5579
5580         * ChangeLog: changed "@" to " AT " in hopes of reducing spam and
5581         virus/worm forged address usage.
5582
5583 2004-01-27 Bernhard Held <bernhard AT bernhardheld.de>
5584
5585         Fixed promotion, it should be done on AST level:
5586         * src/SDCCast.c (addCast): added promotion to int
5587         (decorateType): updated call to upCast()
5588         * src/SDCCicode.c (geniCodeLeftShift): removed call to
5589         usualUnaryConversions()
5590
5591 2004-01-26  Michael Hope  <michaelh AT juju.net.nz>
5592
5593         * support/regression/tests/literalop.c (mulWrapper): Added a
5594         wrapper to remove integer overflow warnings.
5595
5596         * support/regression/tests/float_trans.c: Made work on host.
5597
5598         * support/regression/ports/ucz80/spec.mk (UCZ80): Made detect the
5599         location of sz80.
5600
5601         * support/regression/generate-cases.py (main): Changed from inline
5602         to a main method.
5603
5604         * doc/Makefile (install): Changed to depth first to get rid of
5605         missing directory install warning.
5606
5607         * as/Makefile (install-doc): Made work on Mac.
5608
5609 2004-01-25 Bernhard Held <bernhard AT bernhardheld.de>
5610
5611         * src/SDCCast.c: added an additional type flow in decorateType() of
5612         opposite direction, see feature request #860006; it's enabled at runtime
5613         by setting the environment variable SDCC_NEWTYPEFLOW
5614         * src/SDCCast.h: changed prototype of decorateType()
5615         * src/SDCCglue.c (emitRegularMap): updated call of decorateType()
5616         * src/SDCCicode.c (geniCodeDivision) (geniCodeModulus): promotion from
5617         'char' to 'int' can be omitted, if both operands are 'unsigned char';
5618         see feature request #877103
5619         * src/SDCCval.c: updated call of decorateType()
5620         (valBitwise): fixed bug #882876
5621         (valMinus): added promotion
5622         (valLogicAndOr): result is unsigned
5623         (cheapestVal) (constVal): literals from 0...255 are 'unsigned char' now
5624         * src/SDCCsymt.c (computeType),
5625         * src/mcs51/gen.c (genCmpGt) (genCmpLt): literal 'unsigned char'
5626         must not cause an unsigned operation
5627         * src/pic/glue (pic14emitRegularMap),
5628         * src/pic16/glue.c (pic16emitRegularMap): updated call of decorateType()
5629
5630 2004-01-23 Bernhard Held <bernhard AT bernhardheld.de>
5631
5632         * src/pic/pcode.c (PCodeID): commented out left over debug code
5633
5634 2004-01-20 Bernhard Held <bernhard AT bernhardheld.de>
5635
5636         * support/valdiag/tests/overflow.c: added shift tests
5637         * src/pic/device.c,
5638         * src/pic/gen.c,
5639         * src/pic/gen.h,
5640         * src/pic/glue.c,
5641         * src/pic/main.c,
5642         * src/pic/pcode.c,
5643         * src/pic/pcode.h,
5644         * src/pic/pcodepeep.c,
5645         * src/pic/pcoderegs.c,
5646         * src/pic/ralloc.c,
5647         * src/pic/ralloc.h: applied patch from Slade Rich;
5648         added support for multiple code pages and multiple RAM banks on the
5649         PIC 14 port. The ASM files now no longer simply assume all the
5650         code / RAM are in the same page / bank. This means the linker can
5651         safely allocate code/RAM of separate ASM files to different pages/banks.
5652         * doc/sdccman.lyx: added Slade's tips
5653         * src/mcs51/peeph.def: fixed bug #880768
5654
5655 2004-01-20 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
5656
5657         * src/hc08/ralloc.c (rematStr): fixed bug #879282
5658         * src/SDCCast.c (decorateType): fixed bug #880197
5659
5660 2004-01-20  Michael Hope  <michaelh AT juju.net.nz>
5661
5662         * sim/ucsim/gui.src/serio.src/main.cc: Fixed unconditional use of
5663         getopt.h.
5664
5665         * debugger/mcs51/cmd.c (getValBasic): Changed strtof to strtod as
5666         strtof is not part of C89 and isn't included with Mac OS X.
5667
5668 2004-01-20 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
5669
5670         * src/hc08/gen.c (genPlusIncr, genUminus, genMinusDec, genCmp,
5671         shiftL2Left2Result): fixed bug #879326
5672         (genAnd, genOr, genXor): fixed bug when result was of type AOP_CRY
5673         (genMultOneByte): fixed bug in signed vs unsigned multiplication
5674         * sim/ucsim/hc08.src/inst.cc (inst_clr): added missing effective
5675         address fetch for clr instruction
5676         * device/lib/hc08/_mulint.c: created optimized assembly version
5677         * src/SDCCdflow.c (computeDataFlow): fixed bug #878209
5678
5679 2004-01-19 Bernhard Held <bernhard AT bernhardheld.de>
5680
5681         * src/SDCCicode.c (geniCodeArray): applied patch from Stas Sergeev
5682         proposed in FR #877103
5683
5684 2004-01-18 Bernhard Held <bernhard AT bernhardheld.de>
5685
5686         * src/SDCCval.c (cheapestVal): added missing checks
5687         * src/SDCCicode.c (usualBinaryConversions): fixed condition
5688         * src/SDCCicode.c (geniCodeAdd): fixed part of bug #877103
5689
5690 2004-01-16 Klaus Flittner <klaus_flittner AT gmx.de>
5691
5692         * src/ds390/gen.c (aopOp3): fixed the assignment of different dptrs to
5693         equal operands
5694
5695 2004-01-16 Vangelis Rokas <vrokas AT otenet.gr>
5696
5697         * src/SDCCmain.c (linkEdit): variable $3 of the linker command is
5698         loaded with the linker search paths (-L arguments) and the libraries
5699         to be linked with the current source (-l arguments). Changes
5700         currently will affect only the pic16 port.
5701         * src/pic16/main.c (_pic16_finaliseOptions): add to the linker
5702         include path the port specific paths and port specific libraries,
5703         * gplink command now contains the $3 argument,
5704         * src/pic16/device.h,
5705         * src/pic16/device.c,: structure PIC_device is made public and
5706         renamed to PIC16_device, the same for variable Pics which is renamed
5707         to Pics16. Updated all references to them.
5708         * src/pic16/glue.c (pic16glue): corrected bug with code
5709         initialization which bypassed the variable initializations block.
5710
5711         * device/lib/pic16/Makefile.rules: removed --penable-stack from
5712         COMPILE_FLAGS and added the --nostdinc option
5713
5714 2004-01-15 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
5715
5716         * device/include/mc68hc908jb8.h: Register defs for another member
5717         of the hc08 family. Contributed by Bjorn Bringert - thanks!
5718
5719 2004-01-14 Vangelis Rokas <vrokas AT otenet.gr>
5720
5721         Documenting changes from previous commits.
5722         * configure.in (version 1.56),
5723         * configure: initially I've added AC_CONFIG_SUBDIRS(device/lib/pic16)
5724         when generating output files to configure the pic16 library,
5725         but now I've commented it out, since gputils aren't installed in the
5726         SF compile farm, so library won't compile
5727
5728         * device/lib/Makefile.in (version 1.56): initially I've added in
5729         target 'all' the prerequestive 'model-pic16' so it compiled the
5730         pic16 library, but now I've commented it out for the same reasons
5731         above,
5732         * added targets 'model-pic16' and 'objects-pic16' to compile the
5733         library
5734         * added target 'port-specific-objects-pic16' to handle the
5735         generated libraries and copy them into the build/ directory
5736         * added target 'clean-intermediate-pic16' to clean intermediate
5737         files into pic16 directory
5738         * in target 'installdirs' added line to create directory pic16 in
5739         the installation path
5740
5741         * device/include/Makefile.in (version 1.11): in target 'install'
5742         added lines to copy all header files to installation path,
5743         * in target 'installdirs' added line create directory for pic16
5744         headers in the installation path
5745
5746 2004-01-13 Klaus Flittner <klaus_flittner AT gmx.de>
5747
5748         * src/ds390/gen.c (genCall): fixed a double use of acc and b after
5749          a function call
5750
5751 2004-01-13 Bernhard Held <bernhard AT bernhardheld.de>
5752
5753         * configure,
5754         * device/lib/configure.in,
5755         * device/lib/configure: fixed for autoconf 2.57
5756
5757 2004-01-13 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
5758
5759         * src/z80/main.c (_parseOptions): fixed the portmode= command line
5760         option so that it actually works. Made it specific to the z80, since
5761         the gbz80 doesn't have these kinds of I/O ports.
5762
5763 2004-01-13 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
5764
5765         * device/include/z180.h,
5766         * device/lib/_memcpy.c,
5767         * device/lib/_memmove.c,
5768         * device/lib/_mulint.c,
5769         * device/lib/ser_ir.c,
5770         * device/lib/ser_ir_cts_rts.c,
5771         * device/lib/_strcmp.c,
5772         * device/lib/_strtok.c: fixed pragmas to non-deprecated form
5773         * src/z80/main.c (_process_pragma): add support for pragmas bank and
5774         portmode; added deprecation warning for bank= and protmode= forms.
5775         Also, guard against buffer overflow.
5776         * src/z80/gen.c (aopGet): generate better code for sfr banked read
5777
5778 2004-01-13 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
5779
5780         * src/hc08/main.c (_hc08_genAssemblerPreamble): fixed bug #875487. Also
5781         changed interrupt vector table generation to only emit declared vectors.
5782         * device/include/Makefile.in: added missing backslash
5783         * device/lib/pic16/Makefile.rules: add $(MODELFLAGS) to $(CFLAGS)
5784
5785 2004-01-13 Vangelis Rokas <vrokas AT otenet.gr>
5786
5787         Mainly changes to support compilation of the device libraries
5788         * src/pic16/device.c: stack is allocated via symbol and not
5789         via literal number. The symbol is placed in the corresponding
5790         position of the data ram
5791         * (pic16_dump_section): relocatable and absolute uninitialized
5792         data are now emitted in sorted order to reduce section naming,
5793         * src/pic16/ralloc.c (newReg): fixed bug with SFR's that
5794         weren't marked as being in the access bank,
5795
5796 2004-01-13 Vangelis Rokas <vrokas AT otenet.gr>
5797
5798         Added portion of GNU PIC Library under the directory
5799         device/include/pic16 and device/lib/pic16. These files
5800         contain the declarations of SFRs for the PIC18Fxx2 devices.
5801         The directory is initialized via configure from toplevel.
5802
5803 2004-01-12 Klaus Flittner <klaus_flittner AT gmx.de>
5804
5805         * src/ds390/gen.c (operandsEqu): fixed a little typo, that prevented
5806         the spilllocations to be compared correctly
5807
5808 2004-01-12 Bernhard Held <bernhard AT bernhardheld.de>
5809
5810         * src/SDCCast.c (decorateType): fixed bug introduced today
5811
5812 2004-01-12  Borut Razem <borut.razem AT siol.net>
5813
5814         * src/SDCC.lex, support/Util/SDCCerr.h, support/Util/SDCCerr.c,
5815         doc/sdccman.lyx: upper case pragmas are deprecated
5816
5817 2004-01-12 Bernhard Held <bernhard AT bernhardheld.de>
5818
5819         * src/SDCCast.c (decorateType): replacing 'ul > 0' by  '!ul' results
5820         in simpler and even better code
5821
5822 2004-01-11 Bernhard Held <bernhard AT bernhardheld.de>
5823
5824         * src/SDCCicode.c (operandOperation): fixed bug #874819
5825         * src/SDCCast.c (decorateType): fixed
5826         char foo (unsigned long ul) { return ul > 0; }
5827
5828 2004-01-11 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
5829
5830         * doc/sdccman.lyx: Moved and added some sections, small changes
5831         all over. Telling LaTeX to be less strict with word spacing
5832         to better keep the right margin. Changed some notes about
5833         maintainance of the ports in section 3.2.1 - is it OK like this?
5834
5835 2004-01-11 Vangelis Rokas <vrokas AT otenet.gr>
5836
5837         SDCC source changes:
5838         * src/SDCCopt.c (cntToFcall, cnvToFloatCast, cnvFromFloatCast,
5839         convilong): modified to inform the pic16 port that builtin functions
5840         are external
5841
5842         PIC16 PORT specific changes:
5843         * src/pic16/device.c pic16_dump_equates() added,
5844         processor registers declared internally by the port are emitted in
5845         the translation as equates,
5846         * src/pic16/gen.c: inline code is passed unprocessed to the
5847         translation,
5848         * (pic16_popGetLit2): fnuction modified to take second operand as
5849         pCodeOp pointer and not as literal,
5850         * (popRegFromIdx): prefixed with pic16_,
5851         * (pic16_popCombine2): modified to receive already allocated pCode
5852         operands,
5853         * (pic16_pushpCodeOpReg, pic16_poppCodeOpReg): added
5854         * (genFunction): initializes local stack frame and pushes on stack
5855         all the registers used by this function,
5856         * (genEndFunction): restores all registers from stack and restores
5857         stack frame,
5858         * src/pic16/glue.c (pic16emitRegularMap): various changes and
5859         improvements,
5860         * (pic16glue): changed the program startup sequence,
5861         * added new dbName code 'A' for functions placed in absolute section
5862         * src/pic16/main.c: added function attribute _naked,
5863         * added pragma 'code' to place a fnuction at an absolute address,
5864         * added command line arguments --debug-ralloc and --pcode-verbose,
5865         * (_pic16_finiliseOptions): options.all_callee_saves is set by default
5866         * src/pic16/pcode.c (pic16_pBlockConvert2Absolute) added,
5867         * (pic16_newpCodeOpLit2): modified to take the second operand as
5868         pCodeOp pointer,
5869         * (pic16_printpBlock): modified to emit each function in a separate
5870         section,
5871         * (pic16_get_op): modified to use the gpasm modifiers LOW,HIGH and
5872         UPPER for immediate operands,
5873         * src/pic16/pcodepeeph.c: added peephole support for the LFSR
5874         instruction,
5875         * src/pic16/peeph.def: all peepholes with movff are commented out,
5876         because there is a problem in the pcode peep optimizer,
5877         * src/pic16/ralloc.c: the register allocator can now reuse local
5878         function symbols for another function. This saves register usage.
5879         * src/pic16/ralloc.h: added flag isLocal in structure regs,
5880
5881         Added file src/pic16/NOTES with information about program writing on
5882         the current port version.
5883
5884 2004-01-11 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
5885
5886         * src/mcs51/peephole.def: added peepholes 177.c,d (redundant moves)
5887         and peephole 252 (array access)
5888
5889 2004-01-09  Borut Razem <borut.razem AT siol.net>
5890
5891         * src/SDCCmain.c : fixed #872250: -l command line defined library
5892           files are scanned before standard library files
5893
5894 2004-01-10 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
5895
5896         * src/SDCCast.c (decorateType): fixed bug #874046
5897
5898 2004-01-09  Borut Razem <borut.razem AT siol.net>
5899
5900         * support/scripts/sdcc.nsi: remove previous installation
5901
5902 2004-01-09 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
5903
5904         * src/SDCCglue.c (createInterruptVect): don't append 7(5) padding
5905         bytes for last interrupt vector (mcs51)
5906         * sdcc.spec: fixed typo
5907
5908 2004-01-09 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
5909
5910         * src/mcs51/gen.c (genFunction, genEndFunction, genReceive, getTempRegs,
5911         gen51Code): more efficient parameter receive for --model-large
5912         ("bug" #845294)
5913
5914 2004-01-09 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
5915
5916         * src/ds390/main.c,
5917         * src/z80/main.c: added missed needLinkerScript flags (more than
5918         one port structure defined in these file)
5919         * src/ds390/gen.c (aopForSym, aopOp, operandsEqu, aopOp3): fixed
5920         bug #795325
5921
5922 2004-01-08 Vangelis Rokas <vrokas AT otenet.gr>
5923
5924         * src/SDCCmain.c: removed various references to DEFAULT_PORT
5925         * src/port.h: added flag needLinkerScript in port->linker
5926         structure to inform whether to create a .lnk file or not,
5927         * src/avr/main.c,
5928         * src/ds390/main.c,
5929         * src/hc08/main.c,
5930         * src/mcs51/main.c,
5931         * src/pic/main.c,
5932         * src/pic16/main.c,
5933         * src/xa51/main.c,
5934         * src/z80/main.c: changed appropriately to configure
5935         needLinkerScript flag
5936         * src/pic/gen.c,
5937         * src/pic16/gen.c (genAddrOf): fixed bug #863624
5938         * src/pic/glue.c: added variable udata_section_name to
5939         override default uninitialized data segment definition for
5940         devices only with SHAREBANK memory (reported from Erik Epetrich)
5941         * (pic14emitOverlay): modified to emit a commented overlay segment
5942         directive when no overlay data exist
5943         * (picglue): modified to emit uninitialized data segment
5944         according to udata_section_name
5945         * src/pic/main.c (_pic14_parseOptions): added command line
5946         options --udata-section-name=[name] to override default
5947         udata definition name
5948         * modified _linkCmd and _asmCmd to include compiler passed
5949         arguments via -W option
5950         * src/pic16/main.c: added $l in _asmCmd, changed extension for
5951         object file from '.rel' to '.o' in port->linker structure,
5952         changed size of fptr from 2 to 3 in port structure
5953
5954 2004-01-07  Borut Razem <borut.razem AT siol.net>
5955
5956         * support/scripts/sdcc.nsi: update PATH
5957         * support/scripts/sdcc.ico: craeted
5958
5959 2004-01-07 Bernhard Held <bernhard AT bernhardheld.de>
5960
5961         * device/include/Makefile.in: fix install
5962         * doc/Makefile: fix install
5963
5964 2004-01-07 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
5965
5966         * src/SDCCsymt.c (processFuncArgs): fixed superflous allocation noted
5967         in bug #860505
5968         * src/SDCCmem.c (printAllocInfoSeg, printAllocInfo): minor changes to
5969         how the function variable allocation summary is displayed; also
5970         include information about variables allocated to the overlay
5971         segment
5972
5973 2004-01-06  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
5974
5975         * as/mcs51/lkmain.c: Help about -Y option
5976         * as/mcs51/lkarea.c: Fixed gcc warnings
5977
5978 2004-01-06 Bernhard Held <bernhard AT bernhardheld.de>
5979
5980         * src/SDCCval.c (valShift): changed from 16 to 32 bit shift count,
5981         fixed warning
5982         * support/valdiag/tests/overflow.c: added
5983         * src/SDCCast.c (decorateType),
5984         * src/SDCCicode.c (geniCodeLeftShift): added promotion to int for
5985         LEFT_OP (left shift)
5986
5987 2004-01-06  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
5988
5989         * as/mcs51/lkmain.c: stack must be after data when option -Y is not used
5990         (default behaviour).
5991
5992 2004-01-06 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
5993
5994         A python script to validate compiler diagnostic messages. It can be
5995         used to verify that sdcc complains about bad c source code and
5996         gives a good location of the error.
5997         * support/valdiag/Makefile,
5998         * support/valdiag/valdiag.py,
5999         * support/valdiag/tests/*
6000
6001 2004-01-06 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
6002
6003         * src/SDCC.y (enum_specifier, enumerator_list, opt_assign_expr),
6004         * src/SDCCsymt.c (newEnumType),
6005         * src/SDCCsymt.h
6006         * support/Util/SDCCerr.c,
6007         * support/Util/SDCCerr.h: fixed bug #871258 and some other unreported
6008         enum related bugs.
6009         * support/regression/tests/enum.c: added test for enum values that
6010         require at least 2 bytes of storage.
6011
6012 2004-01-06 Vangelis Rokas <vrokas AT otenet.gr>
6013
6014         * src/common.h: added ifndef/define/endif macros
6015         around the header file.
6016         Bug reported from Jesus Calvino-Fraga
6017
6018 2004-01-06 Bernhard Held <bernhard AT bernhardheld.de>
6019
6020         * sdcc.spec: updated
6021         * device/include/Makefile.in: don't install CVS directories
6022         * device/lib/Makefile.in: added removal of CVS directories after install
6023         * doc/Makefile: fixed install, added local_icons
6024         * sim/ucsim/gui.src/Makefile.in: fixed an old typo
6025         * src/mcs51/gen.c (genRightShift): fixed bug #870788
6026         * src/ds390/gen.c (genRightShift): fixed bug #870788
6027         * src/SDCCast.c (decorateType): fixed bug #870781
6028
6029 2004-01-06 Vangelis Rokas <vrokas AT otenet.gr>
6030
6031         PIC16 port related changes:
6032         * device.c: removed pic16_finalMapping and pic16_finalMappingSize,
6033         added variable stackPos,
6034
6035         * gen.c: genCall, assignResultValue: added support for
6036         pushing/retrieving function parameters to/from stack,
6037         genFunction,genEndFunction: setup stack frame for the
6038         generated function,
6039         genAddrOf: will be changed according to bug 863624
6040
6041         * added files genutils.c and genutils.h which contain gen*
6042         debugged and optimised functions extracted from gen.c
6043
6044         * glue.c: added variable 'externs' which holds extern symbols,
6045         pic16emitRegularMap: is modified to properly handle relocatable
6046          symbols under the new scheme,
6047         pic16createInterruptVect: is modified
6048         pic16printPublics: is modified to emit 'global' assembler directives,
6049         added pic16_printExterns to print extern symbols,
6050         pic16glue: initializes stack/frame pointer in the beginning of
6051         the assembly output. Temporary hack, will be corrected later,
6052         because gplink yet does not support stack and SDCC does not
6053         yet support a type of crt0.o object to create the final binary.
6054
6055         * Removed many lines that contain 8051 legacy code.
6056         * The code is finally placed under a 'code' directive.
6057         * Added port specific options.
6058
6059         * _process_pragma: simplified since now we do not need *special*
6060         include file to define SFR registers. But a separate header
6061         will be needed. This will be developed later.
6062         * _pic16_parseOptions: added, parses port specific options:
6063         --pgen-banksel, --obanksel=, --pomit-config-words, --pomit-ivt,
6064         --pleave-reset-vector, --penable-stack, --pstack-model, --debug-xtra
6065         --preplace-udata-with=
6066
6067         * _pic16_setDefaultOptions: modified to initialize section names,
6068         but hack is temporarly out of order since it needs improvement.
6069         * _pic16_genAssemblerPreamble: configuration words are emitted by
6070         their address instead of their name. This part is incomplete and
6071         supports only the 18Fxx2 devices. Other devices will emit an error
6072         during assembly since they do not contain the same set of config
6073         registers
6074         * _pic16_genIVT: is modified,
6075
6076         * pcode.c: added definitions for some hardware registers that are needed
6077         for stack support
6078         * added flag is2LitOp and variable pci_magic in pCodeInstruction.
6079         All PCI entries are updated. Now LFSR is supported.
6080         * Removed pic16_pciTRIS is mentioned by mdubuc in source
6081         * added pic16_newpCodeOpLit2 to support instructions with
6082         two literal arguments
6083         * pic16_pCode2str: corrected code that emits assembler instructions
6084         with two literal operands and those that have an access bit modifier
6085         * genericPrint: now PC_ASMDIR pCodes, can emit a label if it exists,
6086         this fixes a bug which caused some labels to be lost, when an
6087         assembler directive was added, i.e. banksel,
6088         * pic16_FixRegisterBanking: improved logic that causes the insertion
6089         of bank switching,
6090         * InlineFunction: functions that are called once, are not any more
6091         inlined. This can be a port option in the future,
6092
6093         * pcode.h: added pCodeOpLit2 and added variable label in pCodeAsmDir
6094
6095         * ralloc.c: added pic16_rel_udata and pic16_fix_udata variables which
6096         hold the corresponding uninitialized symbols,
6097         * pic16_allocProcessorRegister: registers have explicit marked the
6098         accessBank field,
6099         * pic16_allocInternalRegister: registers are explicit marked as
6100         not used,
6101         * pic16_writeUsedRegs: pic16_dynDirectBitRegs was missing from the
6102         processing list, so bit registers were lost,
6103         *
6104
6105         * ralloc.h: added field 'accessBank' and original symbol operand
6106         in register definition,
6107         * removed the field isMapped from register definition,
6108
6109         ** Several functions have been removed from various sources:
6110         BanksUsedFlow2,BanksUsedFlow,FixBankFlow,InstructionRegBank,
6111         pic16_addMemRange,pic16_isREGinBank,pic16_dump_map,pic16_dump_cblock
6112         isSFR,validAddress,mapRegister,assignRegister,pic16_assignFixedRegisters
6113         pic16_assignRelocatableRegisters
6114
6115         ** others have been introduced:
6116         pic16_areRegsSame,pic16_dump_section,checkAddReg,pic16_groupRegistersInSection
6117         pic16_popGetLit2,pic16_popCombine2,pushw,pushaop
6118
6119 2004-01-05 Vangelis Rokas <vrokas AT otenet.gr>
6120
6121         * support/scripts/inc2h.pl: changed definition of BIT_AT
6122         to emit 'sbit at' instead of 'bit at'. This was a request.
6123
6124         PIC16 port related preliminary changes:
6125         * gen.c: prefixed function popRegFromString with
6126         pic16_ and all references to it corrected
6127         * pcode.c: all pic16_pc_* hardware registers prefixed
6128         with underscore (_),
6129         pic16_popCopyGPR2Bit(): function sets register wasUsed=1
6130         * ralloc.c: newReg(): when register is REG_SFR then
6131         set address to rIdx,
6132         pic16_allocProcessorRegister(): marks register wasUsed=0
6133         pic16_writeUsedRegs(): added a call to assign processor
6134         registers via pic16_assignFixedRegisters
6135
6136 2004-01-04  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
6137
6138         * as/mcs51/aslink.h, as/mcs51/lkarea.c, as/mcs51/lkdata.c,
6139         as/mcs51/lkmain.c, as/mcs51/lkmem.c: 8051 linker can now pack
6140         variables in unused register banks.  Also the SSEG is placed
6141         wherever there is enough space for it, and IDATA can be anywhere
6142         in internal RAM.  For now compile using -Wl-Y[stack_size].
6143         The mem file is different for this option as well, since it
6144         makes no sense of talking about DSEG lenght.
6145
6146 2004-01-02 Vangelis Rokas <vrokas AT otenet.gr>
6147
6148         * src/SDCClrange.c: fixed bug 869095 that caused segfault
6149         in certain cases, e.g. when ROM assignment, patch provided
6150         from Albert den Haan.
6151
6152 2004-01-01 Bernhard Held <bernhard AT bernhardheld.de>
6153
6154         Many signedness and type propagation fixes:
6155         * src/SDCCicode.c: made geniCodeCast() static
6156         replaced SPEC_ by IS_ (cosmetic)
6157         (operandOperation): fixed div and mod operation
6158         (usualBinaryConversions): added support for promotion of char
6159         (geniCodeMultiply): replaced (unsigned long) by (TYPE_UDWORD)
6160         (geniCodeDivision): replaced (unsigned long) by (TYPE_UDWORD)
6161         (geniCodeAdd): an array index will stay unsigned, even if promoted
6162         from char to int
6163         (geniCodeArray): ditto
6164         * src/SDCCicode.h: made geniCodeCast() static: removed prototype
6165         * src/SDCCsymt.c (computeType): added more support for char;
6166         promotion of char is selectable by promoteCharToInt, fixed signedness
6167         for all cases
6168         (powof2): replaced (unsigned long) by (TYPE_UDWORD)
6169         * src/SDCCsymt.h (powof2): replaced (unsigned long) by (TYPE_UDWORD)
6170         * src/SDCCval (val*): replaced signedness calculation by
6171         computeType()
6172         rearranged if-branches (cosmetic)
6173         (valShift): added warning W_SHIFT_CHANGED
6174         (valCompare): fixed problem with different types
6175         * src/hc08/rallo.c (leastUsedLR): fixed gcc 3.3 warning
6176         * support/regression/tests/literalop.c: added many cases
6177         * support/regression/tests/ast_constant_folding.c: changed finally to
6178         'unsigned int'
6179         * .version: new year, new version: 2.3.7
6180         * src/SDCCmain.c (main): applied patch #866468
6181         * debugger/mcs51/sdcdb.c (parseCmdLine): added -k for ucsim, patch
6182         provided by Scott Bronson
6183         * doc/sdccman.lyx: updated documentation for sdcdb
6184         updated and added chapter tips
6185
6186 2004-01-01 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
6187
6188         * src/SDCCsymt.h: missing from yesterday's commits
6189
6190 2003-12-31 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
6191
6192         * src/SDCC.y (struct_or_union_specifier),
6193         * support/Util/SDCCerr.c,
6194         * support/Util/SDCCerr.h: verify that struct & union tags are used
6195         as declared.
6196
6197 2003-12-29 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
6198
6199         * src/SDCCglobl.h: missing from yesterday's commits
6200
6201 2003-12-28 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
6202
6203         * src/SDCC.y (external_definition, type_specifier2, sfr_reg_bit,
6204         sft_attributes, struct_declaration, parameter_declaration,
6205         type_name, start_block, declaration_list),
6206         * src/SDCC.lex (check_type): support redefinition of typedef names
6207
6208 2003-12-22 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
6209
6210         * src/mcs51/gen.c (genPlus): added special handling for 256 byte
6211         aligned xdata arrays. Erik helped me with the if clause.
6212
6213 2003-12-20 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
6214
6215         * device/lib/ds390/tinibios.c (CpuSpeed): suppress unreachable code
6216         warning
6217
6218 2003-12-20 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
6219
6220         * src/SDCCast.h,
6221         * src/SDCCast.c (newAst_),
6222         * src/SDCCicode.h,
6223         * src/SDCCicode.c (ast2iCode, newiCode),
6224         * src/SDCCglobl.h,
6225         * src/SDCC.y (logical_and_expr, logical_or_expr, conditional_expr,
6226         expr, statement, expression_statement, selection_statement,
6227         iteration_statement, expr_opt, jump_statement): foundation for tracking
6228         sequence points
6229         * src/SDCCopt.c (killDeadCode): fixed bug #861580 (needs the sequence
6230         point code too)
6231
6232 2003-12-19 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
6233
6234         * support/Util/SDCCerr.c,
6235         * src/SDCCast.h,
6236         * src/SDCCast.c (createCase, createDefault, decorateType),
6237         * src/SDCClabel.c (labelUnreach),
6238         * src/SDCC.y (labeled_statement, jump_statement): More improvements
6239         to error messages.
6240         * support/Util/SDCCerr.c (werrorfl): fixed a non-standard declaration
6241         (with thanks to Stas Sergeev)
6242         * device/include/time.h,
6243         * device/lib/time.c (CheckTime): suppress unreachable code warning
6244
6245 2003-12-18 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
6246
6247         * src/SDCCast.c (createIvalCharPtr),
6248         * src/SDCCglue.c (printChar): fixed bug #862241 (an error in my fix for
6249         bug #753752)
6250         * support/regression/tests/nullstring.c: tests for these two bugs
6251
6252 2003-12-18 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
6253
6254         * support/Util/SDCCerr.h,
6255         * support/Util/SDCCerr.c (E_NOT_ALLOWED),
6256         * src/SDCC.y (struct_declaration, struct_or_union_specifier): complain
6257         about storage class and 'at' used inside struct or union
6258         * src/SDCCBBlock.c (iCodeFromeBBlock),
6259         * src/SDCCcse.c (ifxOptimize),
6260         * src/SDCCglue.c (emitRegularMap, initPointer, printIvalStruct,
6261         printIvalArray, printiValFuncPtr, printIvalCharPtr, printIvalPtr,
6262         printIval, emitStaticSeg, emitOverlay),
6263         * src/SDCClabel.c (deleteIfx),
6264         * src/SDCCopt.c (replaceRegEqv, eBBlockFromiCode),
6265         * src/SDCCast.c (resolveSymbols, createIvalStruct, createIvalArray,
6266         gatherAutoInit, processParms),
6267         * support/Util/SDCCerr.h,
6268         * support/Util/SDCCerr.c (werrorfl): Support for better error location
6269         reporting for post-parse errors.
6270
6271 2003-12-16 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
6272
6273         * src/SDCCval.c (valPlus, valMinus, valShift): fixed some problems with
6274         implicit casts via union; they don't work on big endian systems
6275         (possible fix for bug #861138)
6276
6277 2003-12-16 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
6278
6279         (committed by Erik Petrich <epetrich AT ivorytower.norman.ok.us> on Frieder's behalf)
6280         * src/mcs51/main.c: fixed the fix for bug #737001
6281
6282 2003-12-15  Borut Razem <borut.razem AT siol.net>
6283
6284         * support/scripts/sdcc.nsi: updated for NSIS 2.0 beta 4
6285
6286 2003-12-14 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
6287
6288         * support/makebin/makebin.c: put output in binary mode
6289
6290 2003-12-13 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
6291
6292         * src/mcs51/main.c: fixed bug #737001 for the mcs51. SDCC clears
6293         xdata and data memory on startup. Set the environment variable
6294         SDCC_NOGENRAMCLEAR to disable this.
6295         * src/mcs51/peephole.def,
6296         * src/ds390/peephole.def: using the atomic test and clear instruction jbc
6297         (allows non-interrupt and interrupt code to safely compete for a resource
6298         without the non-interrupt code having to disable interrupts)
6299
6300 2003-12-13 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
6301
6302         * src/SDCCicode.c (geniCodeAdd),
6303         * src/SDCCast.c (decorateType): fixed bug #857753 (need to be careful
6304         with valFromType if type might be a pointer and host is big endian).
6305         * src/SDCCast.c (decorateType): unary plus compatible with all arithmetic
6306         types, not just integer types.
6307         * src/SDCCsymt.c (addSymChain): clarified error message when symbol is
6308         multiply defined with mismatching "at" address.
6309
6310 2003-12-12 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
6311
6312         * src/ds390/main.c (PORT tininative_port): fixed bug #858416
6313         * src/SDCCglue.c (printChar, printIvalChar, emitStaticSeg),
6314         * src/SDCCast.c (createIvalCharPtr, stringToSymbol): handle strings
6315         with embedded nulls (fixed bug #753752)
6316
6317 2003-12-12 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
6318
6319         * src/mcs51/main.c(_mcs51_genRAMCLEAR): using r0 instead of r1/r2.
6320         Apparently this did not see much testing (endless loop)
6321
6322 2003-12-11 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
6323
6324         * src/z80/ralloc.c: set DISABLE_PACK_HL = 1 as a temporary fix to bug #855165
6325
6326 2003-12-10 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
6327
6328         * src/SDCCdebug.c (outputDebugSymbols, outputDebugStackSymbols, dumpSymInfo):
6329         gracefully handle NULL memmap pointers
6330
6331 2003-12-08 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
6332
6333         * src/SDCCopt.c (killDeadCode): change iCode type to DUMMY_READ_VOLATILE
6334         instead of deleting the iCode when an operand is volatile
6335         * src/z80/gen.c (genDummyRead),
6336         * src/mcs51/gen.c (genDummyRead),
6337         * src/ds390/gen.c (genDummyRead),
6338         * src/hc08/gen.c (genDummyRead): handle operands in IC_LEFT and/or IC_RIGHT,
6339         not just IC_RIGHT
6340         * src/SDCCicode.c (geniCodeCall): fixed bug #851607
6341         * src/SDCC.y: fixed bug #850420
6342
6343 2003-12-05 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
6344
6345         Applied z80 i/o port patch from Peter Townson and fixed some operators
6346         to better handle operands in A register.
6347         * device/include/z180.h
6348         * src/SDCC.y
6349         * src/SDCCglue.c
6350         * src/z80/gen.c
6351         * src/z80/gen.h
6352         * src/z80/main.c
6353         * src/z80/peeph-z80.def
6354         * src/z80/peeph.def
6355         * src/z80/z80.h
6356
6357 2003-12-03 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
6358
6359         * src/SDCCsymt.c (addSymChain, compareTypeExact): fixed bug #838241 again
6360
6361 2003-12-01 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
6362
6363         * device/lib/hc08/_mullong.c: Removed extra #endif
6364
6365 2003-12-01 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
6366
6367         * sim/ucsim/hc08.src/inst.cc,
6368         * sim/ucsim/hc08.src/hc08mac.h: fixed some problems with CC flag bits and
6369         carries from x to h
6370         * src/hc08/gen.c (aopAdrStr): fixed problem with 16 bit immediate
6371         * src/hc08/gen.c (XAccRsh): fixed problem with right shift
6372         * device/include/stdarg.h: fixed varargs for hc08
6373         * device/lib/Makefile.in,
6374         * device/lib/hc08/Makefile,
6375         * device/lib/hc08/_mulint.c,
6376         * device/lib/hc08/_mullong.c: fixed some endian problems
6377
6378 2003-11-28 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
6379
6380         * sdcc/src/mcs51/gen.c (genMultOneByte): help peephole 105
6381         * sdcc/src/mcs51/peeph.def: added peephole 186.e array access in code space
6382         * device/lib/_gptrget.c,
6383         * device/lib/_gptrput.c: P2 not used any more (related to #850747, #785979)
6384
6385 2003-11-27 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
6386
6387         * src/SDCClrange.c (findNextUseSym, rlivePoint): fixed bug #849795
6388         * src/SDCCast.c (astErrors): fixed bug #846007
6389         * src/SDCCsymt.c (checkFunction): fixed follow-up bug on bug #846007
6390
6391 2003-11-26 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
6392
6393         * src/SDCCast.c (decorateType): disabled a transformation I added in
6394         revision 1.188 (access to fields of a structure at an absolute address);
6395         it breaks with bitfields, extern declarations, and gcse analysis.
6396         * src/SDCCopt.c (isLocalWithoutDef): if ADDRESS_OF applied to a symbol, it
6397         could be assigned through a pointer, so don't complain.
6398         * src/SDCCast.c (astErrors),
6399         * src/SDCCast.h,
6400         * src/SDCCglue.c (emitRegularMap): fixed bug #847813
6401
6402 2003-11-26 Vangelis Rokas <vrokas AT otenet.gr>
6403
6404         * src/pic16/main.c (_pic16_genIVT): fixed interrupt vector table
6405         * src/pic16/main.c (_pic16_genAssemblerPreamble): re-enabled the
6406         output of __config directives, since gpasm now supports them
6407         * src/pic16/main.c (_pic16_finaliseOptions): define MCU
6408         pre-processor macro, i.e. -DMCU=p18f452
6409         * src/pic16/ralloc.c: renamed packRegisters to pic16_packRegisters,
6410         and modified to handle 'cast' icode similarly to '=' icode
6411         * src/pic16/device.h (typedef struct PIC_device): added field
6412         'extMIface' to indicate that chip has external memory interface
6413         * src/pic16/device.c: added chips 18F248, 18F258, 18F448, 18F458,
6414         18F6520, 18F6620, 18F6680, 18F6720, 18F8520, 18F8620, 18F8680,
6415         18F8720
6416
6417 2003-11-26 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
6418
6419         * src/SDCC.y (pointer): fixed bug #846006
6420         * support/Util/SDCCerr.c: made W_PTR_TYPE_INVALID message clearer
6421         * src/SDCCast.c (decorateType): fixed bug #846009
6422         * src/ds390/peeph.def,
6423         * src/ds390/gen.c (genAnd, genOr),
6424         * src/mcs51/peeph.def,
6425         * src/mcs51/gen.c (genAnd, genOr): fixed bug #846777
6426
6427 2003-11-25 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
6428
6429         Fixed several common-sub-expression bugs (#772861, #768380, & #755323)
6430         * src/SDCCdflow.c
6431         * src/SDCCcse.c
6432         * src/SDCCcse.h
6433         * src/SDCCBBlock.h
6434         * src/SDCCBBlock.c
6435
6436 2003-11-23 Klaus Flittner <klaus_flittner AT gmx.de>
6437
6438         fixed bug #845089
6439         * src/SDCCbitv.h,
6440         * src/SDCCbitv.c: added function to free a bitvector
6441         * src/SDCClrange.h,
6442         * src/SDCClrange.c: added function to recompute the liveranges
6443         * src/avr/ralloc.c,
6444         * src/ds390/ralloc.c,
6445         * src/hc08/ralloc.c,
6446         * src/mcs51/ralloc.c,
6447         * src/pic/ralloc.c,
6448         * src/pic16/ralloc.c,
6449         * src/xa51/ralloc.c,
6450         * src/z80/ralloc.c: recompute the liveranges after register packing
6451
6452 2003-11-21 Klaus Flittner <klaus_flittner AT gmx.de>
6453
6454         * src/SDCCloop.c (newInduction): fixed bug #845630
6455
6456 2003-11-21 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
6457
6458         * src/SDCCsymt.c (compareTypesExact): disabled debugging output
6459         inadvertantly left behind from my 2003-11-12 change
6460
6461 2003-11-20 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
6462
6463         Updated headers I neglected to commit yesterday.
6464         * src/SDCClrange.h,
6465         * src/SDCCicode.h
6466
6467 2003-11-19 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
6468
6469         * src/SDCCcse.c (algebraicOpts): fixed bug #773153
6470         * src/SDCClrange.c (rlivePoint): need to mark IC_RESULT used if POINTER_SET op
6471         * src/SDCCopt.c (eBBlockFromiCode),
6472         * src/SDCClrange.c (hashiCodeKeys, sequenceiCode, computeLiveRanges): seperated
6473         the creation of the key hash table from the sequencing so it can be used
6474         earlier (for some GCSE bug fixes still pending)
6475
6476 2003-11-15 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
6477
6478         * src/mcs51/gen.c (genPlus): generate shortcut for adding 0xab00
6479         * support/regression/tests/addsub.c: testing genPlus shortcut
6480
6481 2003-11-15  Borut Razem <borut.razem AT siol.net>
6482
6483         * src/SDCCmain.c: fixed bug #841645: -MM command line option passed to sdcpp
6484
6485 2003-11-15 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
6486
6487         * src/SDCCcse.c (cseBBlock): fixed bug #527779
6488         * src/SDCCcse.c (deleteGetPointers): rewrote so that the set
6489         ordering is immaterial.
6490         * src/SDCCdflow.c (mergeInExprs): fixed bug #587536
6491
6492 2003-11-14 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
6493
6494         * src/SDCCicode.c (geniCodeAddressOf): fixed part of bug #840381
6495         * src/SDCCopt.c (replaceRegEqv, isLocalWithoutDef): fixed other part
6496         (SIGSEV) of bug #840381
6497         * src/SDCCmain.c (linkEdit, assemble): fixed bug #841606 (don't
6498         unlink new file before rename if new and old filenames are the same)
6499
6500 2003-11-13 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
6501
6502         * src/mcs51/main.c: started fixing bug #737001 (SDCC not clearing
6503         uninitialized variables) for the mcs51. Set environment variable
6504         SDCC_GENRAMCLEAR to test.
6505         xdata initialization slightly shorter
6506
6507 2003-11-12 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
6508
6509         * src/SDCCsymt.h,
6510         * src/SDCCsymt.c (addSymTypeChain, compareTypesExact): fixed bugs
6511         #838241 & 780691 (basicly the same bug)
6512         * src/SDCCBBlock.c (iCode2eBBlock): fixed bug #840148
6513         * src/SDCCBBlock.c (iCodeFromeBBlock): fixed bug #840162
6514
6515 2003-11-11 Bernhard Held <bernhard AT bernhardheld.de>
6516
6517         * src/SDCCmain.c (linkEdit): "fix" #834252
6518
6519 2003-11-11 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
6520
6521         * src/SDCCast.c (removePostIncDecOps, removePreIncDecOps),
6522         * src/SDCCast.h,
6523         * src/SDCC.y: fixed bug #819403
6524
6525 2003-11-08 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
6526
6527         * support/regression/fwk/lib/testfwk.c: printn is recursive and thus needs
6528         the reentrant attribute.
6529         * src/hc08/gen.c (genPackBits): added missing stack readjustment
6530         * sim/ucsim/hc08.src/inst.cc (inst_mov): fixed bugs with mov instruction
6531         simulation
6532         * src/SDCCast.c (decorateType): fixed bug with storage class not being
6533         updated during pointer dereference; f.e. ~(((char *)1)*) was being
6534         erroneously reduced to a literal.
6535         * src/hc08/ralloc.c (packRegisters, rematStr),
6536         * src/hc08/gen.c (aopForRemat): allow literals to be rematerialized in
6537         some cases
6538
6539 2003-11-08 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
6540
6541         * src/mcs51/main.c: fixed bug #838385. Thanks to Josef Pavlik for finding and fixing
6542         * doc/sdccman.lyx: changed from 'article' to 'book'
6543         * doc/Makefile: readded test_suite_spec and cdbfileformat
6544
6545 2003-11-08 Bernhard Held <bernhard AT bernhardheld.de>
6546
6547         * device/include/stdlib.h: include malloc.h to comply with ANSI
6548         * support/regression/tests/malloc.c: include stdlib.h instead of malloc.h
6549
6550 2003-11-07 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
6551
6552         * doc/Makefile: sdccman.pdf should build with correct references (more info in commit msg)
6553         * doc/clean.mk: also remove *.out files
6554         * doc/sdccman.lyx: some additions, larger top/bottom margins
6555
6556 2003-11-07 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
6557
6558         * src/SDCC.y: fixed bug #837365
6559         * support/regression/tests/bitopcse.c
6560         * src/hc08/gen.c (genPointerGet): Don't assume pointer operand is
6561         a symbol (might be valop instead)
6562         * device/lib/Makefile.in: added errno.c to HC08SOURCES
6563         * device/lib/clean.mk: added hc08 to the cleaning list
6564
6565 2003-11-04  Borut Razem <borut.razem AT siol.net>
6566
6567         * configure, configure.in, sdcc_vc_in.h, sdcconf_in.h: reverted changes,
6568           made 2003-11-04
6569         * support/Util/NewAlloc.c, as/hc08/lklibr.c, as/mcs51/lklibr.c,
6570           as/z80/aslist.c, as/z80/assym.c: removed inclusion of nonstandard malloc.h;
6571           malloc is declared in standard stdlib.h
6572
6573 2003-11-06 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
6574
6575         * device/lib/hc08/Makefile: need to clean .rel not .o files
6576         * src/hc08/gen.c (genDjnz): can't use djnz with extended addressing mode
6577
6578 2003-11-06 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
6579
6580         * src/port.h,
6581         * src/hc08/main.c,
6582         * src/mcs51/main.c,
6583         * src/ds390/main.c,
6584         * src/z80/main.c,
6585         * src/avr/main.c,
6586         * src/pic/main.c,
6587         * src/pic16/main.c,
6588         * src/xa51/main.c: added hasExtBitOp & oclsExpense functions to ports
6589         * src/SDCCicode.c: changed several IS_FARSPACE tests to isOclsExpensive
6590         tests (which uses the port's oclsExpense function)
6591         * src/SDCC.y,
6592         * src/SDCCast.c,
6593         * src/SDCCicode.c,
6594         * src/hc08/gen.c,
6595         * src/ds390/gen.c,
6596         * src/mcs51/gen.c: added support for the SWAP iCode (RFE #834167)
6597
6598 2003-11-04 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
6599
6600         * src/SDCCcse.c (ifxOptimize),
6601         * src/SDCClabel.c (labelIfx, deleteIfx): When the condition to
6602         an IFX iCode is volatile, convert to DUMMY_READ_VOLATILE instead
6603         deleting the IFX iCode.
6604         * src/hc08/ralloc.c: reduced unneeded slocs
6605         * src/hc08/gen.c: fixed bug in asmopToBoolean
6606
6607 2003-11-04  Borut Razem <borut.razem AT siol.net>
6608
6609         * configure, configure.in, sdcc_vc_in.h, sdcconf_in.h,
6610           support/Util/NewAlloc.c, as/hc08/lklibr.c, as/mcs51/lklibr.c,
6611           as/z80/aslist.c, as/z80/assym.c: decision to include malloc.h
6612           transferred to configure
6613
6614 2003-11-03 Bernhard Held <bernhard AT bernhardheld.de>
6615
6616         Use headers defined in the C[++] standards:
6617         * sim/ucsim/gui.src/serio.src/fileio.cc
6618         * sim/ucsim/gui.src/serio.src/frontend.cc
6619         * sim/ucsim/gui.src/serio.src/main.cc
6620         * sim/ucsim/gui.src/serio.src/posix_signal.cc
6621         * support/Util/NewAlloc.c
6622         * as/hc08/lklibr.c
6623         * as/mcs51/lklibr.c
6624         * as/z80/aslist.c
6625         * as/z80/assym.c
6626
6627 2003-11-03  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
6628
6629         * Added MSVC projects for hc08 assembler and linker:
6630         all.dsp, config.dsp, sdcc.dsw, /as/hc08/as_hc08.dsp,
6631         /as/hc08/link_hc08.dsp
6632
6633 2003-11-03 Martin Helmling <Martin.Helmling AT octo-soft.de>
6634
6635         * debugger/mcs51/cmd.c: allows filename starting with digit(+ some debug)
6636
6637 2003-11-02 Bernhard Held <bernhard AT bernhardheld.de>
6638
6639         * src/SDCCmain.c (linkEdit): "fixed" again bug #833605
6640
6641 2003-11-01 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
6642
6643         * src/mcs51/main.c: xdata initialization is 13 bytes shorter now
6644
6645 2003-10-31  Borut Razem <borut.razem AT siol.net>
6646
6647         * support/cpp2/cpplib.h,
6648           support/cpp2/cpplib.c,
6649           support/cpp2/cpplex.c,
6650           support/cpp2/cppinit.c: introduced #pragma preproc_asm [ + | - ]
6651           to switch _asm block preprocessing on / off. Default is
6652           #pragma preproc_asm +
6653
6654 2003-10-31  Borut Razem <borut.razem AT siol.net>
6655
6656         * support/cpp2/cpplex.c: Fixed _WIN32 problem with CR-CR-LF sequences
6657           when outputting comment blocks (when executed with -C option) and
6658           _asm (SDCPP specific) blocks
6659
6660 2003-10-31 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
6661
6662         * as/hc08/lkrloc.c (relr): Fixed ihx output, fixed lastAreaIndex warning
6663
6664 2003-10-31 Klaus Flittner <klaus_flittner AT gmx.de>
6665
6666         * src/SDCCcse.c (updateSpillLocation): fixed bug #808027
6667
6668 2003-10-31 Bernhard Held <bernhard AT bernhardheld.de>
6669
6670         * src/SDCCmain.c (linkEdit): "fixed" bug #833605
6671         * src/SDCCast.c (decorateType): fixed bug #832664
6672
6673 2003-10-31  Borut Razem <borut.razem AT siol.net>
6674
6675         * support\cpp2\cpplex.c: fixed for SDCPP:
6676           comments(when executed with -C option) and _asm blocks
6677           were included even if they where in skipped #if block.
6678           Applied solution from GCC cpp 3.3.2
6679
6680 2003-10-31  Borut Razem <borut.razem AT siol.net>
6681
6682         * src/SDCC.lex: sdcc now understands both formats:
6683           '# <line_number> <file_name>' and
6684           '#line <line_number> <file_name>'
6685         * support/cpp2/cppmain.c: sdcpp now generates the standard
6686           '# <line_number> <file_name>' instead of former
6687           '#line <line_number> <file_name>'
6688
6689 2003-10-30  Borut Razem <borut.razem AT siol.net>
6690
6691         * support/cpp2/cpphash.h,
6692         * support/cpp2/cpplib.h
6693         * support/cpp2/cpplex.c,
6694         * support/cpp2/cppmain.c,
6695         * support/cpp2/cppinit.c: fixed bug #828015 - Syntax variation for _asm character constants
6696
6697 2003-10-30 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
6698
6699         Fixed a number of problems revealed by bug #827883.
6700         * src/SDCCloop.c (loopInvariants): Spill location of the
6701         result operand should be recomputed if extracted from
6702         a loop. Also, don't extract assignments of an iTemp
6703         from a literal.
6704         * src/SDCCast.c (isConformingBody): loop reversal should
6705         not occur if the control variable is involved with a
6706         relational operator.
6707
6708 2003-10-28 Bernhard Held <bernhard AT bernhardheld.de>
6709
6710         * .version: bumped to 2.3.6 to reflect the big improvements
6711         made by Erik and Klaus. Thanks!
6712
6713 2003-10-28 Klaus Flittner <klaus_flittner AT gmx.de>
6714
6715         Replaced the livrange code.
6716         * src/SDCClrange.c: added new LR code
6717         * src/SDCCloop.c,
6718         * src/SDCCBBlock.h: removed remainig parts from old LR code
6719         * src/ds390/ralloc.c,
6720         * src/ds390/gen.c: minor fixes to make it work with new code
6721
6722 2003-10-28 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
6723
6724         * as/hc08/asm.h,
6725         * as/hc08/lkrloc.c,
6726         * src/hc08/gen.c,
6727         * src/hc08/ralloc.c: Fix various warnings related to the hc08
6728         * src/SDCCicode.c (geniCodePreInc, geniCodePreDec): Fixed bug #829717
6729         (tweaked fix for bug #818696)
6730
6731 2003-10-23 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
6732
6733         * src/z80/ralloc.c (joinPushes): Fixed bug #828742
6734
6735 2003-10-23 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
6736
6737         * src/SDCCmain.c,
6738         * sdccconf_in.h: Fixed bug #828387 (--disable-hc08-port didn't work)
6739         * src/mcs51/gen.c (gencjneshort),
6740         * src/ds390/gen.c (gencjneshort): Made comparison with AOP_IMMD operand
6741         more efficient (per Scott Bronson's suggestion)
6742
6743 2003-10-22 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
6744
6745         Extended the semantics of the critical keyword to include
6746         individual statements. See RFE #827755 and #799831
6747         * src/SDCC.y
6748         * src/SDCCicode.c
6749         * src/SDCCopt.c
6750         * src/SDCCast.c
6751         * support/Util/SDCCerr.c
6752         * support/Util/SDCCerr.h
6753         * src/mcs51/gen.c
6754         * src/ds390/gen.c
6755         * src/hc08/gen.c
6756
6757 2003-10-19  Borut Razem <borut.razem AT siol.net>
6758
6759         * src/SDCC.lex: fixed bug #825944 - defined yytext_ptr to make it compile with flex 2.5.31
6760
6761 2003-10-19 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
6762
6763         * src/SDCCicode.c (geniCodePreInc, geniCodePreDec, ast2iCode):
6764         Fixed bug #818696
6765         * src/SDCCast.c (ast_print): Fixed --dumptree so that preincrement
6766         and predecrement operand is displayed
6767
6768 2003-10-13 Bernhard Held <bernhard AT bernhardheld.de>
6769
6770         * src/SDCCval.c (valMinus): fixed bug #826041
6771
6772 2003-10-15 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
6773
6774         Some hc08 related updates that I missed earlier
6775         * sim/ucsim/stypes.h
6776         * support/regression/ports/hc08/spec.mk
6777
6778 2003-10-15 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
6779
6780         New target "hc08" for the Motorola 68hc08 family of micros
6781
6782         * configure
6783         * configure.in
6784         * Makefile
6785         * src/hc08/*
6786         * src/SDCCmain.c
6787         * src/port.h
6788         * sim/ucsim/hc08.src/*
6789         * sim/ucsim/configure.in
6790         * src/ucsim/configure
6791         * sim/ucsim/packages_in.mk
6792         * as/hc08/*
6793         * as/Makefile
6794         * device/include/mc68hc908qy.h
6795         * device/lib/hc08/*
6796         * device/lib/Makefile.in
6797         * support/regression/ports/hc08/*
6798         * support/regression/Makefile
6799
6800 2003-10-14 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
6801
6802         * src/z80/gen.c: fixed bug revealed by ast_constant_folding.c
6803         regression test
6804         * src/ds390/gen.c (genCast): fixed bug #821957
6805
6806 2003-10-13 Bernhard Held <bernhard AT bernhardheld.de>
6807
6808         * device/lib/logf.c: "fixed" overlay bug
6809         * support/regression/ports/host/spec.mk: added m library
6810         * support/regression/ports/mcs51-stack-auto/spec.mk: added float funcs
6811         * support/regression/tests/float_trans: added (for Eric)
6812
6813 2003-10-12 Bernhard Held <bernhard AT bernhardheld.de>
6814
6815         * src/mcs51/gen.c (genCpl): fixed bug
6816         http://sf.net/mailarchive/message.php?msg_id=6263915
6817
6818 2003-10-10 Bernhard Held <bernhard AT bernhardheld.de>
6819
6820         * src/SDCCast.c (decorateType): added extended constant folding
6821         * src/SDCCsymt.c (computeType): cleanup
6822         * src/SDCCval.c (valShift): minor optimization
6823         * support/regression/tests/ast_constant_folding.c: added
6824
6825 2003-10-09  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
6826
6827         * src/SDCCmain.c: removed some unintended changes
6828
6829 2003-10-09  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
6830
6831         * src/SDCCmain.c (setParseWithComma): fixed bug #816685
6832         * src/z80/gen.c: fixed part of bug #817589
6833         * src/SDCCsymt.c (checkFunction): fixed bug #817895
6834
6835 2003-10-08 Bernhard Held <bernhard AT bernhardheld.de>
6836
6837         Replaced cast (void **) with (void *) to avoid gcc 3 warning:
6838         * src/SDCCcflow.c
6839         * src/SDCCcse.c
6840         * src/SDCCdflow.c
6841         * src/SDCClabel.c
6842         * src/SDCClrange.c
6843         * src/SDCCmem.c
6844         * src/SDCCopt.c
6845         * src/SDCCpeeph.c
6846         * src/SDCCset.c
6847         * src/avr/ralloc.c
6848         * src/ds390/ralloc.c
6849         * src/izt/ralloc.c
6850         * src/mcs51/ralloc.c
6851         * src/pic/ralloc.c
6852         * src/pic16/ralloc.c
6853         * src/xa51/ralloc.c
6854         * src/z80/ralloc.c
6855         * src/z80/gen.c: removed unused label "release:"
6856
6857 2003-10-06  Borut Razem <borut.razem AT siol.net>
6858
6859         * src/SDCC.lex: removed definition of unused variables
6860           save_optimize and save_options
6861
6862 2003-10-06 Bernhard Held <bernhard AT bernhardheld.de>
6863
6864         * clean.mk: removed '=' in "-maxdepth=1"
6865         * src/SDCCloop.c: replace LRKLAUS with SDCC_LRKLAUS
6866         * src/SDCClrange.c: replace LRKLAUS with SDCC_LRKLAUS
6867
6868 2003-10-06  Borut Razem <borut.razem AT siol.net>
6869
6870         * src/SDCC.lex, src/SDCC.lex: use dbuf for "_asm" definitions;
6871           my_unput() replaced by unput()
6872
6873 2003-10-05 Bernhard Held <bernhard AT bernhardheld.de>
6874
6875         * src/SDCCloop.c (assignmentsToSym, loopInduction): cast argument of
6876         setToNull() to (void *) to avoid gcc3.x's warning: "dereferencing
6877         type-punned pointer will break strict-aliasing rules"
6878         Old LR behaviour is again default; Klaus' LR can be choosen by
6879         defining the environment variable LRKLAUS
6880         * src/SDCCBBlock.h
6881         * src/SDCCloop.c
6882         * src/SDCClrange.c
6883         * src/ds390/ralloc.c (spillThis): applied Klaus' patch
6884         * clean.mk: fixed removal of files in bin/CVS/
6885         * device/lib/clean.mk: fixed removal of directories small and large
6886         * support/Util/SDCCerr.c: changed W_INT_OVL to ERROR_LEVEL_PEDANTIC
6887         * src/SDCCicode.c,
6888         * src/SDCCval.c: removed superflous test for pedantic
6889
6890 2003-10-05  Borut Razem <borut.razem AT siol.net>
6891
6892         * src/SDCC.lex, support/Util/SDCCerr.c, sdcc/support/Util/SDCCerr.h:
6893           Fixed bug #816692: introduced new ERROR_LEVEL_PEDANTIC warning
6894           message "unmatched #pragma SAVE and #pragma RESTORE"
6895
6896 2003-10-04  Frieder Ferlemann <Frieder.Ferlemann AT web.de>
6897
6898         * doc/sdccman.lyx: various additions and updates (interrupts, inline
6899           assembly, critical functions, atomic, nojtbound)
6900
6901 2003-10-04 Bernhard Held <bernhard AT bernhardheld.de>
6902
6903         Applied liferange patch from Klaus Flittner <klaus_flittner AT gmx.de>
6904         * src/SDCCBBlock.h
6905         * src/SDCCloop.c
6906         * src/SDCCloop.h
6907         * src/SDCClrange.c
6908
6909 2003-10-03  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
6910
6911         * src/z80/gen.h,
6912         * src/z80/gen.c (aopOp, aopGet, aopPut, genDummyRead),
6913         * src/mcs51/gen.h
6914         * src/mcs51/gen.c (aopOp, aopGet, aopPut, genDummyRead),
6915         * src/ds390/gen.h
6916         * src/ds390/gen.c (aopOp, aopGet, aopPut, genDummyRead),
6917         * src/SDCCicode.c (ast2iCode, geniCodeDummyRead): Fixed bug #663539
6918         * src/SDCCopt.c (killDeadCode): Fixed bugs #663539 & #816705
6919
6920 2003-10-02  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
6921
6922         * src/z80/gen.c (genRet): fixed bug #524753
6923         * src/z80/gen.c (genCast): fixed internal error on cast from
6924         pointer to long
6925         * src/z80/gen.c (_saveRegsForCall, emitCall): adapted Johan's
6926         fix for bug #477835 to the z80
6927         * src/z80/gen.c (genZ80code, _vemit2, _emit2): added support
6928         for tracking iCodes in the peephole optimizer for z80
6929
6930 2003-10-01  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
6931
6932         * src/SDCCicode.c (geniCodeJumpTable, geniCodeSwitch): fixed
6933         the other part of bug #814548
6934         * src/SDCCpeeph.c (labelInRange): fixed bug #814558
6935
6936 2003-09-30  Bernhard Held <bernhard AT bernhardheld.de>
6937
6938         * src/SDCCcse.c: fixed part of bug #814548
6939
6940 2003-09-28  Borut Razem <borut.razem AT siol.net>
6941
6942         * src/asm.c: rewrite of printILine() to use temporary file instead
6943           a pipe
6944         * src/xa51/main.c: commented out declaration of int rewinds
6945
6946 2003-09-27  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
6947
6948         * src/SDCCicode.c (geniCodeJumpTable): Fixed bug #813206
6949
6950 2003-09-26  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
6951
6952         * src/SDCCdflow.c (computeDataFlow): Fixed bug #810746
6953         * src/asm.c (printILine): Fixed bug #811015
6954
6955 2003-09-22  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
6956
6957         *link/z80/lklibr.c, as/mcs51/lklibr.c: Improved memory allocation and
6958         freeing.
6959
6960 2003-09-21  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
6961
6962         * src/z80/gen.c (setupToPreserveCarry): Fixed bug #796955
6963         * src/z80/gen.c (setupPair, genMovePairPair): Fixed setupPair
6964         to correctly handle general case of AOP_PAIRPTR
6965         * src/z80/gen.c (aopGet, aopPut): Generalized AOP_PAIRPTR handling
6966
6967 2003-09-21  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
6968
6969         * src/mcs51/ralloc.c (fillGaps),
6970         * src/ds390/ralloc.c (fillGaps): fixed bug #810093 (yet another
6971         register positioning bug)
6972
6973 2003-09-21  Bernhard Held <bernhard AT bernhardheld.de>
6974
6975         * device/lib/_fsdiv.c: replaced (1<<31) by (1ul<<31)
6976
6977 2003-09-19  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
6978
6979         * src/mcs51/gen.c (loadDptrFromOperand, genFarPointerGet,
6980         genCodePointerGet, genGenPointerGet, genFarPointerSet,
6981         genGenPointerSet): handle AOP_DPTR correctly when loading dptr
6982         (ralloc doesn't intentionally do this now, but perhaps later)
6983         * src/mcs51/ralloc.c (serialRegAssign, fillGaps),
6984         * src/ds390/ralloc.c (serialRegAssign, fillGaps): fixed some
6985         register positioning bugs (Fixed bug #762602 and #795325)
6986         * src/SDCCicode.c (geniCodeDerefPtr): Track output class correctly
6987         (Fixed bug #808779)
6988         * src/z80/gen.c: increased _vemit2's buffer[] to handle long
6989         lines that --i-code-in-asm generates
6990
6991 2003-09-18  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
6992
6993         *link/z80/lklibr.c, as/mcs51/lklibr.c: Fixed Linux segfaults when
6994         trying to fclose a FILE* that was already closed.
6995
6996 2003-09-18  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
6997
6998         * src/SDCCsymt.c (structElemType): fixed bug #808291 (members
6999         of const struct should be treated as if const themselves)
7000
7001 2003-09-18  Bernhard Held <bernhard AT bernhardheld.de>
7002
7003         * src/SDCCval.c (valPlus, valMinus): fixed bug #808337
7004
7005 2003-07-06  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
7006
7007         * support/librarian/sdcclib.c: Generate correct offsets for libraries with
7008         Unix (/n) and DOS (/r/n) line terminations.
7009
7010 2003-09-17  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
7011
7012         * src/SDCCopt.c (cnvFromFloatCast, cnvToFloatCast): fixed
7013         bug #613775
7014
7015 2003-09-16  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
7016
7017         * src/mcs51/gen.c (genFunction, genEndFunction),
7018         * src/ds390/gen.c (genFunction, genEndFunction): Moved save
7019         and restore of EA so that stack offsets to parameters are
7020         correct when using both critical and reentrant/stack-auto.
7021         * src/z80/gen.c (aopOp): removed erroneous assertion about sloc
7022         size (can be triggered in error if sloc is shared between
7023         different sized objects)
7024         * device/include/float.h: fixed macros to explicitly use
7025         unsigned long where needed
7026
7027 2003-09-15  Bernhard Held <bernhard AT bernhardheld.de>
7028
7029         Feature req. 799831: added code to allow nesting of critical functions
7030         * src/mcs51/gen.c (genFunction, genEndFunction)
7031         * src/ds390/gen.c (genFunction, genEndFunction)
7032
7033 2003-09-14  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
7034
7035         * src/SDCCsymt.c (sclsFromPtr),
7036         * src/SDCCsymt.h,
7037         * src/SDCCast.c (decorateType): fixed bug #462971. Also, better
7038         support for standard C idiom of memory mapped variables; for
7039         example, *((xdata int*)0x1234) = 1 is now internally equivalent
7040         to xdata int at 0x1234 tempvar = 1.
7041         * sim/ucsim/z80.src/inst_xd.cc: fixed bug #805483 with patch
7042         provided by Akiya ISHIDA
7043
7044 2003-09-13  Bernhard Held <bernhard AT bernhardheld.de>
7045
7046         * src/SDCCval.c (cheapestVal): reenabled to reduce int to char
7047         * src/SDCCval.c (constVal): added reduction from int to char
7048         * src/SDCCval.c (valMult, valDiv): fixed sign handling
7049         * src/SDCCval.c (valShift): fixed after change of cheapestVal()
7050         * src/SDCCval.c (valCompare): fixed EQ_OP and NE_OP; they have
7051         to ignore the sign
7052         * support/regression/tests/shifts.c: fixed
7053
7054 2003-09-13  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
7055
7056         * src/z80/gen.c (genXor): Fixed bug #805445
7057
7058 2003-09-12  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
7059
7060         Fixed bug #621531 (const & volatile confusion in the type chain).
7061         DCL_PTR_CONST, DCL_PTR_VOLATILE, & IS_PTR_CONST now exclusively
7062         refer to the const or volatile state of the pointer itself.
7063
7064         * src/SDCCast.c
7065         * src/SDCCglue.c
7066         * src/SDCCicode.c
7067         * src/SDCCsymt.c
7068         * src/SDCCval.c
7069         * src/SDCC.y
7070         * src/SDCCsymt.h
7071         * src/pic/gen.c
7072         * src/pic/ralloc.c
7073         * src/pic16/gen.c
7074         * src/pic16/ralloc.c
7075         * support/regression/tests/const.c
7076
7077 2003-09-10  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
7078
7079         When checking for duplicated modules, use absolute paths
7080         instead of relative paths.  Files changed:
7081
7082         * as/mcs51/lklib.c
7083         * link/z80/lklib.c
7084
7085 2003-09-09  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
7086
7087         * src/SDCCicode.c (geniCodeLogic): fixed bug #797572
7088
7089 2003-09-07  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
7090
7091         * device/include/string.h: added size_t typedef, changed
7092         prototypes to use size_t, eliminated separate reentrant and
7093         non-reentrant declarations, added _memmove declaration
7094         * device/lib/_memcpy.c: changed to use size_t instead of int,
7095         changed /4 to >>2 to avoid division library call
7096         * device/lib/_memcmp.c,
7097         * device/lib/_memset.c,
7098         * device/lib/_strncat.c,
7099         * device/lib/_strncpy.c,
7100         * device/lib/_strncmp.c: changed to use size_t instead of int
7101         * device/lib/_memmove.c: new file (fixed bug #772294)
7102         * device/lib/Makefile.in: added _memmove.c
7103         * device/lib/z80/asm_strings.s: fixed bug #772290
7104         * support/regression/tests/bitfields.c: attempt to fix host assertion
7105         failure on amd64-unknown-linux2.2
7106
7107 2003-09-06  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
7108
7109         * src/z80/gen.c (aopPut, spillPairReg): fixed bug #800998
7110         * src/z80/gen.c (genFunction, genEndFunction): fixed "bug" #774700
7111         * as/z80/asmain.c (main): fixed bug #801766
7112
7113 2003-09-06  Bernhard Held <bernhard AT bernhardheld.de>
7114
7115         * src/SDCCicode.c (ast2iCode): fixed differences in iCode with different
7116         compilers
7117
7118 2003-09-05  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
7119
7120         * src/SDCCast.c (isConformingBody): fixed loop reversal bug
7121         reported in bug #800609
7122
7123 2003-09-04  Vangelis Rokas <vrokas AT otenet.gr>
7124
7125         * Top header beautifications in src/pic16 directory:
7126           device.c, device.h, gen.c, gen.h, genarith.c, glue.c, pcode.c,
7127           pcodeflow.c, pcodeflow.h, pcode.h, pcodepeep.c, pcoderegs.c,
7128           pcoderegs.h, ralloc.c, ralloc.h
7129         * main.c: added top header and GPL license notice
7130         * pcode.c: fixed the if-conditional warning
7131
7132 2003-09-04  Bernhard Held <bernhard AT bernhardheld.de>
7133
7134         * device/lib/_mullong.c: replaced int by short for gcc
7135
7136 2003-08-31  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
7137
7138         * src/SDCCpeeph.c (notVolatile, notVolatileVariable): handle IFX
7139         and JUMPTABLE iCodes properly now (worked by accident before)
7140         * src/mcs51/gen.c (leftRightUseAcc),
7141         * src/ds390/gen.c (leftRightUseAcc): handle IFX and JUMPTABLE
7142         iCode properly now. Use getSize instead of nRegs since a & b
7143         aren't part of the nRegs tally.
7144
7145 2003-08-31  Vangelis Rokas <vrokas AT otenet.gr>
7146
7147         * src/pic16/main.c: corrected offsets of interrupt vectors in _pic16_genIVT()
7148         * src/pic16/pcode.c: fix to disable inserting BANKSEL directive
7149           before instructions that use the _STATUS register
7150
7151 2003-08-31  Bernhard Held <bernhard AT bernhardheld.de>
7152
7153         * src/mcs51/gen.c (freeAsmop): fixed off by one in stack offset (AOP_STK)
7154         * src/mcs51/gen.c (genNearPointerSet): added missing opcode for
7155         fetching of the pointer
7156         * src/mcs51/gen.c (genNearPointerGet): added reuse of PREG,
7157         copied from genNearPointerSet()
7158         * src/mcs51/gen.c (genNearPointerGet): don't pop r0/r1, if RESULTONSTACK
7159         * src/mcs51/gen.c: changed order of freeAsmop(left/right/result)-calls.
7160         If they pop r0/r1 they must be called in the opposite order than aopOp().
7161         * device/lib/_mullong.c: fixed for "--model-large --int-long-reent"
7162         (resp. --stack-auto), prepared for --xstack
7163
7164 2003-08-28  Frieder Ferlemann <Frieder.Ferlemann AT web.de>
7165
7166         * doc/sdccman.lyx: reverted tables to those in cvs 1.64
7167
7168 2003-08-28  Bernhard Held <bernhard AT bernhardheld.de>
7169
7170         * device/lib/_startup.c: quick & dirty fix for ds390/ds400;
7171         these ports have their own __sdcc_external_start()
7172
7173 2003-08-26  Bernhard Held <bernhard AT bernhardheld.de>
7174
7175         pic patch provided by Slade Rich <slade_rich AT yahoo.com>
7176         * src/pic/glue.c (pic14printPublics): fixed bug introduced when symbol
7177         type for bits was changed. It resulted in bit variables becoming
7178         global, which is not permitted in PIC 14 assembly output.
7179
7180 2003-08-23  Frieder Ferlemann <Frieder.Ferlemann AT web.de>
7181
7182         * doc/sdccman.lyx: various additions and updates. Rearranged sections
7183
7184 2003-08-22  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
7185
7186         Z80 and MCS51 linkers complaint if a public symbol is defined
7187         in more than one library module:
7188
7189         * as/mcs51/lklib.c
7190         * link/z80/lklib.c
7191         * as/mcs51/Makefile.in
7192
7193 2003-08-22  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
7194
7195         A few small changes that speed up the peephole optimizer.
7196
7197         * src/SDCCpeeph.c
7198
7199 2003-08-22  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
7200
7201         Try to make the peephole optimizer smarter by maintaining
7202         an association between the assembly source code and the
7203         iCodes that originated them. Put this information to use
7204         with a new peephole rule condition "notVolatile" so that
7205         the rules can be aggressive yet still safe.
7206
7207         * src/SDCCpeeph.c
7208         * src/SDCCpeeph.h
7209         * src/mcs51/gen.c
7210         * src/mcs51/peeph.def
7211
7212 2003-08-20  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
7213
7214         Fixed bug #741761
7215
7216         * src/mcs51/gen.c (aopForSym, leftRightUseAcc),
7217         * src/ds390/gen.c (aopForSym, leftRightUseAcc): preserve A and B
7218         if the left or right operand symbols have the accuse flag set.
7219
7220 2003-08-20  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
7221
7222         Changed the type of the result of the ! (NOT) operator to char;
7223         previously it returned the same type as the source. This allows
7224         us to eliminate all the genFloatNot functions (all of its target
7225         implementations were very buggy) since !float can use the same
7226         code as !long now.
7227
7228         * src/SDCCicode.c (ast2iCode): ! returns char
7229         * src/mcs51/gen.c (genNot, genNotFloat),
7230         * src/ds390/gen.c (genNot, genNotFloat),
7231         * src/z80/gen.c (genNot, genNotFloat),
7232         * src/pic/gen.c (genNot, genNotFloat),
7233         * src/pic16/gen.c (genNot, genNotFloat): eliminated genNotFloat
7234
7235 2003-08-19  Bernhard Held <bernhard AT bernhardheld.de>
7236
7237         pic patch provided by Slade Rich <slade_rich AT yahoo.com>
7238         1. Interrupt would not compile properly. Ensure PCLATH register is saved
7239            during interrupts. Ensure WSAVE is located at a shared bank address.
7240         2. Fixed page selection in some places
7241         3. Fixed BTFSS/C to where necessary use registers directly and not simply
7242            the registers name strings.
7243         4. Fixed "signed / unsigned compare" compiler warnings.
7244         5. The PIC port manages its own allocation of the general purpose
7245            registers, but makes no attempt to reuse them. As a result when
7246            compiling it soon runs out of general purpose registers. Some
7247            additional code was added to the files pcode.c and device.c to walk
7248            through the function call tree and rename the registers so that they
7249            get reused.
7250
7251         * src/pic/device.c
7252         * src/pic/gen.c
7253         * src/pic/glue.c
7254         * src/pic/pcode.c
7255         * src/pic/pcode.h
7256         * src/pic/ralloc.c
7257         * src/pic/ralloc.h
7258         * src/pic/genarith.c: Fixed problems with PIC 14 port in functions
7259         genPlus() & genMinus() when the result is the same as left or right
7260
7261 2003-08-18  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
7262
7263         * src/z80/gen.c (isUnsplitable, fetchPairLong): fixed bug #770454
7264
7265 2003-08-18  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
7266
7267         Made bitfield a distinct type from bit so that bitfields
7268         convert as per ANSI C and bits retain their traditional
7269         boolean style behaviour. Implemented bitfield support in
7270         the z80 port.
7271
7272         * src/SDCCsymt.h,
7273         * src/SDCCsymt.c,
7274         * src/SDCCast.c,
7275         * src/cdbFile.c,
7276         * src/mcs51/gen.c,
7277         * src/ds390/gen.c: bit v bitfield split
7278         * src/z80/gen.c: New support for bitfields
7279         * support/regression/tests/bitfields.c: reenabled z80,
7280         added more tests
7281
7282 2003-08-17  Frieder Ferlemann <Frieder.Ferlemann AT web.de>
7283
7284         Rules 246.x, 247.x relate to bitfields, the others speed up
7285         access to xdata mapped I/O devices.
7286
7287         * src/mcs51/peeph.def: added 26 peepholes 246.x - 248.x, 180.x
7288
7289 2003-08-16  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
7290
7291         Cleaned up genPackBits and genUnpackBits and added two helper
7292         functions, emitPtrByteGet & emitPtrByteSet. Added optimizations
7293         for literal assignments in genPackBits (thanks to Frieder for
7294         reminding me).
7295
7296         * src/mcs51/gen.c
7297         * src/ds390/gen.c
7298
7299 2003-08-16  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
7300
7301         Fixed bug #748310 (pointer to function type mishandled when the
7302         function name is omitted). Also fixed a SIGSEGV when a function
7303         attribute (reentrant, etc) is used on a non-function or on a
7304         function but misplaced before the parameter list.
7305
7306         * src/SDCC.y (abstract_declarator, abstract_declaractor2): fixed
7307         bug #748310
7308         * src/SDCC.y (declarator2_function_attributes): avoided SIGSEGV
7309         * support/Util/SDCCerr.h,
7310         * support/Util/SDCCerr.c: Added func attr misuse error msg
7311
7312 2003-08-13  Bernhard Held <bernhard AT bernhardheld.de>
7313
7314         Fixed bug #787649 by anonymous
7315         * src/SDCCglue.c (emitRegularMap): added emission of sloc for func ptr
7316         * src/ds390/gen.c (aopForSym): fixed func ptr in sloc
7317
7318 2003-08-14  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
7319
7320         Fixed numerous bitfield problems.
7321
7322         * src/SDCC.y: More bitfield related error checking
7323         * src/SDCCsymt.h,
7324         * src/SDCCsymt.c (compStructSize): fixed bitfield offset calc
7325         * support/Util/SDCCerr.h,
7326         * support/Util/SDCCerr.c: Added & edited some bitfield err msgs
7327         * src/mcs51/gen.c (genPackBits, genUnpackBits): fixed mask bugs
7328         * src/ds390/gen.c (genPackBits, genUnpackBits): fixed mask bugs
7329         * support/regression/tests/bitfields.c: tests added
7330
7331 2003-08-13  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
7332
7333         Made the constant following the "interrupt" keyword optional. If
7334         omitted, the function will not automatically be given an entry
7335         in the interrupt vector table (similar to #pragma NOIV, but
7336         less syntacticly kludgy). The interrupt number is also now
7337         range checked. Also fixed a bug in the high order bit example
7338         in the manual.
7339
7340         * src/SDCC.y
7341         * src/SDCCmem.c
7342         * src/SDCCglue.c
7343         * src/SDCCsymt.h
7344         * support/Util/SDCCerr.c
7345         * support/Util/SDCCerr.h
7346         * doc/sdccman.lyx
7347
7348 2003-08-13  Bernhard Held <bernhard AT bernhardheld.de>
7349
7350         * src/SDCCcse.c (algebraicOpts): fix bug converting op from value to type
7351         * src/SDCCicode.c (operandOperation): rewritten some ops
7352         (*, ==, unary_minus) to fix possible overflows and to accord with ANSI
7353         * src/SDCCsymt.c (computeType): literals are handled the same way as any
7354         other type
7355         * src/SDCCval.c (cheapestVal): removed, it doesn't accord with ANSI (can
7356         be re-activated by defining REDUCE_LITERALS)
7357         * src/SDCCval.c (constVal): fixed; hex and octal constants can be
7358         unsigned, but are signed by default
7359         * src/SDCCval.c (constVal): rearranged
7360         * src/SDCCval.c (valMod): preliminary fix
7361         * src/SDCCval.c (valCastLiteral): use TYPE_* types
7362         * support/regression/literalop.c: added, work in progress
7363
7364 2003-08-12  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
7365
7366         Generate warnings for useless declarations like "char data;"
7367         that don't do what new users expect.
7368
7369         * src/SDCC.y
7370         * support/Util/SDCCerr.h
7371         * support/Util/SDCCerr.c
7372
7373 2003-08-09  Bernhard Held <bernhard AT bernhardheld.de>
7374
7375         * src/SDCCval.c (valMult): fix overflow detection of negative int
7376
7377 2003-08-07  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
7378
7379         * src/z80/ralloc.c (joinPushes): made compatible with new signedness
7380
7381         Changes to support big endian targets:
7382
7383         * src/ports.h
7384         * src/SDCCglue.c
7385         * src/avr/main.c
7386         * src/ds390/main.c
7387         * src/izt/i186.c
7388         * src/mcs51/main.c
7389         * src/pic/main.c
7390         * src/pic16/main.c
7391         * src/xa51/main.c
7392         * src/z80/main.c
7393
7394 2003-08-06  Bernhard Held <bernhard AT bernhardheld.de>
7395
7396         * src/SDCCval.c (cheapestVal): changed behaviour to the same as constVal()
7397         * device/lib/time.c: fixed warning "integer overflow in expression"
7398
7399 2003-08-05  Bernhard Held <bernhard AT bernhardheld.de>
7400
7401         * src/SDCCval.c (cheapestVal, valueFromLit): use TYPE_* types
7402         * src/SDCCval.c (constVal): changed default to signed; hex and octal
7403         constants are unsigned; added recognition of "u" flag for unsigned
7404         * src/SDCCval.c (valMult): fixed signdness, added warning for overflow
7405         * src/SDCCval.c (valDiv, valMod): fixed signdness
7406         * src/SDCCicode.c (operandOperation): fixed critical typo; fixed
7407         signedness of modulo, left and right shift
7408         * support/Util/SDCCerr.c: added warning "integer overflow in expression"
7409         * support/Util/SDCCerr.h: added warning W_INT_OVL
7410         * src/SDCCast.c (decorateType): fixed gcc3.3 warning
7411         * src/SDCCast.c (ast_print): improved output of constants
7412
7413 2003-08-04  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
7414
7415         Fixed some warnings when building with MSVC:
7416
7417         * as\mcs51\asdata.c
7418         * as\z80\asdata.c
7419         * as\mcs51\asm.h
7420         * as\z80\asm.h
7421         * link\z80\aslink.h
7422         * link\z80\lkdata.c
7423         * link\z80\lkeval.c
7424         * link\z80\lkgb.c
7425         * link\z80\lkihx.c
7426         * link\z80\lks19.c
7427         * link\z80\lksym.c
7428         * support\cpp2\cpplib.c
7429         * src\ds390\gen.c
7430         * src\mcs51\gen.c
7431
7432 2003-08-03  Bernhard Held <bernhard AT bernhardheld.de>
7433
7434         * src/SDCCast.c (constExprTree): fix bug #781827 by Carl Worth <cworth AT isi.edu>
7435
7436 2003-08-01  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
7437
7438         * support\librarian\clean.mk: Do not remove Makefile.
7439         * support\librarian\Makefile: added.
7440
7441 2003-08-01  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
7442
7443         Added librarian to MSVC build:
7444         * all.dsp
7445         * sdcc.dsw
7446         * support\librarian\librarian.dsp
7447
7448         'configure' not needed for librarian, removed:
7449         * support\librarian\configure
7450         * support\librarian\configure.in
7451         * support\librarian\config_in.h
7452         * support\librarian\Makefile.in
7453
7454         Hopefully these ones built the librarian and the rest of sdcc properly:
7455         * Makefile
7456         * Makefile.common.in
7457
7458         Messed up 'configure', so revert to previous version:
7459         * configure
7460         * configure.in
7461
7462 2003-07-31  Bernhard Held <bernhard AT bernhardheld.de>
7463
7464         * src/SDCCicode.c (operandOperation): 3. fix, this time for Alpha; ULONG has 64 bits
7465         there, while the mantissa of a double is "only" 53 bits wide.
7466
7467 2003-07-31  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
7468
7469         Adding sdcclib to the build.  MSVC project coming soon.
7470         Files added/changed:
7471
7472         * support\librarian\clean.mk
7473         * support\librarian\configure
7474         * support\librarian\configure.in
7475         * support\librarian\config_in.h
7476         * support\librarian\Makefile.bcc
7477         * support\librarian\Makefile.in
7478         * support\librarian\sdcclib.c
7479         * Makefile.bcc
7480         * Makefile
7481         * Makefile.common.in
7482         * configure
7483         * configure.in
7484
7485 2003-07-29  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
7486
7487         Linker now complaints if linked modules have conflicting options, for
7488         example, one compiled using --model-large and another one compiled with
7489         --model-small.  The following files were modified:
7490
7491         * as\mcs51\asdata.c
7492         * as\mcs51\aslink.h
7493         * as\mcs51\asm.h
7494         * as\mcs51\asmain.c
7495         * as\mcs51\asout.c
7496         * as\mcs51\i51pst.c
7497         * as\mcs51\lkdata.c
7498         * as\mcs51\lklibr.c
7499         * as\mcs51\lkmain.c
7500         * as\z80\asdata.c
7501         * as\z80\asm.h
7502         * as\z80\asmain.c
7503         * as\z80\asout.c
7504         * as\z80\z80pst.c
7505         * link\z80\aslink.h
7506         * link\z80\lkdata.c
7507         * link\z80\lklibr.c
7508         * link\z80\lkmain.c
7509         * src\SDCCglue.c
7510
7511 2003-07-28  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
7512
7513         *link/z80/aslink.h, link/z80/lklibr.c, as/mcs51/aslink.h,
7514         as/mcs51/lklibr.c: Generate a warning when a library is not found.
7515
7516 2003-07-28  Bernhard Held <bernhard AT bernhardheld.de>
7517
7518         * src/z80/mappings.i: fix _mul[us][int,long] entries
7519
7520 2003-07-26  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
7521
7522         *src/SDCCmain.c: do not search for crt0.o when using --nostdlib
7523
7524 2003-07-24  Bernhard Held <bernhard AT bernhardheld.de>
7525
7526         * src/SDCCicode.c (operandOperation): really fixed problem with bitops
7527         * support/regression/tests/bitopcse.c: added
7528         fixed warning:
7529         * src/avr/gen.c:
7530         * src/pic/gen.c:
7531         * src/pic16/gen.c:
7532         * src/z80/gen.c:
7533         * src/xa51/gen.c:
7534
7535 2003-07-24  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
7536
7537         added support for new library format to z80, gbz80 linkers:
7538         *link/z80/aslink.h
7539         *link/z80/lklex.c
7540         *link/z80/lklib.c
7541         *link/z80/lklist.c
7542
7543 2003-07-24  Bernhard Held <bernhard AT bernhardheld.de>
7544
7545         * src/SDCCicode.c (operandOperation): fixed problem with bitops and 0xffffffff;
7546         after {double d = 0xffffffff; long l = d;} l will be 0x80000000 (LONG_MIN)
7547
7548 2003-07-23  Bernhard Held <bernhard AT bernhardheld.de>
7549
7550         added DUMMY_READ_VOLATILE:
7551         * src/SDCC.y:
7552         * src/avr/gen.c:
7553         * src/xa51/gen.c:
7554         * src/z80/gen.c:
7555         * src/pic/gen.c:
7556         * src/pic16/gen.c:
7557         * src/mcs51/gen.c:
7558         * src/ds390/gen.c:
7559         * src/SDCCcse.c (algebraicOpts): many improvements
7560         * src/SDCCcse.h: removed algebraicOpts()
7561         * src/SDCCicode.c (picDummyRead): added
7562
7563 2003-07-23  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
7564
7565         * as/mcs51/lkmem.c: Changed message "Insufficient DRAM memory" to
7566         "Insufficient space in data memory".
7567
7568 2003-07-20  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
7569
7570         * src/mcs51/gen.c: fixed bug #771358
7571         * src/z80/gen.c: fixed bug #759087
7572
7573 2003-07-20  Bernhard Held <bernhard AT bernhardheld.de>
7574
7575         * src/pic16/glue.c: minor cleanup by Vangelis
7576
7577 2003-07-19  Frieder Ferlemann <Frieder.Ferlemann AT web.de>
7578
7579         * device/include/regc515c.h: fixed #758477
7580         * device/lib/_gptrget.c: saving some cycles in generic pointer get
7581         * device/lib/_gptrput.c: saved a few bytes
7582         * my tab spacing is 8, yours too?)
7583         * device/lib/_ser.c: process RX bytes earlier than TX bytes
7584         * device/lib/serial.c: process RX bytes earlier than TX bytes
7585         * src/mcs51/gen.c(genGenPointerGet/Set): removed writing of type after postincrement
7586
7587 2003-07-18  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
7588
7589         * src/z80/gen.c: fixed some right shift bugs (#772726 among them)
7590
7591 2003-07-17  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
7592
7593     * link/z80/lklibr.c: fixed bug when there is a '.' in a library path.
7594
7595 2003-07-17  Bernhard Held <bernhard AT bernhardheld.de>
7596
7597         * device/lib/Makefile.in: bad fix, reverted to 1.43
7598
7599 2003-07-16  Bernhard Held <bernhard AT bernhardheld.de>
7600
7601         * device/lib/Makefile.in: added missing z80 object files
7602
7603 2003-07-14  Bernhard Held <bernhard AT bernhardheld.de>
7604
7605         * src/SDCCcse.c (algebraicOpts): CSE fun with &|^ and 0x00/0xff literals
7606         pic16 progress by Vangelis:
7607         * src/SDCCglobl.h:
7608         * src/SDCCmain.c:
7609         * src/pic/Makefile:
7610         * src/pic:
7611         * pic/Makefile:
7612         * pic16/device.c:
7613         * pic16/device.h:
7614         * pic16/gen.c:
7615         * pic16/gen.h:
7616         * pic16/genarith.c:
7617         * pic16/glue.c:
7618         * pic16/main.c:
7619         * pic16/pcode.c:
7620         * pic16/pcode.h:
7621         * pic16/pcodepeep.c:
7622         * pic16/peeph.def:
7623
7624 2003-07-13  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
7625
7626     * src/SDCCmain.c, src/SDCCglobl.h: added option --no-std-crt0
7627
7628 2003-07-12  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
7629
7630     * sdcc.dsw, all.dsp, link/z80/linkgbz80.dsp, as/z80/as-gbz80.dsp:
7631     added gbz80 build to MSVC project.
7632     * src/SDCCmain.c, src/SDCCglue.c, src/z80/main.c, src/z80/z80.dsp,
7633     link/z80/aslink.h, linkz80.dsp: cleaned up z80 and gbz80 asm files
7634     from 8051 stuff and setup so it links using a .lnk file.
7635
7636 2003-07-06  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
7637
7638     * support/librarian/sdcclib.c: sdcc librarian.
7639     * as/mcs51/aslink.h, as/mcs51/lklib.c: Support for libraries created
7640     with sdcclib.
7641
7642 2003-07-03  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
7643
7644     * as/mcs51/lkmain.c: properly handle extensions in function afile.
7645
7646 2003-07-02  Borut Razem <borut.razem AT siol.net>
7647
7648         * src/port.h, src/SDCCmain.c, src/pic/glue.h, src/pic/main.c,
7649         src/pic16/glue.h, sdcc/src/pic16/main.c, src/izt/i186.c,
7650         src/izt/tlcs900h.c, src/avr/main.c, src/ds390/main.c, src/mcs51/main.c,
7651         src/xa51/main.c, src/z80/main.c:
7652         virtualization of glue() function: each port has it's own glue function,
7653         which is accessed by do_glue function pointer in PORT.general structure
7654
7655 2003-07-01 Kevin Vigor <kevin AT vigor.nu>
7656
7657         * DS800C400 fun, improved ROM interface and tinibios.
7658
7659 2003-06-27 Kevin Vigor <kevin AT vigor.nu>
7660
7661         * More support for DS80C400. Now includes beginning of interface to ROM.
7662
7663 2003-06-25  Bernhard Held <bernhard AT bernhardheld.de>
7664
7665         * src/mcs51/gen.c (gencjneshort): fixed bug #760345
7666
7667 2003-06-20  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
7668
7669         * as/mcs51/lkaomf51.c: Make sure the size of the last procedure is correct.
7670
7671 2003-06-19  Borut Razem <borut.razem AT siol.net>
7672
7673         * src/z80/main.c: fixed Z80 port again: missing -k library paths in linker command line
7674
7675 2003-06-19  Borut Razem <borut.razem AT siol.net>
7676
7677         * src/SDCCutil.h, src/SDCCutil.c, src/SDCCglobl.h, src/SDCCmain.c, src/z80/main.c:
7678         fixed Z80 port - crt0.o: cannot open.
7679
7680 2003-06-19  Bernhard Held <bernhard AT bernhardheld.de>
7681
7682         * support/Util/MySystem.c (merge_command): revert bad fix
7683
7684 2003-06-18  Borut Razem <borut.razem AT siol.net>
7685
7686         * src/SDCC.lex, src/SDCCmain.c: fixed some warnings, introduced with changes made 15.06.1003
7687
7688 2003-06-18  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
7689
7690         * src/SDCCglobl.h, src/SDCCmain.c, doc/sdccman.lyx:
7691         option --use-stdout sends errors to stdout instead of stderr.
7692
7693 2003-06-18  Bernhard Held <bernhard AT bernhardheld.de>
7694
7695         * support/Util/MySystem.c (merge_command): quick fix for Linux segfault with \"cmd\" arg
7696
7697 2003-06-15  Borut Razem <borut.razem AT siol.net>
7698
7699         * support/cpp2/sdcc.h: HAVE_DOS_BASED_FILE_SYSTEM defined for _WIN32
7700         * src/SDCC.lex: cloneXxx and copyAndFreeXxx functions for options and optimize stack handling
7701         * src/SDCCglobl.h, src/SDCCmain.c, src/ds390/main.c, src/mcs51/main.c, src/z80/main.c:
7702         fixed width array of pointers replaced with sets;
7703         multiple include and lib paths ared transferred to preprocessor and linker
7704         * src/SDCCset.c, src/SDCCset.h: added function setFromSetNonRev() and mergeSets()
7705         * src/SDCCsymt.c: reimplemented function inCalleeSaveList() by using sets instead
7706         fixed width array of pointers
7707         * src/SDCCutil.c, src/SDCCutil.h: added functions fputStrSet(), appendStrSet(), joinStrSet();
7708         removed functions addToList(), join(), joinn(), pathCharsEquivalent(), pathCharTransform(),
7709         fixupPath(), getPathDifference()
7710         * src/ds390/gen.c, src/mcs51/gen.c: reimplemented function  inExcludeList() by using sets instead
7711         fixed width array of pointers
7712
7713 2003-06-11  Bernhard Held <bernhard AT bernhardheld.de>
7714
7715         * src/pic16/ralloc.c: fix warnings
7716         * src/pic16/pcode.c: fix warning
7717
7718 2003-06-10  Scott Dattalo  <scott AT dattalo.com>
7719
7720          Scott D. for Vangelis Rokas (vrokas AT otenet.gr). I (scott) don't
7721         know all the details, but essentially this set of changes enable
7722         the pic16 port to generate movff instructions and generate assembler
7723         directives,
7724         * src/SDCCmain.c:
7725         * src/pic16/gen.c:
7726         * src/pic16/glue.c:
7727         * src/pic16/pcode.c:
7728         * src/pic16/device.c:
7729         * src/pic16/main.c:
7730         * src/pic16/pcode.h:
7731         * src/pic16/pcoderegs.c:
7732         * src/pic16/ralloc.c:
7733         * src/pic16/ralloc.h:
7734
7735 2003-06-08  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
7736
7737         * support/Util/SDCCerr.c, src/SDCCglobl.h, src/SDCCmain.c, doc/sdccman.lyx:
7738         added option --vc, so sdcc errors and warnings are compatible with
7739         Microsoft Visual Studio.
7740
7741 2003-06-07  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
7742
7743         * device/lib/_atof.c, device/lib/Makefile.in, device/include/stdlib.h,
7744           device/lib/libfloat.lib: added atof function.
7745
7746 2003-06-04  Bernhard Held <bernhard AT bernhardheld.de>
7747
7748         * doc/sdccman.lyx: updated to Lyx 1.3
7749         * doc/cdbfileformat.lyx: updated to Lyx 1.3
7750         * doc/test_suite_spec.lyx: updated to Lyx 1.3
7751         * doc/Makefile: added fix for the \tabularnewline problem, thanks to Jesus
7752
7753 2003-06-03  Bernhard Held <bernhard AT bernhardheld.de>
7754
7755         * src/SDCCpeeph.c: separate peepRules2pCode() for pic16 by "Vangelis Rokas" <vrokas AT otenet.gr>
7756
7757 2003-06-02  Frieder Ferlemann <Frieder.Ferlemann AT web.de>
7758
7759         * doc/sdccman.lyx: cvs revision keywords, passing pdf information in latex preamble,
7760           additions to the "related tools/documentation" section
7761
7762 2003-06-02  Bernhard Held <bernhard AT bernhardheld.de>
7763
7764         * src/SDCCglue.c (tempfileandname): added check for missing TMP/TEMP/TMPDIR variable
7765
7766 2003-05-29  Bernhard Held <bernhard AT bernhardheld.de>
7767
7768         * src/pic/device.c: added 16F819, patch by "David I. Lehn" <dlehn AT vt.edu>
7769         * src/SDCCcse.c (algebraicOpts): fixed "c * 1"
7770
7771 2003-05-28  Bernhard Held <bernhard AT bernhardheld.de>
7772
7773         * doc/sdccman.lyx: fix double dash and other minor things
7774         * doc/Makefile: fix double dash
7775
7776 2003-05-28  Karl Bongers(patches from Martin Helmling)
7777         * debugger/mcs51/sdcdb.c,cmd.c,break.c and .h files. Martin adds
7778           condition and ignore commands.
7779
7780 2003-05-28  Frieder Ferlemann <Frieder.Ferlemann AT web.de>
7781
7782         * doc/sdccman.lyx: Changes all over, index improved, smaller margins. The manual
7783           is in parts still quite out of date, I did changes as far as I felt makes sense
7784           for a non-native english speaker.
7785           Please feel free to add to the manual or to correct my changes.
7786         * doc/Makefile: undid touching the date of intermediate tex files.
7787
7788 2003-05-26  Frieder Ferlemann <Frieder.Ferlemann AT web.de>
7789
7790         * doc/sdccman.lyx: Manual has an index now
7791
7792 2003-05-25  Bernhard Held <bernhard AT bernhardheld.de>
7793
7794         Finalize muluint/mulsint and mululong/mulslong merging:
7795         * device/lib/_mulint.c
7796         * device/lib/_mullong.c
7797         * device/lib/gbz80/mul.s
7798         * device/lib/gbz80/stubs.s
7799         * device/lib/z80/mul.s
7800         * device/lib/z80/stubs.s
7801         * src/SDCCsymt.c (initCSupport)
7802
7803 2003-05-25  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
7804
7805         * as/mcs51/lkaomf51.c: Address space 'z' was missing.
7806         * src/avr/avr.dsp, src/ds390/ds390.dsp, src/mcs51/mcs51.dsp,
7807           src/pic/pic.dsp, src/pic16/pic16.dsp, src/xa51/xa51.dsp,
7808           src/x80/z80.dsp: peep.rul is bigger now, so /Zm1000 is used
7809           instead of /Zm500.
7810
7811 2003-05-25  Frieder Ferlemann <Frieder.Ferlemann AT web.de>
7812
7813         * src/mcs51/peeph.def: added rules 244.x, 245.x. Although they pass
7814           the regression tests I'm not brave enough to enable 245.b, 245.c
7815         * doc/sdccman.lyx: added latex preamble for hyperref package.
7816           Using pdflatex this will give you a hyperlinked pdf file with
7817           bookmarks. (prepend '%' before /usepackage if this breaks something)
7818
7819 2003-05-24  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
7820
7821          * doc/sdccman.lyx: updated information about .adb files (fixed bug 742649)
7822
7823 2003-05-22  Bernhard Held <bernhard AT bernhardheld.de>
7824
7825         * src/pic16/pcode.c (pic16_get_op_from_instruction): fixed a gcc 3.x warning
7826
7827 2003-05-21    <johan AT balder>
7828
7829         * src/SDCCglue.c (printIval): fixed bug #739934
7830
7831 2003-05-19  Bernhard Held <bernhard AT bernhardheld.de>
7832
7833         Applied patch from bug 737905 (renamed yylineo to mylineno):
7834         * src/altlex.c
7835         * src/SDCCast.c
7836         * src/SDCglobl.h
7837         * src/SDCC.lex
7838         * src/SDCCsymt.c
7839         * src/SDCCval.c
7840         * src/pic16/pcode.c: Cleaned warnings
7841         * src/pic16/pcodeflow.c: Cleaned warnings
7842         * src/pic16/pcoderegs.c: Cleaned warnings
7843
7844 2003-05-19  Scott Dattalo  <scott AT dattalo.com>
7845
7846         * src/pic16/pcode.c: Cleaned warnings
7847         * src/pic16/pcodepeep.c: Cleaned warnings
7848         * src/pic16/ralloc.c: Cleaned warnings
7849
7850 2003-05-19  Bernhard Held <bernhard AT bernhardheld.de>
7851
7852         * doc/sdccman.lyx: fixed bug 739745
7853         * src/pic16/pcode.c (pic16_get_op): fixed warning on alpha
7854
7855 2003-05-18  Bernhard Held <bernhard AT bernhardheld.de>
7856
7857         * src/port.h: removed DEFAULT_PORT, it's not yet pic16 ;-)
7858         it can be defined with CFLAGS when running configure
7859         * src/SDCCmain.c: fixed compiling + linking with object files
7860
7861 2003-05-18  Vangelis Rokas (vrokas AT otenet.gr)
7862
7863         * configure.in: configure for pic16 port,
7864             added --disable-pic16-port
7865         * sdccconf_in.h: added macro OPT_DISABLE_PIC16
7866         * src/SDCCmain.c: linkOptions is changed to set *,
7867             added if/endif conditional macros to remove options help
7868             messages from optionsTable when a port is not configured, added
7869             support for the PIc16 port in the ports table, when executing
7870             the compiler with no port specified on command line, a default
7871             port is selected with the new macro DEFAULT_PORT which is
7872             defined in port.h, in setDefaultOptions() linkOptions is removed
7873             from initialization assignment, since now it is a set,
7874             parseCmdLine uses setParseWithComma for linkOptions, in
7875             linkEdit() linkOptions are accessed with new function indexSet()
7876             which returns the i'th item of a set variable. See SDCCset.c, in
7877             linkEdit() when calling buildCmdLine(), added linkOptions as
7878             last argument. Now users can pass arguments to gplink via the
7879             -Wl option, main() uses pic16glue() to glue up pic16 programs
7880         * src/SDCCpeeph.c: various changes to support pic16
7881         * src/SDCCset.c: added function  void *indexSet(set *, int)  to
7882             return the i'th item of the set
7883         * src/SDCCset.h: added function prototype for indexSet()
7884         * src/SDCCsymt.c: in checkSClass(), added support for PIC16
7885         * src/clean.mk: added pic16 in CLEANALLPORTS variable
7886         * src/port.h: added TARGET_ID_PIC16,TARGET_IS_PIC16 macro,
7887             added macro DEFAULT_PORT
7888         * src/pic/main.c: corrected arguments of gplnk in _linkCmd
7889         * src/pic16/gen.c: bug fix in genCpl(), now the correct code is
7890             generated
7891         * src/pic16/glue.c: commented out some error producing lines
7892         * src/pic16/main.c: __config directives are commented out to stop
7893             gpasm complaining and test the linkage with gplink, _linkCmd and
7894             _asmCmd changed to be more gplink and gpasm friendly
7895         * src/pic16/peeph.def: peep rule 3 is commented out, since it
7896             produced an error when parsed, peep rule 12 is added to utilize
7897             movff, but it is commented out since the pCode does not support
7898             yet a command with 2 address arguments
7899
7900 2003-05-18    <johan AT balder>
7901
7902         * src/ds390/gen.c (genArrayInit): removed obsolete and buggy ARRAYINIT
7903         * src/ds390/main.c (genArrayInit): removed obsolete and buggy ARRAYINIT
7904 2003-05-17  Karl Bongers(apply patches from Martin Helmling)
7905
7906         * debugger/mcs51/sdcdb.c,cmd.c,break.c and .h files.
7907   Added feature to script commands from file.
7908
7909 2003-05-14  Bernhard Held <bernhard AT bernhardheld.de>
7910
7911         * device/lib/_strtok.c: fixed bug #734355 by Lenny Story and Tim Woodall
7912         * src/SDCCutil.c: include ctype.h for win32
7913
7914 2003-05-13  Bernhard Held <bernhard AT bernhardheld.de>
7915
7916         * src/pic16/*: removed CR from many files, reported by Vangelis Rokas
7917
7918 2003-05-12  Karl Bongers(apply development patches from Martin Helmling)
7919
7920         * debugger/mcs51/sdcdb.c,simi.c,cmd.c,break.c and .h files.
7921   Fixed so you can set breakpoints prior to run, run does not stop
7922   on entry now.  Add tbreak.  Other enhancements and fixes for use
7923   with ddd.
7924
7925 2003-05-12  Borut Razem <borut.razem AT siol.net>
7926
7927         * src/SDCCmain.c: fixed the problem with searching the DATADIR as the last resort on *nix
7928
7929 2003-05-11  Borut Razem <borut.razem AT siol.net>
7930
7931         * src/SDCCutil.c: WIN32 version of getBinPath() calls GetModuleFileName() to determine
7932         the path of bin directory, so that PATH is the only env. variable, which has to be set
7933         in case of standard installation.
7934         * src/ds390/ds390.dsp: increased value of /Zm option to 1000
7935         * src/pic/main.c: add quotes to file name parameters for gplink and gpasm
7936         * src/SDCCglobl.h, src/SDCCmain.c, doc/sdccman.lyx: added --print-search-dirs command line option
7937
7938 2003-05-04  Bernhard Held <bernhard AT bernhardheld.de>
7939
7940         * src/SDCCmain.c (linkEdit): fixed buffer overflow for gbz80
7941         * support/regression/Makefile: inter-port-clean is no longer nesessary, the
7942         temp files are in the port dir; clean the gen/test directory when
7943         generating new test.c
7944         * support/regression/ports/host/spec.mk: defined OBJEXT for target clean
7945         * support/regression/tests/vaargs.c: fixed gcc 3.3 warning
7946         * support/regression/tests/zeropad.c: added
7947
7948 2003-05-09    <johan AT balder>
7949
7950         * src/SDCCglue.c: fixed bug #597940
7951
7952 2003-05-05  Karl Bongers(apply patches from Martin Helmling)
7953
7954         * debugger/mcs51/sdcdb.c,simi.c,cmd.c,symtab.c and .h files.
7955   cache sfr, optimize next,step, fix off by one sourceline,
7956   support ddd list function.
7957         * sim/ucsim/cmd.src/newcmd.cc - small fix for sdcdb use.
7958
7959 2003-05-04  Bernhard Held <bernhard AT bernhardheld.de>
7960
7961         * support/regression/HTMLgen.py: added compare_s2f()
7962         * support/regression/Makefile: redo 1.27
7963         * support/regression/generate-cases.py: redo 1.5
7964
7965 2003-04-30  Bernhard Held <bernhard AT bernhardheld.de>
7966
7967         * support/regression/tests/float.c: workaround 33 bit hex constant
7968         * support/regression/tests/simplefloat.c: fix division for host
7969
7970 2003-04-29  Scott Dattalo  <scott AT dattalo.com>
7971
7972         * src/pic/pcoderegs.c Applied patch from Jim Hawkridge <jim AT jimhawkridge.uk.eu.org>
7973         that tame's the PIC's over-aggressive optimizer.
7974
7975 2003-04-29  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
7976
7977          * src.dsw, link/z80/aslink.h, link/z80/linkz80.dsp: z80 linker
7978          support for MSVC.
7979
7980 2003-04-29  Kevin Vigor <kevin AT vigor.nu>
7981
7982         Initial support for DS80C400. "Hello world" runs on TINIm400
7983         (with polled I/O).
7984
7985 2003-04-28  Karl Bongers(apply patches for Martin Helmling)
7986
7987          * debugger/mcs51/sdcdb.c,simi.c,cmd.c,symtab.c and .h files.
7988          * Some notes on ddd usage added in debugger/README
7989          Martin Helmling adding more features and fixes for ddd GUI debugger.
7990          Code added for nexti, stepi, up, down, and other adjustments.
7991
7992 2003-04-28  Scott Dattalo  <scott AT DATTALO.COM>
7993
7994         * src/pic/pCodepeep.c non-wildcard asmops are now handled
7995         * src/pic/peeph.def Added two rules to optimize carry manipulation
7996         * src/pic/* removed debug printfs
7997
7998 2003-04-28  Bernhard Held <bernhard AT bernhardheld.de>
7999
8000         * debugger/mcs51/cmd.c: added header newalloc.h
8001
8002 2003-04-26  Bernhard Held <bernhard AT bernhardheld.de>
8003
8004         * as/Makefile: new EXEEXT
8005         * as/z80/Makefile: remove trailing slash of BUILDIR
8006         * as/z80/clean.mk: new EXEEXT
8007         * Makefile.common.in: add to CFLAGS (and others), don't replace it
8008         * support/cpp2/Makefile.in: new EXEEXT
8009         * src/pic/glue.c (pic14emitRegularMap): fixed warning
8010
8011 2003-04-24  Bernhard Held <bernhard AT bernhardheld.de>
8012
8013         Cygwin's gcc always appends .exe: 'gcc -o a a.c' creates a.exe;
8014         EXEEXT was introduced to fix all related problems with targets
8015         "clean", "install" and "uninstall"; a couple of further flaws
8016         especially with "clean" have been fixed too
8017         * as/mcs51/Makefile.in
8018         * as/mcs51/clean.mk
8019         * as/z80/Makefile
8020         * Makefile
8021         * clean.mk
8022         * debugger/mcs51/Makefile.in
8023         * debugger/mcs51/clean.mk
8024         * link/z80/Makefile
8025         * link/z80/Makefile.in
8026         * link/z80/clean.mk
8027         * link/Makefile
8028         * packihx/Makefile.in
8029         * packihx/clean.mk
8030         * sim/ucsim/Makefile
8031         * sim/ucsim/clean.mk
8032         * sim/ucsim/avr.src/Makefile.in
8033         * sim/ucsim/avr.src/clean.mk
8034         * sim/ucsim/s51.src/Makefile.in
8035         * sim/ucsim/s51.src/clean.mk
8036         * sim/ucsim/xa.src/Makefile.in
8037         * sim/ucsim/xa.src/clean.mk
8038         * sim/ucsim/z80.src/Makefile.in
8039         * sim/ucsim/z80.src/clean.mk
8040         * sim/ucsim/main_in.mk
8041         * sim/ucsim/packages_in.mk
8042         * sim/ucsim/gui.src/Makefile.in
8043         * sim/ucsim/gui.src/serio.src/Makefile.in
8044         * sim/ucsim/gui.src/serio.src/clean.mk
8045         * src/Makefile.in
8046         * src/clean.mk
8047         * support/cpp2/Makefile.in
8048         * support/cpp2/clean.mk
8049         * support/makebin/Makefile
8050         * support/makebin/clean.mk
8051         * support/scripts/sdcc_mingw32: --program-suffix no longer needed
8052         * doc/sdccman.lyx: --program-suffix no longer needed
8053
8054 2003-04-23  Karl Bongers(apply patches for Martin Helmling)
8055
8056          * debugger/mcs51/sdcdb.c,simi.c,cmd.c,..
8057          Martin Helmling added support for ddd GUI debugger.
8058          Code added to display assembly, set variables, and other commands
8059          to interface to ddd.
8060
8061 2003-04-23  Bernhard Held <bernhard AT bernhardheld.de>
8062
8063         * as/Makefile: fix target clean
8064         * as/clean.mk: fix target clean
8065         * as/z80/clean.mk: fix target clean
8066
8067 2003-04-22  Bernhard Held <bernhard AT bernhardheld.de>
8068
8069         * Makefile.common.in: added  AT EXEEXT AT
8070         * configure.in: removed all mingw32 stuff
8071         * configure: rebuilt from configure.in
8072         * doc/sdccman.lyx: updated section "installation"
8073         * support/scripts/sdcc_mingw32: adapted to configure
8074         * support/scripts/sdcc_cygwin_mingw32: added
8075
8076 2003-04-22  Scott Dattalo  <scott AT dattalo.com>
8077
8078         * src/pic Added object file support for the PIC port
8079         * src/pic Applied patch from Craig Franklin (this started the object file support)
8080         * src/regression Updated the PIC regression tests for object files
8081
8082 2003-04-20  Borut Razem <borut.razem AT siol.net>
8083
8084         * sdcc/as/mcs51/lklex.c: make getfid() more robust and fixed gcc warning:
8085           lklex.c: In function `getfid':
8086           lklex.c:203: warning: array subscript has type `char'
8087         * src/SDCCglobl.h: small change in stack handling macros, to avoid crash when compiled
8088           with MSVC with global optimization enabled (probably an cl compiler bug ;-)
8089         * support/Util/SDCCerr.c, support/Util/SDCCerr.h: added function fatal(), called from
8090           stack handling macros
8091
8092 2003-04-19  Borut Razem <borut.razem AT siol.net>
8093
8094         * "handling space characters in file path" task:
8095         * src/SDCCmacro.c: fixed bug in handlig quote at the end of line
8096         * support/Util/BuildCmd.c: define par as NULL if parameter value is invalid
8097         * support/Util/MySystem.h: make it self-sufficient
8098         * src/avr/main.c, src/ds390/main.c, src/mcs51/main.c, src/pic/main.c, src/xa51/main.c,
8099           src/z80/main.c, sdcc/as/mcs51/lklex.c:
8100           handling space characters in file path
8101         * src/SDCCmain.c: introduced setDataPaths() function, {datadir} macro
8102           (it will be used by assemblers, which have their own includes, e.g. gpasm)
8103         * support/Util/MySystem.c: handling space characters in executable's path
8104
8105 2003-04-19  Bernhard Held <bernhard AT bernhardheld.de>
8106
8107         * as/z80/Makefile: fix permanent rebuild of z80
8108         * sim/ucsim/gui.src/Makefile.in: target "install" builds the same packages as target "all"
8109         * support/regression/tests/bitfields.c: added Johan's bitfields.c
8110
8111 2003-04-18      Kevin Vigor <kevin AT vigor.nu>
8112
8113         * src/SDCCopt.c: add special case optimization to replace modulo by
8114           a power of two with a bitwise AND.
8115
8116 2003-04-18    <johan AT balder>
8117
8118         * src/mcs51/gen.c (getFreePtr): fixed bug #635354
8119
8120 2003-04-17    <johan AT balder>
8121
8122         * src/mcs51/ralloc.c (packRegsForAssign): fixed bug #716790 and removes lot's of redundant register usage around function calls
8123         * src/mcs51/ralloc.c (packRegisters): fixed bug #720667
8124
8125 2003-04-13  Borut Razem <borut.razem AT siol.net>
8126
8127         * doc/sdccman.lyx: updated info about #pragma SAVE/RESTORE nesting
8128         * configure.in, configure: fixed problems on cygwin/WinCVS environmet with ports.* line endings;
8129           fixed mingw problem in adl_NORMALIZE_PATH
8130
8131 2003-04-12  Borut Razem <borut.razem AT siol.net>
8132
8133         * fixed "#pragma SAVE/RESTORE can not be nested":
8134         * src/SDCC.lex: reworked pragma handling functions
8135         * sdcc/src/SDCCglobl.h: reworked stack handling macros
8136         * support/Util/SDCCerr.c, support/Util/SDCCerr.h: added E_STACK_VIOLATION error
8137
8138 2003-04-12  Bernhard Held <bernhard AT bernhardheld.de>
8139
8140         * src/SDCCutil.c (pathEquivalent): defined but not used
8141         * debugger/mcs51/sdcdb.c: replace SDCC_LIB_DIR
8142         * configure.in: remove sdcc_datadir, sdcc_lib_dir and sdcc_include_dir
8143         * configure: rebuilt from configure.in
8144         * sdccconf_in.h: remove SDCC_LIB_DIR and SDCC_INCLUDE_DIR
8145         * sdcc_vc_in.h: remove SDCC_LIB_DIR and SDCC_INCLUDE_DIR
8146         * device/include/Makefile.in: replace sdcc_datadir
8147         * device/lib/Makefile.in: replace sdcc_datadir
8148         * Makefile.common.in: add LDFLAGS from configure
8149         * packihx/Makefile.in: use LDFLAGS
8150         * src/Makefile.in: use LDFLAGS
8151         * support/cpp2/Makefile.in: add LDFLAGS from configure
8152         * support/makebin/Makefile: use LDFLAGS
8153         * .version: bumped version number to 2.3.5
8154
8155 2003-04-12  Borut Razem <borut.razem AT siol.net>
8156
8157         * completed "different paths" task:
8158         * src/SDCCmacro.c: fixed bug in handling quotes
8159         * src/SDCCutil.c, src/SDCCutil.c: rewritten getPrefixFromBinPath()
8160         * src/SDCCmain.c: _discoverPaths() replaced with setBinPaths(), setIncludePath() and setLibPath()
8161
8162 2003-04-12  Bernhard Held <bernhard AT bernhardheld.de>
8163
8164         * src/pic/pcoderegs.c (Remove1pcode): fix warning on alpha
8165
8166 2003-04-11 kevin Vigor <kevin AT vigor.nu>
8167
8168         * ds390/gen.c ds390/peeph.def: fix bug 706781
8169
8170 2003-04-11  Borut Razem <borut.razem AT siol.net>
8171
8172         * support/Util/dbuf.c, support/Util/dbuf.h: update to version 1.1.1 - re-added C++ stuff to make it still more portable
8173
8174 2003-04-10  Scott Dattalo  <scott AT dattalo.com>
8175
8176         * src/pic/* Applied the pointer-to-function patch from Steve Tell.
8177         * src/pic/* Fixed several pointer bugs. (PIC port broke when the ruonly bit was
8178          set - this bit used to not be set...).
8179         * src/pic/gen.c Fixed buf 609268 ==> x = (x+1) & 0xf; generated
8180           bad code in PIC Port
8181         * src/regression/and2.c added to test bug 609268
8182         * src/regression/Makefile added and2.c to regression test
8183
8184
8185 2003-04-08    <johan AT CP255758-A>
8186
8187         * src/mcs51/gen.c (gen51Code): display reg usage in --icode-in-asm
8188         * src/mcs51/ralloc.c (serialRegAssign): update the registers in use and save some slocs
8189         * src/SDCCicode.h: added riu to show the register usage in --icode-in-asm
8190
8191 2003-04-07  Bernhard Held <bernhard AT bernhardheld.de>
8192
8193         * configure.in: fully support prefix, exec_prefix, datadir, docdir;
8194         fix bug #487815
8195         * support/cpp2/Makefile.in: fix bug #487815
8196         * configure: rebuilt from configure.in
8197         * Makefile.common.in: docdir changed, new path suffixes
8198         * sdccconf_in.h: new RETSIGTYPE, and other PATHs
8199         * sdcc_vc_in.h: reflect changes from sdccconf.h
8200         * src/SDCCglobl.h: remove *SEPARATOR_CHARS, they are now in sdccconf.h
8201         * src/SDCCutil.h: remove BINDIR hack
8202         * doc/sdccman.lyx: update new path hierarchy
8203
8204 2003-04-06    Paul Stoffregen <paul AT pjrc.com>
8205
8206         * src/SDCCpeeph.c: added okToRemoveSLOC test
8207
8208 2003-04-06    Paul Stoffregen <paul AT pjrc.com>
8209
8210         * device/lib/printf_fast.c: added leading zero format ("%06d", etc)
8211
8212 2003-04-06    Paul Stoffregen <paul AT pjrc.com>
8213
8214         * src/SDCCpeeph.c: added labelIsReturnOnly test
8215         * src/mcs51/peeph.def: Peephole 244: replace ljmp to ret with ret
8216
8217 2003-04-05    <johan AT balder>
8218
8219         * src/SDCCcse.c (cseAllBlocks): fixed bug #460088
8220         * src/SDCCloop.c (DEFSETFUNC): fixed bug #460088
8221         * src/SDCCopt.c (eBBlockFromiCode): fixed bug #460088
8222         * src/SDCCast.c: fixed a warning
8223         * src/SDCCast.h: fixed a warning
8224         * src/SDCCicode.c (operandFromAst): fixed a warning
8225
8226 2003-04-04    <johan AT balder>
8227
8228         * src/SDCCloop.c (DEFSETFUNC): undid the fix for bug #519584
8229         * src/SDCCast.c (decorateType): fixed bug #715076
8230         * src/SDCC.y: fixed bug #702907
8231
8232 2003-04-03    <johan AT balder>
8233
8234         * device/lib/_mulint.c (_muluint): new #pragma LESS_PEDANTIC
8235         * src/SDCCopt.c (eBBlockFromiCode): new #pragma LESS_PEDANTIC
8236         * src/SDCCglobl.h (PRAGMA_LESSPEDANTIC): new #pragma LESS_PEDANTIC
8237         * src/SDCC.lex (doPragma): new #pragma LESS_PEDANTIC
8238         * src/SDCCmain.c (parseCmdLine): new #pragma LESS_PEDANTIC
8239
8240 2003-04-03  Bernhard Held <bernhard AT bernhardheld.de>
8241
8242         * _decdptr.c: fix return values
8243         * _gptrget.c: fix return values
8244         * _gptrgetc.c: fix return values
8245         * _gptrput.c: fix return values
8246         * _mulint.c: fix return values
8247         * as/z80/Makefile: fix 'make -j' problem
8248
8249 2003-04-02  Bernhard Held <bernhard AT bernhardheld.de>
8250
8251         * Makefile.common.in: unused PORT, SCC and SAS removed, fixed docdir
8252         * configure.in: big cleanup, updated to autoconf 2.5x
8253         * configure: rebuilt from configure.in
8254         * sdccconf_in.h: new RETSIGTYPE, and other PATHs
8255         * sdcc_vc_in.h: reflect changes from sdccconf.h
8256         * doc/Makefile: fixed a flaw in "make install"
8257
8258 2003-04-02    <johan AT balder>
8259
8260         * src/ds390/gen.c (genCmp): no comments
8261         * src/mcs51/gen.c (genCmp): no comments
8262         * src/SDCCopt.c (eBBlockFromiCode): detect missing return values
8263         * src/SDCCast.c (ast_print): fixed the function type in --dumptree
8264
8265 2003-04-01  Bernhard Held <bernhard AT bernhardheld.de>
8266
8267         * support/regression/generate-cases.py: place generated file in given sub directory
8268         * support/regression/ports/host/spec.mk: prevent removal of testfwk.o
8269         * support/regression/Makefile: improvements for 'make -j';
8270         side effect: it's simpler and faster now
8271
8272 2003-03-31  Borut Razem <borut.razem AT siol.net>
8273
8274         * src/z80/main.c: link-{port} and as-{port} defined without path
8275         * src/src.dsp: support/Util/MySystem.h and src/SDCCutil.h added to project
8276
8277 2003-03-31  Bernhard Held <bernhard AT bernhardheld.de>
8278
8279         * Makefile, src/Makefile.in: add dependencies, so that 'make -j' works
8280
8281 2003-03-30  Borut Razem <borut.razem AT siol.net>
8282
8283         * support/Util/BuildCmd.c, support/Util/BuildCmd.h: rewrite buildCmdLine(),
8284           changed type of list parameter to set
8285         * src/ds390/main.c: changed type of parameter asmOptions to set in _tininative_do_assemble()
8286         * src/port.h: changed type of do_assemble() parameter to set
8287         * src/SDCCmain.c: type of asmOptions changed to set, introduced setParseWithComma(),
8288           sdcpp defined without path, removed variable VersionString, introduced set binPathSet,
8289           definition of "cppoutfilename" macro with NULL value in preProcess()
8290         * src/SDCCglobl.h: included "SDCCset.h", added declaration of setParseWithComma()
8291         * src/SDCCglue.c: removed variable VersionString, inroduced spacesToUnderscores()
8292         * support/Util/MySystem.c, support/Util/MySystem.h: rewrite, char *ExePathList[]
8293           replaced with set *binPathSet
8294         * shash_add() deallocates the item, if allready exsists, before adding the new one
8295         * src/SDCCmacro.c: handling macros with empty or NULL values in _evalMacros()
8296
8297 2003-03-30  Scott Dattalo  <scott AT dattalo.com>
8298
8299         * src/pic/gen.c: Commit patch from Steve Tell <tell AT telltronics.org> that fixes
8300           a nested for loop bug in the PIC port
8301         * src/regression/nestfor.c: new regression test file Steve wrote to test nested
8302           for loops
8303
8304 2003-03-29  Bernhard Held <bernhard AT bernhardheld.de>
8305
8306         * support/Util/dbuf.h: remove C++ stuff to make it portable
8307
8308 2003-03-28  Borut Razem <borut.razem AT siol.net>
8309
8310         * src/SDCC.lex: Fix for bug #711240: dynamic buffer handling of C
8311           literal strings in stringLiteral()
8312         * support/Util/dbuf.c, support/Util/dbuf.h: added: dynamic buffer handling
8313         * src/Makefile.bcc, src/Makefile.in, src\src.dsp: added support/Util/dbuf.c
8314           to the project
8315
8316 2003-03-27  Paul Stoffregen <paul AT pjrc.com>
8317
8318         * src/SDCCpeeph.c (pcDistance): accurate byte distance for mcs51
8319
8320 2003-03-26    <johan AT balder>
8321
8322         * src/mcs51/gen.c (saveRegisters): catched symbol abuse
8323         * src/ds390/gen.c (saveRegisters): catched symbol abuse
8324         * src/SDCCast.c (decorateType): fixed " -v < 3"
8325
8326 2003-03-23  Bernhard Held <bernhard AT bernhardheld.de>
8327
8328         * doc/cdbfile.html: removed, replaced by cdbfileformat.lyx
8329         Added Lenny Story's debug infrastructure changes:
8330         * src/Makefile.in:  added new files cdbFile.c and SDCCdebug.c
8331         * src/Makefile.bcc: added new files cdbFile.c and SDCCdebug.c
8332         * src/cdbFile.c: added
8333         * src/SDCCdebug.c: added
8334         * src/SDCCdebug.h: added
8335         * src/SDCCast.c (createFunction)
8336         * src/SDCCglue.c (emitRegularMap, emitStaticSeg, emitOverlay, glue)
8337         * src/SDCCmain.c (parseCmdLine, main)
8338         * src/SDCCmem.c (redoStackOffsets)
8339         * src/SDCCsymt.c (cdbStructBlock, cdbTypeInfo, cdbSymbol, cdbStruct, cdbStructBlock)
8340         * src/SDCCsymt.h
8341         * src/common.h
8342         * src/avr/gen.c (genAVRCode)
8343         * src/ds390/gen.c (gen390Code)
8344         * src/mcs51/gen.c (gen51Code)
8345         * src/pic/gen.c (genpic14Code)
8346         * src/pic/glue.c (pic14emitRegularMap, pic14emitStaticSeg, pic14emitOverlay, picglue)
8347         * src/xa51/gen.c (genXA51Code)
8348         * src/SDCCast.c: fixed "void foo(void){char c; -c < 0;}"
8349
8350 2003-03-22  Frieder Ferlemann <Frieder.Ferlemann AT web.de>
8351
8352         * src/mcs51/gen.c (genCodePointerGet): quicker code for bug #700797
8353         * src/mcs51/peeph.def: added rules 177, 241.x to 243, touched 181, 182.x, 193.x
8354
8355 2003-03-22    <johan AT balder>
8356
8357         * src/SDCCicode.c (geniCodeDerefPtr): fixed bug #698231
8358
8359 2003-03-21  Bernhard Held <bernhard AT bernhardheld.de>
8360
8361         * support/scripts/sdcc_mingw32: adapted to configure from autoconf 2.54
8362         * doc/cdbfileformat.lyx: added, written by Lenny Story
8363         * doc/Makefile: added cdbfileformat.lyx
8364         * doc/clean.mk: added cdbfileformat.lyx
8365
8366 2003-03-20  Bernhard Held <bernhard AT bernhardheld.de>
8367
8368         * src/mcs51/peeph.def: fix bug #705773
8369
8370 2003-03-20    <johan AT balder>
8371
8372         An sfr/sbit can have an "at #" AND an initializer
8373         * src/SDCCsymt.c (checkSClass):
8374         * src/SDCCmem.c (allocGlobal):
8375         * src/SDCCmem.c (allocLocal):
8376         * src/SDCCast.c (createBlock):
8377
8378 2003-03-17  Bernhard Held <bernhard AT bernhardheld.de>
8379
8380         * src/ds390/peeph.def: fix bug #704878: added rule 213.b suggested by Jan Rejlek
8381
8382 2003-03-16    <johan AT balder>
8383
8384         Undid the hackup of const and volatile, the problem is much bigger
8385         * src/SDCC.y:1.65
8386         * src/SDCCast.c:1.171
8387         * src/SDCCglue.c:1.138
8388         * src/SDCCicode.c:1.146
8389         * src/SDCCsymt.c:1.150
8390         * src/SDCCval.c:1.65
8391
8392 2003-03-15  Bernhard Held <bernhard AT bernhardheld.de>
8393
8394         * src/mcs51/ralloc.c (packRegsForAssign): fixed bug #703541
8395         * src/ds390/gen.c (genAddrOf): fixed bug #704087
8396
8397 2003-03-13    <johan AT balder>
8398
8399         Hackup const and volatile modifiers in type chains a bit:
8400         * src/SDCC.y:1.63
8401         * src/SDCCast.c:1.169
8402         * src/SDCCglue.c:1.136
8403         * src/SDCCicode.c:1.143
8404         * src/SDCCsymt.c1.146
8405         * src/SDCCsymt.h1.59
8406         * src/SDCCval.c:1.63
8407
8408 2003-03-12    <johan AT balder>
8409
8410         * src/SDCCBBlock.h: more LRH debugging junk
8411         * src/SDCCcflow.h: more LRH debugging junk
8412         * src/SDCCloop.c: more LRH debugging junk
8413         * src/SDCC.y (struct_declaration): fixed bug #697590
8414         * src/SDCCsymt.[hc] (cloneSpec): NEVER EVER use this again
8415         * src/ds390/gen.c (aopForRemat): fixed bug #700031
8416         * src/SDCCglue.c (emitStaticSeg): fixed bug #700797
8417
8418 2003-03-11 Kevin Vigor <kevin AT vigor.nu>
8419         * src/SDCCpeeph.c: quit being lazy and made proper fix (peephole
8420         test function names must now match exactly).
8421         * src/SDCCcse.c: added special case in findCheaperOp to allow
8422         extending a short integer. Makes less awful code for bug 700121 test case.
8423
8424 2003-03-11  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
8425
8426         * as/mcs51/lkmain.c: Added ASlink-Warning to messages
8427         * as/mcs51/lkaomf51.c: Fixed bug when linking asmblink example
8428
8429 2003-03-11 Kevin Vigor <kevin AT vigor.nu>
8430
8431         * src/SDCCpeeph.c: fix so that operandsNotEqualX functions are
8432         actually called (operandsNotEqual() was called for all
8433         operandsNotEqualX tests).
8434
8435 2003-03-11 Kevin Vigor <kevin AT vigor.nu>
8436
8437         * src/SDCCcse.c: fix findCheaperOp to prevent replacing int types
8438         with shorter literals. Fixes bug 700121.
8439
8440 2003-03-11    <johan AT balder>
8441
8442         * src/SDCCsymt.c (compareType): a (void *) can be assigned to any pointer
8443
8444 2003-03-11  Bernhard Held <bernhard AT bernhardheld.de>
8445
8446         * src/SDCCloop.c (mergeRegions): an evil beast is dead
8447         * src/SDCCmain.c (preProcess): minor cleanup: eliminate preOutName
8448
8449 2003-03-10  Borut Razem <borut.razem AT siol.net>
8450
8451         * src/SDCCmain.c: pipe preprocessor's output
8452         * support/Util/MySystem.c, support/Util/MySystem.h: added my_popen()
8453         * sdcc_vc_in.h: define pclose as _pclose for WIN32
8454         * src/SDCCglue.c, src/SDCCglue.h: added set pipeSet, added function closePipes,
8455         which closes all pipes in pipeSet set
8456         * src/SDCCset.c: free deleted item in function deleteSetItem()
8457         * src/src.dsp, src/z80/z80.dsp: files support/Util/BuildCmd.c and support/Util/MySystem.c
8458         moved from z80 to src subproject
8459         * .version: increased version number to 2.3.4
8460
8461 2003-03-10  Bernhard Held <bernhard AT bernhardheld.de>
8462
8463         * support/regression/ports/mcs51/spec.mk: increase timeout for CF's sparc to 30s
8464         * support/regression/ports/ds390/spec.mk: increase timeout for CF's sparc to 25s
8465         * support/regression/ports/xa51/spec.mk: fix typo
8466
8467 2003-03-09  Bernhard Held <bernhard AT bernhardheld.de>
8468
8469         * src/SDCCglobl.h: PATH_MAX is already defined in mingw32 headers
8470
8471 2003-03-09  Borut Razem <borut.razem AT siol.net>
8472
8473         * src/SDCCmain.c: pipe preprocessor's output
8474         * support/Util/MySystem.c, support/Util/MySystem.h: added my_popen()
8475         * sdcc_vc_in.h: define pclose as _pclose for WIN32
8476         * src/SDCCglue.c, src/SDCCglue.h: added set pipeSet, added function closePipes,
8477         which closes all pipes in pipeSet set
8478         * src/SDCCset.c: free deleted item in function deleteSetItem()
8479         * src/src.dsp, src/z80/z80.dsp: files support/Util/BuildCmd.c and support/Util/MySystem.c
8480         moved from z80 to src subproject
8481
8482 2003-03-09  Borut Razem <borut.razem AT siol.net>
8483
8484         * src/SDCCglue.c: re-implemented tempfilename() and tempfile(): using mkstemp() if available
8485         * src/SDCCsymt.h: fixed MSVC and BORLANDC compilation (included SDCCglobl.h instead srccconf.h)
8486         * sdcc_vc_in.h: explicitly undefined HAVE_MKSTEMP which is not available on BORLANDC and MSVC
8487         * src/SDCCset.h: removed inclusion of sdccconf.h or sdcc_vc.h
8488         * src/SDCCglobl.h: unification of WIN32 native definitions
8489
8490 2003-03-09  Frieder Ferlemann <Frieder.Ferlemann AT web.de>
8491
8492         * src/mcs51/gen.c: applied in-/dec patch mentioned on sdcc-devel 2003-03-01
8493
8494 2003-03-08  Bernhard Held <bernhard AT bernhardheld.de>
8495
8496         * src/configure.in:   check for endianess (even while cross-compiling)
8497         * src/configure:      check for endianess (even while cross-compiling)
8498         * src/configure_in.h: check for endianess (even while cross-compiling)
8499         * src/avr/gen.c:        remove old endianess stuff
8500         * src/mcs51/gen.c:      remove old endianess stuff
8501         * src/ds390/gen.c:      remove old endianess stuff
8502         * src/pic/gen.c:        remove old endianess stuff
8503         * src/pic/genarith.c:   remove old endianess stuff
8504         * src/pic/glue.c:       fix endianess check
8505         * src/pic16/gen.c:      remove old endianess stuff
8506         * src/pic16/genarith.c: remove old endianess stuff
8507         * src/pic16/glue.c:     fix endianess check
8508         * src/xa51/gen.c:       remove old endianess stuff
8509         * src/z80/gen.c:        fix endianess check
8510         * src/SDCCglue.c:       fix endianess check
8511         * src/ds390/peeph.def: fix bug 700036
8512
8513 2003-03-08  Bernhard Held <bernhard AT bernhardheld.de>
8514
8515         * src/SDCCsymt.h: use appropriate data-types on host for SDCC's int and long
8516         * src/configure: find appropriate data-types on host for SDCC's int and long
8517         * src/configure.in: find appropriate data-types on host for SDCC's int and long
8518         * src/sdccconf_in.h: find appropriate data-types on host for SDCC's int and long
8519         * src/xa51/gen.c: use %d, not %ld for 4 byte variables
8520
8521 2003-03-07    <johan AT balder>
8522
8523         Just a big NOOP:
8524                 some minor cleanups before the big shot
8525                 OP_DEFS and OP_USES now use Kevin's protection
8526                 new option --nolabelopt
8527
8528         * src/SDCCBBlock.c:
8529         * src/SDCCast.c,:
8530         * src/SDCCcflow.c:
8531         * src/SDCCcse.c:
8532         * src/SDCCicode.c:
8533         * src/SDCCicode.h:
8534         * src/SDCClabel.c:
8535         * src/SDCCloop.c:
8536         * src/SDCCmain.c:
8537         * src/ds390/ralloc.c:
8538         * src/mcs51/ralloc.c:
8539         * src/pic/ralloc.c:
8540         * src/xa51/ralloc.c:
8541         * src/z80/ralloc.c:
8542
8543 2003-03-06  Bernhard Held <bernhard AT bernhardheld.de>
8544
8545         * src/pic/pcode.c (get_op): fix 64 bit warnings
8546         * src/pic/pcode.c (pCode2str): fix 64 bit warnings
8547         * src/SDCChasht.c (newHashTable): fix 64 bit warnings
8548         * src/SDCCsymt.c (checkTypeSanity): fix 64 bit warnings
8549         * support/regression/tests/malloc.c: fix 64 bit warnings
8550
8551 2003-03-04  Bernhard Held <bernhard AT bernhardheld.de>
8552
8553         * src/mcs51/gen.c (genMinus): fixed bug 696436
8554
8555 2003-03-02  Borut Razem <borut.razem AT siol.net>
8556
8557         * src/SDCCmain.c: added BORLANDC, corrected MSVC in printVersionInfo()
8558
8559 2003-02-26  Bernhard Held <bernhard AT bernhardheld.de>
8560
8561         * configure.in: test for mkstemp
8562         * sdccconf_in.h: add HAVE_MKSTEMP
8563
8564 2003-02-24  Bernhard Held <bernhard AT bernhardheld.de>
8565
8566         * device/include/ctype.h: removed warning while using --stack-auto
8567         * device/include/malloc.h: removed warning while using --stack-auto
8568         * device/include/string.h: removed warning while using --stack-auto
8569
8570 2003-02-23  Borut Razem <borut.razem AT siol.net>
8571
8572         * src/asm.h: corrected assertion in function printILine(): _pipe() was not executed on MSVC,
8573         because NDEBUG is defined (see man assert)
8574         * sdcc_vc_in.h: vsnprintf is defined as _vsnprintf on MSVC
8575
8576 2003-02-23  Frieder Ferlemann <Frieder.Ferlemann AT web.de>
8577
8578         * src/mcs51/gen.c (genUminusFloat): avoided dptr in-/decrement for xdata variables
8579         * src/mcs51/peeph.def: added rule suggested by Gernot Fink, white space/comment changes
8580
8581 2003-02-18  Frieder Ferlemann <Frieder.Ferlemann AT web.de>
8582
8583         * src/SDCCpeeph.c: added peephole conditions testing for same arguments
8584         * src/mcs51/peeph.def: added rules 238a-d which remove redundant moves
8585
8586 2003-02-18    <johan AT balder>
8587
8588         * as/mcs51/asmain.c (asmbl): module can start with a digit
8589         * as/z80/asmain.c (asmbl): module can start with a digit
8590
8591 2003-02-16  Bernhard Held <bernhard AT bernhardheld.de>
8592
8593         * sim/ucsim/mkecho: inserted #!/bin/sh for Cygwin, so that it's executable
8594         * src/asm.c: fix pipe() for Mingw32
8595
8596 2003-02-15  Bernhard Held <bernhard AT bernhardheld.de>
8597
8598         * src/SDCCglue.h: make tmpfileNameSet available for preOutName
8599         * src/SDCCmain.c (preProcess): make sure, that preOutName will be deleted;
8600         make -V work again; --c1mode reads now from stdin
8601         * doc/sdccman.lyx: added --c1mode
8602         * support/Util/SDCCerr.c: new messages for c1 mode
8603         * support/Util/SDCCerr.h: new messages for c1 mode
8604         * src/SDCC.lex (checkCurrFile): test if fullSrcFileName is NULL for c1mode
8605
8606 2003-02-15    <johan AT balder>
8607
8608         * src/asm.c: new options: --no-c-code-in-asm and --i-code-in-asm
8609
8610 2003-02-14  Bernhard Held <bernhard AT bernhardheld.de>
8611
8612         * doc/sdccman.lyx: Environment variables, -o and other minor things
8613
8614 2003-02-14    <johan AT balder>
8615
8616         * src/xa51/main.c: before anyone really tries to use it :)
8617
8618         * Install doc's in share/sdcc/doc
8619         * removed some obsolete files
8620         * Do a proper make distclean and uninstall
8621         M Makefile.common.in
8622         R sdccbuild.sh
8623         M as/Makefile
8624         M device/include/Makefile.in
8625         M device/lib/Makefile.in
8626         M doc/sdccman.lyx
8627         M link/Makefile
8628         M sim/ucsim/doc/Makefile.in
8629         M src/clean.mk
8630         R src/avr/peeph.rul
8631         R src/xa51/peeph.rul
8632         M support/cpp2/Makefile.in
8633         M support/makebin/Makefile
8634
8635
8636 2003-02-13  Bernhard Held <bernhard AT bernhardheld.de>
8637
8638         * support/regression/ports/host/spec.mk: use cc as host compiler for max osx
8639
8640 2003-02-10  Borut Razem <borut.razem AT siol.net>
8641
8642         * doc/bccinst.txt, packihx/packihx.c, sdcc_vc_in.h, src/SDCCset.h,
8643         support/cpp2/config.in: Borland C++ build doesn't depend on Cygwin configure
8644         * Bcc.ini, Makefile.bcc, as/mcs51/Makefile.bcc,
8645         device/examples/ds390/tinitalk/Makefile.bcc, packihx/Makefile.bcc,
8646         support/cpp2/Makefile.bcc, src/Makefile.bcc, src/avr/Makefile.bcc,
8647         src/ds390/Makefile.bcc, src/izt/Makefile.bcc, src/mcs51/Makefile.bcc,
8648         src/pic/Makefile.bcc, src/pic16/Makefile.bcc, src/xa15/Makefile.bcc,
8649         src/z80/Makefile.bcc: Borland Makefile cleanup
8650         * as/z80/Makefile.bcc: Added Borland Makefile
8651         * support/cpp2/borland.h: Removed
8652
8653 2003-02-10  Bernhard Held <bernhard AT bernhardheld.de>
8654
8655         * doc/sdccman.lyx: new pragma NOIV by "Johannes Stezenbach" <js AT convergence.de>
8656         * src/SDCC.lex: new pragma NOIV
8657         * src/SDCCglobl.h: new pragma NOIV
8658         * src/SDCCmem.c: new pragma NOIV
8659
8660 2003-02-09  Bernhard Held <bernhard AT bernhardheld.de>
8661
8662         * src/SDCCmain.c: signal handling is switched off by SDCC_LEAVE_SIGNALS
8663
8664 2003-02-09  Bernhard Held <bernhard AT bernhardheld.de>
8665
8666         * src/SDCCmain.c: signal handling is switched off by --debug
8667         * doc/Makefile: small fix for install; use clean.mk again
8668         * doc/clean.mk: clean *.pdf and *.html too
8669
8670 2003-02-08  Bernhard Held <bernhard AT bernhardheld.de>
8671
8672         * device/lib/_mulint.c: small fix for large/ds390 --int-long-reent resp. --stack-auto
8673         * device/lib/printfl.c: fix a ds390 bug by making it portable
8674         * src/SDCCsymt.c (initCSupport): fix compile warning on Cygwin
8675         * src/SDCCopt.c (cnvToFloatCast): fix compile warning on Cygwin
8676         * src/SDCCopt.c (cnvFromFloatCast): fix compile warning on Cygwin
8677         * debugger/mcs51/cmd.c: converted multi-line string literals
8678         * sim/ucsim/globals.cc: converted multi-line string literals
8679         * src/SDCCmain.c: introduced signal handler to remove temp files
8680         * doc/Makefile: small tweaks, implement clean
8681         * doc: removed generated files
8682
8683 2003-02-05  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
8684
8685         * as/mcs51/aslink.h, as/mcs51/lkihx.c, as/mcs51/lkrloc.c:  Applied
8686         patch from Jan Rejlek <jr AT apex-lib.cz> to fix Bug 677692: "Extended
8687         Address Record is not correctly generated for DS390."
8688
8689 2003-02-02  Borut Razem <borut.razem AT siol.net>
8690
8691         * Makefile.bcc: removed non existing cpp project and non compilable izt project from makefile
8692         * as/mcs51/asm.h: fixed compilation with Borland C
8693         * support/cpp2/Makefile.bcc: added rule to generate auto-host.h
8694         * support/cpp2/auto-host_vc_in.h: fixed compilation with Borland C
8695         * src/mcs51/mcs51a.dsp: corrected misspelled project name from msc51a to mcs51a
8696         * src/avr/Makefile.bcc, src/ds390/Makefile.bcc, src/izt/Makefile.bcc,
8697         src/mcs51/Makefile.bcc, src/pic16/Makefile.bcc, src/xa51/Makefile.bcc,
8698         src/z80/Makefile.bcc: delete $(LIB) only if exist
8699         * src/Makefile.bcc, src/pic/Makefile.bcc:  fixed compilation with Borland C
8700
8701 2003-02-02  Bernhard Held <bernhard AT bernhardheld.de>
8702
8703         * device/include/malloc.h: introduced NULL
8704         * device/include/string.h: introduced NULL
8705         * device/include/stdlib.h: introduced NULL
8706         * device/lib/_memcpy.c: removed NULL
8707         * device/lib/_strcat.c: removed NULL
8708         * device/lib/_strchr.c: removed NULL
8709         * device/lib/_strcmp.c: removed NULL
8710         * device/lib/_strcpy.c: removed NULL
8711         * device/lib/_strcspn.c: removed NULL
8712         * device/lib/_strlen.c: removed NULL
8713         * device/lib/_strncat.c: removed NULL
8714         * device/lib/_strncmp.c: removed NULL
8715         * device/lib/_strncpy.c: removed NULL
8716         * device/lib/_strpbrk.c: removed NULL
8717         * device/lib/_strrchr.c: removed NULL
8718         * device/lib/_strspn.c: removed NULL
8719         * device/lib/_strstr.c: removed NULL
8720         * device/lib/_strtok.c: removed NULL
8721         * device/lib/malloc.c: removed NULL, include own header
8722
8723 2003-02-02    <johan AT balder>
8724
8725         * 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
8726         * support/regression/fwk/lib/testfwk.c: div and mod isn't broken anymore
8727         * regressions ds390/spec.mk and mcs51/spec.mk (timeout): my good old balder isn't fast enough for some tests
8728         * src/z80/gen.c (genZ80Code): added c-lines in asm comments
8729         * as/z80/asm.h (NINPUT): increased for long c-comments in regression tests
8730         * src/z80/gen.c (genRightShiftLiteral): fixed the (char)(-3)>>8 (I think)
8731
8732 2003-02-01  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
8733
8734         * src/SDCCmain.c: Fixed bug 678574: "ds390: ASlink-Error-Stack overlaps
8735         area 'DATA'"
8736
8737 2003-02-01    <johan AT balder>
8738
8739         * src/SDCCval.c (valBitwise): fixed Karl's "2 | (1<<8)"
8740
8741 2003-01-31    <johan AT CP255758-A>
8742
8743         * src/ds390/main.c (_ds390_genAssemblerPreamble): applied Jan Rejlek's >64K startup patch
8744
8745 2003-01-30    <johan AT balder>
8746
8747         * src/SDCCBBlock.c: automatic bug detection
8748         * src/SDCCicode.c: automatic bug detection
8749
8750 2003-01-29  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
8751
8752         * src/SDCCglobl.h:   now --xram-size 0 works
8753         * src/SDCCmain.c:    now --xram-size 0 works
8754
8755 2003-01-29    <johan AT balder>
8756
8757         * src/almosteverything: changed OP_DEFS and OP_USES from macros to functions to catch symbol abuse (a hot topic in the bug list :)
8758
8759 2003-01-29  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
8760
8761         * as/mcs51/aslink.h: Added options --xram-size and --code-size
8762         * as/mcs51/lkdata.c: Added options --xram-size and --code-size
8763         * as/mcs51/lkmain.c: Added options --xram-size and --code-size
8764         * as/mcs51/lkmem.c:  Added options --xram-size and --code-size
8765         * src/SDCCglobl.h:   Added options --xram-size and --code-size
8766         * src/SDCCmain.c:    Added options --xram-size and --code-size
8767
8768 2003-01-28  Bernhard Held <bernhard AT bernhardheld.de>
8769
8770         * src/ds390/gen.c: fix deps by replacing <common.h> with "common.h"
8771         * src/SDCC.lex: rename P_OVERLAY to P_OVERLAY_ for cross-gcc 3.2 MINGW32
8772
8773 2003-01-27    <johan AT balder>
8774
8775         * src/SDCC.y: fixed bug #613764
8776
8777 2003-01-26    <johan AT balder>
8778
8779         * src/SDCClrange.c:  fixed Bernhard's "char * code ptr = &c"
8780         * src/SDCCsymt.h: fixed bug #673374
8781         * src/SDCCglue.c: fixed bug #661910
8782         * src/SDCCast.c: fixed bug #458099 and 673374
8783
8784 2003-01-26  Bernhard Held <bernhard AT bernhardheld.de>
8785
8786         * as/mcs51/strcmpi.c: added, provides Aurelien Jarno's as_strcmpi(); strcmpi() is not ANSI
8787         * as/mcs51/strcmpi.h: added
8788         * as/mcs51/asm.h: remove ugly "#define strcmpi strcmp"
8789         * as/mcs51/aslink.h: remove ugly "#define strcmpi strcmp"
8790         * as/mcs51/asmain.c: strcmpi -> as_strcmpi
8791         * as/mcs51/assym.c: strcmpi -> as_strcmpi
8792         * as/mcs51/lkmem.c: strcmpi -> as_strcmpi
8793         * as/mcs51/lknoice.c: strcmpi -> as_strcmpi
8794         * as/mcs51/lksym.c: strcmpi -> as_strcmpi
8795         * as/mcs51/Makefile.aslink: new module strcmpi
8796         * as/mcs51/Makefile.asx8051: new module strcmpi
8797         * as/mcs51/Makefil.bcc: new module strcmpi
8798         * as/mcs51/Makefile.in: new module strcmpi
8799         * sim/ucsim/s51.src/uc390.cc (get_mem_size): make RAM big enough for tinibios
8800
8801 2003-01-26    <johan AT balder>
8802
8803         * src/SDCCglue.c: reverted back to 1.124
8804         * src/SDCCast.c: reverted back to 1.156
8805         * src/mcs51/gen.c (aopGet): applied Frieder's efficiency patch
8806
8807 2003-01-25    <johan AT balder>
8808
8809         * src/SDCCglue.c: A better fix for bug #661910
8810         * src/SDCCast.c: A better fix for bug #661910
8811         * src/SDCCglue.c (emitRegularMap): That was a little too efficient
8812
8813 2003-01-24  Bernhard Held <bernhard AT bernhardheld.de>
8814
8815         * src/Makefile.in: remove spawn.o
8816         * src/SDCCmain.c: remove spawn.h
8817         * src/SDCCmain.c (printVersionInfo): report MINGW32 instead of UNIX
8818         * src/spawn.c: removed
8819         * src/spawn.h: removed
8820         * support/regression/ports/ds390/spec.mk: link with -r
8821
8822 2003-01-24    <johan AT CP255758-A>
8823
8824         * src/ds390/gen.c (aopOp): fixed bug #667458
8825         * src/SDCCglue.c (emitRegularMap): fixed bug #458099 again
8826         * src/SDCCast.c (createIvalCharPtr): fixed bug #661910
8827         (createIvalCharPtr): an ival doesn't always have a storage class anymore
8828
8829 2003-01-24  Bernhard Held <bernhard AT bernhardheld.de>
8830
8831         * src/mcs51/peeph.def: better assembler identation by Frieder
8832         * src/mcs51/gen.c: better assembler identation by Frieder
8833
8834 2003-01-22  Bernhard Held <bernhard AT bernhardheld.de>
8835
8836         * as/z80/string.h: removed for gcc 3.2
8837         * support/makebin/makebin.c: #include <string.h> for gcc 3.2
8838         * src/pic/pcode.c (get_op_from_instruction): fix concatenation of string literals with __FUNCTION__ for gcc 3.2
8839
8840 2003-01-19  Bernhard Held <bernhard AT bernhardheld.de>
8841
8842         * src/SDCCmain.c (linkEdit): rename mem and map files even in case of failure
8843         * src/SDCCpeeph.c (replaceRule): fix bug #663503
8844         * support/regression/Makefile: separate temp files for ports
8845         * support/regression/generate-cases.py: separate temp files for ports
8846         * src/mcs51/peeph.def: Frieder: removed 237 (obsolete by 236g and 105); added 237 a/b
8847         * src/ds390/peeph.def: Frieder: removed 237 (obsolete by 236g and 105); added 237 a/b
8848
8849 2003-01-19  Bernhard Held <bernhard AT bernhardheld.de>
8850
8851         * moved tinitalk to device/examples/ds390
8852
8853 2003-01-14  Bernhard Held <bernhard AT bernhardheld.de>
8854
8855         * as/mcs51/lkmem.c: rflag is for DS390
8856         * src/SDCCglobl.h: removed out_name and options stackOnData, genericPtr
8857         * src/SDCCmain.c (optionsTable, setDefaultOptions): removed --stack-after-data and --generic
8858                          (linkEdit): move mem- and map-files the same way as ihx-files
8859         * src/z80/main.c (_setDefaultOptions): removed --generic
8860         * src/SDCCmain.c (_processC1Arg, parseCmdLine, main): --c1mode works again
8861         * src/SDCCglue.c (createInterruptVect, glue): --c1mode works again
8862         * src/pic/glue.c (picglue): --c1mode works again
8863         * src/pic16/glue.c (pic16glue): --c1mode works again
8864         * src/asm.c (printCLine): fix #660034
8865
8866 2003-01-13  Bernhard Held <bernhard AT bernhardheld.de>
8867
8868         * src/ds390/peeph.def: fix #123; add 14 rules by Fiorenzo D. Ramaglia <fd.ramaglia AT tin.it>, 1 by Frieder
8869         * src/mcs51/peeph.def: fix #123; add 14 rules by Fiorenzo, 1 by Frieder
8870         * src/mcs51/gen.c (genFunction): emit r0 instead of ar0 by Fiorenzo
8871         * as/mcs51/lkmem (summary): better fix for sp problem
8872         * src/SDCCglue.c (glue): __start_stack - 1, saves 1 byte!
8873         * src/ds390/main.c (_ds390_finaliseOptions, _tininative_finaliseOptions): stack_loc = 0x400008
8874         * support/regression/ports/*/spec.mk: moving testfwk-object to port dir allow parallel execution of regression tests
8875                                               remove --stack-after-data
8876
8877 2003-01-12  Bernhard Held <bernhard AT bernhardheld.de>
8878
8879         * src/SDCCmain.c (main): port->finaliseOptions() moved for z80 linking
8880         * src/SDCCutil.c (join): ugly bug: missing '\0'
8881         * as/mcs51/lkmem.c (summary): sp on address 7 is safe
8882
8883 2003-01-11  Bernhard Held <bernhard AT bernhardheld.de>
8884
8885         * src/SDCCmain.c (assemble, linkEdit): preparations for -o
8886         * src/port.h: typo
8887         * src/pic/main.c (_asmCmd): gpasm supports -o
8888         * src/z80/main.c: more general macros
8889         * device/lib/Makefile.in: remove intermediate files
8890
8891 2003-01-11  Bernhard Held <bernhard AT bernhardheld.de>
8892
8893         * .version: Bumped version number to 2.3.3
8894         * src/SDCCBBlock.c: new option -o
8895         * src/SDCCglobl.h: new option -o
8896         * src/SDCCglue.c: new option -o
8897         * src/SDCCmain.c: new option -o
8898         * src/asm.c: new option -o
8899         * src/ds390/main.c: new option -o
8900         * src/pic/glue.c: new option -o
8901         * src/pic/pcode.c: new option -o
8902         * src/pic/ralloc.c: new option -o
8903         * src/pic16/glue.c: new option -o
8904         * src/pic16/pcode.c: new option -o
8905         * src/pic16/ralloc.c: new option -o
8906         * src/z80/main.c: new option -o
8907         * device/lib/Makefile.in: use -o
8908         * support/regression/ports/ds390/spec.mk: use -o
8909         * support/regression/ports/gbz80/spec.mk: use -o
8910         * support/regression/ports/mcs51/spec.mk: use -o
8911         * support/regression/ports/mcs51-stack-auto/spec.mk: use -o
8912         * support/regression/ports/z80/spec.mk: use -o
8913         * support/regression/ports/ucz80/spec.mk: use -o
8914         * support/regression/ports/xa51/spec.mk: use -o
8915         * support/regression/fwk/lib/timeout.c: fix usage string
8916
8917 2003-01-09  Bernhard Held <bernhard AT bernhardheld.de>
8918         * src/mcs51/gen.c (genPlus): replaced "mov b,acc" by "mov b,a" Fiorenzo D. Ramaglia <fd.ramaglia AT tin.it>
8919
8920 2003-01-07    <johan AT balder>
8921
8922         * src/SDCCast.c (decorateType): fixed bug #600035
8923
8924 2003-01-07  Bernhard Held <bernhard AT bernhardheld.de>
8925         * as/mcs51/lkmem.c: added several l-modifiers to printf to remove warnings
8926         * as/mcs51/lkaomf51.c: #include <ctype.h> to remove warnings
8927         * src/pic/main.c (_hasNativeMulFor): outcommented unused variables to remove warnings
8928         * src/pic/pcode.c: outcommented unused variable to remove warnings
8929         * src/pic/ralloc.c: outcommented unused variable to remove warnings
8930
8931 2003-01-06    <karl AT turbobit.com>
8932         * sim/ucsim/cmd.src/command.cc: fixed so "break xram r 0x7654" works again in
8933    regression tests.
8934
8935 2003-01-06    <johan AT balder>
8936
8937         * src/SDCCicode.c: fixed array add
8938
8939 2002-01-05  Bernhard Held <bernhard AT bernhardheld.de>
8940         * src/SDCCmacro.c: MAX_STRING_LENGTH increased to 2048; was too small for regression tests
8941         * support/regression/ports/host/support.c: #include <stdarg.h> for gcc 3.2
8942
8943 2003-01-04    <johan AT balder>
8944
8945         * src/SDCCval.c (getNelements): fixed the initialized array of structures
8946
8947 2002-12-29  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
8948         * as/mcs51/Makefile.bcc: fixed typo lkomf51.o -> lkaomf51.o
8949
8950 2002-12-28  Bernhard Held <bernhard AT bernhardheld.de>
8951         * src/mcs51/peeph.def: added rules 234 and 235 from Frieder Ferlemann <frieder.ferlemann AT web.de>
8952         * support/regression/tests/bug-524697.c: fit mem usage into 8032
8953
8954 2002-12-28  Bernhard Held <bernhard AT bernhardheld.de>
8955         * src/mcs51/gen.c (aopGetUsesAcc): inserted missing "return FALSE"
8956
8957 2002-12-27  Bernhard Held <bernhard AT bernhardheld.de>
8958         * as/mcs51/Makefile.in: fixed typo lkomf51.o -> lkaomf51.o
8959
8960 2002-12-26  Bernhard Held <bernhard AT bernhardheld.de>
8961         * src/mcs51/main.c: removed {bindir}{sep} from aslink
8962
8963 2002-12-10  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
8964
8965     * in \sdcc\as\mcs51\ changed these files in order to create an
8966     aomf51 file: aslink.h, lkdta.c, lklex.c, lklibr.c, lklist.c,
8967     lkmain.c.  Also added: lkmem.c and lkaomf51.c.  Changed the
8968     following files to include the previous two files: aslink.dsp,
8969     Makefile.aslink, Makefile.bcc, and Makefile.in.
8970
8971     * Changed \sdcc\src\SDCCmain.c so it creates files with extension
8972     .adb instead of .cdb
8973
8974 2002-11-09  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
8975
8976         * \sdcc\as\mcs51\lklist.c: Now reports memory usage using the
8977         value from option --iram-size.
8978
8979 2002-09-20  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
8980
8981         * \sdcc\as\mcs51\lklist.c: added boundary check before using
8982         dram[] array.
8983
8984 2002-09-18    <wiml AT hhhh.org>
8985
8986         * SDCClrange.h: exposed setFromRange() and setToRange()
8987         * mcs51/ralloc.c: fixed over-eager packRegsForSupport() and
8988           packRegsForAccUse() (bug 542397)
8989         * mcs51/gen.c: MOVA() is now a function to avoid calling aopGet()
8990           multiple times and emitting the fetch operations more than once
8991           added aopGetUsesAcc() function to allow binary operators to
8992           fetch their operands in the correct order; made genMinus() emit
8993           compact code for X = LITERAL - Y
8994
8995 2002-09-00  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
8996         * \sdcc\as\mcs51\lklist.c: Fixed incorrect number of parameters to
8997         sprintf() in line 1267.
8998
8999 2002-09-08  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
9000         * \sdcc\src\SDCCglue.c: Generate areas REG_BANK_[0-3] only for 8051
9001         like ports.
9002
9003 2002-09-04  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
9004         Changes to aslink (All the changes are marked with 'JCF'):
9005
9006         * \sdcc\as\mcs51\aslink.h: External definition of sflag and
9007         summary().
9008
9009         * \sdcc\as\mcs51\lkarea.c: Computes the size of area BSEG_BYTES from
9010         area BSEG.  Also moves, if possible, the DATA area down into the internal
9011         ram so more space is available.
9012
9013         * \sdcc\as\mcs51\lkdata.c: Definition of memory summary output flag
9014         sflag.
9015
9016         * \sdcc\as\mcs51\lklist.c: For the BSEG area report the size in bits,
9017         not bytes.  Function summary() which creates a memory usage summary
9018         file with extension .mem.  Reports of overlaping stack and small stack
9019         size.  If the space for the stack is less than 16 bytes aslink trows a
9020         warning.
9021
9022         * \sdcc\as\mcs51\lkmain.c: Creation of some of the default areas for
9023         the 8051.  Option 'y' for memory summary output file.
9024
9025         Changes to sdcc (All the changes are marked with 'JCF'):
9026
9027         * \sdcc\src\SDCCglobl.h: External definition of RegBankUsed[4].
9028
9029         * \sdcc\src\SDCCglue.c:  If a register bank is used, creates an
9030         overlaying area for it (uses RegBankUsed[4]).
9031
9032         * \sdcc\src\SDCCmain.c: Definition RegBankUsed[4]; marks register
9033         bank zero as used by default.  By default aslink locates the stack
9034         (equivalent to --stack-after-data).  Pass option 'y' to aslink for
9035         the creation of the .mem file.  Delegates the allocation of data area
9036         to aslink (it is not longer 0x30 by default).  If --stack-loc passes
9037         the begining of the stack area to aslink.
9038
9039         * \sdcc\src\SDCCmem.c:  If a register bank is used, marks it so
9040         glue() in SDCCglue.c creates an area for it.
9041
9042 2002-09-03  Borut Razem <borut.razem AT siol.net>
9043         * sdcc/src/SDCCglue.c, sdcc/src/SDCCglue.h, sdcc/src/SDCCmain.c,
9044         sdcc/src/pic/glue.c:
9045         introduced atexit() handler for teporay files removal in case of
9046         errors, assertions, ...
9047
9048 2002-08-29  Borut Razem <borut.razem AT siol.net>
9049         * sdcc/support/cpp2/auto-host_vc_in.h:
9050         re-definition of O_BINARY and other O_XXX as _O_BINARY and _O_XXX, so the problem
9051         with the returned value from read() in sdcc/support/cpp2/cppfiles.c is solved for MSC.
9052         Maybe there is a similar problem with BORLANDC? It should be checked!
9053
9054         * sdcc/src/ds390/ralloc.c, sdcc/src/mcs51/ralloc.c, sdcc/src/z80/ralloc.c:
9055         corrected improper use of assert: the assignment to clr variable was done inside the assert.
9056         In case that NDEBUG was defined, the assert macro was substituted with no-op, so the assignment
9057         was not executed, and the compiler (cl) launched a warning:
9058         ralloc.c(1442) : warning C4700: local variable 'clr' used without having been initialized
9059
9060 2002-08-28  Bernhard Held <bernhard AT bernhardheld.de>
9061         * src/SDCCglue.c (printIvalArray): iterative calculation of array length
9062
9063 2002-08-28  Jesus Calvino-Fraga and Borut Razem <borut.razem AT siol.net>
9064         * sdcc/sdcc.dsw: added sdcpp, sdcppa, yacc, conf projects
9065
9066         * sdcc/src/src.dsp, sdcc/src/avr/avr.dsp, sdcc/src/ds390/ds390.dsp,
9067           sdcc/src/mcs51/mcs51.dsp, sdcc/src/pic/pic.dsp, sdcc/src/z80/z80.dsp,
9068           sdcc/src/xa51/xa51.dsp, sdcc/src/avr/avra.dsp,
9069           sdcc/src/ds390/ds390a.dsp, sdcc/src/mcs51/mcs51a.dsp,
9070           sdcc/src/pic/pica.dsp, sdcc/src/z80/z80a.dsp,
9071           sdcc/src/xa51/xa51a.dsp, sdcc/as/as_z80.dsp,
9072           sdcc/as/aslink.dsp, sdcc/as/asx8051.dsp, sdcc/packihx/packihx.dsp:
9073         - added Release configuration in VS projects
9074         - review of compiler an linker options
9075         - VC .exe files are generated in bin_vc directory, not to interfere
9076           with binaries generated from other projects (cygwin, mingw, bcc ...)
9077
9078         * sdcc/src/yacc.dsp: added
9079
9080         * sdcc/config.dsp, sdcc/configure_vc.awk, sdcc/sdcc_vc_in.h:
9081         added - genarate sdcc_vc.h using sdcc_vc_in.h as template
9082         and insert the version number definitions from .version
9083
9084         * sdcc/support/cpp2/sdcpp.dsp: added - VC project for sdcpp
9085
9086         * sdcc/support/cpp2/sdcppa.dsp, sdcc/support/cpp2/auto-host_vc_in.h:
9087         added - genarate auto-host.h using auto-host_vc_in.h as template
9088
9089         * sdcc/sdcc_vc.h,
9090         removed from CVS, generated automatically
9091
9092 2002-08-25  Bernhard Held <bernhard AT bernhardheld.de>
9093         * support/scripts/inc2h.pl: use gputils or gpasm (from Nathan Hurst)
9094
9095 2002-08-11  Borut Razem <borut.razem AT siol.net>
9096         * support/Util/NewAlloc.c: removed unneeded #include "sdccconf.h" (suggested by Jesus Calvino-Fraga)
9097
9098 2002-08-10  Borut Razem <borut.razem AT siol.net>
9099         * src/SDCCmain.c (main):
9100         file preOutName was unlinked before closed. This seems to be OK on UNIX and cygwin
9101         platforms, but it doesn't work with Visual Studio: the opened file can not be removed.
9102         The consequence was that some temporary files were not removed.
9103
9104         * src/SDCCglue.c:
9105         unification of code in functions tempfilename() and tempfile():
9106         function tempnam() is defined in Visual Studio 6.0 and .NET
9107
9108         * sdcc/sdcc.dsw: removed project sdcpp, added project xa51a
9109
9110         * sdcc/src/src.dsp, sdcc/src/avr/avr.dsp, sdcc/src/ds390/ds390.dsp,
9111           sdcc/src/mcs51/mcs51.dsp, sdcc/src/pic/pic.dsp, sdcc/src/z80/z80.dsp:
9112         - removed compiler command line option /WX: Treats all warnings as errors
9113         - update a list of source files, included into the project
9114
9115         * sdcc/src/avr/avra.dsp, sdcc/src/ds390/ds390a.dsp, sdcc/src/mcs51/mcs51a.dsp,
9116           sdcc/src/pic/pica.dsp, sdcc/src/z80/z80a.dsp:
9117         changed project type to Generic Project so that can be correcly converted to VS.NET project
9118
9119         * sdcc/as/mcs51/asm.h: definition of PATH_MAX for MSC
9120
9121         * sdcc/src/SDCCast.c: solved MSC error in function decorateType()
9122
9123         * sdcc/src/SDCC.y: added missing ending ';' to rules to get rid of bison warnings
9124
9125         * dcc/src/ds390/ralloc.c, sdcc/src/mcs51/ralloc.c:
9126         added return 0 statements after assert() to make compiler happy
9127
9128         * sdcc/src/xa51/peeph.rul, sdcc/src/xa51/peeph.def, sdcc/src/z80/ralloc.c:
9129         added newline in the def file to keep MSC compiler satisfied
9130
9131         * sdcc/src/z80/gen.c:
9132         - function strcasecmp() is not defined in MSC (and probably also in BORLANDC),
9133           so it is replaced with STRCASECMP, which is defined as stricmp in case of MSC and BORLANDC
9134         - solved MSC error in function aopDump()
9135
9136         * sdcc_vc.h: define PREFIX as "\\sdcc"
9137
9138 2002-07-18  Bernhard Held <bernhard AT bernhardheld.de>
9139         * src/SDCCast.c (decorateType): fixed access to array of structures http://sourceforge.net/mailarchive/forum.php?thread_id=902690&forum_id=4107
9140
9141 2002-06-22  Scott Dattalo <scott AT dattalo.com>
9142         * src/pic/*: Numerous bug fixes. Flow analysis has been enhanced.
9143         - Rewrote the register banking algorithm.
9144         - Added pCode live-range analysis to registers (for now, only non-used and
9145         singly-used registers optimized away)
9146
9147         * src/pic/pcoderegs.[ch]: Added new files for pCode live-range analysis
9148
9149         * 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.
9150
9151 2002-05-10  Scott Dattalo <scott AT dattalo.com>
9152         * src/pic/*: Added support for multiplication. Fixed many,many bugs.
9153
9154 2002-04-22  Michael Hope  <michaelh AT vroom>
9155
9156         * device/lib/z80/printf.c: Changed emitter to volatile to work around a pcall bug.
9157
9158         * configure.in (DD_COPT): Added include support required for gbdk.
9159
9160         * .version: Bumped version number just to increase it.
9161
9162         * src/SDCCmain.c: Added -nostdinc to the default options.
9163
9164 2002-04-15  Michael Hope  <michaelh AT vroom>
9165
9166         * device/lib/z80/printf.c (sprintf): Added.
9167
9168         * src/z80/ralloc.c (packRegisters): Disabled pack HL use for GB as it's broken.
9169
9170         * src/z80/peeph.def: Added transpose redundent load rule.
9171
9172         * src/z80/main.c: Added force callee saves for jaune.
9173
9174         * src/port.h: Removed the i186 and tlcs-900h ports as they weren't being being developed.
9175
9176         * src/SDCCmain.c: Pulled the options definition out so that you can add port specific options without changing the main file.
9177
9178 2002-03-28  Johan Knol  <johan AT balder>
9179
9180         * src/SDCCval.c: fixed bug #532436
9181
9182 2002-03-14  Scott Dattalo <scott AT dattalo.com>
9183         * /src/port.h:
9184         Added "char *Processor" field to the port structure.
9185
9186         * /src/SDCCmain.c:
9187         Added -p option. Allows port dependent processor to be specified.
9188
9189         * all ports:
9190         Initialized the new field char *Processor field to NULL in all ports
9191
9192         * /src/pic/*:
9193         Compiler generated registers for interrupt context saving
9194         were not getting allocated.
9195
9196 2002-03-16  Sandeep Dutta  <sandeep AT ddi.com>
9197
9198         * /src/SDCCast.c:
9199         Fixed left shift. Will promote the left side of a left shift
9200         if a) left shifting more than size of operand or b) when assigned
9201         to something size > size of left side
9202
9203 2002-03-14  Scott Dattalo <scott AT dattalo.com>
9204         * src/pic/*
9205         tons of changes. Register allocation has been
9206         rewritten. Added customization for the various PICs. Flow
9207         analysis is restructured. ...
9208
9209         * src/pic/device.h:
9210         Added
9211
9212         * src/pic/device.c:
9213         Added. device.c is a PIC port hack to accomodate variations
9214         in PIC devices.
9215
9216 2002-03-13  Michael Hope  <michaelh AT vroom>
9217
9218         * src/z80/gen.c (genGenPointerGet): Fixed a bug where a pointer in HL is dereferenced into HL but HL is not spilled.  Yeah.
9219
9220 2002-03-04  johanknol  <johanknol AT manik>
9221
9222         * /src/SDCCval.c: fixed
9223
9224         const unsigned char arr[][2] = { { 0, 1 } };
9225         t18.c:1: error: Initializer element is not constant
9226
9227 2002-03-04  bela  <bela AT manik>
9228
9229         * /device/include/mcs51reg.h:
9230         ds89c420 register definition update
9231
9232 2002-03-03    <johan AT FRIJA>
9233
9234         * support/Util/SDCCerr.c: did something, but don't no why anymore
9235
9236         * support/regression/tests/bug-524691.c: made it a little less shy
9237
9238         * src/SDCCast.c (decorateType): fixed bug #524697
9239
9240         * src/SDCCast.c: made some lineno improvements
9241
9242         * src/SDCCval.c (getNelements): changed warning to error
9243
9244         * src/SDCCglue.c (printIvalArray): changed warning to error
9245
9246         * src/SDCCicode.c: fixed a warning for mingw
9247
9248         * src/SDCCast.c (decorateType): fixed the << promotion for ops
9249
9250         * src/SDCCicode.c (geniCodeDivision): divide is shift only for unsigned (bug #524685)
9251
9252 2002-03-02  Sandeep Dutta  <sandeep AT ddi.com>
9253
9254         * src/ds390/peeph.def:
9255         Added some more peephole rules
9256
9257         * src/ds390/gen.c: Various fixes & enhancements
9258
9259         * src/SDCClrange.c, src/SDCClrange.h:
9260         functions "alldefsoutofrange" and "notusedinblock" moved to SDCClrange.c
9261
9262         * src/ds390/ralloc.c:
9263         various fixes & enhancements (ds390) specific
9264
9265         * src/avr/ralloc.c, src/mcs51/ralloc.c, src/pic/ralloc.c, src/xa51/ralloc.c, src/z80/ralloc.c:
9266         Functions "allDefsOutOfRange" & "notUsedinBlock" moved to SDCClrange.c
9267         from rallocs.
9268
9269         * sdcc/src/SDCCcse.c: Better fix for bug # 514308
9270
9271 2002-03-02    <johan AT FRIJA>
9272
9273         * src/SDCCast.c (decorateType): fixed bug #524708
9274
9275         * src/SDCCval.c (floatFromVal): fixed the literal void (whatever that may be)
9276
9277         * src/SDCCicode.c (geniCodePtrPtrSubtract): fixed bug #524691
9278
9279 2002-03-01  Michael Hope  <michaelh AT vroom>
9280
9281         * src/SDCCsymt.c (initCSupport): Removed managling of support function names.
9282
9283         * src/z80/ralloc.c (packRegsForIYUse): Fixed fp bug where four byte operands were packed into IY.
9284
9285 2002-03-01    <johan AT FRIJA>
9286
9287         * src/SDCCglue.c (printIvalPtr): fixed bug #524211
9288
9289         * src/SDCCast.c (decorateType): fixed bug #524209
9290
9291         * src/SDCCval.c (valNot): fixed bug #524195
9292
9293 2002-02-26    <johan AT balder>
9294
9295         * src/xa51/gen.c: fixed a warning
9296
9297         * src/SDCCglue.c (printIvalFuncPtr): fixed bug #522534
9298
9299         * src/SDCCast.c (decorateType): fixed bug #522534
9300
9301 2002-02-23    <johan AT balder>
9302
9303         * src/SDCCdflow.c (computeDataFlow): fixed bug #460088
9304
9305 2002-02-22    <johan AT balder>
9306
9307         * src/SDCCast.c: fixed bug #514865
9308
9309         * src/SDCCy.c ("SDCC.y"): fixed bug #516625
9310
9311 2002-02-21  Sandeep Dutta  <sandeep AT ddi.com>
9312
9313         * sdcc/src/SDCCloop.c:
9314         Previous fix was not good. basic blocks that have "break" or "return" are
9315         not really partof a loop , but live ranges used in these blocks should
9316         be live thru the entire loop, so set partOfLoop but don't add them to
9317         loop region
9318
9319 2002-02-21    <johan AT FRIJA>
9320
9321         * src/SDCCcse.c: fixed bug #514308
9322
9323 2002-02-20  Sandeep Dutta  <sandeep AT ddi.com>
9324
9325         * src/SDCCloop.c:
9326         Fixed BUG #519583. If a conditional block ended in a return/break
9327         statement inside a loop, it was not being considered part of the loop.
9328
9329         * src/SDCCcflow.c: Removed fix (Fixed in SDCCloop.c)
9330
9331 2002-02-10  Karl Bongers <karl AT turbobit.com>
9332
9333         * debugger/*:
9334         Fixed up SDCDB debugger somewhat.  Updated debugger/README
9335         with lots of comments and notes.
9336
9337         * device/examples/test2.c:
9338         Fix bug, "red" variable not being initialized(compiler complained).
9339
9340         * device/examples/Makefile, examples/test3.c:
9341         Add Makefile in device/examples folder, compiles test3.c
9342         for use as a multiple module SDCDB test case.
9343
9344         * sim/ucsim/cmd.src/cmdset.cc:
9345         Took out debug printfs in ucsim "next" command.
9346
9347         * sim/ucsim/xa.src:
9348         Karl and Johan start ucsim XA support.  Most dissassembly working,
9349         about 75% emulation done(plenty of work remaining).
9350
9351         * sim/ucsim/z80.src:
9352         Add Z80 support to ucsim, add test-ucz80 regression test,
9353         notice ucsim/z80 emulation fails on examples/test3.c/itoa code.
9354         Notice z80 compiler fails on examples/test3.c/crc code.
9355
9356 2002-01-30  Sandeep Dutta  <sandeep AT ddi.com>
9357
9358         * src/mcs51/gen.c, src/mcs51/main.c, src/mcs51/ralloc.c:
9359         Added support for --parms-in-bank1
9360
9361         * src/ds390/peeph.def:
9362         added a few more peephole optimzations
9363
9364         * src/ds390/main.c:
9365         1) added __builtin_inp & __builtin_outp used to read in data of given length
9366            from a memory mapped port
9367         2) added __builtin_memcmp
9368         3) added __builtin_swapw swap bytes of a short
9369
9370         * src/ds390/gen.c, src/ds390/gen.h, src/ds390/ralloc.c:
9371         1) handle multiple send & receives from register bank1
9372         2) ralloc can now allocate DPTR1 to some liveRanges
9373
9374         * src/SDCCsymt.c, src/SDCCsymt.h:
9375         changes to handle multiple sends & receives
9376
9377         * src/SDCCptropt.h:
9378         added some pointer arithmetic optimization
9379
9380         * src/SDCCptropt.c:
9381         added some pointer arithmetic optimizations but not stable yet so not
9382         called from anywhere (will get this working shortly)
9383
9384         * src/SDCCopt.c: fixed for multiple sends & receives
9385
9386         * src/SDCCmain.c:
9387         1) added options --parms-in-bank1 (ds390/mcs51) & --protect-sp-update
9388         2) preprocessing done AFTER port->finalizeoptions . This allows ports to
9389            set preprocessor defines (depending on options)
9390
9391         * src/SDCCicode.c, src/SDCCicode.h:
9392         changes made to handle multiple sends & receives
9393
9394         * src/SDCCglobl.h:
9395         Added options --protect-sp-update (ds390) and --parms-in-bank1 (ds390/mcs51)
9396
9397         * src/SDCCcse.c, src/SDCCcse.h:
9398         added function findbackward def (to be used in upcoming optimization)
9399
9400         * src/SDCCcflow.c, src/SDCCcflow.h:
9401         added function returnAtEnd - to determine if a basic block terminates with
9402         a RETURN iCode
9403
9404         * src/SDCCast.c, src/SDCCast.h:
9405         added option parms-in-bank1
9406
9407         * device/lib/_divsint.c, device/lib/_divslong.c, device/lib/_divuint.c
9408         * device/lib/_divulong.c, device/lib/_modsint.c, device/lib/_modslong.c
9409         * device/lib/_modulong.c, device/lib/_mulint.c, device/lib/_mullong.c:
9410         adjusted for --parms-in-bank1 option
9411
9412         * device/include/string.h:
9413         donot redefine "reentrant" keyword
9414
9415         * device/include/ds80c390.h: Added some more SFRs
9416
9417 2002-01-28  Bernhard Held  <bernhard AT bernhardheld.de>
9418
9419         * sim/ucsim: Merged branch ucsim-034-pre3 to main trunk; new version 0.4
9420
9421 2002-01-26  Bernhard Held  <bernhard AT bernhardheld.de>
9422
9423         * src/SDCCast.c (funcOfType): fix usage of double --float-reent
9424
9425 2002-01-22  Bernhard Held  <bernhard AT bernhardheld.de>
9426
9427         * support/regression/fwk/lib/testfwk.c (main): Removed workaround for bug #505387
9428
9429 2002-01-18  Paul Stoffregen  <paul AT pjrc.com>
9430
9431         * Added --xram-movc option
9432
9433 2002-01-13  Bernhard Held  <bernhard AT bernhardheld.de>
9434
9435         * support/regression/Makefile: don't include test-mcs51-stack-auto in target all
9436
9437 2002-01-11  Johan Knol
9438
9439         * Added math lib of Jesus Calvino-Fraga
9440
9441 2002-01-08  Bernhard Held  <bernhard AT bernhardheld.de>
9442
9443         * src/SDCCmain.c (processFile): fix processing of ../../src.c
9444         * support/regression/Makefile: new target test-mcs51-stack-auto
9445         * support/regression/ports/mcs51-stack-auto/spec.mk: added
9446
9447 2002-01-04  Bernhard Held  <bernhard AT bernhardheld.de>
9448
9449         * src/SDCCglue.h: printIvalCharPtr(), not printIvalChar()
9450
9451 2002-01-04  Bernhard Held  <bernhard AT bernhardheld.de>
9452
9453         * support/regression/ports/mcs51/support.c: correct setup of timer / UART
9454
9455 2002-01-03  Bernhard Held  <bernhard AT bernhardheld.de>
9456
9457         * src/SDCCsymt.c (processFuncArgs): fix #498307 by Johan
9458
9459         * src/SDCCglue.h: add definition for printIvalChar()
9460
9461 2002-01-02  Bernhard Held  <bernhard AT bernhardheld.de>
9462
9463         * src/SDCCast.c: fix #498138 by Johan
9464
9465         * src/SDCCglue.c: fix #498138 by Johan
9466
9467 2002-01-02  Bernhard Held  <bernhard AT bernhardheld.de>
9468
9469         * support/regression/Makefile: fix clean
9470
9471         * support/regression/ports/ds390/support.c: fix transmission of last character
9472
9473 2001-12-29  Sandeep Dutta  <sandeep AT ddi.com>
9474
9475         * /sdcc/src/ds390/gen.c:
9476         a) improved computing address of stack variable
9477         b) took out some #if 0 code
9478         c) improved parmBytes adjustment
9479         d) improved genPlusIncr & genMinusIncr
9480         e) genCmp could generate bad code (when left assigned to DPTR)
9481         f) Fixed bug in hasInc
9482
9483         * /sdcc/src/ds390/ralloc.c:
9484         a) packRegsForSupport could mess up live information (Fixed)
9485         b) packRegsDPTRuse could be incorrect for left & right shift
9486
9487         * /sdcc/src/mcs51/ralloc.c:
9488         packRegsForSupport could mess up the live information (Fixed)
9489
9490         * /sdcc/src/mcs51/gen.c: Fixed a bug in hasInc
9491
9492         * /sdcc/src/SDCCast.c:
9493         can reverse a loop even if function call is present as long
9494         as the loop control variable is local & is not passed as parameter
9495
9496 2001-12-24  Sandeep Dutta  <sandeep AT ddi.com>
9497
9498         * /sdcc/ChangeLog: *** empty log message ***
9499
9500         * /sdcc/src/ds390/gen.c, /sdcc/src/ds390/main.c:
9501         More builtin function additions for TININative
9502
9503         * /sdcc/src/ds390/ralloc.c:
9504         Had broken the regression testsuite
9505
9506         * /sdcc/src/SDCCast.c: Fixed a bug in dumptree
9507
9508         * /sdcc/src/SDCCsymt.c, /sdcc/src/SDCCsymt.h:
9509         Added funcattr hasStackParms will be set for reentrant functions when there
9510         are paramteres on the stack, this helps in minimizing frame pointer generation
9511         typeFromStr can handle function pointers now
9512
9513         * /sdcc/doc/builtins.txt, /sdcc/doc/TININative.txt:
9514         *** empty log message ***
9515
9516 2001-12-24  Sandeep Dutta  <sandeep AT ddi.com>
9517
9518         * /src/ds390/gen.c, /src/ds390/main.c:
9519         More builtin function additions for TININative
9520
9521         * /src/ds390/ralloc.c:
9522         Had broken the regression testsuite
9523
9524         * /src/SDCCast.c: Fixed a bug in dumptree
9525
9526         * /src/SDCCsymt.c, /src/SDCCsymt.h:
9527         Added funcattr hasStackParms will be set for reentrant functions when there
9528         are paramteres on the stack, this helps in minimizing frame pointer generation
9529         typeFromStr can handle function pointers now
9530
9531         * /doc/builtins.txt, /doc/TININative.txt:
9532         *** empty log message ***
9533
9534
9535 2001-12-24  Sandeep Dutta  <sandeep AT ddi.com>
9536
9537         * /src/ds390/gen.c, /src/ds390/main.c, /src/ds390/peeph.def, /src/ds390/ralloc.c:
9538         ALPHA version for -mTININative
9539
9540         * /src/izt/i186.c, /src/izt/tlcs900h.c, /src/mcs51/main.c, /src/pic/main.c, /src/z80/main.c, /src/avr/main.c:
9541         updated to reflect changes in the port structure
9542
9543         * /src/port.h:
9544         added function do_assemble (similar to do_link) if non-null this function
9545         will be called to do assembly (-mTININative) requires a multi command
9546         assembly
9547         added function genAssemblerEnd will be called to generate assembler Epilogue
9548
9549         * /src/SDCCsymt.c:
9550         added _JavaNative to debug info printing
9551
9552         * /src/SDCCmain.c: added option --tini-libid
9553         added port->do_assemble function (-mTININative) has a multi command assemble
9554
9555         * /src/SDCCglue.c: Disabled "constExpr" check
9556         added port->genAssemblerEnd function
9557
9558         * /src/SDCCglobl.h: Added option --tini-libid value
9559
9560         * /src/SDCCast.h:
9561         tookout optimizeCompare from the header (has no external references)
9562
9563         * /src/SDCCast.c: made one more function "static"
9564
9565 2001-12-23  Michael Hope  <michaelh AT juju.net.nz>
9566
9567         * src/z80/mappings.i: Added z80asm support.
9568
9569         * src/z80/main.c: Added z80asm support on --asm=z80asm
9570
9571         * src/z80/gen.c: Fixed asm portability issues.
9572
9573         * src/asm.c (tvsprintf): Removed old code, added 'N' for function name.  For extern support.
9574
9575         * src/SDCCglue.c (printExterns): Added global/extern split.
9576
9577 2001-12-17  Bernhard Held  <bernhard AT bernhardheld.de>
9578
9579         * support/regression/Makefile: added test for mcs51 model large
9580
9581         * support/regression/ports/mcs51-large/spec.mk: added test for mcs51 model large
9582
9583         * support/regression/ports/gbz80/spec.mk: added -mgbz80
9584
9585 2001-12-05  Michael Hope  <michaelh AT juju.net.nz>
9586
9587         * src/diff.1 (Index): Many, many optmisiations.  Dhrystone up to 201.
9588
9589 1904-01-06  Michael Hope  <michaelh AT juju.net.nz>
9590
9591         * src/z80/ralloc.c (packRegsForIYUse): Fixed the case where an operand is in direct space.
9592
9593         * src/z80/gen.c (makeFreePairId): Optimised IY load by using a spare pair.
9594
9595 2001-12-02  Bernhard Held  <bernhard AT bernhardheld.de>
9596
9597         * src/mcs51/gen.c (genFunction): avoid excess "inc sp"
9598
9599         * support/regression/tests/simplefloat.c: Port to mcs51.
9600
9601 2001-11-25  Michael Hope  <michaelh AT juju.net.nz>
9602         * support/regression/tests/bug-485362.c: Added.
9603
9604         * support/regression/tests/simplefloat.c (testDivNearOne): Added.
9605
9606         * src/z80/gen.c (aopOp): Fixed case where left and result are in the same spill loc and they have different sizes.
9607
9608         * src/z80/peeph.def: Added rules for optimising two byte compares on the same thing, and to optimise two ptr assign.
9609
9610         * src/z80/gen.c (aopDump): Added a dump function.
9611
9612 2001-11-25  Bernhard Held  <bernhard AT bernhardheld.de>
9613         * sim/ucsim/s51.src/glob.cc: DS390 SFRs and bits added.
9614
9615         * sim/ucsim/s51.src/port.cc: Port 4 and 5 added.
9616
9617         * sim/ucsim/s51.src/regs51.h: DS390 SFRs added.
9618
9619         * sim/ucsim/s51.src/uc390.cc: Some details improved, CKRDY works for tinibios.
9620
9621         * sim/ucsim/s51.src/uc390cl.h: Work in progress.
9622
9623         * sim/ucsim/sim.src/uccl.h: 6 ports for DS390.
9624
9625         * support/regression/fwk/lib/testfwk.c: Run with tinibios.
9626
9627         * support/regression/ports/mcs51/spec.mk: Fine tuninig.
9628
9629         * support/regression/ports/ds390/support.c: Use tinibios.
9630
9631         * support/regression/ports/ds390/spec.mk: Fine tuning, use tinibios.
9632
9633 2001-11-23  Michael Hope  <michaelh AT juju.net.nz>support/regression/tests/bug-460010.c
9634
9635         * src/z80/ralloc.c (packRegsForHLUse3): Changed to not pack into HL if anything is in direct space.
9636         (packRegsForHLUse3): Added packing support for send, cast, and return value from a call.
9637
9638         * src/z80/peeph.def: Added rules for optimising pushes of part of a pair.
9639
9640         * src/z80/gen.c (emitCall): Changed the stack fixup to not use HL.
9641
9642 2001-11-18  Michael Hope  <michaelh AT juju.net.nz>
9643
9644         * src/z80/gen.c (genCmp): Fixed compare on unsigned.
9645
9646         * src/z80/ralloc.c (packRegsForHLUse3): Created and optimised.
9647         (packRegsForIYUse): Created and optimised.
9648
9649 2001-11-07  Michael Hope  <michaelh AT juju.net.nz>
9650
9651         * support/regression/tests/float.c (testFloatAdd): Fixed up warning.
9652 2001-11-18  Bernhard Held  <bernhard AT bernhardheld.de>
9653
9654         * sdcc/support/regression/tests/bug-460010.c: fix seg violation on host
9655
9656         * sdcc/support/regression/tests/muldiv.c: fix output on mcs51
9657
9658         * sdcc/support/regression/tests/stacks.c: fix DSEG overflow on mcs51
9659
9660 2001-11-07  Bernhard Held  <bernhard AT bernhardheld.de>
9661
9662         * sdcc/sim/device/lib/_gptrget.c: mem region 5 (idata) added
9663
9664         * sdcc/sim/device/lib/_gptrput.c: mem region 5 (idata) added
9665
9666 2001-11-07  Bernhard Held  <bernhard AT bernhardheld.de>
9667
9668         * sdcc/sim/ucsim/globals.cc: New: IXRAM.
9669
9670         * sdcc/sim/ucsim/stypes.h: New: IXRAM.
9671
9672         * sdcc/sim/ucsim/s51.src/uc390.cc: New: IXRAM.
9673
9674 2001-11-07  Michael Hope  <michaelh AT juju.net.nz>
9675
9676         * src/z80/ralloc.c (packRegsForHLUse): Banned IFXs from being packed into HL.
9677         (packRegsForHLUse): Added rule to pack address of/pointer get for itemps into HL for the Z80.
9678         (packRegsForAccUse2): Added rule to pack hbit IFXs into A.
9679
9680         * src/z80/main.c (_setDefaultOptions): Made float code re-entrant by default.
9681
9682         * src/z80/gen.c (aopGetLitWordLong): Added word support for floats.
9683         (genNotFloat): Added.
9684         (genUminusFloat): Added.
9685
9686         * device/lib/z80/Makefile: Added floating pt stubs.
9687
9688         * device/lib/Makefile.in (Z80SOURCES): Added floating pt support.
9689
9690         * src/z80/gen.c (genIpush): Fixed up a push of one byte when left is in a pair.
9691
9692         * device/lib/_fsadd.c (__fsadd): Fixed up return where the numbers are hugely different.
9693
9694 2001-11-07  Bernhard Held  <bernhard AT bernhardheld.de>
9695
9696         * sdcc/sim/ucsim/s51.src/glob.cc: Minor fix.
9697
9698         * sdcc/sim/ucsim/s51.src/regs51.h: Minor fix.
9699
9700         * sdcc/support/regression/Makefile: Add port ds390.
9701
9702         * sdcc/support/regression/ports/mcs51/spec.mk: Minor change.
9703
9704         * sdcc/support/regression/ports/z80/spec.mk: Minor change.
9705
9706         * sdcc/support/regression/ports/ds390/spec.mk: Added.
9707
9708         * sdcc/support/regression/ports/ds390/support.c: Added.
9709
9710         * sdcc/support/regression/ports/ds390/uCsim.cmd: Added.
9711
9712         * sdcc/support/regression/ports/mcs51/timeout.c: Cut.
9713
9714         * sdcc/support/regression/fwk/lib/timeout.c: Paste.
9715
9716 2001-11-04  Michael Hope  <michaelh AT juju.net.nz>
9717
9718         * device/include/malloc.h: Added z80 and gbz80 support.
9719
9720         * device/lib/gbz80/heap.s: Added.
9721
9722         * device/lib/z80/heap.s: Added.
9723
9724         * device/lib/malloc.c: Added z80 and gbz80 support.
9725
9726         * support/regression/tests/malloc.c (testMalloc): Added.
9727
9728         * src/SDCCmain.c (parseCmdLine): Added support for -Wp.
9729
9730         * support/regression/tests/bug-478094.c: Added.
9731
9732         * src/z80/gen.c (commitPair): Fixed silly gbz80/z80 commit to static bug.
9733
9734 2001-11-04  Bernhard Held  <bernhard AT bernhardheld.de>
9735
9736         * sdcc/sim/ucsim/s51.src/uc390cl.h: Improvement for ds390 to run regression tests
9737
9738         * sdcc/sim/ucsim/s51.src/uc390.h: Improvement for ds390 to run regression tests
9739
9740         * sdcc/sim/ucsim/s51.src/regs51.h: Improvement for ds390 to run regression tests
9741
9742         * sdcc/sim/ucsim/s51.src/glob.cc: Improvement for ds390 to run regression tests
9743
9744         * sdcc/support/regression/tests/bug-460010.c: Small change for ds390
9745
9746 2001-11-04  Michael Hope  <michaelh AT juju.net.nz>
9747
9748         * src/z80/peeph-gbz80.def: Removed a bad sub optimisation.
9749
9750 2001-11-03  Michael Hope  <michaelh AT juju.net.nz>
9751
9752         * support/regression/tests/bug-477927.c: Added.
9753
9754         * src/z80/peeph.def: Added minor rules.
9755
9756         * src/z80/gen.c (genPlusIncr): Added an extra plusinc rule.
9757
9758         * src/z80/peeph.def: Added jump optimisation modification.
9759
9760 2001-11-01  Michael Hope  <michaelh AT juju.net.nz>
9761
9762         * src/SDCCmain.c (linkEdit): Added runtime path detection to the mcs51 port.
9763
9764 2001-10-30  Michael Hope  <michaelh AT juju.net.nz>
9765
9766         * support/regression/tests/funptrs.c: Added.
9767
9768 2001-10-29  Michael Hope  <michaelh AT juju.net.nz>
9769
9770         * src/z80/ralloc.c (packRegsForHLUse): Fixed up bad spill due to pushing one byte via HL.
9771
9772 2001-10-28  Michael Hope  <michaelh AT juju.net.nz>
9773
9774         * src/z80/gen.c (genArrayInit): Made it work for on stack arrays.
9775
9776         * src/z80/main.c (gbz80_port =): Added rle support to the gbz80 port.
9777
9778         * src/z80/gen.c (genMinus): Fixed for where the result is one byte.
9779         (movLeft2ResultLong): Created.
9780
9781         * src/z80/ralloc.c (packRegsForHLUse): Added a couple of simple cases for the GB.
9782         (joinPushes): Added.  Joins two char pushes into a word push.
9783
9784 2001-10-27  Michael Hope  <michaelh AT juju.net.nz>
9785
9786         * support/cpp2/Makefile.in (install): Added creation of dest dir.
9787
9788         * support/makebin/Makefile (install): Added creation of dest dir.
9789
9790 2001-10-24 Karl Bongers <karl AT turbobit.com>
9791
9792         * configure.in, configure, Makefile, support/cpp: Removed cpp folder, since we have new cpp2 preprocessor code.
9793
9794 2001-10-21  Michael Hope  <michaelh AT juju.net.nz>
9795
9796         * src/z80/ralloc.c: Turned off faulty pack for one use.
9797
9798         * src/z80/peeph-gbz80.def: Removed redundent restart options.
9799
9800         * src/z80/gen.c (genMult): Added native mul for constants on the z80 and gbz80.
9801
9802 2001-10-21  Bernhard Held  <bernhard AT bernhardheld.de>
9803
9804         * support/regression/Makefile: Improved clean
9805
9806         * support/regression/ports/gbz80/spec.mk: Added clean
9807
9808         * support/regression/ports/host/spec.mk: Added clean
9809
9810         * support/regression/ports/z80/spec.mk: Added clean
9811
9812         * support/regression/ports/mcs51/spec.mk: Added clean, little improvements
9813
9814         * support/regression/ports/mcs51/timeout.c: little improvements
9815
9816 2001-10-17  Michael Hope  <michaelh AT juju.net.nz>
9817
9818         * device/lib/malloc.c (MEMHEADER): Fixed against new pedantic pointers.
9819
9820         * support/regression/fwk/include/testfwk.h: Fixed up to use function pts correctly.
9821
9822         * support/regression/generate-cases.py: Fixed up to use function pts correctly.
9823
9824 2001-10-16  Bernhard Held  <bernhard AT bernhardheld.de>
9825
9826         * support/regression/port/mcs51/spec.mk: add timeout for uCsim
9827
9828         * support/regression/port/mcs51/timeout.c: add timeout for uCsim
9829
9830 2001-10-13  Michael Hope  <michaelh AT juju.net.nz>
9831         * src/z80/gen.c (emitCall): Fixed up missing spill of HL when used to assign the result value.
9832
9833         * src/z80/ralloc.c: Turned off pack for one use as it's quite broken.
9834
9835         * src/SDCCmain.c (linkEdit): Added support for passing a legacy command line through the processor.
9836
9837         * src/mcs51/main.c (_linkCmd): Added bin path to command.
9838
9839         * src/SDCCmain.c (initValues): Added support for when it it called just to link.
9840
9841         * as/mcs51/lklibr.c (libfil;): Turned off 'library file' message.
9842
9843         * src/SDCCval.c (constVal): Fixed usage of 'L' modifier problems on ppc.
9844
9845         * support/regression/tests/longor.c: Added.
9846
9847 2001-10-11  Bernhard Held  <bernhard AT bernhardheld.de>
9848
9849         * as/mcs51/asdata.c: replaced FILENAME_MAX with PATH_MAX
9850
9851         * as/mcs51/aslink.h: define PATH_MAX
9852
9853         * as/mcs51/asm.h: define PATH_MAX
9854
9855         * as/mcs51/asmain.c: replaced FILENAME_MAX with PATH_MAX
9856
9857         * as/mcs51/asnoice.c: replaced FILENAME_MAX with PATH_MAX
9858
9859         * as/mcs51/lklex.c: replaced FILENAME_MAX with PATH_MAX
9860
9861         * as/mcs51/lkmain.c: replaced FILENAME_MAX with PATH_MAX
9862
9863         * src/SDCCglobl.h: define PATH_MAX
9864
9865         * src/SDCCmacro.c: replaced FILENAME_MAX with PATH_MAX
9866
9867         * src/SDCCmain.c: replaced FILENAME_MAX with PATH_MAX
9868
9869 2001-10-11  Michael Hope  <michaelh AT juju.net.nz>
9870
9871         * src/z80/gen.c (gencjneshort): Fixed
9872
9873         * src/z80/ralloc.c (packRegsForHLUse): Added pack into HL for cast then ipush.
9874
9875 2001-10-09  Michael Hope  <michaelh AT juju.net.nz>
9876
9877         * support/regression/tests/bug-469671.c: Added.
9878
9879         * src/z80/gen.c (shiftIntoPair): Fixed up warning.
9880
9881 2001-10-08  Michael Hope  <michaelh AT juju.net.nz>
9882
9883         * src/SDCCmain.c: Added --fommit-frame-pointer option and implemented in the z80 port.
9884
9885         * src/z80/gen.c (genPlus): Fixed to work with extended stack.  Also fixed genMinus, genCmp.  genUMinus is still left.
9886
9887 2001-10-08  Bernhar Held  <bernhard AT bernhardheld.de>
9888
9889         * src/SDCCmain.c (preProcess): added define SDCC_NOOVERLAY
9890
9891         * src/device/lib/_mulint.c  : removed hint: nooverlay bug
9892
9893         * src/device/lib/_mullong.c : removed hint: nooverlay bug
9894
9895         * src/device/lib/_divuint.c : removed hint: nooverlay bug
9896
9897         * src/device/lib/_divulong.c: removed hint: nooverlay bug
9898
9899         * src/device/lib/_moduint.c : removed hint: nooverlay bug
9900
9901         * src/device/lib/_modulong.c: removed hint: nooverlay bug
9902
9903 2001-10-07  Michael Hope  <michaelh AT juju.net.nz>
9904
9905         * 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.
9906
9907         * support/Util/NewAlloc.c (freeTrace): Changed free for the gc case to not free at all.  Fixes runtime segfault.
9908
9909         * support/regression/tests/scott-compare3.c (c_abcd): Fixed up casts.
9910
9911 2001-10-07    <johan AT FRIJA>
9912
9913         * device/lib/gets.c (gets): fixed the return value.
9914
9915 2001-10-06  Michael Hope  <michaelh AT juju.net.nz>
9916         * src/SDCCmain.c (WRITE_SEG_LOC): Fixed up to use Safe_strdup.
9917
9918         * 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.
9919
9920         * 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.
9921
9922         * src/z80/gen.c (genZ80Code): Added de-allocation via trace support.
9923
9924         * src/pic/gen.c: Removed Safe_strdup.
9925
9926         * configure.in: Added option to enable libgc support.
9927
9928         * src/SDCCbitv.c (bitVectnBitsOn): Optimised.
9929         (bitVectUnion): Optimised.
9930         (bitVectIntersect): Optimised.
9931         (bitVectBitsInCommon): Optimised.
9932         (bitVectCplAnd): Optimised.
9933
9934         * support/makebin/makebin.c (usage): Removed getopt as mingw32 doesn't have it.  Sigh.
9935
9936 2001-10-03 Bernhard Held <bernhard AT bernhardheld.de>
9937
9938         * src/SDCCmain.c: distinguish between assembler debug and plain options
9939
9940         * src/avr/main.c:   remove standard assembler options
9941
9942         * src/ds390/main.c: remove standard assembler options
9943
9944         * src/mcs51/main.c: remove standard assembler options
9945
9946         * src/port.h: removed "PENDING" comment
9947
9948 2001-10-03 Bernhard Held <bernhard AT bernhardheld.de>
9949
9950         * src/device/lib/_mulint.c  : new, with assember functions
9951
9952         * src/device/lib/_mullong.c : new, with assember functions
9953
9954         * src/device/lib/_divuint.c : with assember functions
9955
9956         * src/device/lib/_divsint.c : with assember functions
9957
9958         * src/device/lib/_divulong.c: with assember functions
9959
9960         * src/device/lib/_divslong.c: with assember functions
9961
9962         * src/device/lib/_moduint.c : with assember functions
9963
9964         * src/device/lib/_modsint.c : with assember functions
9965
9966         * src/device/lib/_modulong.c: with assember functions
9967
9968         * src/device/lib/_modslong.c: with assember functions
9969
9970         * src/device/lib/libint.lib:  replaced _muluint.c  and _mulsint.c  by _mulint.c
9971
9972         * src/device/lib/liblong.lib: replaced _mululong.c and _mulslong.c by _mullong.c
9973
9974         * src/device/lib/Makefile.in: replaced _muluint.c  and _mulsint.c  by _mulint.c
9975                                       replaced _mululong.c and _mulslong.c by _mullong.c
9976
9977 2001-10-03 Bernhard Held <bernhard AT bernhardheld.de>
9978
9979         * src/SDCCsymt.c: sequence of specifiers in pintTypeChain() corrected
9980
9981 2001-10-01 Bernhard Held <bernhard AT bernhardheld.de>
9982
9983         * src/SDCCglue.c: test, if win32api is available for MINGW
9984
9985 2001-10-01 Bernhard Held <bernhard AT bernhardheld.de>
9986
9987         * src/SDCCsymt.c: no more _modifier in printTypeChain()
9988         * support/regression/tests/driverstruct.c: REENTRANT for mcs51
9989         * support/regression/ports/gbz80/spec.mk: removed GENERIC
9990         * support/regression/ports/host/spec.mk: removed GENERIC
9991         * support/regression/ports/mcs51/spec.mk: removed GENERIC
9992         * support/regression/ports/z80/spec.mk: removed GENERIC
9993
9994 2001-10-01  Michael Hope  <michaelh AT juju.net.nz>
9995
9996         * support/regression/fwk/lib/testfwk.c (__printf): Removed GENERIC.
9997
9998         * support/regression/tests/bug-467035.c: Created.
9999
10000 2001-10-01    <johan AT FRIJA>
10001
10002         * src/SDCC.y: fixed bug #466586 part 1
10003
10004 2001-10-01  Johan Knol <johan.knol AT iduna.nl>
10005
10006         * SDCCicode.c: z80 has no generic pointers
10007         * removed -s from strip in all Makefile(.in)'s. It is not needed, but Solaris chocks on it.
10008
10009 2001-09-30  Michael Hope  <michaelh AT juju.net.nz>
10010
10011         * sim/ucsim/cmd.src/Makefile.in ($(PRJDIR)/libcmd.a): Changed all ar references to $(AR) for Solaris.
10012
10013 2001-09-29  Michael Hope  <michaelh AT juju.net.nz>
10014
10015         * Makefile (sdcc-libs): Added makebin to the list of standard targets.
10016
10017         * support/regression/ports/z80/spec.mk: Updated to use env for sdcc bin dir for automatic regression.
10018
10019 2001-09-25  Michael Hope  <michaelh AT juju.net.nz>
10020
10021         * configure.in: Fixed up so that ucsim is only configured once.
10022
10023         * support/cpp2/configure.in: Fixed to use the program transform to append the .exe for the win32 build.
10024
10025         * src/SDCCutil.c (getPrefixFromBinPath): Fixed up to work with win32 in all of its glory.
10026         (getPathDifference): As above.
10027
10028         * src/SDCCmain.c (preProcess): Changed to use a temporary file in a proper temp directory.  Fixed case where pre-processing only.
10029
10030         * src/SDCCglue.c (tempfilename): Added function for pre-processor.
10031
10032 2001-09-23  Michael Hope  <michaelh AT juju.net.nz>
10033         * .version: Updated to 2.3.1
10034
10035         * src/z80/main.c (z80_port =): Added macro based linker and assembler command line support.
10036         Added copyright header.
10037
10038         * src/SDCCmain.c: Shifted various functions into SDCCutil.c
10039         (assemble): Added support for macro based assembler commands.
10040         (linkEdit): Added support for macro based linker commands.
10041         (preProcess): Changed the pre-processor to use macros.
10042         (_setPaths): Added functionality to autodetect the include, lib and bin dir paths.
10043         (_discoverPaths): Added support for overriding the install directory using the SDCCDIR env variable.
10044
10045         * device/lib/z80/crt0.s: Added module name for debugging.
10046
10047 2001-09-20  Michael Hope  <michaelh AT juju.net.nz>
10048
10049         * src/SDCCmain.c (printVersionInfo): Added the build date to the version info.
10050
10051         * src/SDCChasht.c (hTabDeleteByKey): Fixed delete as it would delete the last item from a bucket even if it wasn't the real one.
10052
10053         * src/SDCCglue.c: Moved gc_strdup to SDCCutil.c
10054
10055         * src/Makefile.in: Added SDCCmacro and SDCCutil
10056
10057 2001-09-19  Michael Hope  <michaelh AT juju.net.nz>
10058
10059         * src/SDCCmain.c (printVersionInfo): Added the build date to the version info.
10060
10061 2001-09-16    <johan AT FRIJA>
10062
10063         * 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.
10064
10065 2001-09-15    <johan AT FRIJA>
10066
10067         * src/mcs51/ralloc.c: (findAssignToSym): fixed bug #460662 part 1
10068         * src/ds390/ralloc.c (findAssignToSym): fixed bug #460662 part 1
10069
10070 2001-09-11    <johan AT FRIJA>
10071
10072         * src/SDCCval.c (valDiv Mod Minus Plus Shift): keep litteral expressions as small as possible (bug #460010)
10073
10074 2001-09-10  Michael Hope  <michaelh AT juju.net.nz>
10075
10076         * support/regression/tests/bug-460444.c: Added test case.
10077
10078         * src/z80/gen.c (genOr): bug 460444: if (a ^ lit) was broken for &, |, and ^.
10079         (genCast): Added justification for all of the asserts.
10080
10081 2001-09-10  Bernhard Held <bernhard AT bernhardheld.de>
10082
10083         * support/regression/support.c: _xdata replaced by xdata
10084
10085         * support/regression/spec.mk: removed _generic
10086
10087 2001-09-09  Michael Hope  <michaelh AT juju.net.nz>
10088
10089         * src/pic/ralloc.c (debugLogRegType): Removed some old types to get it to compile.
10090
10091         * src/z80/gen.c (shiftR2Left2Result): Improved the case when v = v >> n for small values of n to use less code space and time.
10092         (genrshTwo): Fixed v = v >> n where v is a negative int and n is > 8: bug 460010.
10093
10094         * src/z80/peeph.def: Added a rule to optimise shift then compare.
10095
10096         * support/regression/tests/bug-460000.c (testShiftByParam): Added test case.
10097
10098         * support/regression/tests/bug-460010.c: Added test case.
10099
10100         * support/regression/Makefile (test-host): Removed a silly 'clean' target when testing against gcc.
10101
10102 2001-09-09  Bernhard Held <bernhard AT bernhardheld.de>
10103
10104         * support/regression/Makefile: inter-port-clean adjusted for mcs51
10105
10106         * support/regression/testfwk.c: removed workaround for bug #436344
10107
10108         * support/regression/tests/bp.c: use less memory with mcs51
10109
10110         * support/regression/tests/bug-441448.c: use less memory
10111
10112         * support/regression/tests/ports/mcs51/spec.mk: cleanup, use --stack-after-data
10113
10114         * support/regression/collate-results.py: typo
10115
10116 2001-09-08  Michael Hope  <michaelh AT juju.net.nz>
10117
10118         * support/regression/tests/fetchoverlap.c: Added new test case.
10119
10120         * support/regression/tests/bp.c: Added new test case.
10121
10122         * support/regression/tests/bug-448984.c: Added new test case.
10123
10124         * support/regression/tests/pow2shifts.c: Added new test case.
10125
10126         * src/z80/gen.c: Turned off the noise it normally generates for the release.
10127         (genlshTwo): Fixed right shift for count > 8.
10128
10129         * src/z80/ralloc.c: Disabled most of the ACC packing rules as they weren't getting hit and weren't at all safe.
10130
10131 2001-09-08    <johan AT FRIJA>
10132
10133         * src/SDCCicode.c (geniCodeCall): a CPOINTER can be used as a function
10134
10135 2001-09-07    <johan AT FRIJA>
10136
10137         * src/SDCCicode.c (newiCodeCondition): fixed bug #456235 (1.77)
10138
10139         * src/SDCCglue.c (emitRegularMap): only delete a symbol when it is a symbol
10140
10141 2001-09-06    <johan AT FRIJA>
10142
10143         * src/SDCC.y: this could be a fix for bug #458744 (1.37)
10144         * bernhard noted me at this: "() equals to (void)" (1.38)
10145
10146 2001-09-05    <johan AT FRIJA>
10147
10148         * src/SDCCglue.c (emitRegularMap): a fix for bug #458099/2
10149
10150 2001-09-04    <johan AT FRIJA>
10151
10152         * src/SDCCsymt.c (checkSClass): a fix for bug #458099/1
10153
10154
10155 2001-09-04  Paul Stoffregen  <paul AT pjrc.com>
10156
10157         * pragma noinduction broke memcpy on mcs51 large model.  Moved it inside z80 optimization
10158
10159 2001-09-03  Michael Hope  <michaelh AT juju.net.nz>
10160
10161         * link/z80/aslink.h: Fixed path for PATH_MAX
10162
10163 2001-09-02  Michael Hope  <michaelh AT juju.net.nz>
10164
10165         * src/z80/gen.c (fetchLitPair): Changed so that it properly caches direct space references.
10166
10167         * support/regression/tests/addsub.c: Added cases to cover all the +, - combinations.
10168
10169         * support/regression/tests/uminus.c: Added a test for the unary minus operator.
10170
10171         * 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.
10172
10173 2001-09-01  Michael Hope  <michaelh AT juju.net.nz>
10174
10175         * src/z80/gen.c: Fixed up generator to pass the regresion tests, specifically fixing loads for longs, genCmp, and turned on the map file.
10176         (genCmp): Fixed up genCmp for the GB with longs.
10177
10178         * device/lib/gbz80/Makefile: Fixed up all the libraries to pass the regression tests.
10179
10180         * support/regression/ports/host/spec.mk: Updated to compile with the new type specifiers.
10181
10182         * device/lib/Makefile.in (Z80SOURCES): Removed old _mululong, _mulslong, and unneeded _mulint.
10183
10184         * device/lib/_mullong.c (_mulslong): Changed to actually return a value :)
10185
10186 2001-08-30  Paul Stoffregen  <paul AT pjrc.com>
10187
10188         * added peepholes 223 to 231 to mcs51 port.  These improve code when using large model.
10189
10190 2001-08-30  Michael Hope  <michaelh AT juju.net.nz>
10191
10192         * 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.
10193
10194         * src/z80/gen.c (genPlus): Changed bad long add for gb to a fall through.
10195
10196 2001-08-29  Michael Hope  <michaelh AT juju.net.nz>
10197
10198         * link/z80/aslink.h: Fixed long file name support.  Is now based off PATH_MAX instead of a constant.
10199
10200         * src/z80/gen.c: Fixed add and sub for the case where left or right are in static space.
10201
10202 2001-08-30 Bernhard Held   <bernhard AT bernhardheld.de>
10203
10204   * sim/ucsim/configure:    little improvement of Cygwin-detection
10205   * sim/ucsim/configure.in: little improvement of Cygwin-detection
10206   * sim/ucsim/cmd.src/newcmdcl.h: include <sys/types.h> to define fd_set automated build
10207   * support/regression/tests/bug-221100.c: small changes for mcs51
10208   * support/regression/tests/bug-221168.c: small changes for mcs51
10209   * support/regression/tests/bug-227710.c: small changes for mcs51
10210   * support/regression/tests/staticinit.c: small changes for mcs51
10211   * as/mcs51/aslink.h: accept everything as symbol name in rel-files, bug fix ID 452601
10212   * as/mcs51/lklex.c:  accept everything as symbol name in rel-files, bug fix ID 452601
10213   * as/mcs51/lksym.c:  accept everything as symbol name in rel-files, bug fix ID 452601
10214
10215 $Revision$