diff --git a/libffi/ChangeLog b/libffi/ChangeLog
index f61684c056cba2014392cd7b88fc3412c3a44268..ef56084d802b25731c1efec29db884ce7bb006d9 100644
--- a/libffi/ChangeLog
+++ b/libffi/ChangeLog
@@ -1,3 +1,10 @@
+2005-08-09  Jakub Jelinek  <jakub@redhat.com>
+
+	* src/powerpc/ppc_closure.S (ffi_closure_SYSV): Use
+	DW_CFA_offset_extended_sf rather than
+	DW_CFA_GNU_negative_offset_extended.
+	* src/powerpc/sysv.S (ffi_call_SYSV): Likewise.
+
 2005-07-22  SUGIOKA Toshinobu  <sugioka@itonet.co.jp>
 
 	* src/sh/sysv.S (ffi_call_SYSV): Stop argument popping correctly
diff --git a/libffi/src/powerpc/ppc_closure.S b/libffi/src/powerpc/ppc_closure.S
index b45ccd6bd54b6349743738adefcd5ceb78867306..36f8ac08769eb057e5923a6848330d3478ec28c0 100644
--- a/libffi/src/powerpc/ppc_closure.S
+++ b/libffi/src/powerpc/ppc_closure.S
@@ -319,9 +319,9 @@ END(ffi_closure_SYSV)
 	.uleb128 144
 	.byte	0x4	 # DW_CFA_advance_loc4
 	.4byte	.LCFI1-.LCFI0
-	.byte	0x2f	 # DW_CFA_GNU_negative_offset_extended
+	.byte	0x11	 # DW_CFA_offset_extended_sf
 	.uleb128 0x41
-	.uleb128 0x1
+	.sleb128 -1
 	.align 2
 .LEFDE1:
 
diff --git a/libffi/src/powerpc/sysv.S b/libffi/src/powerpc/sysv.S
index eba70fbd8f775cc672ae7636276e80eac97fe86a..235acfad382814bea4452d1238004738b5589979 100644
--- a/libffi/src/powerpc/sysv.S
+++ b/libffi/src/powerpc/sysv.S
@@ -191,9 +191,9 @@ END(ffi_call_SYSV)
       .uleb128  0x08
       .byte     0x4      /*  DW_CFA_advance_loc4 */
       .4byte    .LCFI5-.LCFI0
-      .byte     0x2f     /*  DW_CFA_GNU_negative_offset_extended */
+      .byte     0x11     /*  DW_CFA_offset_extended_sf */
       .uleb128  0x41
-      .uleb128  0x1
+      .sleb128  -1
       .byte     0x9f     /*  DW_CFA_offset, column 0x1f */
       .uleb128  0x1
       .byte     0x9e     /*  DW_CFA_offset, column 0x1e */