11/*
2- * Copyright (c) 1997, 2025 , Oracle and/or its affiliates. All rights reserved.
2+ * Copyright (c) 1997, 2026 , Oracle and/or its affiliates. All rights reserved.
33 * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
44 *
55 * This code is free software; you can redistribute it and/or modify it
@@ -7320,6 +7320,25 @@ void Assembler::ucomisd(XMMRegister dst, XMMRegister src) {
73207320 emit_int16(0x2E, (0xC0 | encode));
73217321}
73227322
7323+ void Assembler::vucomxsd(XMMRegister dst, Address src) {
7324+ assert(VM_Version::supports_avx10_2(), "");
7325+ InstructionMark im(this);
7326+ InstructionAttr attributes(AVX_128bit, /* rex_w */ true, /* legacy_mode */ false, /* no_mask_reg */ true, /* uses_vl */ false);
7327+ attributes.set_address_attributes(/* tuple_type */ EVEX_T1S, /* input_size_in_bits */ EVEX_64bit);
7328+ attributes.set_is_evex_instruction();
7329+ vex_prefix(src, 0, dst->encoding(), VEX_SIMD_F2, VEX_OPCODE_0F, &attributes);
7330+ emit_int8(0x2E);
7331+ emit_operand(dst, src, 0);
7332+ }
7333+
7334+ void Assembler::vucomxsd(XMMRegister dst, XMMRegister src) {
7335+ assert(VM_Version::supports_avx10_2(), "");
7336+ InstructionAttr attributes(AVX_128bit, /* rex_w */ true, /* legacy_mode */ false, /* no_mask_reg */ true, /* uses_vl */ false);
7337+ attributes.set_is_evex_instruction();
7338+ int encode = vex_prefix_and_encode(dst->encoding(), 0, src->encoding(), VEX_SIMD_F2, VEX_OPCODE_0F, &attributes);
7339+ emit_int16(0x2E, (0xC0 | encode));
7340+ }
7341+
73237342void Assembler::ucomiss(XMMRegister dst, Address src) {
73247343 InstructionMark im(this);
73257344 InstructionAttr attributes(AVX_128bit, /* rex_w */ false, /* legacy_mode */ false, /* no_mask_reg */ true, /* uses_vl */ false);
@@ -7335,6 +7354,25 @@ void Assembler::ucomiss(XMMRegister dst, XMMRegister src) {
73357354 emit_int16(0x2E, (0xC0 | encode));
73367355}
73377356
7357+ void Assembler::vucomxss(XMMRegister dst, Address src) {
7358+ assert(VM_Version::supports_avx10_2(), "");
7359+ InstructionMark im(this);
7360+ InstructionAttr attributes(AVX_128bit, /* rex_w */ false, /* legacy_mode */ false, /* no_mask_reg */ true, /* uses_vl */ false);
7361+ attributes.set_address_attributes(/* tuple_type */ EVEX_T1S, /* input_size_in_bits */ EVEX_32bit);
7362+ attributes.set_is_evex_instruction();
7363+ vex_prefix(src, 0, dst->encoding(), VEX_SIMD_F3, VEX_OPCODE_0F, &attributes);
7364+ emit_int8(0x2E);
7365+ emit_operand(dst, src, 0);
7366+ }
7367+
7368+ void Assembler::vucomxss(XMMRegister dst, XMMRegister src) {
7369+ assert(VM_Version::supports_avx10_2(), "");
7370+ InstructionAttr attributes(AVX_128bit, /* rex_w */ false, /* legacy_mode */ false, /* no_mask_reg */ true, /* uses_vl */ false);
7371+ attributes.set_is_evex_instruction();
7372+ int encode = vex_prefix_and_encode(dst->encoding(), 0, src->encoding(), VEX_SIMD_F3, VEX_OPCODE_0F, &attributes);
7373+ emit_int16(0x2E, (0xC0 | encode));
7374+ }
7375+
73387376void Assembler::xabort(int8_t imm8) {
73397377 emit_int24((unsigned char)0xC6, (unsigned char)0xF8, (imm8 & 0xFF));
73407378}
0 commit comments