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