Skip to content

Commit b329187

Browse files
kddnewtonmeta-codesync[bot]
authored andcommitted
Use a 64-bit data type for moving doubles to memory
Summary: When we're moving a double to memory because we have run out of VecD registers, we may need to use a temporary register to move the immediate into. In that case, we need to use a 64-bit register and not a double register, because we are treating the double as a 64-bit unsigned integer. In this case, we will explicitly set the temporary data type. Reviewed By: DinoV Differential Revision: D93621746 fbshipit-source-id: 13d5ade9883d9afdd1434b96b95bf1ca0884f81c
1 parent 7755a57 commit b329187

1 file changed

Lines changed: 4 additions & 4 deletions

File tree

cinderx/Jit/lir/postalloc.cpp

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -51,13 +51,13 @@ void insertMoveToMemoryLocation(
5151
block->allocateInstrBefore(
5252
instr_iter,
5353
Instruction::kMove,
54-
OutPhyReg{temp, data_type},
55-
Imm{constant, data_type});
54+
OutPhyReg{temp, DataType::k64bit},
55+
Imm{constant, DataType::k64bit});
5656
block->allocateInstrBefore(
5757
instr_iter,
5858
Instruction::kMove,
59-
OutInd{base, index, data_type},
60-
PhyReg{temp, data_type});
59+
OutInd{base, index, DataType::k64bit},
60+
PhyReg{temp, DataType::k64bit});
6161
} else {
6262
block->allocateInstrBefore(
6363
instr_iter,

0 commit comments

Comments
 (0)