comparison src/cpu/x86/vm/assembler_x86.cpp @ 17784:bf20bec37f24

8038222: Assembler::bsrl fails on assert when -UseCountLeadingZerosInstruction is used on CPU with LZCNT support Summary: Remove the overly strict assert Reviewed-by: kvn, twisti
author iveresov
date Mon, 24 Mar 2014 23:13:46 -0700
parents 8a8ff6b577ed
children eb6b3ac64f0e
comparison
equal deleted inserted replaced
17778:a48e16541e6b 17784: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 }