4399 interface(CONST_INTER);
4400 %}
4401
4402 // Unsigned Long Immediate: 16-bit
4403 operand uimmL16() %{
4404 predicate(Assembler::is_uimm(n->get_long(), 16));
4405 match(ConL);
4406 op_cost(0);
4407 format %{ %}
4408 interface(CONST_INTER);
4409 %}
4410
4411 // Float Immediate
4412 operand immF() %{
4413 match(ConF);
4414 op_cost(40);
4415 format %{ %}
4416 interface(CONST_INTER);
4417 %}
4418
4419 // constant 'float +0.0'.
4420 operand immF_0() %{
4421 predicate((n->getf() == 0) &&
4422 (fpclassify(n->getf()) == FP_ZERO) && (signbit(n->getf()) == 0));
4423 match(ConF);
4424 op_cost(0);
4425 format %{ %}
4426 interface(CONST_INTER);
4427 %}
4428
4429 // Double Immediate
4430 operand immD() %{
4431 match(ConD);
4432 op_cost(40);
4433 format %{ %}
4434 interface(CONST_INTER);
4435 %}
4436
4437 // Integer Register Operands
4438 // Integer Destination Register
4439 // See definition of reg_class bits32_reg_rw.
4440 operand iRegIdst() %{
4441 constraint(ALLOC_IN_RC(bits32_reg_rw));
4442 match(RegI);
4443 match(rscratch1RegI);
|
4399 interface(CONST_INTER);
4400 %}
4401
4402 // Unsigned Long Immediate: 16-bit
4403 operand uimmL16() %{
4404 predicate(Assembler::is_uimm(n->get_long(), 16));
4405 match(ConL);
4406 op_cost(0);
4407 format %{ %}
4408 interface(CONST_INTER);
4409 %}
4410
4411 // Float Immediate
4412 operand immF() %{
4413 match(ConF);
4414 op_cost(40);
4415 format %{ %}
4416 interface(CONST_INTER);
4417 %}
4418
4419 // Float Immediate: +0.0f.
4420 operand immF_0() %{
4421 predicate(jint_cast(n->getf()) == 0);
4422 match(ConF);
4423
4424 op_cost(0);
4425 format %{ %}
4426 interface(CONST_INTER);
4427 %}
4428
4429 // Double Immediate
4430 operand immD() %{
4431 match(ConD);
4432 op_cost(40);
4433 format %{ %}
4434 interface(CONST_INTER);
4435 %}
4436
4437 // Integer Register Operands
4438 // Integer Destination Register
4439 // See definition of reg_class bits32_reg_rw.
4440 operand iRegIdst() %{
4441 constraint(ALLOC_IN_RC(bits32_reg_rw));
4442 match(RegI);
4443 match(rscratch1RegI);
|