1c3fdf90703e7d4d19242c6170c5bb2d681186564Man Cao/* 2c3fdf90703e7d4d19242c6170c5bb2d681186564Man Cao * Copyright (C) 2015 The Android Open Source Project 3c3fdf90703e7d4d19242c6170c5bb2d681186564Man Cao * 4c3fdf90703e7d4d19242c6170c5bb2d681186564Man Cao * Licensed under the Apache License, Version 2.0 (the "License"); 5c3fdf90703e7d4d19242c6170c5bb2d681186564Man Cao * you may not use this file except in compliance with the License. 6c3fdf90703e7d4d19242c6170c5bb2d681186564Man Cao * You may obtain a copy of the License at 7c3fdf90703e7d4d19242c6170c5bb2d681186564Man Cao * 8c3fdf90703e7d4d19242c6170c5bb2d681186564Man Cao * http://www.apache.org/licenses/LICENSE-2.0 9c3fdf90703e7d4d19242c6170c5bb2d681186564Man Cao * 10c3fdf90703e7d4d19242c6170c5bb2d681186564Man Cao * Unless required by applicable law or agreed to in writing, software 11c3fdf90703e7d4d19242c6170c5bb2d681186564Man Cao * distributed under the License is distributed on an "AS IS" BASIS, 12c3fdf90703e7d4d19242c6170c5bb2d681186564Man Cao * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13c3fdf90703e7d4d19242c6170c5bb2d681186564Man Cao * See the License for the specific language governing permissions and 14c3fdf90703e7d4d19242c6170c5bb2d681186564Man Cao * limitations under the License. 15c3fdf90703e7d4d19242c6170c5bb2d681186564Man Cao */ 16c3fdf90703e7d4d19242c6170c5bb2d681186564Man Cao 17c3fdf90703e7d4d19242c6170c5bb2d681186564Man Cao#include <assert.h> 18c3fdf90703e7d4d19242c6170c5bb2d681186564Man Cao 19c3fdf90703e7d4d19242c6170c5bb2d681186564Man Cao#include "jni.h" 200795f23920ee9aabf28e45c63cd592dcccf00216Mathieu Chartier#include "scoped_thread_state_change-inl.h" 21c3fdf90703e7d4d19242c6170c5bb2d681186564Man Cao#include "thread.h" 22c3fdf90703e7d4d19242c6170c5bb2d681186564Man Cao 23c3fdf90703e7d4d19242c6170c5bb2d681186564Man Caonamespace art { 24c3fdf90703e7d4d19242c6170c5bb2d681186564Man Cao 25c3fdf90703e7d4d19242c6170c5bb2d681186564Man Caonamespace { 26c3fdf90703e7d4d19242c6170c5bb2d681186564Man Cao 27563e9846711aa1830bc7a34499204091032349fbMathieu Chartierextern "C" JNIEXPORT void JNICALL Java_JniPerfBenchmark_perfJniEmptyCall(JNIEnv*, jobject) {} 28c3fdf90703e7d4d19242c6170c5bb2d681186564Man Cao 29563e9846711aa1830bc7a34499204091032349fbMathieu Chartierextern "C" JNIEXPORT void JNICALL Java_JniPerfBenchmark_perfSOACall(JNIEnv* env, jobject) { 30563e9846711aa1830bc7a34499204091032349fbMathieu Chartier ScopedObjectAccess soa(env); 31c3fdf90703e7d4d19242c6170c5bb2d681186564Man Cao} 32c3fdf90703e7d4d19242c6170c5bb2d681186564Man Cao 33563e9846711aa1830bc7a34499204091032349fbMathieu Chartierextern "C" JNIEXPORT void JNICALL Java_JniPerfBenchmark_perfSOAUncheckedCall(JNIEnv*, jobject) { 34c3fdf90703e7d4d19242c6170c5bb2d681186564Man Cao ScopedObjectAccessUnchecked soa(Thread::Current()); 35c3fdf90703e7d4d19242c6170c5bb2d681186564Man Cao} 36c3fdf90703e7d4d19242c6170c5bb2d681186564Man Cao 37c3fdf90703e7d4d19242c6170c5bb2d681186564Man Cao} // namespace 38c3fdf90703e7d4d19242c6170c5bb2d681186564Man Cao 39c3fdf90703e7d4d19242c6170c5bb2d681186564Man Cao} // namespace art 40