RVM
  1. RVM
  2. RVM-713

Enable x87 exceptions to catch badly behaving code

    Details

    • Number of attachments :
      0

      Description

      We don't have x87 exceptions enabled by default, this means that operations that use the x87 stack may unexpectedly get NaN values from the stack if it has overflowed. The overflows may occur from bugs elsewhere in the RVM or in native code.

      An example of a problem would be, imagine there are values on the x87 stack, we take an exception, during the exception we fail to reset the x87 stack state, after delivering the exception we put something on the x87 stack say for a conversion, as the stack is full the value of NaN is pushed, NaN propagates throughout the code causing unexpected behavior.

      It has been observed that some benchmarks with lots of floating point code intermittently fail, this may be the cause. We should enable the bit in the x87 control world that generates exceptions for SSE code only, as in x87 code the exception could be from a divide by 0 which Java treats as creating a NaN.

        Activity

        Hide
        David Grove added a comment -

        Defer to 3.1.1

        Show
        David Grove added a comment - Defer to 3.1.1
        Hide
        David Grove added a comment -

        bulk defer open issues to 3.1.2

        Show
        David Grove added a comment - bulk defer open issues to 3.1.2
        Hide
        David Grove added a comment -

        Bulk defer to 3.1.3; not essential to address for 3.1.2.

        Show
        David Grove added a comment - Bulk defer to 3.1.3; not essential to address for 3.1.2.
        Hide
        David Grove added a comment -

        bulk defer to 3.1.4

        Show
        David Grove added a comment - bulk defer to 3.1.4

          People

          • Assignee:
            Unassigned
            Reporter:
            Ian Rogers
          • Votes:
            0 Vote for this issue
            Watchers:
            1 Start watching this issue

            Dates

            • Created:
              Updated: