* alpha.c (alpha_emit_set_const_1): Also try c + small constant.
From-SVN: r32304
This commit is contained in:
parent
c1b5b92ce8
commit
e68c380c8f
@ -1,3 +1,7 @@
|
||||
2000-03-02 Richard Henderson <rth@cygnus.com>
|
||||
|
||||
* alpha.c (alpha_emit_set_const_1): Also try c + small constant.
|
||||
|
||||
2000-03-02 Mark Mitchell <mark@codesourcery.com>
|
||||
|
||||
* tree.h (TYPE_ALIGN_UNIT): New macro.
|
||||
|
@ -1400,6 +1400,14 @@ alpha_emit_set_const_1 (target, mode, c, n)
|
||||
target, 0, OPTAB_WIDEN);
|
||||
}
|
||||
|
||||
/* Next, see if, minus some low bits, we've an easy load of high bits. */
|
||||
|
||||
new = ((c & 0xffff) ^ 0x8000) - 0x8000;
|
||||
if (new != 0
|
||||
&& (temp = alpha_emit_set_const (subtarget, mode, c - new, n - 1)) != 0)
|
||||
return expand_binop (mode, add_optab, temp, GEN_INT (new),
|
||||
target, 0, OPTAB_WIDEN);
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user