fw/sdcc
20 years ago* src/mcs51/gen.c (pushSide, genSignedRightShift, genDjnz, geniPush):
epetrich [Fri, 19 Mar 2004 07:37:37 +0000 (07:37 +0000)]
* src/mcs51/gen.c (pushSide, genSignedRightShift, genDjnz, geniPush):
use MOVA macro to avoid "mov a,acc" when peephole optimizer is
disabled (fixes bug #916294)
* sim/ucsim/s51.src/mov.cc (inst_mov_a_addr): Throw an error on
"mov a,acc"; patch provided by Lenny Story
* device/include/mc68hc908gp32.h: header contibuted by Juan Gonzalez

git-svn-id: https://sdcc.svn.sourceforge.net/svnroot/sdcc/trunk/sdcc@3270 4a8a32a2-be11-0410-ad9d-d568d2c75423

20 years ago* src/mcs51/gen.c (genFunction): optimize RECEIVE in reentrant
epetrich [Fri, 19 Mar 2004 06:26:43 +0000 (06:26 +0000)]
* src/mcs51/gen.c (genFunction): optimize RECEIVE in reentrant
functions
* src/ds390/gen.c (genFunction, genEndFunction),
* src/ds390/ralloc.c (ds390_assignRegisters),
* src/mcs51/gen.c (genFunction, genEndFunction, mcs51_assignRegisters):
* src/mcs51/ralloc.c (mcs51_assignRegisters): Skip optimizing registers
pushed if there are parameters passed on the stack. Also, a cleaner
way to decide if r0/r1 should be pushed/popped. (Together they fix
bug #918693)

git-svn-id: https://sdcc.svn.sourceforge.net/svnroot/sdcc/trunk/sdcc@3269 4a8a32a2-be11-0410-ad9d-d568d2c75423

20 years ago* doc/sdccman.lyx,
epetrich [Thu, 18 Mar 2004 15:19:30 +0000 (15:19 +0000)]
* doc/sdccman.lyx,
* device/lib/mcs51/crtpagesfr.asm,
* device/lib/mcs51/crtxinit.asm,
* device/lib/mcs51/crtxstack.asm: Changed name of _PAGESFR to _XPAGE
to avoid confusion with Si Lab's SFRPAGE register.

git-svn-id: https://sdcc.svn.sourceforge.net/svnroot/sdcc/trunk/sdcc@3268 4a8a32a2-be11-0410-ad9d-d568d2c75423

20 years ago* src/SDCCglue.c (emitMaps): allow public sfr variables
epetrich [Wed, 17 Mar 2004 23:33:26 +0000 (23:33 +0000)]
* src/SDCCglue.c (emitMaps): allow public sfr variables
* src/SDCCglue.c (initialComments): include compiler build date
with compiler version and put the timestamp of the generated
assembly file on a serperate line to be less confusing.
* src/port.h: added genInitStartup hook
* src/avr/main.c,
* src/ds390/main.c,
* src/hc08/main.c,
* src/pic/main.c,
* src/pic16/main.c,
* src/xa51/main.c,
* src/z80/main.c: genInitStartup initialize as NULL (default to
historical behaviour)
* src/SDCCglue.c (glue): _sdcc_gsinit_startup is now port specific.
* src/mcs51/main.c: (_mcs51_genInitStartup, _mcs51_genExtraAreas,
_mcs51_genXINIT, _mcs51_genRAMCLEAR): link initialization code from the
library instead of hard coding it into the compiler.
* support/regression/ports/mcs51-stack-auto/spec.mk,
* src/SDCCmain.c (linkEdit): added mcs51.lib to the link libraries
* device/lib/mcs51/Makefile,
* device/lib/small/Makefile,
* device/lib/large/Makefile,
* device/lib/mcs51/crtpagesfr.asm,
* device/lib/mcs51/crtstart.asm,
* device/lib/mcs51/crtxclear.asm,
* device/lib/mcs51/crtxinit.asm,
* device/lib/mcs51/crtclear.asm,
* device/lib/mcs51/crtxstack.asm: move most of the mcs51 C runtime
startup/initialization out of src/SDCCglue.c and src/mcs51/main.c
and into user configurable files.
* device/lib/clean.mk: clean mcs51 directory too
* support/regression/tests/longlit.c: added static to T1 declaration
* doc/sdccman.lyx: documented _PAGESFR sfr for customizing pdata
accesses in the initialization code

git-svn-id: https://sdcc.svn.sourceforge.net/svnroot/sdcc/trunk/sdcc@3267 4a8a32a2-be11-0410-ad9d-d568d2c75423

20 years ago* device/include/mc68hc908qy.h: corrected declarations of FLBPR and
epetrich [Sun, 14 Mar 2004 15:48:03 +0000 (15:48 +0000)]
* device/include/mc68hc908qy.h: corrected declarations of FLBPR and
OSCTRIMVAL as noted in bug #916008

git-svn-id: https://sdcc.svn.sourceforge.net/svnroot/sdcc/trunk/sdcc@3266 4a8a32a2-be11-0410-ad9d-d568d2c75423

20 years ago* src/SDCCloop.c (basicInduction): fixed bug with loop induction
epetrich [Sun, 14 Mar 2004 08:01:28 +0000 (08:01 +0000)]
* src/SDCCloop.c (basicInduction): fixed bug with loop induction
in loops with multiple exits (reported as incorrect registers
used by Martin Helmling in Sdcc-user list)

git-svn-id: https://sdcc.svn.sourceforge.net/svnroot/sdcc/trunk/sdcc@3265 4a8a32a2-be11-0410-ad9d-d568d2c75423

20 years agosrc/ds390/main.c (_ds390_genAssemblerPreamble): cosmetic change,
frief [Fri, 12 Mar 2004 10:36:31 +0000 (10:36 +0000)]
src/ds390/main.c (_ds390_genAssemblerPreamble): cosmetic change,
made ds390 register extensions look less like error messages

git-svn-id: https://sdcc.svn.sourceforge.net/svnroot/sdcc/trunk/sdcc@3264 4a8a32a2-be11-0410-ad9d-d568d2c75423

20 years ago(_ds390_genAssemblerPreamble): cosmetic change, made ds390 register extensions look...
frief [Fri, 12 Mar 2004 10:34:17 +0000 (10:34 +0000)]
(_ds390_genAssemblerPreamble): cosmetic change, made ds390 register extensions look less like error messages, related to thread "Registers Unknown to Assembler Error" on sdcc-user 2004-03-11

git-svn-id: https://sdcc.svn.sourceforge.net/svnroot/sdcc/trunk/sdcc@3263 4a8a32a2-be11-0410-ad9d-d568d2c75423

20 years ago* src/SDCCglue.c (printIvalPtr): fixed bug with pointer initializer
epetrich [Fri, 12 Mar 2004 06:05:29 +0000 (06:05 +0000)]
* src/SDCCglue.c (printIvalPtr): fixed bug with pointer initializer
reported by Adam Wozniak in Sdcc-user list

git-svn-id: https://sdcc.svn.sourceforge.net/svnroot/sdcc/trunk/sdcc@3262 4a8a32a2-be11-0410-ad9d-d568d2c75423

20 years ago* src/SDCCast.c (decorateType): fixed with bug and promotion in arithmetic optimizati...
bernhardheld [Wed, 10 Mar 2004 20:45:26 +0000 (20:45 +0000)]
* src/SDCCast.c (decorateType): fixed with bug and promotion in arithmetic optimizations, added debug output

git-svn-id: https://sdcc.svn.sourceforge.net/svnroot/sdcc/trunk/sdcc@3261 4a8a32a2-be11-0410-ad9d-d568d2c75423

20 years ago* src/SDCCicode.c (geniCodeMultiply): fixed logic for decision if mul is optimized...
bernhardheld [Tue, 9 Mar 2004 21:56:25 +0000 (21:56 +0000)]
* src/SDCCicode.c (geniCodeMultiply): fixed logic for decision if mul is optimized to left shift

git-svn-id: https://sdcc.svn.sourceforge.net/svnroot/sdcc/trunk/sdcc@3260 4a8a32a2-be11-0410-ad9d-d568d2c75423

20 years ago* device/lib/time.c (mktime): fixed bug reported by Bert Thomas
bernhardheld [Tue, 9 Mar 2004 21:36:07 +0000 (21:36 +0000)]
* device/lib/time.c (mktime): fixed bug reported by Bert Thomas
* sdcc.spec: updated and split sdcc into 3 rpms
* src/SDCCast.c (decorateType): &|^ don't need addCast(); addCast() is needed for literals of LEFT_OP and '+'
* src/SDCCicode.c (geniCodeLogic): I must have been braindead when I introduced RESULT_TYPE_NOPROM
* src/SDCCsymt.c (computeType): op is int; added RESULT_TYPE_OTHER; limited promotion to int only for '*'
* src/SDCCsymt.h (computeType): op is int, removed RESULT_TYPE_NOPROM

git-svn-id: https://sdcc.svn.sourceforge.net/svnroot/sdcc/trunk/sdcc@3259 4a8a32a2-be11-0410-ad9d-d568d2c75423

20 years agobit isn't available on serveral ports
bernhardheld [Tue, 9 Mar 2004 10:48:33 +0000 (10:48 +0000)]
bit isn't available on serveral ports

git-svn-id: https://sdcc.svn.sourceforge.net/svnroot/sdcc/trunk/sdcc@3258 4a8a32a2-be11-0410-ad9d-d568d2c75423

20 years agoOoops
bernhardheld [Tue, 9 Mar 2004 08:44:47 +0000 (08:44 +0000)]
Ooops

git-svn-id: https://sdcc.svn.sourceforge.net/svnroot/sdcc/trunk/sdcc@3257 4a8a32a2-be11-0410-ad9d-d568d2c75423

20 years ago* device/lib/time.c (mktime): fixed bug reported by Bert Thomas
bernhardheld [Tue, 9 Mar 2004 08:26:36 +0000 (08:26 +0000)]
* device/lib/time.c (mktime): fixed bug reported by Bert Thomas

git-svn-id: https://sdcc.svn.sourceforge.net/svnroot/sdcc/trunk/sdcc@3256 4a8a32a2-be11-0410-ad9d-d568d2c75423

20 years ago2004-03-09 Hans Dorn <hjdorn AT users.sourceforge.net>
hjdorn [Tue, 9 Mar 2004 02:52:43 +0000 (02:52 +0000)]
2004-03-09 Hans Dorn <hjdorn AT users.sourceforge.net>

* src/pic16/gen.c (genSkip),
(genc16bit2lit), (gencjneshort): commented out
(is_LitOp): new helper function, checks operand type
(genCmpEq): rewritten

git-svn-id: https://sdcc.svn.sourceforge.net/svnroot/sdcc/trunk/sdcc@3255 4a8a32a2-be11-0410-ad9d-d568d2c75423

20 years ago * support/regression/tests/bug-908454.c: added
bernhardheld [Mon, 8 Mar 2004 20:26:20 +0000 (20:26 +0000)]
 * support/regression/tests/bug-908454.c: added

git-svn-id: https://sdcc.svn.sourceforge.net/svnroot/sdcc/trunk/sdcc@3254 4a8a32a2-be11-0410-ad9d-d568d2c75423

20 years ago* src/SDCCast.c (addCast): fixed bug #908454 by promoting bits to char
bernhardheld [Sun, 7 Mar 2004 21:38:02 +0000 (21:38 +0000)]
* src/SDCCast.c (addCast): fixed bug #908454 by promoting bits to char
* src/SDCCicode.c (usualBinaryConversions): op needs int type
(geniCodeCast): cosmetic, don't preserve bit storage class
(geniCodeLeftShift): added promotion
(geniCodeLogic): fixed regression
* src/SDCCsymt.c (computeTypeOr): accept bits too
(compareType): 2nd part of fix for bug #908454, needed for bitfields

git-svn-id: https://sdcc.svn.sourceforge.net/svnroot/sdcc/trunk/sdcc@3253 4a8a32a2-be11-0410-ad9d-d568d2c75423

20 years ago* support/Util/findme.c: alloca() replaced with malloc()/free() pair
borutr [Sun, 7 Mar 2004 19:41:59 +0000 (19:41 +0000)]
* support/Util/findme.c: alloca() replaced with malloc()/free() pair

git-svn-id: https://sdcc.svn.sourceforge.net/svnroot/sdcc/trunk/sdcc@3252 4a8a32a2-be11-0410-ad9d-d568d2c75423

20 years ago]
vrokas [Sat, 6 Mar 2004 12:39:10 +0000 (12:39 +0000)]
]
* src/pic16/ralloc.c (pic16_genPackRegisters): reverted to old
version of pic16_genPackRegisters which does not check if ic is a
CAST operator,
* src/pic16/gen.c (ifxForOp): disabled new and untested code in
function cause string1.c regression test fails

