diff options
| author | Chris Lattner <sabre@nondot.org> | 2010-02-11 21:27:18 +0000 |
|---|---|---|
| committer | Chris Lattner <sabre@nondot.org> | 2010-02-11 21:27:18 +0000 |
| commit | ddeceae839fc93673455ecca23839b84b606af98 (patch) | |
| tree | 888fc52f6aa194c9ff665bfa745d663ec417e724 /llvm/lib/Target/X86/X86MCCodeEmitter.cpp | |
| parent | e8ac42ad5c46c7d368457689a668aa9488f6ebc3 (diff) | |
| download | bcm5719-llvm-ddeceae839fc93673455ecca23839b84b606af98.tar.gz bcm5719-llvm-ddeceae839fc93673455ecca23839b84b606af98.zip | |
make getFixupKindInfo return a const reference, allowing
the tables to be const. Teach MCCodeEmitter to handle
the target-indep kinds so that we don't crash on them.
llvm-svn: 95924
Diffstat (limited to 'llvm/lib/Target/X86/X86MCCodeEmitter.cpp')
| -rw-r--r-- | llvm/lib/Target/X86/X86MCCodeEmitter.cpp | 11 |
1 files changed, 7 insertions, 4 deletions
diff --git a/llvm/lib/Target/X86/X86MCCodeEmitter.cpp b/llvm/lib/Target/X86/X86MCCodeEmitter.cpp index 7ec7cec6604..15510e844cb 100644 --- a/llvm/lib/Target/X86/X86MCCodeEmitter.cpp +++ b/llvm/lib/Target/X86/X86MCCodeEmitter.cpp @@ -45,16 +45,19 @@ public: ~X86MCCodeEmitter() {} unsigned getNumFixupKinds() const { - return 1; + return 2; } - MCFixupKindInfo &getFixupKindInfo(MCFixupKind Kind) const { - static MCFixupKindInfo Infos[] = { + const MCFixupKindInfo &getFixupKindInfo(MCFixupKind Kind) const { + const static MCFixupKindInfo Infos[] = { { "reloc_pcrel_4byte", 0, 4 * 8 }, { "reloc_pcrel_1byte", 0, 1 * 8 } }; + + if (Kind < FirstTargetFixupKind) + return MCCodeEmitter::getFixupKindInfo(Kind); - assert(Kind >= FirstTargetFixupKind && Kind < MaxTargetFixupKind && + assert(unsigned(Kind - FirstTargetFixupKind) < getNumFixupKinds() && "Invalid kind!"); return Infos[Kind - FirstTargetFixupKind]; } |

