[sh] missing sh2a support

DJ Delorie dj@redhat.com
Wed Nov 23 20:43:00 GMT 2005


This should be obvious, but the sh FPU code is, er, "interesting", so
I wouldn't be surprised if something else was better.  We needed this
for one of our internal trees, tested that on x86_64-linux although
our sh sim doesn't always work on 64 bit.  Anyway, all the other SH4
float tests test SH2A or SH2E also.

	* config/sh/sh.c (sh_gimplify_va_arg_expr): Support sh2a properly.


Index: gcc/config/sh/sh.c
===================================================================
--- gcc/config/sh/sh.c	(revision 107431)
+++ gcc/config/sh/sh.c	(working copy)
@@ -6792,7 +6792,7 @@
 	    }
 	}
 
-      if (TARGET_SH4)
+      if (TARGET_SH4 || TARGET_SH2A)
 	{
 	  pass_as_float = ((TREE_CODE (type) == REAL_TYPE && size <= 8)
 			   || (TREE_CODE (type) == COMPLEX_TYPE
@@ -6899,7 +6899,7 @@
 	  tmp = build (LABEL_EXPR, void_type_node, lab_false);
 	  gimplify_and_add (tmp, pre_p);
 
-	  if (size > 4 && ! TARGET_SH4)
+	  if (size > 4 && ! (TARGET_SH4 || TARGET_SH2A))
 	    {
 	      tmp = build (MODIFY_EXPR, ptr_type_node, next_o, next_o_limit);
 	      gimplify_and_add (tmp, pre_p);



More information about the Gcc-patches mailing list