diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index ea6617b36f6f483e9f6eb6d0f87759bd72a30c24..e16876756757e0386216ec392b9ac9c8722f5c22 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,3 +1,13 @@
+2002-07-16  Jeroen Dobbelaere <jeroen.dobbelaere@acunia.com>
+
+	* arm.c (emit_sfm): Don't set RTX_FRAME_RELATED_P on DWARF.
+
+2002-07-16  Jeroen Dobbelaere <jeroen.dobbelaere@acunia.com>
+	    Richard Earnshaw  <rearnsha@arm.com>
+
+	* arm.h (LEGITIMATE_PIC_OPERAND_P): Only test 
+	CONSTANT_POOL_ADDRESS_P if a SYMBOL_REF.  Simplify logic.
+
 2002-07-16  Richard Earnshaw  <rearnsha@arm.com>
 
 	* arm.md (stack_tie): New insn.  Use an idiom that the alias code
diff --git a/gcc/config/arm/arm.c b/gcc/config/arm/arm.c
index 0632397a3f017cb6f24edf04bed6f00b89005c34..928b169a3e01dddc51ce1d3977be5651558d46fe 100644
--- a/gcc/config/arm/arm.c
+++ b/gcc/config/arm/arm.c
@@ -7922,7 +7922,6 @@ emit_sfm (base_reg, count)
 
   par = gen_rtx_PARALLEL (VOIDmode, rtvec_alloc (count));
   dwarf = gen_rtx_PARALLEL (VOIDmode, rtvec_alloc (count));
-  RTX_FRAME_RELATED_P (dwarf) = 1;
 
   reg = gen_rtx_REG (XFmode, base_reg++);
 
diff --git a/gcc/config/arm/arm.h b/gcc/config/arm/arm.h
index e74698a1737736c9c99bc4529d010d72f81edd9b..b18fff2290d41475c436109821ea98d9e5f3625c 100644
--- a/gcc/config/arm/arm.h
+++ b/gcc/config/arm/arm.h
@@ -2397,12 +2397,13 @@ extern const char * arm_pic_register_string;
 /* We can't directly access anything that contains a symbol,
    nor can we indirect via the constant pool.  */
 #define LEGITIMATE_PIC_OPERAND_P(X)					\
-	(   ! symbol_mentioned_p (X)					\
-	 && ! label_mentioned_p (X)					\
-	 && (! CONSTANT_POOL_ADDRESS_P (X)				\
-	     || (   ! symbol_mentioned_p (get_pool_constant (X))  	\
-	         && ! label_mentioned_p (get_pool_constant (X)))))
-     
+	(!(symbol_mentioned_p (X)					\
+	   || label_mentioned_p (X)					\
+	   || (GET_CODE (X) == SYMBOL_REF				\
+	       && CONSTANT_POOL_ADDRESS_P (X)				\
+	       && (symbol_mentioned_p (get_pool_constant (X))		\
+		   || label_mentioned_p (get_pool_constant (X))))))
+
 /* We need to know when we are making a constant pool; this determines
    whether data needs to be in the GOT or can be referenced via a GOT
    offset.  */