config/i386/i386.md (UNSPEC_TRUNC_NOOP): New unspec definition.
authoruros <uros@138bc75d-0d04-0410-961f-82ee72b054a4>
Sat, 25 Nov 2006 09:17:57 +0000 (09:17 +0000)
committeruros <uros@138bc75d-0d04-0410-961f-82ee72b054a4>
Sat, 25 Nov 2006 09:17:57 +0000 (09:17 +0000)
commitfafa4a365aed93818c7bdfa5d37b076f4dea172a
tree13d6aedbbab4e67a27ac966d32bd18545d7bc2f3
parenta2776c9e7c1ff5fc01a6a47b68e169db18cafd11
    config/i386/i386.md (UNSPEC_TRUNC_NOOP): New unspec definition.
        (X87MODEF): New mode macro.
        (ssemodefsuffix): New mode attribute.
        (truncxf<mode>2_i387_noop_unspec): New insn pattern.
        (sqrt_extend<mode>xf2_i387): New insn pattern.
        (sqrt<mode>2): For non-SSE sqrt, emit sqrt_extend<mode>xf2_i387
        insn and truncate result back to original mode using
        UNSPEC_TRUNC_NOOP truncation.
        (*sqrt<mode>2_sse): Implement using SSEMODEF mode macro and
        ssemodefsuffix mode attribute.
        (*sqrtsf2_mixed, *sqrtsf2_i387, *sqrtdf2_mixed, *sqrtdf2_i387)
        (*sqrtextendsfdf2_i387, *sqrtextendsfxf2_i387)
        (*sqrtextenddfxf2_i387): Remove insn patterns.

        (fmodsf3, fmoddf3, remaindersf3, remainderdf3): Use noop
        truncation patterns.

        reg-stack.c (get_true_reg): Handle UNSPEC_TRUNC_NOOP.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@119188 138bc75d-0d04-0410-961f-82ee72b054a4
gcc/ChangeLog
gcc/config/i386/i386.md
gcc/reg-stack.c