OpenJDK / amber / amber
changeset 50652:b99e90f885bf
8202993: Add support for x86 testptr/testq with register and address
Reviewed-by: kvn, neliasso
author | pliden |
---|---|
date | Mon, 14 May 2018 15:43:00 +0200 |
parents | 454fa295105c |
children | 4ea7917929b9 |
files | src/hotspot/cpu/x86/assembler_x86.cpp src/hotspot/cpu/x86/assembler_x86.hpp src/hotspot/cpu/x86/macroAssembler_x86.hpp |
diffstat | 3 files changed, 9 insertions(+), 0 deletions(-) [+] |
line wrap: on
line diff
--- a/src/hotspot/cpu/x86/assembler_x86.cpp Mon May 14 15:42:59 2018 +0200 +++ b/src/hotspot/cpu/x86/assembler_x86.cpp Mon May 14 15:43:00 2018 +0200 @@ -8981,6 +8981,13 @@ emit_arith(0x85, 0xC0, dst, src); } +void Assembler::testq(Register dst, Address src) { + InstructionMark im(this); + prefixq(src, dst); + emit_int8((unsigned char)0x85); + emit_operand(dst, src); +} + void Assembler::xaddq(Address dst, Register src) { InstructionMark im(this); prefixq(dst, src);
--- a/src/hotspot/cpu/x86/assembler_x86.hpp Mon May 14 15:42:59 2018 +0200 +++ b/src/hotspot/cpu/x86/assembler_x86.hpp Mon May 14 15:43:00 2018 +0200 @@ -1813,6 +1813,7 @@ void testq(Register dst, int32_t imm32); void testq(Register dst, Register src); + void testq(Register dst, Address src); // BMI - count trailing zeros void tzcntl(Register dst, Register src);
--- a/src/hotspot/cpu/x86/macroAssembler_x86.hpp Mon May 14 15:42:59 2018 +0200 +++ b/src/hotspot/cpu/x86/macroAssembler_x86.hpp Mon May 14 15:43:00 2018 +0200 @@ -836,6 +836,7 @@ void orptr(Address dst, int32_t imm32) { LP64_ONLY(orq(dst, imm32)) NOT_LP64(orl(dst, imm32)); } void testptr(Register src, int32_t imm32) { LP64_ONLY(testq(src, imm32)) NOT_LP64(testl(src, imm32)); } + void testptr(Register src1, Address src2) { LP64_ONLY(testq(src1, src2)) NOT_LP64(testl(src1, src2)); } void testptr(Register src1, Register src2); void xorptr(Register dst, Register src) { LP64_ONLY(xorq(dst, src)) NOT_LP64(xorl(dst, src)); }