diff options
author | stuart <stuart@138bc75d-0d04-0410-961f-82ee72b054a4> | 2006-03-25 00:10:39 +0000 |
---|---|---|
committer | stuart <stuart@138bc75d-0d04-0410-961f-82ee72b054a4> | 2006-03-25 00:10:39 +0000 |
commit | b7d6755c867565cc3d89f1eb304ecf339bd0ee35 (patch) | |
tree | 8be07ce972316e0e936376f89b473f65099578eb | |
parent | 0485019f23ed0b41a61e1ad2322267327cad92d0 (diff) |
Radar 4443946
* gcc/global.c (global_alloc): Allow -fasm-blocks to clobber
the frame pointer.
gcc.apple/4443946.c: New.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/branches/apple-local-200502-branch@112366 138bc75d-0d04-0410-961f-82ee72b054a4
-rw-r--r-- | gcc/ChangeLog.apple-ppc | 6 | ||||
-rw-r--r-- | gcc/global.c | 9 | ||||
-rw-r--r-- | gcc/testsuite/ChangeLog.apple-ppc | 5 | ||||
-rw-r--r-- | gcc/testsuite/gcc.apple/4443946.c | 14 |
4 files changed, 32 insertions, 2 deletions
diff --git a/gcc/ChangeLog.apple-ppc b/gcc/ChangeLog.apple-ppc index 4f83ec51e17..dd97795ced5 100644 --- a/gcc/ChangeLog.apple-ppc +++ b/gcc/ChangeLog.apple-ppc @@ -1,5 +1,11 @@ 2006-03-24 Stuart Hastings <stuart@apple.com> + Radar 4443946 + * gcc/global.c (global_alloc): Allow -fasm-blocks to clobber + the frame pointer. + +2006-03-24 Stuart Hastings <stuart@apple.com> + Radar 4474259 * gcc/config/i386/i386.c (cw_reg_comp): Use strcasecmp. (x86_canonicalize_operands): Exception for movd. diff --git a/gcc/global.c b/gcc/global.c index 4bd06896479..251e81a51ef 100644 --- a/gcc/global.c +++ b/gcc/global.c @@ -431,8 +431,13 @@ global_alloc (FILE *file) SET_HARD_REG_BIT (no_global_alloc_regs, HARD_FRAME_POINTER_REGNUM); } else if (need_fp) - error ("%s cannot be used in asm here", - reg_names[HARD_FRAME_POINTER_REGNUM]); + /* APPLE LOCAL begin 4443946 */ + { + if (!flag_cw_asm_blocks) + error ("%s cannot be used in asm here", + reg_names[HARD_FRAME_POINTER_REGNUM]); + } + /* APPLE LOCAL end 4443946 */ else regs_ever_live[HARD_FRAME_POINTER_REGNUM] = 1; #endif diff --git a/gcc/testsuite/ChangeLog.apple-ppc b/gcc/testsuite/ChangeLog.apple-ppc index e8b63d76bfe..1653ba53202 100644 --- a/gcc/testsuite/ChangeLog.apple-ppc +++ b/gcc/testsuite/ChangeLog.apple-ppc @@ -1,5 +1,10 @@ 2006-03-24 Stuart Hastings <stuart@apple.com> + Radar 4443946 + gcc.apple/4443946.c: New. + +2006-03-24 Stuart Hastings <stuart@apple.com> + Radar 4474259 * gcc.apple/4474259.c: New. diff --git a/gcc/testsuite/gcc.apple/4443946.c b/gcc/testsuite/gcc.apple/4443946.c new file mode 100644 index 00000000000..3280e824feb --- /dev/null +++ b/gcc/testsuite/gcc.apple/4443946.c @@ -0,0 +1,14 @@ +/* APPLE LOCAL file 4443946 */ +/* { dg-do compile { target i?86-*-darwin* } } */ +/* { dg-options "-fasm-blocks -O2" } */ +/* The compiler used to flag any write to %ebp as an error. */ +t2 () +{ + __asm { + movd mm4, ebp + movd ebp, mm3 + movntq [edi][ebp], mm0 + movd ebp, mm4 + } +} + |