| Index: src/ppc/simulator-ppc.h
|
| diff --git a/src/ppc/simulator-ppc.h b/src/ppc/simulator-ppc.h
|
| index 98fe9a53512f11f7489c58d8c3c8f10002304e12..cf338ccfdcb8e2a252162cc6ef4874894f87c0e9 100644
|
| --- a/src/ppc/simulator-ppc.h
|
| +++ b/src/ppc/simulator-ppc.h
|
| @@ -180,9 +180,20 @@ class Simulator {
|
| double get_double_from_register_pair(int reg);
|
| void set_d_register_from_double(int dreg, const double dbl) {
|
| DCHECK(dreg >= 0 && dreg < kNumFPRs);
|
| - fp_registers_[dreg] = dbl;
|
| + *bit_cast<double*>(&fp_registers_[dreg]) = dbl;
|
| + }
|
| + double get_double_from_d_register(int dreg) {
|
| + DCHECK(dreg >= 0 && dreg < kNumFPRs);
|
| + return *bit_cast<double*>(&fp_registers_[dreg]);
|
| + }
|
| + void set_d_register(int dreg, int64_t value) {
|
| + DCHECK(dreg >= 0 && dreg < kNumFPRs);
|
| + fp_registers_[dreg] = value;
|
| + }
|
| + int64_t get_d_register(int dreg) {
|
| + DCHECK(dreg >= 0 && dreg < kNumFPRs);
|
| + return fp_registers_[dreg];
|
| }
|
| - double get_double_from_d_register(int dreg) { return fp_registers_[dreg]; }
|
|
|
| // Special case of set_register and get_register to access the raw PC value.
|
| void set_pc(intptr_t value);
|
| @@ -293,7 +304,8 @@ class Simulator {
|
| void ExecuteExt1(Instruction* instr);
|
| bool ExecuteExt2_10bit(Instruction* instr);
|
| bool ExecuteExt2_9bit_part1(Instruction* instr);
|
| - void ExecuteExt2_9bit_part2(Instruction* instr);
|
| + bool ExecuteExt2_9bit_part2(Instruction* instr);
|
| + void ExecuteExt2_5bit(Instruction* instr);
|
| void ExecuteExt2(Instruction* instr);
|
| void ExecuteExt4(Instruction* instr);
|
| #if V8_TARGET_ARCH_PPC64
|
| @@ -333,7 +345,7 @@ class Simulator {
|
| intptr_t special_reg_ctr_;
|
| int32_t special_reg_xer_;
|
|
|
| - double fp_registers_[kNumFPRs];
|
| + int64_t fp_registers_[kNumFPRs];
|
|
|
| // Simulator support.
|
| char* stack_;
|
|
|