diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index 2ed0288fb3f6e86f1346f2f20478818d0eafa868..9e48dbb85144aad5ef24a3394dafb25aad947b3d 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -31,6 +31,7 @@
 2004-08-17  David Edelsohn  <edelsohn@gnu.org>
 
 	Revert 2004-08-16  Stan Shebs  <shebs@apple.com>
+	* config/darwin.c (macho_indirect_data_reference): Add DImode case.
 	* config/rs6000/rs6000.md: Include darwin.md.
 	(builtin_setjmp_receiver): Add DImode case.
 	* config/rs6000/rs6000.c (rs6000_emit_move): Add DImode case to
diff --git a/gcc/config/darwin.c b/gcc/config/darwin.c
index 14101f6c72eb8d4146894622b8b2bc49b25ed7cf..bca55134db25a4f37edb9d194afdc6e98a520030 100644
--- a/gcc/config/darwin.c
+++ b/gcc/config/darwin.c
@@ -333,12 +333,8 @@ machopic_indirect_data_reference (rtx orig, rtx reg)
       if (defined && MACHO_DYNAMIC_NO_PIC_P)
 	{
 #if defined (TARGET_TOC)
- 	  emit_insn (GET_MODE (orig) == DImode
-		     ? gen_macho_high_di (reg, orig)
-		     : gen_macho_high (reg, orig));
- 	  emit_insn (GET_MODE (orig) == DImode
-		     ? gen_macho_low_di (reg, reg, orig)
-		     : gen_macho_low (reg, reg, orig));
+	  emit_insn (gen_macho_high (reg, orig));
+	  emit_insn (gen_macho_low (reg, reg, orig));
 #else
 	   /* some other cpu -- writeme!  */
 	   abort ();
@@ -533,9 +529,7 @@ machopic_legitimize_pic_address (rtx orig, enum machine_mode mode, rtx reg)
 	      rtx asym = XEXP (orig, 0);
 	      rtx mem;
 
-	      emit_insn (mode == DImode
-			 ? gen_macho_high_di (temp_reg, asym)
-			 : gen_macho_high (temp_reg, asym));
+	      emit_insn (gen_macho_high (temp_reg, asym));
 	      mem = gen_rtx_MEM (GET_MODE (orig),
 				 gen_rtx_LO_SUM (Pmode, temp_reg, asym));
 	      RTX_UNCHANGING_P (mem) = 1;