diff options
author | Uros Bizjak <uros@kss-loka.si> | 2006-10-28 11:20:23 +0200 |
---|---|---|
committer | Uros Bizjak <uros@gcc.gnu.org> | 2006-10-28 11:20:23 +0200 |
commit | 87ccbc5cdd38ffd76515d6c6df48d1680ff0b380 (patch) | |
tree | 94ba421fe2e57d7dae9d752a8559e5abfaf85a93 /gcc | |
parent | f356a436f04c20db31d307e2e31e4dab21d0543b (diff) | |
download | gcc-87ccbc5cdd38ffd76515d6c6df48d1680ff0b380.zip gcc-87ccbc5cdd38ffd76515d6c6df48d1680ff0b380.tar.gz gcc-87ccbc5cdd38ffd76515d6c6df48d1680ff0b380.tar.bz2 |
i386.c (output_387_ffreep): Create output from a template string for !HAVE_AS_IX86_FFREEP.
* config/i386/i386.c (output_387_ffreep): Create output from a
template string for !HAVE_AS_IX86_FFREEP.
From-SVN: r118101
Diffstat (limited to 'gcc')
-rw-r--r-- | gcc/ChangeLog | 5 | ||||
-rw-r--r-- | gcc/config/i386/i386.c | 20 |
2 files changed, 14 insertions, 11 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 855dccb..d1d2e4e 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,8 @@ +2006-10-28 Uros Bizjak <uros@kss-loka.si> + + * config/i386/i386.c (output_387_ffreep): Create output from a + template string for !HAVE_AS_IX86_FFREEP. + 2006-10-27 Eric Christopher <echristo@apple.com> * config/darwin.c: Fix formatting and grammar. diff --git a/gcc/config/i386/i386.c b/gcc/config/i386/i386.c index 41d76c3..14974ff 100644 --- a/gcc/config/i386/i386.c +++ b/gcc/config/i386/i386.c @@ -8698,17 +8698,15 @@ output_387_ffreep (rtx *operands ATTRIBUTE_UNUSED, int opno) #if HAVE_AS_IX86_FFREEP return opno ? "ffreep\t%y1" : "ffreep\t%y0"; #else - switch (REGNO (operands[opno])) - { - case FIRST_STACK_REG + 0: return ".word\t0xc0df"; - case FIRST_STACK_REG + 1: return ".word\t0xc1df"; - case FIRST_STACK_REG + 2: return ".word\t0xc2df"; - case FIRST_STACK_REG + 3: return ".word\t0xc3df"; - case FIRST_STACK_REG + 4: return ".word\t0xc4df"; - case FIRST_STACK_REG + 5: return ".word\t0xc5df"; - case FIRST_STACK_REG + 6: return ".word\t0xc6df"; - case FIRST_STACK_REG + 7: return ".word\t0xc7df"; - } + { + static char retval[] = ".word\t0xc_df"; + int regno = REGNO (operands[opno]); + + gcc_assert (FP_REGNO_P (regno)); + + retval[9] = '0' + (regno - FIRST_STACK_REG); + return retval; + } #endif return opno ? "fstp\t%y1" : "fstp\t%y0"; |