git-svn-id: https://sdcc.svn.sourceforge.net/svnroot/sdcc/trunk/sdcc@3251 4a8a32a2-be11-0410-ad9d-d568d2c75423

20 years ago* sim/ucsim/configure.in,
bernhardheld [Sat, 6 Mar 2004 11:44:05 +0000 (11:44 +0000)]
* sim/ucsim/configure.in,
* sim/ucsim/configure,
* sim/ucsim/Makefile.in: use docdir
* src/SDCC.y: fixed sbit atrributes
* src/SDCCast.c (getResultTypeFromType): added support for bitfields
* src/SDCCast.c (decorateType): |^& need special promotion handling
* src/SDCCast.h,
* src/SDCCsymt.h: moved definition of RESULT_TYPE
* src/SDCCsymt.h (computeType),
* src/SDCCicode.c: computeType() needs op
* src/SDCCsymt.c (checkTypeSanity),
* doc/sddman.lyx: "plain" bitfields are unsigned
* src/SDCCsymt.c (computeTypeOr): added
* src/SDCCsymt.c (computeType): added support for bitfields, fixed |^& ops
* src/SDCCval.c (val*): computeType() needs op
* src/SDCCval.c (valCastLiteral): fixed casting of bitfields
* support/regression/tests/onebyte.c: added tests for |^&

git-svn-id: https://sdcc.svn.sourceforge.net/svnroot/sdcc/trunk/sdcc@3250 4a8a32a2-be11-0410-ad9d-d568d2c75423

20 years ago* src/pic16/gen.c: (genpic16Code) use copy of printILine's output for writing icode...
hjdorn [Sat, 6 Mar 2004 00:59:39 +0000 (00:59 +0000)]
* src/pic16/gen.c: (genpic16Code) use copy of printILine's output for writing icode into asm output.

git-svn-id: https://sdcc.svn.sourceforge.net/svnroot/sdcc/trunk/sdcc@3249 4a8a32a2-be11-0410-ad9d-d568d2c75423

20 years ago * src/pic16/device.c: added some debug lines enabled
vrokas [Fri, 5 Mar 2004 15:49:01 +0000 (15:49 +0000)]
* src/pic16/device.c: added some debug lines enabled
with macro DEBUG_CHECK,
* src/pic16/genarith.c: more debug in genPlus,
* (pic16_genUMult8XLit_16, pic16_genUMult8X8_16): removed,
* (pic16_genUMult16X16_16, pic16_genUMult16XLit_16): NEW,
* src/pic16/gen.c: added prototypes for pic16_genMult16X16_16,
* (aopForSym): onStack symbols are re-placed in data memspace,
and onStack flag is cleared,
* (pic16_popGetTempReg, pic16_popReleaseTempReg): modified to
copy temporary pcodeop,
* (genPcall): added warning for not updating PCLATU,
* (genFunction): removed test with IFFUNC_CALLEESAVES, its
always true for pic16 port,
* (genMultOneWord): NEW, supports integer multiplication,
* (genMult): modified to call genMultOneWord,
* (ifxForOp): added warning when return NULL,
* src/pic16/glue.c (pic16emitRegularMap): symbol implicit
flag is set before call to operandFromSymbol for implicit
added structures,
* src/pic16/main.c (_pic16_finaliseOptions): options.float_rent,
options.intlong_rent are set by default,
* (_hasNativeMulFor): modified to allow port generation of integer
multiplication,
* src/pic16/ralloc.c (pic16_allocDirReg): commented out line which
set regtype to REG_SFR for all registers, restricting seting the
accessBank flag for registers 0<= r < 0x80 and 0xf80<=r<=0xfff,

git-svn-id: https://sdcc.svn.sourceforge.net/svnroot/sdcc/trunk/sdcc@3248 4a8a32a2-be11-0410-ad9d-d568d2c75423

20 years agosrc/mcs51/peephole.def: added 251.b and 253.x. 253.x are applied more than 500 times...
frief [Fri, 5 Mar 2004 11:44:23 +0000 (11:44 +0000)]
src/mcs51/peephole.def: added 251.b and 253.x. 253.x are applied more than 500 times in the regression tests

git-svn-id: https://sdcc.svn.sourceforge.net/svnroot/sdcc/trunk/sdcc@3247 4a8a32a2-be11-0410-ad9d-d568d2c75423

20 years agoadded 251.b and 253.x. 253.x are applied more than 500 times in the regression tests
frief [Fri, 5 Mar 2004 11:42:32 +0000 (11:42 +0000)]
added 251.b and 253.x. 253.x are applied more than 500 times in the regression tests

git-svn-id: https://sdcc.svn.sourceforge.net/svnroot/sdcc/trunk/sdcc@3246 4a8a32a2-be11-0410-ad9d-d568d2c75423

