Line data Source code
1 : /* src/vm/jit/builtintable.inc - tables of builtin functions
2 :
3 : Copyright (C) 1996-2013
4 : CACAOVM - Verein zur Foerderung der freien virtuellen Maschine CACAO
5 :
6 : This file is part of CACAO.
7 :
8 : This program is free software; you can redistribute it and/or
9 : modify it under the terms of the GNU General Public License as
10 : published by the Free Software Foundation; either version 2, or (at
11 : your option) any later version.
12 :
13 : This program is distributed in the hope that it will be useful, but
14 : WITHOUT ANY WARRANTY; without even the implied warranty of
15 : MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
16 : General Public License for more details.
17 :
18 : You should have received a copy of the GNU General Public License
19 : along with this program; if not, write to the Free Software
20 : Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
21 : 02110-1301, USA.
22 :
23 : */
24 :
25 :
26 : #include "config.h"
27 :
28 : #include "arch.hpp"
29 :
30 : #include "threads/lock.hpp"
31 :
32 : #include "vm/jit/builtin.hpp"
33 : #include "vm/jit/jit.hpp"
34 :
35 :
36 : /* internal and not automatically replaced functions **************************/
37 :
38 165 : static builtintable_entry builtintable_internal[] = {
39 :
40 : #if defined(__ALPHA__) || defined(DISABLE_GC)
41 : {
42 : ICMD_F2L,
43 : 0,
44 : BUILTIN_f2l,
45 : NULL,
46 : NULL,
47 : "f2l",
48 : "(F)J",
49 : NULL,
50 : NULL,
51 : NULL,
52 : NULL,
53 : NULL
54 : },
55 : {
56 : ICMD_D2L,
57 : 0,
58 : BUILTIN_d2l,
59 : NULL,
60 : NULL,
61 : "d2l",
62 : "(D)J",
63 : NULL,
64 : NULL,
65 : NULL,
66 : NULL,
67 : NULL
68 : },
69 : {
70 : ICMD_F2I,
71 : 0,
72 : BUILTIN_f2i,
73 : NULL,
74 : NULL,
75 : "f2i",
76 : "(F)I",
77 : NULL,
78 : NULL,
79 : NULL,
80 : NULL,
81 : NULL
82 : },
83 : {
84 : ICMD_D2I,
85 : 0,
86 : BUILTIN_d2i,
87 : NULL,
88 : NULL,
89 : "d2i",
90 : "(D)I",
91 : NULL,
92 : NULL,
93 : NULL,
94 : NULL,
95 : NULL
96 : },
97 : #endif
98 :
99 : {
100 : ICMD_LCMP,
101 : 0,
102 : BUILTIN_lcmp,
103 : NULL,
104 : NULL,
105 : "lcmp",
106 : "(JJ)I",
107 : NULL,
108 : NULL,
109 : NULL,
110 : NULL,
111 : NULL
112 : },
113 :
114 : #if !SUPPORT_DIVISION || defined(DISABLE_GC)
115 : {
116 : ICMD_IDIV,
117 : 0,
118 : BUILTIN_idiv,
119 : NULL,
120 : NULL,
121 : "idiv",
122 : "(II)I",
123 : NULL,
124 : NULL,
125 : NULL,
126 : NULL,
127 : NULL
128 : },
129 : {
130 : ICMD_IREM,
131 : 0,
132 : BUILTIN_irem,
133 : NULL,
134 : NULL,
135 : "irem",
136 : "(II)I",
137 : NULL,
138 : NULL,
139 : NULL,
140 : NULL,
141 : NULL
142 : },
143 : #endif
144 :
145 : #if !(SUPPORT_DIVISION && SUPPORT_LONG_DIV) || defined(DISABLE_GC)
146 : {
147 : ICMD_LDIV,
148 : 0,
149 : BUILTIN_ldiv,
150 : NULL,
151 : NULL,
152 : "ldiv",
153 : "(JJ)J",
154 : NULL,
155 : NULL,
156 : NULL,
157 : NULL,
158 : NULL
159 : },
160 : {
161 : ICMD_LREM,
162 : 0,
163 : BUILTIN_lrem,
164 : NULL,
165 : NULL,
166 : "lrem",
167 : "(JJ)J",
168 : NULL,
169 : NULL,
170 : NULL,
171 : NULL,
172 : NULL
173 : },
174 : #endif
175 :
176 : {
177 : ICMD_FREM,
178 : 0,
179 : BUILTIN_frem,
180 : NULL,
181 : NULL,
182 : "frem",
183 : "(FF)F",
184 : NULL,
185 : NULL,
186 : NULL,
187 : NULL,
188 : NULL
189 : },
190 : {
191 : ICMD_DREM,
192 : 0,
193 : BUILTIN_drem,
194 : NULL,
195 : NULL,
196 : "drem",
197 : "(DD)D",
198 : NULL,
199 : NULL,
200 : NULL,
201 : NULL,
202 : NULL
203 : },
204 :
205 :
206 : /* internal functions *****************************************************/
207 :
208 : {
209 : ICMD_NEW,
210 : BUILTINTABLE_FLAG_STUB,
211 : BUILTIN_new,
212 : NULL,
213 : NULL,
214 : "new",
215 : "(Ljava/lang/Class;)Ljava/lang/Object;",
216 : NULL,
217 : NULL,
218 : NULL,
219 : NULL,
220 : NULL
221 : },
222 :
223 : #if defined(ENABLE_TLH)
224 : {
225 : ICMD_NEW,
226 : BUILTINTABLE_FLAG_STUB,
227 : BUILTIN_tlh_new,
228 : NULL,
229 : NULL,
230 : "tlh_new",
231 : "(Ljava/lang/Class;)Ljava/lang/Object;",
232 : NULL,
233 : NULL,
234 : NULL,
235 : NULL,
236 : NULL
237 : },
238 : #endif
239 :
240 : #if defined(ENABLE_ESCAPE_REASON)
241 : {
242 : ICMD_NEW,
243 : BUILTINTABLE_FLAG_STUB,
244 : BUILTIN_escape_reason_new,
245 : NULL,
246 : NULL,
247 : "escape_reason_new",
248 : "(Ljava/lang/Class;)Ljava/lang/Object;",
249 : NULL,
250 : NULL,
251 : NULL,
252 : NULL,
253 : NULL
254 : },
255 : #endif
256 :
257 : {
258 : ICMD_NEW,
259 : 0,
260 : BUILTIN_FAST_new,
261 : NULL,
262 : NULL,
263 : "fast-new",
264 : "(Ljava/lang/Class;)Ljava/lang/Object;",
265 : NULL,
266 : NULL,
267 : NULL,
268 : NULL,
269 : NULL
270 : },
271 : {
272 : ICMD_ANEWARRAY,
273 : BUILTINTABLE_FLAG_STUB,
274 : BUILTIN_newarray,
275 : NULL,
276 : NULL,
277 : "newarray",
278 : "(ILjava/lang/Class;)[Ljava/lang/Object;",
279 : NULL,
280 : NULL,
281 : NULL,
282 : NULL,
283 : NULL
284 : },
285 : {
286 : ICMD_NEWARRAY,
287 : BUILTINTABLE_FLAG_STUB,
288 : BUILTIN_newarray_boolean,
289 : NULL,
290 : NULL,
291 : "newarray_boolean",
292 : "(I)[Z",
293 : NULL,
294 : NULL,
295 : NULL,
296 : NULL,
297 : NULL
298 : },
299 : {
300 : ICMD_NEWARRAY,
301 : BUILTINTABLE_FLAG_STUB,
302 : BUILTIN_newarray_byte,
303 : NULL,
304 : NULL,
305 : "newarray_byte",
306 : "(I)[B",
307 : NULL,
308 : NULL,
309 : NULL,
310 : NULL,
311 : NULL
312 : },
313 : {
314 : ICMD_NEWARRAY,
315 : BUILTINTABLE_FLAG_STUB,
316 : BUILTIN_newarray_char,
317 : NULL,
318 : NULL,
319 : "newarray_char",
320 : "(I)[C",
321 : NULL,
322 : NULL,
323 : NULL,
324 : NULL,
325 : NULL
326 : },
327 : {
328 : ICMD_NEWARRAY,
329 : BUILTINTABLE_FLAG_STUB,
330 : BUILTIN_newarray_short,
331 : NULL,
332 : NULL,
333 : "newarray_short",
334 : "(I)[S",
335 : NULL,
336 : NULL,
337 : NULL,
338 : NULL,
339 : NULL
340 : },
341 : {
342 : ICMD_NEWARRAY,
343 : BUILTINTABLE_FLAG_STUB,
344 : BUILTIN_newarray_int,
345 : NULL,
346 : NULL,
347 : "newarray_int",
348 : "(I)[I",
349 : NULL,
350 : NULL,
351 : NULL,
352 : NULL,
353 : NULL
354 : },
355 : {
356 : ICMD_NEWARRAY,
357 : BUILTINTABLE_FLAG_STUB,
358 : BUILTIN_newarray_long,
359 : NULL,
360 : NULL,
361 : "newarray_long",
362 : "(I)[J",
363 : NULL,
364 : NULL,
365 : NULL,
366 : NULL,
367 : NULL
368 : },
369 : {
370 : ICMD_NEWARRAY,
371 : BUILTINTABLE_FLAG_STUB,
372 : BUILTIN_newarray_float,
373 : NULL,
374 : NULL,
375 : "newarray_float",
376 : "(I)[F",
377 : NULL,
378 : NULL,
379 : NULL,
380 : NULL,
381 : NULL
382 : },
383 : {
384 : ICMD_NEWARRAY,
385 : BUILTINTABLE_FLAG_STUB,
386 : BUILTIN_newarray_double,
387 : NULL,
388 : NULL,
389 : "newarray_double",
390 : "(I)[D",
391 : NULL,
392 : NULL,
393 : NULL,
394 : NULL,
395 : NULL
396 : },
397 : {
398 : ICMD_MULTIANEWARRAY,
399 : BUILTINTABLE_FLAG_STUB,
400 : BUILTIN_multianewarray,
401 : NULL,
402 : NULL,
403 : "multianewarray",
404 : /* XXX it should be: "(ILjava/lang/Class;[I)[Ljava/lang/Object;", */
405 : "(ILjava/lang/Class;I)[Ljava/lang/Object;",
406 : NULL,
407 : NULL,
408 : NULL,
409 : NULL,
410 : NULL
411 : },
412 : {
413 : ICMD_CHECKCAST,
414 : 0,
415 : BUILTIN_arraycheckcast,
416 : NULL,
417 : NULL,
418 : "arraycheckcast",
419 : "([Ljava/lang/Object;[Ljava/lang/Object;)[Ljava/lang/Object;",
420 : NULL,
421 : NULL,
422 : NULL,
423 : NULL,
424 : NULL
425 : },
426 : {
427 : ICMD_INSTANCEOF,
428 : 0,
429 : BUILTIN_arrayinstanceof,
430 : NULL,
431 : NULL,
432 : "arrayinstanceof",
433 : "([Ljava/lang/Object;[Ljava/lang/Object;)I",
434 : NULL,
435 : NULL,
436 : NULL,
437 : NULL,
438 : NULL
439 : },
440 : {
441 : ICMD_AASTORE,
442 : 0,
443 : BUILTIN_FAST_canstore,
444 : NULL,
445 : NULL,
446 : "fast-canstore",
447 : "([Ljava/lang/Object;Ljava/lang/Object;)I",
448 : NULL,
449 : NULL,
450 : NULL,
451 : NULL,
452 : NULL
453 : },
454 :
455 : {
456 : ICMD_MONITORENTER,
457 : BUILTINTABLE_FLAG_STUB,
458 : LOCK_monitor_enter,
459 : NULL,
460 : NULL,
461 : "monitorenter",
462 : "(Ljava/lang/Object;)V",
463 : NULL,
464 : NULL,
465 : NULL,
466 : NULL,
467 : EMIT_FASTPATH_monitor_enter
468 : },
469 : {
470 : ICMD_MONITOREXIT,
471 : BUILTINTABLE_FLAG_STUB,
472 : LOCK_monitor_exit,
473 : NULL,
474 : NULL,
475 : "monitorexit",
476 : "(Ljava/lang/Object;)V",
477 : NULL,
478 : NULL,
479 : NULL,
480 : NULL,
481 : EMIT_FASTPATH_monitor_exit
482 : },
483 :
484 : /* stop entry */
485 :
486 : {
487 : (ICMD) 255,
488 : 0,
489 : NULL,
490 : NULL,
491 : NULL,
492 : NULL,
493 : NULL,
494 : NULL,
495 : NULL,
496 : NULL,
497 : NULL,
498 : NULL
499 : },
500 165 : };
501 :
502 :
503 : /* automatically replaced functions *******************************************/
504 :
505 165 : static builtintable_entry builtintable_automatic[] = {
506 :
507 : #if !SUPPORT_LONG_CMP
508 : {
509 : ICMD_LCMP,
510 : 0,
511 : BUILTIN_lcmp,
512 : NULL,
513 : NULL,
514 : "lcmp",
515 : "(JJ)I",
516 : NULL,
517 : NULL,
518 : NULL,
519 : NULL,
520 : NULL
521 : },
522 : #endif
523 :
524 : #if !SUPPORT_LONG_SHIFT
525 : {
526 : ICMD_LSHL,
527 : 0,
528 : BUILTIN_lshl,
529 : NULL,
530 : NULL,
531 : "lshl",
532 : "(JI)J",
533 : NULL,
534 : NULL,
535 : NULL,
536 : NULL,
537 : NULL
538 : },
539 : {
540 : ICMD_LSHR,
541 : 0,
542 : BUILTIN_lshr,
543 : NULL,
544 : NULL,
545 : "lshr",
546 : "(JI)J",
547 : NULL,
548 : NULL,
549 : NULL,
550 : NULL,
551 : NULL
552 : },
553 : {
554 : ICMD_LUSHR,
555 : 0,
556 : BUILTIN_lushr,
557 : NULL,
558 : NULL,
559 : "lushr",
560 : "(JI)J",
561 : NULL,
562 : NULL,
563 : NULL,
564 : NULL,
565 : NULL
566 : },
567 : #endif
568 :
569 : #if !SUPPORT_LONG_ADD
570 : {
571 : ICMD_LADD,
572 : 0,
573 : BUILTIN_ladd,
574 : NULL,
575 : NULL,
576 : "ladd",
577 : "(JJ)J",
578 : NULL,
579 : NULL,
580 : NULL,
581 : NULL,
582 : NULL
583 : },
584 : {
585 : ICMD_LSUB,
586 : 0,
587 : BUILTIN_lsub,
588 : NULL,
589 : NULL,
590 : "lsub",
591 : "(JJ)J",
592 : NULL,
593 : NULL,
594 : NULL,
595 : NULL,
596 : NULL
597 : },
598 : {
599 : ICMD_LNEG,
600 : 0,
601 : BUILTIN_lneg,
602 : NULL,
603 : NULL,
604 : "lneg",
605 : "(J)J",
606 : NULL,
607 : NULL,
608 : NULL,
609 : NULL,
610 : NULL
611 : },
612 : #endif
613 :
614 : #if !SUPPORT_LONG_MUL
615 : {
616 : ICMD_LMUL,
617 : 0,
618 : BUILTIN_lmul,
619 : NULL,
620 : NULL,
621 : "lmul",
622 : "(JJ)J",
623 : NULL,
624 : NULL,
625 : NULL,
626 : NULL,
627 : NULL
628 : },
629 : #endif
630 :
631 : #if !(SUPPORT_FLOAT && SUPPORT_I2F)
632 : {
633 : ICMD_I2F,
634 : 0,
635 : BUILTIN_i2f,
636 : NULL,
637 : NULL,
638 : "i2f",
639 : "(I)F",
640 : NULL,
641 : NULL,
642 : NULL,
643 : NULL,
644 : NULL
645 : },
646 : #endif
647 :
648 : #if !(SUPPORT_DOUBLE && SUPPORT_I2D)
649 : {
650 : ICMD_I2D,
651 : 0,
652 : BUILTIN_i2d,
653 : NULL,
654 : NULL,
655 : "i2d",
656 : "(I)D",
657 : NULL,
658 : NULL,
659 : NULL,
660 : NULL,
661 : NULL
662 : },
663 : #endif
664 :
665 : #if !(SUPPORT_FLOAT && SUPPORT_L2F)
666 : {
667 : ICMD_L2F,
668 : 0,
669 : BUILTIN_l2f,
670 : NULL,
671 : NULL,
672 : "l2f",
673 : "(J)F",
674 : NULL,
675 : NULL,
676 : NULL,
677 : NULL,
678 : NULL
679 : },
680 : #endif
681 :
682 : #if !(SUPPORT_DOUBLE && SUPPORT_L2D)
683 : {
684 : ICMD_L2D,
685 : 0,
686 : BUILTIN_l2d,
687 : NULL,
688 : NULL,
689 : "l2d",
690 : "(J)D",
691 : NULL,
692 : NULL,
693 : NULL,
694 : NULL,
695 : NULL
696 : },
697 : #endif
698 :
699 : #if !(SUPPORT_FLOAT && SUPPORT_F2I)
700 : {
701 : ICMD_F2I,
702 : 0,
703 : BUILTIN_f2i,
704 : NULL,
705 : NULL,
706 : "f2i",
707 : "(F)I",
708 : NULL,
709 : NULL,
710 : NULL,
711 : NULL,
712 : NULL
713 : },
714 : #endif
715 :
716 : #if !(SUPPORT_FLOAT && SUPPORT_F2L)
717 : {
718 : ICMD_F2L,
719 : 0,
720 : BUILTIN_f2l,
721 : NULL,
722 : NULL,
723 : "f2l",
724 : "(F)J",
725 : NULL,
726 : NULL,
727 : NULL,
728 : NULL,
729 : NULL
730 : },
731 : #endif
732 :
733 : #if !(SUPPORT_DOUBLE && SUPPORT_D2I)
734 : {
735 : ICMD_D2I,
736 : 0,
737 : BUILTIN_d2i,
738 : NULL,
739 : NULL,
740 : "d2i",
741 : "(D)I",
742 : NULL,
743 : NULL,
744 : NULL,
745 : NULL,
746 : NULL
747 : },
748 : #endif
749 :
750 : #if !(SUPPORT_DOUBLE && SUPPORT_D2L)
751 : {
752 : ICMD_D2L,
753 : 0,
754 : BUILTIN_d2l,
755 : NULL,
756 : NULL,
757 : "d2l",
758 : "(D)J",
759 : NULL,
760 : NULL,
761 : NULL,
762 : NULL,
763 : NULL
764 : },
765 : #endif
766 :
767 :
768 : /* float functions ********************************************************/
769 :
770 : #if !SUPPORT_FLOAT
771 : {
772 : ICMD_FADD,
773 : 0,
774 : BUILTIN_fadd,
775 : NULL,
776 : NULL,
777 : "fadd",
778 : "(FF)F",
779 : NULL,
780 : NULL,
781 : NULL,
782 : NULL,
783 : NULL
784 : },
785 : {
786 : ICMD_FSUB,
787 : 0,
788 : BUILTIN_fsub,
789 : NULL,
790 : NULL,
791 : "fsub",
792 : "(FF)F",
793 : NULL,
794 : NULL,
795 : NULL,
796 : NULL,
797 : NULL
798 : },
799 : {
800 : ICMD_FMUL,
801 : 0,
802 : BUILTIN_fmul,
803 : NULL,
804 : NULL,
805 : "fmul",
806 : "(FF)F",
807 : NULL,
808 : NULL,
809 : NULL,
810 : NULL,
811 : NULL
812 : },
813 : {
814 : ICMD_FDIV,
815 : 0,
816 : BUILTIN_fdiv,
817 : NULL,
818 : NULL,
819 : "fdiv",
820 : "(FF)F",
821 : NULL,
822 : NULL,
823 : NULL,
824 : NULL,
825 : NULL
826 : },
827 : {
828 : ICMD_FNEG,
829 : 0,
830 : BUILTIN_fneg,
831 : NULL,
832 : NULL,
833 : "fneg",
834 : "(F)F",
835 : NULL,
836 : NULL,
837 : NULL,
838 : NULL,
839 : NULL
840 : },
841 : #endif /* !SUPPORT_FLOAT */
842 :
843 : #if !SUPPORT_FLOAT || !SUPPORT_FLOAT_CMP
844 : {
845 : ICMD_FCMPL,
846 : 0,
847 : BUILTIN_fcmpl,
848 : NULL,
849 : NULL,
850 : "fcmpl",
851 : "(FF)I",
852 : NULL,
853 : NULL,
854 : NULL,
855 : NULL,
856 : NULL
857 : },
858 : {
859 : ICMD_FCMPG,
860 : 0,
861 : BUILTIN_fcmpg,
862 : NULL,
863 : NULL,
864 : "fcmpg",
865 : "(FF)I",
866 : NULL,
867 : NULL,
868 : NULL,
869 : NULL,
870 : NULL
871 : },
872 : #endif /* !SUPPORT_FLOAT || !SUPPORT_FLOAT_CMP */
873 :
874 :
875 : /* double functions *******************************************************/
876 :
877 : #if !SUPPORT_DOUBLE
878 : {
879 : ICMD_DADD,
880 : 0,
881 : BUILTIN_dadd,
882 : NULL,
883 : NULL,
884 : "dadd",
885 : "(DD)D",
886 : NULL,
887 : NULL,
888 : NULL,
889 : NULL,
890 : NULL
891 : },
892 : {
893 : ICMD_DSUB,
894 : 0,
895 : BUILTIN_dsub,
896 : NULL,
897 : NULL,
898 : "dsub",
899 : "(DD)D",
900 : NULL,
901 : NULL,
902 : NULL,
903 : NULL,
904 : NULL
905 : },
906 : {
907 : ICMD_DMUL,
908 : 0,
909 : BUILTIN_dmul,
910 : NULL,
911 : NULL,
912 : "dmul",
913 : "(DD)D",
914 : NULL,
915 : NULL,
916 : NULL,
917 : NULL,
918 : NULL
919 : },
920 : {
921 : ICMD_DDIV,
922 : 0,
923 : BUILTIN_ddiv,
924 : NULL,
925 : NULL,
926 : "ddiv",
927 : "(DD)D",
928 : NULL,
929 : NULL,
930 : NULL,
931 : NULL,
932 : NULL
933 : },
934 : {
935 : ICMD_DNEG,
936 : 0,
937 : BUILTIN_dneg,
938 : NULL,
939 : NULL,
940 : "dneg",
941 : "(D)D",
942 : NULL,
943 : NULL,
944 : NULL,
945 : NULL,
946 : NULL
947 : },
948 : #endif /* !SUPPORT_DOUBLE */
949 :
950 : #if !SUPPORT_DOUBLE || !SUPPORT_DOUBLE_CMP
951 : {
952 : ICMD_DCMPL,
953 : 0,
954 : BUILTIN_dcmpl,
955 : NULL,
956 : NULL,
957 : "dcmpl",
958 : "(DD)I",
959 : NULL,
960 : NULL,
961 : NULL,
962 : NULL,
963 : NULL
964 : },
965 : {
966 : ICMD_DCMPG,
967 : 0,
968 : BUILTIN_dcmpg,
969 : NULL,
970 : NULL,
971 : "dcmpg",
972 : "(DD)I",
973 : NULL,
974 : NULL,
975 : NULL,
976 : NULL,
977 : NULL
978 : },
979 : #endif /* !SUPPORT_DOUBLE || !SUPPORT_DOUBLE_CMP */
980 :
981 :
982 : /* float/double functions *************************************************/
983 :
984 : #if !(SUPPORT_FLOAT && SUPPORT_DOUBLE)
985 : {
986 : ICMD_F2D,
987 : 0,
988 : BUILTIN_f2d,
989 : NULL,
990 : NULL,
991 : "f2d",
992 : "(F)D",
993 : NULL,
994 : NULL,
995 : NULL,
996 : NULL,
997 : NULL
998 : },
999 : {
1000 : ICMD_D2F,
1001 : 0,
1002 : BUILTIN_d2f,
1003 : NULL,
1004 : NULL,
1005 : "d2f",
1006 : "(D)F",
1007 : NULL,
1008 : NULL,
1009 : NULL,
1010 : NULL,
1011 : NULL
1012 : },
1013 : #endif /* !(SUPPORT_FLOAT && SUPPORT_DOUBLE) */
1014 :
1015 :
1016 : /* prevent a compiler warning if everything is supported (e.g. i386) */
1017 :
1018 : {
1019 : (ICMD) 255,
1020 : 0,
1021 : NULL,
1022 : NULL,
1023 : NULL,
1024 : NULL,
1025 : NULL,
1026 : NULL,
1027 : NULL,
1028 : NULL,
1029 : NULL,
1030 : NULL
1031 : },
1032 165 : };
1033 :
1034 :
1035 : /* automatically replaced functions *******************************************/
1036 :
1037 165 : static builtintable_entry builtintable_function[] = {
1038 : #if defined(ENABLE_JIT)
1039 :
1040 : /* java.lang.VMSystem.arraycopy(Ljava/lang/Object;ILjava/lang/Object;II)V STATIC NATIVE */
1041 :
1042 : {
1043 : ICMD_BUILTIN,
1044 : BUILTINTABLE_FLAG_STUB | BUILTINTABLE_FLAG_EXCEPTION,
1045 : BUILTIN_arraycopy,
1046 : NULL,
1047 : "java/lang/VMSystem",
1048 : "arraycopy",
1049 : "(Ljava/lang/Object;ILjava/lang/Object;II)V",
1050 : NULL,
1051 : NULL,
1052 : NULL,
1053 : NULL,
1054 : NULL
1055 : },
1056 :
1057 : /* java.lang.System.arraycopy(Ljava/lang/Object;ILjava/lang/Object;II)V PUBLIC STATIC */
1058 :
1059 : #if 0
1060 : /* We disable this one until we have a fix for the stacktrace
1061 : issue. */
1062 :
1063 : {
1064 : ICMD_BUILTIN,
1065 : BUILTINTABLE_FLAG_STUB | BUILTINTABLE_FLAG_EXCEPTION,
1066 : BUILTIN_arraycopy,
1067 : NULL,
1068 : "java/lang/System",
1069 : "arraycopy",
1070 : "(Ljava/lang/Object;ILjava/lang/Object;II)V",
1071 : NULL,
1072 : NULL,
1073 : NULL,
1074 : NULL,
1075 : NULL
1076 : },
1077 : #endif
1078 :
1079 : /* java.lang.VMSystem.currentTimeMillis()J PUBLIC STATIC */
1080 :
1081 : {
1082 : ICMD_BUILTIN,
1083 : 0,
1084 : BUILTIN_currenttimemillis,
1085 : NULL,
1086 : "java/lang/VMSystem",
1087 : "currentTimeMillis",
1088 : "()J",
1089 : NULL,
1090 : NULL,
1091 : NULL,
1092 : NULL,
1093 : NULL
1094 : },
1095 :
1096 : /* java.lang.System.currentTimeMillis()J PUBLIC STATIC */
1097 :
1098 : {
1099 : ICMD_BUILTIN,
1100 : 0,
1101 : BUILTIN_currenttimemillis,
1102 : NULL,
1103 : "java/lang/System",
1104 : "currentTimeMillis",
1105 : "()J",
1106 : NULL,
1107 : NULL,
1108 : NULL,
1109 : NULL,
1110 : NULL
1111 : },
1112 :
1113 : #endif /* defined(ENABLE_JIT) */
1114 :
1115 : /* stop entry */
1116 :
1117 : {
1118 : (ICMD) 255,
1119 : 0,
1120 : NULL,
1121 : NULL,
1122 : NULL,
1123 : NULL,
1124 : NULL,
1125 : NULL,
1126 : NULL,
1127 : NULL,
1128 : NULL,
1129 : NULL
1130 : },
1131 165 : };
1132 :
1133 :
1134 : /*
1135 : * These are local overrides for various environment variables in Emacs.
1136 : * Please do not remove this and leave it at the end of the file, where
1137 : * Emacs will automagically detect them.
1138 : * ---------------------------------------------------------------------
1139 : * Local variables:
1140 : * mode: c
1141 : * indent-tabs-mode: t
1142 : * c-basic-offset: 4
1143 : * tab-width: 4
1144 : * End:
1145 : * vim:noexpandtab:sw=4:ts=4:
1146 : */
|