12faa5f1271587cda765f26bcf2951065300a01ffElliott Hughes/* 22faa5f1271587cda765f26bcf2951065300a01ffElliott Hughes * Copyright (C) 2011 The Android Open Source Project 32faa5f1271587cda765f26bcf2951065300a01ffElliott Hughes * 42faa5f1271587cda765f26bcf2951065300a01ffElliott Hughes * Licensed under the Apache License, Version 2.0 (the "License"); 52faa5f1271587cda765f26bcf2951065300a01ffElliott Hughes * you may not use this file except in compliance with the License. 62faa5f1271587cda765f26bcf2951065300a01ffElliott Hughes * You may obtain a copy of the License at 72faa5f1271587cda765f26bcf2951065300a01ffElliott Hughes * 82faa5f1271587cda765f26bcf2951065300a01ffElliott Hughes * http://www.apache.org/licenses/LICENSE-2.0 92faa5f1271587cda765f26bcf2951065300a01ffElliott Hughes * 102faa5f1271587cda765f26bcf2951065300a01ffElliott Hughes * Unless required by applicable law or agreed to in writing, software 112faa5f1271587cda765f26bcf2951065300a01ffElliott Hughes * distributed under the License is distributed on an "AS IS" BASIS, 122faa5f1271587cda765f26bcf2951065300a01ffElliott Hughes * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 132faa5f1271587cda765f26bcf2951065300a01ffElliott Hughes * See the License for the specific language governing permissions and 142faa5f1271587cda765f26bcf2951065300a01ffElliott Hughes * limitations under the License. 152faa5f1271587cda765f26bcf2951065300a01ffElliott Hughes */ 169f30b38d74990286ce27c3a45368f73dbe3638f0Brian Carlstrom 17367f3dd32454858b8b25d87feb8f6599d3b4c9ddIgor Murashkinimport dalvik.annotation.optimization.CriticalNative; 189d4b6da934934c322536ee3309b63ce402740f49Igor Murashkinimport dalvik.annotation.optimization.FastNative; 199d4b6da934934c322536ee3309b63ce402740f49Igor Murashkin 20367f3dd32454858b8b25d87feb8f6599d3b4c9ddIgor Murashkin/* 21367f3dd32454858b8b25d87feb8f6599d3b4c9ddIgor Murashkin * AUTOMATICALLY GENERATED FROM art/tools/mako-source-generator/...../MyClassNatives.java.mako 22367f3dd32454858b8b25d87feb8f6599d3b4c9ddIgor Murashkin * 23367f3dd32454858b8b25d87feb8f6599d3b4c9ddIgor Murashkin * !!! DO NOT EDIT DIRECTLY !!! 24367f3dd32454858b8b25d87feb8f6599d3b4c9ddIgor Murashkin * 25367f3dd32454858b8b25d87feb8f6599d3b4c9ddIgor Murashkin */ 26b264f081424642b06b0bbe7102781895d41faa9dElliott Hughesclass MyClassNatives { 27367f3dd32454858b8b25d87feb8f6599d3b4c9ddIgor Murashkin 28367f3dd32454858b8b25d87feb8f6599d3b4c9ddIgor Murashkin // Normal native 29a2501990dd0f68baf38ce19251949d7bb3ecfe5aElliott Hughes native void throwException(); 30367f3dd32454858b8b25d87feb8f6599d3b4c9ddIgor Murashkin // Normal native 319f30b38d74990286ce27c3a45368f73dbe3638f0Brian Carlstrom native void foo(); 32367f3dd32454858b8b25d87feb8f6599d3b4c9ddIgor Murashkin // Normal native 3331384c59bb4b387f29f2b6d4d3db886c29b81170Shih-wei Liao native int bar(int count); 34367f3dd32454858b8b25d87feb8f6599d3b4c9ddIgor Murashkin // Normal native 351cefdbdff559aff5a3ee5c0878ba3b505109e0f9Ian Rogers static native int sbar(int count); 36367f3dd32454858b8b25d87feb8f6599d3b4c9ddIgor Murashkin // Normal native 379f30b38d74990286ce27c3a45368f73dbe3638f0Brian Carlstrom native int fooI(int x); 38367f3dd32454858b8b25d87feb8f6599d3b4c9ddIgor Murashkin // Normal native 399f30b38d74990286ce27c3a45368f73dbe3638f0Brian Carlstrom native int fooII(int x, int y); 40367f3dd32454858b8b25d87feb8f6599d3b4c9ddIgor Murashkin // Normal native 419b269d281d16798b0c24027c32ec6507f71b2787Ian Rogers native long fooJJ(long x, long y); 42367f3dd32454858b8b25d87feb8f6599d3b4c9ddIgor Murashkin // Normal native 439b269d281d16798b0c24027c32ec6507f71b2787Ian Rogers native Object fooO(Object x); 44367f3dd32454858b8b25d87feb8f6599d3b4c9ddIgor Murashkin // Normal native 459f30b38d74990286ce27c3a45368f73dbe3638f0Brian Carlstrom native double fooDD(double x, double y); 46367f3dd32454858b8b25d87feb8f6599d3b4c9ddIgor Murashkin // Normal native 473e778f7ee62fe75912379531022a09230c25f5f8Elliott Hughes synchronized native long fooJJ_synchronized(long x, long y); 48367f3dd32454858b8b25d87feb8f6599d3b4c9ddIgor Murashkin // Normal native 499f30b38d74990286ce27c3a45368f73dbe3638f0Brian Carlstrom native Object fooIOO(int x, Object y, Object z); 50367f3dd32454858b8b25d87feb8f6599d3b4c9ddIgor Murashkin // Normal native 519f30b38d74990286ce27c3a45368f73dbe3638f0Brian Carlstrom static native Object fooSIOO(int x, Object y, Object z); 52367f3dd32454858b8b25d87feb8f6599d3b4c9ddIgor Murashkin // Normal native 5382da44b625a1af03c0b768c71f1cef29831127c3Shih-wei Liao static native int fooSII(int x, int y); 54367f3dd32454858b8b25d87feb8f6599d3b4c9ddIgor Murashkin // Normal native 557a99c11d220ec68c208b507570e3a78c2c18a7a1Ian Rogers static native double fooSDD(double x, double y); 56367f3dd32454858b8b25d87feb8f6599d3b4c9ddIgor Murashkin // Normal native 579f30b38d74990286ce27c3a45368f73dbe3638f0Brian Carlstrom static synchronized native Object fooSSIOO(int x, Object y, Object z); 58367f3dd32454858b8b25d87feb8f6599d3b4c9ddIgor Murashkin // Normal native 59b9231c81fad1c9d85ea7e6db9120f872e3417380Ian Rogers static native void arraycopy(Object src, int src_pos, Object dst, int dst_pos, int length); 60367f3dd32454858b8b25d87feb8f6599d3b4c9ddIgor Murashkin // Normal native 6167375acd9fec74cc2054554fe1ed0a7d213e1e47Ian Rogers native boolean compareAndSwapInt(Object obj, long offset, int expected, int newval); 62367f3dd32454858b8b25d87feb8f6599d3b4c9ddIgor Murashkin // Normal native 63c77928475995d01e1d6d2b2d6672510d01a5fce4Ian Rogers static native int getText(long val1, Object obj1, long val2, Object obj2); 64367f3dd32454858b8b25d87feb8f6599d3b4c9ddIgor Murashkin // Normal native 65367f3dd32454858b8b25d87feb8f6599d3b4c9ddIgor Murashkin synchronized native Object[] getSinkPropertiesNative(String path); 66b264f081424642b06b0bbe7102781895d41faa9dElliott Hughes 67367f3dd32454858b8b25d87feb8f6599d3b4c9ddIgor Murashkin // Normal native 68166aaee6aa39c20c87113b3fcf0dcd81e0a934cbAndreas Gampe native Class<?> instanceMethodThatShouldReturnClass(); 69367f3dd32454858b8b25d87feb8f6599d3b4c9ddIgor Murashkin // Normal native 70166aaee6aa39c20c87113b3fcf0dcd81e0a934cbAndreas Gampe static native Class<?> staticMethodThatShouldReturnClass(); 71b264f081424642b06b0bbe7102781895d41faa9dElliott Hughes 72367f3dd32454858b8b25d87feb8f6599d3b4c9ddIgor Murashkin // Normal native 73166aaee6aa39c20c87113b3fcf0dcd81e0a934cbAndreas Gampe native void instanceMethodThatShouldTakeClass(int i, Class<?> c); 74367f3dd32454858b8b25d87feb8f6599d3b4c9ddIgor Murashkin // Normal native 75166aaee6aa39c20c87113b3fcf0dcd81e0a934cbAndreas Gampe static native void staticMethodThatShouldTakeClass(int i, Class<?> c); 767a0e504e60441012c78fc2f3ab8d4da131185c50Andreas Gampe 77367f3dd32454858b8b25d87feb8f6599d3b4c9ddIgor Murashkin // TODO: These 3 seem like they could work for @CriticalNative as well if they were static. 78367f3dd32454858b8b25d87feb8f6599d3b4c9ddIgor Murashkin // Normal native 797a0e504e60441012c78fc2f3ab8d4da131185c50Andreas Gampe native float checkFloats(float f1, float f2); 80367f3dd32454858b8b25d87feb8f6599d3b4c9ddIgor Murashkin // Normal native 817a0e504e60441012c78fc2f3ab8d4da131185c50Andreas Gampe native void forceStackParameters(int i1, int i2, int i3, int i4, int i5, int i6, int i8, int i9, 827a0e504e60441012c78fc2f3ab8d4da131185c50Andreas Gampe float f1, float f2, float f3, float f4, float f5, float f6, 837a0e504e60441012c78fc2f3ab8d4da131185c50Andreas Gampe float f7, float f8, float f9); 84367f3dd32454858b8b25d87feb8f6599d3b4c9ddIgor Murashkin // Normal native 857a0e504e60441012c78fc2f3ab8d4da131185c50Andreas Gampe native void checkParameterAlign(int i1, long l1); 86367f3dd32454858b8b25d87feb8f6599d3b4c9ddIgor Murashkin 87367f3dd32454858b8b25d87feb8f6599d3b4c9ddIgor Murashkin // Normal native 887a0e504e60441012c78fc2f3ab8d4da131185c50Andreas Gampe native void maxParamNumber(Object o0, Object o1, Object o2, Object o3, Object o4, Object o5, Object o6, Object o7, 897a0e504e60441012c78fc2f3ab8d4da131185c50Andreas Gampe Object o8, Object o9, Object o10, Object o11, Object o12, Object o13, Object o14, Object o15, 907a0e504e60441012c78fc2f3ab8d4da131185c50Andreas Gampe Object o16, Object o17, Object o18, Object o19, Object o20, Object o21, Object o22, Object o23, 917a0e504e60441012c78fc2f3ab8d4da131185c50Andreas Gampe Object o24, Object o25, Object o26, Object o27, Object o28, Object o29, Object o30, Object o31, 927a0e504e60441012c78fc2f3ab8d4da131185c50Andreas Gampe Object o32, Object o33, Object o34, Object o35, Object o36, Object o37, Object o38, Object o39, 937a0e504e60441012c78fc2f3ab8d4da131185c50Andreas Gampe Object o40, Object o41, Object o42, Object o43, Object o44, Object o45, Object o46, Object o47, 947a0e504e60441012c78fc2f3ab8d4da131185c50Andreas Gampe Object o48, Object o49, Object o50, Object o51, Object o52, Object o53, Object o54, Object o55, 957a0e504e60441012c78fc2f3ab8d4da131185c50Andreas Gampe Object o56, Object o57, Object o58, Object o59, Object o60, Object o61, Object o62, Object o63, 967a0e504e60441012c78fc2f3ab8d4da131185c50Andreas Gampe Object o64, Object o65, Object o66, Object o67, Object o68, Object o69, Object o70, Object o71, 977a0e504e60441012c78fc2f3ab8d4da131185c50Andreas Gampe Object o72, Object o73, Object o74, Object o75, Object o76, Object o77, Object o78, Object o79, 987a0e504e60441012c78fc2f3ab8d4da131185c50Andreas Gampe Object o80, Object o81, Object o82, Object o83, Object o84, Object o85, Object o86, Object o87, 997a0e504e60441012c78fc2f3ab8d4da131185c50Andreas Gampe Object o88, Object o89, Object o90, Object o91, Object o92, Object o93, Object o94, Object o95, 1007a0e504e60441012c78fc2f3ab8d4da131185c50Andreas Gampe Object o96, Object o97, Object o98, Object o99, Object o100, Object o101, Object o102, Object o103, 1017a0e504e60441012c78fc2f3ab8d4da131185c50Andreas Gampe Object o104, Object o105, Object o106, Object o107, Object o108, Object o109, Object o110, Object o111, 1027a0e504e60441012c78fc2f3ab8d4da131185c50Andreas Gampe Object o112, Object o113, Object o114, Object o115, Object o116, Object o117, Object o118, Object o119, 1037a0e504e60441012c78fc2f3ab8d4da131185c50Andreas Gampe Object o120, Object o121, Object o122, Object o123, Object o124, Object o125, Object o126, Object o127, 1047a0e504e60441012c78fc2f3ab8d4da131185c50Andreas Gampe Object o128, Object o129, Object o130, Object o131, Object o132, Object o133, Object o134, Object o135, 1057a0e504e60441012c78fc2f3ab8d4da131185c50Andreas Gampe Object o136, Object o137, Object o138, Object o139, Object o140, Object o141, Object o142, Object o143, 1067a0e504e60441012c78fc2f3ab8d4da131185c50Andreas Gampe Object o144, Object o145, Object o146, Object o147, Object o148, Object o149, Object o150, Object o151, 1077a0e504e60441012c78fc2f3ab8d4da131185c50Andreas Gampe Object o152, Object o153, Object o154, Object o155, Object o156, Object o157, Object o158, Object o159, 1087a0e504e60441012c78fc2f3ab8d4da131185c50Andreas Gampe Object o160, Object o161, Object o162, Object o163, Object o164, Object o165, Object o166, Object o167, 1097a0e504e60441012c78fc2f3ab8d4da131185c50Andreas Gampe Object o168, Object o169, Object o170, Object o171, Object o172, Object o173, Object o174, Object o175, 1107a0e504e60441012c78fc2f3ab8d4da131185c50Andreas Gampe Object o176, Object o177, Object o178, Object o179, Object o180, Object o181, Object o182, Object o183, 1117a0e504e60441012c78fc2f3ab8d4da131185c50Andreas Gampe Object o184, Object o185, Object o186, Object o187, Object o188, Object o189, Object o190, Object o191, 1127a0e504e60441012c78fc2f3ab8d4da131185c50Andreas Gampe Object o192, Object o193, Object o194, Object o195, Object o196, Object o197, Object o198, Object o199, 1137a0e504e60441012c78fc2f3ab8d4da131185c50Andreas Gampe Object o200, Object o201, Object o202, Object o203, Object o204, Object o205, Object o206, Object o207, 1147a0e504e60441012c78fc2f3ab8d4da131185c50Andreas Gampe Object o208, Object o209, Object o210, Object o211, Object o212, Object o213, Object o214, Object o215, 1157a0e504e60441012c78fc2f3ab8d4da131185c50Andreas Gampe Object o216, Object o217, Object o218, Object o219, Object o220, Object o221, Object o222, Object o223, 1167a0e504e60441012c78fc2f3ab8d4da131185c50Andreas Gampe Object o224, Object o225, Object o226, Object o227, Object o228, Object o229, Object o230, Object o231, 1177a0e504e60441012c78fc2f3ab8d4da131185c50Andreas Gampe Object o232, Object o233, Object o234, Object o235, Object o236, Object o237, Object o238, Object o239, 1187a0e504e60441012c78fc2f3ab8d4da131185c50Andreas Gampe Object o240, Object o241, Object o242, Object o243, Object o244, Object o245, Object o246, Object o247, 1197a0e504e60441012c78fc2f3ab8d4da131185c50Andreas Gampe Object o248, Object o249, Object o250, Object o251, Object o252, Object o253); 1207a0e504e60441012c78fc2f3ab8d4da131185c50Andreas Gampe 121367f3dd32454858b8b25d87feb8f6599d3b4c9ddIgor Murashkin // Normal native 122ad61517890168ff6ed19063cc8032a9c033d135bAndreas Gampe native void withoutImplementation(); 123367f3dd32454858b8b25d87feb8f6599d3b4c9ddIgor Murashkin // Normal native 12448ee356484225ef0d7cfa197b1699524b866c802Andreas Gampe native Object withoutImplementationRefReturn(); 12554accbca0b549b1b1ad3ef09655dad438bc1e104Nicolas Geoffray 126367f3dd32454858b8b25d87feb8f6599d3b4c9ddIgor Murashkin // Normal native 1271dd61ba3081a52c3e2efdc78d64f5c134eea7895Vladimir Kostyukov native static void stackArgsIntsFirst(int i1, int i2, int i3, int i4, int i5, int i6, int i7, 1281dd61ba3081a52c3e2efdc78d64f5c134eea7895Vladimir Kostyukov int i8, int i9, int i10, float f1, float f2, float f3, float f4, float f5, float f6, 1291dd61ba3081a52c3e2efdc78d64f5c134eea7895Vladimir Kostyukov float f7, float f8, float f9, float f10); 13054accbca0b549b1b1ad3ef09655dad438bc1e104Nicolas Geoffray 131367f3dd32454858b8b25d87feb8f6599d3b4c9ddIgor Murashkin // Normal native 1321dd61ba3081a52c3e2efdc78d64f5c134eea7895Vladimir Kostyukov native static void stackArgsFloatsFirst(float f1, float f2, float f3, float f4, float f5, 1331dd61ba3081a52c3e2efdc78d64f5c134eea7895Vladimir Kostyukov float f6, float f7, float f8, float f9, float f10, int i1, int i2, int i3, int i4, int i5, 1341dd61ba3081a52c3e2efdc78d64f5c134eea7895Vladimir Kostyukov int i6, int i7, int i8, int i9, int i10); 13554accbca0b549b1b1ad3ef09655dad438bc1e104Nicolas Geoffray 136367f3dd32454858b8b25d87feb8f6599d3b4c9ddIgor Murashkin // Normal native 1371dd61ba3081a52c3e2efdc78d64f5c134eea7895Vladimir Kostyukov native static void stackArgsMixed(int i1, float f1, int i2, float f2, int i3, float f3, int i4, 1381dd61ba3081a52c3e2efdc78d64f5c134eea7895Vladimir Kostyukov float f4, int i5, float f5, int i6, float f6, int i7, float f7, int i8, float f8, int i9, 1391dd61ba3081a52c3e2efdc78d64f5c134eea7895Vladimir Kostyukov float f9, int i10, float f10); 14054accbca0b549b1b1ad3ef09655dad438bc1e104Nicolas Geoffray 141367f3dd32454858b8b25d87feb8f6599d3b4c9ddIgor Murashkin // Normal native 142837e72ae04f6bc53a12e7a26c36fdb896d149583Pavle Batuta native static long getStackArgSignExtendedMips64(int i1, int i2, int i3, int i4, int i5, int i6, 143837e72ae04f6bc53a12e7a26c36fdb896d149583Pavle Batuta int stack_arg); 144f652d605753f1387e7797461b47116c5dcdf928dLazar Trsic 145367f3dd32454858b8b25d87feb8f6599d3b4c9ddIgor Murashkin // Normal native 14654accbca0b549b1b1ad3ef09655dad438bc1e104Nicolas Geoffray static native double logD(double d); 147367f3dd32454858b8b25d87feb8f6599d3b4c9ddIgor Murashkin // Normal native 14854accbca0b549b1b1ad3ef09655dad438bc1e104Nicolas Geoffray static native float logF(float f); 149367f3dd32454858b8b25d87feb8f6599d3b4c9ddIgor Murashkin // Normal native 15054accbca0b549b1b1ad3ef09655dad438bc1e104Nicolas Geoffray static native boolean returnTrue(); 151367f3dd32454858b8b25d87feb8f6599d3b4c9ddIgor Murashkin // Normal native 15254accbca0b549b1b1ad3ef09655dad438bc1e104Nicolas Geoffray static native boolean returnFalse(); 153367f3dd32454858b8b25d87feb8f6599d3b4c9ddIgor Murashkin // Normal native 15454accbca0b549b1b1ad3ef09655dad438bc1e104Nicolas Geoffray static native int returnInt(); 155367f3dd32454858b8b25d87feb8f6599d3b4c9ddIgor Murashkin // Normal native 156367f3dd32454858b8b25d87feb8f6599d3b4c9ddIgor Murashkin static native double returnDouble(); 157367f3dd32454858b8b25d87feb8f6599d3b4c9ddIgor Murashkin // Normal native 158367f3dd32454858b8b25d87feb8f6599d3b4c9ddIgor Murashkin static native long returnLong(); 159367f3dd32454858b8b25d87feb8f6599d3b4c9ddIgor Murashkin 160367f3dd32454858b8b25d87feb8f6599d3b4c9ddIgor Murashkin 161367f3dd32454858b8b25d87feb8f6599d3b4c9ddIgor Murashkin 162367f3dd32454858b8b25d87feb8f6599d3b4c9ddIgor Murashkin @FastNative 163367f3dd32454858b8b25d87feb8f6599d3b4c9ddIgor Murashkin native void throwException_Fast(); 164367f3dd32454858b8b25d87feb8f6599d3b4c9ddIgor Murashkin @FastNative 165367f3dd32454858b8b25d87feb8f6599d3b4c9ddIgor Murashkin native void foo_Fast(); 166367f3dd32454858b8b25d87feb8f6599d3b4c9ddIgor Murashkin @FastNative 167367f3dd32454858b8b25d87feb8f6599d3b4c9ddIgor Murashkin native int bar_Fast(int count); 168367f3dd32454858b8b25d87feb8f6599d3b4c9ddIgor Murashkin @FastNative 169367f3dd32454858b8b25d87feb8f6599d3b4c9ddIgor Murashkin static native int sbar_Fast(int count); 170367f3dd32454858b8b25d87feb8f6599d3b4c9ddIgor Murashkin @FastNative 171367f3dd32454858b8b25d87feb8f6599d3b4c9ddIgor Murashkin native int fooI_Fast(int x); 172367f3dd32454858b8b25d87feb8f6599d3b4c9ddIgor Murashkin @FastNative 173367f3dd32454858b8b25d87feb8f6599d3b4c9ddIgor Murashkin native int fooII_Fast(int x, int y); 174367f3dd32454858b8b25d87feb8f6599d3b4c9ddIgor Murashkin @FastNative 175367f3dd32454858b8b25d87feb8f6599d3b4c9ddIgor Murashkin native long fooJJ_Fast(long x, long y); 176367f3dd32454858b8b25d87feb8f6599d3b4c9ddIgor Murashkin @FastNative 177367f3dd32454858b8b25d87feb8f6599d3b4c9ddIgor Murashkin native Object fooO_Fast(Object x); 178367f3dd32454858b8b25d87feb8f6599d3b4c9ddIgor Murashkin @FastNative 179367f3dd32454858b8b25d87feb8f6599d3b4c9ddIgor Murashkin native double fooDD_Fast(double x, double y); 180367f3dd32454858b8b25d87feb8f6599d3b4c9ddIgor Murashkin @FastNative 181367f3dd32454858b8b25d87feb8f6599d3b4c9ddIgor Murashkin synchronized native long fooJJ_synchronized_Fast(long x, long y); 182367f3dd32454858b8b25d87feb8f6599d3b4c9ddIgor Murashkin @FastNative 183367f3dd32454858b8b25d87feb8f6599d3b4c9ddIgor Murashkin native Object fooIOO_Fast(int x, Object y, Object z); 184367f3dd32454858b8b25d87feb8f6599d3b4c9ddIgor Murashkin @FastNative 185367f3dd32454858b8b25d87feb8f6599d3b4c9ddIgor Murashkin static native Object fooSIOO_Fast(int x, Object y, Object z); 186367f3dd32454858b8b25d87feb8f6599d3b4c9ddIgor Murashkin @FastNative 187367f3dd32454858b8b25d87feb8f6599d3b4c9ddIgor Murashkin static native int fooSII_Fast(int x, int y); 188367f3dd32454858b8b25d87feb8f6599d3b4c9ddIgor Murashkin @FastNative 189367f3dd32454858b8b25d87feb8f6599d3b4c9ddIgor Murashkin static native double fooSDD_Fast(double x, double y); 190367f3dd32454858b8b25d87feb8f6599d3b4c9ddIgor Murashkin @FastNative 191367f3dd32454858b8b25d87feb8f6599d3b4c9ddIgor Murashkin static synchronized native Object fooSSIOO_Fast(int x, Object y, Object z); 192367f3dd32454858b8b25d87feb8f6599d3b4c9ddIgor Murashkin @FastNative 193367f3dd32454858b8b25d87feb8f6599d3b4c9ddIgor Murashkin static native void arraycopy_Fast(Object src, int src_pos, Object dst, int dst_pos, int length); 194367f3dd32454858b8b25d87feb8f6599d3b4c9ddIgor Murashkin @FastNative 195367f3dd32454858b8b25d87feb8f6599d3b4c9ddIgor Murashkin native boolean compareAndSwapInt_Fast(Object obj, long offset, int expected, int newval); 196367f3dd32454858b8b25d87feb8f6599d3b4c9ddIgor Murashkin @FastNative 197367f3dd32454858b8b25d87feb8f6599d3b4c9ddIgor Murashkin static native int getText_Fast(long val1, Object obj1, long val2, Object obj2); 198367f3dd32454858b8b25d87feb8f6599d3b4c9ddIgor Murashkin @FastNative 199367f3dd32454858b8b25d87feb8f6599d3b4c9ddIgor Murashkin synchronized native Object[] getSinkPropertiesNative_Fast(String path); 200367f3dd32454858b8b25d87feb8f6599d3b4c9ddIgor Murashkin 201367f3dd32454858b8b25d87feb8f6599d3b4c9ddIgor Murashkin @FastNative 202367f3dd32454858b8b25d87feb8f6599d3b4c9ddIgor Murashkin native Class<?> instanceMethodThatShouldReturnClass_Fast(); 203367f3dd32454858b8b25d87feb8f6599d3b4c9ddIgor Murashkin @FastNative 204367f3dd32454858b8b25d87feb8f6599d3b4c9ddIgor Murashkin static native Class<?> staticMethodThatShouldReturnClass_Fast(); 205367f3dd32454858b8b25d87feb8f6599d3b4c9ddIgor Murashkin 206367f3dd32454858b8b25d87feb8f6599d3b4c9ddIgor Murashkin @FastNative 207367f3dd32454858b8b25d87feb8f6599d3b4c9ddIgor Murashkin native void instanceMethodThatShouldTakeClass_Fast(int i, Class<?> c); 208367f3dd32454858b8b25d87feb8f6599d3b4c9ddIgor Murashkin @FastNative 209367f3dd32454858b8b25d87feb8f6599d3b4c9ddIgor Murashkin static native void staticMethodThatShouldTakeClass_Fast(int i, Class<?> c); 210367f3dd32454858b8b25d87feb8f6599d3b4c9ddIgor Murashkin 211367f3dd32454858b8b25d87feb8f6599d3b4c9ddIgor Murashkin // TODO: These 3 seem like they could work for @CriticalNative as well if they were static. 212367f3dd32454858b8b25d87feb8f6599d3b4c9ddIgor Murashkin @FastNative 213367f3dd32454858b8b25d87feb8f6599d3b4c9ddIgor Murashkin native float checkFloats_Fast(float f1, float f2); 214367f3dd32454858b8b25d87feb8f6599d3b4c9ddIgor Murashkin @FastNative 215367f3dd32454858b8b25d87feb8f6599d3b4c9ddIgor Murashkin native void forceStackParameters_Fast(int i1, int i2, int i3, int i4, int i5, int i6, int i8, int i9, 216367f3dd32454858b8b25d87feb8f6599d3b4c9ddIgor Murashkin float f1, float f2, float f3, float f4, float f5, float f6, 217367f3dd32454858b8b25d87feb8f6599d3b4c9ddIgor Murashkin float f7, float f8, float f9); 218367f3dd32454858b8b25d87feb8f6599d3b4c9ddIgor Murashkin @FastNative 219367f3dd32454858b8b25d87feb8f6599d3b4c9ddIgor Murashkin native void checkParameterAlign_Fast(int i1, long l1); 220367f3dd32454858b8b25d87feb8f6599d3b4c9ddIgor Murashkin 221367f3dd32454858b8b25d87feb8f6599d3b4c9ddIgor Murashkin @FastNative 222367f3dd32454858b8b25d87feb8f6599d3b4c9ddIgor Murashkin native void maxParamNumber_Fast(Object o0, Object o1, Object o2, Object o3, Object o4, Object o5, Object o6, Object o7, 223367f3dd32454858b8b25d87feb8f6599d3b4c9ddIgor Murashkin Object o8, Object o9, Object o10, Object o11, Object o12, Object o13, Object o14, Object o15, 224367f3dd32454858b8b25d87feb8f6599d3b4c9ddIgor Murashkin Object o16, Object o17, Object o18, Object o19, Object o20, Object o21, Object o22, Object o23, 225367f3dd32454858b8b25d87feb8f6599d3b4c9ddIgor Murashkin Object o24, Object o25, Object o26, Object o27, Object o28, Object o29, Object o30, Object o31, 226367f3dd32454858b8b25d87feb8f6599d3b4c9ddIgor Murashkin Object o32, Object o33, Object o34, Object o35, Object o36, Object o37, Object o38, Object o39, 227367f3dd32454858b8b25d87feb8f6599d3b4c9ddIgor Murashkin Object o40, Object o41, Object o42, Object o43, Object o44, Object o45, Object o46, Object o47, 228367f3dd32454858b8b25d87feb8f6599d3b4c9ddIgor Murashkin Object o48, Object o49, Object o50, Object o51, Object o52, Object o53, Object o54, Object o55, 229367f3dd32454858b8b25d87feb8f6599d3b4c9ddIgor Murashkin Object o56, Object o57, Object o58, Object o59, Object o60, Object o61, Object o62, Object o63, 230367f3dd32454858b8b25d87feb8f6599d3b4c9ddIgor Murashkin Object o64, Object o65, Object o66, Object o67, Object o68, Object o69, Object o70, Object o71, 231367f3dd32454858b8b25d87feb8f6599d3b4c9ddIgor Murashkin Object o72, Object o73, Object o74, Object o75, Object o76, Object o77, Object o78, Object o79, 232367f3dd32454858b8b25d87feb8f6599d3b4c9ddIgor Murashkin Object o80, Object o81, Object o82, Object o83, Object o84, Object o85, Object o86, Object o87, 233367f3dd32454858b8b25d87feb8f6599d3b4c9ddIgor Murashkin Object o88, Object o89, Object o90, Object o91, Object o92, Object o93, Object o94, Object o95, 234367f3dd32454858b8b25d87feb8f6599d3b4c9ddIgor Murashkin Object o96, Object o97, Object o98, Object o99, Object o100, Object o101, Object o102, Object o103, 235367f3dd32454858b8b25d87feb8f6599d3b4c9ddIgor Murashkin Object o104, Object o105, Object o106, Object o107, Object o108, Object o109, Object o110, Object o111, 236367f3dd32454858b8b25d87feb8f6599d3b4c9ddIgor Murashkin Object o112, Object o113, Object o114, Object o115, Object o116, Object o117, Object o118, Object o119, 237367f3dd32454858b8b25d87feb8f6599d3b4c9ddIgor Murashkin Object o120, Object o121, Object o122, Object o123, Object o124, Object o125, Object o126, Object o127, 238367f3dd32454858b8b25d87feb8f6599d3b4c9ddIgor Murashkin Object o128, Object o129, Object o130, Object o131, Object o132, Object o133, Object o134, Object o135, 239367f3dd32454858b8b25d87feb8f6599d3b4c9ddIgor Murashkin Object o136, Object o137, Object o138, Object o139, Object o140, Object o141, Object o142, Object o143, 240367f3dd32454858b8b25d87feb8f6599d3b4c9ddIgor Murashkin Object o144, Object o145, Object o146, Object o147, Object o148, Object o149, Object o150, Object o151, 241367f3dd32454858b8b25d87feb8f6599d3b4c9ddIgor Murashkin Object o152, Object o153, Object o154, Object o155, Object o156, Object o157, Object o158, Object o159, 242367f3dd32454858b8b25d87feb8f6599d3b4c9ddIgor Murashkin Object o160, Object o161, Object o162, Object o163, Object o164, Object o165, Object o166, Object o167, 243367f3dd32454858b8b25d87feb8f6599d3b4c9ddIgor Murashkin Object o168, Object o169, Object o170, Object o171, Object o172, Object o173, Object o174, Object o175, 244367f3dd32454858b8b25d87feb8f6599d3b4c9ddIgor Murashkin Object o176, Object o177, Object o178, Object o179, Object o180, Object o181, Object o182, Object o183, 245367f3dd32454858b8b25d87feb8f6599d3b4c9ddIgor Murashkin Object o184, Object o185, Object o186, Object o187, Object o188, Object o189, Object o190, Object o191, 246367f3dd32454858b8b25d87feb8f6599d3b4c9ddIgor Murashkin Object o192, Object o193, Object o194, Object o195, Object o196, Object o197, Object o198, Object o199, 247367f3dd32454858b8b25d87feb8f6599d3b4c9ddIgor Murashkin Object o200, Object o201, Object o202, Object o203, Object o204, Object o205, Object o206, Object o207, 248367f3dd32454858b8b25d87feb8f6599d3b4c9ddIgor Murashkin Object o208, Object o209, Object o210, Object o211, Object o212, Object o213, Object o214, Object o215, 249367f3dd32454858b8b25d87feb8f6599d3b4c9ddIgor Murashkin Object o216, Object o217, Object o218, Object o219, Object o220, Object o221, Object o222, Object o223, 250367f3dd32454858b8b25d87feb8f6599d3b4c9ddIgor Murashkin Object o224, Object o225, Object o226, Object o227, Object o228, Object o229, Object o230, Object o231, 251367f3dd32454858b8b25d87feb8f6599d3b4c9ddIgor Murashkin Object o232, Object o233, Object o234, Object o235, Object o236, Object o237, Object o238, Object o239, 252367f3dd32454858b8b25d87feb8f6599d3b4c9ddIgor Murashkin Object o240, Object o241, Object o242, Object o243, Object o244, Object o245, Object o246, Object o247, 253367f3dd32454858b8b25d87feb8f6599d3b4c9ddIgor Murashkin Object o248, Object o249, Object o250, Object o251, Object o252, Object o253); 254367f3dd32454858b8b25d87feb8f6599d3b4c9ddIgor Murashkin 255367f3dd32454858b8b25d87feb8f6599d3b4c9ddIgor Murashkin @FastNative 256367f3dd32454858b8b25d87feb8f6599d3b4c9ddIgor Murashkin native void withoutImplementation_Fast(); 257367f3dd32454858b8b25d87feb8f6599d3b4c9ddIgor Murashkin @FastNative 258367f3dd32454858b8b25d87feb8f6599d3b4c9ddIgor Murashkin native Object withoutImplementationRefReturn_Fast(); 259367f3dd32454858b8b25d87feb8f6599d3b4c9ddIgor Murashkin 260367f3dd32454858b8b25d87feb8f6599d3b4c9ddIgor Murashkin @FastNative 261367f3dd32454858b8b25d87feb8f6599d3b4c9ddIgor Murashkin native static void stackArgsIntsFirst_Fast(int i1, int i2, int i3, int i4, int i5, int i6, int i7, 262367f3dd32454858b8b25d87feb8f6599d3b4c9ddIgor Murashkin int i8, int i9, int i10, float f1, float f2, float f3, float f4, float f5, float f6, 263367f3dd32454858b8b25d87feb8f6599d3b4c9ddIgor Murashkin float f7, float f8, float f9, float f10); 264367f3dd32454858b8b25d87feb8f6599d3b4c9ddIgor Murashkin 265367f3dd32454858b8b25d87feb8f6599d3b4c9ddIgor Murashkin @FastNative 266367f3dd32454858b8b25d87feb8f6599d3b4c9ddIgor Murashkin native static void stackArgsFloatsFirst_Fast(float f1, float f2, float f3, float f4, float f5, 267367f3dd32454858b8b25d87feb8f6599d3b4c9ddIgor Murashkin float f6, float f7, float f8, float f9, float f10, int i1, int i2, int i3, int i4, int i5, 268367f3dd32454858b8b25d87feb8f6599d3b4c9ddIgor Murashkin int i6, int i7, int i8, int i9, int i10); 269367f3dd32454858b8b25d87feb8f6599d3b4c9ddIgor Murashkin 270367f3dd32454858b8b25d87feb8f6599d3b4c9ddIgor Murashkin @FastNative 271367f3dd32454858b8b25d87feb8f6599d3b4c9ddIgor Murashkin native static void stackArgsMixed_Fast(int i1, float f1, int i2, float f2, int i3, float f3, int i4, 272367f3dd32454858b8b25d87feb8f6599d3b4c9ddIgor Murashkin float f4, int i5, float f5, int i6, float f6, int i7, float f7, int i8, float f8, int i9, 273367f3dd32454858b8b25d87feb8f6599d3b4c9ddIgor Murashkin float f9, int i10, float f10); 274367f3dd32454858b8b25d87feb8f6599d3b4c9ddIgor Murashkin 275367f3dd32454858b8b25d87feb8f6599d3b4c9ddIgor Murashkin @FastNative 276837e72ae04f6bc53a12e7a26c36fdb896d149583Pavle Batuta native static long getStackArgSignExtendedMips64_Fast(int i1, int i2, int i3, int i4, int i5, int i6, 277837e72ae04f6bc53a12e7a26c36fdb896d149583Pavle Batuta int stack_arg); 278367f3dd32454858b8b25d87feb8f6599d3b4c9ddIgor Murashkin 279367f3dd32454858b8b25d87feb8f6599d3b4c9ddIgor Murashkin @FastNative 280367f3dd32454858b8b25d87feb8f6599d3b4c9ddIgor Murashkin static native double logD_Fast(double d); 281367f3dd32454858b8b25d87feb8f6599d3b4c9ddIgor Murashkin @FastNative 282367f3dd32454858b8b25d87feb8f6599d3b4c9ddIgor Murashkin static native float logF_Fast(float f); 283367f3dd32454858b8b25d87feb8f6599d3b4c9ddIgor Murashkin @FastNative 284367f3dd32454858b8b25d87feb8f6599d3b4c9ddIgor Murashkin static native boolean returnTrue_Fast(); 285367f3dd32454858b8b25d87feb8f6599d3b4c9ddIgor Murashkin @FastNative 286367f3dd32454858b8b25d87feb8f6599d3b4c9ddIgor Murashkin static native boolean returnFalse_Fast(); 287367f3dd32454858b8b25d87feb8f6599d3b4c9ddIgor Murashkin @FastNative 288367f3dd32454858b8b25d87feb8f6599d3b4c9ddIgor Murashkin static native int returnInt_Fast(); 289367f3dd32454858b8b25d87feb8f6599d3b4c9ddIgor Murashkin @FastNative 290367f3dd32454858b8b25d87feb8f6599d3b4c9ddIgor Murashkin static native double returnDouble_Fast(); 291367f3dd32454858b8b25d87feb8f6599d3b4c9ddIgor Murashkin @FastNative 292367f3dd32454858b8b25d87feb8f6599d3b4c9ddIgor Murashkin static native long returnLong_Fast(); 293367f3dd32454858b8b25d87feb8f6599d3b4c9ddIgor Murashkin 294367f3dd32454858b8b25d87feb8f6599d3b4c9ddIgor Murashkin 295367f3dd32454858b8b25d87feb8f6599d3b4c9ddIgor Murashkin 296367f3dd32454858b8b25d87feb8f6599d3b4c9ddIgor Murashkin @CriticalNative 297367f3dd32454858b8b25d87feb8f6599d3b4c9ddIgor Murashkin static native int sbar_Critical(int count); 298367f3dd32454858b8b25d87feb8f6599d3b4c9ddIgor Murashkin @CriticalNative 299367f3dd32454858b8b25d87feb8f6599d3b4c9ddIgor Murashkin static native int fooSII_Critical(int x, int y); 300367f3dd32454858b8b25d87feb8f6599d3b4c9ddIgor Murashkin @CriticalNative 301367f3dd32454858b8b25d87feb8f6599d3b4c9ddIgor Murashkin static native double fooSDD_Critical(double x, double y); 302367f3dd32454858b8b25d87feb8f6599d3b4c9ddIgor Murashkin 303367f3dd32454858b8b25d87feb8f6599d3b4c9ddIgor Murashkin @CriticalNative 304367f3dd32454858b8b25d87feb8f6599d3b4c9ddIgor Murashkin native static void stackArgsIntsFirst_Critical(int i1, int i2, int i3, int i4, int i5, int i6, int i7, 305367f3dd32454858b8b25d87feb8f6599d3b4c9ddIgor Murashkin int i8, int i9, int i10, float f1, float f2, float f3, float f4, float f5, float f6, 306367f3dd32454858b8b25d87feb8f6599d3b4c9ddIgor Murashkin float f7, float f8, float f9, float f10); 307367f3dd32454858b8b25d87feb8f6599d3b4c9ddIgor Murashkin 308367f3dd32454858b8b25d87feb8f6599d3b4c9ddIgor Murashkin @CriticalNative 309367f3dd32454858b8b25d87feb8f6599d3b4c9ddIgor Murashkin native static void stackArgsFloatsFirst_Critical(float f1, float f2, float f3, float f4, float f5, 310367f3dd32454858b8b25d87feb8f6599d3b4c9ddIgor Murashkin float f6, float f7, float f8, float f9, float f10, int i1, int i2, int i3, int i4, int i5, 311367f3dd32454858b8b25d87feb8f6599d3b4c9ddIgor Murashkin int i6, int i7, int i8, int i9, int i10); 312367f3dd32454858b8b25d87feb8f6599d3b4c9ddIgor Murashkin 313367f3dd32454858b8b25d87feb8f6599d3b4c9ddIgor Murashkin @CriticalNative 314367f3dd32454858b8b25d87feb8f6599d3b4c9ddIgor Murashkin native static void stackArgsMixed_Critical(int i1, float f1, int i2, float f2, int i3, float f3, int i4, 315367f3dd32454858b8b25d87feb8f6599d3b4c9ddIgor Murashkin float f4, int i5, float f5, int i6, float f6, int i7, float f7, int i8, float f8, int i9, 316367f3dd32454858b8b25d87feb8f6599d3b4c9ddIgor Murashkin float f9, int i10, float f10); 317367f3dd32454858b8b25d87feb8f6599d3b4c9ddIgor Murashkin 318367f3dd32454858b8b25d87feb8f6599d3b4c9ddIgor Murashkin @CriticalNative 319367f3dd32454858b8b25d87feb8f6599d3b4c9ddIgor Murashkin static native double logD_Critical(double d); 320367f3dd32454858b8b25d87feb8f6599d3b4c9ddIgor Murashkin @CriticalNative 321367f3dd32454858b8b25d87feb8f6599d3b4c9ddIgor Murashkin static native float logF_Critical(float f); 322367f3dd32454858b8b25d87feb8f6599d3b4c9ddIgor Murashkin @CriticalNative 323367f3dd32454858b8b25d87feb8f6599d3b4c9ddIgor Murashkin static native boolean returnTrue_Critical(); 324367f3dd32454858b8b25d87feb8f6599d3b4c9ddIgor Murashkin @CriticalNative 325367f3dd32454858b8b25d87feb8f6599d3b4c9ddIgor Murashkin static native boolean returnFalse_Critical(); 326367f3dd32454858b8b25d87feb8f6599d3b4c9ddIgor Murashkin @CriticalNative 327367f3dd32454858b8b25d87feb8f6599d3b4c9ddIgor Murashkin static native int returnInt_Critical(); 328367f3dd32454858b8b25d87feb8f6599d3b4c9ddIgor Murashkin @CriticalNative 329367f3dd32454858b8b25d87feb8f6599d3b4c9ddIgor Murashkin static native double returnDouble_Critical(); 330367f3dd32454858b8b25d87feb8f6599d3b4c9ddIgor Murashkin @CriticalNative 331367f3dd32454858b8b25d87feb8f6599d3b4c9ddIgor Murashkin static native long returnLong_Critical(); 332367f3dd32454858b8b25d87feb8f6599d3b4c9ddIgor Murashkin 333367f3dd32454858b8b25d87feb8f6599d3b4c9ddIgor Murashkin 3349d4b6da934934c322536ee3309b63ce402740f49Igor Murashkin 335367f3dd32454858b8b25d87feb8f6599d3b4c9ddIgor Murashkin // Check for @FastNative/@CriticalNative annotation presence [or lack of presence]. 3369d4b6da934934c322536ee3309b63ce402740f49Igor Murashkin public static native void normalNative(); 3379d4b6da934934c322536ee3309b63ce402740f49Igor Murashkin @FastNative 3389d4b6da934934c322536ee3309b63ce402740f49Igor Murashkin public static native void fastNative(); 339367f3dd32454858b8b25d87feb8f6599d3b4c9ddIgor Murashkin @CriticalNative 340367f3dd32454858b8b25d87feb8f6599d3b4c9ddIgor Murashkin public static native void criticalNative(); 3413e778f7ee62fe75912379531022a09230c25f5f8Elliott Hughes} 342