Rietveld Code Review Tool
Help | Bug tracker | Discussion group | Source code | Sign in
(928)

Unified Diff: lib/Target/ARM/ARMConstantPoolValue.h

Issue 96065: non inline jumptables for arm Base URL: http://llvm.org/svn/llvm-project/llvm/trunk/
Patch Set: attempt at thumb suppport, undid refactoring Created 14 years, 7 months ago
Use n/p to move between diff chunks; N/P to move between comments. Please Sign in to add in-line comments.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « lib/CodeGen/BranchFolding.cpp ('k') | lib/Target/ARM/ARMConstantPoolValue.cpp » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: lib/Target/ARM/ARMConstantPoolValue.h
===================================================================
--- lib/Target/ARM/ARMConstantPoolValue.h (revision 78188)
+++ lib/Target/ARM/ARMConstantPoolValue.h (working copy)
@@ -25,7 +25,8 @@
enum ARMCPKind {
CPValue,
CPNonLazyPtr,
- CPStub
+ CPStub,
+ CPJumpTable
};
}
@@ -35,6 +36,7 @@
class ARMConstantPoolValue : public MachineConstantPoolValue {
GlobalValue *GV; // GlobalValue being loaded.
const char *S; // ExtSymbol being loaded.
+ unsigned JumpTableIndex; // Index of a jump table.
unsigned LabelId; // Label id of the load.
ARMCP::ARMCPKind Kind; // non_lazy_ptr or stub?
unsigned char PCAdjust; // Extra adjustment if constantpool is pc relative.
@@ -53,8 +55,8 @@
bool AddCurrentAddress = false);
ARMConstantPoolValue(GlobalValue *GV, ARMCP::ARMCPKind Kind,
const char *Modifier);
+ ARMConstantPoolValue(unsigned jt);
-
GlobalValue *getGV() const { return GV; }
const char *getSymbol() const { return S; }
const char *getModifier() const { return Modifier; }
@@ -63,6 +65,11 @@
unsigned getLabelId() const { return LabelId; }
bool isNonLazyPointer() const { return Kind == ARMCP::CPNonLazyPtr; }
bool isStub() const { return Kind == ARMCP::CPStub; }
+ bool isValue() const { return Kind == ARMCP::CPValue; }
+ bool isJumpTable() const { return Kind == ARMCP::CPJumpTable; }
+ virtual unsigned *getJumpTableIndex() {
+ return isJumpTable() ? &JumpTableIndex : 0;
+ }
unsigned char getPCAdjustment() const { return PCAdjust; }
virtual unsigned getRelocationInfo() const {
« no previous file with comments | « lib/CodeGen/BranchFolding.cpp ('k') | lib/Target/ARM/ARMConstantPoolValue.cpp » ('j') | no next file with comments »

Powered by Google App Engine
RSS Feeds Recent Issues | This issue
This is Rietveld f62528b