1 2004-02-12 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
4 * src/hc08/gen.c (storeRegToAop, aopOp, aopAdrStr, accopWithAop,
5 rmwWithAop): Ported my 2004-10-02 fix for bug #663539 to the hc08,
6 thus fixing bug #895406
8 2004-02-11 Bernhard Held <bernhard AT bernhardheld.de>
10 * device/lib/_modsint.c,
11 * device/lib/_modslong.c: sign follows divisor only
12 * src/hc08/gen.c (genMultOneByte): if result size is 1,
13 signs or signedness can be ignored
14 * src/SDCCast.c (addCast): cosmetic - added lineno to CAST
15 * src/SDCCast.c (resultTypePropagate): added even more ops: +, - and *,
16 added optimization for IFX,
17 (decorateType): Mult/Div/ModOneByte ops can handle all kind of signed
19 reenabled optimization for IFX, which was removed on 2004-01-11
20 * src/SDCCast.h: added return type IFX
21 * src/SDCCicode.c: Mult/Div/ModOneByte ops can handle all kind of signed
22 arguments with 8 or 16 bit results; pic14 and pic16 ports use old
23 promotion behaviour; env. var. SDCC_NEWONEBYTEOPS selects the new,
24 SDCC_OLDONEBYTEOPS selects the old behaviour
25 * src/SDCCsymt.c (computeType): type2 can be NULL (for LEFT_OP);
26 changed again and commented promotion rule (it's still not perfect)
27 * src/SDCCval.c (valDiv): promotion no longer necessary
28 * src/ds390/gen.c (genMultOneByte) (genDivOneByte) (genModOneByte),
29 * src/mcs51/gen.c (genMultOneByte) (genDivOneByte) (genModOneByte):
31 * support/regression/tests/onebyte.c: added
33 2004-02-11 Vangelis Rokas <vrokas AT otenet.gr>
35 * gen.c (genInline): reverted to old code for assemnling inline
36 code because of bug reported James Chadd
38 2004-02-10 Vangelis Rokas <vrokas AT otenet.gr>
40 * ralloc.h: missing declarations from previous patch,
41 seems that patch for ralloc.h was never applied, fixed
43 2004-02-10 Hans-Juergen Dorn <hans.dorn AT apl-landau.de>
44 patch committed by Vangelis Rokas <vrokas AT otenet.gr>
48 * ralloc.h: added FSR0L, FSR0H and other missing PIC16 SFR's for
49 indirect addressing. Marked FSR0 as deprecated
50 * gen.c (pointerCode): commented out, not needed now
51 (pic16_popGet2p): new MOVFF helper function
53 (genGenPointerSet): reimplemented with MOVFF and POSTINC0
54 (shiftRLong): removed duplicate debugging info
56 2004-02-10 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
58 * src/ds390/gen.c (genNearPointerGet),
59 * src/mcs51/gen.c (genNearPointerGet): allow the genDataPointerGet()
60 optimization with bits, but not bitfields.
61 * src/ds390/ralloc.c (packRegisters),
62 * src/mcs51/ralloc.c (packRegisters): fixed bug #884453 & #880832
64 2004-02-09 Bernhard Held <bernhard AT bernhardheld.de>
66 * src/SDCCcse.c (algebraicOpts): copy operands before modification
68 2004-02-09 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
71 * src/SDCCicode.c (operandFromSymbol),
72 * src/mcs51/ralloc.c (verifyRegsAssigned, serialRegAssign),
73 * src/ds390/ralloc.c (verifyRegsAssigned, serialRegAssign),
74 * src/z80/ralloc.c (verifyRegsAssigned, serialRegAssign),
75 * src/hc08/ralloc.c (verifyRegsAssigned, serialRegAssign),
76 * src/pic/ralloc.c (verifyRegsAssigned, serialRegAssign),
77 * src/pic16/ralloc.c (verifyRegsAssigned, serialRegAssign): fixed
79 * src/SDCCast.c (createIvalStruct, createIvalArray, gatherAutoInit),
80 * src/SDCCglue.c (emitRegularMap, printIvalStruct, printIvalArray,
81 printIvalCharPtr, printIvalPtr, printIval, emitStaticSeg, emitOverlay)
82 * src/SDCCsymt.c (newSymbol),
83 * src/SDCC.y (struct_or_union_specifier, enum_specifier,
86 * src/SDCCval.c (newiList): fixed bug #885705
88 2004-02-08 Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
90 * doc/sdccman.lyx: added section 3.1.4: sdcclib.
91 * as/mcs51/lkmem.c: report the size of the stack in .mem file.
93 2004-02-08 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
95 * device/include/c8051f120.h,
96 * device/include/c8051f300.h,
97 * device/include/c8051f310.h: added/updated header files for Silicon
98 Laboratories (formerly Cygnal) CPUs. Contributed by Maarten Brock.
99 * doc/sdccman.lyx: minor changes, recommended diff -Naur and diff -u
100 in new section Submitting patches
102 2004-02-08 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
104 * src/mcs51/gen.c (genNearPointerGet, genPagedPointerGet,
105 genFarPointerGet, genCodePointerGet, genGenPointerGet,
106 genNearPointerSet, genPagedPointerSet, genFarPointerSet,
108 * src/ds390/gen.c (genNearPointerGet, genPagedPointerGet,
109 genFarPointerGet, genCodePointerGet, genGenPointerGet,
110 genNearPointerSet, genPagedPointerSet, genFarPointerSet,
112 * src/pic16/gen.c (genNearPointerGet, genPagedPointerGet,
113 genFarPointerGet, genCodePointerGet, genGenPointerGet,
114 genNearPointerSet, genPagedPointerSet, genFarPointerSet,
116 * src/pic/gen.c (genNearPointerGet, genPagedPointerGet,
117 genFarPointerGet, genCodePointerGet, genGenPointerGet,
118 genNearPointerSet, genPagedPointerSet, genFarPointerSet,
119 genGenPointerSet): fixed bug #892400
120 * src/pic16/gen.c (genSkipz, AccRol): disabled functions with #if 0
121 to eliminate build warnings.
122 * src/SDCCast.c (processParms),
123 * src/SDCC.y (function_declarator2, declarator2_function_attributes):
125 * support/valdiag/valdiag.py: added GCC to the list of defines active
126 when compiling with gcc
128 2004-02-07 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
130 * support/Util/SDCCerr.h,
131 * support/Util/SDCCerr.c,
132 * src/SDCCast.c (decorateType, sizeofOp): complain when sizeof is used
133 with an incomplete type (fixed bug #883734)
134 * src/SDCCicode.c (geniCodeCast): fixed bug #890510
136 2004-02-07 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
138 * src/pic16/gen.c (genCmpEq, shiftRLong): fixed declarations
140 2004-02-06 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
142 * src/SDCCast.c (decorateType),
143 * src/SDCCicode.c (geniCodeParms, geniCodeCall): fixed bugs in my ANSI
144 function pointer implementation
145 * support/regression/tests/funptrs.c: added tests to verify both forms
146 of function pointers work correctly. Added tests to verify parameters
147 are passed in the correct order.
149 2004-02-06 Vangelis Rokas <vrokas AT otenet.gr>
151 * device.c (regCompare): registers are sorted by ascending
152 address and increasing size,
153 * main.c (_pic16_finaliseOptions): removed the declaration
154 of compiler macro MCU. Now a macro of the format pic18fxxxx
155 will be defined from the command line
157 2004-02-06 Hans-Juergen Dorn <hans.dorn AT apl-landau.de>
158 patch committed by Vangelis Rokas <vrokas AT otenet.gr>
160 * pcode.c (pic16initMnemonics): fixed typo in assignment to PCOP_RLNCF
161 PCOP_RLCF was overwritten!
162 * gen.c (genSkip): commented out calls to pic16_emitcode,
163 * (genCmpEQ): fixed "long" compares, only high word did get compared,
165 * (genRRC): added debugging info,
166 * (shiftL2Left2Result): Fixed bug, if offr > offl. Result got
167 overwritten while shifting,
168 * (shiftR2Left2Result): Fixed bug, if offr < offl. Result got
169 overwritten while shifting,
172 * (shiftLLeftOrResult),
173 * (shiftRLeftOrResult),
175 * (shiftLLong): Implemented with pic16_emitpcode
176 * (genlshFour): Replaced pic16_aopPut with pic16_emitpcode,
177 * (genLeftShift): Fixed bug, operand for shift by variable always
178 was "and"ed with 0x0f,
179 * (genLeftShiftLiteral),
181 * (genRightShiftLiteral): added debugging info,
182 * (genrshFour): added comment,
183 * (genRightShift): determined signedness from operand "left"
186 2004-02-04 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
188 * src/SDCCicode.c (geniCodeParms),
189 * src/SDCCast.c (decorateType, processParms): support for ANSI-style
190 function pointers, fixed function pointer bugs #861242 and #861896
192 2004-01-31 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
194 * device/include/c8051f000.h,
195 * device/include/c8051f120.h,
196 * device/include/c8051f300.h: added header files for Silicon
197 Laboratories (formerly Cygnal) CPUs. Contributed by Maarten Brock.
199 2004-01-31 Bernhard Held <bernhard AT bernhardheld.de>
201 * src/SDCCast.c (processParams): added new type flow and restructured
202 (gatherAutoInit): added new type flow
203 (addCast): cosmetic changes
204 (getLeftResultType): added new type flow for array indices, patch
205 provided by Stas, see FR #877103
206 (decorateType): SDCC_NEWTYPEFLOW removed, new type flow is now standard;
207 array index patch by Stas
208 * src/SDCCast.h: added prototype getResultTypeFromType()
210 * src/SDCCval.c (resolveIvalSym) (resolveIvalSym),
211 * src/pic/glue.c (pic14emitStaticSeg),
212 * src/pic16/glue.c (pic16emitStaticSeg),
213 * src/SDCCglue.c (emitRegularMap) (emitStaticSeg): added new type flow
214 for initialization of symbols
215 * src/SDCCicode.c (geniCodeArray): removed warning W_ARRAY_BOUND
216 * support/Util/SDCCerr.h:
217 * support/Util/SDCCerr.c: replaced W_ARRAY_BOUND by W_IDX_OUT_OF_BOUNDS
218 * .version: bumped version number to 2.3.8
219 * device/include/Makefile.in (install),
220 * doc/Makefile (install): changed to 'rm `find ...`' construct to
223 2004-01-30 Bernhard Held <bernhard AT bernhardheld.de>
225 * support/regression/tests/libmullong.c: fixed for 64 bit hosts
226 Slade Rich fixed an optimization bug
227 * src/pic/pcodepeep.c,
228 * src/pic/pcoderegs.c
229 * doc/Makefile (install): added test for directory
231 2004-01-30 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
233 * src/mcs51/ralloc.c (getRegPtr, getRegGpr),
234 * src/ds390/ralloc.c (getRegPtr, getRegGpr),
235 * src/pic/ralloc.c (getRegPtr, getRegGpr),
236 * src/pic16/ralloc.c (getRegPtr, getRegGpr),
237 * src/z80/ralloc.c (getRegGpr): fixed bug #883361
238 * as/mcs51/asexpr.c (term),
239 * as/hc08/asexpr.c (term): fixed bug #887146
241 2004-01-29 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
243 * src/z80/gen.c (genMult): handle single byte result product
244 * src/SDCCopt.c (killDeadCode): never convert ADDRESS_OF iCode to
245 DUMMY_READ_VOLATILE (fixed bug #886367)
247 2004-01-27 Bernhard Held <bernhard AT bernhardheld.de>
249 * support/regression/tests/libmullong.c: fixed logic, on little endian
250 hosts we ended without a mullong_wrapper()
252 2004-01-27 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
254 * ChangeLog: changed "@" to " AT " in hopes of reducing spam and
255 virus/worm forged address usage.
257 2004-01-27 Bernhard Held <bernhard AT bernhardheld.de>
259 Fixed promotion, it should be done on AST level:
260 * src/SDCCast.c (addCast): added promotion to int
261 (decorateType): updated call to upCast()
262 * src/SDCCicode.c (geniCodeLeftShift): removed call to
263 usualUnaryConversions()
265 2004-01-26 Michael Hope <michaelh AT juju.net.nz>
267 * support/regression/tests/literalop.c (mulWrapper): Added a
268 wrapper to remove integer overflow warnings.
270 * support/regression/tests/float_trans.c: Made work on host.
272 * support/regression/ports/ucz80/spec.mk (UCZ80): Made detect the
275 * support/regression/generate-cases.py (main): Changed from inline
278 * doc/Makefile (install): Changed to depth first to get rid of
279 missing directory install warning.
281 * as/Makefile (install-doc): Made work on Mac.
283 2004-01-25 Bernhard Held <bernhard AT bernhardheld.de>
285 * src/SDCCast.c: added an additional type flow in decorateType() of
286 opposite direction, see feature request #860006; it's enabled at runtime
287 by setting the environment variable SDCC_NEWTYPEFLOW
288 * src/SDCCast.h: changed prototype of decorateType()
289 * src/SDCCglue.c (emitRegularMap): updated call of decorateType()
290 * src/SDCCicode.c (geniCodeDivision) (geniCodeModulus): promotion from
291 'char' to 'int' can be omitted, if both operands are 'unsigned char';
292 see feature request #877103
293 * src/SDCCval.c: updated call of decorateType()
294 (valBitwise): fixed bug #882876
295 (valMinus): added promotion
296 (valLogicAndOr): result is unsigned
297 (cheapestVal) (constVal): literals from 0...255 are 'unsigned char' now
298 * src/SDCCsymt.c (computeType),
299 * src/mcs51/gen.c (genCmpGt) (genCmpLt): literal 'unsigned char'
300 must not cause an unsigned operation
301 * src/pic/glue (pic14emitRegularMap),
302 * src/pic16/glue.c (pic16emitRegularMap): updated call of decorateType()
304 2004-01-23 Bernhard Held <bernhard AT bernhardheld.de>
306 * src/pic/pcode.c (PCodeID): commented out left over debug code
308 2004-01-20 Bernhard Held <bernhard AT bernhardheld.de>
310 * support/valdiag/tests/overflow.c: added shift tests
318 * src/pic/pcodepeep.c,
319 * src/pic/pcoderegs.c,
321 * src/pic/ralloc.h: applied patch from Slade Rich;
322 added support for multiple code pages and multiple RAM banks on the
323 PIC 14 port. The ASM files now no longer simply assume all the
324 code / RAM are in the same page / bank. This means the linker can
325 safely allocate code/RAM of separate ASM files to different pages/banks.
326 * doc/sdccman.lyx: added Slade's tips
327 * src/mcs51/peeph.def: fixed bug #880768
329 2004-01-20 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
331 * src/hc08/ralloc.c (rematStr): fixed bug #879282
332 * src/SDCCast.c (decorateType): fixed bug #880197
334 2004-01-20 Michael Hope <michaelh AT juju.net.nz>
336 * sim/ucsim/gui.src/serio.src/main.cc: Fixed unconditional use of
339 * debugger/mcs51/cmd.c (getValBasic): Changed strtof to strtod as
340 strtof is not part of C89 and isn't included with Mac OS X.
342 2004-01-20 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
344 * src/hc08/gen.c (genPlusIncr, genUminus, genMinusDec, genCmp,
345 shiftL2Left2Result): fixed bug #879326
346 (genAnd, genOr, genXor): fixed bug when result was of type AOP_CRY
347 (genMultOneByte): fixed bug in signed vs unsigned multiplication
348 * sim/ucsim/hc08.src/inst.cc (inst_clr): added missing effective
349 address fetch for clr instruction
350 * device/lib/hc08/_mulint.c: created optimized assembly version
351 * src/SDCCdflow.c (computeDataFlow): fixed bug #878209
353 2004-01-19 Bernhard Held <bernhard AT bernhardheld.de>
355 * src/SDCCicode.c (geniCodeArray): applied patch from Stas Sergeev
356 proposed in FR #877103
358 2004-01-18 Bernhard Held <bernhard AT bernhardheld.de>
360 * src/SDCCval.c (cheapestVal): added missing checks
361 * src/SDCCicode.c (usualBinaryConversions): fixed condition
362 * src/SDCCicode.c (geniCodeAdd): fixed part of bug #877103
364 2004-01-16 Klaus Flittner <klaus_flittner AT gmx.de>
366 * src/ds390/gen.c (aopOp3): fixed the assignment of different dptrs to
369 2004-01-16 Vangelis Rokas <vrokas AT otenet.gr>
371 * src/SDCCmain.c (linkEdit): variable $3 of the linker command is
372 loaded with the linker search paths (-L arguments) and the libraries
373 to be linked with the current source (-l arguments). Changes
374 currently will affect only the pic16 port.
375 * src/pic16/main.c (_pic16_finaliseOptions): add to the linker
376 include path the port specific paths and port specific libraries,
377 * gplink command now contains the $3 argument,
378 * src/pic16/device.h,
379 * src/pic16/device.c,: structure PIC_device is made public and
380 renamed to PIC16_device, the same for variable Pics which is renamed
381 to Pics16. Updated all references to them.
382 * src/pic16/glue.c (pic16glue): corrected bug with code
383 initialization which bypassed the variable initializations block.
385 * device/lib/pic16/Makefile.rules: removed --penable-stack from
386 COMPILE_FLAGS and added the --nostdinc option
388 2004-01-15 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
390 * device/include/mc68hc908jb8.h: Register defs for another member
391 of the hc08 family. Contributed by Bjorn Bringert - thanks!
393 2004-01-14 Vangelis Rokas <vrokas AT otenet.gr>
395 Documenting changes from previous commits.
396 * configure.in (version 1.56),
397 * configure: initially I've added AC_CONFIG_SUBDIRS(device/lib/pic16)
398 when generating output files to configure the pic16 library,
399 but now I've commented it out, since gputils aren't installed in the
400 SF compile farm, so library won't compile
402 * device/lib/Makefile.in (version 1.56): initially I've added in
403 target 'all' the prerequestive 'model-pic16' so it compiled the
404 pic16 library, but now I've commented it out for the same reasons
406 * added targets 'model-pic16' and 'objects-pic16' to compile the
408 * added target 'port-specific-objects-pic16' to handle the
409 generated libraries and copy them into the build/ directory
410 * added target 'clean-intermediate-pic16' to clean intermediate
411 files into pic16 directory
412 * in target 'installdirs' added line to create directory pic16 in
413 the installation path
415 * device/include/Makefile.in (version 1.11): in target 'install'
416 added lines to copy all header files to installation path,
417 * in target 'installdirs' added line create directory for pic16
418 headers in the installation path
420 2004-01-13 Klaus Flittner <klaus_flittner AT gmx.de>
422 * src/ds390/gen.c (genCall): fixed a double use of acc and b after
425 2004-01-13 Bernhard Held <bernhard AT bernhardheld.de>
428 * device/lib/configure.in,
429 * device/lib/configure: fixed for autoconf 2.57
431 2004-01-13 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
433 * src/z80/main.c (_parseOptions): fixed the portmode= command line
434 option so that it actually works. Made it specific to the z80, since
435 the gbz80 doesn't have these kinds of I/O ports.
437 2004-01-13 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
439 * device/include/z180.h,
440 * device/lib/_memcpy.c,
441 * device/lib/_memmove.c,
442 * device/lib/_mulint.c,
443 * device/lib/ser_ir.c,
444 * device/lib/ser_ir_cts_rts.c,
445 * device/lib/_strcmp.c,
446 * device/lib/_strtok.c: fixed pragmas to non-deprecated form
447 * src/z80/main.c (_process_pragma): add support for pragmas bank and
448 portmode; added deprecation warning for bank= and protmode= forms.
449 Also, guard against buffer overflow.
450 * src/z80/gen.c (aopGet): generate better code for sfr banked read
452 2004-01-13 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
454 * src/hc08/main.c (_hc08_genAssemblerPreamble): fixed bug #875487. Also
455 changed interrupt vector table generation to only emit declared vectors.
456 * device/include/Makefile.in: added missing backslash
457 * device/lib/pic16/Makefile.rules: add $(MODELFLAGS) to $(CFLAGS)
459 2004-01-13 Vangelis Rokas <vrokas AT otenet.gr>
461 Mainly changes to support compilation of the device libraries
462 * src/pic16/device.c: stack is allocated via symbol and not
463 via literal number. The symbol is placed in the corresponding
464 position of the data ram
465 * (pic16_dump_section): relocatable and absolute uninitialized
466 data are now emitted in sorted order to reduce section naming,
467 * src/pic16/ralloc.c (newReg): fixed bug with SFR's that
468 weren't marked as being in the access bank,
470 2004-01-13 Vangelis Rokas <vrokas AT otenet.gr>
472 Added portion of GNU PIC Library under the directory
473 device/include/pic16 and device/lib/pic16. These files
474 contain the declarations of SFRs for the PIC18Fxx2 devices.
475 The directory is initialized via configure from toplevel.
477 2004-01-12 Klaus Flittner <klaus_flittner AT gmx.de>
479 * src/ds390/gen.c (operandsEqu): fixed a little typo, that prevented
480 the spilllocations to be compared correctly
482 2004-01-12 Bernhard Held <bernhard AT bernhardheld.de>
484 * src/SDCCast.c (decorateType): fixed bug introduced today
486 2004-01-12 Borut Razem <borut.razem AT siol.net>
488 * src/SDCC.lex, support/Util/SDCCerr.h, support/Util/SDCCerr.c,
489 doc/sdccman.lyx: upper case pragmas are deprecated
491 2004-01-12 Bernhard Held <bernhard AT bernhardheld.de>
493 * src/SDCCast.c (decorateType): replacing 'ul > 0' by '!ul' results
494 in simpler and even better code
496 2004-01-11 Bernhard Held <bernhard AT bernhardheld.de>
498 * src/SDCCicode.c (operandOperation): fixed bug #874819
499 * src/SDCCast.c (decorateType): fixed
500 char foo (unsigned long ul) { return ul > 0; }
502 2004-01-11 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
504 * doc/sdccman.lyx: Moved and added some sections, small changes
505 all over. Telling LaTeX to be less strict with word spacing
506 to better keep the right margin. Changed some notes about
507 maintainance of the ports in section 3.2.1 - is it OK like this?
509 2004-01-11 Vangelis Rokas <vrokas AT otenet.gr>
512 * src/SDCCopt.c (cntToFcall, cnvToFloatCast, cnvFromFloatCast,
513 convilong): modified to inform the pic16 port that builtin functions
516 PIC16 PORT specific changes:
517 * src/pic16/device.c pic16_dump_equates() added,
518 processor registers declared internally by the port are emitted in
519 the translation as equates,
520 * src/pic16/gen.c: inline code is passed unprocessed to the
522 * (pic16_popGetLit2): fnuction modified to take second operand as
523 pCodeOp pointer and not as literal,
524 * (popRegFromIdx): prefixed with pic16_,
525 * (pic16_popCombine2): modified to receive already allocated pCode
527 * (pic16_pushpCodeOpReg, pic16_poppCodeOpReg): added
528 * (genFunction): initializes local stack frame and pushes on stack
529 all the registers used by this function,
530 * (genEndFunction): restores all registers from stack and restores
532 * src/pic16/glue.c (pic16emitRegularMap): various changes and
534 * (pic16glue): changed the program startup sequence,
535 * added new dbName code 'A' for functions placed in absolute section
536 * src/pic16/main.c: added function attribute _naked,
537 * added pragma 'code' to place a fnuction at an absolute address,
538 * added command line arguments --debug-ralloc and --pcode-verbose,
539 * (_pic16_finiliseOptions): options.all_callee_saves is set by default
540 * src/pic16/pcode.c (pic16_pBlockConvert2Absolute) added,
541 * (pic16_newpCodeOpLit2): modified to take the second operand as
543 * (pic16_printpBlock): modified to emit each function in a separate
545 * (pic16_get_op): modified to use the gpasm modifiers LOW,HIGH and
546 UPPER for immediate operands,
547 * src/pic16/pcodepeeph.c: added peephole support for the LFSR
549 * src/pic16/peeph.def: all peepholes with movff are commented out,
550 because there is a problem in the pcode peep optimizer,
551 * src/pic16/ralloc.c: the register allocator can now reuse local
552 function symbols for another function. This saves register usage.
553 * src/pic16/ralloc.h: added flag isLocal in structure regs,
555 Added file src/pic16/NOTES with information about program writing on
556 the current port version.
558 2004-01-11 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
560 * src/mcs51/peephole.def: added peepholes 177.c,d (redundant moves)
561 and peephole 252 (array access)
563 2004-01-09 Borut Razem <borut.razem AT siol.net>
565 * src/SDCCmain.c : fixed #872250: -l command line defined library
566 files are scanned before standard library files
568 2004-01-10 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
570 * src/SDCCast.c (decorateType): fixed bug #874046
572 2004-01-09 Borut Razem <borut.razem AT siol.net>
574 * support/scripts/sdcc.nsi: remove previous installation
576 2004-01-09 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
578 * src/SDCCglue.c (createInterruptVect): don't append 7(5) padding
579 bytes for last interrupt vector (mcs51)
580 * sdcc.spec: fixed typo
582 2004-01-09 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
584 * src/mcs51/gen.c (genFunction, genEndFunction, genReceive, getTempRegs,
585 gen51Code): more efficient parameter receive for --model-large
588 2004-01-09 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
591 * src/z80/main.c: added missed needLinkerScript flags (more than
592 one port structure defined in these file)
593 * src/ds390/gen.c (aopForSym, aopOp, operandsEqu, aopOp3): fixed
596 2004-01-08 Vangelis Rokas <vrokas AT otenet.gr>
598 * src/SDCCmain.c: removed various references to DEFAULT_PORT
599 * src/port.h: added flag needLinkerScript in port->linker
600 structure to inform whether to create a .lnk file or not,
608 * src/z80/main.c: changed appropriately to configure
609 needLinkerScript flag
611 * src/pic16/gen.c (genAddrOf): fixed bug #863624
612 * src/pic/glue.c: added variable udata_section_name to
613 override default uninitialized data segment definition for
614 devices only with SHAREBANK memory (reported from Erik Epetrich)
615 * (pic14emitOverlay): modified to emit a commented overlay segment
616 directive when no overlay data exist
617 * (picglue): modified to emit uninitialized data segment
618 according to udata_section_name
619 * src/pic/main.c (_pic14_parseOptions): added command line
620 options --udata-section-name=[name] to override default
621 udata definition name
622 * modified _linkCmd and _asmCmd to include compiler passed
623 arguments via -W option
624 * src/pic16/main.c: added $l in _asmCmd, changed extension for
625 object file from '.rel' to '.o' in port->linker structure,
626 changed size of fptr from 2 to 3 in port structure
628 2004-01-07 Borut Razem <borut.razem AT siol.net>
630 * support/scripts/sdcc.nsi: update PATH
631 * support/scripts/sdcc.ico: craeted
633 2004-01-07 Bernhard Held <bernhard AT bernhardheld.de>
635 * device/include/Makefile.in: fix install
636 * doc/Makefile: fix install
638 2004-01-07 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
640 * src/SDCCsymt.c (processFuncArgs): fixed superflous allocation noted
642 * src/SDCCmem.c (printAllocInfoSeg, printAllocInfo): minor changes to
643 how the function variable allocation summary is displayed; also
644 include information about variables allocated to the overlay
647 2004-01-06 Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
649 * as/mcs51/lkmain.c: Help about -Y option
650 * as/mcs51/lkarea.c: Fixed gcc warnings
652 2004-01-06 Bernhard Held <bernhard AT bernhardheld.de>
654 * src/SDCCval.c (valShift): changed from 16 to 32 bit shift count,
656 * support/valdiag/tests/overflow.c: added
657 * src/SDCCast.c (decorateType),
658 * src/SDCCicode.c (geniCodeLeftShift): added promotion to int for
661 2004-01-06 Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
663 * as/mcs51/lkmain.c: stack must be after data when option -Y is not used
666 2004-01-06 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
668 A python script to validate compiler diagnostic messages. It can be
669 used to verify that sdcc complains about bad c source code and
670 gives a good location of the error.
671 * support/valdiag/Makefile,
672 * support/valdiag/valdiag.py,
673 * support/valdiag/tests/*
675 2004-01-06 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
677 * src/SDCC.y (enum_specifier, enumerator_list, opt_assign_expr),
678 * src/SDCCsymt.c (newEnumType),
680 * support/Util/SDCCerr.c,
681 * support/Util/SDCCerr.h: fixed bug #871258 and some other unreported
683 * support/regression/tests/enum.c: added test for enum values that
684 require at least 2 bytes of storage.
686 2004-01-06 Vangelis Rokas <vrokas AT otenet.gr>
688 * src/common.h: added ifndef/define/endif macros
689 around the header file.
690 Bug reported from Jesus Calvino-Fraga
692 2004-01-06 Bernhard Held <bernhard AT bernhardheld.de>
695 * device/include/Makefile.in: don't install CVS directories
696 * device/lib/Makefile.in: added removal of CVS directories after install
697 * doc/Makefile: fixed install, added local_icons
698 * sim/ucsim/gui.src/Makefile.in: fixed an old typo
699 * src/mcs51/gen.c (genRightShift): fixed bug #870788
700 * src/ds390/gen.c (genRightShift): fixed bug #870788
701 * src/SDCCast.c (decorateType): fixed bug #870781
703 2004-01-06 Vangelis Rokas <vrokas AT otenet.gr>
705 PIC16 port related changes:
706 * device.c: removed pic16_finalMapping and pic16_finalMappingSize,
707 added variable stackPos,
709 * gen.c: genCall, assignResultValue: added support for
710 pushing/retrieving function parameters to/from stack,
711 genFunction,genEndFunction: setup stack frame for the
713 genAddrOf: will be changed according to bug 863624
715 * added files genutils.c and genutils.h which contain gen*
716 debugged and optimised functions extracted from gen.c
718 * glue.c: added variable 'externs' which holds extern symbols,
719 pic16emitRegularMap: is modified to properly handle relocatable
720 symbols under the new scheme,
721 pic16createInterruptVect: is modified
722 pic16printPublics: is modified to emit 'global' assembler directives,
723 added pic16_printExterns to print extern symbols,
724 pic16glue: initializes stack/frame pointer in the beginning of
725 the assembly output. Temporary hack, will be corrected later,
726 because gplink yet does not support stack and SDCC does not
727 yet support a type of crt0.o object to create the final binary.
729 * Removed many lines that contain 8051 legacy code.
730 * The code is finally placed under a 'code' directive.
731 * Added port specific options.
733 * _process_pragma: simplified since now we do not need *special*
734 include file to define SFR registers. But a separate header
735 will be needed. This will be developed later.
736 * _pic16_parseOptions: added, parses port specific options:
737 --pgen-banksel, --obanksel=, --pomit-config-words, --pomit-ivt,
738 --pleave-reset-vector, --penable-stack, --pstack-model, --debug-xtra
739 --preplace-udata-with=
741 * _pic16_setDefaultOptions: modified to initialize section names,
742 but hack is temporarly out of order since it needs improvement.
743 * _pic16_genAssemblerPreamble: configuration words are emitted by
744 their address instead of their name. This part is incomplete and
745 supports only the 18Fxx2 devices. Other devices will emit an error
746 during assembly since they do not contain the same set of config
748 * _pic16_genIVT: is modified,
750 * pcode.c: added definitions for some hardware registers that are needed
752 * added flag is2LitOp and variable pci_magic in pCodeInstruction.
753 All PCI entries are updated. Now LFSR is supported.
754 * Removed pic16_pciTRIS is mentioned by mdubuc in source
755 * added pic16_newpCodeOpLit2 to support instructions with
756 two literal arguments
757 * pic16_pCode2str: corrected code that emits assembler instructions
758 with two literal operands and those that have an access bit modifier
759 * genericPrint: now PC_ASMDIR pCodes, can emit a label if it exists,
760 this fixes a bug which caused some labels to be lost, when an
761 assembler directive was added, i.e. banksel,
762 * pic16_FixRegisterBanking: improved logic that causes the insertion
764 * InlineFunction: functions that are called once, are not any more
765 inlined. This can be a port option in the future,
767 * pcode.h: added pCodeOpLit2 and added variable label in pCodeAsmDir
769 * ralloc.c: added pic16_rel_udata and pic16_fix_udata variables which
770 hold the corresponding uninitialized symbols,
771 * pic16_allocProcessorRegister: registers have explicit marked the
773 * pic16_allocInternalRegister: registers are explicit marked as
775 * pic16_writeUsedRegs: pic16_dynDirectBitRegs was missing from the
776 processing list, so bit registers were lost,
779 * ralloc.h: added field 'accessBank' and original symbol operand
780 in register definition,
781 * removed the field isMapped from register definition,
783 ** Several functions have been removed from various sources:
784 BanksUsedFlow2,BanksUsedFlow,FixBankFlow,InstructionRegBank,
785 pic16_addMemRange,pic16_isREGinBank,pic16_dump_map,pic16_dump_cblock
786 isSFR,validAddress,mapRegister,assignRegister,pic16_assignFixedRegisters
787 pic16_assignRelocatableRegisters
789 ** others have been introduced:
790 pic16_areRegsSame,pic16_dump_section,checkAddReg,pic16_groupRegistersInSection
791 pic16_popGetLit2,pic16_popCombine2,pushw,pushaop
793 2004-01-05 Vangelis Rokas <vrokas AT otenet.gr>
795 * support/scripts/inc2h.pl: changed definition of BIT_AT
796 to emit 'sbit at' instead of 'bit at'. This was a request.
798 PIC16 port related preliminary changes:
799 * gen.c: prefixed function popRegFromString with
800 pic16_ and all references to it corrected
801 * pcode.c: all pic16_pc_* hardware registers prefixed
803 pic16_popCopyGPR2Bit(): function sets register wasUsed=1
804 * ralloc.c: newReg(): when register is REG_SFR then
806 pic16_allocProcessorRegister(): marks register wasUsed=0
807 pic16_writeUsedRegs(): added a call to assign processor
808 registers via pic16_assignFixedRegisters
810 2004-01-04 Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
812 * as/mcs51/aslink.h, as/mcs51/lkarea.c, as/mcs51/lkdata.c,
813 as/mcs51/lkmain.c, as/mcs51/lkmem.c: 8051 linker can now pack
814 variables in unused register banks. Also the SSEG is placed
815 wherever there is enough space for it, and IDATA can be anywhere
816 in internal RAM. For now compile using -Wl-Y[stack_size].
817 The mem file is different for this option as well, since it
818 makes no sense of talking about DSEG lenght.
820 2004-01-02 Vangelis Rokas <vrokas AT otenet.gr>
822 * src/SDCClrange.c: fixed bug 869095 that caused segfault
823 in certain cases, e.g. when ROM assignment, patch provided
824 from Albert den Haan.
826 2004-01-01 Bernhard Held <bernhard AT bernhardheld.de>
828 Many signedness and type propagation fixes:
829 * src/SDCCicode.c: made geniCodeCast() static
830 replaced SPEC_ by IS_ (cosmetic)
831 (operandOperation): fixed div and mod operation
832 (usualBinaryConversions): added support for promotion of char
833 (geniCodeMultiply): replaced (unsigned long) by (TYPE_UDWORD)
834 (geniCodeDivision): replaced (unsigned long) by (TYPE_UDWORD)
835 (geniCodeAdd): an array index will stay unsigned, even if promoted
837 (geniCodeArray): ditto
838 * src/SDCCicode.h: made geniCodeCast() static: removed prototype
839 * src/SDCCsymt.c (computeType): added more support for char;
840 promotion of char is selectable by promoteCharToInt, fixed signedness
842 (powof2): replaced (unsigned long) by (TYPE_UDWORD)
843 * src/SDCCsymt.h (powof2): replaced (unsigned long) by (TYPE_UDWORD)
844 * src/SDCCval (val*): replaced signedness calculation by
846 rearranged if-branches (cosmetic)
847 (valShift): added warning W_SHIFT_CHANGED
848 (valCompare): fixed problem with different types
849 * src/hc08/rallo.c (leastUsedLR): fixed gcc 3.3 warning
850 * support/regression/tests/literalop.c: added many cases
851 * support/regression/tests/ast_constant_folding.c: changed finally to
853 * .version: new year, new version: 2.3.7
854 * src/SDCCmain.c (main): applied patch #866468
855 * debugger/mcs51/sdcdb.c (parseCmdLine): added -k for ucsim, patch
856 provided by Scott Bronson
857 * doc/sdccman.lyx: updated documentation for sdcdb
858 updated and added chapter tips
860 2004-01-01 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
862 * src/SDCCsymt.h: missing from yesterday's commits
864 2003-12-31 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
866 * src/SDCC.y (struct_or_union_specifier),
867 * support/Util/SDCCerr.c,
868 * support/Util/SDCCerr.h: verify that struct & union tags are used
871 2003-12-29 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
873 * src/SDCCglobl.h: missing from yesterday's commits
875 2003-12-28 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
877 * src/SDCC.y (external_definition, type_specifier2, sfr_reg_bit,
878 sft_attributes, struct_declaration, parameter_declaration,
879 type_name, start_block, declaration_list),
880 * src/SDCC.lex (check_type): support redefinition of typedef names
882 2003-12-22 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
884 * src/mcs51/gen.c (genPlus): added special handling for 256 byte
885 aligned xdata arrays. Erik helped me with the if clause.
887 2003-12-20 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
889 * device/lib/ds390/tinibios.c (CpuSpeed): suppress unreachable code
892 2003-12-20 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
895 * src/SDCCast.c (newAst_),
897 * src/SDCCicode.c (ast2iCode, newiCode),
899 * src/SDCC.y (logical_and_expr, logical_or_expr, conditional_expr,
900 expr, statement, expression_statement, selection_statement,
901 iteration_statement, expr_opt, jump_statement): foundation for tracking
903 * src/SDCCopt.c (killDeadCode): fixed bug #861580 (needs the sequence
906 2003-12-19 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
908 * support/Util/SDCCerr.c,
910 * src/SDCCast.c (createCase, createDefault, decorateType),
911 * src/SDCClabel.c (labelUnreach),
912 * src/SDCC.y (labeled_statement, jump_statement): More improvements
914 * support/Util/SDCCerr.c (werrorfl): fixed a non-standard declaration
915 (with thanks to Stas Sergeev)
916 * device/include/time.h,
917 * device/lib/time.c (CheckTime): suppress unreachable code warning
919 2003-12-18 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
921 * src/SDCCast.c (createIvalCharPtr),
922 * src/SDCCglue.c (printChar): fixed bug #862241 (an error in my fix for
924 * support/regression/tests/nullstring.c: tests for these two bugs
926 2003-12-18 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
928 * support/Util/SDCCerr.h,
929 * support/Util/SDCCerr.c (E_NOT_ALLOWED),
930 * src/SDCC.y (struct_declaration, struct_or_union_specifier): complain
931 about storage class and 'at' used inside struct or union
932 * src/SDCCBBlock.c (iCodeFromeBBlock),
933 * src/SDCCcse.c (ifxOptimize),
934 * src/SDCCglue.c (emitRegularMap, initPointer, printIvalStruct,
935 printIvalArray, printiValFuncPtr, printIvalCharPtr, printIvalPtr,
936 printIval, emitStaticSeg, emitOverlay),
937 * src/SDCClabel.c (deleteIfx),
938 * src/SDCCopt.c (replaceRegEqv, eBBlockFromiCode),
939 * src/SDCCast.c (resolveSymbols, createIvalStruct, createIvalArray,
940 gatherAutoInit, processParms),
941 * support/Util/SDCCerr.h,
942 * support/Util/SDCCerr.c (werrorfl): Support for better error location
943 reporting for post-parse errors.
945 2003-12-16 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
947 * src/SDCCval.c (valPlus, valMinus, valShift): fixed some problems with
948 implicit casts via union; they don't work on big endian systems
949 (possible fix for bug #861138)
951 2003-12-16 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
953 (committed by Erik Petrich <epetrich AT ivorytower.norman.ok.us> on Frieder's behalf)
954 * src/mcs51/main.c: fixed the fix for bug #737001
956 2003-12-15 Borut Razem <borut.razem AT siol.net>
958 * support/scripts/sdcc.nsi: updated for NSIS 2.0 beta 4
960 2003-12-14 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
962 * support/makebin/makebin.c: put output in binary mode
964 2003-12-13 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
966 * src/mcs51/main.c: fixed bug #737001 for the mcs51. SDCC clears
967 xdata and data memory on startup. Set the environment variable
968 SDCC_NOGENRAMCLEAR to disable this.
969 * src/mcs51/peephole.def,
970 * src/ds390/peephole.def: using the atomic test and clear instruction jbc
971 (allows non-interrupt and interrupt code to safely compete for a resource
972 without the non-interrupt code having to disable interrupts)
974 2003-12-13 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
976 * src/SDCCicode.c (geniCodeAdd),
977 * src/SDCCast.c (decorateType): fixed bug #857753 (need to be careful
978 with valFromType if type might be a pointer and host is big endian).
979 * src/SDCCast.c (decorateType): unary plus compatible with all arithmetic
980 types, not just integer types.
981 * src/SDCCsymt.c (addSymChain): clarified error message when symbol is
982 multiply defined with mismatching "at" address.
984 2003-12-12 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
986 * src/ds390/main.c (PORT tininative_port): fixed bug #858416
987 * src/SDCCglue.c (printChar, printIvalChar, emitStaticSeg),
988 * src/SDCCast.c (createIvalCharPtr, stringToSymbol): handle strings
989 with embedded nulls (fixed bug #753752)
991 2003-12-12 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
993 * src/mcs51/main.c(_mcs51_genRAMCLEAR): using r0 instead of r1/r2.
994 Apparently this did not see much testing (endless loop)
996 2003-12-11 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
998 * src/z80/ralloc.c: set DISABLE_PACK_HL = 1 as a temporary fix to bug #855165
1000 2003-12-10 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
1002 * src/SDCCdebug.c (outputDebugSymbols, outputDebugStackSymbols, dumpSymInfo):
1003 gracefully handle NULL memmap pointers
1005 2003-12-08 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
1007 * src/SDCCopt.c (killDeadCode): change iCode type to DUMMY_READ_VOLATILE
1008 instead of deleting the iCode when an operand is volatile
1009 * src/z80/gen.c (genDummyRead),
1010 * src/mcs51/gen.c (genDummyRead),
1011 * src/ds390/gen.c (genDummyRead),
1012 * src/hc08/gen.c (genDummyRead): handle operands in IC_LEFT and/or IC_RIGHT,
1014 * src/SDCCicode.c (geniCodeCall): fixed bug #851607
1015 * src/SDCC.y: fixed bug #850420
1017 2003-12-05 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
1019 Applied z80 i/o port patch from Peter Townson and fixed some operators
1020 to better handle operands in A register.
1021 * device/include/z180.h
1027 * src/z80/peeph-z80.def
1031 2003-12-03 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
1033 * src/SDCCsymt.c (addSymChain, compareTypeExact): fixed bug #838241 again
1035 2003-12-01 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
1037 * device/lib/hc08/_mullong.c: Removed extra #endif
1039 2003-12-01 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
1041 * sim/ucsim/hc08.src/inst.cc,
1042 * sim/ucsim/hc08.src/hc08mac.h: fixed some problems with CC flag bits and
1044 * src/hc08/gen.c (aopAdrStr): fixed problem with 16 bit immediate
1045 * src/hc08/gen.c (XAccRsh): fixed problem with right shift
1046 * device/include/stdarg.h: fixed varargs for hc08
1047 * device/lib/Makefile.in,
1048 * device/lib/hc08/Makefile,
1049 * device/lib/hc08/_mulint.c,
1050 * device/lib/hc08/_mullong.c: fixed some endian problems
1052 2003-11-28 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
1054 * sdcc/src/mcs51/gen.c (genMultOneByte): help peephole 105
1055 * sdcc/src/mcs51/peeph.def: added peephole 186.e array access in code space
1056 * device/lib/_gptrget.c,
1057 * device/lib/_gptrput.c: P2 not used any more (related to #850747, #785979)
1059 2003-11-27 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
1061 * src/SDCClrange.c (findNextUseSym, rlivePoint): fixed bug #849795
1062 * src/SDCCast.c (astErrors): fixed bug #846007
1063 * src/SDCCsymt.c (checkFunction): fixed follow-up bug on bug #846007
1065 2003-11-26 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
1067 * src/SDCCast.c (decorateType): disabled a transformation I added in
1068 revision 1.188 (access to fields of a structure at an absolute address);
1069 it breaks with bitfields, extern declarations, and gcse analysis.
1070 * src/SDCCopt.c (isLocalWithoutDef): if ADDRESS_OF applied to a symbol, it
1071 could be assigned through a pointer, so don't complain.
1072 * src/SDCCast.c (astErrors),
1074 * src/SDCCglue.c (emitRegularMap): fixed bug #847813
1076 2003-11-26 Vangelis Rokas <vrokas AT otenet.gr>
1078 * src/pic16/main.c (_pic16_genIVT): fixed interrupt vector table
1079 * src/pic16/main.c (_pic16_genAssemblerPreamble): re-enabled the
1080 output of __config directives, since gpasm now supports them
1081 * src/pic16/main.c (_pic16_finaliseOptions): define MCU
1082 pre-processor macro, i.e. -DMCU=p18f452
1083 * src/pic16/ralloc.c: renamed packRegisters to pic16_packRegisters,
1084 and modified to handle 'cast' icode similarly to '=' icode
1085 * src/pic16/device.h (typedef struct PIC_device): added field
1086 'extMIface' to indicate that chip has external memory interface
1087 * src/pic16/device.c: added chips 18F248, 18F258, 18F448, 18F458,
1088 18F6520, 18F6620, 18F6680, 18F6720, 18F8520, 18F8620, 18F8680,
1091 2003-11-26 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
1093 * src/SDCC.y (pointer): fixed bug #846006
1094 * support/Util/SDCCerr.c: made W_PTR_TYPE_INVALID message clearer
1095 * src/SDCCast.c (decorateType): fixed bug #846009
1096 * src/ds390/peeph.def,
1097 * src/ds390/gen.c (genAnd, genOr),
1098 * src/mcs51/peeph.def,
1099 * src/mcs51/gen.c (genAnd, genOr): fixed bug #846777
1101 2003-11-25 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
1103 Fixed several common-sub-expression bugs (#772861, #768380, & #755323)
1110 2003-11-23 Klaus Flittner <klaus_flittner AT gmx.de>
1114 * src/SDCCbitv.c: added function to free a bitvector
1116 * src/SDCClrange.c: added function to recompute the liveranges
1118 * src/ds390/ralloc.c,
1119 * src/hc08/ralloc.c,
1120 * src/mcs51/ralloc.c,
1122 * src/pic16/ralloc.c,
1123 * src/xa51/ralloc.c,
1124 * src/z80/ralloc.c: recompute the liveranges after register packing
1126 2003-11-21 Klaus Flittner <klaus_flittner AT gmx.de>
1128 * src/SDCCloop.c (newInduction): fixed bug #845630
1130 2003-11-21 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
1132 * src/SDCCsymt.c (compareTypesExact): disabled debugging output
1133 inadvertantly left behind from my 2003-11-12 change
1135 2003-11-20 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
1137 Updated headers I neglected to commit yesterday.
1141 2003-11-19 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
1143 * src/SDCCcse.c (algebraicOpts): fixed bug #773153
1144 * src/SDCClrange.c (rlivePoint): need to mark IC_RESULT used if POINTER_SET op
1145 * src/SDCCopt.c (eBBlockFromiCode),
1146 * src/SDCClrange.c (hashiCodeKeys, sequenceiCode, computeLiveRanges): seperated
1147 the creation of the key hash table from the sequencing so it can be used
1148 earlier (for some GCSE bug fixes still pending)
1150 2003-11-15 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
1152 * src/mcs51/gen.c (genPlus): generate shortcut for adding 0xab00
1153 * support/regression/tests/addsub.c: testing genPlus shortcut
1155 2003-11-15 Borut Razem <borut.razem AT siol.net>
1157 * src/SDCCmain.c: fixed bug #841645: -MM command line option passed to sdcpp
1159 2003-11-15 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
1161 * src/SDCCcse.c (cseBBlock): fixed bug #527779
1162 * src/SDCCcse.c (deleteGetPointers): rewrote so that the set
1163 ordering is immaterial.
1164 * src/SDCCdflow.c (mergeInExprs): fixed bug #587536
1166 2003-11-14 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
1168 * src/SDCCicode.c (geniCodeAddressOf): fixed part of bug #840381
1169 * src/SDCCopt.c (replaceRegEqv, isLocalWithoutDef): fixed other part
1170 (SIGSEV) of bug #840381
1171 * src/SDCCmain.c (linkEdit, assemble): fixed bug #841606 (don't
1172 unlink new file before rename if new and old filenames are the same)
1174 2003-11-13 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
1176 * src/mcs51/main.c: started fixing bug #737001 (SDCC not clearing
1177 uninitialized variables) for the mcs51. Set environment variable
1178 SDCC_GENRAMCLEAR to test.
1179 xdata initialization slightly shorter
1181 2003-11-12 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
1184 * src/SDCCsymt.c (addSymTypeChain, compareTypesExact): fixed bugs
1185 #838241 & 780691 (basicly the same bug)
1186 * src/SDCCBBlock.c (iCode2eBBlock): fixed bug #840148
1187 * src/SDCCBBlock.c (iCodeFromeBBlock): fixed bug #840162
1189 2003-11-11 Bernhard Held <bernhard AT bernhardheld.de>
1191 * src/SDCCmain.c (linkEdit): "fix" #834252
1193 2003-11-11 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
1195 * src/SDCCast.c (removePostIncDecOps, removePreIncDecOps),
1197 * src/SDCC.y: fixed bug #819403
1199 2003-11-08 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
1201 * support/regression/fwk/lib/testfwk.c: printn is recursive and thus needs
1202 the reentrant attribute.
1203 * src/hc08/gen.c (genPackBits): added missing stack readjustment
1204 * sim/ucsim/hc08.src/inst.cc (inst_mov): fixed bugs with mov instruction
1206 * src/SDCCast.c (decorateType): fixed bug with storage class not being
1207 updated during pointer dereference; f.e. ~(((char *)1)*) was being
1208 erroneously reduced to a literal.
1209 * src/hc08/ralloc.c (packRegisters, rematStr),
1210 * src/hc08/gen.c (aopForRemat): allow literals to be rematerialized in
1213 2003-11-08 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
1215 * src/mcs51/main.c: fixed bug #838385. Thanks to Josef Pavlik for finding and fixing
1216 * doc/sdccman.lyx: changed from 'article' to 'book'
1217 * doc/Makefile: readded test_suite_spec and cdbfileformat
1219 2003-11-08 Bernhard Held <bernhard AT bernhardheld.de>
1221 * device/include/stdlib.h: include malloc.h to comply with ANSI
1222 * support/regression/tests/malloc.c: include stdlib.h instead of malloc.h
1224 2003-11-07 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
1226 * doc/Makefile: sdccman.pdf should build with correct references (more info in commit msg)
1227 * doc/clean.mk: also remove *.out files
1228 * doc/sdccman.lyx: some additions, larger top/bottom margins
1230 2003-11-07 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
1232 * src/SDCC.y: fixed bug #837365
1233 * support/regression/tests/bitopcse.c
1234 * src/hc08/gen.c (genPointerGet): Don't assume pointer operand is
1235 a symbol (might be valop instead)
1236 * device/lib/Makefile.in: added errno.c to HC08SOURCES
1237 * device/lib/clean.mk: added hc08 to the cleaning list
1239 2003-11-04 Borut Razem <borut.razem AT siol.net>
1241 * configure, configure.in, sdcc_vc_in.h, sdcconf_in.h: reverted changes,
1243 * support/Util/NewAlloc.c, as/hc08/lklibr.c, as/mcs51/lklibr.c,
1244 as/z80/aslist.c, as/z80/assym.c: removed inclusion of nonstandard malloc.h;
1245 malloc is declared in standard stdlib.h
1247 2003-11-06 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
1249 * device/lib/hc08/Makefile: need to clean .rel not .o files
1250 * src/hc08/gen.c (genDjnz): can't use djnz with extended addressing mode
1252 2003-11-06 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
1262 * src/xa51/main.c: added hasExtBitOp & oclsExpense functions to ports
1263 * src/SDCCicode.c: changed several IS_FARSPACE tests to isOclsExpensive
1264 tests (which uses the port's oclsExpense function)
1270 * src/mcs51/gen.c: added support for the SWAP iCode (RFE #834167)
1272 2003-11-04 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
1274 * src/SDCCcse.c (ifxOptimize),
1275 * src/SDCClabel.c (labelIfx, deleteIfx): When the condition to
1276 an IFX iCode is volatile, convert to DUMMY_READ_VOLATILE instead
1277 deleting the IFX iCode.
1278 * src/hc08/ralloc.c: reduced unneeded slocs
1279 * src/hc08/gen.c: fixed bug in asmopToBoolean
1281 2003-11-04 Borut Razem <borut.razem AT siol.net>
1283 * configure, configure.in, sdcc_vc_in.h, sdcconf_in.h,
1284 support/Util/NewAlloc.c, as/hc08/lklibr.c, as/mcs51/lklibr.c,
1285 as/z80/aslist.c, as/z80/assym.c: decision to include malloc.h
1286 transferred to configure
1288 2003-11-03 Bernhard Held <bernhard AT bernhardheld.de>
1290 Use headers defined in the C[++] standards:
1291 * sim/ucsim/gui.src/serio.src/fileio.cc
1292 * sim/ucsim/gui.src/serio.src/frontend.cc
1293 * sim/ucsim/gui.src/serio.src/main.cc
1294 * sim/ucsim/gui.src/serio.src/posix_signal.cc
1295 * support/Util/NewAlloc.c
1301 2003-11-03 Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
1303 * Added MSVC projects for hc08 assembler and linker:
1304 all.dsp, config.dsp, sdcc.dsw, /as/hc08/as_hc08.dsp,
1305 /as/hc08/link_hc08.dsp
1307 2003-11-03 Martin Helmling <Martin.Helmling AT octo-soft.de>
1309 * debugger/mcs51/cmd.c: allows filename starting with digit(+ some debug)
1311 2003-11-02 Bernhard Held <bernhard AT bernhardheld.de>
1313 * src/SDCCmain.c (linkEdit): "fixed" again bug #833605
1315 2003-11-01 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
1317 * src/mcs51/main.c: xdata initialization is 13 bytes shorter now
1319 2003-10-31 Borut Razem <borut.razem AT siol.net>
1321 * support/cpp2/cpplib.h,
1322 support/cpp2/cpplib.c,
1323 support/cpp2/cpplex.c,
1324 support/cpp2/cppinit.c: introduced #pragma preproc_asm [ + | - ]
1325 to switch _asm block preprocessing on / off. Default is
1326 #pragma preproc_asm +
1328 2003-10-31 Borut Razem <borut.razem AT siol.net>
1330 * support/cpp2/cpplex.c: Fixed _WIN32 problem with CR-CR-LF sequences
1331 when outputting comment blocks (when executed with -C option) and
1332 _asm (SDCPP specific) blocks
1334 2003-10-31 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
1336 * as/hc08/lkrloc.c (relr): Fixed ihx output, fixed lastAreaIndex warning
1338 2003-10-31 Klaus Flittner <klaus_flittner AT gmx.de>
1340 * src/SDCCcse.c (updateSpillLocation): fixed bug #808027
1342 2003-10-31 Bernhard Held <bernhard AT bernhardheld.de>
1344 * src/SDCCmain.c (linkEdit): "fixed" bug #833605
1345 * src/SDCCast.c (decorateType): fixed bug #832664
1347 2003-10-31 Borut Razem <borut.razem AT siol.net>
1349 * support\cpp2\cpplex.c: fixed for SDCPP:
1350 comments(when executed with -C option) and _asm blocks
1351 were included even if they where in skipped #if block.
1352 Applied solution from GCC cpp 3.3.2
1354 2003-10-31 Borut Razem <borut.razem AT siol.net>
1356 * src/SDCC.lex: sdcc now understands both formats:
1357 '# <line_number> <file_name>' and
1358 '#line <line_number> <file_name>'
1359 * support/cpp2/cppmain.c: sdcpp now generates the standard
1360 '# <line_number> <file_name>' instead of former
1361 '#line <line_number> <file_name>'
1363 2003-10-30 Borut Razem <borut.razem AT siol.net>
1365 * support/cpp2/cpphash.h,
1366 * support/cpp2/cpplib.h
1367 * support/cpp2/cpplex.c,
1368 * support/cpp2/cppmain.c,
1369 * support/cpp2/cppinit.c: fixed bug #828015 - Syntax variation for _asm character constants
1371 2003-10-30 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
1373 Fixed a number of problems revealed by bug #827883.
1374 * src/SDCCloop.c (loopInvariants): Spill location of the
1375 result operand should be recomputed if extracted from
1376 a loop. Also, don't extract assignments of an iTemp
1378 * src/SDCCast.c (isConformingBody): loop reversal should
1379 not occur if the control variable is involved with a
1380 relational operator.
1382 2003-10-28 Bernhard Held <bernhard AT bernhardheld.de>
1384 * .version: bumped to 2.3.6 to reflect the big improvements
1385 made by Erik and Klaus. Thanks!
1387 2003-10-28 Klaus Flittner <klaus_flittner AT gmx.de>
1389 Replaced the livrange code.
1390 * src/SDCClrange.c: added new LR code
1392 * src/SDCCBBlock.h: removed remainig parts from old LR code
1393 * src/ds390/ralloc.c,
1394 * src/ds390/gen.c: minor fixes to make it work with new code
1396 2003-10-28 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
1401 * src/hc08/ralloc.c: Fix various warnings related to the hc08
1402 * src/SDCCicode.c (geniCodePreInc, geniCodePreDec): Fixed bug #829717
1403 (tweaked fix for bug #818696)
1405 2003-10-23 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
1407 * src/z80/ralloc.c (joinPushes): Fixed bug #828742
1409 2003-10-23 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
1412 * sdccconf_in.h: Fixed bug #828387 (--disable-hc08-port didn't work)
1413 * src/mcs51/gen.c (gencjneshort),
1414 * src/ds390/gen.c (gencjneshort): Made comparison with AOP_IMMD operand
1415 more efficient (per Scott Bronson's suggestion)
1417 2003-10-22 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
1419 Extended the semantics of the critical keyword to include
1420 individual statements. See RFE #827755 and #799831
1425 * support/Util/SDCCerr.c
1426 * support/Util/SDCCerr.h
1431 2003-10-19 Borut Razem <borut.razem AT siol.net>
1433 * src/SDCC.lex: fixed bug #825944 - defined yytext_ptr to make it compile with flex 2.5.31
1435 2003-10-19 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
1437 * src/SDCCicode.c (geniCodePreInc, geniCodePreDec, ast2iCode):
1439 * src/SDCCast.c (ast_print): Fixed --dumptree so that preincrement
1440 and predecrement operand is displayed
1442 2003-10-13 Bernhard Held <bernhard AT bernhardheld.de>
1444 * src/SDCCval.c (valMinus): fixed bug #826041
1446 2003-10-15 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
1448 Some hc08 related updates that I missed earlier
1449 * sim/ucsim/stypes.h
1450 * support/regression/ports/hc08/spec.mk
1452 2003-10-15 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
1454 New target "hc08" for the Motorola 68hc08 family of micros
1462 * sim/ucsim/hc08.src/*
1463 * sim/ucsim/configure.in
1464 * src/ucsim/configure
1465 * sim/ucsim/packages_in.mk
1468 * device/include/mc68hc908qy.h
1470 * device/lib/Makefile.in
1471 * support/regression/ports/hc08/*
1472 * support/regression/Makefile
1474 2003-10-14 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
1476 * src/z80/gen.c: fixed bug revealed by ast_constant_folding.c
1478 * src/ds390/gen.c (genCast): fixed bug #821957
1480 2003-10-13 Bernhard Held <bernhard AT bernhardheld.de>
1482 * device/lib/logf.c: "fixed" overlay bug
1483 * support/regression/ports/host/spec.mk: added m library
1484 * support/regression/ports/mcs51-stack-auto/spec.mk: added float funcs
1485 * support/regression/tests/float_trans: added (for Eric)
1487 2003-10-12 Bernhard Held <bernhard AT bernhardheld.de>
1489 * src/mcs51/gen.c (genCpl): fixed bug
1490 http://sf.net/mailarchive/message.php?msg_id=6263915
1492 2003-10-10 Bernhard Held <bernhard AT bernhardheld.de>
1494 * src/SDCCast.c (decorateType): added extended constant folding
1495 * src/SDCCsymt.c (computeType): cleanup
1496 * src/SDCCval.c (valShift): minor optimization
1497 * support/regression/tests/ast_constant_folding.c: added
1499 2003-10-09 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
1501 * src/SDCCmain.c: removed some unintended changes
1503 2003-10-09 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
1505 * src/SDCCmain.c (setParseWithComma): fixed bug #816685
1506 * src/z80/gen.c: fixed part of bug #817589
1507 * src/SDCCsymt.c (checkFunction): fixed bug #817895
1509 2003-10-08 Bernhard Held <bernhard AT bernhardheld.de>
1511 Replaced cast (void **) with (void *) to avoid gcc 3 warning:
1522 * src/ds390/ralloc.c
1524 * src/mcs51/ralloc.c
1526 * src/pic16/ralloc.c
1529 * src/z80/gen.c: removed unused label "release:"
1531 2003-10-06 Borut Razem <borut.razem AT siol.net>
1533 * src/SDCC.lex: removed definition of unused variables
1534 save_optimize and save_options
1536 2003-10-06 Bernhard Held <bernhard AT bernhardheld.de>
1538 * clean.mk: removed '=' in "-maxdepth=1"
1539 * src/SDCCloop.c: replace LRKLAUS with SDCC_LRKLAUS
1540 * src/SDCClrange.c: replace LRKLAUS with SDCC_LRKLAUS
1542 2003-10-06 Borut Razem <borut.razem AT siol.net>
1544 * src/SDCC.lex, src/SDCC.lex: use dbuf for "_asm" definitions;
1545 my_unput() replaced by unput()
1547 2003-10-05 Bernhard Held <bernhard AT bernhardheld.de>
1549 * src/SDCCloop.c (assignmentsToSym, loopInduction): cast argument of
1550 setToNull() to (void *) to avoid gcc3.x's warning: "dereferencing
1551 type-punned pointer will break strict-aliasing rules"
1552 Old LR behaviour is again default; Klaus' LR can be choosen by
1553 defining the environment variable LRKLAUS
1557 * src/ds390/ralloc.c (spillThis): applied Klaus' patch
1558 * clean.mk: fixed removal of files in bin/CVS/
1559 * device/lib/clean.mk: fixed removal of directories small and large
1560 * support/Util/SDCCerr.c: changed W_INT_OVL to ERROR_LEVEL_PEDANTIC
1562 * src/SDCCval.c: removed superflous test for pedantic
1564 2003-10-05 Borut Razem <borut.razem AT siol.net>
1566 * src/SDCC.lex, support/Util/SDCCerr.c, sdcc/support/Util/SDCCerr.h:
1567 Fixed bug #816692: introduced new ERROR_LEVEL_PEDANTIC warning
1568 message "unmatched #pragma SAVE and #pragma RESTORE"
1570 2003-10-04 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
1572 * doc/sdccman.lyx: various additions and updates (interrupts, inline
1573 assembly, critical functions, atomic, nojtbound)
1575 2003-10-04 Bernhard Held <bernhard AT bernhardheld.de>
1577 Applied liferange patch from Klaus Flittner <klaus_flittner AT gmx.de>
1583 2003-10-03 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
1586 * src/z80/gen.c (aopOp, aopGet, aopPut, genDummyRead),
1588 * src/mcs51/gen.c (aopOp, aopGet, aopPut, genDummyRead),
1590 * src/ds390/gen.c (aopOp, aopGet, aopPut, genDummyRead),
1591 * src/SDCCicode.c (ast2iCode, geniCodeDummyRead): Fixed bug #663539
1592 * src/SDCCopt.c (killDeadCode): Fixed bugs #663539 & #816705
1594 2003-10-02 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
1596 * src/z80/gen.c (genRet): fixed bug #524753
1597 * src/z80/gen.c (genCast): fixed internal error on cast from
1599 * src/z80/gen.c (_saveRegsForCall, emitCall): adapted Johan's
1600 fix for bug #477835 to the z80
1601 * src/z80/gen.c (genZ80code, _vemit2, _emit2): added support
1602 for tracking iCodes in the peephole optimizer for z80
1604 2003-10-01 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
1606 * src/SDCCicode.c (geniCodeJumpTable, geniCodeSwitch): fixed
1607 the other part of bug #814548
1608 * src/SDCCpeeph.c (labelInRange): fixed bug #814558
1610 2003-09-30 Bernhard Held <bernhard AT bernhardheld.de>
1612 * src/SDCCcse.c: fixed part of bug #814548
1614 2003-09-28 Borut Razem <borut.razem AT siol.net>
1616 * src/asm.c: rewrite of printILine() to use temporary file instead
1618 * src/xa51/main.c: commented out declaration of int rewinds
1620 2003-09-27 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
1622 * src/SDCCicode.c (geniCodeJumpTable): Fixed bug #813206
1624 2003-09-26 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
1626 * src/SDCCdflow.c (computeDataFlow): Fixed bug #810746
1627 * src/asm.c (printILine): Fixed bug #811015
1629 2003-09-22 Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
1631 *link/z80/lklibr.c, as/mcs51/lklibr.c: Improved memory allocation and
1634 2003-09-21 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
1636 * src/z80/gen.c (setupToPreserveCarry): Fixed bug #796955
1637 * src/z80/gen.c (setupPair, genMovePairPair): Fixed setupPair
1638 to correctly handle general case of AOP_PAIRPTR
1639 * src/z80/gen.c (aopGet, aopPut): Generalized AOP_PAIRPTR handling
1641 2003-09-21 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
1643 * src/mcs51/ralloc.c (fillGaps),
1644 * src/ds390/ralloc.c (fillGaps): fixed bug #810093 (yet another
1645 register positioning bug)
1647 2003-09-21 Bernhard Held <bernhard AT bernhardheld.de>
1649 * device/lib/_fsdiv.c: replaced (1<<31) by (1ul<<31)
1651 2003-09-19 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
1653 * src/mcs51/gen.c (loadDptrFromOperand, genFarPointerGet,
1654 genCodePointerGet, genGenPointerGet, genFarPointerSet,
1655 genGenPointerSet): handle AOP_DPTR correctly when loading dptr
1656 (ralloc doesn't intentionally do this now, but perhaps later)
1657 * src/mcs51/ralloc.c (serialRegAssign, fillGaps),
1658 * src/ds390/ralloc.c (serialRegAssign, fillGaps): fixed some
1659 register positioning bugs (Fixed bug #762602 and #795325)
1660 * src/SDCCicode.c (geniCodeDerefPtr): Track output class correctly
1662 * src/z80/gen.c: increased _vemit2's buffer[] to handle long
1663 lines that --i-code-in-asm generates
1665 2003-09-18 Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
1667 *link/z80/lklibr.c, as/mcs51/lklibr.c: Fixed Linux segfaults when
1668 trying to fclose a FILE* that was already closed.
1670 2003-09-18 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
1672 * src/SDCCsymt.c (structElemType): fixed bug #808291 (members
1673 of const struct should be treated as if const themselves)
1675 2003-09-18 Bernhard Held <bernhard AT bernhardheld.de>
1677 * src/SDCCval.c (valPlus, valMinus): fixed bug #808337
1679 2003-07-06 Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
1681 * support/librarian/sdcclib.c: Generate correct offsets for libraries with
1682 Unix (/n) and DOS (/r/n) line terminations.
1684 2003-09-17 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
1686 * src/SDCCopt.c (cnvFromFloatCast, cnvToFloatCast): fixed
1689 2003-09-16 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
1691 * src/mcs51/gen.c (genFunction, genEndFunction),
1692 * src/ds390/gen.c (genFunction, genEndFunction): Moved save
1693 and restore of EA so that stack offsets to parameters are
1694 correct when using both critical and reentrant/stack-auto.
1695 * src/z80/gen.c (aopOp): removed erroneous assertion about sloc
1696 size (can be triggered in error if sloc is shared between
1697 different sized objects)
1698 * device/include/float.h: fixed macros to explicitly use
1699 unsigned long where needed
1701 2003-09-15 Bernhard Held <bernhard AT bernhardheld.de>
1703 Feature req. 799831: added code to allow nesting of critical functions
1704 * src/mcs51/gen.c (genFunction, genEndFunction)
1705 * src/ds390/gen.c (genFunction, genEndFunction)
1707 2003-09-14 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
1709 * src/SDCCsymt.c (sclsFromPtr),
1711 * src/SDCCast.c (decorateType): fixed bug #462971. Also, better
1712 support for standard C idiom of memory mapped variables; for
1713 example, *((xdata int*)0x1234) = 1 is now internally equivalent
1714 to xdata int at 0x1234 tempvar = 1.
1715 * sim/ucsim/z80.src/inst_xd.cc: fixed bug #805483 with patch
1716 provided by Akiya ISHIDA
1718 2003-09-13 Bernhard Held <bernhard AT bernhardheld.de>
1720 * src/SDCCval.c (cheapestVal): reenabled to reduce int to char
1721 * src/SDCCval.c (constVal): added reduction from int to char
1722 * src/SDCCval.c (valMult, valDiv): fixed sign handling
1723 * src/SDCCval.c (valShift): fixed after change of cheapestVal()
1724 * src/SDCCval.c (valCompare): fixed EQ_OP and NE_OP; they have
1726 * support/regression/tests/shifts.c: fixed
1728 2003-09-13 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
1730 * src/z80/gen.c (genXor): Fixed bug #805445
1732 2003-09-12 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
1734 Fixed bug #621531 (const & volatile confusion in the type chain).
1735 DCL_PTR_CONST, DCL_PTR_VOLATILE, & IS_PTR_CONST now exclusively
1736 refer to the const or volatile state of the pointer itself.
1748 * src/pic16/ralloc.c
1749 * support/regression/tests/const.c
1751 2003-09-10 Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
1753 When checking for duplicated modules, use absolute paths
1754 instead of relative paths. Files changed:
1759 2003-09-09 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
1761 * src/SDCCicode.c (geniCodeLogic): fixed bug #797572
1763 2003-09-07 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
1765 * device/include/string.h: added size_t typedef, changed
1766 prototypes to use size_t, eliminated separate reentrant and
1767 non-reentrant declarations, added _memmove declaration
1768 * device/lib/_memcpy.c: changed to use size_t instead of int,
1769 changed /4 to >>2 to avoid division library call
1770 * device/lib/_memcmp.c,
1771 * device/lib/_memset.c,
1772 * device/lib/_strncat.c,
1773 * device/lib/_strncpy.c,
1774 * device/lib/_strncmp.c: changed to use size_t instead of int
1775 * device/lib/_memmove.c: new file (fixed bug #772294)
1776 * device/lib/Makefile.in: added _memmove.c
1777 * device/lib/z80/asm_strings.s: fixed bug #772290
1778 * support/regression/tests/bitfields.c: attempt to fix host assertion
1779 failure on amd64-unknown-linux2.2
1781 2003-09-06 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
1783 * src/z80/gen.c (aopPut, spillPairReg): fixed bug #800998
1784 * src/z80/gen.c (genFunction, genEndFunction): fixed "bug" #774700
1785 * as/z80/asmain.c (main): fixed bug #801766
1787 2003-09-06 Bernhard Held <bernhard AT bernhardheld.de>
1789 * src/SDCCicode.c (ast2iCode): fixed differences in iCode with different
1792 2003-09-05 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
1794 * src/SDCCast.c (isConformingBody): fixed loop reversal bug
1795 reported in bug #800609
1797 2003-09-04 Vangelis Rokas <vrokas AT otenet.gr>
1799 * Top header beautifications in src/pic16 directory:
1800 device.c, device.h, gen.c, gen.h, genarith.c, glue.c, pcode.c,
1801 pcodeflow.c, pcodeflow.h, pcode.h, pcodepeep.c, pcoderegs.c,
1802 pcoderegs.h, ralloc.c, ralloc.h
1803 * main.c: added top header and GPL license notice
1804 * pcode.c: fixed the if-conditional warning
1806 2003-09-04 Bernhard Held <bernhard AT bernhardheld.de>
1808 * device/lib/_mullong.c: replaced int by short for gcc
1810 2003-08-31 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
1812 * src/SDCCpeeph.c (notVolatile, notVolatileVariable): handle IFX
1813 and JUMPTABLE iCodes properly now (worked by accident before)
1814 * src/mcs51/gen.c (leftRightUseAcc),
1815 * src/ds390/gen.c (leftRightUseAcc): handle IFX and JUMPTABLE
1816 iCode properly now. Use getSize instead of nRegs since a & b
1817 aren't part of the nRegs tally.
1819 2003-08-31 Vangelis Rokas <vrokas AT otenet.gr>
1821 * src/pic16/main.c: corrected offsets of interrupt vectors in _pic16_genIVT()
1822 * src/pic16/pcode.c: fix to disable inserting BANKSEL directive
1823 before instructions that use the _STATUS register
1825 2003-08-31 Bernhard Held <bernhard AT bernhardheld.de>
1827 * src/mcs51/gen.c (freeAsmop): fixed off by one in stack offset (AOP_STK)
1828 * src/mcs51/gen.c (genNearPointerSet): added missing opcode for
1829 fetching of the pointer
1830 * src/mcs51/gen.c (genNearPointerGet): added reuse of PREG,
1831 copied from genNearPointerSet()
1832 * src/mcs51/gen.c (genNearPointerGet): don't pop r0/r1, if RESULTONSTACK
1833 * src/mcs51/gen.c: changed order of freeAsmop(left/right/result)-calls.
1834 If they pop r0/r1 they must be called in the opposite order than aopOp().
1835 * device/lib/_mullong.c: fixed for "--model-large --int-long-reent"
1836 (resp. --stack-auto), prepared for --xstack
1838 2003-08-28 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
1840 * doc/sdccman.lyx: reverted tables to those in cvs 1.64
1842 2003-08-28 Bernhard Held <bernhard AT bernhardheld.de>
1844 * device/lib/_startup.c: quick & dirty fix for ds390/ds400;
1845 these ports have their own __sdcc_external_start()
1847 2003-08-26 Bernhard Held <bernhard AT bernhardheld.de>
1849 pic patch provided by Slade Rich <slade_rich AT yahoo.com>
1850 * src/pic/glue.c (pic14printPublics): fixed bug introduced when symbol
1851 type for bits was changed. It resulted in bit variables becoming
1852 global, which is not permitted in PIC 14 assembly output.
1854 2003-08-23 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
1856 * doc/sdccman.lyx: various additions and updates. Rearranged sections
1858 2003-08-22 Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
1860 Z80 and MCS51 linkers complaint if a public symbol is defined
1861 in more than one library module:
1865 * as/mcs51/Makefile.in
1867 2003-08-22 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
1869 A few small changes that speed up the peephole optimizer.
1873 2003-08-22 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
1875 Try to make the peephole optimizer smarter by maintaining
1876 an association between the assembly source code and the
1877 iCodes that originated them. Put this information to use
1878 with a new peephole rule condition "notVolatile" so that
1879 the rules can be aggressive yet still safe.
1884 * src/mcs51/peeph.def
1886 2003-08-20 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
1890 * src/mcs51/gen.c (aopForSym, leftRightUseAcc),
1891 * src/ds390/gen.c (aopForSym, leftRightUseAcc): preserve A and B
1892 if the left or right operand symbols have the accuse flag set.
1894 2003-08-20 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
1896 Changed the type of the result of the ! (NOT) operator to char;
1897 previously it returned the same type as the source. This allows
1898 us to eliminate all the genFloatNot functions (all of its target
1899 implementations were very buggy) since !float can use the same
1902 * src/SDCCicode.c (ast2iCode): ! returns char
1903 * src/mcs51/gen.c (genNot, genNotFloat),
1904 * src/ds390/gen.c (genNot, genNotFloat),
1905 * src/z80/gen.c (genNot, genNotFloat),
1906 * src/pic/gen.c (genNot, genNotFloat),
1907 * src/pic16/gen.c (genNot, genNotFloat): eliminated genNotFloat
1909 2003-08-19 Bernhard Held <bernhard AT bernhardheld.de>
1911 pic patch provided by Slade Rich <slade_rich AT yahoo.com>
1912 1. Interrupt would not compile properly. Ensure PCLATH register is saved
1913 during interrupts. Ensure WSAVE is located at a shared bank address.
1914 2. Fixed page selection in some places
1915 3. Fixed BTFSS/C to where necessary use registers directly and not simply
1916 the registers name strings.
1917 4. Fixed "signed / unsigned compare" compiler warnings.
1918 5. The PIC port manages its own allocation of the general purpose
1919 registers, but makes no attempt to reuse them. As a result when
1920 compiling it soon runs out of general purpose registers. Some
1921 additional code was added to the files pcode.c and device.c to walk
1922 through the function call tree and rename the registers so that they
1932 * src/pic/genarith.c: Fixed problems with PIC 14 port in functions
1933 genPlus() & genMinus() when the result is the same as left or right
1935 2003-08-18 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
1937 * src/z80/gen.c (isUnsplitable, fetchPairLong): fixed bug #770454
1939 2003-08-18 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
1941 Made bitfield a distinct type from bit so that bitfields
1942 convert as per ANSI C and bits retain their traditional
1943 boolean style behaviour. Implemented bitfield support in
1951 * src/ds390/gen.c: bit v bitfield split
1952 * src/z80/gen.c: New support for bitfields
1953 * support/regression/tests/bitfields.c: reenabled z80,
1956 2003-08-17 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
1958 Rules 246.x, 247.x relate to bitfields, the others speed up
1959 access to xdata mapped I/O devices.
1961 * src/mcs51/peeph.def: added 26 peepholes 246.x - 248.x, 180.x
1963 2003-08-16 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
1965 Cleaned up genPackBits and genUnpackBits and added two helper
1966 functions, emitPtrByteGet & emitPtrByteSet. Added optimizations
1967 for literal assignments in genPackBits (thanks to Frieder for
1973 2003-08-16 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
1975 Fixed bug #748310 (pointer to function type mishandled when the
1976 function name is omitted). Also fixed a SIGSEGV when a function
1977 attribute (reentrant, etc) is used on a non-function or on a
1978 function but misplaced before the parameter list.
1980 * src/SDCC.y (abstract_declarator, abstract_declaractor2): fixed
1982 * src/SDCC.y (declarator2_function_attributes): avoided SIGSEGV
1983 * support/Util/SDCCerr.h,
1984 * support/Util/SDCCerr.c: Added func attr misuse error msg
1986 2003-08-13 Bernhard Held <bernhard AT bernhardheld.de>
1988 Fixed bug #787649 by anonymous
1989 * src/SDCCglue.c (emitRegularMap): added emission of sloc for func ptr
1990 * src/ds390/gen.c (aopForSym): fixed func ptr in sloc
1992 2003-08-14 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
1994 Fixed numerous bitfield problems.
1996 * src/SDCC.y: More bitfield related error checking
1998 * src/SDCCsymt.c (compStructSize): fixed bitfield offset calc
1999 * support/Util/SDCCerr.h,
2000 * support/Util/SDCCerr.c: Added & edited some bitfield err msgs
2001 * src/mcs51/gen.c (genPackBits, genUnpackBits): fixed mask bugs
2002 * src/ds390/gen.c (genPackBits, genUnpackBits): fixed mask bugs
2003 * support/regression/tests/bitfields.c: tests added
2005 2003-08-13 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
2007 Made the constant following the "interrupt" keyword optional. If
2008 omitted, the function will not automatically be given an entry
2009 in the interrupt vector table (similar to #pragma NOIV, but
2010 less syntacticly kludgy). The interrupt number is also now
2011 range checked. Also fixed a bug in the high order bit example
2018 * support/Util/SDCCerr.c
2019 * support/Util/SDCCerr.h
2022 2003-08-13 Bernhard Held <bernhard AT bernhardheld.de>
2024 * src/SDCCcse.c (algebraicOpts): fix bug converting op from value to type
2025 * src/SDCCicode.c (operandOperation): rewritten some ops
2026 (*, ==, unary_minus) to fix possible overflows and to accord with ANSI
2027 * src/SDCCsymt.c (computeType): literals are handled the same way as any
2029 * src/SDCCval.c (cheapestVal): removed, it doesn't accord with ANSI (can
2030 be re-activated by defining REDUCE_LITERALS)
2031 * src/SDCCval.c (constVal): fixed; hex and octal constants can be
2032 unsigned, but are signed by default
2033 * src/SDCCval.c (constVal): rearranged
2034 * src/SDCCval.c (valMod): preliminary fix
2035 * src/SDCCval.c (valCastLiteral): use TYPE_* types
2036 * support/regression/literalop.c: added, work in progress
2038 2003-08-12 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
2040 Generate warnings for useless declarations like "char data;"
2041 that don't do what new users expect.
2044 * support/Util/SDCCerr.h
2045 * support/Util/SDCCerr.c
2047 2003-08-09 Bernhard Held <bernhard AT bernhardheld.de>
2049 * src/SDCCval.c (valMult): fix overflow detection of negative int
2051 2003-08-07 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
2053 * src/z80/ralloc.c (joinPushes): made compatible with new signedness
2055 Changes to support big endian targets:
2068 2003-08-06 Bernhard Held <bernhard AT bernhardheld.de>
2070 * src/SDCCval.c (cheapestVal): changed behaviour to the same as constVal()
2071 * device/lib/time.c: fixed warning "integer overflow in expression"
2073 2003-08-05 Bernhard Held <bernhard AT bernhardheld.de>
2075 * src/SDCCval.c (cheapestVal, valueFromLit): use TYPE_* types
2076 * src/SDCCval.c (constVal): changed default to signed; hex and octal
2077 constants are unsigned; added recognition of "u" flag for unsigned
2078 * src/SDCCval.c (valMult): fixed signdness, added warning for overflow
2079 * src/SDCCval.c (valDiv, valMod): fixed signdness
2080 * src/SDCCicode.c (operandOperation): fixed critical typo; fixed
2081 signedness of modulo, left and right shift
2082 * support/Util/SDCCerr.c: added warning "integer overflow in expression"
2083 * support/Util/SDCCerr.h: added warning W_INT_OVL
2084 * src/SDCCast.c (decorateType): fixed gcc3.3 warning
2085 * src/SDCCast.c (ast_print): improved output of constants
2087 2003-08-04 Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
2089 Fixed some warnings when building with MSVC:
2102 * support\cpp2\cpplib.c
2106 2003-08-03 Bernhard Held <bernhard AT bernhardheld.de>
2108 * src/SDCCast.c (constExprTree): fix bug #781827 by Carl Worth <cworth AT isi.edu>
2110 2003-08-01 Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
2112 * support\librarian\clean.mk: Do not remove Makefile.
2113 * support\librarian\Makefile: added.
2115 2003-08-01 Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
2117 Added librarian to MSVC build:
2120 * support\librarian\librarian.dsp
2122 'configure' not needed for librarian, removed:
2123 * support\librarian\configure
2124 * support\librarian\configure.in
2125 * support\librarian\config_in.h
2126 * support\librarian\Makefile.in
2128 Hopefully these ones built the librarian and the rest of sdcc properly:
2130 * Makefile.common.in
2132 Messed up 'configure', so revert to previous version:
2136 2003-07-31 Bernhard Held <bernhard AT bernhardheld.de>
2138 * src/SDCCicode.c (operandOperation): 3. fix, this time for Alpha; ULONG has 64 bits
2139 there, while the mantissa of a double is "only" 53 bits wide.
2141 2003-07-31 Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
2143 Adding sdcclib to the build. MSVC project coming soon.
2144 Files added/changed:
2146 * support\librarian\clean.mk
2147 * support\librarian\configure
2148 * support\librarian\configure.in
2149 * support\librarian\config_in.h
2150 * support\librarian\Makefile.bcc
2151 * support\librarian\Makefile.in
2152 * support\librarian\sdcclib.c
2155 * Makefile.common.in
2159 2003-07-29 Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
2161 Linker now complaints if linked modules have conflicting options, for
2162 example, one compiled using --model-large and another one compiled with
2163 --model-small. The following files were modified:
2185 2003-07-28 Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
2187 *link/z80/aslink.h, link/z80/lklibr.c, as/mcs51/aslink.h,
2188 as/mcs51/lklibr.c: Generate a warning when a library is not found.
2190 2003-07-28 Bernhard Held <bernhard AT bernhardheld.de>
2192 * src/z80/mappings.i: fix _mul[us][int,long] entries
2194 2003-07-26 Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
2196 *src/SDCCmain.c: do not search for crt0.o when using --nostdlib
2198 2003-07-24 Bernhard Held <bernhard AT bernhardheld.de>
2200 * src/SDCCicode.c (operandOperation): really fixed problem with bitops
2201 * support/regression/tests/bitopcse.c: added
2209 2003-07-24 Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
2211 added support for new library format to z80, gbz80 linkers:
2217 2003-07-24 Bernhard Held <bernhard AT bernhardheld.de>
2219 * src/SDCCicode.c (operandOperation): fixed problem with bitops and 0xffffffff;
2220 after {double d = 0xffffffff; long l = d;} l will be 0x80000000 (LONG_MIN)
2222 2003-07-23 Bernhard Held <bernhard AT bernhardheld.de>
2224 added DUMMY_READ_VOLATILE:
2233 * src/SDCCcse.c (algebraicOpts): many improvements
2234 * src/SDCCcse.h: removed algebraicOpts()
2235 * src/SDCCicode.c (picDummyRead): added
2237 2003-07-23 Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
2239 * as/mcs51/lkmem.c: Changed message "Insufficient DRAM memory" to
2240 "Insufficient space in data memory".
2242 2003-07-20 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
2244 * src/mcs51/gen.c: fixed bug #771358
2245 * src/z80/gen.c: fixed bug #759087
2247 2003-07-20 Bernhard Held <bernhard AT bernhardheld.de>
2249 * src/pic16/glue.c: minor cleanup by Vangelis
2251 2003-07-19 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
2253 * device/include/regc515c.h: fixed #758477
2254 * device/lib/_gptrget.c: saving some cycles in generic pointer get
2255 * device/lib/_gptrput.c: saved a few bytes
2256 * my tab spacing is 8, yours too?)
2257 * device/lib/_ser.c: process RX bytes earlier than TX bytes
2258 * device/lib/serial.c: process RX bytes earlier than TX bytes
2259 * src/mcs51/gen.c(genGenPointerGet/Set): removed writing of type after postincrement
2261 2003-07-18 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
2263 * src/z80/gen.c: fixed some right shift bugs (#772726 among them)
2265 2003-07-17 Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
2267 * link/z80/lklibr.c: fixed bug when there is a '.' in a library path.
2269 2003-07-17 Bernhard Held <bernhard AT bernhardheld.de>
2271 * device/lib/Makefile.in: bad fix, reverted to 1.43
2273 2003-07-16 Bernhard Held <bernhard AT bernhardheld.de>
2275 * device/lib/Makefile.in: added missing z80 object files
2277 2003-07-14 Bernhard Held <bernhard AT bernhardheld.de>
2279 * src/SDCCcse.c (algebraicOpts): CSE fun with &|^ and 0x00/0xff literals
2280 pic16 progress by Vangelis:
2295 * pic16/pcodepeep.c:
2298 2003-07-13 Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
2300 * src/SDCCmain.c, src/SDCCglobl.h: added option --no-std-crt0
2302 2003-07-12 Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
2304 * sdcc.dsw, all.dsp, link/z80/linkgbz80.dsp, as/z80/as-gbz80.dsp:
2305 added gbz80 build to MSVC project.
2306 * src/SDCCmain.c, src/SDCCglue.c, src/z80/main.c, src/z80/z80.dsp,
2307 link/z80/aslink.h, linkz80.dsp: cleaned up z80 and gbz80 asm files
2308 from 8051 stuff and setup so it links using a .lnk file.
2310 2003-07-06 Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
2312 * support/librarian/sdcclib.c: sdcc librarian.
2313 * as/mcs51/aslink.h, as/mcs51/lklib.c: Support for libraries created
2316 2003-07-03 Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
2318 * as/mcs51/lkmain.c: properly handle extensions in function afile.
2320 2003-07-02 Borut Razem <borut.razem AT siol.net>
2322 * src/port.h, src/SDCCmain.c, src/pic/glue.h, src/pic/main.c,
2323 src/pic16/glue.h, sdcc/src/pic16/main.c, src/izt/i186.c,
2324 src/izt/tlcs900h.c, src/avr/main.c, src/ds390/main.c, src/mcs51/main.c,
2325 src/xa51/main.c, src/z80/main.c:
2326 virtualization of glue() function: each port has it's own glue function,
2327 which is accessed by do_glue function pointer in PORT.general structure
2329 2003-07-01 Kevin Vigor <kevin AT vigor.nu>
2331 * DS800C400 fun, improved ROM interface and tinibios.
2333 2003-06-27 Kevin Vigor <kevin AT vigor.nu>
2335 * More support for DS80C400. Now includes beginning of interface to ROM.
2337 2003-06-25 Bernhard Held <bernhard AT bernhardheld.de>
2339 * src/mcs51/gen.c (gencjneshort): fixed bug #760345
2341 2003-06-20 Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
2343 * as/mcs51/lkaomf51.c: Make sure the size of the last procedure is correct.
2345 2003-06-19 Borut Razem <borut.razem AT siol.net>
2347 * src/z80/main.c: fixed Z80 port again: missing -k library paths in linker command line
2349 2003-06-19 Borut Razem <borut.razem AT siol.net>
2351 * src/SDCCutil.h, src/SDCCutil.c, src/SDCCglobl.h, src/SDCCmain.c, src/z80/main.c:
2352 fixed Z80 port - crt0.o: cannot open.
2354 2003-06-19 Bernhard Held <bernhard AT bernhardheld.de>
2356 * support/Util/MySystem.c (merge_command): revert bad fix
2358 2003-06-18 Borut Razem <borut.razem AT siol.net>
2360 * src/SDCC.lex, src/SDCCmain.c: fixed some warnings, introduced with changes made 15.06.1003
2362 2003-06-18 Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
2364 * src/SDCCglobl.h, src/SDCCmain.c, doc/sdccman.lyx:
2365 option --use-stdout sends errors to stdout instead of stderr.
2367 2003-06-18 Bernhard Held <bernhard AT bernhardheld.de>
2369 * support/Util/MySystem.c (merge_command): quick fix for Linux segfault with \"cmd\" arg
2371 2003-06-15 Borut Razem <borut.razem AT siol.net>
2373 * support/cpp2/sdcc.h: HAVE_DOS_BASED_FILE_SYSTEM defined for _WIN32
2374 * src/SDCC.lex: cloneXxx and copyAndFreeXxx functions for options and optimize stack handling
2375 * src/SDCCglobl.h, src/SDCCmain.c, src/ds390/main.c, src/mcs51/main.c, src/z80/main.c:
2376 fixed width array of pointers replaced with sets;
2377 multiple include and lib paths ared transferred to preprocessor and linker
2378 * src/SDCCset.c, src/SDCCset.h: added function setFromSetNonRev() and mergeSets()
2379 * src/SDCCsymt.c: reimplemented function inCalleeSaveList() by using sets instead
2380 fixed width array of pointers
2381 * src/SDCCutil.c, src/SDCCutil.h: added functions fputStrSet(), appendStrSet(), joinStrSet();
2382 removed functions addToList(), join(), joinn(), pathCharsEquivalent(), pathCharTransform(),
2383 fixupPath(), getPathDifference()
2384 * src/ds390/gen.c, src/mcs51/gen.c: reimplemented function inExcludeList() by using sets instead
2385 fixed width array of pointers
2387 2003-06-11 Bernhard Held <bernhard AT bernhardheld.de>
2389 * src/pic16/ralloc.c: fix warnings
2390 * src/pic16/pcode.c: fix warning
2392 2003-06-10 Scott Dattalo <scott AT dattalo.com>
2394 Scott D. for Vangelis Rokas (vrokas AT otenet.gr). I (scott) don't
2395 know all the details, but essentially this set of changes enable
2396 the pic16 port to generate movff instructions and generate assembler
2401 * src/pic16/pcode.c:
2402 * src/pic16/device.c:
2404 * src/pic16/pcode.h:
2405 * src/pic16/pcoderegs.c:
2406 * src/pic16/ralloc.c:
2407 * src/pic16/ralloc.h:
2409 2003-06-08 Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
2411 * support/Util/SDCCerr.c, src/SDCCglobl.h, src/SDCCmain.c, doc/sdccman.lyx:
2412 added option --vc, so sdcc errors and warnings are compatible with
2413 Microsoft Visual Studio.
2415 2003-06-07 Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
2417 * device/lib/_atof.c, device/lib/Makefile.in, device/include/stdlib.h,
2418 device/lib/libfloat.lib: added atof function.
2420 2003-06-04 Bernhard Held <bernhard AT bernhardheld.de>
2422 * doc/sdccman.lyx: updated to Lyx 1.3
2423 * doc/cdbfileformat.lyx: updated to Lyx 1.3
2424 * doc/test_suite_spec.lyx: updated to Lyx 1.3
2425 * doc/Makefile: added fix for the \tabularnewline problem, thanks to Jesus
2427 2003-06-03 Bernhard Held <bernhard AT bernhardheld.de>
2429 * src/SDCCpeeph.c: separate peepRules2pCode() for pic16 by "Vangelis Rokas" <vrokas AT otenet.gr>
2431 2003-06-02 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
2433 * doc/sdccman.lyx: cvs revision keywords, passing pdf information in latex preamble,
2434 additions to the "related tools/documentation" section
2436 2003-06-02 Bernhard Held <bernhard AT bernhardheld.de>
2438 * src/SDCCglue.c (tempfileandname): added check for missing TMP/TEMP/TMPDIR variable
2440 2003-05-29 Bernhard Held <bernhard AT bernhardheld.de>
2442 * src/pic/device.c: added 16F819, patch by "David I. Lehn" <dlehn AT vt.edu>
2443 * src/SDCCcse.c (algebraicOpts): fixed "c * 1"
2445 2003-05-28 Bernhard Held <bernhard AT bernhardheld.de>
2447 * doc/sdccman.lyx: fix double dash and other minor things
2448 * doc/Makefile: fix double dash
2450 2003-05-28 Karl Bongers(patches from Martin Helmling)
2451 * debugger/mcs51/sdcdb.c,cmd.c,break.c and .h files. Martin adds
2452 condition and ignore commands.
2454 2003-05-28 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
2456 * doc/sdccman.lyx: Changes all over, index improved, smaller margins. The manual
2457 is in parts still quite out of date, I did changes as far as I felt makes sense
2458 for a non-native english speaker.
2459 Please feel free to add to the manual or to correct my changes.
2460 * doc/Makefile: undid touching the date of intermediate tex files.
2462 2003-05-26 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
2464 * doc/sdccman.lyx: Manual has an index now
2466 2003-05-25 Bernhard Held <bernhard AT bernhardheld.de>
2468 Finalize muluint/mulsint and mululong/mulslong merging:
2469 * device/lib/_mulint.c
2470 * device/lib/_mullong.c
2471 * device/lib/gbz80/mul.s
2472 * device/lib/gbz80/stubs.s
2473 * device/lib/z80/mul.s
2474 * device/lib/z80/stubs.s
2475 * src/SDCCsymt.c (initCSupport)
2477 2003-05-25 Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
2479 * as/mcs51/lkaomf51.c: Address space 'z' was missing.
2480 * src/avr/avr.dsp, src/ds390/ds390.dsp, src/mcs51/mcs51.dsp,
2481 src/pic/pic.dsp, src/pic16/pic16.dsp, src/xa51/xa51.dsp,
2482 src/x80/z80.dsp: peep.rul is bigger now, so /Zm1000 is used
2485 2003-05-25 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
2487 * src/mcs51/peeph.def: added rules 244.x, 245.x. Although they pass
2488 the regression tests I'm not brave enough to enable 245.b, 245.c
2489 * doc/sdccman.lyx: added latex preamble for hyperref package.
2490 Using pdflatex this will give you a hyperlinked pdf file with
2491 bookmarks. (prepend '%' before /usepackage if this breaks something)
2493 2003-05-24 Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
2495 * doc/sdccman.lyx: updated information about .adb files (fixed bug 742649)
2497 2003-05-22 Bernhard Held <bernhard AT bernhardheld.de>
2499 * src/pic16/pcode.c (pic16_get_op_from_instruction): fixed a gcc 3.x warning
2501 2003-05-21 <johan AT balder>
2503 * src/SDCCglue.c (printIval): fixed bug #739934
2505 2003-05-19 Bernhard Held <bernhard AT bernhardheld.de>
2507 Applied patch from bug 737905 (renamed yylineo to mylineno):
2514 * src/pic16/pcode.c: Cleaned warnings
2515 * src/pic16/pcodeflow.c: Cleaned warnings
2516 * src/pic16/pcoderegs.c: Cleaned warnings
2518 2003-05-19 Scott Dattalo <scott AT dattalo.com>
2520 * src/pic16/pcode.c: Cleaned warnings
2521 * src/pic16/pcodepeep.c: Cleaned warnings
2522 * src/pic16/ralloc.c: Cleaned warnings
2524 2003-05-19 Bernhard Held <bernhard AT bernhardheld.de>
2526 * doc/sdccman.lyx: fixed bug 739745
2527 * src/pic16/pcode.c (pic16_get_op): fixed warning on alpha
2529 2003-05-18 Bernhard Held <bernhard AT bernhardheld.de>
2531 * src/port.h: removed DEFAULT_PORT, it's not yet pic16 ;-)
2532 it can be defined with CFLAGS when running configure
2533 * src/SDCCmain.c: fixed compiling + linking with object files
2535 2003-05-18 Vangelis Rokas (vrokas AT otenet.gr)
2537 * configure.in: configure for pic16 port,
2538 added --disable-pic16-port
2539 * sdccconf_in.h: added macro OPT_DISABLE_PIC16
2540 * src/SDCCmain.c: linkOptions is changed to set *,
2541 added if/endif conditional macros to remove options help
2542 messages from optionsTable when a port is not configured, added
2543 support for the PIc16 port in the ports table, when executing
2544 the compiler with no port specified on command line, a default
2545 port is selected with the new macro DEFAULT_PORT which is
2546 defined in port.h, in setDefaultOptions() linkOptions is removed
2547 from initialization assignment, since now it is a set,
2548 parseCmdLine uses setParseWithComma for linkOptions, in
2549 linkEdit() linkOptions are accessed with new function indexSet()
2550 which returns the i'th item of a set variable. See SDCCset.c, in
2551 linkEdit() when calling buildCmdLine(), added linkOptions as
2552 last argument. Now users can pass arguments to gplink via the
2553 -Wl option, main() uses pic16glue() to glue up pic16 programs
2554 * src/SDCCpeeph.c: various changes to support pic16
2555 * src/SDCCset.c: added function void *indexSet(set *, int) to
2556 return the i'th item of the set
2557 * src/SDCCset.h: added function prototype for indexSet()
2558 * src/SDCCsymt.c: in checkSClass(), added support for PIC16
2559 * src/clean.mk: added pic16 in CLEANALLPORTS variable
2560 * src/port.h: added TARGET_ID_PIC16,TARGET_IS_PIC16 macro,
2561 added macro DEFAULT_PORT
2562 * src/pic/main.c: corrected arguments of gplnk in _linkCmd
2563 * src/pic16/gen.c: bug fix in genCpl(), now the correct code is
2565 * src/pic16/glue.c: commented out some error producing lines
2566 * src/pic16/main.c: __config directives are commented out to stop
2567 gpasm complaining and test the linkage with gplink, _linkCmd and
2568 _asmCmd changed to be more gplink and gpasm friendly
2569 * src/pic16/peeph.def: peep rule 3 is commented out, since it
2570 produced an error when parsed, peep rule 12 is added to utilize
2571 movff, but it is commented out since the pCode does not support
2572 yet a command with 2 address arguments
2574 2003-05-18 <johan AT balder>
2576 * src/ds390/gen.c (genArrayInit): removed obsolete and buggy ARRAYINIT
2577 * src/ds390/main.c (genArrayInit): removed obsolete and buggy ARRAYINIT
2578 2003-05-17 Karl Bongers(apply patches from Martin Helmling)
2580 * debugger/mcs51/sdcdb.c,cmd.c,break.c and .h files.
2581 Added feature to script commands from file.
2583 2003-05-14 Bernhard Held <bernhard AT bernhardheld.de>
2585 * device/lib/_strtok.c: fixed bug #734355 by Lenny Story and Tim Woodall
2586 * src/SDCCutil.c: include ctype.h for win32
2588 2003-05-13 Bernhard Held <bernhard AT bernhardheld.de>
2590 * src/pic16/*: removed CR from many files, reported by Vangelis Rokas
2592 2003-05-12 Karl Bongers(apply development patches from Martin Helmling)
2594 * debugger/mcs51/sdcdb.c,simi.c,cmd.c,break.c and .h files.
2595 Fixed so you can set breakpoints prior to run, run does not stop
2596 on entry now. Add tbreak. Other enhancements and fixes for use
2599 2003-05-12 Borut Razem <borut.razem AT siol.net>
2601 * src/SDCCmain.c: fixed the problem with searching the DATADIR as the last resort on *nix
2603 2003-05-11 Borut Razem <borut.razem AT siol.net>
2605 * src/SDCCutil.c: WIN32 version of getBinPath() calls GetModuleFileName() to determine
2606 the path of bin directory, so that PATH is the only env. variable, which has to be set
2607 in case of standard installation.
2608 * src/ds390/ds390.dsp: increased value of /Zm option to 1000
2609 * src/pic/main.c: add quotes to file name parameters for gplink and gpasm
2610 * src/SDCCglobl.h, src/SDCCmain.c, doc/sdccman.lyx: added --print-search-dirs command line option
2612 2003-05-04 Bernhard Held <bernhard AT bernhardheld.de>
2614 * src/SDCCmain.c (linkEdit): fixed buffer overflow for gbz80
2615 * support/regression/Makefile: inter-port-clean is no longer nesessary, the
2616 temp files are in the port dir; clean the gen/test directory when
2617 generating new test.c
2618 * support/regression/ports/host/spec.mk: defined OBJEXT for target clean
2619 * support/regression/tests/vaargs.c: fixed gcc 3.3 warning
2620 * support/regression/tests/zeropad.c: added
2622 2003-05-09 <johan AT balder>
2624 * src/SDCCglue.c: fixed bug #597940
2626 2003-05-05 Karl Bongers(apply patches from Martin Helmling)
2628 * debugger/mcs51/sdcdb.c,simi.c,cmd.c,symtab.c and .h files.
2629 cache sfr, optimize next,step, fix off by one sourceline,
2630 support ddd list function.
2631 * sim/ucsim/cmd.src/newcmd.cc - small fix for sdcdb use.
2633 2003-05-04 Bernhard Held <bernhard AT bernhardheld.de>
2635 * support/regression/HTMLgen.py: added compare_s2f()
2636 * support/regression/Makefile: redo 1.27
2637 * support/regression/generate-cases.py: redo 1.5
2639 2003-04-30 Bernhard Held <bernhard AT bernhardheld.de>
2641 * support/regression/tests/float.c: workaround 33 bit hex constant
2642 * support/regression/tests/simplefloat.c: fix division for host
2644 2003-04-29 Scott Dattalo <scott AT dattalo.com>
2646 * src/pic/pcoderegs.c Applied patch from Jim Hawkridge <jim AT jimhawkridge.uk.eu.org>
2647 that tame's the PIC's over-aggressive optimizer.
2649 2003-04-29 Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
2651 * src.dsw, link/z80/aslink.h, link/z80/linkz80.dsp: z80 linker
2654 2003-04-29 Kevin Vigor <kevin AT vigor.nu>
2656 Initial support for DS80C400. "Hello world" runs on TINIm400
2659 2003-04-28 Karl Bongers(apply patches for Martin Helmling)
2661 * debugger/mcs51/sdcdb.c,simi.c,cmd.c,symtab.c and .h files.
2662 * Some notes on ddd usage added in debugger/README
2663 Martin Helmling adding more features and fixes for ddd GUI debugger.
2664 Code added for nexti, stepi, up, down, and other adjustments.
2666 2003-04-28 Scott Dattalo <scott AT DATTALO.COM>
2668 * src/pic/pCodepeep.c non-wildcard asmops are now handled
2669 * src/pic/peeph.def Added two rules to optimize carry manipulation
2670 * src/pic/* removed debug printfs
2672 2003-04-28 Bernhard Held <bernhard AT bernhardheld.de>
2674 * debugger/mcs51/cmd.c: added header newalloc.h
2676 2003-04-26 Bernhard Held <bernhard AT bernhardheld.de>
2678 * as/Makefile: new EXEEXT
2679 * as/z80/Makefile: remove trailing slash of BUILDIR
2680 * as/z80/clean.mk: new EXEEXT
2681 * Makefile.common.in: add to CFLAGS (and others), don't replace it
2682 * support/cpp2/Makefile.in: new EXEEXT
2683 * src/pic/glue.c (pic14emitRegularMap): fixed warning
2685 2003-04-24 Bernhard Held <bernhard AT bernhardheld.de>
2687 Cygwin's gcc always appends .exe: 'gcc -o a a.c' creates a.exe;
2688 EXEEXT was introduced to fix all related problems with targets
2689 "clean", "install" and "uninstall"; a couple of further flaws
2690 especially with "clean" have been fixed too
2691 * as/mcs51/Makefile.in
2696 * debugger/mcs51/Makefile.in
2697 * debugger/mcs51/clean.mk
2699 * link/z80/Makefile.in
2702 * packihx/Makefile.in
2704 * sim/ucsim/Makefile
2705 * sim/ucsim/clean.mk
2706 * sim/ucsim/avr.src/Makefile.in
2707 * sim/ucsim/avr.src/clean.mk
2708 * sim/ucsim/s51.src/Makefile.in
2709 * sim/ucsim/s51.src/clean.mk
2710 * sim/ucsim/xa.src/Makefile.in
2711 * sim/ucsim/xa.src/clean.mk
2712 * sim/ucsim/z80.src/Makefile.in
2713 * sim/ucsim/z80.src/clean.mk
2714 * sim/ucsim/main_in.mk
2715 * sim/ucsim/packages_in.mk
2716 * sim/ucsim/gui.src/Makefile.in
2717 * sim/ucsim/gui.src/serio.src/Makefile.in
2718 * sim/ucsim/gui.src/serio.src/clean.mk
2721 * support/cpp2/Makefile.in
2722 * support/cpp2/clean.mk
2723 * support/makebin/Makefile
2724 * support/makebin/clean.mk
2725 * support/scripts/sdcc_mingw32: --program-suffix no longer needed
2726 * doc/sdccman.lyx: --program-suffix no longer needed
2728 2003-04-23 Karl Bongers(apply patches for Martin Helmling)
2730 * debugger/mcs51/sdcdb.c,simi.c,cmd.c,..
2731 Martin Helmling added support for ddd GUI debugger.
2732 Code added to display assembly, set variables, and other commands
2733 to interface to ddd.
2735 2003-04-23 Bernhard Held <bernhard AT bernhardheld.de>
2737 * as/Makefile: fix target clean
2738 * as/clean.mk: fix target clean
2739 * as/z80/clean.mk: fix target clean
2741 2003-04-22 Bernhard Held <bernhard AT bernhardheld.de>
2743 * Makefile.common.in: added AT EXEEXT AT
2744 * configure.in: removed all mingw32 stuff
2745 * configure: rebuilt from configure.in
2746 * doc/sdccman.lyx: updated section "installation"
2747 * support/scripts/sdcc_mingw32: adapted to configure
2748 * support/scripts/sdcc_cygwin_mingw32: added
2750 2003-04-22 Scott Dattalo <scott AT dattalo.com>
2752 * src/pic Added object file support for the PIC port
2753 * src/pic Applied patch from Craig Franklin (this started the object file support)
2754 * src/regression Updated the PIC regression tests for object files
2756 2003-04-20 Borut Razem <borut.razem AT siol.net>
2758 * sdcc/as/mcs51/lklex.c: make getfid() more robust and fixed gcc warning:
2759 lklex.c: In function `getfid':
2760 lklex.c:203: warning: array subscript has type `char'
2761 * src/SDCCglobl.h: small change in stack handling macros, to avoid crash when compiled
2762 with MSVC with global optimization enabled (probably an cl compiler bug ;-)
2763 * support/Util/SDCCerr.c, support/Util/SDCCerr.h: added function fatal(), called from
2764 stack handling macros
2766 2003-04-19 Borut Razem <borut.razem AT siol.net>
2768 * "handling space characters in file path" task:
2769 * src/SDCCmacro.c: fixed bug in handlig quote at the end of line
2770 * support/Util/BuildCmd.c: define par as NULL if parameter value is invalid
2771 * support/Util/MySystem.h: make it self-sufficient
2772 * src/avr/main.c, src/ds390/main.c, src/mcs51/main.c, src/pic/main.c, src/xa51/main.c,
2773 src/z80/main.c, sdcc/as/mcs51/lklex.c:
2774 handling space characters in file path
2775 * src/SDCCmain.c: introduced setDataPaths() function, {datadir} macro
2776 (it will be used by assemblers, which have their own includes, e.g. gpasm)
2777 * support/Util/MySystem.c: handling space characters in executable's path
2779 2003-04-19 Bernhard Held <bernhard AT bernhardheld.de>
2781 * as/z80/Makefile: fix permanent rebuild of z80
2782 * sim/ucsim/gui.src/Makefile.in: target "install" builds the same packages as target "all"
2783 * support/regression/tests/bitfields.c: added Johan's bitfields.c
2785 2003-04-18 Kevin Vigor <kevin AT vigor.nu>
2787 * src/SDCCopt.c: add special case optimization to replace modulo by
2788 a power of two with a bitwise AND.
2790 2003-04-18 <johan AT balder>
2792 * src/mcs51/gen.c (getFreePtr): fixed bug #635354
2794 2003-04-17 <johan AT balder>
2796 * src/mcs51/ralloc.c (packRegsForAssign): fixed bug #716790 and removes lot's of redundant register usage around function calls
2797 * src/mcs51/ralloc.c (packRegisters): fixed bug #720667
2799 2003-04-13 Borut Razem <borut.razem AT siol.net>
2801 * doc/sdccman.lyx: updated info about #pragma SAVE/RESTORE nesting
2802 * configure.in, configure: fixed problems on cygwin/WinCVS environmet with ports.* line endings;
2803 fixed mingw problem in adl_NORMALIZE_PATH
2805 2003-04-12 Borut Razem <borut.razem AT siol.net>
2807 * fixed "#pragma SAVE/RESTORE can not be nested":
2808 * src/SDCC.lex: reworked pragma handling functions
2809 * sdcc/src/SDCCglobl.h: reworked stack handling macros
2810 * support/Util/SDCCerr.c, support/Util/SDCCerr.h: added E_STACK_VIOLATION error
2812 2003-04-12 Bernhard Held <bernhard AT bernhardheld.de>
2814 * src/SDCCutil.c (pathEquivalent): defined but not used
2815 * debugger/mcs51/sdcdb.c: replace SDCC_LIB_DIR
2816 * configure.in: remove sdcc_datadir, sdcc_lib_dir and sdcc_include_dir
2817 * configure: rebuilt from configure.in
2818 * sdccconf_in.h: remove SDCC_LIB_DIR and SDCC_INCLUDE_DIR
2819 * sdcc_vc_in.h: remove SDCC_LIB_DIR and SDCC_INCLUDE_DIR
2820 * device/include/Makefile.in: replace sdcc_datadir
2821 * device/lib/Makefile.in: replace sdcc_datadir
2822 * Makefile.common.in: add LDFLAGS from configure
2823 * packihx/Makefile.in: use LDFLAGS
2824 * src/Makefile.in: use LDFLAGS
2825 * support/cpp2/Makefile.in: add LDFLAGS from configure
2826 * support/makebin/Makefile: use LDFLAGS
2827 * .version: bumped version number to 2.3.5
2829 2003-04-12 Borut Razem <borut.razem AT siol.net>
2831 * completed "different paths" task:
2832 * src/SDCCmacro.c: fixed bug in handling quotes
2833 * src/SDCCutil.c, src/SDCCutil.c: rewritten getPrefixFromBinPath()
2834 * src/SDCCmain.c: _discoverPaths() replaced with setBinPaths(), setIncludePath() and setLibPath()
2836 2003-04-12 Bernhard Held <bernhard AT bernhardheld.de>
2838 * src/pic/pcoderegs.c (Remove1pcode): fix warning on alpha
2840 2003-04-11 kevin Vigor <kevin AT vigor.nu>
2842 * ds390/gen.c ds390/peeph.def: fix bug 706781
2844 2003-04-11 Borut Razem <borut.razem AT siol.net>
2846 * support/Util/dbuf.c, support/Util/dbuf.h: update to version 1.1.1 - re-added C++ stuff to make it still more portable
2848 2003-04-10 Scott Dattalo <scott AT dattalo.com>
2850 * src/pic/* Applied the pointer-to-function patch from Steve Tell.
2851 * src/pic/* Fixed several pointer bugs. (PIC port broke when the ruonly bit was
2852 set - this bit used to not be set...).
2853 * src/pic/gen.c Fixed buf 609268 ==> x = (x+1) & 0xf; generated
2854 bad code in PIC Port
2855 * src/regression/and2.c added to test bug 609268
2856 * src/regression/Makefile added and2.c to regression test
2859 2003-04-08 <johan AT CP255758-A>
2861 * src/mcs51/gen.c (gen51Code): display reg usage in --icode-in-asm
2862 * src/mcs51/ralloc.c (serialRegAssign): update the registers in use and save some slocs
2863 * src/SDCCicode.h: added riu to show the register usage in --icode-in-asm
2865 2003-04-07 Bernhard Held <bernhard AT bernhardheld.de>
2867 * configure.in: fully support prefix, exec_prefix, datadir, docdir;
2869 * support/cpp2/Makefile.in: fix bug #487815
2870 * configure: rebuilt from configure.in
2871 * Makefile.common.in: docdir changed, new path suffixes
2872 * sdccconf_in.h: new RETSIGTYPE, and other PATHs
2873 * sdcc_vc_in.h: reflect changes from sdccconf.h
2874 * src/SDCCglobl.h: remove *SEPARATOR_CHARS, they are now in sdccconf.h
2875 * src/SDCCutil.h: remove BINDIR hack
2876 * doc/sdccman.lyx: update new path hierarchy
2878 2003-04-06 Paul Stoffregen <paul AT pjrc.com>
2880 * src/SDCCpeeph.c: added okToRemoveSLOC test
2882 2003-04-06 Paul Stoffregen <paul AT pjrc.com>
2884 * device/lib/printf_fast.c: added leading zero format ("%06d", etc)
2886 2003-04-06 Paul Stoffregen <paul AT pjrc.com>
2888 * src/SDCCpeeph.c: added labelIsReturnOnly test
2889 * src/mcs51/peeph.def: Peephole 244: replace ljmp to ret with ret
2891 2003-04-05 <johan AT balder>
2893 * src/SDCCcse.c (cseAllBlocks): fixed bug #460088
2894 * src/SDCCloop.c (DEFSETFUNC): fixed bug #460088
2895 * src/SDCCopt.c (eBBlockFromiCode): fixed bug #460088
2896 * src/SDCCast.c: fixed a warning
2897 * src/SDCCast.h: fixed a warning
2898 * src/SDCCicode.c (operandFromAst): fixed a warning
2900 2003-04-04 <johan AT balder>
2902 * src/SDCCloop.c (DEFSETFUNC): undid the fix for bug #519584
2903 * src/SDCCast.c (decorateType): fixed bug #715076
2904 * src/SDCC.y: fixed bug #702907
2906 2003-04-03 <johan AT balder>
2908 * device/lib/_mulint.c (_muluint): new #pragma LESS_PEDANTIC
2909 * src/SDCCopt.c (eBBlockFromiCode): new #pragma LESS_PEDANTIC
2910 * src/SDCCglobl.h (PRAGMA_LESSPEDANTIC): new #pragma LESS_PEDANTIC
2911 * src/SDCC.lex (doPragma): new #pragma LESS_PEDANTIC
2912 * src/SDCCmain.c (parseCmdLine): new #pragma LESS_PEDANTIC
2914 2003-04-03 Bernhard Held <bernhard AT bernhardheld.de>
2916 * _decdptr.c: fix return values
2917 * _gptrget.c: fix return values
2918 * _gptrgetc.c: fix return values
2919 * _gptrput.c: fix return values
2920 * _mulint.c: fix return values
2921 * as/z80/Makefile: fix 'make -j' problem
2923 2003-04-02 Bernhard Held <bernhard AT bernhardheld.de>
2925 * Makefile.common.in: unused PORT, SCC and SAS removed, fixed docdir
2926 * configure.in: big cleanup, updated to autoconf 2.5x
2927 * configure: rebuilt from configure.in
2928 * sdccconf_in.h: new RETSIGTYPE, and other PATHs
2929 * sdcc_vc_in.h: reflect changes from sdccconf.h
2930 * doc/Makefile: fixed a flaw in "make install"
2932 2003-04-02 <johan AT balder>
2934 * src/ds390/gen.c (genCmp): no comments
2935 * src/mcs51/gen.c (genCmp): no comments
2936 * src/SDCCopt.c (eBBlockFromiCode): detect missing return values
2937 * src/SDCCast.c (ast_print): fixed the function type in --dumptree
2939 2003-04-01 Bernhard Held <bernhard AT bernhardheld.de>
2941 * support/regression/generate-cases.py: place generated file in given sub directory
2942 * support/regression/ports/host/spec.mk: prevent removal of testfwk.o
2943 * support/regression/Makefile: improvements for 'make -j';
2944 side effect: it's simpler and faster now
2946 2003-03-31 Borut Razem <borut.razem AT siol.net>
2948 * src/z80/main.c: link-{port} and as-{port} defined without path
2949 * src/src.dsp: support/Util/MySystem.h and src/SDCCutil.h added to project
2951 2003-03-31 Bernhard Held <bernhard AT bernhardheld.de>
2953 * Makefile, src/Makefile.in: add dependencies, so that 'make -j' works
2955 2003-03-30 Borut Razem <borut.razem AT siol.net>
2957 * support/Util/BuildCmd.c, support/Util/BuildCmd.h: rewrite buildCmdLine(),
2958 changed type of list parameter to set
2959 * src/ds390/main.c: changed type of parameter asmOptions to set in _tininative_do_assemble()
2960 * src/port.h: changed type of do_assemble() parameter to set
2961 * src/SDCCmain.c: type of asmOptions changed to set, introduced setParseWithComma(),
2962 sdcpp defined without path, removed variable VersionString, introduced set binPathSet,
2963 definition of "cppoutfilename" macro with NULL value in preProcess()
2964 * src/SDCCglobl.h: included "SDCCset.h", added declaration of setParseWithComma()
2965 * src/SDCCglue.c: removed variable VersionString, inroduced spacesToUnderscores()
2966 * support/Util/MySystem.c, support/Util/MySystem.h: rewrite, char *ExePathList[]
2967 replaced with set *binPathSet
2968 * shash_add() deallocates the item, if allready exsists, before adding the new one
2969 * src/SDCCmacro.c: handling macros with empty or NULL values in _evalMacros()
2971 2003-03-30 Scott Dattalo <scott AT dattalo.com>
2973 * src/pic/gen.c: Commit patch from Steve Tell <tell AT telltronics.org> that fixes
2974 a nested for loop bug in the PIC port
2975 * src/regression/nestfor.c: new regression test file Steve wrote to test nested
2978 2003-03-29 Bernhard Held <bernhard AT bernhardheld.de>
2980 * support/Util/dbuf.h: remove C++ stuff to make it portable
2982 2003-03-28 Borut Razem <borut.razem AT siol.net>
2984 * src/SDCC.lex: Fix for bug #711240: dynamic buffer handling of C
2985 literal strings in stringLiteral()
2986 * support/Util/dbuf.c, support/Util/dbuf.h: added: dynamic buffer handling
2987 * src/Makefile.bcc, src/Makefile.in, src\src.dsp: added support/Util/dbuf.c
2990 2003-03-27 Paul Stoffregen <paul AT pjrc.com>
2992 * src/SDCCpeeph.c (pcDistance): accurate byte distance for mcs51
2994 2003-03-26 <johan AT balder>
2996 * src/mcs51/gen.c (saveRegisters): catched symbol abuse
2997 * src/ds390/gen.c (saveRegisters): catched symbol abuse
2998 * src/SDCCast.c (decorateType): fixed " -v < 3"
3000 2003-03-23 Bernhard Held <bernhard AT bernhardheld.de>
3002 * doc/cdbfile.html: removed, replaced by cdbfileformat.lyx
3003 Added Lenny Story's debug infrastructure changes:
3004 * src/Makefile.in: added new files cdbFile.c and SDCCdebug.c
3005 * src/Makefile.bcc: added new files cdbFile.c and SDCCdebug.c
3006 * src/cdbFile.c: added
3007 * src/SDCCdebug.c: added
3008 * src/SDCCdebug.h: added
3009 * src/SDCCast.c (createFunction)
3010 * src/SDCCglue.c (emitRegularMap, emitStaticSeg, emitOverlay, glue)
3011 * src/SDCCmain.c (parseCmdLine, main)
3012 * src/SDCCmem.c (redoStackOffsets)
3013 * src/SDCCsymt.c (cdbStructBlock, cdbTypeInfo, cdbSymbol, cdbStruct, cdbStructBlock)
3016 * src/avr/gen.c (genAVRCode)
3017 * src/ds390/gen.c (gen390Code)
3018 * src/mcs51/gen.c (gen51Code)
3019 * src/pic/gen.c (genpic14Code)
3020 * src/pic/glue.c (pic14emitRegularMap, pic14emitStaticSeg, pic14emitOverlay, picglue)
3021 * src/xa51/gen.c (genXA51Code)
3022 * src/SDCCast.c: fixed "void foo(void){char c; -c < 0;}"
3024 2003-03-22 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
3026 * src/mcs51/gen.c (genCodePointerGet): quicker code for bug #700797
3027 * src/mcs51/peeph.def: added rules 177, 241.x to 243, touched 181, 182.x, 193.x
3029 2003-03-22 <johan AT balder>
3031 * src/SDCCicode.c (geniCodeDerefPtr): fixed bug #698231
3033 2003-03-21 Bernhard Held <bernhard AT bernhardheld.de>
3035 * support/scripts/sdcc_mingw32: adapted to configure from autoconf 2.54
3036 * doc/cdbfileformat.lyx: added, written by Lenny Story
3037 * doc/Makefile: added cdbfileformat.lyx
3038 * doc/clean.mk: added cdbfileformat.lyx
3040 2003-03-20 Bernhard Held <bernhard AT bernhardheld.de>
3042 * src/mcs51/peeph.def: fix bug #705773
3044 2003-03-20 <johan AT balder>
3046 An sfr/sbit can have an "at #" AND an initializer
3047 * src/SDCCsymt.c (checkSClass):
3048 * src/SDCCmem.c (allocGlobal):
3049 * src/SDCCmem.c (allocLocal):
3050 * src/SDCCast.c (createBlock):
3052 2003-03-17 Bernhard Held <bernhard AT bernhardheld.de>
3054 * src/ds390/peeph.def: fix bug #704878: added rule 213.b suggested by Jan Rejlek
3056 2003-03-16 <johan AT balder>
3058 Undid the hackup of const and volatile, the problem is much bigger
3060 * src/SDCCast.c:1.171
3061 * src/SDCCglue.c:1.138
3062 * src/SDCCicode.c:1.146
3063 * src/SDCCsymt.c:1.150
3064 * src/SDCCval.c:1.65
3066 2003-03-15 Bernhard Held <bernhard AT bernhardheld.de>
3068 * src/mcs51/ralloc.c (packRegsForAssign): fixed bug #703541
3069 * src/ds390/gen.c (genAddrOf): fixed bug #704087
3071 2003-03-13 <johan AT balder>
3073 Hackup const and volatile modifiers in type chains a bit:
3075 * src/SDCCast.c:1.169
3076 * src/SDCCglue.c:1.136
3077 * src/SDCCicode.c:1.143
3078 * src/SDCCsymt.c1.146
3079 * src/SDCCsymt.h1.59
3080 * src/SDCCval.c:1.63
3082 2003-03-12 <johan AT balder>
3084 * src/SDCCBBlock.h: more LRH debugging junk
3085 * src/SDCCcflow.h: more LRH debugging junk
3086 * src/SDCCloop.c: more LRH debugging junk
3087 * src/SDCC.y (struct_declaration): fixed bug #697590
3088 * src/SDCCsymt.[hc] (cloneSpec): NEVER EVER use this again
3089 * src/ds390/gen.c (aopForRemat): fixed bug #700031
3090 * src/SDCCglue.c (emitStaticSeg): fixed bug #700797
3092 2003-03-11 Kevin Vigor <kevin AT vigor.nu>
3093 * src/SDCCpeeph.c: quit being lazy and made proper fix (peephole
3094 test function names must now match exactly).
3095 * src/SDCCcse.c: added special case in findCheaperOp to allow
3096 extending a short integer. Makes less awful code for bug 700121 test case.
3098 2003-03-11 Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
3100 * as/mcs51/lkmain.c: Added ASlink-Warning to messages
3101 * as/mcs51/lkaomf51.c: Fixed bug when linking asmblink example
3103 2003-03-11 Kevin Vigor <kevin AT vigor.nu>
3105 * src/SDCCpeeph.c: fix so that operandsNotEqualX functions are
3106 actually called (operandsNotEqual() was called for all
3107 operandsNotEqualX tests).
3109 2003-03-11 Kevin Vigor <kevin AT vigor.nu>
3111 * src/SDCCcse.c: fix findCheaperOp to prevent replacing int types
3112 with shorter literals. Fixes bug 700121.
3114 2003-03-11 <johan AT balder>
3116 * src/SDCCsymt.c (compareType): a (void *) can be assigned to any pointer
3118 2003-03-11 Bernhard Held <bernhard AT bernhardheld.de>
3120 * src/SDCCloop.c (mergeRegions): an evil beast is dead
3121 * src/SDCCmain.c (preProcess): minor cleanup: eliminate preOutName
3123 2003-03-10 Borut Razem <borut.razem AT siol.net>
3125 * src/SDCCmain.c: pipe preprocessor's output
3126 * support/Util/MySystem.c, support/Util/MySystem.h: added my_popen()
3127 * sdcc_vc_in.h: define pclose as _pclose for WIN32
3128 * src/SDCCglue.c, src/SDCCglue.h: added set pipeSet, added function closePipes,
3129 which closes all pipes in pipeSet set
3130 * src/SDCCset.c: free deleted item in function deleteSetItem()
3131 * src/src.dsp, src/z80/z80.dsp: files support/Util/BuildCmd.c and support/Util/MySystem.c
3132 moved from z80 to src subproject
3133 * .version: increased version number to 2.3.4
3135 2003-03-10 Bernhard Held <bernhard AT bernhardheld.de>
3137 * support/regression/ports/mcs51/spec.mk: increase timeout for CF's sparc to 30s
3138 * support/regression/ports/ds390/spec.mk: increase timeout for CF's sparc to 25s
3139 * support/regression/ports/xa51/spec.mk: fix typo
3141 2003-03-09 Bernhard Held <bernhard AT bernhardheld.de>
3143 * src/SDCCglobl.h: PATH_MAX is already defined in mingw32 headers
3145 2003-03-09 Borut Razem <borut.razem AT siol.net>
3147 * src/SDCCmain.c: pipe preprocessor's output
3148 * support/Util/MySystem.c, support/Util/MySystem.h: added my_popen()
3149 * sdcc_vc_in.h: define pclose as _pclose for WIN32
3150 * src/SDCCglue.c, src/SDCCglue.h: added set pipeSet, added function closePipes,
3151 which closes all pipes in pipeSet set
3152 * src/SDCCset.c: free deleted item in function deleteSetItem()
3153 * src/src.dsp, src/z80/z80.dsp: files support/Util/BuildCmd.c and support/Util/MySystem.c
3154 moved from z80 to src subproject
3156 2003-03-09 Borut Razem <borut.razem AT siol.net>
3158 * src/SDCCglue.c: re-implemented tempfilename() and tempfile(): using mkstemp() if available
3159 * src/SDCCsymt.h: fixed MSVC and BORLANDC compilation (included SDCCglobl.h instead srccconf.h)
3160 * sdcc_vc_in.h: explicitly undefined HAVE_MKSTEMP which is not available on BORLANDC and MSVC
3161 * src/SDCCset.h: removed inclusion of sdccconf.h or sdcc_vc.h
3162 * src/SDCCglobl.h: unification of WIN32 native definitions
3164 2003-03-09 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
3166 * src/mcs51/gen.c: applied in-/dec patch mentioned on sdcc-devel 2003-03-01
3168 2003-03-08 Bernhard Held <bernhard AT bernhardheld.de>
3170 * src/configure.in: check for endianess (even while cross-compiling)
3171 * src/configure: check for endianess (even while cross-compiling)
3172 * src/configure_in.h: check for endianess (even while cross-compiling)
3173 * src/avr/gen.c: remove old endianess stuff
3174 * src/mcs51/gen.c: remove old endianess stuff
3175 * src/ds390/gen.c: remove old endianess stuff
3176 * src/pic/gen.c: remove old endianess stuff
3177 * src/pic/genarith.c: remove old endianess stuff
3178 * src/pic/glue.c: fix endianess check
3179 * src/pic16/gen.c: remove old endianess stuff
3180 * src/pic16/genarith.c: remove old endianess stuff
3181 * src/pic16/glue.c: fix endianess check
3182 * src/xa51/gen.c: remove old endianess stuff
3183 * src/z80/gen.c: fix endianess check
3184 * src/SDCCglue.c: fix endianess check
3185 * src/ds390/peeph.def: fix bug 700036
3187 2003-03-08 Bernhard Held <bernhard AT bernhardheld.de>
3189 * src/SDCCsymt.h: use appropriate data-types on host for SDCC's int and long
3190 * src/configure: find appropriate data-types on host for SDCC's int and long
3191 * src/configure.in: find appropriate data-types on host for SDCC's int and long
3192 * src/sdccconf_in.h: find appropriate data-types on host for SDCC's int and long
3193 * src/xa51/gen.c: use %d, not %ld for 4 byte variables
3195 2003-03-07 <johan AT balder>
3198 some minor cleanups before the big shot
3199 OP_DEFS and OP_USES now use Kevin's protection
3200 new option --nolabelopt
3211 * src/ds390/ralloc.c:
3212 * src/mcs51/ralloc.c:
3214 * src/xa51/ralloc.c:
3217 2003-03-06 Bernhard Held <bernhard AT bernhardheld.de>
3219 * src/pic/pcode.c (get_op): fix 64 bit warnings
3220 * src/pic/pcode.c (pCode2str): fix 64 bit warnings
3221 * src/SDCChasht.c (newHashTable): fix 64 bit warnings
3222 * src/SDCCsymt.c (checkTypeSanity): fix 64 bit warnings
3223 * support/regression/tests/malloc.c: fix 64 bit warnings
3225 2003-03-04 Bernhard Held <bernhard AT bernhardheld.de>
3227 * src/mcs51/gen.c (genMinus): fixed bug 696436
3229 2003-03-02 Borut Razem <borut.razem AT siol.net>
3231 * src/SDCCmain.c: added BORLANDC, corrected MSVC in printVersionInfo()
3233 2003-02-26 Bernhard Held <bernhard AT bernhardheld.de>
3235 * configure.in: test for mkstemp
3236 * sdccconf_in.h: add HAVE_MKSTEMP
3238 2003-02-24 Bernhard Held <bernhard AT bernhardheld.de>
3240 * device/include/ctype.h: removed warning while using --stack-auto
3241 * device/include/malloc.h: removed warning while using --stack-auto
3242 * device/include/string.h: removed warning while using --stack-auto
3244 2003-02-23 Borut Razem <borut.razem AT siol.net>
3246 * src/asm.h: corrected assertion in function printILine(): _pipe() was not executed on MSVC,
3247 because NDEBUG is defined (see man assert)
3248 * sdcc_vc_in.h: vsnprintf is defined as _vsnprintf on MSVC
3250 2003-02-23 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
3252 * src/mcs51/gen.c (genUminusFloat): avoided dptr in-/decrement for xdata variables
3253 * src/mcs51/peeph.def: added rule suggested by Gernot Fink, white space/comment changes
3255 2003-02-18 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
3257 * src/SDCCpeeph.c: added peephole conditions testing for same arguments
3258 * src/mcs51/peeph.def: added rules 238a-d which remove redundant moves
3260 2003-02-18 <johan AT balder>
3262 * as/mcs51/asmain.c (asmbl): module can start with a digit
3263 * as/z80/asmain.c (asmbl): module can start with a digit
3265 2003-02-16 Bernhard Held <bernhard AT bernhardheld.de>
3267 * sim/ucsim/mkecho: inserted #!/bin/sh for Cygwin, so that it's executable
3268 * src/asm.c: fix pipe() for Mingw32
3270 2003-02-15 Bernhard Held <bernhard AT bernhardheld.de>
3272 * src/SDCCglue.h: make tmpfileNameSet available for preOutName
3273 * src/SDCCmain.c (preProcess): make sure, that preOutName will be deleted;
3274 make -V work again; --c1mode reads now from stdin
3275 * doc/sdccman.lyx: added --c1mode
3276 * support/Util/SDCCerr.c: new messages for c1 mode
3277 * support/Util/SDCCerr.h: new messages for c1 mode
3278 * src/SDCC.lex (checkCurrFile): test if fullSrcFileName is NULL for c1mode
3280 2003-02-15 <johan AT balder>
3282 * src/asm.c: new options: --no-c-code-in-asm and --i-code-in-asm
3284 2003-02-14 Bernhard Held <bernhard AT bernhardheld.de>
3286 * doc/sdccman.lyx: Environment variables, -o and other minor things
3288 2003-02-14 <johan AT balder>
3290 * src/xa51/main.c: before anyone really tries to use it :)
3292 * Install doc's in share/sdcc/doc
3293 * removed some obsolete files
3294 * Do a proper make distclean and uninstall
3295 M Makefile.common.in
3298 M device/include/Makefile.in
3299 M device/lib/Makefile.in
3302 M sim/ucsim/doc/Makefile.in
3305 R src/xa51/peeph.rul
3306 M support/cpp2/Makefile.in
3307 M support/makebin/Makefile
3310 2003-02-13 Bernhard Held <bernhard AT bernhardheld.de>
3312 * support/regression/ports/host/spec.mk: use cc as host compiler for max osx
3314 2003-02-10 Borut Razem <borut.razem AT siol.net>
3316 * doc/bccinst.txt, packihx/packihx.c, sdcc_vc_in.h, src/SDCCset.h,
3317 support/cpp2/config.in: Borland C++ build doesn't depend on Cygwin configure
3318 * Bcc.ini, Makefile.bcc, as/mcs51/Makefile.bcc,
3319 device/examples/ds390/tinitalk/Makefile.bcc, packihx/Makefile.bcc,
3320 support/cpp2/Makefile.bcc, src/Makefile.bcc, src/avr/Makefile.bcc,
3321 src/ds390/Makefile.bcc, src/izt/Makefile.bcc, src/mcs51/Makefile.bcc,
3322 src/pic/Makefile.bcc, src/pic16/Makefile.bcc, src/xa15/Makefile.bcc,
3323 src/z80/Makefile.bcc: Borland Makefile cleanup
3324 * as/z80/Makefile.bcc: Added Borland Makefile
3325 * support/cpp2/borland.h: Removed
3327 2003-02-10 Bernhard Held <bernhard AT bernhardheld.de>
3329 * doc/sdccman.lyx: new pragma NOIV by "Johannes Stezenbach" <js AT convergence.de>
3330 * src/SDCC.lex: new pragma NOIV
3331 * src/SDCCglobl.h: new pragma NOIV
3332 * src/SDCCmem.c: new pragma NOIV
3334 2003-02-09 Bernhard Held <bernhard AT bernhardheld.de>
3336 * src/SDCCmain.c: signal handling is switched off by SDCC_LEAVE_SIGNALS
3338 2003-02-09 Bernhard Held <bernhard AT bernhardheld.de>
3340 * src/SDCCmain.c: signal handling is switched off by --debug
3341 * doc/Makefile: small fix for install; use clean.mk again
3342 * doc/clean.mk: clean *.pdf and *.html too
3344 2003-02-08 Bernhard Held <bernhard AT bernhardheld.de>
3346 * device/lib/_mulint.c: small fix for large/ds390 --int-long-reent resp. --stack-auto
3347 * device/lib/printfl.c: fix a ds390 bug by making it portable
3348 * src/SDCCsymt.c (initCSupport): fix compile warning on Cygwin
3349 * src/SDCCopt.c (cnvToFloatCast): fix compile warning on Cygwin
3350 * src/SDCCopt.c (cnvFromFloatCast): fix compile warning on Cygwin
3351 * debugger/mcs51/cmd.c: converted multi-line string literals
3352 * sim/ucsim/globals.cc: converted multi-line string literals
3353 * src/SDCCmain.c: introduced signal handler to remove temp files
3354 * doc/Makefile: small tweaks, implement clean
3355 * doc: removed generated files
3357 2003-02-05 Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
3359 * as/mcs51/aslink.h, as/mcs51/lkihx.c, as/mcs51/lkrloc.c: Applied
3360 patch from Jan Rejlek <jr AT apex-lib.cz> to fix Bug 677692: "Extended
3361 Address Record is not correctly generated for DS390."
3363 2003-02-02 Borut Razem <borut.razem AT siol.net>
3365 * Makefile.bcc: removed non existing cpp project and non compilable izt project from makefile
3366 * as/mcs51/asm.h: fixed compilation with Borland C
3367 * support/cpp2/Makefile.bcc: added rule to generate auto-host.h
3368 * support/cpp2/auto-host_vc_in.h: fixed compilation with Borland C
3369 * src/mcs51/mcs51a.dsp: corrected misspelled project name from msc51a to mcs51a
3370 * src/avr/Makefile.bcc, src/ds390/Makefile.bcc, src/izt/Makefile.bcc,
3371 src/mcs51/Makefile.bcc, src/pic16/Makefile.bcc, src/xa51/Makefile.bcc,
3372 src/z80/Makefile.bcc: delete $(LIB) only if exist
3373 * src/Makefile.bcc, src/pic/Makefile.bcc: fixed compilation with Borland C
3375 2003-02-02 Bernhard Held <bernhard AT bernhardheld.de>
3377 * device/include/malloc.h: introduced NULL
3378 * device/include/string.h: introduced NULL
3379 * device/include/stdlib.h: introduced NULL
3380 * device/lib/_memcpy.c: removed NULL
3381 * device/lib/_strcat.c: removed NULL
3382 * device/lib/_strchr.c: removed NULL
3383 * device/lib/_strcmp.c: removed NULL
3384 * device/lib/_strcpy.c: removed NULL
3385 * device/lib/_strcspn.c: removed NULL
3386 * device/lib/_strlen.c: removed NULL
3387 * device/lib/_strncat.c: removed NULL
3388 * device/lib/_strncmp.c: removed NULL
3389 * device/lib/_strncpy.c: removed NULL
3390 * device/lib/_strpbrk.c: removed NULL
3391 * device/lib/_strrchr.c: removed NULL
3392 * device/lib/_strspn.c: removed NULL
3393 * device/lib/_strstr.c: removed NULL
3394 * device/lib/_strtok.c: removed NULL
3395 * device/lib/malloc.c: removed NULL, include own header
3397 2003-02-02 <johan AT balder>
3399 * 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
3400 * support/regression/fwk/lib/testfwk.c: div and mod isn't broken anymore
3401 * regressions ds390/spec.mk and mcs51/spec.mk (timeout): my good old balder isn't fast enough for some tests
3402 * src/z80/gen.c (genZ80Code): added c-lines in asm comments
3403 * as/z80/asm.h (NINPUT): increased for long c-comments in regression tests
3404 * src/z80/gen.c (genRightShiftLiteral): fixed the (char)(-3)>>8 (I think)
3406 2003-02-01 Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
3408 * src/SDCCmain.c: Fixed bug 678574: "ds390: ASlink-Error-Stack overlaps
3411 2003-02-01 <johan AT balder>
3413 * src/SDCCval.c (valBitwise): fixed Karl's "2 | (1<<8)"
3415 2003-01-31 <johan AT CP255758-A>
3417 * src/ds390/main.c (_ds390_genAssemblerPreamble): applied Jan Rejlek's >64K startup patch
3419 2003-01-30 <johan AT balder>
3421 * src/SDCCBBlock.c: automatic bug detection
3422 * src/SDCCicode.c: automatic bug detection
3424 2003-01-29 Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
3426 * src/SDCCglobl.h: now --xram-size 0 works
3427 * src/SDCCmain.c: now --xram-size 0 works
3429 2003-01-29 <johan AT balder>
3431 * src/almosteverything: changed OP_DEFS and OP_USES from macros to functions to catch symbol abuse (a hot topic in the bug list :)
3433 2003-01-29 Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
3435 * as/mcs51/aslink.h: Added options --xram-size and --code-size
3436 * as/mcs51/lkdata.c: Added options --xram-size and --code-size
3437 * as/mcs51/lkmain.c: Added options --xram-size and --code-size
3438 * as/mcs51/lkmem.c: Added options --xram-size and --code-size
3439 * src/SDCCglobl.h: Added options --xram-size and --code-size
3440 * src/SDCCmain.c: Added options --xram-size and --code-size
3442 2003-01-28 Bernhard Held <bernhard AT bernhardheld.de>
3444 * src/ds390/gen.c: fix deps by replacing <common.h> with "common.h"
3445 * src/SDCC.lex: rename P_OVERLAY to P_OVERLAY_ for cross-gcc 3.2 MINGW32
3447 2003-01-27 <johan AT balder>
3449 * src/SDCC.y: fixed bug #613764
3451 2003-01-26 <johan AT balder>
3453 * src/SDCClrange.c: fixed Bernhard's "char * code ptr = &c"
3454 * src/SDCCsymt.h: fixed bug #673374
3455 * src/SDCCglue.c: fixed bug #661910
3456 * src/SDCCast.c: fixed bug #458099 and 673374
3458 2003-01-26 Bernhard Held <bernhard AT bernhardheld.de>
3460 * as/mcs51/strcmpi.c: added, provides Aurelien Jarno's as_strcmpi(); strcmpi() is not ANSI
3461 * as/mcs51/strcmpi.h: added
3462 * as/mcs51/asm.h: remove ugly "#define strcmpi strcmp"
3463 * as/mcs51/aslink.h: remove ugly "#define strcmpi strcmp"
3464 * as/mcs51/asmain.c: strcmpi -> as_strcmpi
3465 * as/mcs51/assym.c: strcmpi -> as_strcmpi
3466 * as/mcs51/lkmem.c: strcmpi -> as_strcmpi
3467 * as/mcs51/lknoice.c: strcmpi -> as_strcmpi
3468 * as/mcs51/lksym.c: strcmpi -> as_strcmpi
3469 * as/mcs51/Makefile.aslink: new module strcmpi
3470 * as/mcs51/Makefile.asx8051: new module strcmpi
3471 * as/mcs51/Makefil.bcc: new module strcmpi
3472 * as/mcs51/Makefile.in: new module strcmpi
3473 * sim/ucsim/s51.src/uc390.cc (get_mem_size): make RAM big enough for tinibios
3475 2003-01-26 <johan AT balder>
3477 * src/SDCCglue.c: reverted back to 1.124
3478 * src/SDCCast.c: reverted back to 1.156
3479 * src/mcs51/gen.c (aopGet): applied Frieder's efficiency patch
3481 2003-01-25 <johan AT balder>
3483 * src/SDCCglue.c: A better fix for bug #661910
3484 * src/SDCCast.c: A better fix for bug #661910
3485 * src/SDCCglue.c (emitRegularMap): That was a little too efficient
3487 2003-01-24 Bernhard Held <bernhard AT bernhardheld.de>
3489 * src/Makefile.in: remove spawn.o
3490 * src/SDCCmain.c: remove spawn.h
3491 * src/SDCCmain.c (printVersionInfo): report MINGW32 instead of UNIX
3492 * src/spawn.c: removed
3493 * src/spawn.h: removed
3494 * support/regression/ports/ds390/spec.mk: link with -r
3496 2003-01-24 <johan AT CP255758-A>
3498 * src/ds390/gen.c (aopOp): fixed bug #667458
3499 * src/SDCCglue.c (emitRegularMap): fixed bug #458099 again
3500 * src/SDCCast.c (createIvalCharPtr): fixed bug #661910
3501 (createIvalCharPtr): an ival doesn't always have a storage class anymore
3503 2003-01-24 Bernhard Held <bernhard AT bernhardheld.de>
3505 * src/mcs51/peeph.def: better assembler identation by Frieder
3506 * src/mcs51/gen.c: better assembler identation by Frieder
3508 2003-01-22 Bernhard Held <bernhard AT bernhardheld.de>
3510 * as/z80/string.h: removed for gcc 3.2
3511 * support/makebin/makebin.c: #include <string.h> for gcc 3.2
3512 * src/pic/pcode.c (get_op_from_instruction): fix concatenation of string literals with __FUNCTION__ for gcc 3.2
3514 2003-01-19 Bernhard Held <bernhard AT bernhardheld.de>
3516 * src/SDCCmain.c (linkEdit): rename mem and map files even in case of failure
3517 * src/SDCCpeeph.c (replaceRule): fix bug #663503
3518 * support/regression/Makefile: separate temp files for ports
3519 * support/regression/generate-cases.py: separate temp files for ports
3520 * src/mcs51/peeph.def: Frieder: removed 237 (obsolete by 236g and 105); added 237 a/b
3521 * src/ds390/peeph.def: Frieder: removed 237 (obsolete by 236g and 105); added 237 a/b
3523 2003-01-19 Bernhard Held <bernhard AT bernhardheld.de>
3525 * moved tinitalk to device/examples/ds390
3527 2003-01-14 Bernhard Held <bernhard AT bernhardheld.de>
3529 * as/mcs51/lkmem.c: rflag is for DS390
3530 * src/SDCCglobl.h: removed out_name and options stackOnData, genericPtr
3531 * src/SDCCmain.c (optionsTable, setDefaultOptions): removed --stack-after-data and --generic
3532 (linkEdit): move mem- and map-files the same way as ihx-files
3533 * src/z80/main.c (_setDefaultOptions): removed --generic
3534 * src/SDCCmain.c (_processC1Arg, parseCmdLine, main): --c1mode works again
3535 * src/SDCCglue.c (createInterruptVect, glue): --c1mode works again
3536 * src/pic/glue.c (picglue): --c1mode works again
3537 * src/pic16/glue.c (pic16glue): --c1mode works again
3538 * src/asm.c (printCLine): fix #660034
3540 2003-01-13 Bernhard Held <bernhard AT bernhardheld.de>
3542 * src/ds390/peeph.def: fix #123; add 14 rules by Fiorenzo D. Ramaglia <fd.ramaglia AT tin.it>, 1 by Frieder
3543 * src/mcs51/peeph.def: fix #123; add 14 rules by Fiorenzo, 1 by Frieder
3544 * src/mcs51/gen.c (genFunction): emit r0 instead of ar0 by Fiorenzo
3545 * as/mcs51/lkmem (summary): better fix for sp problem
3546 * src/SDCCglue.c (glue): __start_stack - 1, saves 1 byte!
3547 * src/ds390/main.c (_ds390_finaliseOptions, _tininative_finaliseOptions): stack_loc = 0x400008
3548 * support/regression/ports/*/spec.mk: moving testfwk-object to port dir allow parallel execution of regression tests
3549 remove --stack-after-data
3551 2003-01-12 Bernhard Held <bernhard AT bernhardheld.de>
3553 * src/SDCCmain.c (main): port->finaliseOptions() moved for z80 linking
3554 * src/SDCCutil.c (join): ugly bug: missing '\0'
3555 * as/mcs51/lkmem.c (summary): sp on address 7 is safe
3557 2003-01-11 Bernhard Held <bernhard AT bernhardheld.de>
3559 * src/SDCCmain.c (assemble, linkEdit): preparations for -o
3561 * src/pic/main.c (_asmCmd): gpasm supports -o
3562 * src/z80/main.c: more general macros
3563 * device/lib/Makefile.in: remove intermediate files
3565 2003-01-11 Bernhard Held <bernhard AT bernhardheld.de>
3567 * .version: Bumped version number to 2.3.3
3568 * src/SDCCBBlock.c: new option -o
3569 * src/SDCCglobl.h: new option -o
3570 * src/SDCCglue.c: new option -o
3571 * src/SDCCmain.c: new option -o
3572 * src/asm.c: new option -o
3573 * src/ds390/main.c: new option -o
3574 * src/pic/glue.c: new option -o
3575 * src/pic/pcode.c: new option -o
3576 * src/pic/ralloc.c: new option -o
3577 * src/pic16/glue.c: new option -o
3578 * src/pic16/pcode.c: new option -o
3579 * src/pic16/ralloc.c: new option -o
3580 * src/z80/main.c: new option -o
3581 * device/lib/Makefile.in: use -o
3582 * support/regression/ports/ds390/spec.mk: use -o
3583 * support/regression/ports/gbz80/spec.mk: use -o
3584 * support/regression/ports/mcs51/spec.mk: use -o
3585 * support/regression/ports/mcs51-stack-auto/spec.mk: use -o
3586 * support/regression/ports/z80/spec.mk: use -o
3587 * support/regression/ports/ucz80/spec.mk: use -o
3588 * support/regression/ports/xa51/spec.mk: use -o
3589 * support/regression/fwk/lib/timeout.c: fix usage string
3591 2003-01-09 Bernhard Held <bernhard AT bernhardheld.de>
3592 * src/mcs51/gen.c (genPlus): replaced "mov b,acc" by "mov b,a" Fiorenzo D. Ramaglia <fd.ramaglia AT tin.it>
3594 2003-01-07 <johan AT balder>
3596 * src/SDCCast.c (decorateType): fixed bug #600035
3598 2003-01-07 Bernhard Held <bernhard AT bernhardheld.de>
3599 * as/mcs51/lkmem.c: added several l-modifiers to printf to remove warnings
3600 * as/mcs51/lkaomf51.c: #include <ctype.h> to remove warnings
3601 * src/pic/main.c (_hasNativeMulFor): outcommented unused variables to remove warnings
3602 * src/pic/pcode.c: outcommented unused variable to remove warnings
3603 * src/pic/ralloc.c: outcommented unused variable to remove warnings
3605 2003-01-06 <karl AT turbobit.com>
3606 * sim/ucsim/cmd.src/command.cc: fixed so "break xram r 0x7654" works again in
3609 2003-01-06 <johan AT balder>
3611 * src/SDCCicode.c: fixed array add
3613 2002-01-05 Bernhard Held <bernhard AT bernhardheld.de>
3614 * src/SDCCmacro.c: MAX_STRING_LENGTH increased to 2048; was too small for regression tests
3615 * support/regression/ports/host/support.c: #include <stdarg.h> for gcc 3.2
3617 2003-01-04 <johan AT balder>
3619 * src/SDCCval.c (getNelements): fixed the initialized array of structures
3621 2002-12-29 Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
3622 * as/mcs51/Makefile.bcc: fixed typo lkomf51.o -> lkaomf51.o
3624 2002-12-28 Bernhard Held <bernhard AT bernhardheld.de>
3625 * src/mcs51/peeph.def: added rules 234 and 235 from Frieder Ferlemann <frieder.ferlemann AT web.de>
3626 * support/regression/tests/bug-524697.c: fit mem usage into 8032
3628 2002-12-28 Bernhard Held <bernhard AT bernhardheld.de>
3629 * src/mcs51/gen.c (aopGetUsesAcc): inserted missing "return FALSE"
3631 2002-12-27 Bernhard Held <bernhard AT bernhardheld.de>
3632 * as/mcs51/Makefile.in: fixed typo lkomf51.o -> lkaomf51.o
3634 2002-12-26 Bernhard Held <bernhard AT bernhardheld.de>
3635 * src/mcs51/main.c: removed {bindir}{sep} from aslink
3637 2002-12-10 Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
3639 * in \sdcc\as\mcs51\ changed these files in order to create an
3640 aomf51 file: aslink.h, lkdta.c, lklex.c, lklibr.c, lklist.c,
3641 lkmain.c. Also added: lkmem.c and lkaomf51.c. Changed the
3642 following files to include the previous two files: aslink.dsp,
3643 Makefile.aslink, Makefile.bcc, and Makefile.in.
3645 * Changed \sdcc\src\SDCCmain.c so it creates files with extension
3646 .adb instead of .cdb
3648 2002-11-09 Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
3650 * \sdcc\as\mcs51\lklist.c: Now reports memory usage using the
3651 value from option --iram-size.
3653 2002-09-20 Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
3655 * \sdcc\as\mcs51\lklist.c: added boundary check before using
3658 2002-09-18 <wiml AT hhhh.org>
3660 * SDCClrange.h: exposed setFromRange() and setToRange()
3661 * mcs51/ralloc.c: fixed over-eager packRegsForSupport() and
3662 packRegsForAccUse() (bug 542397)
3663 * mcs51/gen.c: MOVA() is now a function to avoid calling aopGet()
3664 multiple times and emitting the fetch operations more than once
3665 added aopGetUsesAcc() function to allow binary operators to
3666 fetch their operands in the correct order; made genMinus() emit
3667 compact code for X = LITERAL - Y
3669 2002-09-00 Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
3670 * \sdcc\as\mcs51\lklist.c: Fixed incorrect number of parameters to
3671 sprintf() in line 1267.
3673 2002-09-08 Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
3674 * \sdcc\src\SDCCglue.c: Generate areas REG_BANK_[0-3] only for 8051
3677 2002-09-04 Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
3678 Changes to aslink (All the changes are marked with 'JCF'):
3680 * \sdcc\as\mcs51\aslink.h: External definition of sflag and
3683 * \sdcc\as\mcs51\lkarea.c: Computes the size of area BSEG_BYTES from
3684 area BSEG. Also moves, if possible, the DATA area down into the internal
3685 ram so more space is available.
3687 * \sdcc\as\mcs51\lkdata.c: Definition of memory summary output flag
3690 * \sdcc\as\mcs51\lklist.c: For the BSEG area report the size in bits,
3691 not bytes. Function summary() which creates a memory usage summary
3692 file with extension .mem. Reports of overlaping stack and small stack
3693 size. If the space for the stack is less than 16 bytes aslink trows a
3696 * \sdcc\as\mcs51\lkmain.c: Creation of some of the default areas for
3697 the 8051. Option 'y' for memory summary output file.
3699 Changes to sdcc (All the changes are marked with 'JCF'):
3701 * \sdcc\src\SDCCglobl.h: External definition of RegBankUsed[4].
3703 * \sdcc\src\SDCCglue.c: If a register bank is used, creates an
3704 overlaying area for it (uses RegBankUsed[4]).
3706 * \sdcc\src\SDCCmain.c: Definition RegBankUsed[4]; marks register
3707 bank zero as used by default. By default aslink locates the stack
3708 (equivalent to --stack-after-data). Pass option 'y' to aslink for
3709 the creation of the .mem file. Delegates the allocation of data area
3710 to aslink (it is not longer 0x30 by default). If --stack-loc passes
3711 the begining of the stack area to aslink.
3713 * \sdcc\src\SDCCmem.c: If a register bank is used, marks it so
3714 glue() in SDCCglue.c creates an area for it.
3716 2002-09-03 Borut Razem <borut.razem AT siol.net>
3717 * sdcc/src/SDCCglue.c, sdcc/src/SDCCglue.h, sdcc/src/SDCCmain.c,
3718 sdcc/src/pic/glue.c:
3719 introduced atexit() handler for teporay files removal in case of
3720 errors, assertions, ...
3722 2002-08-29 Borut Razem <borut.razem AT siol.net>
3723 * sdcc/support/cpp2/auto-host_vc_in.h:
3724 re-definition of O_BINARY and other O_XXX as _O_BINARY and _O_XXX, so the problem
3725 with the returned value from read() in sdcc/support/cpp2/cppfiles.c is solved for MSC.
3726 Maybe there is a similar problem with BORLANDC? It should be checked!
3728 * sdcc/src/ds390/ralloc.c, sdcc/src/mcs51/ralloc.c, sdcc/src/z80/ralloc.c:
3729 corrected improper use of assert: the assignment to clr variable was done inside the assert.
3730 In case that NDEBUG was defined, the assert macro was substituted with no-op, so the assignment
3731 was not executed, and the compiler (cl) launched a warning:
3732 ralloc.c(1442) : warning C4700: local variable 'clr' used without having been initialized
3734 2002-08-28 Bernhard Held <bernhard AT bernhardheld.de>
3735 * src/SDCCglue.c (printIvalArray): iterative calculation of array length
3737 2002-08-28 Jesus Calvino-Fraga and Borut Razem <borut.razem AT siol.net>
3738 * sdcc/sdcc.dsw: added sdcpp, sdcppa, yacc, conf projects
3740 * sdcc/src/src.dsp, sdcc/src/avr/avr.dsp, sdcc/src/ds390/ds390.dsp,
3741 sdcc/src/mcs51/mcs51.dsp, sdcc/src/pic/pic.dsp, sdcc/src/z80/z80.dsp,
3742 sdcc/src/xa51/xa51.dsp, sdcc/src/avr/avra.dsp,
3743 sdcc/src/ds390/ds390a.dsp, sdcc/src/mcs51/mcs51a.dsp,
3744 sdcc/src/pic/pica.dsp, sdcc/src/z80/z80a.dsp,
3745 sdcc/src/xa51/xa51a.dsp, sdcc/as/as_z80.dsp,
3746 sdcc/as/aslink.dsp, sdcc/as/asx8051.dsp, sdcc/packihx/packihx.dsp:
3747 - added Release configuration in VS projects
3748 - review of compiler an linker options
3749 - VC .exe files are generated in bin_vc directory, not to interfere
3750 with binaries generated from other projects (cygwin, mingw, bcc ...)
3752 * sdcc/src/yacc.dsp: added
3754 * sdcc/config.dsp, sdcc/configure_vc.awk, sdcc/sdcc_vc_in.h:
3755 added - genarate sdcc_vc.h using sdcc_vc_in.h as template
3756 and insert the version number definitions from .version
3758 * sdcc/support/cpp2/sdcpp.dsp: added - VC project for sdcpp
3760 * sdcc/support/cpp2/sdcppa.dsp, sdcc/support/cpp2/auto-host_vc_in.h:
3761 added - genarate auto-host.h using auto-host_vc_in.h as template
3764 removed from CVS, generated automatically
3766 2002-08-25 Bernhard Held <bernhard AT bernhardheld.de>
3767 * support/scripts/inc2h.pl: use gputils or gpasm (from Nathan Hurst)
3769 2002-08-11 Borut Razem <borut.razem AT siol.net>
3770 * support/Util/NewAlloc.c: removed unneeded #include "sdccconf.h" (suggested by Jesus Calvino-Fraga)
3772 2002-08-10 Borut Razem <borut.razem AT siol.net>
3773 * src/SDCCmain.c (main):
3774 file preOutName was unlinked before closed. This seems to be OK on UNIX and cygwin
3775 platforms, but it doesn't work with Visual Studio: the opened file can not be removed.
3776 The consequence was that some temporary files were not removed.
3779 unification of code in functions tempfilename() and tempfile():
3780 function tempnam() is defined in Visual Studio 6.0 and .NET
3782 * sdcc/sdcc.dsw: removed project sdcpp, added project xa51a
3784 * sdcc/src/src.dsp, sdcc/src/avr/avr.dsp, sdcc/src/ds390/ds390.dsp,
3785 sdcc/src/mcs51/mcs51.dsp, sdcc/src/pic/pic.dsp, sdcc/src/z80/z80.dsp:
3786 - removed compiler command line option /WX: Treats all warnings as errors
3787 - update a list of source files, included into the project
3789 * sdcc/src/avr/avra.dsp, sdcc/src/ds390/ds390a.dsp, sdcc/src/mcs51/mcs51a.dsp,
3790 sdcc/src/pic/pica.dsp, sdcc/src/z80/z80a.dsp:
3791 changed project type to Generic Project so that can be correcly converted to VS.NET project
3793 * sdcc/as/mcs51/asm.h: definition of PATH_MAX for MSC
3795 * sdcc/src/SDCCast.c: solved MSC error in function decorateType()
3797 * sdcc/src/SDCC.y: added missing ending ';' to rules to get rid of bison warnings
3799 * dcc/src/ds390/ralloc.c, sdcc/src/mcs51/ralloc.c:
3800 added return 0 statements after assert() to make compiler happy
3802 * sdcc/src/xa51/peeph.rul, sdcc/src/xa51/peeph.def, sdcc/src/z80/ralloc.c:
3803 added newline in the def file to keep MSC compiler satisfied
3805 * sdcc/src/z80/gen.c:
3806 - function strcasecmp() is not defined in MSC (and probably also in BORLANDC),
3807 so it is replaced with STRCASECMP, which is defined as stricmp in case of MSC and BORLANDC
3808 - solved MSC error in function aopDump()
3810 * sdcc_vc.h: define PREFIX as "\\sdcc"
3812 2002-07-18 Bernhard Held <bernhard AT bernhardheld.de>
3813 * src/SDCCast.c (decorateType): fixed access to array of structures http://sourceforge.net/mailarchive/forum.php?thread_id=902690&forum_id=4107
3815 2002-06-22 Scott Dattalo <scott AT dattalo.com>
3816 * src/pic/*: Numerous bug fixes. Flow analysis has been enhanced.
3817 - Rewrote the register banking algorithm.
3818 - Added pCode live-range analysis to registers (for now, only non-used and
3819 singly-used registers optimized away)
3821 * src/pic/pcoderegs.[ch]: Added new files for pCode live-range analysis
3823 * 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.
3825 2002-05-10 Scott Dattalo <scott AT dattalo.com>
3826 * src/pic/*: Added support for multiplication. Fixed many,many bugs.
3828 2002-04-22 Michael Hope <michaelh AT vroom>
3830 * device/lib/z80/printf.c: Changed emitter to volatile to work around a pcall bug.
3832 * configure.in (DD_COPT): Added include support required for gbdk.
3834 * .version: Bumped version number just to increase it.
3836 * src/SDCCmain.c: Added -nostdinc to the default options.
3838 2002-04-15 Michael Hope <michaelh AT vroom>
3840 * device/lib/z80/printf.c (sprintf): Added.
3842 * src/z80/ralloc.c (packRegisters): Disabled pack HL use for GB as it's broken.
3844 * src/z80/peeph.def: Added transpose redundent load rule.
3846 * src/z80/main.c: Added force callee saves for jaune.
3848 * src/port.h: Removed the i186 and tlcs-900h ports as they weren't being being developed.
3850 * src/SDCCmain.c: Pulled the options definition out so that you can add port specific options without changing the main file.
3852 2002-03-28 Johan Knol <johan AT balder>
3854 * src/SDCCval.c: fixed bug #532436
3856 2002-03-14 Scott Dattalo <scott AT dattalo.com>
3858 Added "char *Processor" field to the port structure.
3861 Added -p option. Allows port dependent processor to be specified.
3864 Initialized the new field char *Processor field to NULL in all ports
3867 Compiler generated registers for interrupt context saving
3868 were not getting allocated.
3870 2002-03-16 Sandeep Dutta <sandeep AT ddi.com>
3873 Fixed left shift. Will promote the left side of a left shift
3874 if a) left shifting more than size of operand or b) when assigned
3875 to something size > size of left side
3877 2002-03-14 Scott Dattalo <scott AT dattalo.com>
3879 tons of changes. Register allocation has been
3880 rewritten. Added customization for the various PICs. Flow
3881 analysis is restructured. ...
3887 Added. device.c is a PIC port hack to accomodate variations
3890 2002-03-13 Michael Hope <michaelh AT vroom>
3892 * src/z80/gen.c (genGenPointerGet): Fixed a bug where a pointer in HL is dereferenced into HL but HL is not spilled. Yeah.
3894 2002-03-04 johanknol <johanknol AT manik>
3896 * /src/SDCCval.c: fixed
3898 const unsigned char arr[][2] = { { 0, 1 } };
3899 t18.c:1: error: Initializer element is not constant
3901 2002-03-04 bela <bela AT manik>
3903 * /device/include/mcs51reg.h:
3904 ds89c420 register definition update
3906 2002-03-03 <johan AT FRIJA>
3908 * support/Util/SDCCerr.c: did something, but don't no why anymore
3910 * support/regression/tests/bug-524691.c: made it a little less shy
3912 * src/SDCCast.c (decorateType): fixed bug #524697
3914 * src/SDCCast.c: made some lineno improvements
3916 * src/SDCCval.c (getNelements): changed warning to error
3918 * src/SDCCglue.c (printIvalArray): changed warning to error
3920 * src/SDCCicode.c: fixed a warning for mingw
3922 * src/SDCCast.c (decorateType): fixed the << promotion for ops
3924 * src/SDCCicode.c (geniCodeDivision): divide is shift only for unsigned (bug #524685)
3926 2002-03-02 Sandeep Dutta <sandeep AT ddi.com>
3928 * src/ds390/peeph.def:
3929 Added some more peephole rules
3931 * src/ds390/gen.c: Various fixes & enhancements
3933 * src/SDCClrange.c, src/SDCClrange.h:
3934 functions "alldefsoutofrange" and "notusedinblock" moved to SDCClrange.c
3936 * src/ds390/ralloc.c:
3937 various fixes & enhancements (ds390) specific
3939 * src/avr/ralloc.c, src/mcs51/ralloc.c, src/pic/ralloc.c, src/xa51/ralloc.c, src/z80/ralloc.c:
3940 Functions "allDefsOutOfRange" & "notUsedinBlock" moved to SDCClrange.c
3943 * sdcc/src/SDCCcse.c: Better fix for bug # 514308
3945 2002-03-02 <johan AT FRIJA>
3947 * src/SDCCast.c (decorateType): fixed bug #524708
3949 * src/SDCCval.c (floatFromVal): fixed the literal void (whatever that may be)
3951 * src/SDCCicode.c (geniCodePtrPtrSubtract): fixed bug #524691
3953 2002-03-01 Michael Hope <michaelh AT vroom>
3955 * src/SDCCsymt.c (initCSupport): Removed managling of support function names.
3957 * src/z80/ralloc.c (packRegsForIYUse): Fixed fp bug where four byte operands were packed into IY.
3959 2002-03-01 <johan AT FRIJA>
3961 * src/SDCCglue.c (printIvalPtr): fixed bug #524211
3963 * src/SDCCast.c (decorateType): fixed bug #524209
3965 * src/SDCCval.c (valNot): fixed bug #524195
3967 2002-02-26 <johan AT balder>
3969 * src/xa51/gen.c: fixed a warning
3971 * src/SDCCglue.c (printIvalFuncPtr): fixed bug #522534
3973 * src/SDCCast.c (decorateType): fixed bug #522534
3975 2002-02-23 <johan AT balder>
3977 * src/SDCCdflow.c (computeDataFlow): fixed bug #460088
3979 2002-02-22 <johan AT balder>
3981 * src/SDCCast.c: fixed bug #514865
3983 * src/SDCCy.c ("SDCC.y"): fixed bug #516625
3985 2002-02-21 Sandeep Dutta <sandeep AT ddi.com>
3987 * sdcc/src/SDCCloop.c:
3988 Previous fix was not good. basic blocks that have "break" or "return" are
3989 not really partof a loop , but live ranges used in these blocks should
3990 be live thru the entire loop, so set partOfLoop but don't add them to
3993 2002-02-21 <johan AT FRIJA>
3995 * src/SDCCcse.c: fixed bug #514308
3997 2002-02-20 Sandeep Dutta <sandeep AT ddi.com>
4000 Fixed BUG #519583. If a conditional block ended in a return/break
4001 statement inside a loop, it was not being considered part of the loop.
4003 * src/SDCCcflow.c: Removed fix (Fixed in SDCCloop.c)
4005 2002-02-10 Karl Bongers <karl AT turbobit.com>
4008 Fixed up SDCDB debugger somewhat. Updated debugger/README
4009 with lots of comments and notes.
4011 * device/examples/test2.c:
4012 Fix bug, "red" variable not being initialized(compiler complained).
4014 * device/examples/Makefile, examples/test3.c:
4015 Add Makefile in device/examples folder, compiles test3.c
4016 for use as a multiple module SDCDB test case.
4018 * sim/ucsim/cmd.src/cmdset.cc:
4019 Took out debug printfs in ucsim "next" command.
4022 Karl and Johan start ucsim XA support. Most dissassembly working,
4023 about 75% emulation done(plenty of work remaining).
4025 * sim/ucsim/z80.src:
4026 Add Z80 support to ucsim, add test-ucz80 regression test,
4027 notice ucsim/z80 emulation fails on examples/test3.c/itoa code.
4028 Notice z80 compiler fails on examples/test3.c/crc code.
4030 2002-01-30 Sandeep Dutta <sandeep AT ddi.com>
4032 * src/mcs51/gen.c, src/mcs51/main.c, src/mcs51/ralloc.c:
4033 Added support for --parms-in-bank1
4035 * src/ds390/peeph.def:
4036 added a few more peephole optimzations
4039 1) added __builtin_inp & __builtin_outp used to read in data of given length
4040 from a memory mapped port
4041 2) added __builtin_memcmp
4042 3) added __builtin_swapw swap bytes of a short
4044 * src/ds390/gen.c, src/ds390/gen.h, src/ds390/ralloc.c:
4045 1) handle multiple send & receives from register bank1
4046 2) ralloc can now allocate DPTR1 to some liveRanges
4048 * src/SDCCsymt.c, src/SDCCsymt.h:
4049 changes to handle multiple sends & receives
4052 added some pointer arithmetic optimization
4055 added some pointer arithmetic optimizations but not stable yet so not
4056 called from anywhere (will get this working shortly)
4058 * src/SDCCopt.c: fixed for multiple sends & receives
4061 1) added options --parms-in-bank1 (ds390/mcs51) & --protect-sp-update
4062 2) preprocessing done AFTER port->finalizeoptions . This allows ports to
4063 set preprocessor defines (depending on options)
4065 * src/SDCCicode.c, src/SDCCicode.h:
4066 changes made to handle multiple sends & receives
4069 Added options --protect-sp-update (ds390) and --parms-in-bank1 (ds390/mcs51)
4071 * src/SDCCcse.c, src/SDCCcse.h:
4072 added function findbackward def (to be used in upcoming optimization)
4074 * src/SDCCcflow.c, src/SDCCcflow.h:
4075 added function returnAtEnd - to determine if a basic block terminates with
4078 * src/SDCCast.c, src/SDCCast.h:
4079 added option parms-in-bank1
4081 * device/lib/_divsint.c, device/lib/_divslong.c, device/lib/_divuint.c
4082 * device/lib/_divulong.c, device/lib/_modsint.c, device/lib/_modslong.c
4083 * device/lib/_modulong.c, device/lib/_mulint.c, device/lib/_mullong.c:
4084 adjusted for --parms-in-bank1 option
4086 * device/include/string.h:
4087 donot redefine "reentrant" keyword
4089 * device/include/ds80c390.h: Added some more SFRs
4091 2002-01-28 Bernhard Held <bernhard AT bernhardheld.de>
4093 * sim/ucsim: Merged branch ucsim-034-pre3 to main trunk; new version 0.4
4095 2002-01-26 Bernhard Held <bernhard AT bernhardheld.de>
4097 * src/SDCCast.c (funcOfType): fix usage of double --float-reent
4099 2002-01-22 Bernhard Held <bernhard AT bernhardheld.de>
4101 * support/regression/fwk/lib/testfwk.c (main): Removed workaround for bug #505387
4103 2002-01-18 Paul Stoffregen <paul AT pjrc.com>
4105 * Added --xram-movc option
4107 2002-01-13 Bernhard Held <bernhard AT bernhardheld.de>
4109 * support/regression/Makefile: don't include test-mcs51-stack-auto in target all
4111 2002-01-11 Johan Knol
4113 * Added math lib of Jesus Calvino-Fraga
4115 2002-01-08 Bernhard Held <bernhard AT bernhardheld.de>
4117 * src/SDCCmain.c (processFile): fix processing of ../../src.c
4118 * support/regression/Makefile: new target test-mcs51-stack-auto
4119 * support/regression/ports/mcs51-stack-auto/spec.mk: added
4121 2002-01-04 Bernhard Held <bernhard AT bernhardheld.de>
4123 * src/SDCCglue.h: printIvalCharPtr(), not printIvalChar()
4125 2002-01-04 Bernhard Held <bernhard AT bernhardheld.de>
4127 * support/regression/ports/mcs51/support.c: correct setup of timer / UART
4129 2002-01-03 Bernhard Held <bernhard AT bernhardheld.de>
4131 * src/SDCCsymt.c (processFuncArgs): fix #498307 by Johan
4133 * src/SDCCglue.h: add definition for printIvalChar()
4135 2002-01-02 Bernhard Held <bernhard AT bernhardheld.de>
4137 * src/SDCCast.c: fix #498138 by Johan
4139 * src/SDCCglue.c: fix #498138 by Johan
4141 2002-01-02 Bernhard Held <bernhard AT bernhardheld.de>
4143 * support/regression/Makefile: fix clean
4145 * support/regression/ports/ds390/support.c: fix transmission of last character
4147 2001-12-29 Sandeep Dutta <sandeep AT ddi.com>
4149 * /sdcc/src/ds390/gen.c:
4150 a) improved computing address of stack variable
4151 b) took out some #if 0 code
4152 c) improved parmBytes adjustment
4153 d) improved genPlusIncr & genMinusIncr
4154 e) genCmp could generate bad code (when left assigned to DPTR)
4155 f) Fixed bug in hasInc
4157 * /sdcc/src/ds390/ralloc.c:
4158 a) packRegsForSupport could mess up live information (Fixed)
4159 b) packRegsDPTRuse could be incorrect for left & right shift
4161 * /sdcc/src/mcs51/ralloc.c:
4162 packRegsForSupport could mess up the live information (Fixed)
4164 * /sdcc/src/mcs51/gen.c: Fixed a bug in hasInc
4166 * /sdcc/src/SDCCast.c:
4167 can reverse a loop even if function call is present as long
4168 as the loop control variable is local & is not passed as parameter
4170 2001-12-24 Sandeep Dutta <sandeep AT ddi.com>
4172 * /sdcc/ChangeLog: *** empty log message ***
4174 * /sdcc/src/ds390/gen.c, /sdcc/src/ds390/main.c:
4175 More builtin function additions for TININative
4177 * /sdcc/src/ds390/ralloc.c:
4178 Had broken the regression testsuite
4180 * /sdcc/src/SDCCast.c: Fixed a bug in dumptree
4182 * /sdcc/src/SDCCsymt.c, /sdcc/src/SDCCsymt.h:
4183 Added funcattr hasStackParms will be set for reentrant functions when there
4184 are paramteres on the stack, this helps in minimizing frame pointer generation
4185 typeFromStr can handle function pointers now
4187 * /sdcc/doc/builtins.txt, /sdcc/doc/TININative.txt:
4188 *** empty log message ***
4190 2001-12-24 Sandeep Dutta <sandeep AT ddi.com>
4192 * /src/ds390/gen.c, /src/ds390/main.c:
4193 More builtin function additions for TININative
4195 * /src/ds390/ralloc.c:
4196 Had broken the regression testsuite
4198 * /src/SDCCast.c: Fixed a bug in dumptree
4200 * /src/SDCCsymt.c, /src/SDCCsymt.h:
4201 Added funcattr hasStackParms will be set for reentrant functions when there
4202 are paramteres on the stack, this helps in minimizing frame pointer generation
4203 typeFromStr can handle function pointers now
4205 * /doc/builtins.txt, /doc/TININative.txt:
4206 *** empty log message ***
4209 2001-12-24 Sandeep Dutta <sandeep AT ddi.com>
4211 * /src/ds390/gen.c, /src/ds390/main.c, /src/ds390/peeph.def, /src/ds390/ralloc.c:
4212 ALPHA version for -mTININative
4214 * /src/izt/i186.c, /src/izt/tlcs900h.c, /src/mcs51/main.c, /src/pic/main.c, /src/z80/main.c, /src/avr/main.c:
4215 updated to reflect changes in the port structure
4218 added function do_assemble (similar to do_link) if non-null this function
4219 will be called to do assembly (-mTININative) requires a multi command
4221 added function genAssemblerEnd will be called to generate assembler Epilogue
4224 added _JavaNative to debug info printing
4226 * /src/SDCCmain.c: added option --tini-libid
4227 added port->do_assemble function (-mTININative) has a multi command assemble
4229 * /src/SDCCglue.c: Disabled "constExpr" check
4230 added port->genAssemblerEnd function
4232 * /src/SDCCglobl.h: Added option --tini-libid value
4235 tookout optimizeCompare from the header (has no external references)
4237 * /src/SDCCast.c: made one more function "static"
4239 2001-12-23 Michael Hope <michaelh AT juju.net.nz>
4241 * src/z80/mappings.i: Added z80asm support.
4243 * src/z80/main.c: Added z80asm support on --asm=z80asm
4245 * src/z80/gen.c: Fixed asm portability issues.
4247 * src/asm.c (tvsprintf): Removed old code, added 'N' for function name. For extern support.
4249 * src/SDCCglue.c (printExterns): Added global/extern split.
4251 2001-12-17 Bernhard Held <bernhard AT bernhardheld.de>
4253 * support/regression/Makefile: added test for mcs51 model large
4255 * support/regression/ports/mcs51-large/spec.mk: added test for mcs51 model large
4257 * support/regression/ports/gbz80/spec.mk: added -mgbz80
4259 2001-12-05 Michael Hope <michaelh AT juju.net.nz>
4261 * src/diff.1 (Index): Many, many optmisiations. Dhrystone up to 201.
4263 1904-01-06 Michael Hope <michaelh AT juju.net.nz>
4265 * src/z80/ralloc.c (packRegsForIYUse): Fixed the case where an operand is in direct space.
4267 * src/z80/gen.c (makeFreePairId): Optimised IY load by using a spare pair.
4269 2001-12-02 Bernhard Held <bernhard AT bernhardheld.de>
4271 * src/mcs51/gen.c (genFunction): avoid excess "inc sp"
4273 * support/regression/tests/simplefloat.c: Port to mcs51.
4275 2001-11-25 Michael Hope <michaelh AT juju.net.nz>
4276 * support/regression/tests/bug-485362.c: Added.
4278 * support/regression/tests/simplefloat.c (testDivNearOne): Added.
4280 * src/z80/gen.c (aopOp): Fixed case where left and result are in the same spill loc and they have different sizes.
4282 * src/z80/peeph.def: Added rules for optimising two byte compares on the same thing, and to optimise two ptr assign.
4284 * src/z80/gen.c (aopDump): Added a dump function.
4286 2001-11-25 Bernhard Held <bernhard AT bernhardheld.de>
4287 * sim/ucsim/s51.src/glob.cc: DS390 SFRs and bits added.
4289 * sim/ucsim/s51.src/port.cc: Port 4 and 5 added.
4291 * sim/ucsim/s51.src/regs51.h: DS390 SFRs added.
4293 * sim/ucsim/s51.src/uc390.cc: Some details improved, CKRDY works for tinibios.
4295 * sim/ucsim/s51.src/uc390cl.h: Work in progress.
4297 * sim/ucsim/sim.src/uccl.h: 6 ports for DS390.
4299 * support/regression/fwk/lib/testfwk.c: Run with tinibios.
4301 * support/regression/ports/mcs51/spec.mk: Fine tuninig.
4303 * support/regression/ports/ds390/support.c: Use tinibios.
4305 * support/regression/ports/ds390/spec.mk: Fine tuning, use tinibios.
4307 2001-11-23 Michael Hope <michaelh AT juju.net.nz>support/regression/tests/bug-460010.c
4309 * src/z80/ralloc.c (packRegsForHLUse3): Changed to not pack into HL if anything is in direct space.
4310 (packRegsForHLUse3): Added packing support for send, cast, and return value from a call.
4312 * src/z80/peeph.def: Added rules for optimising pushes of part of a pair.
4314 * src/z80/gen.c (emitCall): Changed the stack fixup to not use HL.
4316 2001-11-18 Michael Hope <michaelh AT juju.net.nz>
4318 * src/z80/gen.c (genCmp): Fixed compare on unsigned.
4320 * src/z80/ralloc.c (packRegsForHLUse3): Created and optimised.
4321 (packRegsForIYUse): Created and optimised.
4323 2001-11-07 Michael Hope <michaelh AT juju.net.nz>
4325 * support/regression/tests/float.c (testFloatAdd): Fixed up warning.
4326 2001-11-18 Bernhard Held <bernhard AT bernhardheld.de>
4328 * sdcc/support/regression/tests/bug-460010.c: fix seg violation on host
4330 * sdcc/support/regression/tests/muldiv.c: fix output on mcs51
4332 * sdcc/support/regression/tests/stacks.c: fix DSEG overflow on mcs51
4334 2001-11-07 Bernhard Held <bernhard AT bernhardheld.de>
4336 * sdcc/sim/device/lib/_gptrget.c: mem region 5 (idata) added
4338 * sdcc/sim/device/lib/_gptrput.c: mem region 5 (idata) added
4340 2001-11-07 Bernhard Held <bernhard AT bernhardheld.de>
4342 * sdcc/sim/ucsim/globals.cc: New: IXRAM.
4344 * sdcc/sim/ucsim/stypes.h: New: IXRAM.
4346 * sdcc/sim/ucsim/s51.src/uc390.cc: New: IXRAM.
4348 2001-11-07 Michael Hope <michaelh AT juju.net.nz>
4350 * src/z80/ralloc.c (packRegsForHLUse): Banned IFXs from being packed into HL.
4351 (packRegsForHLUse): Added rule to pack address of/pointer get for itemps into HL for the Z80.
4352 (packRegsForAccUse2): Added rule to pack hbit IFXs into A.
4354 * src/z80/main.c (_setDefaultOptions): Made float code re-entrant by default.
4356 * src/z80/gen.c (aopGetLitWordLong): Added word support for floats.
4357 (genNotFloat): Added.
4358 (genUminusFloat): Added.
4360 * device/lib/z80/Makefile: Added floating pt stubs.
4362 * device/lib/Makefile.in (Z80SOURCES): Added floating pt support.
4364 * src/z80/gen.c (genIpush): Fixed up a push of one byte when left is in a pair.
4366 * device/lib/_fsadd.c (__fsadd): Fixed up return where the numbers are hugely different.
4368 2001-11-07 Bernhard Held <bernhard AT bernhardheld.de>
4370 * sdcc/sim/ucsim/s51.src/glob.cc: Minor fix.
4372 * sdcc/sim/ucsim/s51.src/regs51.h: Minor fix.
4374 * sdcc/support/regression/Makefile: Add port ds390.
4376 * sdcc/support/regression/ports/mcs51/spec.mk: Minor change.
4378 * sdcc/support/regression/ports/z80/spec.mk: Minor change.
4380 * sdcc/support/regression/ports/ds390/spec.mk: Added.
4382 * sdcc/support/regression/ports/ds390/support.c: Added.
4384 * sdcc/support/regression/ports/ds390/uCsim.cmd: Added.
4386 * sdcc/support/regression/ports/mcs51/timeout.c: Cut.
4388 * sdcc/support/regression/fwk/lib/timeout.c: Paste.
4390 2001-11-04 Michael Hope <michaelh AT juju.net.nz>
4392 * device/include/malloc.h: Added z80 and gbz80 support.
4394 * device/lib/gbz80/heap.s: Added.
4396 * device/lib/z80/heap.s: Added.
4398 * device/lib/malloc.c: Added z80 and gbz80 support.
4400 * support/regression/tests/malloc.c (testMalloc): Added.
4402 * src/SDCCmain.c (parseCmdLine): Added support for -Wp.
4404 * support/regression/tests/bug-478094.c: Added.
4406 * src/z80/gen.c (commitPair): Fixed silly gbz80/z80 commit to static bug.
4408 2001-11-04 Bernhard Held <bernhard AT bernhardheld.de>
4410 * sdcc/sim/ucsim/s51.src/uc390cl.h: Improvement for ds390 to run regression tests
4412 * sdcc/sim/ucsim/s51.src/uc390.h: Improvement for ds390 to run regression tests
4414 * sdcc/sim/ucsim/s51.src/regs51.h: Improvement for ds390 to run regression tests
4416 * sdcc/sim/ucsim/s51.src/glob.cc: Improvement for ds390 to run regression tests
4418 * sdcc/support/regression/tests/bug-460010.c: Small change for ds390
4420 2001-11-04 Michael Hope <michaelh AT juju.net.nz>
4422 * src/z80/peeph-gbz80.def: Removed a bad sub optimisation.
4424 2001-11-03 Michael Hope <michaelh AT juju.net.nz>
4426 * support/regression/tests/bug-477927.c: Added.
4428 * src/z80/peeph.def: Added minor rules.
4430 * src/z80/gen.c (genPlusIncr): Added an extra plusinc rule.
4432 * src/z80/peeph.def: Added jump optimisation modification.
4434 2001-11-01 Michael Hope <michaelh AT juju.net.nz>
4436 * src/SDCCmain.c (linkEdit): Added runtime path detection to the mcs51 port.
4438 2001-10-30 Michael Hope <michaelh AT juju.net.nz>
4440 * support/regression/tests/funptrs.c: Added.
4442 2001-10-29 Michael Hope <michaelh AT juju.net.nz>
4444 * src/z80/ralloc.c (packRegsForHLUse): Fixed up bad spill due to pushing one byte via HL.
4446 2001-10-28 Michael Hope <michaelh AT juju.net.nz>
4448 * src/z80/gen.c (genArrayInit): Made it work for on stack arrays.
4450 * src/z80/main.c (gbz80_port =): Added rle support to the gbz80 port.
4452 * src/z80/gen.c (genMinus): Fixed for where the result is one byte.
4453 (movLeft2ResultLong): Created.
4455 * src/z80/ralloc.c (packRegsForHLUse): Added a couple of simple cases for the GB.
4456 (joinPushes): Added. Joins two char pushes into a word push.
4458 2001-10-27 Michael Hope <michaelh AT juju.net.nz>
4460 * support/cpp2/Makefile.in (install): Added creation of dest dir.
4462 * support/makebin/Makefile (install): Added creation of dest dir.
4464 2001-10-24 Karl Bongers <karl AT turbobit.com>
4466 * configure.in, configure, Makefile, support/cpp: Removed cpp folder, since we have new cpp2 preprocessor code.
4468 2001-10-21 Michael Hope <michaelh AT juju.net.nz>
4470 * src/z80/ralloc.c: Turned off faulty pack for one use.
4472 * src/z80/peeph-gbz80.def: Removed redundent restart options.
4474 * src/z80/gen.c (genMult): Added native mul for constants on the z80 and gbz80.
4476 2001-10-21 Bernhard Held <bernhard AT bernhardheld.de>
4478 * support/regression/Makefile: Improved clean
4480 * support/regression/ports/gbz80/spec.mk: Added clean
4482 * support/regression/ports/host/spec.mk: Added clean
4484 * support/regression/ports/z80/spec.mk: Added clean
4486 * support/regression/ports/mcs51/spec.mk: Added clean, little improvements
4488 * support/regression/ports/mcs51/timeout.c: little improvements
4490 2001-10-17 Michael Hope <michaelh AT juju.net.nz>
4492 * device/lib/malloc.c (MEMHEADER): Fixed against new pedantic pointers.
4494 * support/regression/fwk/include/testfwk.h: Fixed up to use function pts correctly.
4496 * support/regression/generate-cases.py: Fixed up to use function pts correctly.
4498 2001-10-16 Bernhard Held <bernhard AT bernhardheld.de>
4500 * support/regression/port/mcs51/spec.mk: add timeout for uCsim
4502 * support/regression/port/mcs51/timeout.c: add timeout for uCsim
4504 2001-10-13 Michael Hope <michaelh AT juju.net.nz>
4505 * src/z80/gen.c (emitCall): Fixed up missing spill of HL when used to assign the result value.
4507 * src/z80/ralloc.c: Turned off pack for one use as it's quite broken.
4509 * src/SDCCmain.c (linkEdit): Added support for passing a legacy command line through the processor.
4511 * src/mcs51/main.c (_linkCmd): Added bin path to command.
4513 * src/SDCCmain.c (initValues): Added support for when it it called just to link.
4515 * as/mcs51/lklibr.c (libfil;): Turned off 'library file' message.
4517 * src/SDCCval.c (constVal): Fixed usage of 'L' modifier problems on ppc.
4519 * support/regression/tests/longor.c: Added.
4521 2001-10-11 Bernhard Held <bernhard AT bernhardheld.de>
4523 * as/mcs51/asdata.c: replaced FILENAME_MAX with PATH_MAX
4525 * as/mcs51/aslink.h: define PATH_MAX
4527 * as/mcs51/asm.h: define PATH_MAX
4529 * as/mcs51/asmain.c: replaced FILENAME_MAX with PATH_MAX
4531 * as/mcs51/asnoice.c: replaced FILENAME_MAX with PATH_MAX
4533 * as/mcs51/lklex.c: replaced FILENAME_MAX with PATH_MAX
4535 * as/mcs51/lkmain.c: replaced FILENAME_MAX with PATH_MAX
4537 * src/SDCCglobl.h: define PATH_MAX
4539 * src/SDCCmacro.c: replaced FILENAME_MAX with PATH_MAX
4541 * src/SDCCmain.c: replaced FILENAME_MAX with PATH_MAX
4543 2001-10-11 Michael Hope <michaelh AT juju.net.nz>
4545 * src/z80/gen.c (gencjneshort): Fixed
4547 * src/z80/ralloc.c (packRegsForHLUse): Added pack into HL for cast then ipush.
4549 2001-10-09 Michael Hope <michaelh AT juju.net.nz>
4551 * support/regression/tests/bug-469671.c: Added.
4553 * src/z80/gen.c (shiftIntoPair): Fixed up warning.
4555 2001-10-08 Michael Hope <michaelh AT juju.net.nz>
4557 * src/SDCCmain.c: Added --fommit-frame-pointer option and implemented in the z80 port.
4559 * src/z80/gen.c (genPlus): Fixed to work with extended stack. Also fixed genMinus, genCmp. genUMinus is still left.
4561 2001-10-08 Bernhar Held <bernhard AT bernhardheld.de>
4563 * src/SDCCmain.c (preProcess): added define SDCC_NOOVERLAY
4565 * src/device/lib/_mulint.c : removed hint: nooverlay bug
4567 * src/device/lib/_mullong.c : removed hint: nooverlay bug
4569 * src/device/lib/_divuint.c : removed hint: nooverlay bug
4571 * src/device/lib/_divulong.c: removed hint: nooverlay bug
4573 * src/device/lib/_moduint.c : removed hint: nooverlay bug
4575 * src/device/lib/_modulong.c: removed hint: nooverlay bug
4577 2001-10-07 Michael Hope <michaelh AT juju.net.nz>
4579 * 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.
4581 * support/Util/NewAlloc.c (freeTrace): Changed free for the gc case to not free at all. Fixes runtime segfault.
4583 * support/regression/tests/scott-compare3.c (c_abcd): Fixed up casts.
4585 2001-10-07 <johan AT FRIJA>
4587 * device/lib/gets.c (gets): fixed the return value.
4589 2001-10-06 Michael Hope <michaelh AT juju.net.nz>
4590 * src/SDCCmain.c (WRITE_SEG_LOC): Fixed up to use Safe_strdup.
4592 * 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.
4594 * 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.
4596 * src/z80/gen.c (genZ80Code): Added de-allocation via trace support.
4598 * src/pic/gen.c: Removed Safe_strdup.
4600 * configure.in: Added option to enable libgc support.
4602 * src/SDCCbitv.c (bitVectnBitsOn): Optimised.
4603 (bitVectUnion): Optimised.
4604 (bitVectIntersect): Optimised.
4605 (bitVectBitsInCommon): Optimised.
4606 (bitVectCplAnd): Optimised.
4608 * support/makebin/makebin.c (usage): Removed getopt as mingw32 doesn't have it. Sigh.
4610 2001-10-03 Bernhard Held <bernhard AT bernhardheld.de>
4612 * src/SDCCmain.c: distinguish between assembler debug and plain options
4614 * src/avr/main.c: remove standard assembler options
4616 * src/ds390/main.c: remove standard assembler options
4618 * src/mcs51/main.c: remove standard assembler options
4620 * src/port.h: removed "PENDING" comment
4622 2001-10-03 Bernhard Held <bernhard AT bernhardheld.de>
4624 * src/device/lib/_mulint.c : new, with assember functions
4626 * src/device/lib/_mullong.c : new, with assember functions
4628 * src/device/lib/_divuint.c : with assember functions
4630 * src/device/lib/_divsint.c : with assember functions
4632 * src/device/lib/_divulong.c: with assember functions
4634 * src/device/lib/_divslong.c: with assember functions
4636 * src/device/lib/_moduint.c : with assember functions
4638 * src/device/lib/_modsint.c : with assember functions
4640 * src/device/lib/_modulong.c: with assember functions
4642 * src/device/lib/_modslong.c: with assember functions
4644 * src/device/lib/libint.lib: replaced _muluint.c and _mulsint.c by _mulint.c
4646 * src/device/lib/liblong.lib: replaced _mululong.c and _mulslong.c by _mullong.c
4648 * src/device/lib/Makefile.in: replaced _muluint.c and _mulsint.c by _mulint.c
4649 replaced _mululong.c and _mulslong.c by _mullong.c
4651 2001-10-03 Bernhard Held <bernhard AT bernhardheld.de>
4653 * src/SDCCsymt.c: sequence of specifiers in pintTypeChain() corrected
4655 2001-10-01 Bernhard Held <bernhard AT bernhardheld.de>
4657 * src/SDCCglue.c: test, if win32api is available for MINGW
4659 2001-10-01 Bernhard Held <bernhard AT bernhardheld.de>
4661 * src/SDCCsymt.c: no more _modifier in printTypeChain()
4662 * support/regression/tests/driverstruct.c: REENTRANT for mcs51
4663 * support/regression/ports/gbz80/spec.mk: removed GENERIC
4664 * support/regression/ports/host/spec.mk: removed GENERIC
4665 * support/regression/ports/mcs51/spec.mk: removed GENERIC
4666 * support/regression/ports/z80/spec.mk: removed GENERIC
4668 2001-10-01 Michael Hope <michaelh AT juju.net.nz>
4670 * support/regression/fwk/lib/testfwk.c (__printf): Removed GENERIC.
4672 * support/regression/tests/bug-467035.c: Created.
4674 2001-10-01 <johan AT FRIJA>
4676 * src/SDCC.y: fixed bug #466586 part 1
4678 2001-10-01 Johan Knol <johan.knol AT iduna.nl>
4680 * SDCCicode.c: z80 has no generic pointers
4681 * removed -s from strip in all Makefile(.in)'s. It is not needed, but Solaris chocks on it.
4683 2001-09-30 Michael Hope <michaelh AT juju.net.nz>
4685 * sim/ucsim/cmd.src/Makefile.in ($(PRJDIR)/libcmd.a): Changed all ar references to $(AR) for Solaris.
4687 2001-09-29 Michael Hope <michaelh AT juju.net.nz>
4689 * Makefile (sdcc-libs): Added makebin to the list of standard targets.
4691 * support/regression/ports/z80/spec.mk: Updated to use env for sdcc bin dir for automatic regression.
4693 2001-09-25 Michael Hope <michaelh AT juju.net.nz>
4695 * configure.in: Fixed up so that ucsim is only configured once.
4697 * support/cpp2/configure.in: Fixed to use the program transform to append the .exe for the win32 build.
4699 * src/SDCCutil.c (getPrefixFromBinPath): Fixed up to work with win32 in all of its glory.
4700 (getPathDifference): As above.
4702 * src/SDCCmain.c (preProcess): Changed to use a temporary file in a proper temp directory. Fixed case where pre-processing only.
4704 * src/SDCCglue.c (tempfilename): Added function for pre-processor.
4706 2001-09-23 Michael Hope <michaelh AT juju.net.nz>
4707 * .version: Updated to 2.3.1
4709 * src/z80/main.c (z80_port =): Added macro based linker and assembler command line support.
4710 Added copyright header.
4712 * src/SDCCmain.c: Shifted various functions into SDCCutil.c
4713 (assemble): Added support for macro based assembler commands.
4714 (linkEdit): Added support for macro based linker commands.
4715 (preProcess): Changed the pre-processor to use macros.
4716 (_setPaths): Added functionality to autodetect the include, lib and bin dir paths.
4717 (_discoverPaths): Added support for overriding the install directory using the SDCCDIR env variable.
4719 * device/lib/z80/crt0.s: Added module name for debugging.
4721 2001-09-20 Michael Hope <michaelh AT juju.net.nz>
4723 * src/SDCCmain.c (printVersionInfo): Added the build date to the version info.
4725 * src/SDCChasht.c (hTabDeleteByKey): Fixed delete as it would delete the last item from a bucket even if it wasn't the real one.
4727 * src/SDCCglue.c: Moved gc_strdup to SDCCutil.c
4729 * src/Makefile.in: Added SDCCmacro and SDCCutil
4731 2001-09-19 Michael Hope <michaelh AT juju.net.nz>
4733 * src/SDCCmain.c (printVersionInfo): Added the build date to the version info.
4735 2001-09-16 <johan AT FRIJA>
4737 * 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.
4739 2001-09-15 <johan AT FRIJA>
4741 * src/mcs51/ralloc.c: (findAssignToSym): fixed bug #460662 part 1
4742 * src/ds390/ralloc.c (findAssignToSym): fixed bug #460662 part 1
4744 2001-09-11 <johan AT FRIJA>
4746 * src/SDCCval.c (valDiv Mod Minus Plus Shift): keep litteral expressions as small as possible (bug #460010)
4748 2001-09-10 Michael Hope <michaelh AT juju.net.nz>
4750 * support/regression/tests/bug-460444.c: Added test case.
4752 * src/z80/gen.c (genOr): bug 460444: if (a ^ lit) was broken for &, |, and ^.
4753 (genCast): Added justification for all of the asserts.
4755 2001-09-10 Bernhard Held <bernhard AT bernhardheld.de>
4757 * support/regression/support.c: _xdata replaced by xdata
4759 * support/regression/spec.mk: removed _generic
4761 2001-09-09 Michael Hope <michaelh AT juju.net.nz>
4763 * src/pic/ralloc.c (debugLogRegType): Removed some old types to get it to compile.
4765 * src/z80/gen.c (shiftR2Left2Result): Improved the case when v = v >> n for small values of n to use less code space and time.
4766 (genrshTwo): Fixed v = v >> n where v is a negative int and n is > 8: bug 460010.
4768 * src/z80/peeph.def: Added a rule to optimise shift then compare.
4770 * support/regression/tests/bug-460000.c (testShiftByParam): Added test case.
4772 * support/regression/tests/bug-460010.c: Added test case.
4774 * support/regression/Makefile (test-host): Removed a silly 'clean' target when testing against gcc.
4776 2001-09-09 Bernhard Held <bernhard AT bernhardheld.de>
4778 * support/regression/Makefile: inter-port-clean adjusted for mcs51
4780 * support/regression/testfwk.c: removed workaround for bug #436344
4782 * support/regression/tests/bp.c: use less memory with mcs51
4784 * support/regression/tests/bug-441448.c: use less memory
4786 * support/regression/tests/ports/mcs51/spec.mk: cleanup, use --stack-after-data
4788 * support/regression/collate-results.py: typo
4790 2001-09-08 Michael Hope <michaelh AT juju.net.nz>
4792 * support/regression/tests/fetchoverlap.c: Added new test case.
4794 * support/regression/tests/bp.c: Added new test case.
4796 * support/regression/tests/bug-448984.c: Added new test case.
4798 * support/regression/tests/pow2shifts.c: Added new test case.
4800 * src/z80/gen.c: Turned off the noise it normally generates for the release.
4801 (genlshTwo): Fixed right shift for count > 8.
4803 * src/z80/ralloc.c: Disabled most of the ACC packing rules as they weren't getting hit and weren't at all safe.
4805 2001-09-08 <johan AT FRIJA>
4807 * src/SDCCicode.c (geniCodeCall): a CPOINTER can be used as a function
4809 2001-09-07 <johan AT FRIJA>
4811 * src/SDCCicode.c (newiCodeCondition): fixed bug #456235 (1.77)
4813 * src/SDCCglue.c (emitRegularMap): only delete a symbol when it is a symbol
4815 2001-09-06 <johan AT FRIJA>
4817 * src/SDCC.y: this could be a fix for bug #458744 (1.37)
4818 * bernhard noted me at this: "() equals to (void)" (1.38)
4820 2001-09-05 <johan AT FRIJA>
4822 * src/SDCCglue.c (emitRegularMap): a fix for bug #458099/2
4824 2001-09-04 <johan AT FRIJA>
4826 * src/SDCCsymt.c (checkSClass): a fix for bug #458099/1
4829 2001-09-04 Paul Stoffregen <paul AT pjrc.com>
4831 * pragma noinduction broke memcpy on mcs51 large model. Moved it inside z80 optimization
4833 2001-09-03 Michael Hope <michaelh AT juju.net.nz>
4835 * link/z80/aslink.h: Fixed path for PATH_MAX
4837 2001-09-02 Michael Hope <michaelh AT juju.net.nz>
4839 * src/z80/gen.c (fetchLitPair): Changed so that it properly caches direct space references.
4841 * support/regression/tests/addsub.c: Added cases to cover all the +, - combinations.
4843 * support/regression/tests/uminus.c: Added a test for the unary minus operator.
4845 * 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.
4847 2001-09-01 Michael Hope <michaelh AT juju.net.nz>
4849 * src/z80/gen.c: Fixed up generator to pass the regresion tests, specifically fixing loads for longs, genCmp, and turned on the map file.
4850 (genCmp): Fixed up genCmp for the GB with longs.
4852 * device/lib/gbz80/Makefile: Fixed up all the libraries to pass the regression tests.
4854 * support/regression/ports/host/spec.mk: Updated to compile with the new type specifiers.
4856 * device/lib/Makefile.in (Z80SOURCES): Removed old _mululong, _mulslong, and unneeded _mulint.
4858 * device/lib/_mullong.c (_mulslong): Changed to actually return a value :)
4860 2001-08-30 Paul Stoffregen <paul AT pjrc.com>
4862 * added peepholes 223 to 231 to mcs51 port. These improve code when using large model.
4864 2001-08-30 Michael Hope <michaelh AT juju.net.nz>
4866 * 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.
4868 * src/z80/gen.c (genPlus): Changed bad long add for gb to a fall through.
4870 2001-08-29 Michael Hope <michaelh AT juju.net.nz>
4872 * link/z80/aslink.h: Fixed long file name support. Is now based off PATH_MAX instead of a constant.
4874 * src/z80/gen.c: Fixed add and sub for the case where left or right are in static space.
4876 2001-08-30 Bernhard Held <bernhard AT bernhardheld.de>
4878 * sim/ucsim/configure: little improvement of Cygwin-detection
4879 * sim/ucsim/configure.in: little improvement of Cygwin-detection
4880 * sim/ucsim/cmd.src/newcmdcl.h: include <sys/types.h> to define fd_set automated build
4881 * support/regression/tests/bug-221100.c: small changes for mcs51
4882 * support/regression/tests/bug-221168.c: small changes for mcs51
4883 * support/regression/tests/bug-227710.c: small changes for mcs51
4884 * support/regression/tests/staticinit.c: small changes for mcs51
4885 * as/mcs51/aslink.h: accept everything as symbol name in rel-files, bug fix ID 452601
4886 * as/mcs51/lklex.c: accept everything as symbol name in rel-files, bug fix ID 452601
4887 * as/mcs51/lksym.c: accept everything as symbol name in rel-files, bug fix ID 452601