| Index: src/arm/simulator-arm.cc
|
| diff --git a/src/arm/simulator-arm.cc b/src/arm/simulator-arm.cc
|
| index 88720108f360b3979de8c786c44583afbe7a76bb..839b2be4a52b65a096bfffa4bcb357467a949941 100644
|
| --- a/src/arm/simulator-arm.cc
|
| +++ b/src/arm/simulator-arm.cc
|
| @@ -3360,12 +3360,13 @@ void Simulator::DecodeTypeVFP(Instruction* instr) {
|
| int vn = instr->VFPNRegValue(kDoublePrecision);
|
| int rt = instr->RtValue();
|
| int opc1_opc2 = (instr->Bits(22, 21) << 2) | instr->Bits(6, 5);
|
| + uint64_t data;
|
| + get_d_register(vn, &data);
|
| if ((opc1_opc2 & 0xb) == 0) {
|
| // NeonS32 / NeonU32
|
| - double dn_value = get_double_from_d_register(vn);
|
| - int32_t data[2];
|
| - memcpy(data, &dn_value, 8);
|
| - set_register(rt, data[instr->Bit(21)]);
|
| + int32_t int_data[2];
|
| + memcpy(int_data, &data, sizeof(int_data));
|
| + set_register(rt, int_data[instr->Bit(21)]);
|
| } else {
|
| uint64_t data;
|
| get_d_register(vn, &data);
|
|
|