]> oss.titaniummirror.com Git - msp430-gcc.git/blobdiff - gcc/config/i370/README
Imported gcc-4.4.3
[msp430-gcc.git] / gcc / config / i370 / README
diff --git a/gcc/config/i370/README b/gcc/config/i370/README
deleted file mode 100644 (file)
index 56c6342..0000000
+++ /dev/null
@@ -1,125 +0,0 @@
-
-This directory contains code for building a compiler for the
-32-bit ESA/390 architecture.  It supports three different styles 
-of assembly:
-
--- MVS for use with the HLASM assembler
--- Open Edition (USS Unix System Services) 
--- ELF/Linux for use with the binutils/gas GNU assembler.
-
-
-Cross-compiling Hints
----------------------
-When building a cross-compiler on AIX, set the environment variable CC
-and be sure to set the -ma and -qcpluscmt flags; i.e.
-
-   export CC="cc -ma -qcpluscmt"
-
-do this *before* running configure, e.g.
-
-   configure --target=i370-ibm-linux --prefix=/where/to/install/usr
-
-The Objective-C and FORTRAN front ends don't build.  To avoid looking at
-errors, do only 
-
-   make LANGUAGES=c
-
-
-OpenEdition Hints
------------------
-The shell script "install" is handy for users of OpenEdition.
-
-
-The ELF ABI
------------
-This compiler, in conjunction with the gas/binutils assembler, defines
-a defacto ELF-based ABI for the ESA/390 architecture.  Be warned: this 
-ABI has several major faults.  It should be fixed.  As it is fixed,
-it is subject to change without warning.  You should not commit to major
-software systems without further exploring and fixing these problems.
-Here are some of the problems:
-
--- No support for shared libraries or dynamically loadable objects.
-   This is because the compiler currently places address literals in 
-   the text section.  Although the GAS assembler supports a syntax for 
-   USING that will place address literals in the data section, this forces
-   the use of two base registers, one for branches and one for the literal 
-   pool. Work is needed to redesign the function prologue, epilogue and the 
-   base register reloads to minimize the currently excessive use of reserved 
-   registers. 
-
-   I beleive the best solution would be to add a toc or plt, and extending
-   the meaning of the USING directive to encompass this.  This would 
-   allow the continued use of the human-readable and familiar practice
-   of using =A() and =F'' to denote address literals, as opposed to more 
-   difficult jump-table notation.
-
--- the stackframe is almost twice as big as it needs to be.
-
--- currently, r15 is used to return 32-bit values.  Because this is the
-   last register, it prevents 64-bit ints and small structures from being 
-   returned in registers, forcing return in memory.  It would be more
-   efficient to use r14 to return 32-bit values, and r14+r15 to return
-   64-bit values.
-
--- all arguments are currently passed in memory.  It would be more efficient 
-   to pass arguments in registers.
-
-
-
-
-ChangeLog
----------
-Oct98-Dec98 -- add ELF back end; work on getting ABI more or less functional.
-98.12.05 -- fix numerous MVC bugs
-99.02.06 -- multiply insn sometimes not generated when needed.
-         -- extendsidi bugs, bad literal values printed
-         -- remove broken adddi subdi patterns
-99.02.15 -- add clrstrsi pattern
-         -- fix -O2 divide bug
-99.03.04 -- base & index reg usage bugs
-99.03.15 -- fixes for returning long longs and structs (struct value return)
-99.03.29 -- fix handling & alignment of shorts
-99.03.31 -- clobbered register 14 is not always clobbered
-99.04.02 -- operand constraints for cmphi
-99.04.07 -- function pointer fixes for call, call_value patterns,
-            function pointers derefed once too often.
-99.04.14 -- add pattern to print double-wide int
-         -- check intval<4096 for misc operands
-         -- add clrstrsi pattern
-         -- movstrsi fixes
-99.04.16 -- use r2 to pass args into r11 in subroutine call.
-         -- fixes to movsi; some operand combinations impossible;
-            rework constraints
-         -- start work on forward jump optimization
-         -- char alignment bug
-99.04.25 -- add untyped_call pattern so that builtin_apply works
-99.04.27 -- fixes to compare logical under mask
-99.04.28 -- reg 2 is clobbered by calls
-99.04.30 -- fix rare mulsi bug
-99.04.30 -- add constraints so that all RS, SI, SS forms insns have valid
-            addressing modes
-99.04.30 -- major condition code fixes. The old code was just way off 
-            w.r.t. which insns set condition code, and the codes that
-            were set.  The extent of this damage was unbeleivable.
-99.05.01 -- restructuring of operand constraints on many patterns,
-            many lead to invalid instructions being genned.
-99.05.02 -- float pt fixes
-         -- fix movdi issue bugs
-99.05.03 -- fix divide insn; was dividing incorrectly
-99.05.05 -- fix sign extension problems on andhi
-         -- deprecate some constraints
-99.05.06 -- add set_attr insn lengths; fix misc litpool sizes
-         -- add notes about how unsigned jumps work (i.e. 
-            arithmetic vs. logical vs. signed vs unsigned).
-99.05.11 -- use insn length to predict forward branch target;
-            use relative branchining where possible,
-            remove un-needed base register reload.
-99.05.15 -- fix movstrsi, clrstrsi, cmpstrsi patterns as per conversation 
-            w/ Richard Henderson
-
-
-
-
-
-