+2005-11-01 Borut Razem <borut.razem AT siol.net>
+
+ * sim/ucsim/app.cc, sim/ucsim/cmd.src/cmdutil.cc, sim/ucsim/cmd.src/newcmd.cc:
+ enabled sockets on WIN32
+
+2005-10-31 Borut Razem <borut.razem AT siol.net>
+
+ * support/regression/generate-cases.py: escape backslashes in {testcase}:
+ WIN32 backslash path delimiters should be escaped when used in C strings
+ * support/regression/tests/bitfields.c: exclude failing assertions for
+ __CYGWIN32__ and __MINGW32__ hosts
+
+2005-10-30 Borut Razem <borut.razem AT siol.net>
+
+ * src/SDCCutil.c: corrected double comparison typo
+
+2005-10-27 Maarten Brock <sourceforge.brock AT dse.nl>
+
+ * device/lib/medium/Makefile: added for new memory model medium
+ * device/include/asm/mcs51/features.h: updated for medium/pdata
+ * device/include/mcs51/c8051f120.h: added sfr16/sfr32 definitions,
+ added Multiply & Accumulate sbit's and MAC0_PAGE define
+ * device/include/mcs51/c8051f300.h: added sfr16 definitions
+ * device/include/mcs51/c8051f310.h: added sfr16 definitions
+ * device/lib/_mullong.c: update for medium model
+ * device/lib/incl.mk: added medium model
+ * doc/sdccman.lyx: documented medium model
+ * src/SDCCast.c (isBitAndPow2): simplified using updated powof2
+ * src/SDCCicode.c (geniCodeMultiply, geniCodeDivision): use updated powof2
+ * src/SDCCmain.c (optionsTable, linkEdit): enabled medium model
+ * src/SDCCmem.c (allocIntoSeg): set iaccess for pdata symbols,
+ (allocParms): set SCLS and OCLS to pdata for medium model
+ * src/SDCCsymt.c (processFuncArgs): use default_local_map and set iaccess
+ for pdata,
+ (powof2): return <0 if not power of 2
+ * src/avr/gen.c (genBitWise): use updated powof2
+ * src/mcs51/gen.c (genMinusDec): use acc if necessary,
+ (shiftR2Left2Result): small optimization in setup, save acc when storing,
+ (shiftLLeftOrResult): use B if necessary
+ * src/mcs51/main.c (_mcs51_finaliseOptions, mcs51_port): added medium model
+ * src/mcs51/peeph.def: renamed 226 to 226.b, added 226.a
+ * src/pic/main.c (_pic14_do_link): made void parameter list explicit
+ * support/regression/Makefile.in: added test-mcs51-medium
+ * support/regression/ports/mcs51-medium/spec.mk: added to test medium model
+
+2005-10-28 Bernhard Held <bernhard AT bernhardheld.de>
+
+ * src/SDCCsymt.c (compStructSize): make bitfields without (un)signed
+ specifier unsigned
+ * device/lib/time.c (mktime): fixed bug 1334315
+
+2005-10-28 Raphael Neider <rneider AT web.de>
+
+ * device/include/pic/p16f_common.inc: added common declarations
+ * src/pic/ralloc.c (initStack): moved regs *r to block start for Alpha
+
+2005-10-27 Maarten Brock <sourceforge.brock AT dse.nl>
+
+ * src/mcs51/gen.c (getTempRegs): return 0 if not enough registers found,
+ (aopPutUsesAcc): added to predict accumulator use,
+ (assignResultValue): save acc if necessary,
+ (genMinusDec): store result if indirectly addressed,
+ (genDivOneByte): save acc if necessary,
+ (movLeft2Result): bugfix if left already in acc,
+ (genAnd, genOr, genXor, shiftL2Left2Result, shiftR2Left2Result): pay more
+ attention to accumulator use (esp. pdata),
+ (genReceive): receive pdata correctly
+ * src/SDCCicode.c (isOperandInPagedSpace): added to detect pdata operands
+ * src/SDCCicode.h: added isOperandInPagedSpace prototype
+
+2005-10-27 Raphael Neider <rneider AT web.de>
+
+ * doc/sdccman.lyx: corrected version (should be 2.5.4 not 2.5.5)
+
+2005-10-27 Raphael Neider <rneider AT web.de>
+
+ * .version: changed version to 2.5.4
+ * doc/sdccman.lyx: changed version to 2.5.4, added some remarks to PIC14
+ * device/lib/pic/libsdcc/{_mulint.c,_mullong.c}: use unsigned literals,
+ (_divschar.c,divuchar.c,_mulchar.c,_modschar.c,_moduchar): NEW,
+ arithmetics support routines
+ * device/lib/pic/Makefile.rules: have assembler sources preprocessed
+ * device/lib/Makefile.in: also create installdir for pic
+
+ * src/SDCCopt.c (cnvToFcall): mark support routines `extern' for
+ pic14 port as well
+ * src/pic/device.c (dump_sfr): rewritten to delegate register
+ placement to the linker (use `extern sym' rather than sym EQU addr),
+ (validAddress): fixed to check last specified address
+ * src/pic/gen.c (aopForSym): added code to deal with array (useless?),
+ (popGetLit): truncate literal value to 8 bit,
+ (popGet): moved assert to more appropriate place
+ (popGetExternal): create pCode operand from and mark the according
+ symbol as being `extern'
+ (popGetAddr): added sanity check on immediate's offset, provide
+ GPOINTER tag on demand
+ (aopPut): fixed for immediates,
+ (mov2w_op): move operand's address or contents to WREG (depending on
+ operand type), safer variant of mov2w,
+ (movwf,call_libraryfunc): NEW, handy abbreviations,
+ (get_argument_pcop,get_return_val_pcop,pass_argument,
+ get_returnvalue): interface for accessing function parameters and
+ return values,
+ (assignResultValuei,genRet): use new parameter/return value interface
+ (pic14_getDataSize): back to old version handling generic pointers,
+ (pic14_toBoolean,genNot,genCpl,genCmpEq,genOrOp): heavily rewritten,
+ provided implementation and/or fixed old one,
+ (genMultOneByte,genDivOneByte,genModOneByte): implemented as library
+ calls, removed legacy 8051 reference code
+ (AccLsh,AccRsh): rewritten and fixed to deal with signed operands
+ (loadSignToC): NEW, move the operands sign bit to CARRY,
+ (genGenericShift): NEW, replaces genLeftShift, genRightShift and
+ genRightShiftSigned, accepts negative shift counts,
+ (setup_fsr): load FSR and adjust IRP (indirect memory access),
+ (emitPtrByteGet,emitPtrByteSet): rewritten, now works with
+ generic pointers, __data pointers and __code pointers,
+ (genUnpackBits,genPackBits): rewritten to work with generic pointers
+ and signed bitfields, limit bitfields to 8 bit,
+ (genDataPointerGet): fixed number of bytes read,
+ (genGenPointerGet,genConstPointerGet): fixed bitfield access,
+ (genPointerGet,genPointerSet): fixed handling of __code pointers,
+ pointers to constant data are no longer assumed to point to __code
+ space, removed invalid pointer types,
+ (bitpatternFromVal): retrieve the PICs representation of an integer
+ or float literal,
+ (genDataPointerSet): fixed assigning to po_immediate operands,
+ (genGenPointerSet): implemented as library call,
+ (genIfx): fixed incorrect condition,
+ (genAddrOf): limit generic pointers' addresses to 2 bytes,
+ provide GPOINTER tag according to destination's storage class,
+ (genCast): added code to handle casting to generic pointers, added
+ sign-/zero extension of the result
+ (aop_isLitLike,op_isLitLike): fixed handling of immediates
+ * src/pic/gen.h: added macros to access IRP bit in STATUS register
+ * src/pic/genarith.c (genAddLit): use min(result's,left's) size, sign
+ extend the result
+ * src/pic/glue.c (is_shared_address,is_shared): check whether a given
+ address/register resides in the shared banks
+ (emitSymbolToFile): improved to handle global and `pinned' symbols,
+ put all variables into separate sections (have the linker arrange
+ them)
+ (picglue): put init code and interrupt handlers in separate sections
+ * src/pic/main.c: added port specific options table, modified to PORT
+ structure to make GPOINTERs 3 byte, added pic14_options
+ (_pic14_do_link): private linking routine (update paths to libraries,
+ add libsdcc.lib by default)
+ * src/pic/main.h: declare pic14_options
+ * src/pic/pcode.c: fixed instructions i/o relations,
+ (RegCond): reverted to correct version,
+ (newpCodeOpLit): truncate literals to 8 bit,
+ (genericPrint): added debug output,
+ (getRegFromInstruction): fixed for various operand types, simplified
+ (BuildFlow): fixed broken handling of isntructions with labels
+ (LinkFlow): start at last instruction in flow (skip trailing comments),
+ pass the flow on to the next instruction after CALL
+ (pCodeReplace): NEW, replace a pCode and move meta data to the new one
+ (insertPCodeInstruction): fixed inserting after a skip instruction,
+ (DoBankSelect): fixed for labeled instructions
+ (OptimizepBlock): honor --nopeep switch
+ (AnalyzeFlow,ReuseReg): prevent crash on source files with no function
+ * src/pic/pcodepeep.c (pCodePeepMatchRule): prevent NULL pointer accesses
+ * src/pic/pcoderegs.c (regIsLocal): NEW, check visibility of a register
+ (pCodeOptime2pCodes): allow disabling this optimization via
+ --no-pcode-opt due seldomly occuring bugs, fixed some conditions
+ but is still buggy), started implementation of a dataflow based
+ pCode optimization (CSE + dead code elimination)
+ (pCodeRegMapLiveRangesInFlow): removed bogus inCond
+ * src/pic/ralloc.c (initStack): renamed stack registers to STK%d, the new
+ names are independant of the stack location and therefore portable across
+ devices
+
+2005-10-27 Maarten Brock <sourceforge.brock AT dse.nl>
+
+ * src/mcs51/ralloc.c (bitType): added to detect bit variables,
+ (selectSpil): fixed bug 1337835 by not spilling bit variables
+ * support/regression/tests/bug1337835.c: added test for this bug
+ * src/mcs51/peeph.def: restart after rule 3.c,
+ addded rules 263.x to optimize loading constants
+
+2005-10-26 Raphael Neider <rneider AT web.de>
+
+ * src/SDCCsymt.c (compStructSize): allow signed bitfields for PIC ports
+ * src/pic16/gen.c (genUnpackBits): support signed bitfields,
+ (genAssign): emit warning when casting literals to generic pointer
+ type, also applies when taking the address of a fixed variable,
+ (genCast): improved casting to generic pointers
+ * src/pic16/glue.c (pic16emitStaticSeg): fixed(?) handling of fixed
+ extern variables, added verbose error message
+ * device/include/pic16/{string.h,errno.h}: added #pragma library c
+
+2005-10-26 Bernhard Held <bernhard AT bernhardheld.de>
+
+ * src/mcs51/gen.c (genMinus): fixed bug 1270906: reverse subtraction,
+ carry must be complemented too
+ * src/mcs51/peeph.def: addded rule 262 to remove double cpl c, which
+ could be emitted by genMinus
+ * src/SDCCval.c (constVal): fixed bug 1305065
+