diff options
author | Jeff Cohen <jeffc@jolt-lang.org> | 2006-01-28 20:30:18 +0000 |
---|---|---|
committer | Jeff Cohen <jeffc@jolt-lang.org> | 2006-01-28 20:30:18 +0000 |
commit | 8643ea67b12abb5b45f38348217b1dd9142ed941 (patch) | |
tree | c55c1c5b1862404ab0b6172765b01848ef7c18e2 /llvm/lib/Target/X86/X86Subtarget.cpp | |
parent | 58ca0be9aff48c3bc01eee76167cd842501dd521 (diff) | |
download | bcm5719-llvm-8643ea67b12abb5b45f38348217b1dd9142ed941.tar.gz bcm5719-llvm-8643ea67b12abb5b45f38348217b1dd9142ed941.zip |
Flesh out AMD family/models.
llvm-svn: 25755
Diffstat (limited to 'llvm/lib/Target/X86/X86Subtarget.cpp')
-rw-r--r-- | llvm/lib/Target/X86/X86Subtarget.cpp | 29 |
1 files changed, 27 insertions, 2 deletions
diff --git a/llvm/lib/Target/X86/X86Subtarget.cpp b/llvm/lib/Target/X86/X86Subtarget.cpp index 6e36343bb04..2a65013c231 100644 --- a/llvm/lib/Target/X86/X86Subtarget.cpp +++ b/llvm/lib/Target/X86/X86Subtarget.cpp @@ -113,10 +113,35 @@ static const char *GetCurrentX86CPU() { return "generic"; } } else if (memcmp(text.c, "AuthenticAMD", 12) == 0) { - // FIXME: fill in remaining family/model combinations + // FIXME: this poorly matches the generated SubtargetFeatureKV table. There + // appears to be no way to generate the wide variety of AMD-specific targets + // from the information returned from CPUID. switch (Family) { + case 4: + return "i486"; + case 5: + switch (Model) { + case 6: + case 7: return "k6"; + case 8: return "k6-2"; + case 9: + case 13: return "k6-3"; + default: return "pentium"; + } + case 6: + switch (Model) { + case 4: return "athlon-tbird"; + case 6: + case 7: + case 8: return "athlon-mp"; + case 10: return "athlon-xp"; + default: return "athlon"; + } case 15: - return (Em64T) ? "athlon64" : "athlon"; + switch (Model) { + case 5: return "athlon-fx"; // also opteron + default: return "athlon64"; + } default: return "generic"; |