From 830730d6fc3a9597ee62a1dc2aaf86e52162dfa3 Mon Sep 17 00:00:00 2001 From: amylaar Date: Thu, 1 Mar 2012 23:40:57 +0000 Subject: [PATCH] * config/epiphany/epiphany.md (movmisalign): New patterns. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@184766 138bc75d-0d04-0410-961f-82ee72b054a4 --- gcc/ChangeLog | 4 ++++ gcc/config/epiphany/epiphany.md | 20 +++++++++++++++++++- 2 files changed, 23 insertions(+), 1 deletion(-) diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 8da046483d3..751ca2bb2f2 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,7 @@ +2012-03-01 Joern Rennecke + + * config/epiphany/epiphany.md (movmisalign): New patterns. + 2012-03-01 Jeremy Bennett Joern Rennecke diff --git a/gcc/config/epiphany/epiphany.md b/gcc/config/epiphany/epiphany.md index 7f8f2a95231..b192153ccf4 100644 --- a/gcc/config/epiphany/epiphany.md +++ b/gcc/config/epiphany/epiphany.md @@ -1,6 +1,6 @@ ;; Machine description of the Adaptiva epiphany cpu for GNU C compiler ;; Copyright (C) 1994, 1997, 1998, 1999, 2000, 2004, 2005, 2007, 2009, 2010, -;; 2011 Free Software Foundation, Inc. +;; 2011, 2012 Free Software Foundation, Inc. ;; Contributed by Embecosm on behalf of Adapteva, Inc. ;; This file is part of GCC. @@ -2439,6 +2439,24 @@ emit_move_insn (operands[0], operands[1]); DONE; }) + +(define_expand "movmisalign" + [(set (match_operand:DWV2MODE 0 "nonimmediate_operand" "") + (match_operand:DWV2MODE 1 "general_operand" ""))] + "" +{ + rtx op00, op01, op10, op11; + + op00 = simplify_gen_subreg (mode, operands[0], mode, 0); + op01 = simplify_gen_subreg (mode, operands[0], mode, + UNITS_PER_WORD); + op10 = simplify_gen_subreg (mode, operands[1], mode, 0); + op11 = simplify_gen_subreg (mode, operands[1], mode, + UNITS_PER_WORD); + emit_move_insn (op00, op10); + emit_move_insn (op01, op11); + DONE; +}) (define_insn "nop" [(const_int 0)] -- 2.11.0