| Index: src/arm/simulator-arm.cc
|
| ===================================================================
|
| --- src/arm/simulator-arm.cc (revision 6953)
|
| +++ src/arm/simulator-arm.cc (working copy)
|
| @@ -2554,6 +2554,7 @@
|
| double dn_value = get_double_from_d_register(vn);
|
| double dm_value = get_double_from_d_register(vm);
|
| double dd_value = dn_value / dm_value;
|
| + div_zero_vfp_flag_ = (dm_value == 0);
|
| set_d_register_from_double(vd, dd_value);
|
| } else {
|
| UNIMPLEMENTED(); // Not used by V8.
|
| @@ -2788,14 +2789,17 @@
|
|
|
| inv_op_vfp_flag_ = get_inv_op_vfp_flag(mode, val, unsigned_integer);
|
|
|
| + double abs_diff =
|
| + unsigned_integer ? fabs(val - static_cast<uint32_t>(temp))
|
| + : fabs(val - temp);
|
| +
|
| + inexact_vfp_flag_ = (abs_diff != 0);
|
| +
|
| if (inv_op_vfp_flag_) {
|
| temp = VFPConversionSaturate(val, unsigned_integer);
|
| } else {
|
| switch (mode) {
|
| case RN: {
|
| - double abs_diff =
|
| - unsigned_integer ? fabs(val - static_cast<uint32_t>(temp))
|
| - : fabs(val - temp);
|
| int val_sign = (val > 0) ? 1 : -1;
|
| if (abs_diff > 0.5) {
|
| temp += val_sign;
|
|
|