/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * This file is part of SableVM. * * See the file "LICENSE" for Copyright information and the * * terms and conditions for copying, distribution and * * modification of SableVM. * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */ /* ---------------------------------------------------------------------- m4svm_bytecode_verification ---------------------------------------------------------------------- */ /* * This macro can be multi-called. * m4svm_multicall(m4svm_bytecode_verification) */ m4svm_define_begin v = ":], [:m4svm_bytecode_verification:])"; ;----------------------------------m4_dnl ----------------------------------- ;bytecode_verification_[::]m4svm_method_name ;----------------------------------m4_dnl ----------------------------------- .method public static svmTestBytecode_[::]m4svm_method_name[::](m4svm_arglist)$4 .limit stack $2 .limit locals $3 m4svm_parameters() [:m4_ifelse(m4_substr($:][:1, 0, 4), wide, [:wide :]m4_substr($:][:1, 5), $1):] $5 m4svm_finalizing_operations m4svm_return_type()return .end method m4svm_define_end v = ":])"; /* ---------------------------------------------------------------------- m4svm_ifaload_verification ---------------------------------------------------------------------- */ /* * This macro can be multi-called. * m4svm_multicall(m4svm_ifaload_verification) */ m4svm_define_begin v = ":], [:m4svm_ifaload_verification:])"; ;----------------------------------m4_dnl ----------------------------------- ;bytecode_verification_$1load ;----------------------------------m4_dnl ----------------------------------- .method public static svmTestBytecode_$1load($2$2$2$2$2)$2 .limit stack 5 .limit locals 5 $1load_0 $1load_1 $1load_2 $1load_3 $1load 4 $1return .end method m4svm_define_end v = ":])"; /* ---------------------------------------------------------------------- m4svm_ldload_verification ---------------------------------------------------------------------- */ /* * This macro can be multi-called. * m4svm_multicall(m4svm_ldload_verification) */ m4svm_define_begin v = ":], [:m4svm_ldload_verification:])"; ;----------------------------------m4_dnl ----------------------------------- ;bytecode_verification_$1load ;----------------------------------m4_dnl ----------------------------------- .method public static svmTestBytecode_$1load($2$2$2)$2 .limit stack 6 .limit locals 6 $1load_0 $1load_2 $1load 4 $1return .end method m4svm_define_end v = ":])"; /* ---------------------------------------------------------------------- m4svm_ifastore_verification ---------------------------------------------------------------------- */ /* * This macro can be multi-called. * m4svm_multicall(m4svm_ifastore_verification) */ m4svm_define_begin v = ":], [:m4svm_ifastore_verification:])"; ;----------------------------------m4_dnl ----------------------------------- ;bytecode_verification_$1store$3 ;----------------------------------m4_dnl ----------------------------------- .method public static svmTestBytecode_$1store$3($2)$2 .limit stack 1 .limit locals 5 $1load_0 $1store_0 $1load_0 $1store_1 $1load_0 $1store_2 $1load_0 $1store_3 $1load_0 $1store 4 $1load_0 $1return .end method m4svm_define_end v = ":])"; /* ---------------------------------------------------------------------- m4svm_ldstore_verification ---------------------------------------------------------------------- */ /* * This macro can be multi-called. * m4svm_multicall(m4svm_ldstore_verification) */ m4svm_define_begin v = ":], [:m4svm_ldstore_verification:])"; ;----------------------------------m4_dnl ----------------------------------- ;bytecode_verification_$1store$3 ;----------------------------------m4_dnl ----------------------------------- .method public static svmTestBytecode_$1store$3($2)$2 .limit stack 2 .limit locals 6 $1load_0 $1store_0 $1load_0 $1store_2 $1load_0 $1store_3 $1load_0 $1store 4 $1load_0 $1return .end method m4svm_define_end v = ":])"; /* ---------------------------------------------------------------------- m4svm_astore_ret_verification ---------------------------------------------------------------------- */ /* * This macro can be multi-called. * m4svm_multicall(m4svm_astore_ret_verification) */ m4svm_define_begin v = ":], [:m4svm_astore_ret_verification:])"; ;----------------------------------m4_dnl ----------------------------------- ;bytecode_verification_astore_ret$1 ;----------------------------------m4_dnl ----------------------------------- .method public static svmTestBytecode_astore_ret$1()V .limit stack 1 .limit locals 5 jsr label0 jsr label1 jsr label2 jsr label3 jsr label4 return label0: astore_0 ret 0 label1: astore_1 ret 1 label2: astore_2 ret 2 label3: astore_3 ret 3 label4: astore 4 ret 4 .end method m4svm_define_end v = ":])"; /* ---------------------------------------------------------------------- m4svm_jsrret_verification ---------------------------------------------------------------------- */ /* * This macro can be multi-called. * m4svm_multicall(m4svm_jsrret_verification) */ m4svm_define_begin v = ":], [:m4svm_jsrret_verification:])"; ;----------------------------------m4_dnl ----------------------------------- ;bytecode_verification_$1 ;----------------------------------m4_dnl ----------------------------------- .method public static svmTestBytecode_$1()V .limit stack 1 .limit locals 1 jsr label1 return label1: astore_0 ret 0 .end method m4svm_define_end v = ":])"; /* ---------------------------------------------------------------------- m4svm_if_icmp_check ---------------------------------------------------------------------- */ /* * This macro can be multi-called. * m4svm_multicall(m4svm_if_icmp_check) */ m4svm_define_begin v = ":], [:m4svm_if_icmp_check:])"; ;----------------------------------m4_dnl ----------------------------------- ;bytecode_verification_if_icmp$1_check ;----------------------------------m4_dnl ----------------------------------- .method public static svmTestBytecode_if_icmp$1_check(II)I .limit stack 2 .limit locals 2 iload 0 iload 1 if_icmp$1 label1 bipush 0 ireturn label1: bipush 1 ireturn .end method m4svm_define_end v = ":])"; /* ---------------------------------------------------------------------- m4svm_if_acmp_check ---------------------------------------------------------------------- */ /* * This macro can be multi-called. * m4svm_multicall(m4svm_if_acmp_check) */ m4svm_define_begin v = ":], [:m4svm_if_acmp_check:])"; ;----------------------------------m4_dnl ----------------------------------- ;bytecode_verification_if_acmp$1_check ;----------------------------------m4_dnl ----------------------------------- .method public static svmTestBytecode_if_acmp$1_check(Ljava/lang/Object;Ljava/lang/Object;)I .limit stack 2 .limit locals 2 aload 0 aload 1 if_acmp$1 label1 bipush 0 ireturn label1: bipush 1 ireturn .end method m4svm_define_end v = ":])"; /* ---------------------------------------------------------------------- m4svm_if_check ---------------------------------------------------------------------- */ /* * This macro can be multi-called. * m4svm_multicall(m4svm_if_check) */ m4svm_define_begin v = ":], [:m4svm_if_check:])"; ;----------------------------------m4_dnl ----------------------------------- ;bytecode_verification_if$1_check ;----------------------------------m4_dnl ----------------------------------- .method public static svmTestBytecode_if$1_check(I)I .limit stack 1 .limit locals 1 iload 0 if$1 label1 bipush 0 ireturn label1: bipush 1 ireturn .end method m4svm_define_end v = ":])"; /* ---------------------------------------------------------------------- m4svm_ifnnnull_check ---------------------------------------------------------------------- */ /* * This macro can be multi-called. * m4svm_multicall(m4svm_ifnnnull_check) */ m4svm_define_begin v = ":], [:m4svm_ifnnnull_check:])"; ;----------------------------------m4_dnl ----------------------------------- ;bytecode_verification_if ;----------------------------------m4_dnl ----------------------------------- .method public static svmTestBytecode_if$1_check(Ljava/lang/Object;)I .limit stack 1 .limit locals 1 aload 0 if$1 label1 bipush 0 ireturn label1: bipush 1 ireturn .end method m4svm_define_end v = ":])"; ;--------------------------------------------------------------------- ;--------------------------------------------------------------------- ; Tail of file ;--------------------------------------------------------------------- ;--------------------------------------------------------------------- m4svm_on(1) ;--------------------------------------------------------------------- ;bytecode_verification_athrow ;--------------------------------------------------------------------- .method public static svmTestBytecode_athrow(Ljava/lang/RuntimeException;)V .limit stack 1 .limit locals 1 aload_0 athrow .end method ;--------------------------------------------------------------------- ;bytecode_verification_ldc_integer ;--------------------------------------------------------------------- .method public static svmTestBytecode_ldc_integer()I .limit stack 1 .limit locals 0 ldc 1 ireturn .end method ;--------------------------------------------------------------------- ;bytecode_verification_ldc_long ;--------------------------------------------------------------------- .method public static svmTestBytecode_ldc_long()J .limit stack 2 .limit locals 0 ldc2_w 1 lreturn .end method ;--------------------------------------------------------------------- ;bytecode_verification_ldc_double ;--------------------------------------------------------------------- .method public static svmTestBytecode_ldc_double()D .limit stack 2 .limit locals 0 ldc2_w 1.0 dreturn .end method ;--------------------------------------------------------------------- ;bytecode_verification_getstatic_reference ;--------------------------------------------------------------------- .method public static svmTestBytecode_getstatic_reference()Ljava/lang/Object; .limit stack 1 .limit locals 1 getstatic SVMTestInlinabilityBytecodeVerificationFields/aStaticObject Ljava/lang/Object; areturn .end method ;--------------------------------------------------------------------- ;bytecode_verification_putstatic_reference ;--------------------------------------------------------------------- .method public static svmTestBytecode_putstatic_reference(Ljava/lang/Object;)Ljava/lang/Object; .limit stack 2 .limit locals 2 aload 0 putstatic SVMTestInlinabilityBytecodeVerificationFields/aStaticObject Ljava/lang/Object; getstatic SVMTestInlinabilityBytecodeVerificationFields/aStaticObject Ljava/lang/Object; areturn .end method ;--------------------------------------------------------------------- ;bytecode_verification_getfield_reference ;--------------------------------------------------------------------- .method public static svmTestBytecode_getfield_reference(LSVMTestInlinabilityBytecodeVerificationFields;)Ljava/lang/Object; .limit stack 1 .limit locals 1 aload 0 getfield SVMTestInlinabilityBytecodeVerificationFields/anObject Ljava/lang/Object; areturn .end method ;--------------------------------------------------------------------- ;bytecode_verification_putfield_reference ;--------------------------------------------------------------------- .method public static svmTestBytecode_putfield_reference(LSVMTestInlinabilityBytecodeVerificationFields;Ljava/lang/Object;)Ljava/lang/Object; .limit stack 2 .limit locals 2 aload 0 aload 1 putfield SVMTestInlinabilityBytecodeVerificationFields/anObject Ljava/lang/Object; aload_0 getfield SVMTestInlinabilityBytecodeVerificationFields/anObject Ljava/lang/Object; areturn .end method m4svm_off()