Commit 1fadfc48 by Richard Kenner

(cmphi, movhi, movstricthi, extendhisi2): Correct generation of short integer (Halfword)

(cmphi, movhi, movstricthi, extendhisi2): Correct generation of short
integer (Halfword)
({add,sub,mul,and,ior,xor}hi3): Likewise.

From-SVN: r10379
parent f2423e19
;;- Machine description for GNU compiler -- System/370 version. ;;- Machine description for GNU compiler -- System/370 version.
;; Copyright (C) 1989, 1993, 1994 Free Software Foundation, Inc. ;; Copyright (C) 1989, 1993, 1994, 1995 Free Software Foundation, Inc.
;; Contributed by Jan Stein (jan@cd.chalmers.se). ;; Contributed by Jan Stein (jan@cd.chalmers.se).
;; Modified for MVS C/370 by Dave Pitts (pitts@mcdata.com) ;; Modified for MVS C/370 by Dave Pitts (dpitts@nyx.cs.du.edu)
;; This file is part of GNU CC. ;; This file is part of GNU CC.
...@@ -266,8 +266,8 @@ ...@@ -266,8 +266,8 @@
} }
if (GET_CODE (operands[1]) == CONST_INT) if (GET_CODE (operands[1]) == CONST_INT)
{ {
mvs_check_page (0, 4, 2); mvs_check_page (0, 4, 0);
return \"CH %0,=H'%h1'\"; return \"CH %0,%H1\";
} }
mvs_check_page (0, 4, 0); mvs_check_page (0, 4, 0);
return \"CH %0,%1\"; return \"CH %0,%1\";
...@@ -781,8 +781,8 @@ check_label_emit (); ...@@ -781,8 +781,8 @@ check_label_emit ();
} }
if (GET_CODE (operands[1]) == CONST_INT) if (GET_CODE (operands[1]) == CONST_INT)
{ {
mvs_check_page (0, 4, 2); mvs_check_page (0, 4, 0);
return \"LH %0,=H'%h1'\"; return \"LH %0,%H1\";
} }
mvs_check_page (0, 4, 0); mvs_check_page (0, 4, 0);
return \"LH %0,%1\"; return \"LH %0,%1\";
...@@ -795,7 +795,7 @@ check_label_emit (); ...@@ -795,7 +795,7 @@ check_label_emit ();
if (GET_CODE (operands[1]) == CONST_INT) if (GET_CODE (operands[1]) == CONST_INT)
{ {
mvs_check_page (0, 6, 0); mvs_check_page (0, 6, 0);
return \"MVC %O0(2,%R0),=H'%h1'\"; return \"MVC %O0(2,%R0),%H1\";
} }
mvs_check_page (0, 6, 0); mvs_check_page (0, 6, 0);
return \"MVC %O0(2,%R0),%1\"; return \"MVC %O0(2,%R0),%1\";
...@@ -829,8 +829,8 @@ check_label_emit (); ...@@ -829,8 +829,8 @@ check_label_emit ();
} }
if (GET_CODE (operands[1]) == CONST_INT) if (GET_CODE (operands[1]) == CONST_INT)
{ {
mvs_check_page (0, 4, 2); mvs_check_page (0, 4, 0);
return \"LH %0,=H'%h1'\"; return \"LH %0,%H1\";
} }
mvs_check_page (0, 4, 0); mvs_check_page (0, 4, 0);
return \"LH %0,%1\"; return \"LH %0,%1\";
...@@ -965,8 +965,8 @@ check_label_emit (); ...@@ -965,8 +965,8 @@ check_label_emit ();
} }
else if (GET_CODE (operands[1]) == CONST_INT) else if (GET_CODE (operands[1]) == CONST_INT)
{ {
mvs_check_page (0, 4, 2); mvs_check_page (0, 4, 0);
return \"ICM %0,3,=H'%h1'\"; return \"ICM %0,3,%H1\";
} }
mvs_check_page (0, 4, 0); mvs_check_page (0, 4, 0);
return \"ICM %0,3,%1\"; return \"ICM %0,3,%1\";
...@@ -1367,14 +1367,14 @@ check_label_emit (); ...@@ -1367,14 +1367,14 @@ check_label_emit ();
} }
if (GET_CODE (operands[1]) == CONST_INT) if (GET_CODE (operands[1]) == CONST_INT)
{ {
mvs_check_page (0, 4, 2); mvs_check_page (0, 4, 0);
return \"LH %0,=H'%h1'\"; return \"LH %0,%H1\";
} }
mvs_check_page (0, 4, 0); mvs_check_page (0, 4, 0);
return \"LH %0,%1\"; return \"LH %0,%1\";
} }
mvs_check_page (0, 4, 0); mvs_check_page (0, 4, 0);
return \"SLL %0,16\;SRA %0,16\;ST %1,%0\"; return \"SLL %1,16\;SRA %1,16\;ST %1,%0\";
}") }")
; ;
...@@ -1780,7 +1780,7 @@ check_label_emit (); ...@@ -1780,7 +1780,7 @@ check_label_emit ();
check_label_emit (); check_label_emit ();
if (REG_P (operands[2])) if (REG_P (operands[2]))
{ {
mvs_check_page (0, 2, 0); mvs_check_page (0, 8, 0);
return \"STH %2,140(,13)\;AH %0,140(,13)\"; return \"STH %2,140(,13)\;AH %0,140(,13)\";
} }
if (GET_CODE (operands[2]) == CONST_INT) if (GET_CODE (operands[2]) == CONST_INT)
...@@ -1791,8 +1791,8 @@ check_label_emit (); ...@@ -1791,8 +1791,8 @@ check_label_emit ();
mvs_check_page (0, 2, 0); mvs_check_page (0, 2, 0);
return \"BCTR %0,0\"; return \"BCTR %0,0\";
} }
mvs_check_page (0, 4, 2); mvs_check_page (0, 4, 0);
return \"AH %0,=H'%h2'\"; return \"AH %0,%H2\";
} }
mvs_check_page (0, 4, 0); mvs_check_page (0, 4, 0);
return \"AH %0,%2\"; return \"AH %0,%2\";
...@@ -1977,7 +1977,7 @@ check_label_emit (); ...@@ -1977,7 +1977,7 @@ check_label_emit ();
check_label_emit (); check_label_emit ();
if (REG_P (operands[2])) if (REG_P (operands[2]))
{ {
mvs_check_page (0, 2, 0); mvs_check_page (0, 8, 0);
return \"STH %2,140(,13)\;SH %0,140(,13)\"; return \"STH %2,140(,13)\;SH %0,140(,13)\";
} }
if (operands[2] == const1_rtx) if (operands[2] == const1_rtx)
...@@ -1988,8 +1988,8 @@ check_label_emit (); ...@@ -1988,8 +1988,8 @@ check_label_emit ();
} }
if (GET_CODE (operands[2]) == CONST_INT) if (GET_CODE (operands[2]) == CONST_INT)
{ {
mvs_check_page (0, 4, 2); mvs_check_page (0, 4, 0);
return \"SH %0,=H'%h2'\"; return \"SH %0,%H2\";
} }
mvs_check_page (0, 4, 0); mvs_check_page (0, 4, 0);
return \"SH %0,%2\"; return \"SH %0,%2\";
...@@ -2125,7 +2125,7 @@ check_label_emit (); ...@@ -2125,7 +2125,7 @@ check_label_emit ();
{ {
check_label_emit (); check_label_emit ();
mvs_check_page (0, 4, 0); mvs_check_page (0, 4, 0);
return \"MH %0,%2\"; return \"MH %0,%H2\";
}") }")
(define_insn "" (define_insn ""
...@@ -2551,13 +2551,13 @@ check_label_emit (); ...@@ -2551,13 +2551,13 @@ check_label_emit ();
if (REG_P (operands[0])) if (REG_P (operands[0]))
{ {
mvs_check_page (0, 4, 0); mvs_check_page (0, 4, 0);
return \"N %0,%H2\"; return \"N %0,%2\";
} }
CC_STATUS_INIT; CC_STATUS_INIT;
if (GET_CODE (operands[2]) == CONST_INT) if (GET_CODE (operands[2]) == CONST_INT)
{ {
mvs_check_page (0, 6, 2); mvs_check_page (0, 6, 0);
return \"NC %O0(2,%R0),=H'%h2'\"; return \"NC %O0(2,%R0),%H2\";
} }
mvs_check_page (0, 6, 0); mvs_check_page (0, 6, 0);
return \"NC %O0(2,%R0),%2\"; return \"NC %O0(2,%R0),%2\";
...@@ -2574,7 +2574,7 @@ check_label_emit (); ...@@ -2574,7 +2574,7 @@ check_label_emit ();
if (GET_CODE (operands[2]) == CONST_INT) if (GET_CODE (operands[2]) == CONST_INT)
{ {
mvs_check_page (0, 4, 0); mvs_check_page (0, 4, 0);
return \"N %0,%H2\"; return \"N %0,%2\";
} }
mvs_check_page (0, 2, 0); mvs_check_page (0, 2, 0);
return \"NR %0,%2\"; return \"NR %0,%2\";
...@@ -2720,13 +2720,13 @@ check_label_emit (); ...@@ -2720,13 +2720,13 @@ check_label_emit ();
if (REG_P (operands[0])) if (REG_P (operands[0]))
{ {
mvs_check_page (0, 4, 0); mvs_check_page (0, 4, 0);
return \"O %0,%H2\"; return \"O %0,%2\";
} }
CC_STATUS_INIT; CC_STATUS_INIT;
if (GET_CODE (operands[2]) == CONST_INT) if (GET_CODE (operands[2]) == CONST_INT)
{ {
mvs_check_page (0, 6, 2); mvs_check_page (0, 6, 0);
return \"OC %O0(2,%R0),=H'%h2'\"; return \"OC %O0(2,%R0),%H2\";
} }
mvs_check_page (0, 6, 0); mvs_check_page (0, 6, 0);
return \"OC %O0(2,%R0),%2\"; return \"OC %O0(2,%R0),%2\";
...@@ -2743,7 +2743,7 @@ check_label_emit (); ...@@ -2743,7 +2743,7 @@ check_label_emit ();
if (GET_CODE (operands[2]) == CONST_INT) if (GET_CODE (operands[2]) == CONST_INT)
{ {
mvs_check_page (0, 4, 0); mvs_check_page (0, 4, 0);
return \"O %0,%H2\"; return \"O %0,%2\";
} }
mvs_check_page (0, 2, 0); mvs_check_page (0, 2, 0);
return \"OR %0,%2\"; return \"OR %0,%2\";
...@@ -2890,13 +2890,13 @@ check_label_emit (); ...@@ -2890,13 +2890,13 @@ check_label_emit ();
if (REG_P (operands[0])) if (REG_P (operands[0]))
{ {
mvs_check_page (0, 4, 0); mvs_check_page (0, 4, 0);
return \"X %0,%H2\"; return \"X %0,%2\";
} }
CC_STATUS_INIT; CC_STATUS_INIT;
if (GET_CODE (operands[2]) == CONST_INT) if (GET_CODE (operands[2]) == CONST_INT)
{ {
mvs_check_page (0, 6, 2); mvs_check_page (0, 6, 0);
return \"XC %O0(2,%R0),=H'%h2'\"; return \"XC %O0(2,%R0),%H2\";
} }
mvs_check_page (0, 6, 0); mvs_check_page (0, 6, 0);
return \"XC %O0(2,%R0),%2\"; return \"XC %O0(2,%R0),%2\";
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment