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

Unified Diff: src/IceTargetLowering.cpp

Issue 1506653002: Subzero: Add Non-SFI support for x86-32. (Closed) Base URL: https://chromium.googlesource.com/native_client/pnacl-subzero.git@master
Patch Set: Code review changes Created 4 years, 12 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 | « src/IceTargetLowering.h ('k') | src/IceTargetLoweringARM32.h » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: src/IceTargetLowering.cpp
diff --git a/src/IceTargetLowering.cpp b/src/IceTargetLowering.cpp
index 69f7f12cb054651b8e6ad61814fc76452d9a5bc5..04f77e61b2caf26ea4fe4bedffc1efae35434fcd 100644
--- a/src/IceTargetLowering.cpp
+++ b/src/IceTargetLowering.cpp
@@ -39,7 +39,7 @@
// createTargetDataLowering(Ice::GlobalContext*);
// unique_ptr<Ice::TargetHeaderLowering>
// createTargetHeaderLowering(Ice::GlobalContext *);
-// void staticInit();
+// void staticInit(const ::Ice::ClFlags &Flags);
// }
#define SUBZERO_TARGET(X) \
namespace X { \
@@ -49,7 +49,7 @@
createTargetDataLowering(::Ice::GlobalContext *Ctx); \
std::unique_ptr<::Ice::TargetHeaderLowering> \
createTargetHeaderLowering(::Ice::GlobalContext *Ctx); \
- void staticInit(); \
+ void staticInit(const ::Ice::ClFlags &Flags); \
} // end of namespace X
#include "llvm/Config/SZTargets.def"
#undef SUBZERO_TARGET
@@ -129,7 +129,8 @@ TargetLowering::createLowering(TargetArch Target, Cfg *Func) {
}
}
-void TargetLowering::staticInit(TargetArch Target) {
+void TargetLowering::staticInit(const ClFlags &Flags) {
+ const TargetArch Target = Flags.getTargetArch();
// Call the specified target's static initializer.
switch (Target) {
default:
@@ -141,8 +142,8 @@ void TargetLowering::staticInit(TargetArch Target) {
return; \
} \
InitGuard##X = true; \
- ::X::staticInit(); \
- }
+ ::X::staticInit(Flags); \
+ } break;
#include "llvm/Config/SZTargets.def"
#undef SUBZERO_TARGET
}
@@ -525,7 +526,8 @@ bool TargetLowering::shouldOptimizeMemIntrins() {
Ctx->getFlags().getForceMemIntrinOpt();
}
-void TargetLowering::emitWithoutPrefix(const ConstantRelocatable *C) const {
+void TargetLowering::emitWithoutPrefix(const ConstantRelocatable *C,
+ const char *Suffix) const {
if (!BuildDefs::dump())
return;
Ostream &Str = Ctx->getStrEmit();
@@ -533,6 +535,7 @@ void TargetLowering::emitWithoutPrefix(const ConstantRelocatable *C) const {
Str << C->getName();
else
Str << Ctx->mangleName(C->getName());
+ Str << Suffix;
RelocOffsetT Offset = C->getOffset();
if (Offset) {
if (Offset > 0)
@@ -541,14 +544,6 @@ void TargetLowering::emitWithoutPrefix(const ConstantRelocatable *C) const {
}
}
-void TargetLowering::emit(const ConstantRelocatable *C) const {
- if (!BuildDefs::dump())
- return;
- Ostream &Str = Ctx->getStrEmit();
- Str << getConstantPrefix();
- emitWithoutPrefix(C);
-}
-
std::unique_ptr<TargetDataLowering>
TargetDataLowering::createLowering(GlobalContext *Ctx) {
TargetArch Target = Ctx->getFlags().getTargetArch();
@@ -609,9 +604,12 @@ void TargetDataLowering::emitGlobal(const VariableDeclaration &Var,
Str << "\t.type\t" << MangledName << ",%object\n";
const bool UseDataSections = Ctx->getFlags().getDataSections();
+ const bool UseNonsfi = Ctx->getFlags().getUseNonsfi();
const IceString Suffix =
dataSectionSuffix(SectionSuffix, MangledName, UseDataSections);
- if (IsConstant)
+ if (IsConstant && UseNonsfi)
+ Str << "\t.section\t.data.rel.ro" << Suffix << ",\"aw\",%progbits\n";
+ else if (IsConstant)
Str << "\t.section\t.rodata" << Suffix << ",\"a\",%progbits\n";
else if (HasNonzeroInitializer)
Str << "\t.section\t.data" << Suffix << ",\"aw\",%progbits\n";
« no previous file with comments | « src/IceTargetLowering.h ('k') | src/IceTargetLoweringARM32.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698