Subzero. ARM32. Enables obj output.
This CL implements two little pieces of the lowering that are needed
for --filetype=obj support in arm. With this change, spec2k builds and
verifies with --filetype=obj
BUG= https://bugs.chromium.org/p/nativeclient/issues/detail?id=4076
R=kschimpf@google.com, stichnot@chromium.org
Review URL: https://codereview.chromium.org/1651603003 .
diff --git a/src/IceTargetLoweringARM32.cpp b/src/IceTargetLoweringARM32.cpp
index 72ba954..f284f4d 100644
--- a/src/IceTargetLoweringARM32.cpp
+++ b/src/IceTargetLoweringARM32.cpp
@@ -6437,9 +6437,11 @@
if (Ctx->getFlags().getDisableTranslation())
return;
switch (Ctx->getFlags().getOutFileType()) {
- case FT_Elf:
- UnimplementedError(Ctx->getFlags());
- break;
+ case FT_Elf: {
+ ELFObjectWriter *Writer = Ctx->getObjectWriter();
+ Writer->writeConstantPool<ConstantFloat>(IceType_f32);
+ Writer->writeConstantPool<ConstantDouble>(IceType_f64);
+ } break;
case FT_Asm:
case FT_Iasm: {
OstreamLocker _(Ctx);
@@ -6455,7 +6457,9 @@
return;
switch (Ctx->getFlags().getOutFileType()) {
case FT_Elf:
- UnimplementedError(Ctx->getFlags());
+ if (!Ctx->getJumpTables().empty()) {
+ llvm::report_fatal_error("ARM32 does not support jump tables yet.");
+ }
break;
case FT_Asm:
// Already emitted from Cfg