Woot. Thx a bunch. I'll look at more complicated cases. Evan
On Jan 24, 2008, at 4:53 PM, Owen Anderson <[EMAIL PROTECTED]> wrote: > 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 > > _______________________________________________ > llvm-commits mailing list > llvm-commits@cs.uiuc.edu > http://lists.cs.uiuc.edu/mailman/listinfo/llvm-commits _______________________________________________ llvm-commits mailing list llvm-commits@cs.uiuc.edu http://lists.cs.uiuc.edu/mailman/listinfo/llvm-commits