hotspot/src/cpu/sparc/vm/sparc.ad
changeset 3798 a8d3bacb68d7
parent 3177 f467776fc753
child 3905 7d725029ac85
equal deleted inserted replaced
3797:3f6a7898f912 3798:a8d3bacb68d7
  5705 instruct loadUS2L_immI16(iRegL dst, memory mem, immI16 mask, iRegL tmp) %{
  5705 instruct loadUS2L_immI16(iRegL dst, memory mem, immI16 mask, iRegL tmp) %{
  5706   match(Set dst (ConvI2L (AndI (LoadUS mem) mask)));
  5706   match(Set dst (ConvI2L (AndI (LoadUS mem) mask)));
  5707   effect(TEMP dst, TEMP tmp);
  5707   effect(TEMP dst, TEMP tmp);
  5708   ins_cost(MEMORY_REF_COST + 2*DEFAULT_COST);
  5708   ins_cost(MEMORY_REF_COST + 2*DEFAULT_COST);
  5709 
  5709 
  5710   size(3*4);
  5710   size((3+1)*4);  // set may use two instructions.
  5711   format %{ "LDUH   $mem,$dst\t! ushort/char & 16-bit mask -> long\n\t"
  5711   format %{ "LDUH   $mem,$dst\t! ushort/char & 16-bit mask -> long\n\t"
  5712             "SET    $mask,$tmp\n\t"
  5712             "SET    $mask,$tmp\n\t"
  5713             "AND    $dst,$tmp,$dst" %}
  5713             "AND    $dst,$tmp,$dst" %}
  5714   ins_encode %{
  5714   ins_encode %{
  5715     Register Rdst = $dst$$Register;
  5715     Register Rdst = $dst$$Register;
  5849 instruct loadI2L_immI(iRegL dst, memory mem, immI mask, iRegL tmp) %{
  5849 instruct loadI2L_immI(iRegL dst, memory mem, immI mask, iRegL tmp) %{
  5850   match(Set dst (ConvI2L (AndI (LoadI mem) mask)));
  5850   match(Set dst (ConvI2L (AndI (LoadI mem) mask)));
  5851   effect(TEMP dst, TEMP tmp);
  5851   effect(TEMP dst, TEMP tmp);
  5852   ins_cost(MEMORY_REF_COST + 2*DEFAULT_COST);
  5852   ins_cost(MEMORY_REF_COST + 2*DEFAULT_COST);
  5853 
  5853 
  5854   size(3*4);
  5854   size((3+1)*4);  // set may use two instructions.
  5855   format %{ "LDUW   $mem,$dst\t! int & 32-bit mask -> long\n\t"
  5855   format %{ "LDUW   $mem,$dst\t! int & 32-bit mask -> long\n\t"
  5856             "SET    $mask,$tmp\n\t"
  5856             "SET    $mask,$tmp\n\t"
  5857             "AND    $dst,$tmp,$dst" %}
  5857             "AND    $dst,$tmp,$dst" %}
  5858   ins_encode %{
  5858   ins_encode %{
  5859     Register Rdst = $dst$$Register;
  5859     Register Rdst = $dst$$Register;