2316 void Assembler::orl(Register dst, Register src) { |
2316 void Assembler::orl(Register dst, Register src) { |
2317 (void) prefix_and_encode(dst->encoding(), src->encoding()); |
2317 (void) prefix_and_encode(dst->encoding(), src->encoding()); |
2318 emit_arith(0x0B, 0xC0, dst, src); |
2318 emit_arith(0x0B, 0xC0, dst, src); |
2319 } |
2319 } |
2320 |
2320 |
|
2321 void Assembler::orl(Address dst, Register src) { |
|
2322 InstructionMark im(this); |
|
2323 prefix(dst, src); |
|
2324 emit_int8(0x09); |
|
2325 emit_operand(src, dst); |
|
2326 } |
|
2327 |
2321 void Assembler::packuswb(XMMRegister dst, Address src) { |
2328 void Assembler::packuswb(XMMRegister dst, Address src) { |
2322 NOT_LP64(assert(VM_Version::supports_sse2(), "")); |
2329 NOT_LP64(assert(VM_Version::supports_sse2(), "")); |
2323 assert((UseAVX > 0), "SSE mode requires address alignment 16 bytes"); |
2330 assert((UseAVX > 0), "SSE mode requires address alignment 16 bytes"); |
2324 emit_simd_arith(0x67, dst, src, VEX_SIMD_66); |
2331 emit_simd_arith(0x67, dst, src, VEX_SIMD_66); |
2325 } |
2332 } |
5611 emit_int8((unsigned char)(0xD0 | encode)); |
5618 emit_int8((unsigned char)(0xD0 | encode)); |
5612 emit_int8(imm8); |
5619 emit_int8(imm8); |
5613 } |
5620 } |
5614 } |
5621 } |
5615 |
5622 |
|
5623 void Assembler::rcrq(Register dst, int imm8) { |
|
5624 assert(isShiftCount(imm8 >> 1), "illegal shift count"); |
|
5625 int encode = prefixq_and_encode(dst->encoding()); |
|
5626 if (imm8 == 1) { |
|
5627 emit_int8((unsigned char)0xD1); |
|
5628 emit_int8((unsigned char)(0xD8 | encode)); |
|
5629 } else { |
|
5630 emit_int8((unsigned char)0xC1); |
|
5631 emit_int8((unsigned char)(0xD8 | encode)); |
|
5632 emit_int8(imm8); |
|
5633 } |
|
5634 } |
|
5635 |
5616 void Assembler::rorq(Register dst, int imm8) { |
5636 void Assembler::rorq(Register dst, int imm8) { |
5617 assert(isShiftCount(imm8 >> 1), "illegal shift count"); |
5637 assert(isShiftCount(imm8 >> 1), "illegal shift count"); |
5618 int encode = prefixq_and_encode(dst->encoding()); |
5638 int encode = prefixq_and_encode(dst->encoding()); |
5619 if (imm8 == 1) { |
5639 if (imm8 == 1) { |
5620 emit_int8((unsigned char)0xD1); |
5640 emit_int8((unsigned char)0xD1); |