< prev index next >

src/hotspot/cpu/x86/templateInterpreterGenerator_x86_64.cpp

Print this page

        

@@ -336,10 +336,31 @@
 
 //
 // Various method entries
 //
 
+address TemplateInterpreterGenerator::generate_bit_entry(AbstractInterpreter::MethodKind kind) {
+  address entry = __ pc();
+
+  const Register bits  = c_rarg0;
+  const Register index = c_rarg1;
+
+  __ movptr(bits, Address(rsp, 2 * wordSize));
+  __ movl(index, Address(rsp, 1 * wordSize));
+
+  if (kind == Interpreter::java_lang_System_setBit)
+    __ call(RuntimeAddress(CAST_FROM_FN_PTR(address, StubRoutines::setBit())));
+  else
+    __ call(RuntimeAddress(CAST_FROM_FN_PTR(address, StubRoutines::clrBit())));
+
+  __ pop(rax);
+  __ mov(rsp, r13);
+  __ jmp(rax);
+
+  return entry;
+}
+
 address TemplateInterpreterGenerator::generate_math_entry(AbstractInterpreter::MethodKind kind) {
 
   // rbx,: Method*
   // rcx: scratrch
   // r13: sender sp
< prev index next >