Skip to content
Permalink
Browse files

8235719: C2: Merge AD instructions for ShiftV, AbsV, and NegV nodes

Reviewed-by: vlivanov, sviswanathan, kvn, jrose
  • Loading branch information
Jatin Bhateja
Jatin Bhateja committed Dec 12, 2019
1 parent 9251e91 commit a05395c6af28a8d93c5aa45e9501b5490dffa02a
Showing with 175 additions and 557 deletions.
  1. +8 −2 src/hotspot/cpu/x86/macroAssembler_x86.cpp
  2. +2 −2 src/hotspot/cpu/x86/macroAssembler_x86.hpp
  3. +165 −553 src/hotspot/cpu/x86/x86.ad
@@ -4059,7 +4059,10 @@ void MacroAssembler::vpxor(XMMRegister dst, XMMRegister nds, AddressLiteral src,
#ifdef COMPILER2
// Generic instructions support for use in .ad files C2 code generation

void MacroAssembler::vabsnegd(int opcode, XMMRegister dst, Register scr) {
void MacroAssembler::vabsnegd(int opcode, XMMRegister dst, XMMRegister src, Register scr) {
if (dst != src) {
movdqu(dst, src);
}
if (opcode == Op_AbsVD) {
andpd(dst, ExternalAddress(StubRoutines::x86::vector_double_sign_mask()), scr);
} else {
@@ -4077,7 +4080,10 @@ void MacroAssembler::vabsnegd(int opcode, XMMRegister dst, XMMRegister src, int
}
}

void MacroAssembler::vabsnegf(int opcode, XMMRegister dst, Register scr) {
void MacroAssembler::vabsnegf(int opcode, XMMRegister dst, XMMRegister src, Register scr) {
if (dst != src) {
movdqu(dst, src);
}
if (opcode == Op_AbsVF) {
andps(dst, ExternalAddress(StubRoutines::x86::vector_float_sign_mask()), scr);
} else {
@@ -1638,9 +1638,9 @@ class MacroAssembler: public Assembler {

#ifdef COMPILER2
// Generic instructions support for use in .ad files C2 code generation
void vabsnegd(int opcode, XMMRegister dst, Register scr);
void vabsnegd(int opcode, XMMRegister dst, XMMRegister src, Register scr);
void vabsnegd(int opcode, XMMRegister dst, XMMRegister src, int vector_len, Register scr);
void vabsnegf(int opcode, XMMRegister dst, Register scr);
void vabsnegf(int opcode, XMMRegister dst, XMMRegister src, Register scr);
void vabsnegf(int opcode, XMMRegister dst, XMMRegister src, int vector_len, Register scr);
void vextendbw(bool sign, XMMRegister dst, XMMRegister src, int vector_len);
void vextendbw(bool sign, XMMRegister dst, XMMRegister src);

0 comments on commit a05395c

Please sign in to comment.
You can’t perform that action at this time.