diff options
author | Richard Kenner <kenner@gcc.gnu.org> | 1992-04-18 10:10:15 -0400 |
---|---|---|
committer | Richard Kenner <kenner@gcc.gnu.org> | 1992-04-18 10:10:15 -0400 |
commit | df031c437939ed0f64836a17db3efb2429e99b05 (patch) | |
tree | 1c118dba2d019c06eb773bda2b35e06d472a05e1 /gcc | |
parent | 44ace968fbcf000c7c06401f6fbe106091846191 (diff) | |
download | gcc-df031c437939ed0f64836a17db3efb2429e99b05.tar.gz |
*** empty log message ***
From-SVN: r774
Diffstat (limited to 'gcc')
-rw-r--r-- | gcc/config/rs6000/rs6000.md | 33 |
1 files changed, 22 insertions, 11 deletions
diff --git a/gcc/config/rs6000/rs6000.md b/gcc/config/rs6000/rs6000.md index 1af952f8d8c..771b3006254 100644 --- a/gcc/config/rs6000/rs6000.md +++ b/gcc/config/rs6000/rs6000.md @@ -1061,17 +1061,6 @@ 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 @@ -1092,6 +1081,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 @@ -1114,6 +1114,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. %0,%1,%3\"; + else + return \"andil. %0,%1,%3\"; + } + if (start + size >= 32) operands[3] = const0_rtx; else |