20 years ago* support/Util/SDCCerr.h,
epetrich [Fri, 5 Mar 2004 07:15:07 +0000 (07:15 +0000)]
* support/Util/SDCCerr.h,
* support/Util/SDCCerr.c,
* src/SDCC.y (struct_or_union_specifier, enum_specifier,
enumerator_list),
* src/SDCCsymt.c (addSymChain): show location of oriignal definition
for symbol conflicts.
* support/valdiags/tests/enum.c,
* support/valdiags/tests/tentdecl.c,
* support/valdiags/tests/struct.c: expect possible error messages
referring to original symbol definitions.
* src/SDCC.y (struct_or_union_specifier, struct_declarator),
* src/SDCCsymt.h,
* src/SDCCsymt.c (promoteAnonStructs): support anonymous struct/union

git-svn-id: https://sdcc.svn.sourceforge.net/svnroot/sdcc/trunk/sdcc@3245 4a8a32a2-be11-0410-ad9d-d568d2c75423

20 years ago2004-03-03 Hans Dorn <hjdorn AT users.sourceforge.net>
hjdorn [Wed, 3 Mar 2004 23:22:31 +0000 (23:22 +0000)]
2004-03-03 Hans Dorn <hjdorn AT users.sourceforge.net>

* src/pic16/gen.c (gencjne): fixed for right=REG / left=LIT

git-svn-id: https://sdcc.svn.sourceforge.net/svnroot/sdcc/trunk/sdcc@3244 4a8a32a2-be11-0410-ad9d-d568d2c75423

20 years ago* src/pic16/ralloc.c (newReg): fixed bug #908929
vrokas [Wed, 3 Mar 2004 11:32:17 +0000 (11:32 +0000)]
* src/pic16/ralloc.c (newReg): fixed bug #908929

git-svn-id: https://sdcc.svn.sourceforge.net/svnroot/sdcc/trunk/sdcc@3243 4a8a32a2-be11-0410-ad9d-d568d2c75423

20 years ago* src/ds390/gen.c: added missing #include "main.h"
epetrich [Tue, 2 Mar 2004 14:16:05 +0000 (14:16 +0000)]
* src/ds390/gen.c: added missing #include "main.h"

git-svn-id: https://sdcc.svn.sourceforge.net/svnroot/sdcc/trunk/sdcc@3242 4a8a32a2-be11-0410-ad9d-d568d2c75423

20 years ago* src/pic16/device.c (checkAddSym): NEW, adds a symbol to set while
vrokas [Tue, 2 Mar 2004 13:50:29 +0000 (13:50 +0000)]
* src/pic16/device.c (checkAddSym): NEW, adds a symbol to set while
checking if symbol is already in set,
* src/pic16/device.h: prototype for checkAddSym,
* src/pic16/gen.c: (_G): added entry interruptvector,
* (assignResultValue): removed some commented out lines,
* (genFunction): check for ISR via sym->type, absolute section for
interrupt code is created via a new pBlock, the goto instruction is
placed now correctly at the interrupt vector position, changed all
references from ivec to _G.interruptvector,
* WREG,STATUS,BSR are not saved in stack upon an entry to interrupt
is the interrupt is a high priority one, same for return from ISR,
* src/pic16/glue.c: changed all calls of addSetHead for publics and
externs to calls of checkAddSym,
* src/pic16/pcode.c (pic16_pBlockConvert2*): emit warning when
pic16_pcode_verbose flag is set,
* src/pic16/pcode.h: extern to pic16_pcode_verbose,
* src/pic16/pcoderegs.c: message about how many registers are saved
will only be emitted if pic16_pcode_verbose flag is set,

git-svn-id: https://sdcc.svn.sourceforge.net/svnroot/sdcc/trunk/sdcc@3241 4a8a32a2-be11-0410-ad9d-d568d2c75423

20 years ago* src/ds390/ralloc.h,
epetrich [Tue, 2 Mar 2004 04:52:37 +0000 (04:52 +0000)]
* src/ds390/ralloc.h,
* src/ds390/ralloc.c (ds390_regWithIdx),
* src/ds390/gen.c (emitcode),
* src/ds390/main.h,
* src/ds390/main.c (instructionSize, ds390newAsmLineNode, updateOpRW,
ds390opcodeCompare, asmLineNodeFromLineNode, getInstructionSize,
ds390operandCompare, getRegsRead, getRegsWritten,
initializeAsmLineNode): customized instruction size calculation for
ds390, started basis for some register optimizations
* src/ds390/gen.c (gen390Code, emitcode): associate iCodes with
corresponding assembly output
* src/ds390/gen.c (genFunction, genEndFunction): added case to handle
missing push/pop of r0/r1. Optimized push/pops

git-svn-id: https://sdcc.svn.sourceforge.net/svnroot/sdcc/trunk/sdcc@3240 4a8a32a2-be11-0410-ad9d-d568d2c75423

20 years ago* src/mcs51/main.c (instructionSize): fixed ACALL size
epetrich [Mon, 1 Mar 2004 06:00:16 +0000 (06:00 +0000)]
* src/mcs51/main.c (instructionSize): fixed ACALL size
* src/mcs51/main.c (updateOpRW): fixed bug with @dptr, @a+dptr operands

git-svn-id: https://sdcc.svn.sourceforge.net/svnroot/sdcc/trunk/sdcc@3239 4a8a32a2-be11-0410-ad9d-d568d2c75423

20 years ago * src/pic16/device.c (pic16_dump_section): fixed a bug that allowed
vrokas [Mon, 1 Mar 2004 02:04:17 +0000 (02:04 +0000)]
* src/pic16/device.c (pic16_dump_section): fixed a bug that allowed
the sorting of rlist with NULL elements
* (print_idataType, print_idata): NEW to create idata sections
* src/pic16/device.h: idataSymSet new variable
* src/pic16/gen.c (genFunction): fixed some bugs in string
comparing, improved the aboslute section creation for ISRs,
added FSR0L/FSR0H in registers that are saved in an ISR,
* (genInline): fixed the processing of inline snippets,
now they undergo no process by the peephole optimizer
* src/pic16/glue.c (pic16emitRegularMap): symbols with initialiser
are placed in idataSymSet,
* (pic16emitStaticSeg): extern symbols are added in externs,
* src/pic16/ralloc.c (pic16_allocDirReg): work around to reduce bank
switching when aboslute variables are placed in access bank memory
* (pic16_writeUsedRegs): added call to pic16_dump_idata,
* (packRegsForSupport,packRegsForAccUse,packRegsForOneuse):
commented out with #if,
* (pic16_packRegisters): reintroduce the check for CAST because some
symbols are not correctly handled,
* src/pic16/pcode.h: changed the definition of pCodeAsmDir to hold a
pCodeInstruction instead of pCode,
* src/pic16/pcode.c (pic16_newpCodeAsmDir): modified for the new
pCodeAsmDir definition,
* (pic16_pCode2str, genericPrint): when an AsmDir pcode has a NULL
directive, then the argument directive is emitted without the leading
tab, hack for inline labels which must be in the first column,
* (compareLabel,pic16_findNextInstruction),
* (pic16_findPrevInstruction): added case for PO_ASMDIR,
* (insertBankSwitch): modified for the new pCodeAsmDir,

* src/pic16/gen.c (pic16_popGet): case PO_DIR, adds the offset to
instance,
* (pushSide): commented out with #if,
* (assignResultValue): fixed some typos in saving
registers,
* (genPcall): FIXED and sync'ed with genCall,
* (genDataPointerGet,genDataPointerSet): using offset not leoffset
* (genNearPointerGet): fixed to handle some more cases,
implementation scheme via table reads,
* (genConstPointerGet): modified to access code memory correct,
* (genCodePointerGet,genNearPointerSet,genGenPointerSet): modified
and improved to handle some cases
* glue.c (printIvalType,printIvalChar,emitStaticSeg): use "DB"
instead of "RETLW" for init data
* src/pic16/ralloc.c (pic16_allocDirReg): warning when a symbol is
not IN_DIRSPACE, work around to reduce bank switching when aboslute
variables are placed in access bank memory (<0x80 and >=0xf80),
* src/pic16/pcode.c: added SFRs TBLPTR, TABLAT, added opcodes TBLRD,
TBLRD_POSTINC,TBLRD_POSTDEC,TBLRD_PREINC,TBLWT,TBLWT_POSTINC,
TBLWT_POSTDEC,TBLWT_PREINC
* Fixed initialisation of BSR, set "alias" for SSAVE to "0"
* (pic16_emitDB,pic16_flushDB): New functions to generate "DB"
directives
* (pic16_pCodeConstString): use "DB" instead of "RETLW"
* src/pic16/pcode.h: added TBLRD*,TBLWT*, added pic16_emitDB,
pic16_flushDB, made pic16_newpCodeAsmDir public, added TBLPTR, TABLAT
* src/pic16/ralloc.h: added IDX_BSR,IDX_TBLPTR*,IDX_TABLAT

