aboutsummaryrefslogtreecommitdiff
path: root/gcc/config/tilegx/tilegx.c
diff options
context:
space:
mode:
Diffstat (limited to 'gcc/config/tilegx/tilegx.c')
-rw-r--r--gcc/config/tilegx/tilegx.c10
1 files changed, 10 insertions, 0 deletions
diff --git a/gcc/config/tilegx/tilegx.c b/gcc/config/tilegx/tilegx.c
index 004cc93..368821e 100644
--- a/gcc/config/tilegx/tilegx.c
+++ b/gcc/config/tilegx/tilegx.c
@@ -5560,7 +5560,14 @@ tilegx_file_end (void)
file_end_indicate_exec_stack ();
}
+/* Implement TARGET_TRULY_NOOP_TRUNCATION. We represent all SI values
+ as sign-extended DI values in registers. */
+static bool
+tilegx_truly_noop_truncation (unsigned int outprec, unsigned int inprec)
+{
+ return inprec <= 32 || outprec > 32;
+}
#undef TARGET_HAVE_TLS
#define TARGET_HAVE_TLS HAVE_AS_TLS
@@ -5724,6 +5731,9 @@ tilegx_file_end (void)
#undef TARGET_CAN_USE_DOLOOP_P
#define TARGET_CAN_USE_DOLOOP_P can_use_doloop_if_innermost
+#undef TARGET_TRULY_NOOP_TRUNCATION
+#define TARGET_TRULY_NOOP_TRUNCATION tilegx_truly_noop_truncation
+
struct gcc_target targetm = TARGET_INITIALIZER;
#include "gt-tilegx.h"