summaryrefslogtreecommitdiffstats
path: root/llvm/lib/MC/MCDisassembler
diff options
context:
space:
mode:
authorShantonu Sen <ssen@apple.com>2011-02-09 21:03:19 +0000
committerShantonu Sen <ssen@apple.com>2011-02-09 21:03:19 +0000
commitfd3e83953f0ea2d5563a631c29fba307e76e4aac (patch)
treeed11515954eb3e4fd452864f4fe4af392cdf5bbc /llvm/lib/MC/MCDisassembler
parentd4182f4b018bc996b4488896f7d72e1cc1c4d205 (diff)
downloadbcm5719-llvm-fd3e83953f0ea2d5563a631c29fba307e76e4aac.tar.gz
bcm5719-llvm-fd3e83953f0ea2d5563a631c29fba307e76e4aac.zip
Fix comparator used for looking up previously instantiated EDDisassemblers.
Now, Syntax is only used as a tie-breaker if the Arch matches. Previously, a request for x86_64 disassembler followed by the i386 disassembler in a single process would return the cached x86_64 disassembler. Fixes <rdar://problem/8958982> llvm-svn: 125215
Diffstat (limited to 'llvm/lib/MC/MCDisassembler')
-rw-r--r--llvm/lib/MC/MCDisassembler/EDDisassembler.h6
1 files changed, 4 insertions, 2 deletions
diff --git a/llvm/lib/MC/MCDisassembler/EDDisassembler.h b/llvm/lib/MC/MCDisassembler/EDDisassembler.h
index fdbe7ad24c1..71e45f0b042 100644
--- a/llvm/lib/MC/MCDisassembler/EDDisassembler.h
+++ b/llvm/lib/MC/MCDisassembler/EDDisassembler.h
@@ -89,8 +89,10 @@ struct EDDisassembler {
bool operator<(const CPUKey &key) const {
if(Arch > key.Arch)
return false;
- if(Syntax >= key.Syntax)
- return false;
+ else if (Arch == key.Arch) {
+ if(Syntax > key.Syntax)
+ return false;
+ }
return true;
}
};
OpenPOWER on IntegriCloud