Skip to content

Commit

Permalink
Use common dd instruction on ARM
Browse files Browse the repository at this point in the history
  • Loading branch information
fjeremic committed Jun 15, 2021
1 parent e4fe8b4 commit aba6226
Show file tree
Hide file tree
Showing 5 changed files with 10 additions and 16 deletions.
10 changes: 5 additions & 5 deletions compiler/arm/codegen/FPTreeEvaluator.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -1044,7 +1044,7 @@ TR::Register *OMR::ARM::TreeEvaluator::fconstEvaluator(TR::Node *node, TR::CodeG
//cg->stopUsingRegister(tempReg);

// Place the constant
generateImmInstruction(cg, ARMOp_dd, node, i32);
generateImmInstruction(cg, TR::InstOpCode::dd, node, i32);
//armCG(cg)->findOrCreateFloatConstant(&value, TR::Float, cursor);

if (noFPRA)
Expand Down Expand Up @@ -1107,13 +1107,13 @@ TR::Register *OMR::ARM::TreeEvaluator::dconstEvaluator(TR::Node *node, TR::CodeG
//armCG(cg)->findOrCreateFloatConstant(&value, TR::Double, high, low);
if (cg->comp()->target().cpu.isLittleEndian())
{
generateImmInstruction(cg, ARMOp_dd, node, (int32_t)i64);
generateImmInstruction(cg, ARMOp_dd, node, (int32_t)((i64>>32) & 0xffffffff));
generateImmInstruction(cg, TR::InstOpCode::dd, node, (int32_t)i64);
generateImmInstruction(cg, TR::InstOpCode::dd, node, (int32_t)((i64>>32) & 0xffffffff));
}
else
{
generateImmInstruction(cg, ARMOp_dd, node, (int32_t)((i64>>32) & 0xffffffff));
generateImmInstruction(cg, ARMOp_dd, node, (int32_t)i64);
generateImmInstruction(cg, TR::InstOpCode::dd, node, (int32_t)((i64>>32) & 0xffffffff));
generateImmInstruction(cg, TR::InstOpCode::dd, node, (int32_t)i64);
}

if (noFPRA)
Expand Down
10 changes: 5 additions & 5 deletions compiler/arm/codegen/OMRCodeGenerator.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -302,14 +302,14 @@ TR::Instruction *OMR::ARM::CodeGenerator::generateSwitchToInterpreterPrePrologue
cursor = new (self()->trHeapMemory()) TR::ARMTrg1Src1Instruction(cursor, ARMOp_mov, node, gr4, lr, self());
cursor = self()->getLinkage()->flushArguments(cursor);
cursor = generateImmSymInstruction(self(), ARMOp_bl, node, (uintptr_t)revertToInterpreterSymRef->getMethodAddress(), new (self()->trHeapMemory()) TR::RegisterDependencyConditions((uint8_t)0,0, self()->trMemory()), revertToInterpreterSymRef, NULL, cursor);
cursor = generateImmInstruction(self(), ARMOp_dd, node, (int32_t)ramMethod, TR_RamMethod, cursor);
cursor = generateImmInstruction(self(), TR::InstOpCode::dd, node, (int32_t)ramMethod, TR_RamMethod, cursor);

if (comp->getOption(TR_EnableHCR))
comp->getStaticHCRPICSites()->push_front(cursor);

cursor = generateImmInstruction(self(), ARMOp_dd, node, (int32_t)helperAddr, TR_AbsoluteHelperAddress, helperSymRef, cursor);
cursor = generateImmInstruction(self(), TR::InstOpCode::dd, node, (int32_t)helperAddr, TR_AbsoluteHelperAddress, helperSymRef, cursor);
// Used in FSD to store an instruction
cursor = generateImmInstruction(self(), ARMOp_dd, node, 0, cursor);
cursor = generateImmInstruction(self(), TR::InstOpCode::dd, node, 0, cursor);

return cursor;
}
Expand All @@ -326,10 +326,10 @@ void OMR::ARM::CodeGenerator::beginInstructionSelection()
if (methodSymbol->isJNI())
{
uintptr_t JNIMethodAddress = (uintptr_t) methodSymbol->getResolvedMethod()->startAddressForJNIMethod(comp);
cursor = new (self()->trHeapMemory()) TR::ARMImmInstruction(cursor, ARMOp_dd, startNode, (int32_t)JNIMethodAddress, self());
cursor = new (self()->trHeapMemory()) TR::ARMImmInstruction(cursor, TR::InstOpCode::dd, startNode, (int32_t)JNIMethodAddress, self());
}

_returnTypeInfoInstruction = new (self()->trHeapMemory()) TR::ARMImmInstruction(cursor, ARMOp_dd, startNode, 0, self());
_returnTypeInfoInstruction = new (self()->trHeapMemory()) TR::ARMImmInstruction(cursor, TR::InstOpCode::dd, startNode, 0, self());
new (self()->trHeapMemory()) TR::ARMAdminInstruction(_returnTypeInfoInstruction, ARMOp_proc, startNode, NULL, self());

}
Expand Down
4 changes: 0 additions & 4 deletions compiler/arm/codegen/OMRInstOpCode.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -103,7 +103,6 @@ const OMR::ARM::InstOpCode::TR_OpCodeBinaryEntry OMR::ARM::InstOpCode::binaryEnc
0x00000000, // ret
0x00000000, // wrtbar
0x00000000, // proc
0x00000000, // dd
0x0E070FBA, // dmb_v6
0xF57FF05F, // dmb
0xF57FF05E, // dmb_st
Expand Down Expand Up @@ -407,9 +406,6 @@ ARMOpProp_Arch4,
// proc
0,

// dd
0,

// dmb_v6
0,

Expand Down
1 change: 0 additions & 1 deletion compiler/arm/codegen/OMRInstOpCode.enum
Original file line number Diff line number Diff line change
Expand Up @@ -93,7 +93,6 @@
ARMOp_ret, // Return
ARMOp_wrtbar, // Write barrier directive
ARMOp_proc, // Entry to the method
ARMOp_dd, // define word
ARMOp_dmb_v6, // Data memory barrier
ARMOp_dmb, // Data memory barrier on ARMv7A
ARMOp_dmb_st, // Data write memory barrier on ARMv7A
Expand Down
1 change: 0 additions & 1 deletion compiler/arm/codegen/OMRInstOpCode.enum.temp.defines
Original file line number Diff line number Diff line change
Expand Up @@ -91,7 +91,6 @@
#define ARMOp_ret OMR::InstOpCode::ARMOp_ret
#define ARMOp_wrtbar OMR::InstOpCode::ARMOp_wrtbar
#define ARMOp_proc OMR::InstOpCode::ARMOp_proc
#define ARMOp_dd OMR::InstOpCode::ARMOp_dd
#define ARMOp_dmb_v6 OMR::InstOpCode::ARMOp_dmb_v6
#define ARMOp_dmb OMR::InstOpCode::ARMOp_dmb
#define ARMOp_dmb_st OMR::InstOpCode::ARMOp_dmb_st
Expand Down

0 comments on commit aba6226

Please sign in to comment.