aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--gcc/ChangeLog27
-rw-r--r--gcc/config/i386/i386.c6
-rw-r--r--gcc/testsuite/ChangeLog11
-rw-r--r--gcc/testsuite/gcc.target/i386/pr45213.c9
4 files changed, 39 insertions, 14 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index 53f24f1..6516544 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,3 +1,10 @@
+2010-08-07 Uros Bizjak <ubizjak@gmail.com>
+ H.J. Lu <hongjiu.lu@intel.com>
+
+ PR target/45213
+ * config/i386/i386.c (ix86_print_operand): Handle 'q' operand modifier
+ to output 32bit SFmode immediate as 8 byte sign extended value.
+
2010-08-07 Marcus Shawcroft <marcus.shawcroft@arm.com>
* config/arm/linux-atomic.c (SUBWORD_VAL_CAS): Instantiate with
@@ -11,16 +18,16 @@
2010-08-07 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
- * config/arm/cortex-a9.md: Rewrite VFP Pipeline description.
- * config/arm/arm.c (arm_xscale_tune): Initialize sched_adjust_cost.
- (arm_fastmul_tune,arm_slowmul_tune, arm_9e_tune): Likewise.
- (arm_adjust_cost): Split into xscale_sched_adjust_cost and a
- generic part.
- (cortex_a9_sched_adjust_cost): New function.
- (xscale_sched_adjust_cost): New function.
- * config/arm/arm-protos.h (struct tune_params): New field
- sched_adjust_cost.
- * config/arm/arm-cores.def: Adjust costs for cortex-a9.
+ * config/arm/cortex-a9.md: Rewrite VFP Pipeline description.
+ * config/arm/arm.c (arm_xscale_tune): Initialize sched_adjust_cost.
+ (arm_fastmul_tune,arm_slowmul_tune, arm_9e_tune): Likewise.
+ (arm_adjust_cost): Split into xscale_sched_adjust_cost and a
+ generic part.
+ (cortex_a9_sched_adjust_cost): New function.
+ (xscale_sched_adjust_cost): New function.
+ * config/arm/arm-protos.h (struct tune_params): New field
+ sched_adjust_cost.
+ * config/arm/arm-cores.def: Adjust costs for cortex-a9.
2010-08-06 Eric Botcazou <ebotcazou@adacore.com>
diff --git a/gcc/config/i386/i386.c b/gcc/config/i386/i386.c
index 204211a..1877730 100644
--- a/gcc/config/i386/i386.c
+++ b/gcc/config/i386/i386.c
@@ -12921,7 +12921,11 @@ ix86_print_operand (FILE *file, rtx x, int code)
if (ASSEMBLER_DIALECT == ASM_ATT)
putc ('$', file);
- fprintf (file, "0x%08lx", (long unsigned int) l);
+ /* Sign extend 32bit SFmode immediate to 8 bytes. */
+ if (code == 'q')
+ fprintf (file, "0x%08llx", (unsigned long long) (int) l);
+ else
+ fprintf (file, "0x%08x", (unsigned int) l);
}
/* These float cases don't actually occur as immediate operands. */
diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog
index e7f4524..18f42a4 100644
--- a/gcc/testsuite/ChangeLog
+++ b/gcc/testsuite/ChangeLog
@@ -1,3 +1,8 @@
+2010-08-07 Uros Bizjak <ubizjak@gmail.com>
+
+ PR target/45213
+ * gcc.target/i386/pr45213.c: New test.
+
2010-08-07 Jerry DeLisle <jvdelisle@gcc.gnu.org>
PR libfortran/45143
@@ -5,9 +10,9 @@
2010-08-07 Marcus Shawcroft <marcus.shawcroft@arm.com>
- * lib/target-supports.exp: (check_effective_target_sync_int_long):
- Add arm*-*-linux-gnueabi.
- (check_effective_target_sync_char_short): Likewise.
+ * lib/target-supports.exp (check_effective_target_sync_int_long):
+ Add arm*-*-linux-gnueabi.
+ (check_effective_target_sync_char_short): Likewise.
2010-08-06 Thomas Koenig <tkoenig@gcc.gnu.org>
diff --git a/gcc/testsuite/gcc.target/i386/pr45213.c b/gcc/testsuite/gcc.target/i386/pr45213.c
new file mode 100644
index 0000000..c575fb5
--- /dev/null
+++ b/gcc/testsuite/gcc.target/i386/pr45213.c
@@ -0,0 +1,9 @@
+/* { dg-do assemble } */
+/* { dg-options "-Os -fno-omit-frame-pointer" } */
+
+void f (float, float, float, float, float, float, float, float, float, float);
+
+void g (void)
+{
+ f (0, 0, 0, 0, 0, 0, 0, 0, -1, 1);
+}