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
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