This is the mail archive of the gcc-patches@gcc.gnu.org mailing list for the GCC project.
Index Nav: | [Date Index] [Subject Index] [Author Index] [Thread Index] | |
---|---|---|
Message Nav: | [Date Prev] [Date Next] | [Thread Prev] [Thread Next] |
Other format: | [Raw text] |
Regards Hari
Index: libgcc/config.host =================================================================== --- libgcc/config.host (revision 132093) +++ libgcc/config.host (working copy) @@ -464,6 +464,8 @@ ;; mt-*-elf) ;; +picochip-*-*) + ;; pdp11-*-bsd) ;; pdp11-*-*) Index: gcc/doc/extend.texi =================================================================== --- gcc/doc/extend.texi (revision 132093) +++ gcc/doc/extend.texi (working copy) @@ -6695,6 +6695,7 @@ * X86 Built-in Functions:: * MIPS DSP Built-in Functions:: * MIPS Paired-Single Support:: +* picoChip Built-in Functions:: * PowerPC AltiVec Built-in Functions:: * SPARC VIS Built-in Functions:: * SPU Built-in Functions:: @@ -8812,6 +8813,42 @@ @end smallexample @end table +@node picoChip Built-in Functions +@subsection picoChip Built-in Functions + +GCC provides an interface to selected machine instructions from the +picoChip instruction set. + +@table @code +@item int __builtin_sbc (int @var{value}) +Sign bit count. Return the number of consecutive bits in @var{value} +which have the same value as the sign-bit. The result is the number of +leading sign bits minus one, giving the number of redundant sign bits in +@var{value}. + +@item int __builtin_byteswap (int @var{value}) +Byte swap. Return the result of swapping the upper and lower bytes of +@var{value}. + +@item int __builtin_brev (int @var{value}) +Bit reversal. Return the result of reversing the bits in +@var{value}. Bit 15 is swapped with bit 0, bit 14 is swapped with bit 1, +and so on. + +@item int __builtin_adds (int @var{x}, int @var{y}) +Saturating addition. Return the result of adding @var{x} and @var{y}, +storing the value 32767 if the result overflows. + +@item int __builtin_subs (int @var{x}, int @var{y}) +Saturating subtraction. Return the result of subtracting @var{y} from +@var{x}, storing the value -32768 if the the result overflows. + +@item void __builtin_halt (void) +Halt. The processor will stop execution. This built-in is useful for +implementing assertions. + +@end table + @node PowerPC AltiVec Built-in Functions @subsection PowerPC AltiVec Built-in Functions Index: gcc/doc/invoke.texi =================================================================== --- gcc/doc/invoke.texi (revision 132093) +++ gcc/doc/invoke.texi (working copy) @@ -674,6 +674,10 @@ -mbranch-expensive -mbranch-cheap @gol -msplit -mno-split -munix-asm -mdec-asm} +@emph{picoChip Options} +@gccoptlist{-mae=@var{ae_type} -mvliw-lookahead=@var{N} +-msymbol-as-address -mno-inefficient-warnings} + @emph{PowerPC Options} See RS/6000 and PowerPC Options. @@ -8233,6 +8237,7 @@ * MN10300 Options:: * MT Options:: * PDP-11 Options:: +* picoChip Options:: * PowerPC Options:: * RS/6000 and PowerPC Options:: * S/390 and zSeries Options:: @@ -12641,6 +12646,54 @@ PDP-11 target other than @samp{pdp11-*-bsd}. @end table +@node picoChip Options +@subsection picoChip Options +@cindex picoChip options + +These @samp{-m} options are defined for picoChip implementations: + +@table @gcctabopt + +@item -mae=@var{ae_type} +@opindex mcpu +Set the instruction set, register set, and instruction scheduling +parameters for array element type @var{ae_type}. Supported values +for @var{ae_type} are @samp{ANY}, @samp{MUL}, and @samp{MAC}. + +@option{-mae=ANY} selects a completely generic AE type. Code +generated with this option will run on any of the other AE types. The +code will not be as efficient as it would be if compiled for a specific +AE type, and some types of operation (e.g., multiplication) will not +work properly on all types of AE. + +@option{-mae=MUL} selects a MUL AE type. This is the most useful AE type +for copiled code, and is the default. + +@option{-mae=MAC} selects a DSP-style MAC AE. Code compiled with this +option may suffer from poor performance of byte (char) manipulation, +since the DSP AE does not provide hardware support for byte load/stores. + +@item -msymbol-as-address +Enable the compiler to directly use a symbol name as an address in a +load/store instruction, without first loading it into a +register. Typically, the use of this option will generate larger +programs, which run faster than when the option isn't used. However, the +results vary from program to program, so it is left as a user option, +rather than being permanently enabled. + +@item -mno-inefficient-warnings +Disables warnings about the generation of inefficient code. These +warnings can be generated, for example, when compiling code which +performs byte-level memory operations on the MAC AE type. The MAC AE has +no hardware support for byte-level memory operations, so all byte +load/stores must be synthesised from word load/store operations. This is +inefficient and a warning will be generated indicating to the programmer +that they should rewrite the code to avoid byte operations, or to target +an AE type which has the necessary hardware support. This option enables +the warning to be turned off. + +@end table + @node PowerPC Options @subsection PowerPC Options @cindex PowerPC options Index: gcc/doc/contrib.texi =================================================================== --- gcc/doc/contrib.texi (revision 132093) +++ gcc/doc/contrib.texi (working copy) @@ -917,6 +917,10 @@ Leonard Tower wrote parts of the parser, RTL generator, and RTL definitions, and of the VAX machine description. +@item +Daniel Towner and Hariharan Sandanagobalane contributed and +maintain the picoChip port. + @item Tom Tromey for internationalization support and for his many Java contributions and libgcj maintainership. Index: gcc/doc/md.texi =================================================================== --- gcc/doc/md.texi (revision 132093) +++ gcc/doc/md.texi (working copy) @@ -1852,6 +1852,46 @@ A register indirect memory operand @end table +@item picoChip family---@file{picochip.h} +@table @code +@item k +Stack register. + +@item f +Pointer register. A register which can be used to access memory without +supplying an offset. Any other register can be used to access memory, +but will need a constant offset. In the case of the offset being zero, +it is more efficient to use a pointer register, since this reduces code +size. + +@item t +A twin register. A register which may be paired with an adjacent +register to create a 32-bit register. + +@item a +Any absolute memory address (e.g., symbolic constant, symbolic +constant + offset). + +@item I +4-bit signed integer. + +@item J +4-bit unsigned integer. + +@item K +8-bit signed integer. + +@item M +Any constant whose absolute value is no greater than 4-bits. + +@item N +10-bit signed integer + +@item O +16-bit signed integer. + +@end table + @item PowerPC and IBM RS6000---@file{config/rs6000/rs6000.h} @table @code @item b Index: gcc/config.gcc =================================================================== --- gcc/config.gcc (revision 132093) +++ gcc/config.gcc (working copy) @@ -339,6 +339,9 @@ cpu_type=mips need_64bit_hwint=yes ;; +picochip-*-*) + cpu_type=picochip + ;; powerpc*-*-*) cpu_type=rs6000 extra_headers="ppc-asm.h altivec.h spe.h ppu_intrinsics.h paired.h spu2vmx.h vec_types.h si2vmx.h" @@ -1841,6 +1844,9 @@ pdp11-*-*) use_fixproto=yes ;; +picochip-*) + # Nothing special + ;; # port not yet contributed #powerpc-*-openbsd*) # tmake_file="${tmake_file} rs6000/t-fprules rs6000/t-fprules-fpbit "
Attachment:
picochip.tgz
Description: application/compressed-tar
# Compile the extra library functions. LIB2FUNCS_EXTRA = \ $(srcdir)/config/picochip/libgccExtras/ashrsi3.asm \ $(srcdir)/config/picochip/libgccExtras/ashlsi3.asm \ $(srcdir)/config/picochip/libgccExtras/divmodhi4.asm \ $(srcdir)/config/picochip/libgccExtras/udivmodhi4.asm \ $(srcdir)/config/picochip/libgccExtras/divmodsi4.asm \ $(srcdir)/config/picochip/libgccExtras/udivmodsi4.asm \ $(srcdir)/config/picochip/libgccExtras/divmod15.asm \ $(srcdir)/config/picochip/libgccExtras/ucmpsi2.asm \ $(srcdir)/config/picochip/libgccExtras/cmpsi2.asm \ $(srcdir)/config/picochip/libgccExtras/clz32.asm \ $(srcdir)/config/picochip/libgccExtras/adddi3.asm \ $(srcdir)/config/picochip/libgccExtras/subdi3.asm \ $(srcdir)/config/picochip/libgccExtras/lshrsi3.asm \ $(srcdir)/config/picochip/libgccExtras/parityhi2.asm \ $(srcdir)/config/picochip/libgccExtras/popcounthi2.asm # Prevent some of the more complicated libgcc functions from being # compiled. This is because they are generally too big to fit into an # AE anyway, so there is no point in having them. Also, some don't # compile properly so we'll ignore them for the moment. LIB1ASMFUNCS = _mulsc3 _divsc3 LIB1ASMSRC = picochip/libgccExtras/fake_libgcc.asm # Turn off the building of exception handling libraries. LIB2ADDEH = LIB2ADDEHDEP = # Turn off ranlib on target libraries. RANLIB_FOR_TARGET = cat # Special libgcc setup. Make single/double floating point the same, # and use our own include files. TARGET_LIBGCC2_CFLAGS = -DDF=SF -I../../includes/ # Switch off all debugging for the embedded libraries. # (embedded processors need small libraries by default). # NOTE: If the debug level is increased, turn off instruction scheduling. LIBGCC2_DEBUG_CFLAGS = -g0 # Build all combinations of library for different multiply units, and # presence/absence of byte access. MULTILIB_OPTIONS = mmul-type=none/mmul-type=mac/mmul-type=mul mno-byte-access/mbyte-access # Using a mul unit (currently) implies that byte access is available. MULTILIB_EXCEPTIONS = mmul-type=mul/mno-byte-access # We want fine grained libraries, so use the new code # to build the floating point emulation libraries. FPBIT = fp-bit.c # Software floating point support. Floating point is not properly # supported, but is existence can be useful for some types of testing. fp-bit.c: $(srcdir)/config/fp-bit.c echo '#define FLOAT' > fp-bit.c echo '#define FLOAT_ONLY' >> fp-bit.c echo '#define SMALL_MACHINE' >> fp-bit.c cat $(srcdir)/config/fp-bit.c >> fp-bit.c
Index Nav: | [Date Index] [Subject Index] [Author Index] [Thread Index] | |
---|---|---|
Message Nav: | [Date Prev] [Date Next] | [Thread Prev] [Thread Next] |