public inbox for gcc-patches@gcc.gnu.org
 help / color / mirror / Atom feed
* RFA: Add support for Renesas RX architecture to GCC (take 3)
@ 2009-10-15  9:06 Nick Clifton
  2009-10-23 16:27 ` Richard Henderson
  0 siblings, 1 reply; 3+ messages in thread
From: Nick Clifton @ 2009-10-15  9:06 UTC (permalink / raw)
  To: gcc-patches

[-- Attachment #1: Type: text/plain, Size: 2037 bytes --]

Hi Guys,

  Here is the third revision of my patch to add support for the
  Renesas RX architecture to GCC.  I believe that I have address all
  of the issues raised by Richard Henderson and Joseph S. Myers.

  OK to apply ?

Cheers
  Nick

./ChangeLog
2009-10-08  Nick Clifton  <nickc@redhat.com>

	* MAINTAINERS: Add myself as a maintainer for the RX port.

gcc/ChangeLog
2009-10-08  Nick Clifton  <nickc@redhat.com>

	* config.gcc: Add support for RX target.
	* config/rx: New directory.
	* config/rx/constraints.md: New file.
	* config/rx/predicates.md: New file.
	* config/rx/rx.c: New file.
	* config/rx/rx.h: New file.
	* config/rx/rx.md: New file.
	* config/rx/rx.opt: New file.
	* config/rx/rx-protos.h: New file.
	* config/rx/t-rx: New file.
	* doc/extend.texi: Document RX function attributes.
	* doc/invoke.texi: Document RX specific command line options.
	* doc/contrib.texi: Document RX contribution.
	* doc/md.texi: Document RX constraints.
	* doc/install.texi: Document RX support.

libgcc/ChangeLog
2009-10-08  Nick Clifton  <nickc@redhat.com>

	* config.host: Add support for RX target.
	* config/rx: New directory.
	* config/rx/rx-abi-functions.c: New file. Supplementary
	functions for libgcc to support the RX ABI.
	* config/rx/rx-abi.h: New file.  Supplementary header file for
	libgcc RX ABI functions.
	* config/rx/t-rx: New file: Makefile fragment for building
	libgcc for the RX.

gcc/testsuite/ChangeLog
2009-10-08  Nick Clifton  <nickc@redhat.com>

	* lib/target-supports.exp (check_profiling_available):
	Profiling is not, currently, available for the RX port.
	(check_effective_target_hard_float): Add support for RX
	target.
	* gcc.target/rx: New directory.
	* gcc.target/rx/builtins.c: New test file.
	* gcc.target/rx/interrupts.c: New test file.
	* gcc.target/rx/rx-abi-function-tests.c: New test file.
	* gcc.target/rx/zero-width-bitfield.c: New test file.
	* gcc.target/rx/i272091.c: New test file.
	* gcc.target/rx/packed-struct.c: New test file.
	* gcc.target/rx/rx.exp: New file: Drives RX tests.
	

[-- Attachment #2: rx-gcc.patch.3.svn.lzma --]
[-- Type: application/octet-stream, Size: 5100 bytes --]

[-- Attachment #3: rx-gcc.patch.2.cvs.lzma --]
[-- Type: application/octet-stream, Size: 913 bytes --]

[-- Attachment #4: rx-gcc.patch.3.files.tar.lzma --]
[-- Type: application/octet-stream, Size: 35275 bytes --]

^ permalink raw reply	[flat|nested] 3+ messages in thread

* Re: RFA: Add support for Renesas RX architecture to GCC (take 3)
  2009-10-15  9:06 RFA: Add support for Renesas RX architecture to GCC (take 3) Nick Clifton
@ 2009-10-23 16:27 ` Richard Henderson
  2009-10-23 18:13   ` Joseph S. Myers
  0 siblings, 1 reply; 3+ messages in thread
From: Richard Henderson @ 2009-10-23 16:27 UTC (permalink / raw)
  To: Nick Clifton; +Cc: gcc-patches

> (define_insn "revl"
>   [(set (match_operand:SI           0 "register_operand" "=r")
>         (bswap:SI (match_operand:SI 1 "register_operand"  "r")))]
>   ""
>   "revl\t%1, %0"
>   [(set_attr "length" "3")]

bswapsi2

As a follow-up, consider defining bswaphi2 with revw.

> ;; Note - the zero_extends are to distinguish this pattern from the
> ;; mulsidi3 pattern.  Immediate mode addressing is not supported
> ;; because gcc cannot handle the expression: (zero_extend (const_int)).
> (define_insn "umulsidi3"

FWIW, gcc isn't supposed to handle the express (sign_extend (const_int))
either.  I think the best way to handle this is to define two separate
patterns

   (set (match_operand:DI 0)
        (mult:DI (zero_extend:DI (match_operand:SI 1)
		(match_operand:DI 2 "const_int_with_range_constraint")))

and similar for mulsidi3.  You can leave this for a follow-on patch.

> (define_insn "addsf3"
>   [(set (match_operand:SF          0 "register_operand"  "=r,r,r")
>         (plus:SF (match_operand:SF 1 "register_operand"  "%0,0,0")
>                  (match_operand:SF 2 "rx_source_operand"  "r,F,Q")))]
>   "fast_math_flags_set_p ()"

All instances of fast_math_flags_set_p should be testing the single flag
flag_unsafe_math_optimizations.  I also highly recommend that you put
this in a macro in rx.h, because as I said before, the proper thing to
test would be a new flag_normal_math_only that specifies that subnormal
math is not needed.

> mieee
> Target Mask(64BIT_DOUBLES) MaskExists
> Conform to the IEEE754 standard for floating point arithmetic.

This can be removed.

>                   warning (0, "no fixed registers available "
> "for use by fast interrupt handler");

Indent the second line properly.

Ok with those changes.


r~

^ permalink raw reply	[flat|nested] 3+ messages in thread

* Re: RFA: Add support for Renesas RX architecture to GCC (take 3)
  2009-10-23 16:27 ` Richard Henderson
@ 2009-10-23 18:13   ` Joseph S. Myers
  0 siblings, 0 replies; 3+ messages in thread
From: Joseph S. Myers @ 2009-10-23 18:13 UTC (permalink / raw)
  To: Richard Henderson; +Cc: Nick Clifton, gcc-patches

On Fri, 23 Oct 2009, Richard Henderson wrote:

> Ok with those changes.

As a new architecture port I believe the Steering Committee also needs to 
approve a maintainer before it goes in (I presume they saw the patch 
submission and are already considering the appointment, unless I missed an 
announcement that the maintainer has already been approved).

-- 
Joseph S. Myers
joseph@codesourcery.com

^ permalink raw reply	[flat|nested] 3+ messages in thread

end of thread, other threads:[~2009-10-23 17:45 UTC | newest]

Thread overview: 3+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2009-10-15  9:06 RFA: Add support for Renesas RX architecture to GCC (take 3) Nick Clifton
2009-10-23 16:27 ` Richard Henderson
2009-10-23 18:13   ` Joseph S. Myers

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).