vrokas [Wed, 30 Jun 2004 15:20:58 +0000 (15:20 +0000)]
* device/lib/Makefile.in: fixed bug in target objects-pic16,
* device/lib/pic16/Makefile: prefixed with dash (-) command under
target 'clean',
* doc/sdccman.lyx: changed version to 2.4.2 and added some port
specific command line arguments. Also added sample lkr script
for placing a variable at a specific memory bank.
* src/pic16/device.c (pic16_dump_gsection): NEW, to dump variables
at a specific memory bank,
* (pic16_dump_isection): fixed bug which caused string literals to
be omitted when dumping idata section,
* (pic16_groupRegistersInSection): added code to handle registers
in specific memory banks,
* src/pic16/gen.c: labelOffset is prefixed with pic16_ and made
public, all references are renamed too,
* (pic16_aopGet): removed switch cases for AOP_R0,AOP_R1,AOP_DPTR,
AOP_DPTR2,
* (pic16_storeForReturn): added case to handle when dest is WREG,
* src/pic16/genarith.c (pic16_pCodeOpSubType): NEW,
* src/pic16/glue.c (pic16emitRegularMap): when adding a register in
pic16_rel_udata, check to see if that register is marked as being
a member of a specific memory bank,
* (pic16_printIvalCharPtr): added code to add string literals either
to code or the idata sections,
* src/pic16/main.c (_process_pragma): added \n to WHITE constant,
also accept the 'udata' pragma,
* src/pic16/main.h: new structure types sectName and sectSym
* src/pic16/pcode.c: added new pCodeInstruction entry for BANKSEL
* (newpCodeOpBit): added PIC_OPTYPE subt in function prototype,
* (pic16_findPrevInstruction): fixed, it returned nothing,
* (insertBankSwitch): fixed to emit banksel/skip and skip/banksel
instruction combinations,
* (pic16_FixRegisterBanking): heavily reorganised,
* (pic16_AnalyzeBanking): if generating banksel directives is
disabled, then don't call FixRegisterBanking at all,
* src/pic16/ralloc.c (bitEQUs, aliasEQUs, allDefsOutOfRange):
completely removed,
* (pic16_writeUsedRegisters): added call to pic16_dump_gsection
vrokas [Mon, 28 Jun 2004 17:46:22 +0000 (17:46 +0000)]
* device/include/pic16/pic18fregs.h: added case for pic18f2220.h
* device/include/pic16/pic18f2220.h: NEW,
* device/lib/pic16/libdev/pic18f2220.c: NEW,
* device/lib/pic16/libdev/Makefile: added 18f2220 in DEVS,
* src/pic16/device.c (struct Pics16): added info for 18f2220,
* src/pic16/device.h (struct pic16_options): added ivt_loc and
nodefaultlibs, ivt_loc is the location of the interrupt vector
table, and nodefaultlibs signs that default libraries should not be
linked in link stage,
* src/pic16/gen.c (genFunction): relocate interrupt vector functions
according to --ivt-loc argument,
* src/pic16/main.c (_process_pragma): emit '_stack' as public symbol
when pragma stack is found,
vrokas [Sat, 12 Jun 2004 14:18:45 +0000 (14:18 +0000)]
* src/pic16/gen.c (genPointerGet): added E_INTERNAL_ERROR for
default case in switch statement,
* glue.c (pic16_initPointer): expr is initialised via decoarteType
to eliminate problem with initialisation of pointers, but problem
still exists,
* (pic16_pointerTypeToGPByte): removed, no needed for pic16,
* (emitStaticSegment): removed various lines emitting debug info,
* src/pic16/pcode.c, src/pic16/pcode.h, src/pic16/ralloc.h:
added processor registers for utilizing EEPROM,
* src/pic16/pcode.c (pic16_emitDB): number of DBs emitted is not
configurable and set 8
vrokas [Tue, 8 Jun 2004 14:30:25 +0000 (14:30 +0000)]
* .version: increased version number to 2.4.2,
Cumulative patch for pic16 port
* src/pic16/device.c: changed scheme to dump initial values for
variables in idata segment, all print_idata* functions were removed,
now the pic16_printIval* will be called,
* src/pic16/glue.c: (pic16_initPointer, pic16_pointerTypeToGPByte,
* _pic16_printPointerType, pic16_printPointerType,
* pic16_printGPointerType, pic16_printIvalArray, pic16_printIvalStruct,
* pic16_printIvalBitFields, pic16_printIvalFuncPtr, pic16_printIvalPtr:
NEW, similar to the respective functions in SDCCglue.c,
* src/pic16/pcode.c (pic16_emitDB, pic16_flushDB): reverted to old
way, emitting hex bytes,
* (pic16_emitDS): NEW, emits a string for pointer initialisation,
vrokas [Sun, 6 Jun 2004 21:25:57 +0000 (21:25 +0000)]
Cumulative patch for pic16 port
* src/pic16/device.h (typedef PIC16_device) modified fields for
defining microcontrollers,
* src/pic16/device.c: added new info for all devices in Pics16 array,
* src/pic16/gen.c (genPcall): fixed bug that caused the return label
to be optimised out by the pCode optimiser,
* src/pic16/glue.c (pic16emitRegularMap): treat implicit aggragates
specially, bug reported by G.M. Gallant,
* src/pic16/pcode.c (pic16_newpCodeLabelFORCE): NEW, marks a label
as force'd so that cannot be optimised out by pCode optimiser,
* src/pic16/pcode.c,
* src/pic16/pcodepeeph.c,
* src/pic16/pcoderegs.c: many modifications to re-enable peepholes,
they are disabled by default, but can be enabled explicit with
command argument --denable-peeps, for testing,
* device/lib/pic16/startup/Makefile: added --no-peep,--pomit-config-words,
--pomit-ivt in COMPILE_FLAGS
frief [Sat, 5 Jun 2004 14:00:22 +0000 (14:00 +0000)]
doc/sdccman.lyx: minor changes, mentioned beta vendor support for ds80c400
src/mcs51/peeph.def: ran unexpand -a over peeph.def
src/mcs51/peeph.def: removed obsolete peephole 100.a, added peephole 254 (left shift), 255 (jump table)
vrokas [Fri, 4 Jun 2004 22:44:09 +0000 (22:44 +0000)]
* device/lib/Makefile.in: removed comment line with model-pic16,
* (target port-specific-objects-pic16): the libraries and objects
are copied to the build directory form the device/lib/pic16/bin
directory
* configuration registers setting has changed, now each supported
device has a complete description of the registers it uses,
* all initialisations are moved to idata sections, these section
can be absolute or relocatable,
* fixed initialisation of codespace variables,
* fixed warning about PCLATU and gpsim,
* src/pic16/gen.c (genCmp): now can handle partially iCodes with no ifx,
* (genAssign): use table reads when assigning from variables in codespace,
* src/pic16/glue.c (pic16emitStaticSeg): fixed to correctly initialise
char/int variables placed in codespace,
* (pic16_emitConfigRegs): NEW, emits a list with configuration
registers set in .asm file, no need for --pomit-config-words anymore,
* (pic16glue): some 8051 legacy segments are commented out
(to be removed completely),
* added support for alternative assembler and linker with --asm=
and --link= command line arguments,
* peepholes are disabled automatically in the port, no need to
specify on command line,
* port supports natively char/int/long multiplication, but converts
all divisions to support functions,
* main.c: pic16_linkCmd and pic16_asmCmd changed to force output
to the file set in variable $2,
* pcode.c (pic16_emitDB, pic16_flushDB): modified to print printable
strings in ASCII format and not in hex,
* ralloc.c (serialRegAssign): added a triplet of conditional calls
to pic16_allocDirReg for IC_RESULT, IC_LEFT and IC_RIGHT so to
allocate proper register if iCodes aren't temporary,
epetrich [Tue, 1 Jun 2004 21:35:14 +0000 (21:35 +0000)]
* src/hc08/gen.c (genPointerGetSetOfs): disabled optimization if
computed address is reused
* src/hc08/gen.c (genPackBits): fixed offsets in assignments to
multi-byte bitfields
epetrich [Tue, 1 Jun 2004 04:46:09 +0000 (04:46 +0000)]
* src/hc08/gen.c (genPointerGetSetOfs): disabled optimization if
computed address is reused
* src/hc08/gen.c (genPackBits): fixed offsets in assignments to
multi-byte bitfields
* support/regression/tests/zeropad.c: disabled the declarations
and tests associated with struct z nestedstruct
vrokas [Thu, 27 May 2004 22:19:52 +0000 (22:19 +0000)]
* src/pic16/glue.c (pic16emitStaticSeg): do not print as publics or
externs configuration variables,
* src/pic16/ralloc.h,
* src/pic16/ralloc.cc: IS_CONFIG_ADDRESS is made public and added
prototype in header, commented out some debug messages
vrokas [Wed, 26 May 2004 20:23:19 +0000 (20:23 +0000)]
* src/pic16/glue.c,
* src/pic16/main.c,
* src/pic16/pcode.c: added gpasm directives #FILE/#LINE
for gpasm COFF object generation. Thanks to D. Hawkins for
his patch info
epetrich [Tue, 25 May 2004 22:30:39 +0000 (22:30 +0000)]
* src/ds390/main.c,
* src/mcs51/main.c: fixed sort order of mnemonics (thanks to Maarten
Brock for spotting this)
* src/ds390/gen.c (genEndFunction),
* src/mcs51/gen.c (genEndFunction): always save psw if function is an
interrupt handler and critical. Disable push/pop optimizations when
peephole optimizations disabled.
vrokas [Tue, 25 May 2004 11:16:10 +0000 (11:16 +0000)]
* src/pic16/glue.c,
* src/pic16/main.c,
* src/pic16/pcode.c: added gpasm directives #FILE/#LINE
for gpasm COFF object generation. Thanks to D. Hawkins for
his patch info
vrokas [Tue, 25 May 2004 10:37:15 +0000 (10:37 +0000)]
* src/port.h (PORT structure): added hook initPaths, now each
port can declare its own default search paths,
which can been seen with the --print-search-dirs option,
see pic16 port for example,
* src/SDCCmain.c (setBinPaths, setIncludePaths, setLibPath,
setDataPaths): test to options.printSearchDirs is ifdef'ed out,
* (doPrintSearchDirs): NEW, replaces in a central manner the
printing of search dirs which was split in set*Paths functions,
* (main): added call to port->initPaths and doPrintSearchDirs,
* src/avr/main.c,
* src/ds390/main.c,
* src/hc08/main.c,
* src/izt/i186.c,
* src/izt/tlcs900h.c,
* src/mcs51/main.c,
* src/pic/main.c,
* src/pic16/main.c: modified port structures to reflect addition of
initPaths hook,
* src/pic16/device.c (regCompare): registers are finally sorted by name,
* (pic16_dump_section): for registers in same address reserve memory once,
* src/pic16/device.h (struct PIC16_device): changed variable gen_banksel
to no_banksel,
* src/pic16/genarith.c (pic16_genPlus): added code to handle cases where
result is greater in size than right or left,
* (pic16_genUMult8X8_8): there are some cases where the result can
be 16 bits size, so handle these,
* src/pic16/gen.c: changed some pic16_emitpcomment to DEBUGpic16_emitcode,
* (pic16_outBitC): modified to emit pcodes,
* (pic16_storeForReturn): using is_LitOp to see if operand is literal
or not,
* (genDivOneByte): implemented algorithm to divide 8-bits,
* (genCmp): uncommented goto, but issues still exist,
* (genAnd): fixed a bug with variables >8bits,
* (genPackBits): optimization added that uses BCF/BSF to change a
single bit,
* (genAssign): fixed bug when assigning floating point literals,
* src/pic16/glue.c (pic16glue): added assembler directive 'code' before
__sdcc_gsinit_startup label,
* src/pic16/main.c (_pic16_init): removed search directory
initialisations,
* (_pic16_initPaths): NEW, used to initialise search directories,
* (_hasNativeMulFor): support functions for all except char/int
multiplication, and char division,
* (PIC16_port struct): modified entry for native mul support,
* src/pic16/pcode.c (insertBankSwitch): modified to support the renamed
no_banksel option,
* (buildCallTree): call to register_usage is ifdef'ed out,
vrokas [Tue, 25 May 2004 10:30:27 +0000 (10:30 +0000)]
* src/port.h (PORT structure): added hook initPaths, now each
port can declare its own default search paths,
which can been seen with the --print-search-dirs option,
see pic16 port for example,
* src/SDCCmain.c (setBinPaths, setIncludePaths, setLibPath,
setDataPaths): test to options.printSearchDirs is ifdef'ed out,
* (doPrintSearchDirs): NEW, replaces in a central manner the
printing of search dirs which was split in set*Paths functions,
* (main): added call to port->initPaths and doPrintSearchDirs,
* src/avr/main.c,
* src/ds390/main.c,
* src/hc08/main.c,
* src/izt/i186.c,
* src/izt/tlcs900h.c,
* src/mcs51/main.c,
* src/pic/main.c,
* src/pic16/main.c: modified port structures to reflect addition of
initPaths hook,
* src/pic16/device.c (regCompare): registers are finally sorted by name,
* (pic16_dump_section): for registers in same address reserve memory once,
* src/pic16/device.h (struct PIC16_device): changed variable gen_banksel
to no_banksel,
* src/pic16/genarith.c (pic16_genPlus): added code to handle cases where
result is greater in size than right or left,
* (pic16_genUMult8X8_8): there are some cases where the result can
be 16 bits size, so handle these,
* src/pic16/gen.c: changed some pic16_emitpcomment to DEBUGpic16_emitcode,
* (pic16_outBitC): modified to emit pcodes,
* (pic16_storeForReturn): using is_LitOp to see if operand is literal
or not,
* (genDivOneByte): implemented algorithm to divide 8-bits,
* (genCmp): uncommented goto, but issues still exist,
* (genAnd): fixed a bug with variables >8bits,
* (genPackBits): optimization added that uses BCF/BSF to change a
single bit,
* (genAssign): fixed bug when assigning floating point literals,
* src/pic16/glue.c (pic16glue): added assembler directive 'code' before
__sdcc_gsinit_startup label,
* src/pic16/main.c (_pic16_init): removed search directory
initialisations,
* (_pic16_initPaths): NEW, used to initialise search directories,
* (_hasNativeMulFor): support functions for all except char/int
multiplication, and char division,
* (PIC16_port struct): modified entry for native mul support,
* src/pic16/pcode.c (insertBankSwitch): modified to support the renamed
no_banksel option,
* (buildCallTree): call to register_usage is ifdef'ed out,
epetrich [Sat, 22 May 2004 06:03:56 +0000 (06:03 +0000)]
* device/include/string.h: applied Stas Sergeev's patch to make this
header file compatible with the preprocessor -Wundef option
* src/SDCCmain.c (main): abort compilation if preprocessor reports
failure (fixes bug #941458)
epetrich [Fri, 21 May 2004 07:09:29 +0000 (07:09 +0000)]
* src/SDCCopt.c (killDeadCode): fixed bug #907733
* support/Util/SDCCerr: reworded E_AUTO_ASSUMED diagnostic to clarify
that the variable, not the function, should be static
* src/SDCCval.c (valCastLiteral): fixed bit initialization from literal
to be consistent with non-literal case
epetrich [Tue, 18 May 2004 06:03:07 +0000 (06:03 +0000)]
* src/hc08/main.c (_hc08_genAssemblerEnd),
* src/SDCCdwarf2.c (dwOpenFile, dwCloseFile, dwWriteFunction,
dwWriteModule, dwWriteCLine, dwWriteALine, dwarf2FinalizeFile):
completely eliminated the use of a temporary file
* src/SDCCdwarf2.c (dwWriteAttr): fixed bug with location list offset
when more than one file linked
* src/SDCCloop.c (pointerAssigned): fixed bug #954163
epetrich [Mon, 17 May 2004 07:15:32 +0000 (07:15 +0000)]
* src/SDCCval.c (valForArray): applied Maarteen Brock's patch #947682
which fixes bug #543481
* support/regression/tests/bug-751703.c: fixed comments left from a
cut and paste error
* src/SDCCdwarf2.c (dwCloseFile): don't explicitly close a temp file
* src/SDCCdwarf2.c (dwTagFromType): added bitfield support
* src/SDCCdwarf2.c (dwWriteSymbolInternal): handle extern within local
scopes
* src/SDCCdwarf2.c (dwWriteLineNumber): line number deltas are signed
* src/SDCCmain.c (processFile, parseCmdLine): non-alphanumeric chars
are now changed to underscores in moduleName
2004-05-15 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
* doc/sdccman.lyx: mentioned sourceforge's delay between web frontend
and mailing lists, doc'ed --no-peep-comments, removed reference
to knoppix (newest version has no LyX/LaTeX), other minor changes
* src/SDCCglue.c (glue): save 2 bytes stack space with
option --main-return. The ljmp could probably be avoided too
frief [Sat, 15 May 2004 20:51:52 +0000 (20:51 +0000)]
mentioned sourceforge's delay between web frontend and mailing lists,
doc'ed --no-peep-comments, removed reference to knoppix (newest version has no LyX/LaTeX),
other minor changes
epetrich [Fri, 14 May 2004 21:04:19 +0000 (21:04 +0000)]
* src/SDCCsymt.h: added IS_AUTO(symbol) test macro
* src/SDCCopt.c (isLocalWithoutDef),
* src/SDCCicode.c (operandFromSymbol): use the IS_AUTO test macro
which adds a !IS_EXTERN codition. Fixes bugs #877426 and #751703.
(credit to Maarten Brock for patch #949363, on which this is based)
* support/regression/tests/bug-751703.c: some test cases of extern used
within inner scopes.
epetrich [Fri, 14 May 2004 20:35:21 +0000 (20:35 +0000)]
* src/SDCCsymt.h: added IS_AUTO(symbol) test macro
* src/SDCCopt.c (isLocalWithoutDef),
* src/SDCCicode.c (operandFromSymbol): use the IS_AUTO test macro
which adds a !IS_EXTERN codition. Fixes bugs #877426 and #751703.
(credit to Maarten Brock for patch #949363, on which this is based)
* support/regression/tests/bug-751703.c: some test cases of extern used
within inner scopes.
epetrich [Fri, 14 May 2004 06:30:27 +0000 (06:30 +0000)]
* src/SDCCdwarf2.c (dwMatchTypes): structs must have matching
SPEC_STRUCT
* src/SDCCdwarf2.c (dwTagFromType): fix to handle recursive
struct definitions
* src/SDCCdwarf2.c (dwWriteModule, dwNewDebugSymbol, dwWriteEndFunction,
dwWriteLabel): fix to create valid debugger symbols even when
the module name has non-alphanumeric symbols in it
* src/SDCCdwarf2.c (dwWriteSymbolInternal): better detection for
when a variable's allocation has been optimized away
* src/SDCCast.c (createLabel),
* src/SDCC.y (labeled_statement): mark all compiler generated labels
with isitmp = 1
* src/SDCCicode.h,
* src/SDCCicode.c (geniCodeFunctionBody): added a link from the FUNCTION
iCode back to the ast for the function
* src/hc08/ralloc.c (hc08_assignRegisters),
* src/hc08/ralloc.h: define a regs struct for the stack pointer. Removed
unneeded fields from the regs struct.
* src/hc08/gen.c (transferRegReg, genFunction, genEndFunction): use the
pushReg() & pullReg() functions instead of emitcode()
* src/cdbFile.c (cdbWriteLabel, cdbWriteScope): Added stubs for unneeded
debugger hooks
* src/hc08/gen.c (genEndFunction, genhc08Code),
* src/hc08/gen.h,
* src/mcs51/gen.c (genEndFunction, gen51Code),
* src/mcs51/gen.h,
* src/ds390/gen.c (genEndFunction, gen390Code),
* src/ds390/gen.h,
* src/z80/gen.c (genEndFunction, genZ80Code),
* src/z80/gen.h,
* src/z80/z80.h,
* src/pic/gen.c (genEndFunction, genpic14Code),
* src/pic/gen.h,
* src/pic16/gen.c (genEndFunction, genpic16Code),
* src/pic16/gen.h,
* src/avr/gen.c (genEndFunction, genAVRCode),
* src/avr/gen.h,
* src/xa51/gen.c (genEndFunction, genXA51Code),
* src/xa51/gen.h,
* src/cdbFile.c (cdbWriteFunction, cdbWriteEndFunction): moved cdb
specific code to cdbFile.c and out of the backend code generators
* as/hc08/lkmain.c (main): removed OMF51 support from link-hc08
* as/hc08/lkarea.c (lnkarea): areas with NOLOAD attribute default
starting address is now 0
* as/hc08/asm.h,
* as/hc08/m08pst.c,
* as/hc08/asmain.c (asmbl): implemented the .sleb128 and .uleb128
assembler directive for DWARF support
* as/hc08/lkelf.c (elf): only increment address when rtflg[] set
* src/SDCCast.c (createLabel),
* src/SDCC.y (labeled_statement): mark all compiler generated labels
with isitmp = 1
* src/SDCCicode.h,
* src/SDCCicode.c (geniCodeFunctionBody): added a link from the FUNCTION
iCode back to the ast for the function
* src/hc08/ralloc.c (hc08_assignRegisters),
* src/hc08/ralloc.h: define a regs struct for the stack pointer. Removed
unneeded fields from the regs struct.
* src/hc08/gen.c (transferRegReg, genFunction, genEndFunction): use the
pushReg() & pullReg() functions instead of emitcode()
* src/cdbFile.c (cdbWriteLabel, cdbWriteScope): Added stubs for unneeded
debugger hooks
* src/hc08/gen.c (genEndFunction, genhc08Code),
* src/hc08/gen.h,
* src/mcs51/gen.c (genEndFunction, gen51Code),
* src/mcs51/gen.h,
* src/ds390/gen.c (genEndFunction, gen390Code),
* src/ds390/gen.h,
* src/z80/gen.c (genEndFunction, genZ80Code),
* src/z80/gen.h,
* src/z80/z80.h,
* src/pic/gen.c (genEndFunction, genpic14Code),
* src/pic/gen.h,
* src/pic16/gen.c (genEndFunction, genpic16Code),
* src/pic16/gen.h,
* src/avr/gen.c (genEndFunction, genAVRCode),
* src/avr/gen.h,
* src/xa51/gen.c (genEndFunction, genXA51Code),
* src/xa51/gen.h,
* src/cdbFile.c (cdbWriteFunction, cdbWriteEndFunction): moved cdb
specific code to cdbFile.c and out of the backend code generators
* as/hc08/lkmain.c (main): removed OMF51 support from link-hc08
* as/hc08/lkarea.c (lnkarea): areas with NOLOAD attribute default
starting address is now 0
* as/hc08/asm.h,
* as/hc08/m08pst.c,
* as/hc08/asmain.c (asmbl): implemented the .sleb128 and .uleb128
assembler directive for DWARF support
* as/hc08/lkelf.c (elf): only increment address when rtflg[] set
* src/SDCCpeeph.c (replaceRule): support empty replacement peephole
rules
* src/SDCCmain.c,
* src/SDCCglobl.h,
* src/SDCCpeeph.c (getPeepLine): new option --no-peep-comments omits
comments from the peephole optimizer replacement rules
* src/SDCCmem.c (printAllocInfoSeg): give actual location of spilled
symbols
* src/SDCCcse.c (updateSpillLocation),
* src/SDCCopt.c (killDeadCode, findReqv): better tracking of register
equivalents
* src/hc08/ralloc.c (regTypeNum): pseudo symbols must be in DATA only
* src/hc08/main.c (_hc08_finaliseOptions): made pointers to stack
objects far pointers
* src/SDCCsymt.h: a missing part of my last change
* src/pic/ralloc.c (regTypeNum),
* src/pic16/ralloc.c (regTypeNum): fixed statement/declaration order
* link/z80/lkmain.c (afile),
* as/hc08/lkmain.c (afile),
* as/mcs51/lkmain.c (afile): fix suggested by Maarten Brock to
prevent a pointer problem when a filename has no directory and
no extension specified.
* link/z80/lkmain.c (afile): allow periods in directory names
* link/z80/lkmain.c (afile),
* as/mcs51/lkmain.c (afile),
* as/hc08/lkmain.c (afile): allow linker script file to have an
extension other than ".lnk"
* link/z80/lklex.c (getfid),
* link/z80/lkmain.c (parse),
* as/mcs51/lklex.c (getfid),
* as/mcs51/lkmain.c (parse),
* as/hc08/lklex.c (getfid),
* as/hc08/lkmain.c (parse): Support comments in the linker script
file on lines by themselves and after filenames
* src/z80/peeph-z80.def: removed some peephole rules that don't
work with multibyte arithmetic (fixed bug #937126)
* src/mcs51/peeph.def: fixed peephole rules 150-158 to apply only
to registers and not global variables
* src/SDCCicode.c (geniCodeAssign, ast2iCode, geniCodePostInc,
geniCodePreInc, geniCodePostDec, geniCodePreDec,
geniCodeLogicAndOr, geniCodeConditional): enforce strict lvalue
checking for assignments not internally generated (fixed bug #931895)
* src/SDCC.y (postfix_expr): ignore typedefs when looking for a
structure member (fixed bug #930072)
* doc/sdccman.lyx: removed the ANSI-C noncompliance note regarding
function pointers; we have been compliant for several months now.
* src/mcs51/ralloc.c (serialRegAssign): enabled part of my 2004-04-13
change that was accidently commented out
* src/mcs51/gen.c (freeAsmop, getFreePtr, freeForBranchAsmop, genIfxJump,
genCmpEq, jmpTrueOrFalse, genCmp, genAnd, genOr, genXor, genIfx): fixed
bug #922319
* src/mcs51/ralloc.c (serialRegAssign, fillGaps, allocThisReg): try
harder to keep the same registers during a CAST iCode
* src/SDCCopt.c (optimizeCastCast, eBBlockFromiCode): casts of char to
long via int can be done in a single cast, if the signedness is
correct.
* support/regression/tests/bug-927659.c: fixed to avoid conflict with
putchar() in tinibios.c in ds390's library
* src/SDCCicode.c (geniCodeLogic): made it static,
(geniCodeLogicAndOr): added in order to fix bug #905492,
(ast2iCode): fixed bug #905492
* support/regression/tests/bug-905492.c: added
bernhardheld [Tue, 23 Mar 2004 13:05:10 +0000 (13:05 +0000)]
* src/SDCCast.c (resultTypePropagate, decorateType): avoid promotion to int for complement if possible
* src/SDCCval.c (valComplement),
* src/SDCCicode.c (operandOperation): fixed complement of literal
* support/regression/tests/onebyte.c (testComplement): added
bernhardheld [Mon, 22 Mar 2004 20:29:18 +0000 (20:29 +0000)]
* src/SDCCast.c (processParms): fixed bug #920866; decorateType() can return an optimized tree; actually replace actParm with the new tree
* src/SDCCast.h: added some parantheses to remove side effects
* support/regression/tests/bug-920866.c