OSDN Git Service

(movhi): When storing a constant in an HImode register, use cal16
authorkenner <kenner@138bc75d-0d04-0410-961f-82ee72b054a4>
Mon, 5 Jul 1993 21:43:43 +0000 (21:43 +0000)
committerkenner <kenner@138bc75d-0d04-0410-961f-82ee72b054a4>
Mon, 5 Jul 1993 21:43:43 +0000 (21:43 +0000)
instead of cal so that the high bits are clear (combine requires
this).

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@4845 138bc75d-0d04-0410-961f-82ee72b054a4

gcc/config/romp/romp.md

index 4bdb503..968f700 100644 (file)
@@ -1,5 +1,5 @@
 ;;- Machine description for ROMP chip for GNU C compiler
-;;   Copyright (C) 1988, 1991 Free Software Foundation, Inc.
+;;   Copyright (C) 1988, 1991, 1993 Free Software Foundation, Inc.
 ;;   Contributed by Richard Kenner (kenner@nyu.edu)
 
 ;; This file is part of GNU CC.
   "loadha %0,%1"
   [(set_attr "type" "load")])
 
+
+;; use cal16 instead of cal for constant source because combine requires
+;; the high bits of the register to be 0 after a HImode load of a constant
+
 (define_insn ""
   [(set (match_operand:HI 0 "reg_or_nonsymb_mem_operand" "=r,r,r,r,r,b,Q")
        (match_operand:HI 1 "romp_operand" "r,I,n,s,Q,m,r"))]
   "@
    cas %0,%1,r0
    lis %0,%1
-   cal %0,%L1(r0)
+   cal16 %0,%L1(r0)
    get %0,$%1
    lh%N1 %0,%1
    loadh %0,%1