Mercurial > hg > graal-jvmci-8
comparison src/cpu/x86/vm/x86_32.ad @ 17524:89152779163c
Merge with jdk8-b132
author | Gilles Duboscq <duboscq@ssw.jku.at> |
---|---|
date | Wed, 15 Oct 2014 11:59:32 +0200 |
parents | 4ca6dc0799b6 |
children | 52b4284cb496 |
comparison
equal
deleted
inserted
replaced
17450:45b45f902bed | 17524:89152779163c |
---|---|
3887 op_cost(10); | 3887 op_cost(10); |
3888 format %{ %} | 3888 format %{ %} |
3889 interface(CONST_INTER); | 3889 interface(CONST_INTER); |
3890 %} | 3890 %} |
3891 | 3891 |
3892 // Int Immediate non-negative | |
3893 operand immU31() | |
3894 %{ | |
3895 predicate(n->get_int() >= 0); | |
3896 match(ConI); | |
3897 | |
3898 op_cost(0); | |
3899 format %{ %} | |
3900 interface(CONST_INTER); | |
3901 %} | |
3902 | |
3892 // Constant for long shifts | 3903 // Constant for long shifts |
3893 operand immI_32() %{ | 3904 operand immI_32() %{ |
3894 predicate( n->get_int() == 32 ); | 3905 predicate( n->get_int() == 32 ); |
3895 match(ConI); | 3906 match(ConI); |
3896 | 3907 |
6117 __ xorl(HIGH_FROM_LOW(Rdst), HIGH_FROM_LOW(Rdst)); | 6128 __ xorl(HIGH_FROM_LOW(Rdst), HIGH_FROM_LOW(Rdst)); |
6118 %} | 6129 %} |
6119 ins_pipe(ialu_reg_mem); | 6130 ins_pipe(ialu_reg_mem); |
6120 %} | 6131 %} |
6121 | 6132 |
6122 // Load Integer with 32-bit mask into Long Register | 6133 // Load Integer with 31-bit mask into Long Register |
6123 instruct loadI2L_immI(eRegL dst, memory mem, immI mask, eFlagsReg cr) %{ | 6134 instruct loadI2L_immU31(eRegL dst, memory mem, immU31 mask, eFlagsReg cr) %{ |
6124 match(Set dst (ConvI2L (AndI (LoadI mem) mask))); | 6135 match(Set dst (ConvI2L (AndI (LoadI mem) mask))); |
6125 effect(KILL cr); | 6136 effect(KILL cr); |
6126 | 6137 |
6127 format %{ "MOV $dst.lo,$mem\t# int & 32-bit mask -> long\n\t" | 6138 format %{ "MOV $dst.lo,$mem\t# int & 31-bit mask -> long\n\t" |
6128 "XOR $dst.hi,$dst.hi\n\t" | 6139 "XOR $dst.hi,$dst.hi\n\t" |
6129 "AND $dst.lo,$mask" %} | 6140 "AND $dst.lo,$mask" %} |
6130 ins_encode %{ | 6141 ins_encode %{ |
6131 Register Rdst = $dst$$Register; | 6142 Register Rdst = $dst$$Register; |
6132 __ movl(Rdst, $mem$$Address); | 6143 __ movl(Rdst, $mem$$Address); |