hotspot/src/cpu/x86/vm/templateTable_x86_64.cpp
changeset 21515 ec29f0abf481
parent 20702 bbe0fcde6e13
child 21520 9f3ba7e1ed5c
equal deleted inserted replaced
21190:bd5309114ca2 21515:ec29f0abf481
   566   locals_index(rbx);
   566   locals_index(rbx);
   567   __ movptr(rax, aaddress(rbx));
   567   __ movptr(rax, aaddress(rbx));
   568 }
   568 }
   569 
   569 
   570 void TemplateTable::locals_index_wide(Register reg) {
   570 void TemplateTable::locals_index_wide(Register reg) {
   571   __ movl(reg, at_bcp(2));
   571   __ load_unsigned_short(reg, at_bcp(2));
   572   __ bswapl(reg);
   572   __ bswapl(reg);
   573   __ shrl(reg, 16);
   573   __ shrl(reg, 16);
   574   __ negptr(reg);
   574   __ negptr(reg);
   575 }
   575 }
   576 
   576 
  1573                              InvocationCounter::counter_offset();
  1573                              InvocationCounter::counter_offset();
  1574   const ByteSize inv_offset = MethodCounters::invocation_counter_offset() +
  1574   const ByteSize inv_offset = MethodCounters::invocation_counter_offset() +
  1575                               InvocationCounter::counter_offset();
  1575                               InvocationCounter::counter_offset();
  1576 
  1576 
  1577   // Load up edx with the branch displacement
  1577   // Load up edx with the branch displacement
  1578   __ movl(rdx, at_bcp(1));
  1578   if (is_wide) {
       
  1579     __ movl(rdx, at_bcp(1));
       
  1580   } else {
       
  1581     __ load_signed_short(rdx, at_bcp(1));
       
  1582   }
  1579   __ bswapl(rdx);
  1583   __ bswapl(rdx);
  1580 
  1584 
  1581   if (!is_wide) {
  1585   if (!is_wide) {
  1582     __ sarl(rdx, 16);
  1586     __ sarl(rdx, 16);
  1583   }
  1587   }