| Index: src/a64/simulator-a64.cc
|
| diff --git a/src/a64/simulator-a64.cc b/src/a64/simulator-a64.cc
|
| index 9f228add4e8ad917c08812cc160861281582782d..3801bf7514f46dfcadf50bb609d31bd32bcdc535 100644
|
| --- a/src/a64/simulator-a64.cc
|
| +++ b/src/a64/simulator-a64.cc
|
| @@ -616,7 +616,7 @@ int64_t Simulator::AddWithCarry(unsigned reg_size,
|
| int64_t result;
|
| int64_t signed_sum = src1 + src2 + carry_in;
|
|
|
| - uint32_t N, Z, C, V;
|
| + bool N, Z, C, V;
|
|
|
| if (reg_size == kWRegSizeInBits) {
|
| u1 = static_cast<uint64_t>(src1) & kWRegMask;
|
| @@ -831,7 +831,7 @@ void Simulator::PrintSystemRegisters(bool print_all) {
|
| fprintf(stream_, "# %sFLAGS: %sN:%d Z:%d C:%d V:%d%s\n",
|
| clr_flag_name,
|
| clr_flag_value,
|
| - N(), Z(), C(), V(),
|
| + nzcv().N(), nzcv().Z(), nzcv().C(), nzcv().V(),
|
| clr_normal);
|
| }
|
| last_nzcv = nzcv();
|
| @@ -1135,7 +1135,7 @@ void Simulator::VisitAddSubWithCarry(Instruction* instr) {
|
| instr->FlagsUpdate(),
|
| reg(reg_size, instr->Rn()),
|
| op2,
|
| - C());
|
| + nzcv().C());
|
|
|
| set_reg(reg_size, instr->Rd(), new_val);
|
| }
|
| @@ -1931,7 +1931,7 @@ void Simulator::VisitFPIntegerConvert(Instruction* instr) {
|
| unsigned dst = instr->Rd();
|
| unsigned src = instr->Rn();
|
|
|
| - FPRounding round = RMode();
|
| + FPRounding round = fpcr().RMode();
|
|
|
| switch (instr->Mask(FPIntegerConvertMask)) {
|
| case FCVTAS_ws: set_wreg(dst, FPToInt32(sreg(src), FPTieAway)); break;
|
| @@ -2016,7 +2016,7 @@ void Simulator::VisitFPFixedPointConvert(Instruction* instr) {
|
| unsigned src = instr->Rn();
|
| int fbits = 64 - instr->FPScale();
|
|
|
| - FPRounding round = RMode();
|
| + FPRounding round = fpcr().RMode();
|
|
|
| switch (instr->Mask(FPFixedPointConvertMask)) {
|
| // A 32-bit input can be handled in the same way as a 64-bit input, since
|
| @@ -2476,7 +2476,7 @@ double Simulator::FPRoundInt(double value, FPRounding round_mode) {
|
| double Simulator::FPToDouble(float value) {
|
| switch (std::fpclassify(value)) {
|
| case FP_NAN: {
|
| - if (DN()) return kFP64DefaultNaN;
|
| + if (fpcr().DN()) return kFP64DefaultNaN;
|
|
|
| // Convert NaNs as the processor would:
|
| // - The sign is propagated.
|
| @@ -2517,7 +2517,7 @@ float Simulator::FPToFloat(double value, FPRounding round_mode) {
|
|
|
| switch (std::fpclassify(value)) {
|
| case FP_NAN: {
|
| - if (DN()) return kFP32DefaultNaN;
|
| + if (fpcr().DN()) return kFP32DefaultNaN;
|
|
|
| // Convert NaNs as the processor would:
|
| // - The sign is propagated.
|
| @@ -2814,7 +2814,7 @@ T Simulator::FPSub(T op1, T op2) {
|
| template <typename T>
|
| T Simulator::FPProcessNaN(T op) {
|
| ASSERT(std::isnan(op));
|
| - return DN() ? FPDefaultNaN<T>() : ToQuietNaN(op);
|
| + return fpcr().DN() ? FPDefaultNaN<T>() : ToQuietNaN(op);
|
| }
|
|
|
|
|
|
|