src/hotspot/cpu/x86/templateTable_x86.cpp
changeset 50094 2f79462aab9b
parent 49987 e4b3cc56e2b2
child 50106 24151f48582b
equal deleted inserted replaced
50093:55153a374d18 50094:2f79462aab9b
   755   if (index != rbx) {
   755   if (index != rbx) {
   756     // ??? convention: move aberrant index into rbx for exception message
   756     // ??? convention: move aberrant index into rbx for exception message
   757     assert(rbx != array, "different registers");
   757     assert(rbx != array, "different registers");
   758     __ movl(rbx, index);
   758     __ movl(rbx, index);
   759   }
   759   }
   760   __ jump_cc(Assembler::aboveEqual,
   760   Label skip;
   761              ExternalAddress(Interpreter::_throw_ArrayIndexOutOfBoundsException_entry));
   761   __ jccb(Assembler::below, skip);
   762 }
   762   // Pass array to create more detailed exceptions.
   763 
   763   __ mov(NOT_LP64(rax) LP64_ONLY(c_rarg1), array);
       
   764   __ jump(ExternalAddress(Interpreter::_throw_ArrayIndexOutOfBoundsException_entry));
       
   765   __ bind(skip);
       
   766 }
   764 
   767 
   765 void TemplateTable::iaload() {
   768 void TemplateTable::iaload() {
   766   transition(itos, itos);
   769   transition(itos, itos);
   767   // rax: index
   770   // rax: index
   768   // rdx: array
   771   // rdx: array