9246 format %{ "andl $dst, $src\t# int" %} 9247 opcode(0x81, 0x04); /* Opcode 81 /4 */ 9248 ins_encode(OpcSErm(dst, src), Con8or32(src)); 9249 ins_pipe(ialu_reg); 9250 %} 9251 9252 // And Register with Memory 9253 instruct andI_rReg_mem(rRegI dst, memory src, rFlagsReg cr) 9254 %{ 9255 match(Set dst (AndI dst (LoadI src))); 9256 effect(KILL cr); 9257 9258 ins_cost(125); 9259 format %{ "andl $dst, $src\t# int" %} 9260 opcode(0x23); 9261 ins_encode(REX_reg_mem(dst, src), OpcP, reg_mem(dst, src)); 9262 ins_pipe(ialu_reg_mem); 9263 %} 9264 9265 // And Memory with Register 9266 instruct andI_mem_rReg(memory dst, rRegI src, rFlagsReg cr) 9267 %{ 9268 match(Set dst (StoreI dst (AndI (LoadI dst) src))); 9269 effect(KILL cr); 9270 9271 ins_cost(150); 9272 format %{ "andl $dst, $src\t# int" %} 9273 opcode(0x21); /* Opcode 21 /r */ 9274 ins_encode(REX_reg_mem(src, dst), OpcP, reg_mem(src, dst)); 9275 ins_pipe(ialu_mem_reg); 9276 %} 9277 9278 // And Memory with Immediate 9279 instruct andI_mem_imm(memory dst, immI src, rFlagsReg cr) 9280 %{ 9281 match(Set dst (StoreI dst (AndI (LoadI dst) src))); 9282 effect(KILL cr); 9283 9284 ins_cost(125); 9285 format %{ "andl $dst, $src\t# int" %} 9427 format %{ "orl $dst, $src\t# int" %} 9428 opcode(0x81, 0x01); /* Opcode 81 /1 id */ 9429 ins_encode(OpcSErm(dst, src), Con8or32(src)); 9430 ins_pipe(ialu_reg); 9431 %} 9432 9433 // Or Register with Memory 9434 instruct orI_rReg_mem(rRegI dst, memory src, rFlagsReg cr) 9435 %{ 9436 match(Set dst (OrI dst (LoadI src))); 9437 effect(KILL cr); 9438 9439 ins_cost(125); 9440 format %{ "orl $dst, $src\t# int" %} 9441 opcode(0x0B); 9442 ins_encode(REX_reg_mem(dst, src), OpcP, reg_mem(dst, src)); 9443 ins_pipe(ialu_reg_mem); 9444 %} 9445 9446 // Or Memory with Register 9447 instruct orI_mem_rReg(memory dst, rRegI src, rFlagsReg cr) 9448 %{ 9449 match(Set dst (StoreI dst (OrI (LoadI dst) src))); 9450 effect(KILL cr); 9451 9452 ins_cost(150); 9453 format %{ "orl $dst, $src\t# int" %} 9454 opcode(0x09); /* Opcode 09 /r */ 9455 ins_encode(REX_reg_mem(src, dst), OpcP, reg_mem(src, dst)); 9456 ins_pipe(ialu_mem_reg); 9457 %} 9458 9459 // Or Memory with Immediate 9460 instruct orI_mem_imm(memory dst, immI src, rFlagsReg cr) 9461 %{ 9462 match(Set dst (StoreI dst (OrI (LoadI dst) src))); 9463 effect(KILL cr); 9464 9465 ins_cost(125); 9466 format %{ "orl $dst, $src\t# int" %} 9503 format %{ "xorl $dst, $src\t# int" %} 9504 opcode(0x81, 0x06); /* Opcode 81 /6 id */ 9505 ins_encode(OpcSErm(dst, src), Con8or32(src)); 9506 ins_pipe(ialu_reg); 9507 %} 9508 9509 // Xor Register with Memory 9510 instruct xorI_rReg_mem(rRegI dst, memory src, rFlagsReg cr) 9511 %{ 9512 match(Set dst (XorI dst (LoadI src))); 9513 effect(KILL cr); 9514 9515 ins_cost(125); 9516 format %{ "xorl $dst, $src\t# int" %} 9517 opcode(0x33); 9518 ins_encode(REX_reg_mem(dst, src), OpcP, reg_mem(dst, src)); 9519 ins_pipe(ialu_reg_mem); 9520 %} 9521 9522 // Xor Memory with Register 9523 instruct xorI_mem_rReg(memory dst, rRegI src, rFlagsReg cr) 9524 %{ 9525 match(Set dst (StoreI dst (XorI (LoadI dst) src))); 9526 effect(KILL cr); 9527 9528 ins_cost(150); 9529 format %{ "xorl $dst, $src\t# int" %} 9530 opcode(0x31); /* Opcode 31 /r */ 9531 ins_encode(REX_reg_mem(src, dst), OpcP, reg_mem(src, dst)); 9532 ins_pipe(ialu_mem_reg); 9533 %} 9534 9535 // Xor Memory with Immediate 9536 instruct xorI_mem_imm(memory dst, immI src, rFlagsReg cr) 9537 %{ 9538 match(Set dst (StoreI dst (XorI (LoadI dst) src))); 9539 effect(KILL cr); 9540 9541 ins_cost(125); 9542 format %{ "xorl $dst, $src\t# int" %} | 9246 format %{ "andl $dst, $src\t# int" %} 9247 opcode(0x81, 0x04); /* Opcode 81 /4 */ 9248 ins_encode(OpcSErm(dst, src), Con8or32(src)); 9249 ins_pipe(ialu_reg); 9250 %} 9251 9252 // And Register with Memory 9253 instruct andI_rReg_mem(rRegI dst, memory src, rFlagsReg cr) 9254 %{ 9255 match(Set dst (AndI dst (LoadI src))); 9256 effect(KILL cr); 9257 9258 ins_cost(125); 9259 format %{ "andl $dst, $src\t# int" %} 9260 opcode(0x23); 9261 ins_encode(REX_reg_mem(dst, src), OpcP, reg_mem(dst, src)); 9262 ins_pipe(ialu_reg_mem); 9263 %} 9264 9265 // And Memory with Register 9266 instruct andB_mem_rReg(memory dst, rRegI src, rFlagsReg cr) 9267 %{ 9268 match(Set dst (StoreB dst (AndI (LoadB dst) src))); 9269 effect(KILL cr); 9270 9271 ins_cost(150); 9272 format %{ "andb $dst, $src\t# byte" %} 9273 opcode(0x20); 9274 ins_encode(REX_breg_mem(src, dst), OpcP, reg_mem(src, dst)); 9275 ins_pipe(ialu_mem_reg); 9276 %} 9277 9278 instruct andI_mem_rReg(memory dst, rRegI src, rFlagsReg cr) 9279 %{ 9280 match(Set dst (StoreI dst (AndI (LoadI dst) src))); 9281 effect(KILL cr); 9282 9283 ins_cost(150); 9284 format %{ "andl $dst, $src\t# int" %} 9285 opcode(0x21); /* Opcode 21 /r */ 9286 ins_encode(REX_reg_mem(src, dst), OpcP, reg_mem(src, dst)); 9287 ins_pipe(ialu_mem_reg); 9288 %} 9289 9290 // And Memory with Immediate 9291 instruct andI_mem_imm(memory dst, immI src, rFlagsReg cr) 9292 %{ 9293 match(Set dst (StoreI dst (AndI (LoadI dst) src))); 9294 effect(KILL cr); 9295 9296 ins_cost(125); 9297 format %{ "andl $dst, $src\t# int" %} 9439 format %{ "orl $dst, $src\t# int" %} 9440 opcode(0x81, 0x01); /* Opcode 81 /1 id */ 9441 ins_encode(OpcSErm(dst, src), Con8or32(src)); 9442 ins_pipe(ialu_reg); 9443 %} 9444 9445 // Or Register with Memory 9446 instruct orI_rReg_mem(rRegI dst, memory src, rFlagsReg cr) 9447 %{ 9448 match(Set dst (OrI dst (LoadI src))); 9449 effect(KILL cr); 9450 9451 ins_cost(125); 9452 format %{ "orl $dst, $src\t# int" %} 9453 opcode(0x0B); 9454 ins_encode(REX_reg_mem(dst, src), OpcP, reg_mem(dst, src)); 9455 ins_pipe(ialu_reg_mem); 9456 %} 9457 9458 // Or Memory with Register 9459 instruct orB_mem_rReg(memory dst, rRegI src, rFlagsReg cr) 9460 %{ 9461 match(Set dst (StoreB dst (OrI (LoadB dst) src))); 9462 effect(KILL cr); 9463 9464 ins_cost(150); 9465 format %{ "orb $dst, $src\t# byte" %} 9466 opcode(0x08); 9467 ins_encode(REX_breg_mem(src, dst), OpcP, reg_mem(src, dst)); 9468 ins_pipe(ialu_mem_reg); 9469 %} 9470 9471 instruct orI_mem_rReg(memory dst, rRegI src, rFlagsReg cr) 9472 %{ 9473 match(Set dst (StoreI dst (OrI (LoadI dst) src))); 9474 effect(KILL cr); 9475 9476 ins_cost(150); 9477 format %{ "orl $dst, $src\t# int" %} 9478 opcode(0x09); /* Opcode 09 /r */ 9479 ins_encode(REX_reg_mem(src, dst), OpcP, reg_mem(src, dst)); 9480 ins_pipe(ialu_mem_reg); 9481 %} 9482 9483 // Or Memory with Immediate 9484 instruct orI_mem_imm(memory dst, immI src, rFlagsReg cr) 9485 %{ 9486 match(Set dst (StoreI dst (OrI (LoadI dst) src))); 9487 effect(KILL cr); 9488 9489 ins_cost(125); 9490 format %{ "orl $dst, $src\t# int" %} 9527 format %{ "xorl $dst, $src\t# int" %} 9528 opcode(0x81, 0x06); /* Opcode 81 /6 id */ 9529 ins_encode(OpcSErm(dst, src), Con8or32(src)); 9530 ins_pipe(ialu_reg); 9531 %} 9532 9533 // Xor Register with Memory 9534 instruct xorI_rReg_mem(rRegI dst, memory src, rFlagsReg cr) 9535 %{ 9536 match(Set dst (XorI dst (LoadI src))); 9537 effect(KILL cr); 9538 9539 ins_cost(125); 9540 format %{ "xorl $dst, $src\t# int" %} 9541 opcode(0x33); 9542 ins_encode(REX_reg_mem(dst, src), OpcP, reg_mem(dst, src)); 9543 ins_pipe(ialu_reg_mem); 9544 %} 9545 9546 // Xor Memory with Register 9547 instruct xorB_mem_rReg(memory dst, rRegI src, rFlagsReg cr) 9548 %{ 9549 match(Set dst (StoreB dst (XorI (LoadB dst) src))); 9550 effect(KILL cr); 9551 9552 ins_cost(150); 9553 format %{ "xorb $dst, $src\t# byte" %} 9554 opcode(0x30); 9555 ins_encode(REX_breg_mem(src, dst), OpcP, reg_mem(src, dst)); 9556 ins_pipe(ialu_mem_reg); 9557 %} 9558 9559 instruct xorI_mem_rReg(memory dst, rRegI src, rFlagsReg cr) 9560 %{ 9561 match(Set dst (StoreI dst (XorI (LoadI dst) src))); 9562 effect(KILL cr); 9563 9564 ins_cost(150); 9565 format %{ "xorl $dst, $src\t# int" %} 9566 opcode(0x31); /* Opcode 31 /r */ 9567 ins_encode(REX_reg_mem(src, dst), OpcP, reg_mem(src, dst)); 9568 ins_pipe(ialu_mem_reg); 9569 %} 9570 9571 // Xor Memory with Immediate 9572 instruct xorI_mem_imm(memory dst, immI src, rFlagsReg cr) 9573 %{ 9574 match(Set dst (StoreI dst (XorI (LoadI dst) src))); 9575 effect(KILL cr); 9576 9577 ins_cost(125); 9578 format %{ "xorl $dst, $src\t# int" %} |