3333 case 4: 3334 emit_int8(0x66); 3335 case 3: 3336 emit_int8(0x66); 3337 case 2: 3338 emit_int8(0x66); 3339 case 1: 3340 emit_int8((unsigned char)0x90); 3341 break; 3342 default: 3343 assert(i == 0, " "); 3344 } 3345 } 3346 3347 void Assembler::notl(Register dst) { 3348 int encode = prefix_and_encode(dst->encoding()); 3349 emit_int8((unsigned char)0xF7); 3350 emit_int8((unsigned char)(0xD0 | encode)); 3351 } 3352 3353 void Assembler::orl(Address dst, int32_t imm32) { 3354 InstructionMark im(this); 3355 prefix(dst); 3356 emit_arith_operand(0x81, rcx, dst, imm32); 3357 } 3358 3359 void Assembler::orl(Register dst, int32_t imm32) { 3360 prefix(dst); 3361 emit_arith(0x81, 0xC8, dst, imm32); 3362 } 3363 3364 void Assembler::orl(Register dst, Address src) { 3365 InstructionMark im(this); 3366 prefix(src, dst); 3367 emit_int8(0x0B); 3368 emit_operand(dst, src); 3369 } 3370 3371 void Assembler::orl(Register dst, Register src) { 3372 (void) prefix_and_encode(dst->encoding(), src->encoding()); | 3333 case 4: 3334 emit_int8(0x66); 3335 case 3: 3336 emit_int8(0x66); 3337 case 2: 3338 emit_int8(0x66); 3339 case 1: 3340 emit_int8((unsigned char)0x90); 3341 break; 3342 default: 3343 assert(i == 0, " "); 3344 } 3345 } 3346 3347 void Assembler::notl(Register dst) { 3348 int encode = prefix_and_encode(dst->encoding()); 3349 emit_int8((unsigned char)0xF7); 3350 emit_int8((unsigned char)(0xD0 | encode)); 3351 } 3352 3353 void Assembler::btsl(Address dst, Register idx) { 3354 InstructionMark im(this); 3355 3356 prefix(dst, idx); 3357 emit_int8(0x0F); 3358 emit_int8(0xAB); 3359 emit_operand(idx, dst); 3360 } 3361 3362 void Assembler::btrl(Address dst, Register idx) { 3363 InstructionMark im(this); 3364 3365 prefix(dst, idx); 3366 emit_int8(0x0F); 3367 emit_int8(0xB3); 3368 emit_operand(idx, dst); 3369 } 3370 3371 void Assembler::orl(Address dst, int32_t imm32) { 3372 InstructionMark im(this); 3373 prefix(dst); 3374 emit_arith_operand(0x81, rcx, dst, imm32); 3375 } 3376 3377 void Assembler::orl(Register dst, int32_t imm32) { 3378 prefix(dst); 3379 emit_arith(0x81, 0xC8, dst, imm32); 3380 } 3381 3382 void Assembler::orl(Register dst, Address src) { 3383 InstructionMark im(this); 3384 prefix(src, dst); 3385 emit_int8(0x0B); 3386 emit_operand(dst, src); 3387 } 3388 3389 void Assembler::orl(Register dst, Register src) { 3390 (void) prefix_and_encode(dst->encoding(), src->encoding()); |