2171 void Assembler::orl(Register dst, Register src) { |
2171 void Assembler::orl(Register dst, Register src) { |
2172 (void) prefix_and_encode(dst->encoding(), src->encoding()); |
2172 (void) prefix_and_encode(dst->encoding(), src->encoding()); |
2173 emit_arith(0x0B, 0xC0, dst, src); |
2173 emit_arith(0x0B, 0xC0, dst, src); |
2174 } |
2174 } |
2175 |
2175 |
|
2176 void Assembler::pcmpestri(XMMRegister dst, Address src, int imm8) { |
|
2177 assert(VM_Version::supports_sse4_2(), ""); |
|
2178 |
|
2179 InstructionMark im(this); |
|
2180 emit_byte(0x66); |
|
2181 prefix(src, dst); |
|
2182 emit_byte(0x0F); |
|
2183 emit_byte(0x3A); |
|
2184 emit_byte(0x61); |
|
2185 emit_operand(dst, src); |
|
2186 emit_byte(imm8); |
|
2187 } |
|
2188 |
|
2189 void Assembler::pcmpestri(XMMRegister dst, XMMRegister src, int imm8) { |
|
2190 assert(VM_Version::supports_sse4_2(), ""); |
|
2191 |
|
2192 emit_byte(0x66); |
|
2193 int encode = prefixq_and_encode(dst->encoding(), src->encoding()); |
|
2194 emit_byte(0x0F); |
|
2195 emit_byte(0x3A); |
|
2196 emit_byte(0x61); |
|
2197 emit_byte(0xC0 | encode); |
|
2198 emit_byte(imm8); |
|
2199 } |
|
2200 |
2176 // generic |
2201 // generic |
2177 void Assembler::pop(Register dst) { |
2202 void Assembler::pop(Register dst) { |
2178 int encode = prefix_and_encode(dst->encoding()); |
2203 int encode = prefix_and_encode(dst->encoding()); |
2179 emit_byte(0x58 | encode); |
2204 emit_byte(0x58 | encode); |
2180 } |
2205 } |
2326 emit_byte(0x66); |
2351 emit_byte(0x66); |
2327 emit_byte(0x0F); |
2352 emit_byte(0x0F); |
2328 emit_byte(0x73); |
2353 emit_byte(0x73); |
2329 emit_byte(0xC0 | encode); |
2354 emit_byte(0xC0 | encode); |
2330 emit_byte(shift); |
2355 emit_byte(shift); |
|
2356 } |
|
2357 |
|
2358 void Assembler::ptest(XMMRegister dst, Address src) { |
|
2359 assert(VM_Version::supports_sse4_1(), ""); |
|
2360 |
|
2361 InstructionMark im(this); |
|
2362 emit_byte(0x66); |
|
2363 prefix(src, dst); |
|
2364 emit_byte(0x0F); |
|
2365 emit_byte(0x38); |
|
2366 emit_byte(0x17); |
|
2367 emit_operand(dst, src); |
|
2368 } |
|
2369 |
|
2370 void Assembler::ptest(XMMRegister dst, XMMRegister src) { |
|
2371 assert(VM_Version::supports_sse4_1(), ""); |
|
2372 |
|
2373 emit_byte(0x66); |
|
2374 int encode = prefixq_and_encode(dst->encoding(), src->encoding()); |
|
2375 emit_byte(0x0F); |
|
2376 emit_byte(0x38); |
|
2377 emit_byte(0x17); |
|
2378 emit_byte(0xC0 | encode); |
2331 } |
2379 } |
2332 |
2380 |
2333 void Assembler::punpcklbw(XMMRegister dst, XMMRegister src) { |
2381 void Assembler::punpcklbw(XMMRegister dst, XMMRegister src) { |
2334 NOT_LP64(assert(VM_Version::supports_sse2(), "")); |
2382 NOT_LP64(assert(VM_Version::supports_sse2(), "")); |
2335 emit_byte(0x66); |
2383 emit_byte(0x66); |