git-svn-id: https://sdcc.svn.sourceforge.net/svnroot/sdcc/trunk/sdcc@3238 4a8a32a2-be11-0410-ad9d-d568d2c75423

20 years agosrc/Makefile.in, src/SDCCutil.c, support/Util/findme.c,
borutr [Sun, 29 Feb 2004 20:08:39 +0000 (20:08 +0000)]
src/Makefile.in, src/SDCCutil.c, support/Util/findme.c,
support/Util/findme.h, support/Util/system.h: enhance binary relative
search for lib and include by using findProgramPath()

git-svn-id: https://sdcc.svn.sourceforge.net/svnroot/sdcc/trunk/sdcc@3237 4a8a32a2-be11-0410-ad9d-d568d2c75423

20 years ago* src/SDCCpeeph.h,
epetrich [Sun, 29 Feb 2004 02:13:04 +0000 (02:13 +0000)]
* src/SDCCpeeph.h,
* src/SDCCpeeph.c (pcDistance),
* src/port.h,
* src/mcs51/ralloc.h,
* src/mcs51/ralloc.c (mcs51_regWithIdx),
* src/mcs51/main.h,
* src/mcs51/main.c (instructionSize, asmLineNode, updateOpRW,
mcs51opcodeCompare, asmLineNodeFromLineNode, getInstructionSize,
mcs51operandCompare, getRegsRead, getRegsWritten): made instruction
size calculation port specific, started basis for some register
optimizations
* src/mcs51/gen.c (genFunction, genEndFunction): added case to handle
missing push/pop of r0/r1. Optimized push/pops
* src/mcs51/ralloc.c (packregisters): fixed bug #727095
* device/lib/_modsint.c (_modsint),
* device/lib/_modslong.c (_modslong): fixed sign of result in non-asm
and stack version so regression tests pass

git-svn-id: https://sdcc.svn.sourceforge.net/svnroot/sdcc/trunk/sdcc@3236 4a8a32a2-be11-0410-ad9d-d568d2c75423

20 years ago* src/SDCCicode.c (operandOperation): fixed EQ_OP bug, now same as in valCompare...
bernhardheld [Thu, 26 Feb 2004 20:51:08 +0000 (20:51 +0000)]
* src/SDCCicode.c (operandOperation): fixed EQ_OP bug, now same as in valCompare(); regression tested in muldiv.c
* support/regression/tests/muldiv.c: mod sign follows dividend only

git-svn-id: https://sdcc.svn.sourceforge.net/svnroot/sdcc/trunk/sdcc@3235 4a8a32a2-be11-0410-ad9d-d568d2c75423

20 years ago* src/Makefile.in (dep): include SLIBOBJS in dependency check
bernhardheld [Thu, 26 Feb 2004 20:04:51 +0000 (20:04 +0000)]
* src/Makefile.in (dep): include SLIBOBJS in dependency check
* src/SDCCast.c (decorateType): catch another small optimization with '?' operator
* src/SDCCsymt.c (computeType): added comments and cosmetic changes
* src/SDCCval.c (valMult, valDiv, valMod, valPlus, valMinus, valShift): modified to finally use computeType() all over SDCC, see Feature Request #877103
* src/SDCCval.h: cosmetic

git-svn-id: https://sdcc.svn.sourceforge.net/svnroot/sdcc/trunk/sdcc@3234 4a8a32a2-be11-0410-ad9d-d568d2c75423

20 years agoMerge back from sdcc-240
michaelh [Thu, 26 Feb 2004 06:44:17 +0000 (06:44 +0000)]
Merge back from sdcc-240

git-svn-id: https://sdcc.svn.sourceforge.net/svnroot/sdcc/trunk/sdcc@3233 4a8a32a2-be11-0410-ad9d-d568d2c75423

20 years ago* doc/INSTALL.txt: fixed install instructions for win32
bernhardheld [Mon, 23 Feb 2004 20:54:44 +0000 (20:54 +0000)]
* doc/INSTALL.txt: fixed install instructions for win32

git-svn-id: https://sdcc.svn.sourceforge.net/svnroot/sdcc/trunk/sdcc@3230 4a8a32a2-be11-0410-ad9d-d568d2c75423

20 years agoThis should not have been commited
bernhardheld [Mon, 23 Feb 2004 09:40:44 +0000 (09:40 +0000)]
This should not have been commited

git-svn-id: https://sdcc.svn.sourceforge.net/svnroot/sdcc/trunk/sdcc@3229 4a8a32a2-be11-0410-ad9d-d568d2c75423

20 years agosrc/SDCCast.c (decorateType): fixed bug #902362
bernhardheld [Mon, 23 Feb 2004 07:57:04 +0000 (07:57 +0000)]
src/SDCCast.c (decorateType): fixed bug #902362

git-svn-id: https://sdcc.svn.sourceforge.net/svnroot/sdcc/trunk/sdcc@3228 4a8a32a2-be11-0410-ad9d-d568d2c75423

20 years agoFixed the sz80 location (again)
michaelh [Sun, 22 Feb 2004 02:33:02 +0000 (02:33 +0000)]
Fixed the sz80 location (again)

git-svn-id: https://sdcc.svn.sourceforge.net/svnroot/sdcc/trunk/sdcc@3216 4a8a32a2-be11-0410-ad9d-d568d2c75423

20 years ago* doc/README.txt,
bernhardheld [Sat, 21 Feb 2004 20:52:44 +0000 (20:52 +0000)]
* doc/README.txt,
* doc/INSTALL.txt: updated for release
* doc/sdccman.lyx: added warning for --xstack being buggy

git-svn-id: https://sdcc.svn.sourceforge.net/svnroot/sdcc/trunk/sdcc@3215 4a8a32a2-be11-0410-ad9d-d568d2c75423

20 years ago* device/include/Makefile.in (install): fixed by replacing spaces by tabs
bernhardheld [Sat, 21 Feb 2004 19:48:05 +0000 (19:48 +0000)]
* device/include/Makefile.in (install): fixed by replacing spaces by tabs

git-svn-id: https://sdcc.svn.sourceforge.net/svnroot/sdcc/trunk/sdcc@3214 4a8a32a2-be11-0410-ad9d-d568d2c75423

20 years agocomments added
borutr [Fri, 20 Feb 2004 16:27:46 +0000 (16:27 +0000)]
comments added

git-svn-id: https://sdcc.svn.sourceforge.net/svnroot/sdcc/trunk/sdcc@3213 4a8a32a2-be11-0410-ad9d-d568d2c75423

20 years ago* src/pic16/ralloc.c (packRegsForAccUse): disabled functions with #if to eliminate...
sdcc-builder [Fri, 20 Feb 2004 12:32:27 +0000 (12:32 +0000)]
* src/pic16/ralloc.c (packRegsForAccUse):  disabled functions with #if to eliminate build warnings.
* src/pic16/gen.c (pic16_popGet): fixed for gcc 2.95.4

git-svn-id: https://sdcc.svn.sourceforge.net/svnroot/sdcc/trunk/sdcc@3212 4a8a32a2-be11-0410-ad9d-d568d2c75423

20 years ago* doc/sdccman.lyx: removed PIC16 from PIC16 Port Specific Options,
vrokas [Fri, 20 Feb 2004 00:48:07 +0000 (00:48 +0000)]
* doc/sdccman.lyx: removed PIC16 from PIC16 Port Specific Options,
removed -penable-stack, added comment for stack pragma, added
warning for not initializing the stack/frame registers, removed
comment at interrupts section

Stack is made permanent, there is no ability to disable stack usage.
* src/pic16/device.h,
* src/pic16/device.c: removed all references to USE_STACK macro,
* src/pic16/device.c (pic16_dump_section): when no elements in
rlist, free rlist before return,
* (pic16_dump_int_registers): NEW, internal registers are a new set
of general purpose registers reused by each function,
* (checkAddReg): returns 1 if registers is added to set,
* (pic16_groupRegistersInSection): when a registers is of type
PO_GPR_TEMP add it in pic16_int_regs and not in pic16_rel_udata,
* src/pic16/device.h: memRange and Assigned Memory are deleted,
SRCASECMP macro is moved here from device.c
* src/pic16/genarith.c (pic16_pCodeOpType): added cases for
PO_PCLATU, PO_PRODL, PO_PRODH,
* (pic16_pCodeOpType, genMinus,
changed compares to "a" register, with AOP_ACC,
* (pic16_genPlus): fixed some bugs and indented properly,
* (pic16_addSign): changed size to size+offset in the MOVWF
instruction,
* (pic16_genUMult8XLit_8): NEW, uses processor MULLW instruction to
multiply 8-bit operand by literal, result is 8-bit,
* (pic16_genUMult8X8_8): NEW, uses processor MULWF instruction to
multiply 2 8-bit operand, result is 8-bit,
* (pic16_genMult8X8_8): modified to call genUMult8X*_8 functions and not
genUMult8X*_16,
* src/pic16/gen.c: changed accUse to contain WREG only,
* (pic16_emitcomment): renamed to pic16_emitpcomment,
* (aopForSym): allocated dir register when IN_DIRSPACE(space) is,
true, do not use immediate addressing any more unless sym is a
pointer in codespace,
* (aopForRemat): do not use immediate addressing when symbol not in
codespace and when symbol's address is requested,
* (aopOp): for-loop in if(sym->accUse) is modified for the new
accUse size (= 1),
* (aopGet): added case for AOP_ACC and don't return "accumulator
bug" but WREG instead,
* (popGetTempReg): pushes contents of temporary register in stack,
* (popReleaseTempReg): pops contents of temporary register from
stack. Use popGetTempReg/popReleaseTempReg in aligned pairs,
* (pic16_popGet): separated case AOP_ACC to return register WREG
from processor registers, AOP_PCODE not checks if pcop is PO_DIR
or PO_IMMEDIATE and initializes their instance/offset appropriately,
* The whole issue with aopForSym,aopForRemat,popGet) is to minimize
the use of immediate pointers to certain cases only.

