src/cpu/x86/vm/assembler_x86.cpp

changeset 6433
bf20bec37f24
parent 6378
8a8ff6b577ed
child 6435
eb6b3ac64f0e
equal deleted inserted replaced
6427:a48e16541e6b 6433:bf20bec37f24
1110 emit_int8((unsigned char)0xBC); 1110 emit_int8((unsigned char)0xBC);
1111 emit_int8((unsigned char)(0xC0 | encode)); 1111 emit_int8((unsigned char)(0xC0 | encode));
1112 } 1112 }
1113 1113
1114 void Assembler::bsrl(Register dst, Register src) { 1114 void Assembler::bsrl(Register dst, Register src) {
1115 assert(!VM_Version::supports_lzcnt(), "encoding is treated as LZCNT");
1116 int encode = prefix_and_encode(dst->encoding(), src->encoding()); 1115 int encode = prefix_and_encode(dst->encoding(), src->encoding());
1117 emit_int8(0x0F); 1116 emit_int8(0x0F);
1118 emit_int8((unsigned char)0xBD); 1117 emit_int8((unsigned char)0xBD);
1119 emit_int8((unsigned char)(0xC0 | encode)); 1118 emit_int8((unsigned char)(0xC0 | encode));
1120 } 1119 }
4936 emit_int8((unsigned char)0xBC); 4935 emit_int8((unsigned char)0xBC);
4937 emit_int8((unsigned char)(0xC0 | encode)); 4936 emit_int8((unsigned char)(0xC0 | encode));
4938 } 4937 }
4939 4938
4940 void Assembler::bsrq(Register dst, Register src) { 4939 void Assembler::bsrq(Register dst, Register src) {
4941 assert(!VM_Version::supports_lzcnt(), "encoding is treated as LZCNT");
4942 int encode = prefixq_and_encode(dst->encoding(), src->encoding()); 4940 int encode = prefixq_and_encode(dst->encoding(), src->encoding());
4943 emit_int8(0x0F); 4941 emit_int8(0x0F);
4944 emit_int8((unsigned char)0xBD); 4942 emit_int8((unsigned char)0xBD);
4945 emit_int8((unsigned char)(0xC0 | encode)); 4943 emit_int8((unsigned char)(0xC0 | encode));
4946 } 4944 }

mercurial