Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(184)

Unified Diff: lib/Target/ARM/ARMSubtarget.cpp

Issue 939073008: Rebased PNaCl localmods in LLVM to 223109 (Closed)
Patch Set: undo localmod Created 5 years, 10 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « lib/Target/ARM/ARMSubtarget.h ('k') | lib/Target/ARM/ARMTargetMachine.cpp » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: lib/Target/ARM/ARMSubtarget.cpp
diff --git a/lib/Target/ARM/ARMSubtarget.cpp b/lib/Target/ARM/ARMSubtarget.cpp
index e53cef17140fc0e0b8465b630358a4e477f30e8c..29d59b6ce93952ccb78a40ffc0a82cc325f3bb4e 100644
--- a/lib/Target/ARM/ARMSubtarget.cpp
+++ b/lib/Target/ARM/ARMSubtarget.cpp
@@ -45,6 +45,15 @@ ReserveR9("arm-reserve-r9", cl::Hidden,
static cl::opt<bool>
ArmUseMOVT("arm-use-movt", cl::init(true), cl::Hidden);
+// @LOCALMOD-START
+// TODO: * JITing has not been tested at all
+// * Thumb mode operation is also not clear: it seems jump tables
+// for thumb are broken independent of this option
+static cl::opt<bool>
+NoInlineJumpTables("no-inline-jumptables",
+ cl::desc("Do not place jump tables inline in the code"));
+// @LOCALMOD-END
+
static cl::opt<bool>
UseFusedMulOps("arm-use-mulops",
cl::init(true), cl::Hidden);
@@ -179,6 +188,10 @@ void ARMSubtarget::initializeEnvironment() {
HasFPARMv8 = false;
HasNEON = false;
UseNEONForSinglePrecisionFP = false;
+ // @LOCALMOD-START
+ UseInlineJumpTables = !NoInlineJumpTables;
+ UseConstIslands = true;
+ // @LOCALMOD-END
UseMulOps = UseFusedMulOps;
SlowFPVMLx = false;
HasVMLxForwarding = false;
@@ -285,6 +298,17 @@ void ARMSubtarget::initSubtargetFeatures(StringRef CPU, StringRef FS) {
SupportsTailCall = !isThumb1Only();
}
+ // @LOCALMOD-BEGIN
+ if (isTargetNaCl()) {
+ // NaCl reserves R9 for TLS.
+ IsR9Reserved = true;
+ // NaCl uses MovT to avoid generating constant islands.
+ UseMovt = true;
+ UseInlineJumpTables = false;
+ UseConstIslands = false;
+ }
+ // @LOCALMOD-END
+
if (Align == DefaultAlign) {
// Assume pre-ARMv6 doesn't support unaligned accesses.
//
« no previous file with comments | « lib/Target/ARM/ARMSubtarget.h ('k') | lib/Target/ARM/ARMTargetMachine.cpp » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698