src/hotspot/cpu/aarch64/templateInterpreterGenerator_aarch64.cpp
changeset 50094 2f79462aab9b
parent 50024 7238cb613dc5
child 50104 4ea7917929b9
equal deleted inserted replaced
50093:55153a374d18 50094:2f79462aab9b
   331              CAST_FROM_FN_PTR(address,
   331              CAST_FROM_FN_PTR(address,
   332                               InterpreterRuntime::throw_StackOverflowError));
   332                               InterpreterRuntime::throw_StackOverflowError));
   333   return entry;
   333   return entry;
   334 }
   334 }
   335 
   335 
   336 address TemplateInterpreterGenerator::generate_ArrayIndexOutOfBounds_handler(
   336 address TemplateInterpreterGenerator::generate_ArrayIndexOutOfBounds_handler() {
   337         const char* name) {
       
   338   address entry = __ pc();
   337   address entry = __ pc();
   339   // expression stack must be empty before entering the VM if an
   338   // expression stack must be empty before entering the VM if an
   340   // exception happened
   339   // exception happened
   341   __ empty_expression_stack();
   340   __ empty_expression_stack();
   342   // setup parameters
   341   // setup parameters
       
   342 
   343   // ??? convention: expect aberrant index in register r1
   343   // ??? convention: expect aberrant index in register r1
   344   __ movw(c_rarg2, r1);
   344   __ movw(c_rarg2, r1);
   345   __ mov(c_rarg1, (address)name);
   345   // ??? convention: expect array in register r3
       
   346   __ mov(c_rarg1, r3);
   346   __ call_VM(noreg,
   347   __ call_VM(noreg,
   347              CAST_FROM_FN_PTR(address,
   348              CAST_FROM_FN_PTR(address,
   348                               InterpreterRuntime::
   349                               InterpreterRuntime::
   349                               throw_ArrayIndexOutOfBoundsException),
   350                               throw_ArrayIndexOutOfBoundsException),
   350              c_rarg1, c_rarg2);
   351              c_rarg1, c_rarg2);