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

Unified Diff: lib/Target/ARM/MCTargetDesc/ARMMCNaCl.cpp

Issue 1151093004: Changes from 3.7 merge to files not in upstream (Closed) Base URL: https://chromium.googlesource.com/native_client/pnacl-llvm.git@master
Patch Set: Created 5 years, 7 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
Index: lib/Target/ARM/MCTargetDesc/ARMMCNaCl.cpp
diff --git a/lib/Target/ARM/MCTargetDesc/ARMMCNaCl.cpp b/lib/Target/ARM/MCTargetDesc/ARMMCNaCl.cpp
index 6af91dea0416cf5027c9bca40900bd28787002cc..003efd39218b69b9d3dc91e8b59b524f17df211a 100644
--- a/lib/Target/ARM/MCTargetDesc/ARMMCNaCl.cpp
+++ b/lib/Target/ARM/MCTargetDesc/ARMMCNaCl.cpp
@@ -10,6 +10,7 @@
//===----------------------------------------------------------------------===//
#define DEBUG_TYPE "arm-mc-nacl"
+#include "ARMAddressingModes.h"
#include "MCTargetDesc/ARMBaseInfo.h"
#include "MCTargetDesc/ARMMCExpr.h"
#include "MCTargetDesc/ARMMCNaCl.h"
@@ -27,10 +28,12 @@ static void EmitBICMask(const MCSubtargetInfo &STI, MCStreamer &Out,
unsigned Addr, int64_t Pred, unsigned Mask) {
// bic\Pred \Addr, \Addr, #Mask
MCInst BICInst;
+ const int32_t EncodedMask = ARM_AM::getSOImmVal(Mask);
+ assert(EncodedMask != -1);
BICInst.setOpcode(ARM::BICri);
BICInst.addOperand(MCOperand::CreateReg(Addr)); // rD
BICInst.addOperand(MCOperand::CreateReg(Addr)); // rS
- BICInst.addOperand(MCOperand::CreateImm(Mask)); // imm
+ BICInst.addOperand(MCOperand::CreateImm(EncodedMask)); // imm
BICInst.addOperand(MCOperand::CreateImm(Pred)); // predicate
BICInst.addOperand(MCOperand::CreateReg(ARM::CPSR)); // CPSR
BICInst.addOperand(MCOperand::CreateReg(0)); // flag out
@@ -39,7 +42,8 @@ static void EmitBICMask(const MCSubtargetInfo &STI, MCStreamer &Out,
static void EmitTST(const MCSubtargetInfo &STI, MCStreamer &Out, unsigned Reg) {
// tst \reg, #\MASK typically 0xc0000000
- const unsigned Mask = 0xC0000000;
+ const int32_t Mask = ARM_AM::getSOImmVal(0xC0000000U);
+ assert(Mask != -1);
MCInst TSTInst;
TSTInst.setOpcode(ARM::TSTri);
TSTInst.addOperand(MCOperand::CreateReg(Reg)); // rS

Powered by Google App Engine
This is Rietveld 408576698