On 3 Sep 2012, at 11:18, Kaz Kojima <kkoj...@rr.iij4u.or.jp> wrote:

Oleg Endo <oleg.e...@t-online.de> wrote:
--- gcc/config/sh/sh.c    (revision 190840)
+++ gcc/config/sh/sh.c    (working copy)
@@ -21,6 +21,12 @@
along with GCC; see the file COPYING3.  If not see
<http://www.gnu.org/licenses/>.  */

+/* FIXME: This is a temporary hack, so that we can include <algorithm> + below. <algorithm> will try to include <cstdlib> which will reference + malloc & co, which are poisoned by "system.h". The proper solution is
+   to include <cstdlib> in "system.h" instead of <stdlib.h>.  */
+#include <cstdlib>
+
#include "config.h"
#include "system.h"
#include "coretypes.h"
[snip]
@@ -1791,65 +1798,124 @@
    }
}

-enum rtx_code
-prepare_cbranch_operands (rtx *operands, enum machine_mode mode,
-              enum rtx_code comparison)
+// Implement the CANONICALIZE_COMPARISON macro for the combine pass.
+// This function is also re-used to canonicalize comparisons in cbranch
+// pattern expanders.
+void
+sh_canonicalize_comparison (enum rtx_code& cmp, rtx& op0, rtx& op1,
+                enum machine_mode mode)
{
-  rtx op1;
-  rtx scratch = NULL_RTX;
+ // When invoked from within the combine pass the mode is not specified,
+  // so try to get it from one of the operands.
+  if (mode == VOIDmode)
+    mode = GET_MODE (op0);

I'm not sure that the mixture of C and C++ style long comments
in one .c file is OK with the current gcc coding style.  Could
you point me to a reference for that?

Sorry, I can't. At least The C++ conventions wiki page doesn't mention this. Maybe somebody else can comment on this, please?

In any case, I have no problem with changing the multi line comments to /* ... */. Just let me know.

Cheers,
Oleg

Reply via email to