if (op_mode == VOIDmode)
op_mode = mode;
if (GET_MODE_BITSIZE (op_mode) == HOST_BITS_PER_INT)
- val = arg0;
+ {
+ /* If we were really extending the mode,
+ we would have to distinguish between zero-extension
+ and sign-extension. */
+ if (width != GET_MODE_BITSIZE (op_mode))
+ abort ();
+ val = arg0;
+ }
else if (GET_MODE_BITSIZE (op_mode) < HOST_BITS_PER_INT)
val = arg0 & ~((-1) << GET_MODE_BITSIZE (op_mode));
else
if (op_mode == VOIDmode)
op_mode = mode;
if (GET_MODE_BITSIZE (op_mode) == HOST_BITS_PER_INT)
- val = arg0;
+ {
+ /* If we were really extending the mode,
+ we would have to distinguish between zero-extension
+ and sign-extension. */
+ if (width != GET_MODE_BITSIZE (op_mode))
+ abort ();
+ val = arg0;
+ }
else if (GET_MODE_BITSIZE (op_mode) < HOST_BITS_PER_INT)
{
val = arg0 & ~((-1) << GET_MODE_BITSIZE (op_mode));
along with GNU CC; see the file COPYING. If not, write to
the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA. */
-
-#include "insn-attr.h"
-
-#ifdef DELAY_SLOTS
-
/* Instruction reorganization pass.
This pass runs after register allocation and final jump
#include "flags.h"
#include "output.h"
#include "obstack.h"
+#include "insn-attr.h"
+
+#ifdef DELAY_SLOTS
#define obstack_chunk_alloc xmalloc
#define obstack_chunk_free free