RFR: 8279651: [vectorapi] Implement the missing intrinsics for casting from integrals on x64 [v8]

Quan Anh Mai duke at openjdk.java.net
Sat Jan 22 10:02:33 UTC 2022


On Tue, 18 Jan 2022 15:58:12 GMT, Vladimir Ivanov <vlivanov at openjdk.org> wrote:

>> Another option is to pass vector value in register (use vector calling conventions in the stub, e.g. `xmm0`; take a look at `CallLeafVector` used for SVML stubs). It would require fixed location for the vector argument. You can achieve that with additional temporary operand (`rxmm0 tmp`).
>
> BTW I don't fully understand why you need a special case for x86-32. Considering you rely on x87, I assume your intention is to support pre-SSE2 hardware, but vector casts already require AVX. Why can't you share the implementation with x86-64?

In the end, I decided to just simplify the slow path code since it is just a little longer than preparing for a stub call.
The reason for separate implementations of 32 and 64 bit is that `cvtsi2ss` and `cvtsi2sd` requires 64-bit mode if I'm not mistaken.

-------------

PR: https://git.openjdk.java.net/jdk/pull/7002


More information about the hotspot-compiler-dev mailing list