From: Richard Kenner Date: Mon, 13 Apr 1992 19:15:23 +0000 (-0400) Subject: *** empty log message *** X-Git-Url: https://git.libre-soc.org/?a=commitdiff_plain;h=cd0ec0d175eee798161ac17ad2bd8d9ca80bf03c;p=gcc.git *** empty log message *** From-SVN: r737 --- diff --git a/gcc/config/rs6000/rs6000.md b/gcc/config/rs6000/rs6000.md index ee49f299f29..1af952f8d8c 100644 --- a/gcc/config/rs6000/rs6000.md +++ b/gcc/config/rs6000/rs6000.md @@ -1061,6 +1061,17 @@ int start = INTVAL (operands[3]) & 31; int size = INTVAL (operands[2]) & 31; + if ((start < 16 && start + size <= 16) || start >= 16) + { + operands[3] = gen_rtx (CONST_INT, VOIDmode, + ((1 << (16 - (start & 15))) + - (1 << (16 - (start & 15) - size)))); + if (start < 16) + return \"andiu. %4,%1,%3\"; + else + return \"andil. %4,%1,%3\"; + } + if (start + size >= 32) operands[3] = const0_rtx; else