< prev index next >

src/share/vm/interpreter/bytecodes.cpp

Print this page




 469   def(_newarray            , "newarray"            , "bc"   , NULL    , T_OBJECT ,  0, true );
 470   def(_anewarray           , "anewarray"           , "bkk"  , NULL    , T_OBJECT ,  0, true );
 471   def(_arraylength         , "arraylength"         , "b"    , NULL    , T_VOID   ,  0, true );
 472   def(_athrow              , "athrow"              , "b"    , NULL    , T_VOID   , -1, true );
 473   def(_checkcast           , "checkcast"           , "bkk"  , NULL    , T_OBJECT ,  0, true );
 474   def(_instanceof          , "instanceof"          , "bkk"  , NULL    , T_INT    ,  0, true );
 475   def(_monitorenter        , "monitorenter"        , "b"    , NULL    , T_VOID   , -1, true );
 476   def(_monitorexit         , "monitorexit"         , "b"    , NULL    , T_VOID   , -1, true );
 477   def(_wide                , "wide"                , ""     , NULL    , T_VOID   ,  0, false);
 478   def(_multianewarray      , "multianewarray"      , "bkkc" , NULL    , T_OBJECT ,  1, true );
 479   def(_ifnull              , "ifnull"              , "boo"  , NULL    , T_VOID   , -1, false);
 480   def(_ifnonnull           , "ifnonnull"           , "boo"  , NULL    , T_VOID   , -1, false);
 481   def(_goto_w              , "goto_w"              , "boooo", NULL    , T_VOID   ,  0, false);
 482   def(_jsr_w               , "jsr_w"               , "boooo", NULL    , T_INT    ,  0, false);
 483   def(_breakpoint          , "breakpoint"          , ""     , NULL    , T_VOID   ,  0, true);
 484   def(_vload               , "vload"               , "bi"   , "wbii"  , T_VALUETYPE,1, false);
 485   def(_vstore              , "vstore"              , "bi"   , "wbii"  , T_VOID   , -1, false);
 486   def(_vaload              , "vaload"              , "b"    , NULL    , T_VALUETYPE, -1, true);
 487   def(_vastore             , "vastore"             , "b"    , NULL    , T_VOID   , -3, true );
 488   def(_vreturn             , "vreturn"             , "b"    , NULL    , T_VALUETYPE, -1, true);
 489   def(_vgetfield           , "vgetfield"           , "bJJ"  , NULL    , T_ILLEGAL,  0, true );
 490   def(_vbox                , "vbox"                , "bkk"  , NULL    , T_OBJECT ,  0, true );
 491   def(_vunbox              , "vunbox"              , "bkk"  , NULL    , T_VALUETYPE,0, true );
 492   def(_vdefault            , "vdefault"            , "bkk"  , NULL    , T_VALUETYPE, 1, true);
 493   def(_vwithfield          , "vwithfield"          , "bJJ"  , NULL    , T_VALUETYPE, -1, true );
 494 
 495   //  JVM bytecodes
 496   //  bytecode               bytecode name           format   wide f.   result tp  stk traps  std code
 497 
 498   def(_fast_agetfield      , "fast_agetfield"      , "bJJ"  , NULL    , T_OBJECT ,  0, true , _getfield       );
 499   def(_fast_qgetfield      , "fast_qgetfield"      , "bJJ"  , NULL    , T_VALUETYPE, 0, true, _getfield       );
 500   def(_fast_bgetfield      , "fast_bgetfield"      , "bJJ"  , NULL    , T_INT    ,  0, true , _getfield       );
 501   def(_fast_cgetfield      , "fast_cgetfield"      , "bJJ"  , NULL    , T_CHAR   ,  0, true , _getfield       );
 502   def(_fast_dgetfield      , "fast_dgetfield"      , "bJJ"  , NULL    , T_DOUBLE ,  0, true , _getfield       );
 503   def(_fast_fgetfield      , "fast_fgetfield"      , "bJJ"  , NULL    , T_FLOAT  ,  0, true , _getfield       );
 504   def(_fast_igetfield      , "fast_igetfield"      , "bJJ"  , NULL    , T_INT    ,  0, true , _getfield       );
 505   def(_fast_lgetfield      , "fast_lgetfield"      , "bJJ"  , NULL    , T_LONG   ,  0, true , _getfield       );
 506   def(_fast_sgetfield      , "fast_sgetfield"      , "bJJ"  , NULL    , T_SHORT  ,  0, true , _getfield       );
 507 
 508   def(_fast_aputfield      , "fast_aputfield"      , "bJJ"  , NULL    , T_OBJECT ,  0, true , _putfield       );
 509   def(_fast_qputfield      , "fast_qputfield"      , "bJJ"  , NULL    , T_VALUETYPE, 0, true, _putfield       );


 526   def(_fast_icaload        , "fast_icaload"        , "bi_"  , NULL    , T_INT    ,  0, false, _iload);
 527 
 528   // Faster method invocation.
 529   def(_fast_invokevfinal   , "fast_invokevfinal"   , "bJJ"  , NULL    , T_ILLEGAL, -1, true, _invokevirtual   );
 530 
 531   def(_fast_linearswitch   , "fast_linearswitch"   , ""     , NULL    , T_VOID   , -1, false, _lookupswitch   );
 532   def(_fast_binaryswitch   , "fast_binaryswitch"   , ""     , NULL    , T_VOID   , -1, false, _lookupswitch   );
 533 
 534   def(_return_register_finalizer , "return_register_finalizer" , "b"    , NULL    , T_VOID   ,  0, true, _return);
 535 
 536   def(_invokehandle        , "invokehandle"        , "bJJ"  , NULL    , T_ILLEGAL, -1, true, _invokevirtual   );
 537 
 538   def(_fast_aldc           , "fast_aldc"           , "bj"   , NULL    , T_OBJECT,   1, true,  _ldc   );
 539   def(_fast_aldc_w         , "fast_aldc_w"         , "bJJ"  , NULL    , T_OBJECT,   1, true,  _ldc_w );
 540 
 541   def(_nofast_getfield     , "nofast_getfield"     , "bJJ"  , NULL    , T_ILLEGAL,  0, true,  _getfield       );
 542   def(_nofast_putfield     , "nofast_putfield"     , "bJJ"  , NULL    , T_ILLEGAL, -2, true , _putfield       );
 543 
 544   def(_nofast_aload_0      , "nofast_aload_0"      , "b"    , NULL    , T_ILLEGAL,  1, true , _aload_0        );
 545   def(_nofast_iload        , "nofast_iload"        , "bi"   , NULL    , T_ILLEGAL,  1, false, _iload          );

 546 
 547   def(_shouldnotreachhere  , "_shouldnotreachhere" , "b"    , NULL    , T_VOID   ,  0, false);
 548 
 549   // compare can_trap information for each bytecode with the
 550   // can_trap information for the corresponding base bytecode
 551   // (if a rewritten bytecode can trap, so must the base bytecode)
 552   #ifdef ASSERT
 553     { for (int i = 0; i < number_of_codes; i++) {
 554         if (is_defined(i)) {
 555           Code code = cast(i);
 556           Code java = java_code(code);
 557           if (can_trap(code) && !can_trap(java))
 558             fatal("%s can trap => %s can trap, too", name(code), name(java));
 559         }
 560       }
 561     }
 562   #endif
 563 
 564   // initialization successful
 565   _is_initialized = true;


 469   def(_newarray            , "newarray"            , "bc"   , NULL    , T_OBJECT ,  0, true );
 470   def(_anewarray           , "anewarray"           , "bkk"  , NULL    , T_OBJECT ,  0, true );
 471   def(_arraylength         , "arraylength"         , "b"    , NULL    , T_VOID   ,  0, true );
 472   def(_athrow              , "athrow"              , "b"    , NULL    , T_VOID   , -1, true );
 473   def(_checkcast           , "checkcast"           , "bkk"  , NULL    , T_OBJECT ,  0, true );
 474   def(_instanceof          , "instanceof"          , "bkk"  , NULL    , T_INT    ,  0, true );
 475   def(_monitorenter        , "monitorenter"        , "b"    , NULL    , T_VOID   , -1, true );
 476   def(_monitorexit         , "monitorexit"         , "b"    , NULL    , T_VOID   , -1, true );
 477   def(_wide                , "wide"                , ""     , NULL    , T_VOID   ,  0, false);
 478   def(_multianewarray      , "multianewarray"      , "bkkc" , NULL    , T_OBJECT ,  1, true );
 479   def(_ifnull              , "ifnull"              , "boo"  , NULL    , T_VOID   , -1, false);
 480   def(_ifnonnull           , "ifnonnull"           , "boo"  , NULL    , T_VOID   , -1, false);
 481   def(_goto_w              , "goto_w"              , "boooo", NULL    , T_VOID   ,  0, false);
 482   def(_jsr_w               , "jsr_w"               , "boooo", NULL    , T_INT    ,  0, false);
 483   def(_breakpoint          , "breakpoint"          , ""     , NULL    , T_VOID   ,  0, true);
 484   def(_vload               , "vload"               , "bi"   , "wbii"  , T_VALUETYPE,1, false);
 485   def(_vstore              , "vstore"              , "bi"   , "wbii"  , T_VOID   , -1, false);
 486   def(_vaload              , "vaload"              , "b"    , NULL    , T_VALUETYPE, -1, true);
 487   def(_vastore             , "vastore"             , "b"    , NULL    , T_VOID   , -3, true );
 488   def(_vreturn             , "vreturn"             , "b"    , NULL    , T_VALUETYPE, -1, true);

 489   def(_vbox                , "vbox"                , "bkk"  , NULL    , T_OBJECT ,  0, true );
 490   def(_vunbox              , "vunbox"              , "bkk"  , NULL    , T_VALUETYPE,0, true );
 491   def(_vdefault            , "vdefault"            , "bkk"  , NULL    , T_VALUETYPE, 1, true);
 492   def(_vwithfield          , "vwithfield"          , "bJJ"  , NULL    , T_VALUETYPE, -1, true );
 493 
 494   //  JVM bytecodes
 495   //  bytecode               bytecode name           format   wide f.   result tp  stk traps  std code
 496 
 497   def(_fast_agetfield      , "fast_agetfield"      , "bJJ"  , NULL    , T_OBJECT ,  0, true , _getfield       );
 498   def(_fast_qgetfield      , "fast_qgetfield"      , "bJJ"  , NULL    , T_VALUETYPE, 0, true, _getfield       );
 499   def(_fast_bgetfield      , "fast_bgetfield"      , "bJJ"  , NULL    , T_INT    ,  0, true , _getfield       );
 500   def(_fast_cgetfield      , "fast_cgetfield"      , "bJJ"  , NULL    , T_CHAR   ,  0, true , _getfield       );
 501   def(_fast_dgetfield      , "fast_dgetfield"      , "bJJ"  , NULL    , T_DOUBLE ,  0, true , _getfield       );
 502   def(_fast_fgetfield      , "fast_fgetfield"      , "bJJ"  , NULL    , T_FLOAT  ,  0, true , _getfield       );
 503   def(_fast_igetfield      , "fast_igetfield"      , "bJJ"  , NULL    , T_INT    ,  0, true , _getfield       );
 504   def(_fast_lgetfield      , "fast_lgetfield"      , "bJJ"  , NULL    , T_LONG   ,  0, true , _getfield       );
 505   def(_fast_sgetfield      , "fast_sgetfield"      , "bJJ"  , NULL    , T_SHORT  ,  0, true , _getfield       );
 506 
 507   def(_fast_aputfield      , "fast_aputfield"      , "bJJ"  , NULL    , T_OBJECT ,  0, true , _putfield       );
 508   def(_fast_qputfield      , "fast_qputfield"      , "bJJ"  , NULL    , T_VALUETYPE, 0, true, _putfield       );


 525   def(_fast_icaload        , "fast_icaload"        , "bi_"  , NULL    , T_INT    ,  0, false, _iload);
 526 
 527   // Faster method invocation.
 528   def(_fast_invokevfinal   , "fast_invokevfinal"   , "bJJ"  , NULL    , T_ILLEGAL, -1, true, _invokevirtual   );
 529 
 530   def(_fast_linearswitch   , "fast_linearswitch"   , ""     , NULL    , T_VOID   , -1, false, _lookupswitch   );
 531   def(_fast_binaryswitch   , "fast_binaryswitch"   , ""     , NULL    , T_VOID   , -1, false, _lookupswitch   );
 532 
 533   def(_return_register_finalizer , "return_register_finalizer" , "b"    , NULL    , T_VOID   ,  0, true, _return);
 534 
 535   def(_invokehandle        , "invokehandle"        , "bJJ"  , NULL    , T_ILLEGAL, -1, true, _invokevirtual   );
 536 
 537   def(_fast_aldc           , "fast_aldc"           , "bj"   , NULL    , T_OBJECT,   1, true,  _ldc   );
 538   def(_fast_aldc_w         , "fast_aldc_w"         , "bJJ"  , NULL    , T_OBJECT,   1, true,  _ldc_w );
 539 
 540   def(_nofast_getfield     , "nofast_getfield"     , "bJJ"  , NULL    , T_ILLEGAL,  0, true,  _getfield       );
 541   def(_nofast_putfield     , "nofast_putfield"     , "bJJ"  , NULL    , T_ILLEGAL, -2, true , _putfield       );
 542 
 543   def(_nofast_aload_0      , "nofast_aload_0"      , "b"    , NULL    , T_ILLEGAL,  1, true , _aload_0        );
 544   def(_nofast_iload        , "nofast_iload"        , "bi"   , NULL    , T_ILLEGAL,  1, false, _iload          );
 545   def(_vgetfield           , "vgetfield"           , "bJJ"  , NULL    , T_ILLEGAL,  0, true , _getfield       );
 546 
 547   def(_shouldnotreachhere  , "_shouldnotreachhere" , "b"    , NULL    , T_VOID   ,  0, false);
 548 
 549   // compare can_trap information for each bytecode with the
 550   // can_trap information for the corresponding base bytecode
 551   // (if a rewritten bytecode can trap, so must the base bytecode)
 552   #ifdef ASSERT
 553     { for (int i = 0; i < number_of_codes; i++) {
 554         if (is_defined(i)) {
 555           Code code = cast(i);
 556           Code java = java_code(code);
 557           if (can_trap(code) && !can_trap(java))
 558             fatal("%s can trap => %s can trap, too", name(code), name(java));
 559         }
 560       }
 561     }
 562   #endif
 563 
 564   // initialization successful
 565   _is_initialized = true;
< prev index next >