src/share/vm/c1/c1_LIR.cpp

Print this page

        

@@ -1004,10 +1004,33 @@
       do_input(opProfileType->_mdp); do_temp(opProfileType->_mdp);
       do_input(opProfileType->_obj);
       do_temp(opProfileType->_tmp);
       break;
     }
+
+// LIR_OpCrypto_CBC_AES
+    case lir_crypto_cbc_aes: {
+      assert(op->as_OpCrypto_CBC_AES() != NULL, "must be");
+      LIR_OpCrypto_CBC_AES* opCrypto_CBC_AES = (LIR_OpCrypto_CBC_AES*)op;
+
+      do_input(opCrypto_CBC_AES->_recv);
+      do_input(opCrypto_CBC_AES->_src);
+      do_input(opCrypto_CBC_AES->_src_off);
+      do_input(opCrypto_CBC_AES->_src_len);
+      do_input(opCrypto_CBC_AES->_dst);
+      do_input(opCrypto_CBC_AES->_dst_off);
+      do_input(opCrypto_CBC_AES->_insof);
+
+      do_temp(opCrypto_CBC_AES->_recv);
+
+      if (opCrypto_CBC_AES->_info)                    do_info(opCrypto_CBC_AES->_info);
+      do_call();
+      if (opCrypto_CBC_AES->_result->is_valid())      do_output(opCrypto_CBC_AES->_result);
+
+      break;     
+    }
+
   default:
     ShouldNotReachHere();
   }
 }
 

@@ -1129,10 +1152,14 @@
 
 void LIR_OpCompareAndSwap::emit_code(LIR_Assembler* masm) {
   masm->emit_compare_and_swap(this);
 }
 
+void LIR_OpCrypto_CBC_AES::emit_code(LIR_Assembler* masm) {
+  masm->emit_crypto_cbc_aes(this);
+}
+
 void LIR_Op3::emit_code(LIR_Assembler* masm) {
   masm->emit_op3(this);
 }
 
 void LIR_OpLock::emit_code(LIR_Assembler* masm) {

@@ -2105,10 +2132,17 @@
   mdp()->print(out);          out->print(" ");
   obj()->print(out);          out->print(" ");
   tmp()->print(out);          out->print(" ");
 }
 
+void LIR_OpCrypto_CBC_AES::print_instr(outputStream* out) const {
+  src()->print(out);          out->print(" ");
+  src_off()->print(out);      out->print(" ");
+  src_len()->print(out);      out->print(" ");
+  dst()->print(out);          out->print(" ");
+  dst_off()->print(out);      out->print(" ");
+}
 #endif // PRODUCT
 
 // Implementation of LIR_InsertionBuffer
 
 void LIR_InsertionBuffer::append(int index, LIR_Op* op) {