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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
michaelh [Mon, 26 Jan 2004 08:05:16 +0000 (08:05 +0000)]
Tidied up the build, install, and regression tests.
git-svn-id: https://sdcc.svn.sourceforge.net/svnroot/sdcc/trunk/sdcc@3151
4a8a32a2-be11-0410-ad9d-
d568d2c75423
bernhardheld [Sun, 25 Jan 2004 21:33:56 +0000 (21:33 +0000)]
* src/SDCCast.c: added an additional type flow in decorateType() of opposite direction, see feature request #860006; it's enabled at runtime by setting the environment variable SDCC_NEWTYPEFLOW
* src/SDCCast.h: changed prototype of decorateType()
* src/SDCCglue.c (emitRegularMap): updated call of decorateType()
* src/SDCCicode.c (geniCodeDivision) (geniCodeModulus): promotion from 'char' to 'int' can be omitted, if both operands are 'unsigned char'; see feature request #877103
* src/SDCCval.c: updated call of decorateType()
(valBitwise): fixed bug #882876
(valMinus): added promotion
(valLogicAndOr): result is unsigned
(cheapestVal) (constVal): literals from 0...255 are 'unsigned char' now
* src/SDCCsymt.c (computeType),
* src/mcs51/gen.c (genCmpGt) (genCmpLt): literal 'unsigned char' must not cause an unsigned operation
* src/pic/glue (pic14emitRegularMap),
* src/pic16/glue.c (pic16emitRegularMap): updated call of decorateType()
git-svn-id: https://sdcc.svn.sourceforge.net/svnroot/sdcc/trunk/sdcc@3150
4a8a32a2-be11-0410-ad9d-
d568d2c75423
bernhardheld [Fri, 23 Jan 2004 09:38:38 +0000 (09:38 +0000)]
* src/pic/pcode.c (PCodeID): commented out left over debug code
git-svn-id: https://sdcc.svn.sourceforge.net/svnroot/sdcc/trunk/sdcc@3149
4a8a32a2-be11-0410-ad9d-
d568d2c75423
bernhardheld [Tue, 20 Jan 2004 21:15:17 +0000 (21:15 +0000)]
* src/mcs51/peeph.def: fixed bug #880768
git-svn-id: https://sdcc.svn.sourceforge.net/svnroot/sdcc/trunk/sdcc@3147
4a8a32a2-be11-0410-ad9d-
d568d2c75423
bernhardheld [Tue, 20 Jan 2004 21:08:53 +0000 (21:08 +0000)]
* src/pic/device.c,
* src/pic/gen.c,
* src/pic/gen.h,
* src/pic/glue.c,
* src/pic/main.c,
* src/pic/pcode.c,
* src/pic/pcode.h,
* src/pic/pcodepeep.c,
* src/pic/pcoderegs.c,
* src/pic/ralloc.c,
* src/pic/ralloc.h: applied patch from Slade Rich;
added support for multiple code pages and multiple RAM banks on the
PIC 14 port. The ASM files now no longer simply assume all the
code / RAM are in the same page / bank. This means the linker can
safely allocate code/RAM of separate ASM files to different pages/banks.
* doc/sdccman.lyx: added Slade's tips
git-svn-id: https://sdcc.svn.sourceforge.net/svnroot/sdcc/trunk/sdcc@3146
4a8a32a2-be11-0410-ad9d-
d568d2c75423
bernhardheld [Tue, 20 Jan 2004 21:07:26 +0000 (21:07 +0000)]
* support/valdiag/tests/overflow.c: added shift tests
git-svn-id: https://sdcc.svn.sourceforge.net/svnroot/sdcc/trunk/sdcc@3145
4a8a32a2-be11-0410-ad9d-
d568d2c75423
bernhardheld [Tue, 20 Jan 2004 21:06:26 +0000 (21:06 +0000)]
* support/valdiag/tests/overflow.c: added shift tests
* src/pic/device.c,
* src/pic/gen.c,
* src/pic/gen.h,
* src/pic/glue.c,
* src/pic/main.c,
* src/pic/pcode.c,
* src/pic/pcode.h,
* src/pic/pcodepeep.c,
* src/pic/pcoderegs.c,
* src/pic/ralloc.c,
* src/pic/ralloc.h: applied patch from Slade Rich;
added support for multiple code pages and multiple RAM banks on the
PIC 14 port. The ASM files now no longer simply assume all the
code / RAM are in the same page / bank. This means the linker can
safely allocate code/RAM of separate ASM files to different pages/banks.
* doc/sdccman.lyx: added Slade's tips
git-svn-id: https://sdcc.svn.sourceforge.net/svnroot/sdcc/trunk/sdcc@3144
4a8a32a2-be11-0410-ad9d-
d568d2c75423
epetrich [Tue, 20 Jan 2004 07:29:33 +0000 (07:29 +0000)]
* src/hc08/ralloc.c (rematStr): fixed bug #879282
* src/SDCCast.c (decorateType): fixed bug #880197
git-svn-id: https://sdcc.svn.sourceforge.net/svnroot/sdcc/trunk/sdcc@3143
4a8a32a2-be11-0410-ad9d-
d568d2c75423
michaelh [Tue, 20 Jan 2004 06:57:48 +0000 (06:57 +0000)]
* sim/ucsim/gui.src/serio.src/main.cc: Fixed unconditional use of
getopt.h.
* debugger/mcs51/cmd.c (getValBasic): Changed strtof to strtod as
strtof is not part of C89 and isn't included with Mac OS X.
git-svn-id: https://sdcc.svn.sourceforge.net/svnroot/sdcc/trunk/sdcc@3142
4a8a32a2-be11-0410-ad9d-
d568d2c75423
epetrich [Tue, 20 Jan 2004 05:48:09 +0000 (05:48 +0000)]
* src/hc08/gen.c (genPlusIncr, genUminus, genMinusDec, genCmp,
shiftL2Left2Result): fixed bug #879326
(genAnd, genOr, genXor): fixed bug when result was of type AOP_CRY
(genMultOneByte): fixed bug in signed vs unsigned multiplication
* sim/ucsim/hc08.src/inst.cc (inst_clr): added missing effective
address fetch for clr instruction
* device/lib/hc08/_mulint.c: created optimized assembly version
* src/SDCCdflow.c (computeDataFlow): fixed bug #878209
git-svn-id: https://sdcc.svn.sourceforge.net/svnroot/sdcc/trunk/sdcc@3141
4a8a32a2-be11-0410-ad9d-
d568d2c75423
bernhardheld [Mon, 19 Jan 2004 21:28:38 +0000 (21:28 +0000)]
* src/SDCCicode.c (geniCodeArray): applied patch from Stas Sergeev proposed in FR #877103
git-svn-id: https://sdcc.svn.sourceforge.net/svnroot/sdcc/trunk/sdcc@3140
4a8a32a2-be11-0410-ad9d-
d568d2c75423
bernhardheld [Sun, 18 Jan 2004 21:37:55 +0000 (21:37 +0000)]
* src/SDCCval.c (cheapestVal): added missing checks
* src/SDCCicode.c (usualBinaryConversions): fixed condition
* src/SDCCicode.c (geniCodeAdd): fixed part of bug #877103
git-svn-id: https://sdcc.svn.sourceforge.net/svnroot/sdcc/trunk/sdcc@3139
4a8a32a2-be11-0410-ad9d-
d568d2c75423
kflittner [Fri, 16 Jan 2004 16:30:00 +0000 (16:30 +0000)]
* src/ds390/gen.c (aopOp3): fixed the assignment of different dptrs to
equal operands
git-svn-id: https://sdcc.svn.sourceforge.net/svnroot/sdcc/trunk/sdcc@3138
4a8a32a2-be11-0410-ad9d-
d568d2c75423
vrokas [Fri, 16 Jan 2004 15:06:35 +0000 (15:06 +0000)]
2004-01-16 Vangelis Rokas <vrokas@otenet.gr>
* src/SDCCmain.c (linkEdit): variable $3 of the linker command is
loaded with the linker search paths (-L arguments) and the libraries
to be linked with the current source (-l arguments). Changes
currently will affect only the pic16 port.
* src/pic16/main.c (_pic16_finaliseOptions): add to the linker
include path the port specific paths and port specific libraries,
* gplink command now contains the $3 argument,
* src/pic16/device.h,
* src/pic16/device.c,: structure PIC_device is made public and
renamed to PIC16_device, the same for variable Pics which is renamed
to Pics16. Updated all references to them.
* src/pic16/glue.c (pic16glue): corrected bug with code
initialization which bypassed the variable initializations block.
* device/lib/pic16/Makefile.rules: removed --penable-stack from
COMPILE_FLAGS and added the --nostdinc option
git-svn-id: https://sdcc.svn.sourceforge.net/svnroot/sdcc/trunk/sdcc@3137
4a8a32a2-be11-0410-ad9d-
d568d2c75423
epetrich [Thu, 15 Jan 2004 01:25:23 +0000 (01:25 +0000)]
* device/include/mc68hc908jb8.h: Register defs for another member
of the hc08 family. Contributed by Bjorn Bringert - thanks!
git-svn-id: https://sdcc.svn.sourceforge.net/svnroot/sdcc/trunk/sdcc@3136
4a8a32a2-be11-0410-ad9d-
d568d2c75423