LCOV - code coverage report
Current view: top level - vm/jit - builtintable.inc (source / functions) Hit Total Coverage
Test: coverage.info Lines: 6 6 100.0 %
Date: 2015-06-10 18:10:59 Functions: 0 0 -

          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             :  */

Generated by: LCOV version 1.11