src/hotspot/cpu/aarch64/c1_LIRAssembler_aarch64.cpp
changeset 57565 01bca26734bb
parent 55521 f9a2f93a0c87
child 58273 08a5148e7c4e
equal deleted inserted replaced
57564:0a8436eda2fa 57565:01bca26734bb
  2900   CodeBlob *cb = CodeCache::find_blob(dest);
  2900   CodeBlob *cb = CodeCache::find_blob(dest);
  2901   if (cb) {
  2901   if (cb) {
  2902     __ far_call(RuntimeAddress(dest));
  2902     __ far_call(RuntimeAddress(dest));
  2903   } else {
  2903   } else {
  2904     __ mov(rscratch1, RuntimeAddress(dest));
  2904     __ mov(rscratch1, RuntimeAddress(dest));
  2905     int len = args->length();
  2905     __ blr(rscratch1);
  2906     int type = 0;
       
  2907     if (! result->is_illegal()) {
       
  2908       switch (result->type()) {
       
  2909       case T_VOID:
       
  2910         type = 0;
       
  2911         break;
       
  2912       case T_INT:
       
  2913       case T_LONG:
       
  2914       case T_OBJECT:
       
  2915         type = 1;
       
  2916         break;
       
  2917       case T_FLOAT:
       
  2918         type = 2;
       
  2919         break;
       
  2920       case T_DOUBLE:
       
  2921         type = 3;
       
  2922         break;
       
  2923       default:
       
  2924         ShouldNotReachHere();
       
  2925         break;
       
  2926       }
       
  2927     }
       
  2928     int num_gpargs = 0;
       
  2929     int num_fpargs = 0;
       
  2930     for (int i = 0; i < args->length(); i++) {
       
  2931       LIR_Opr arg = args->at(i);
       
  2932       if (arg->type() == T_FLOAT || arg->type() == T_DOUBLE) {
       
  2933         num_fpargs++;
       
  2934       } else {
       
  2935         num_gpargs++;
       
  2936       }
       
  2937     }
       
  2938     __ blrt(rscratch1, num_gpargs, num_fpargs, type);
       
  2939   }
  2906   }
  2940 
  2907 
  2941   if (info != NULL) {
  2908   if (info != NULL) {
  2942     add_call_info_here(info);
  2909     add_call_info_here(info);
  2943   }
  2910   }