summaryrefslogtreecommitdiff
path: root/gcc/reg-stack.c
diff options
context:
space:
mode:
authoruros <uros@138bc75d-0d04-0410-961f-82ee72b054a4>2005-04-14 11:31:04 +0000
committeruros <uros@138bc75d-0d04-0410-961f-82ee72b054a4>2005-04-14 11:31:04 +0000
commit162669a8ecb0e22c9e1f62971e6be2235cf182b1 (patch)
tree10f9970687d86f79e9d680bc125b4ae6668a598c /gcc/reg-stack.c
parent13d9b8f8a19df18f2842100a21ce74610675e1d7 (diff)
downloadgcc-162669a8ecb0e22c9e1f62971e6be2235cf182b1.tar.gz
* reg-stack.c (subst_stack_regs_pat): Handle <UNSPEC_FIST_FLOOR> and
<UNSPEC_FIST_CEIL> case. * config/i386/i386.md (UNSPEC_FIST_FLOOR, UNSPEC_FIST_CEIL): New. (*fist<mode>2_floor_1, fistdi2_floor, fistdi2_floor_with_temp) (fist<mode>2_floor, fist<mode>2_floor_with_temp): New isns patterns to implement lfloor and llfloor built-ins as x87 intrinsic function. (fistdi2_floor, fist<mode>2_floor splitters): New splitters. (lfloor<mode>2): New expanders. (*fist<mode>2_ceil_1, fistdi2_ceil, fistdi2_ceil_with_temp) (fist<mode>2_ceil, fist<mode>2_ceil_with_temp): New isns patterns to implement lceil and llceil built-ins as x87 intrinsic function. (fistdi2_ceil, fist<mode>2_ceil splitters): New splitters. (lceil<mode>2): New expanders. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@98132 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'gcc/reg-stack.c')
-rw-r--r--gcc/reg-stack.c4
1 files changed, 4 insertions, 0 deletions
diff --git a/gcc/reg-stack.c b/gcc/reg-stack.c
index 8ae4d3760b7..a49d9e9a108 100644
--- a/gcc/reg-stack.c
+++ b/gcc/reg-stack.c
@@ -1671,6 +1671,10 @@ subst_stack_regs_pat (rtx insn, stack regstack, rtx pat)
switch (XINT (pat_src, 1))
{
case UNSPEC_FIST:
+
+ case UNSPEC_FIST_FLOOR:
+ case UNSPEC_FIST_CEIL:
+
/* These insns only operate on the top of the stack. */
src1 = get_true_reg (&XVECEXP (pat_src, 0, 0));