RFR 8183929: [MVT] Bad intrinsic for guard with test causes wrong behavior
maurizio.cimadamore at oracle.com
Thu Jul 6 11:53:43 UTC 2017
This is a fix for the bug discovered by Roland. There's a bad
conditional jump being generated by the selectAlternative intrinsic -
the patch I pushed yesterday did a 'ifne fallback' while
InvokeBytecodeGenerator does a 'ifeq fallback'. This mistake was
probably caused by a bug in the IBG comment next to the intrinsic ASM line.
I've also added the Point library I'm using for testing these days.
There's a very basic Point class with fields 'x' and 'y' with a 'norm'
method. I have tests for:
* creating a factory of Point
* compute the norm of a Point
* compute total norm of an array of Points
For each of these checks, the test has both the bytecode version (with
MethodHandleBuilder) and the pure MH version (through combinators). The
test checks that both results conform to what is expected (e.g. some
operation on the boxed class).
I've added a final test for the guardWithTest example which was indeed
failing before this fix.
More information about the valhalla-dev