Index: crypto/md5/asm/md5-586.pl
===================================================================
RCS file: /v/openssl/cvs/openssl/crypto/md5/asm/md5-586.pl,v
retrieving revision 1.6
diff -u -r1.6 md5-586.pl
--- crypto/md5/asm/md5-586.pl   5 Jan 2008 22:28:37 -0000       1.6
+++ crypto/md5/asm/md5-586.pl   8 Jul 2011 06:22:06 -0000
@@ -11,7 +11,7 @@
 push(@INC,"${dir}","${dir}../../perlasm");
 require "x86asm.pl";
 
-&asm_init($ARGV[0],$0);
+&asm_init($ARGV[0],"md5_block_asm_data_order");
 
 $A="eax";
 $B="ebx";
@@ -30,6 +30,7 @@
  0, 7, 14, 5, 12, 3, 10, 1, 8, 15, 6, 13, 4, 11, 2, 9, # R3
  );
 
+&cfi_section(".debug_frame");
 &md5_block("md5_block_asm_data_order");
 &asm_finish();
 
@@ -178,18 +179,29 @@
        # C     8
        # D     12
 
+       &cfi_start();
+       &fpo("(10, 6, 0, 5, 1, 0)");
        &push("esi");
+       &cfi_def_offset("8");
+        &cfi_offset("-8", "esi");
         &push("edi");
+       &cfi_def_offset("12");
+        &cfi_offset("-12", "edi");
        &mov($tmp1,     &wparam(0)); # edi
         &mov($X,       &wparam(1)); # esi
        &mov($C,        &wparam(2));
         &push("ebp");
+       &cfi_def_offset("16");
+       &cfi_offset("-16", "ebp");
        &shl($C,        6);
        &push("ebx");
+       &cfi_def_offset("20");
+        &cfi_offset("-20", "ebx");
         &add($C,       $X); # offset we end at
        &sub($C,        64);
         &mov($A,       &DWP( 0,$tmp1,"",0));
        &push($C);      # Put on the TOS
+       &cfi_def_offset("24");
         &mov($B,       &DWP( 4,$tmp1,"",0));
        &mov($C,        &DWP( 8,$tmp1,"",0));
         &mov($D,       &DWP(12,$tmp1,"",0));
@@ -297,10 +309,20 @@
         &jae(&label("start")) unless $normal;
 
        &pop("eax"); # pop the temp variable off the stack
+       &cfi_def_offset("20");
         &pop("ebx");
+       &cfi_def_offset("16");
+        &cfi_restore("ebx");
        &pop("ebp");
+       &cfi_def_offset("12");
+        &cfi_restore("ebp");
         &pop("edi");
+       &cfi_def_offset("8");
+        &cfi_restore("edi");
        &pop("esi");
+       &cfi_def_offset("4");
+        &cfi_restore("esi");
+        &cfi_end();
         &ret();
        &function_end_B($name);
        }
Index: crypto/perlasm/x86gas.pl
===================================================================
RCS file: /v/openssl/cvs/openssl/crypto/perlasm/x86gas.pl,v
retrieving revision 1.12
diff -u -r1.12 x86gas.pl
--- crypto/perlasm/x86gas.pl    18 May 2011 16:28:53 -0000      1.12
+++ crypto/perlasm/x86gas.pl    8 Jul 2011 06:22:12 -0000
@@ -53,6 +53,14 @@
 
   1;
 }
+sub ::cfi_section { }; # &::emit(".cfi_sections",@_); }
+sub ::cfi_start { &::emit(".cfi_startproc"); }
+sub ::cfi_def_offset { &::emit(".cfi_def_cfa_offset",@_); }
+sub ::cfi_offset { &::emit(".cfi_offset",reverse(@_)); }
+sub ::cfi_restore { &::emit(".cfi_restore",@_); }
+sub ::cfi_end { &::emit(".cfi_endproc"); }
+sub ::fpo { }
+
 #
 # opcodes not covered by ::generic above, mostly inconsistent namings...
 #
Index: crypto/perlasm/x86masm.pl
===================================================================
RCS file: /v/openssl/cvs/openssl/crypto/perlasm/x86masm.pl,v
retrieving revision 1.11
diff -u -r1.11 x86masm.pl
--- crypto/perlasm/x86masm.pl   18 Apr 2011 20:18:03 -0000      1.11
+++ crypto/perlasm/x86masm.pl   8 Jul 2011 06:22:13 -0000
@@ -33,6 +33,14 @@
 sub ::jmp_ptr  { &::emit("jmp",@_);    }
 sub ::lock     { &::data_byte(0xf0);   }
 
+sub ::cfi_section { }
+sub ::cfi_start { }
+sub ::cfi_def_offset { }
+sub ::cfi_offset { }
+sub ::cfi_restore { }
+sub ::cfi_end { }
+sub ::fpo { &::emit(".FPO",@_); }
+
 sub get_mem
 { my($size,$addr,$reg1,$reg2,$idx)=@_;
   my($post,$ret);
Index: crypto/perlasm/x86nasm.pl
===================================================================
RCS file: /v/openssl/cvs/openssl/crypto/perlasm/x86nasm.pl,v
retrieving revision 1.35
diff -u -r1.35 x86nasm.pl
--- crypto/perlasm/x86nasm.pl   18 Apr 2011 20:18:03 -0000      1.35
+++ crypto/perlasm/x86nasm.pl   8 Jul 2011 06:22:13 -0000
@@ -25,6 +25,15 @@
     &::emit($opcode,@_);
   1;
 }
+
+sub ::cfi_section { }
+sub ::cfi_start { }
+sub ::cfi_def_offset { }
+sub ::cfi_offset { }
+sub ::cfi_restore { }
+sub ::cfi_end { }
+sub ::fpo { }
+
 #
 # opcodes not covered by ::generic above, mostly inconsistent namings...
 #
