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