Evan, Chris,

I've confirmed that basic testcases appear to be working with this change.

--Owen

On Jan 24, 2008, at 6:34 PM, Anton Korobeynikov wrote:

Author: asl
Date: Thu Jan 24 18:34:13 2008
New Revision: 46337

URL: http://llvm.org/viewvc/llvm-project?rev=46337&view=rev
Log:
Provide correct DWARF register numbering for debug information emission on x86-32/Darwin.
This should fix bunch of issues.

Modified:
   llvm/trunk/lib/Target/X86/X86RegisterInfo.cpp
   llvm/trunk/lib/Target/X86/X86RegisterInfo.h
   llvm/trunk/lib/Target/X86/X86RegisterInfo.td

Modified: llvm/trunk/lib/Target/X86/X86RegisterInfo.cpp
URL: 
http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/Target/X86/X86RegisterInfo.cpp?rev=46337&r1=46336&r2=46337&view=diff

= = = = = = = = ======================================================================
--- llvm/trunk/lib/Target/X86/X86RegisterInfo.cpp (original)
+++ llvm/trunk/lib/Target/X86/X86RegisterInfo.cpp Thu Jan 24 18:34:13 2008
@@ -64,12 +64,15 @@
  unsigned Flavour = DWARFFlavour::X86_64;
  if (!Subtarget->is64Bit()) {
    if (Subtarget->isTargetDarwin()) {
-      Flavour = DWARFFlavour::X86_32_Darwin;
+      if (isEH)
+        Flavour = DWARFFlavour::X86_32_DarwinEH;
+      else
+        Flavour = DWARFFlavour::X86_32_Generic;
    } else if (Subtarget->isTargetCygMing()) {
      // Unsupported by now, just quick fallback
-      Flavour = DWARFFlavour::X86_32_ELF;
+      Flavour = DWARFFlavour::X86_32_Generic;
    } else {
-      Flavour = DWARFFlavour::X86_32_ELF;
+      Flavour = DWARFFlavour::X86_32_Generic;
    }
  }


Modified: llvm/trunk/lib/Target/X86/X86RegisterInfo.h
URL: 
http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/Target/X86/X86RegisterInfo.h?rev=46337&r1=46336&r2=46337&view=diff

= = = = = = = = ======================================================================
--- llvm/trunk/lib/Target/X86/X86RegisterInfo.h (original)
+++ llvm/trunk/lib/Target/X86/X86RegisterInfo.h Thu Jan 24 18:34:13 2008
@@ -36,7 +36,7 @@
///
namespace DWARFFlavour {
  enum {
-    X86_64 = 0, X86_32_Darwin = 1, X86_32_ELF = 2
+    X86_64 = 0, X86_32_DarwinEH = 1, X86_32_Generic = 2
  };
}


Modified: llvm/trunk/lib/Target/X86/X86RegisterInfo.td
URL: 
http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/Target/X86/X86RegisterInfo.td?rev=46337&r1=46336&r2=46337&view=diff

= = = = = = = = ======================================================================
--- llvm/trunk/lib/Target/X86/X86RegisterInfo.td (original)
+++ llvm/trunk/lib/Target/X86/X86RegisterInfo.td Thu Jan 24 18:34:13 2008
@@ -25,11 +25,8 @@

  // Dwarf numbering is different for 32-bit and 64-bit, and there are
// variations by target as well. Currently the first entry is for X86-64,
-  // second - for X86-32/Darwin and third for X86-32/Linux
-
- // FIXME: Comments in gcc indicate that Darwin uses different numbering - // for debug info and exception handling info:( The numbering here is
-  // for exception handling.
+ // second - for EH on X86-32/Darwin and third is 'generic' one (X86-32/Linux
+  // and debug information on X86-32/Darwin)

  // 8-bit registers
  // Low registers


_______________________________________________
llvm-commits mailing list
llvm-commits@cs.uiuc.edu
http://lists.cs.uiuc.edu/mailman/listinfo/llvm-commits

Attachment: smime.p7s
Description: S/MIME cryptographic signature

_______________________________________________
llvm-commits mailing list
llvm-commits@cs.uiuc.edu
http://lists.cs.uiuc.edu/mailman/listinfo/llvm-commits

Reply via email to