* (pic16_pushpCodeOpReg, pic16_poppCodeOpReg): use pic16_popGet2p,
* (pic16_loadFromReturn, pic16_storeForReturn: NEW,
* (assignResultValue, genCall, genRet): modified to use the new
function return value scheme with WREG,PRODL,PRODH,FSR0L and FSR0,
genPcall is still broken,
* (genFunction): added code to create 'A' type pBlocks when
interrupt functions are generated, code not extensively tested yet,
ISRs push WREG,STATUS,BSR,PRODL,PRODH,FSR0L,FSR0H registers on stack,
* (genEndFunction): modified so ISRs pop stored registers from stack,
* (genMultOneByte): cleanup,
* (AccRsh): added flag andmask, to and result with appropriate mask,
* (genUnpackBits,genPackBits): fixed and can handle bit fields,
* (genDataPointerGet): fixed and reenabled its use,
* (genNearDataPointerGet): bugs fixed,
* (genDataPointerSet): bugs fixed,
* src/pic16/genutils.c: added functions pic16_DumpValue,pic16_DumpAop,
pic16_DumpSymbol, pic16_DumpOp,
* src/pic16/genutils.h: function prototypes for the above functions,
* src/pic16/glue.c: new flags initsfpnt, to initialize stack/frame
pointers,
* (pic16emitRegularMap): many many many improvements, but needs a
major cleanup,
* src/pic16/main.c: enable_stack in pic16_options is removed,
* (_pic16_parseOptions): removed command line options -penable-stack,
* (_process_pragma): emit stack symbol only when stack pragma is
processed,
* src/pic16/pcode.c: pic16_pc_fsr0 is removed, all operations are
redirected to FSR0L/FSR0H pair,
* (pic16_get_op, pic16_get_op2): modifications and improvements,
* (pic16_getRegFromInstruction, pic16_getRegFromInstruction2): added
cases PO_PRODL,PO_PRODH, pic16_getRegFromInstruction2 returns sane
for immediates,
* (insertBankSwitch): modified to handle cases like: (alfa + 1)
* (dumpPicOptype): NEW,
* src/pic16/pcode.h: added PO_PCLATU,PO_PRODL,PO_PRODH in enum,
* src/pic16/pcoderegs.c (pCodeRegMapLiveRangesInFlow): fixed bug
with movff instruction,
* src/pic16/ralloc.c: renamed typeRegWithIdx to pic16_typeRegWithIdx,
added pic16_int_regs, some packRegsFor* functions are commented out,
because produce errors,
* src/pic16/NOTES: minor modifications

git-svn-id: https://sdcc.svn.sourceforge.net/svnroot/sdcc/trunk/sdcc@3210 4a8a32a2-be11-0410-ad9d-d568d2c75423

20 years agoFixed bug #895763. Thanks to o_gloom.
jesusc [Wed, 18 Feb 2004 22:03:49 +0000 (22:03 +0000)]
Fixed bug #895763.  Thanks to o_gloom.

git-svn-id: https://sdcc.svn.sourceforge.net/svnroot/sdcc/trunk/sdcc@3208 4a8a32a2-be11-0410-ad9d-d568d2c75423

20 years agoFor release version disable anoying warnings. Debug version still has them.
jesusc [Wed, 18 Feb 2004 20:05:16 +0000 (20:05 +0000)]
For release version disable anoying warnings.  Debug version still has them.

git-svn-id: https://sdcc.svn.sourceforge.net/svnroot/sdcc/trunk/sdcc@3207 4a8a32a2-be11-0410-ad9d-d568d2c75423

20 years agoAdded options --stack-size and --pack-iram
jesusc [Wed, 18 Feb 2004 17:57:54 +0000 (17:57 +0000)]
Added options --stack-size and --pack-iram

git-svn-id: https://sdcc.svn.sourceforge.net/svnroot/sdcc/trunk/sdcc@3206 4a8a32a2-be11-0410-ad9d-d568d2c75423

20 years agodevice/include/c8051f320.h: added. Contributed by Maarten Brock.
bernhardheld [Tue, 17 Feb 2004 20:11:13 +0000 (20:11 +0000)]
device/include/c8051f320.h: added. Contributed by Maarten Brock.

git-svn-id: https://sdcc.svn.sourceforge.net/svnroot/sdcc/trunk/sdcc@3205 4a8a32a2-be11-0410-ad9d-d568d2c75423

20 years ago* doc/sdccman.lyx: added details about the HC08 storage classes and
epetrich [Tue, 17 Feb 2004 18:50:09 +0000 (18:50 +0000)]
* doc/sdccman.lyx: added details about the HC08 storage classes and
interrupts, fixed the register usage info for z80 & gbz80

git-svn-id: https://sdcc.svn.sourceforge.net/svnroot/sdcc/trunk/sdcc@3204 4a8a32a2-be11-0410-ad9d-d568d2c75423

20 years ago* doc/sdccman.lyx: added more pic16 port documentation
vrokas [Mon, 16 Feb 2004 23:11:45 +0000 (23:11 +0000)]
* doc/sdccman.lyx: added more pic16 port documentation
* device/include/pic16: added header pic18fregs.h

git-svn-id: https://sdcc.svn.sourceforge.net/svnroot/sdcc/trunk/sdcc@3203 4a8a32a2-be11-0410-ad9d-d568d2c75423

20 years ago* doc/sdccman.lyx: added more pic16 port documentation
vrokas [Mon, 16 Feb 2004 22:18:01 +0000 (22:18 +0000)]
* doc/sdccman.lyx: added more pic16 port documentation

git-svn-id: https://sdcc.svn.sourceforge.net/svnroot/sdcc/trunk/sdcc@3202 4a8a32a2-be11-0410-ad9d-d568d2c75423

20 years agodoc/sdccman.lyx: added Vangelis' contribution
bernhardheld [Mon, 16 Feb 2004 21:16:36 +0000 (21:16 +0000)]
doc/sdccman.lyx: added Vangelis' contribution

git-svn-id: https://sdcc.svn.sourceforge.net/svnroot/sdcc/trunk/sdcc@3201 4a8a32a2-be11-0410-ad9d-d568d2c75423

20 years ago* src/SDCClrange.c (rlivePoint): live range of SEND operand should
epetrich [Mon, 16 Feb 2004 06:30:36 +0000 (06:30 +0000)]
* src/SDCClrange.c (rlivePoint): live range of SEND operand should
extend to the next CALL or PCALL, not just to the next CALL.

git-svn-id: https://sdcc.svn.sourceforge.net/svnroot/sdcc/trunk/sdcc@3200 4a8a32a2-be11-0410-ad9d-d568d2c75423

20 years ago* src/pic16/gen.c (genInline): fixed bug #896482 with inline assembly
vrokas [Mon, 16 Feb 2004 02:22:49 +0000 (02:22 +0000)]
* src/pic16/gen.c (genInline): fixed bug #896482 with inline assembly

git-svn-id: https://sdcc.svn.sourceforge.net/svnroot/sdcc/trunk/sdcc@3199 4a8a32a2-be11-0410-ad9d-d568d2c75423

20 years ago* src/mcs51/ralloc.c (packRegsForAssign, reassignAliasedSym): fixed
epetrich [Sun, 15 Feb 2004 07:38:30 +0000 (07:38 +0000)]
* src/mcs51/ralloc.c (packRegsForAssign, reassignAliasedSym): fixed
bug #895752 and a better fix for bug #716790

git-svn-id: https://sdcc.svn.sourceforge.net/svnroot/sdcc/trunk/sdcc@3198 4a8a32a2-be11-0410-ad9d-d568d2c75423

20 years ago* src/SDCCsymt.c (processFuncArgs): fixed bug #896796
epetrich [Sun, 15 Feb 2004 01:25:14 +0000 (01:25 +0000)]
* src/SDCCsymt.c (processFuncArgs): fixed bug #896796

git-svn-id: https://sdcc.svn.sourceforge.net/svnroot/sdcc/trunk/sdcc@3197 4a8a32a2-be11-0410-ad9d-d568d2c75423

20 years agodoc/sdccman.lyx: minor changes, minor changed
frief [Sat, 14 Feb 2004 09:25:39 +0000 (09:25 +0000)]
doc/sdccman.lyx: minor changes, minor changed

git-svn-id: https://sdcc.svn.sourceforge.net/svnroot/sdcc/trunk/sdcc@3196 4a8a32a2-be11-0410-ad9d-d568d2c75423

20 years agoMinor changes, minor changed: 2.4.0
frief [Sat, 14 Feb 2004 09:22:14 +0000 (09:22 +0000)]
Minor changes, minor changed: 2.4.0

git-svn-id: https://sdcc.svn.sourceforge.net/svnroot/sdcc/trunk/sdcc@3195 4a8a32a2-be11-0410-ad9d-d568d2c75423

20 years ago* src/SDCCicode.c (usualBinaryConversions): removed pic16 from ports which can't...
bernhardheld [Fri, 13 Feb 2004 21:47:42 +0000 (21:47 +0000)]
* src/SDCCicode.c (usualBinaryConversions): removed pic16 from ports which can't handle SDCC_NEWONEBYTEOPS,
(geniCodeMultiply): removed conversion from mult to shift for pic14 and pic16

git-svn-id: https://sdcc.svn.sourceforge.net/svnroot/sdcc/trunk/sdcc@3194 4a8a32a2-be11-0410-ad9d-d568d2c75423

20 years ago* src/hc08/gen.h,
epetrich [Thu, 12 Feb 2004 07:37:22 +0000 (07:37 +0000)]
* src/hc08/gen.h,
* src/hc08/gen.c (storeRegToAop, aopOp, aopAdrStr, accopWithAop,
rmwWithAop): Ported my 2004-10-02 fix for bug #663539 to the hc08,
thus fixing bug #895406

git-svn-id: https://sdcc.svn.sourceforge.net/svnroot/sdcc/trunk/sdcc@3193 4a8a32a2-be11-0410-ad9d-d568d2c75423

20 years ago* device/lib/_modsint.c,
bernhardheld [Wed, 11 Feb 2004 21:30:33 +0000 (21:30 +0000)]
* device/lib/_modsint.c,
* device/lib/_modslong.c: sign follows divisor only
* src/hc08/gen.c (genMultOneByte): if result size is 1, signs or signedness can be ignored
* src/SDCCast.c (addCast): cosmetic - added lineno to CAST
* src/SDCCast.c (resultTypePropagate): added even more ops: +, - and *, added optimization for IFX,
(decorateType): Mult/Div/ModOneByte ops can handle all kind of signed arguments;
reenabled optimization for IFX, which was removed on 2004-01-11
* src/SDCCast.h: added return type IFX
* src/SDCCicode.c: Mult/Div/ModOneByte ops can handle all kind of signed arguments with 8 or 16 bit results; pic14 and pic16 ports use old promotion behaviour;
env. var. SDCC_NEWONEBYTEOPS selects the new, SDCC_OLDONEBYTEOPS selects the old behaviour
* src/SDCCsymt.c (computeType): type2 can be NULL (for LEFT_OP);
changed again and commented promotion rule (it's still not perfect)
* src/SDCCval.c (valDiv): promotion no longer necessary
* src/ds390/gen.c (genMultOneByte) (genDivOneByte) (genModOneByte),
* src/mcs51/gen.c (genMultOneByte) (genDivOneByte) (genModOneByte): rewritten
* support/regression/tests/onebyte.c: added

git-svn-id: https://sdcc.svn.sourceforge.net/svnroot/sdcc/trunk/sdcc@3192 4a8a32a2-be11-0410-ad9d-d568d2c75423

20 years ago* gen.c (genInline): reverted to old code for assemnling inline
vrokas [Wed, 11 Feb 2004 18:30:45 +0000 (18:30 +0000)]
* gen.c (genInline): reverted to old code for assemnling inline
code because of bug reported James Chadd

git-svn-id: https://sdcc.svn.sourceforge.net/svnroot/sdcc/trunk/sdcc@3191 4a8a32a2-be11-0410-ad9d-d568d2c75423

20 years agoVersion 1.18 was a copy of ralloc.h(1.7). So this version is the same as version...
jesusc [Wed, 11 Feb 2004 04:17:02 +0000 (04:17 +0000)]
Version 1.18 was a copy of ralloc.h(1.7).  So this version is the same as version 1.17.

git-svn-id: https://sdcc.svn.sourceforge.net/svnroot/sdcc/trunk/sdcc@3189 4a8a32a2-be11-0410-ad9d-d568d2c75423

20 years ago* ralloc.h: missing declarations from previous patch,
vrokas [Tue, 10 Feb 2004 22:07:48 +0000 (22:07 +0000)]
* ralloc.h: missing declarations from previous patch,
seems that patch for ralloc.h was never applied, fixed

git-svn-id: https://sdcc.svn.sourceforge.net/svnroot/sdcc/trunk/sdcc@3188 4a8a32a2-be11-0410-ad9d-d568d2c75423

20 years ago* pcode.c,
vrokas [Tue, 10 Feb 2004 19:19:01 +0000 (19:19 +0000)]
* pcode.c,
* pcode.h,
* ralloc.h: added FSR0L, FSR0H and other missing PIC16 SFR's for
indirect addressing. Marked FSR0 as deprecated
* gen.c (pointerCode): commented out, not needed now
(pic16_popGet2p): new MOVFF helper function
(genGenPointerGet),
(genGenPointerSet): reimplemented with MOVFF and POSTINC0
(shiftRLong): removed duplicate debugging info

git-svn-id: https://sdcc.svn.sourceforge.net/svnroot/sdcc/trunk/sdcc@3187 4a8a32a2-be11-0410-ad9d-d568d2c75423

20 years ago* src/ds390/gen.c (genNearPointerGet),
epetrich [Tue, 10 Feb 2004 07:20:18 +0000 (07:20 +0000)]
* src/ds390/gen.c (genNearPointerGet),
* src/mcs51/gen.c (genNearPointerGet): allow the genDataPointerGet()
optimization with bits, but not bitfields.
* src/ds390/ralloc.c (packRegisters),
* src/mcs51/ralloc.c (packRegisters): fixed bug #884453 & #880832

git-svn-id: https://sdcc.svn.sourceforge.net/svnroot/sdcc/trunk/sdcc@3186 4a8a32a2-be11-0410-ad9d-d568d2c75423

20 years ago* src/SDCCcse.c (algebraicOpts): copy operands before modification
bernhardheld [Mon, 9 Feb 2004 12:25:29 +0000 (12:25 +0000)]
* src/SDCCcse.c (algebraicOpts): copy operands before modification

git-svn-id: https://sdcc.svn.sourceforge.net/svnroot/sdcc/trunk/sdcc@3185 4a8a32a2-be11-0410-ad9d-d568d2c75423

20 years ago* src/SDCCsymt.h,
epetrich [Mon, 9 Feb 2004 07:06:19 +0000 (07:06 +0000)]
* src/SDCCsymt.h,
* src/SDCCicode.c (operandFromSymbol),
* src/mcs51/ralloc.c (verifyRegsAssigned, serialRegAssign),
* src/ds390/ralloc.c (verifyRegsAssigned, serialRegAssign),
* src/z80/ralloc.c (verifyRegsAssigned, serialRegAssign),
* src/hc08/ralloc.c (verifyRegsAssigned, serialRegAssign),
* src/pic/ralloc.c (verifyRegsAssigned, serialRegAssign),
* src/pic16/ralloc.c (verifyRegsAssigned, serialRegAssign): fixed bug #892038
* src/SDCCast.c (createIvalStruct, createIvalArray, gatherAutoInit),
* src/SDCCglue.c (emitRegularMap, printIvalStruct, printIvalArray,
printIvalCharPtr, printIvalPtr, printIval, emitStaticSeg, emitOverlay)
* src/SDCCsymt.c (newSymbol),
* src/SDCC.y (struct_or_union_specifier, enum_specifier,
enumerator_list),
* src/SDCCval.h,
* src/SDCCval.c (newiList): fixed bug #885705

git-svn-id: https://sdcc.svn.sourceforge.net/svnroot/sdcc/trunk/sdcc@3183 4a8a32a2-be11-0410-ad9d-d568d2c75423

20 years agoReport stack size in .mem file.
jesusc [Sun, 8 Feb 2004 22:53:30 +0000 (22:53 +0000)]
Report stack size in .mem file.

git-svn-id: https://sdcc.svn.sourceforge.net/svnroot/sdcc/trunk/sdcc@3182 4a8a32a2-be11-0410-ad9d-d568d2c75423

20 years agodoc/sdccman.lyx: added section 3.14 about sdcclib
jesusc [Sun, 8 Feb 2004 19:13:51 +0000 (19:13 +0000)]
doc/sdccman.lyx: added section 3.14 about sdcclib

git-svn-id: https://sdcc.svn.sourceforge.net/svnroot/sdcc/trunk/sdcc@3181 4a8a32a2-be11-0410-ad9d-d568d2c75423

20 years ago* device/include/c8051f120.h,c8051f300.h,c8051f310.h: added/updated header files for
frief [Sun, 8 Feb 2004 14:29:30 +0000 (14:29 +0000)]
* device/include/c8051f120.h,c8051f300.h,c8051f310.h: added/updated header files for
Silicon Laboratories (formerly Cygnal) CPUs. Contributed by Maarten Brock.
* doc/sdccman.lyx: minor changes, recommended diff -Naur and diff -u in new section Submitting patches

git-svn-id: https://sdcc.svn.sourceforge.net/svnroot/sdcc/trunk/sdcc@3180 4a8a32a2-be11-0410-ad9d-d568d2c75423

20 years agoadded header file for Silicon Laboratories (formerly Cygnal) CPU. Contributed by...
frief [Sun, 8 Feb 2004 14:27:26 +0000 (14:27 +0000)]
added header file for Silicon Laboratories (formerly Cygnal) CPU. Contributed by Maarten Brock

git-svn-id: https://sdcc.svn.sourceforge.net/svnroot/sdcc/trunk/sdcc@3179 4a8a32a2-be11-0410-ad9d-d568d2c75423

20 years agoadded/updated header files for Silicon Laboratories (formerly Cygnal) CPUs. Contribut...
frief [Sun, 8 Feb 2004 14:25:49 +0000 (14:25 +0000)]
added/updated header files for Silicon Laboratories (formerly Cygnal) CPUs. Contributed by Maarten Brock

git-svn-id: https://sdcc.svn.sourceforge.net/svnroot/sdcc/trunk/sdcc@3178 4a8a32a2-be11-0410-ad9d-d568d2c75423

20 years agominor changes, recommended diff -Naur and diff -u in new section Submitting patches
frief [Sun, 8 Feb 2004 14:22:52 +0000 (14:22 +0000)]
minor changes, recommended diff -Naur and diff -u in new section Submitting patches

git-svn-id: https://sdcc.svn.sourceforge.net/svnroot/sdcc/trunk/sdcc@3177 4a8a32a2-be11-0410-ad9d-d568d2c75423

20 years ago* src/mcs51/gen.c (genNearPointerGet, genPagedPointerGet,
epetrich [Sun, 8 Feb 2004 08:47:57 +0000 (08:47 +0000)]
* src/mcs51/gen.c (genNearPointerGet, genPagedPointerGet,
genFarPointerGet, genCodePointerGet, genGenPointerGet,
genNearPointerSet, genPagedPointerSet, genFarPointerSet,
genGenPointerSet),
* src/ds390/gen.c (genNearPointerGet, genPagedPointerGet,
genFarPointerGet, genCodePointerGet, genGenPointerGet,
genNearPointerSet, genPagedPointerSet, genFarPointerSet,
genGenPointerSet),
* src/pic16/gen.c (genNearPointerGet, genPagedPointerGet,
genFarPointerGet, genCodePointerGet, genGenPointerGet,
genNearPointerSet, genPagedPointerSet, genFarPointerSet,
genGenPointerSet),
* src/pic/gen.c (genNearPointerGet, genPagedPointerGet,
genFarPointerGet, genCodePointerGet, genGenPointerGet,
genNearPointerSet, genPagedPointerSet, genFarPointerSet,
genGenPointerSet): fixed bug #892400
* src/pic16/gen.c (genSkipz, AccRol): disabled functions with #if 0
to eliminate build warnings.
* src/SDCCast.c (processParms),
* src/SDCC.y (function_declarator2, declarator2_function_attributes):
fixed bug 751859
* support/valdiag/valdiag.py: added GCC to the list of defines active
when compiling with gcc

git-svn-id: https://sdcc.svn.sourceforge.net/svnroot/sdcc/trunk/sdcc@3176 4a8a32a2-be11-0410-ad9d-d568d2c75423

20 years ago* support/Util/SDCCerr.h,
epetrich [Sat, 7 Feb 2004 08:21:56 +0000 (08:21 +0000)]
* support/Util/SDCCerr.h,
* support/Util/SDCCerr.c,
* src/SDCCast.c (decorateType, sizeofOp): complain when sizeof is used
with an incomplete type (fixed bug #883734)
* src/SDCCicode.c (geniCodeCast): fixed bug #890510

git-svn-id: https://sdcc.svn.sourceforge.net/svnroot/sdcc/trunk/sdcc@3173 4a8a32a2-be11-0410-ad9d-d568d2c75423

20 years ago* src/pic16/gen.c (genCmpEq, shiftRLong): fixed declarations
epetrich [Sat, 7 Feb 2004 05:57:15 +0000 (05:57 +0000)]
* src/pic16/gen.c (genCmpEq, shiftRLong): fixed declarations

git-svn-id: https://sdcc.svn.sourceforge.net/svnroot/sdcc/trunk/sdcc@3172 4a8a32a2-be11-0410-ad9d-d568d2c75423

20 years ago* src/SDCCast.c (decorateType),
epetrich [Fri, 6 Feb 2004 06:27:15 +0000 (06:27 +0000)]
* src/SDCCast.c (decorateType),
* src/SDCCicode.c (geniCodeParms, geniCodeCall): fixed bugs in my ANSI
function pointer implementation
* support/regression/tests/funptrs.c: added tests to verify both forms
of function pointers work correctly. Added tests to verify parameters
are passed in the correct order.

git-svn-id: https://sdcc.svn.sourceforge.net/svnroot/sdcc/trunk/sdcc@3171 4a8a32a2-be11-0410-ad9d-d568d2c75423

20 years ago2004-02-06 Vangelis Rokas <vrokas AT otenet.gr>
vrokas [Fri, 6 Feb 2004 01:54:37 +0000 (01:54 +0000)]
2004-02-06  Vangelis Rokas <vrokas AT otenet.gr>

* device.c (regCompare): registers are sorted by ascending
address and increasing size,
* main.c (_pic16_finaliseOptions): removed the declaration
of compiler macro MCU. Now a macro of the format pic18fxxxx
will be defined from the command line

2004-02-06  Hans-Juergen Dorn <hans.dorn AT apl-landau.de>
    patch committed by Vangelis Rokas <vrokas AT otenet.gr>

* pcode.c (pic16initMnemonics): fixed typo in assignment to PCOP_RLNCF
PCOP_RLCF was overwritten!
* gen.c (genSkip) commented out calls to pic16_emitcode,
* (genCmpEQ) fixed "long" compares, only high word did get compared,
* (genlshTwo),
* (genRRC) added debugging info,
* (shiftL2Left2Result) Fixed bug, if offr > offl. Result got
overwritten while shifting,
* (shiftR2Left2Result) Fixed bug, if offr < offl. Result got
overwritten while shifting,
* (AccLsh),
* (AccRsh),
* (shiftLLeftOrResult),
* (shiftRLeftOrResult),
* (shiftRLong),
* (shiftLLong) Implemented with pic16_emitpcode
* (genlshFour) Replaced pic16_aopPut with pic16_emitpcode,
* (genLeftShift) Fixed bug, operand for shift by variable always
was "and"ed with 0x0f,
* (genLeftShiftLiteral),
* (genrshTwo),
* (genRightShiftLiteral) added debugging info,
* (genrshFour) added comment,
* (genRightShift) determined signedness from operand "left"
instead of "result"

git-svn-id: https://sdcc.svn.sourceforge.net/svnroot/sdcc/trunk/sdcc@3170 4a8a32a2-be11-0410-ad9d-d568d2c75423

20 years agoFixed problem where files that only contain 'const unsigned char' would caused SDCC...
slade_rich [Thu, 5 Feb 2004 23:02:58 +0000 (23:02 +0000)]
Fixed problem where files that only contain 'const unsigned char' would caused SDCC to crash.

git-svn-id: https://sdcc.svn.sourceforge.net/svnroot/sdcc/trunk/sdcc@3169 4a8a32a2-be11-0410-ad9d-d568d2c75423

20 years ago* src/SDCCicode.c (geniCodeParms),
epetrich [Wed, 4 Feb 2004 06:26:03 +0000 (06:26 +0000)]
* src/SDCCicode.c (geniCodeParms),
* src/SDCCast.c (decorateType, processParms): support for ANSI-style
function pointers, fixed function pointer bugs #861242 and #861896

git-svn-id: https://sdcc.svn.sourceforge.net/svnroot/sdcc/trunk/sdcc@3168 4a8a32a2-be11-0410-ad9d-d568d2c75423

20 years agoLined up indentation.
slade_rich [Wed, 4 Feb 2004 01:55:41 +0000 (01:55 +0000)]
Lined up indentation.

git-svn-id: https://sdcc.svn.sourceforge.net/svnroot/sdcc/trunk/sdcc@3167 4a8a32a2-be11-0410-ad9d-d568d2c75423

20 years agoConditional test was inverted with comparision against literal 0x80.
slade_rich [Tue, 3 Feb 2004 01:14:41 +0000 (01:14 +0000)]
Conditional test was inverted with comparision against literal 0x80.

git-svn-id: https://sdcc.svn.sourceforge.net/svnroot/sdcc/trunk/sdcc@3166 4a8a32a2-be11-0410-ad9d-d568d2c75423

20 years ago* device/include/Makefile.in (install),
bernhardheld [Sat, 31 Jan 2004 22:35:46 +0000 (22:35 +0000)]
* device/include/Makefile.in (install),
* doc/Makefile (install): changed to 'rm `find ...`' construct to avoid warnings

git-svn-id: https://sdcc.svn.sourceforge.net/svnroot/sdcc/trunk/sdcc@3165 4a8a32a2-be11-0410-ad9d-d568d2c75423

20 years agodevice/include/c8051f000.h, device/include/c8051f120.h, device/include/c8051f300...
frief [Sat, 31 Jan 2004 21:56:51 +0000 (21:56 +0000)]
device/include/c8051f000.h, device/include/c8051f120.h, device/include/c8051f300.h: added header files for Silicon Laboratories (formerly Cygnal) CPUs. Contributed by Maarten Brock.

git-svn-id: https://sdcc.svn.sourceforge.net/svnroot/sdcc/trunk/sdcc@3164 4a8a32a2-be11-0410-ad9d-d568d2c75423

20 years ago* src/SDCCast.c (processParams): added new type flow and restructured
bernhardheld [Sat, 31 Jan 2004 21:47:47 +0000 (21:47 +0000)]
* src/SDCCast.c (processParams): added new type flow and restructured
(gatherAutoInit): added new type flow
(addCast): cosmetic changes
(getLeftResultType): added new type flow for array indices, patch provided by Stas, see FR #877103
(decorateType): SDCC_NEWTYPEFLOW removed, new type flow is now standard; array index patch by Stas
* src/SDCCast.h: added prototype getResultTypeFromType()
* src/SDCCval.h,
* src/SDCCval.c (resolveIvalSym) (resolveIvalSym),
* src/pic/glue.c (pic14emitStaticSeg),
* src/pic16/glue.c (pic16emitStaticSeg),
* src/SDCCglue.c (emitRegularMap) (emitStaticSeg): added new type flow for initialization of symbols
* src/SDCCicode.c (geniCodeArray): removed warning W_ARRAY_BOUND
* support/Util/SDCCerr.h:
* support/Util/SDCCerr.c: replaced W_ARRAY_BOUND by W_IDX_OUT_OF_BOUNDS
* .version: bumped version number to 2.3.8

git-svn-id: https://sdcc.svn.sourceforge.net/svnroot/sdcc/trunk/sdcc@3163 4a8a32a2-be11-0410-ad9d-d568d2c75423

20 years agoAdded header files for Silicon Laboratories (formerly Cygnal) CPUs
frief [Sat, 31 Jan 2004 21:36:33 +0000 (21:36 +0000)]
Added header files for Silicon Laboratories (formerly Cygnal) CPUs
converted by Maarten Brock. The original cygnal license prohibited inclusion into SDCC.
On 2004-01-19 Maarten has received permission from <mcutools@silabs.com>: "We are currently in the process of removing the copyright notices from our header files. So, feel free to do what you like with them". We maybe will change later from LGPL to whatever license shows up on the silabs website.

git-svn-id: https://sdcc.svn.sourceforge.net/svnroot/sdcc/trunk/sdcc@3162 4a8a32a2-be11-0410-ad9d-d568d2c75423

20 years ago* doc/Makefile (install): added test for directory
bernhardheld [Fri, 30 Jan 2004 10:45:11 +0000 (10:45 +0000)]
* doc/Makefile (install): added test for directory

git-svn-id: https://sdcc.svn.sourceforge.net/svnroot/sdcc/trunk/sdcc@3161 4a8a32a2-be11-0410-ad9d-d568d2c75423

20 years agoSlade Rich fixed an optimization bug
bernhardheld [Fri, 30 Jan 2004 10:26:59 +0000 (10:26 +0000)]
Slade Rich fixed an optimization bug

git-svn-id: https://sdcc.svn.sourceforge.net/svnroot/sdcc/trunk/sdcc@3160 4a8a32a2-be11-0410-ad9d-d568d2c75423

20 years ago* support/regression/tests/libmullong.c: fixed for 64 bit hosts
bernhardheld [Fri, 30 Jan 2004 09:28:10 +0000 (09:28 +0000)]
* support/regression/tests/libmullong.c: fixed for 64 bit hosts

git-svn-id: https://sdcc.svn.sourceforge.net/svnroot/sdcc/trunk/sdcc@3159 4a8a32a2-be11-0410-ad9d-d568d2c75423

20 years ago* src/mcs51/ralloc.c (getRegPtr, getRegGpr),
epetrich [Fri, 30 Jan 2004 05:52:20 +0000 (05:52 +0000)]
* src/mcs51/ralloc.c (getRegPtr, getRegGpr),
* src/ds390/ralloc.c (getRegPtr, getRegGpr),
* src/pic/ralloc.c (getRegPtr, getRegGpr),
* src/pic16/ralloc.c (getRegPtr, getRegGpr),
* src/z80/ralloc.c (getRegGpr): fixed bug #883361
* as/mcs51/asexpr.c (term),
* as/hc08/asexpr.c (term): fixed bug #887146

git-svn-id: https://sdcc.svn.sourceforge.net/svnroot/sdcc/trunk/sdcc@3158 4a8a32a2-be11-0410-ad9d-d568d2c75423

20 years agofixed mcs51.dsp missing dependency
jesusc [Thu, 29 Jan 2004 07:58:23 +0000 (07:58 +0000)]
fixed mcs51.dsp missing dependency

git-svn-id: https://sdcc.svn.sourceforge.net/svnroot/sdcc/trunk/sdcc@3157 4a8a32a2-be11-0410-ad9d-d568d2c75423

20 years ago* src/z80/gen.c (genMult): handle single byte result product
epetrich [Thu, 29 Jan 2004 06:36:41 +0000 (06:36 +0000)]
* src/z80/gen.c (genMult): handle single byte result product
* src/SDCCopt.c (killDeadCode): never convert ADDRESS_OF iCode to
DUMMY_READ_VOLATILE (fixed bug #886367)

git-svn-id: https://sdcc.svn.sourceforge.net/svnroot/sdcc/trunk/sdcc@3156 4a8a32a2-be11-0410-ad9d-d568d2c75423

20 years ago* support/regression/tests/libmullong.c: fixed logic, on little endian hosts we ended...
bernhardheld [Tue, 27 Jan 2004 22:00:56 +0000 (22:00 +0000)]
* support/regression/tests/libmullong.c: fixed logic, on little endian hosts we ended without a mullong_wrapper()

git-svn-id: https://sdcc.svn.sourceforge.net/svnroot/sdcc/trunk/sdcc@3155 4a8a32a2-be11-0410-ad9d-d568d2c75423

20 years ago* ChangeLog: changed "@" to " AT " in hopes of reducing spam and
epetrich [Tue, 27 Jan 2004 15:21:46 +0000 (15:21 +0000)]
* ChangeLog: changed "@" to " AT " in hopes of reducing spam and
virus/worm forged address usage.

git-svn-id: https://sdcc.svn.sourceforge.net/svnroot/sdcc/trunk/sdcc@3154 4a8a32a2-be11-0410-ad9d-d568d2c75423

20 years ago* src/SDCCast.c (addCast): added more promotion fixes
bernhardheld [Tue, 27 Jan 2004 13:27:18 +0000 (13:27 +0000)]
* src/SDCCast.c (addCast): added more promotion fixes

git-svn-id: https://sdcc.svn.sourceforge.net/svnroot/sdcc/trunk/sdcc@3153 4a8a32a2-be11-0410-ad9d-d568d2c75423

20 years agoFixed promotion, it should be done on AST level:
bernhardheld [Tue, 27 Jan 2004 09:40:04 +0000 (09:40 +0000)]
Fixed promotion, it should be done on AST level:
* src/SDCCast.c (addCast): added promotion to int
(decorateType): updated call to upCast()
* src/SDCCicode.c (geniCodeLeftShift): removed call usualUnaryConversions()

git-svn-id: https://sdcc.svn.sourceforge.net/svnroot/sdcc/trunk/sdcc@3152 4a8a32a2-be11-0410-ad9d-d568d2c75423