Home | History | Annotate | Download | only in dexdump
      1 Processing 'invoke-custom.dex'...
      2 Opened 'invoke-custom.dex', DEX version '038'
      3 DEX file header:
      4 magic               : 'dex\n038\0'
      5 checksum            : db57516f
      6 signature           : 57be...ffc4
      7 file_size           : 3276
      8 header_size         : 112
      9 link_size           : 0
     10 link_off            : 0 (0x000000)
     11 string_ids_size     : 82
     12 string_ids_off      : 112 (0x000070)
     13 type_ids_size       : 31
     14 type_ids_off        : 440 (0x0001b8)
     15 proto_ids_size      : 16
     16 proto_ids_off       : 564 (0x000234)
     17 field_ids_size      : 3
     18 field_ids_off       : 756 (0x0002f4)
     19 method_ids_size     : 18
     20 method_ids_off      : 780 (0x00030c)
     21 class_defs_size     : 1
     22 class_defs_off      : 932 (0x0003a4)
     23 data_size           : 2304
     24 data_off            : 972 (0x0003cc)
     25 
     26 Class #0 header:
     27 class_idx           : 10
     28 access_flags        : 1 (0x0001)
     29 superclass_idx      : 15
     30 interfaces_off      : 0 (0x000000)
     31 source_file_idx     : 38
     32 annotations_off     : 1316 (0x000524)
     33 class_data_off      : 3014 (0x000bc6)
     34 static_fields_size  : 1
     35 instance_fields_size: 0
     36 direct_methods_size : 4
     37 virtual_methods_size: 1
     38 
     39 Class #0 annotations:
     40 Annotations on method #1 'add'
     41   VISIBILITY_BUILD Lcom/android/jack/annotations/CalledByInvokeCustom; argumentTypes={ I I } invokeMethodHandle={ Lcom/android/jack/annotations/LinkerMethodHandle; argumentTypes={ Ljava/lang/invoke/MethodHandles$Lookup; Ljava/lang/String; Ljava/lang/invoke/MethodType; Z B C S I F D Ljava/lang/String; Ljava/lang/Class; J } enclosingType=Lcom/android/jack/java7/invokecustom/test004/Tests; kind=INVOKE_STATIC name="linkerMethod" } methodHandleExtraArgs={ Lcom/android/jack/annotations/Constant; booleanValue={ true } Lcom/android/jack/annotations/Constant; byteValue={ 1 } Lcom/android/jack/annotations/Constant; charValue={ 97 } Lcom/android/jack/annotations/Constant; shortValue={ 1024 } Lcom/android/jack/annotations/Constant; intValue={ 1 } Lcom/android/jack/annotations/Constant; floatValue={ 11.1 } Lcom/android/jack/annotations/Constant; doubleValue={ 2.2 } Lcom/android/jack/annotations/Constant; stringValue={ "Hello" } Lcom/android/jack/annotations/Constant; classValue={ Lcom/android/jack/java7/invokecustom/test004/Tests; } Lcom/android/jack/annotations/Constant; longValue={ 123456789 } } name="add" returnType=I
     42 Annotations on method #2 'linkerMethod'
     43   VISIBILITY_SYSTEM Ldalvik/annotation/Signature; value={ "(" "Ljava/lang/invoke/MethodHandles$Lookup;" "Ljava/lang/String;" "Ljava/lang/invoke/MethodType;" "ZBCSIFD" "Ljava/lang/String;" "Ljava/lang/Class" "<*>;J)" "Ljava/lang/invoke/CallSite;" }
     44   VISIBILITY_SYSTEM Ldalvik/annotation/Throws; value={ Ljava/lang/Throwable; }
     45 Annotations on method #4 'test'
     46   VISIBILITY_SYSTEM Ldalvik/annotation/Throws; value={ Ljava/lang/Throwable; }
     47   VISIBILITY_RUNTIME Lorg/junit/Test;
     48 
     49 Class #0            -
     50   Class descriptor  : 'Lcom/android/jack/java7/invokecustom/test004/Tests;'
     51   Access flags      : 0x0001 (PUBLIC)
     52   Superclass        : 'Ljava/lang/Object;'
     53   Interfaces        -
     54   Static fields     -
     55     #0              : (in Lcom/android/jack/java7/invokecustom/test004/Tests;)
     56       name          : 'fieldCallSite'
     57       type          : 'Ljava/lang/invoke/CallSite;'
     58       access        : 0x0009 (PUBLIC STATIC)
     59   Instance fields   -
     60   Direct methods    -
     61     #0              : (in Lcom/android/jack/java7/invokecustom/test004/Tests;)
     62       name          : '<init>'
     63       type          : '()V'
     64       access        : 0x10001 (PUBLIC CONSTRUCTOR)
     65       code          -
     66       registers     : 1
     67       ins           : 1
     68       outs          : 1
     69       insns size    : 4 16-bit code units
     70 0003ec:                                        |[0003ec] com.android.jack.java7.invokecustom.test004.Tests.<init>:()V
     71 0003fc: 7010 0600 0000                         |0000: invoke-direct {v0}, Ljava/lang/Object;.<init>:()V // method@0006
     72 000402: 0e00                                   |0003: return-void
     73       catches       : (none)
     74       positions     : 
     75         0x0000 line=35
     76       locals        : 
     77         0x0000 - 0x0004 reg=0 this Lcom/android/jack/java7/invokecustom/test004/Tests; 
     78 
     79     #1              : (in Lcom/android/jack/java7/invokecustom/test004/Tests;)
     80       name          : 'add'
     81       type          : '(II)I'
     82       access        : 0x000a (PRIVATE STATIC)
     83       code          -
     84       registers     : 3
     85       ins           : 2
     86       outs          : 0
     87       insns size    : 3 16-bit code units
     88 000404:                                        |[000404] com.android.jack.java7.invokecustom.test004.Tests.add:(II)I
     89 000414: 9000 0102                              |0000: add-int v0, v1, v2
     90 000418: 0f00                                   |0002: return v0
     91       catches       : (none)
     92       positions     : 
     93         0x0000 line=55
     94       locals        : 
     95         0x0000 - 0x0003 reg=1 (null) I 
     96         0x0000 - 0x0003 reg=2 (null) I 
     97 
     98     #2              : (in Lcom/android/jack/java7/invokecustom/test004/Tests;)
     99       name          : 'linkerMethod'
    100       type          : '(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;ZBCSIFDLjava/lang/String;Ljava/lang/Class;J)Ljava/lang/invoke/CallSite;'
    101       access        : 0x000a (PRIVATE STATIC)
    102       code          -
    103       registers     : 24
    104       ins           : 15
    105       outs          : 6
    106       insns size    : 83 16-bit code units
    107 00041c:                                        |[00041c] com.android.jack.java7.invokecustom.test004.Tests.linkerMethod:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;ZBCSIFDLjava/lang/String;Ljava/lang/Class;J)Ljava/lang/invoke/CallSite;
    108 00042c: 7110 1100 0c00                         |0000: invoke-static {v12}, Ljunit/framework/Assert;.assertTrue:(Z)V // method@0011
    109 000432: 1212                                   |0003: const/4 v2, #int 1 // #1
    110 000434: 7120 0d00 d200                         |0004: invoke-static {v2, v13}, Ljunit/framework/Assert;.assertEquals:(II)V // method@000d
    111 00043a: 1302 6100                              |0007: const/16 v2, #int 97 // #61
    112 00043e: 7120 0a00 e200                         |0009: invoke-static {v2, v14}, Ljunit/framework/Assert;.assertEquals:(CC)V // method@000a
    113 000444: 1302 0004                              |000c: const/16 v2, #int 1024 // #400
    114 000448: 7120 0d00 f200                         |000e: invoke-static {v2, v15}, Ljunit/framework/Assert;.assertEquals:(II)V // method@000d
    115 00044e: 1212                                   |0011: const/4 v2, #int 1 // #1
    116 000450: 0200 1000                              |0012: move/from16 v0, v16
    117 000454: 7120 0d00 0200                         |0014: invoke-static {v2, v0}, Ljunit/framework/Assert;.assertEquals:(II)V // method@000d
    118 00045a: 1202                                   |0017: const/4 v2, #int 0 // #0
    119 00045c: 1403 9a99 3141                         |0018: const v3, #float 11.1 // #4131999a
    120 000462: 0200 1100                              |001b: move/from16 v0, v17
    121 000466: 7130 0c00 0302                         |001d: invoke-static {v3, v0, v2}, Ljunit/framework/Assert;.assertEquals:(FFF)V // method@000c
    122 00046c: 1606 0000                              |0020: const-wide/16 v6, #int 0 // #0
    123 000470: 1802 9a99 9999 9999 0140               |0022: const-wide v2, #double 2.2 // #400199999999999a
    124 00047a: 0504 1200                              |0027: move-wide/from16 v4, v18
    125 00047e: 7706 0b00 0200                         |0029: invoke-static/range {v2, v3, v4, v5, v6, v7}, Ljunit/framework/Assert;.assertEquals:(DDD)V // method@000b
    126 000484: 1b02 0700 0000                         |002c: const-string/jumbo v2, "Hello" // string@00000007
    127 00048a: 0800 1400                              |002f: move-object/from16 v0, v20
    128 00048e: 7120 1000 0200                         |0031: invoke-static {v2, v0}, Ljunit/framework/Assert;.assertEquals:(Ljava/lang/String;Ljava/lang/String;)V // method@0010
    129 000494: 1c02 0a00                              |0034: const-class v2, Lcom/android/jack/java7/invokecustom/test004/Tests; // type@000a
    130 000498: 0800 1500                              |0036: move-object/from16 v0, v21
    131 00049c: 7120 0f00 0200                         |0038: invoke-static {v2, v0}, Ljunit/framework/Assert;.assertEquals:(Ljava/lang/Object;Ljava/lang/Object;)V // method@000f
    132 0004a2: 1702 15cd 5b07                         |003b: const-wide/32 v2, #float 1.6536e-34 // #075bcd15
    133 0004a8: 0500 1600                              |003e: move-wide/from16 v0, v22
    134 0004ac: 7140 0e00 3210                         |0040: invoke-static {v2, v3, v0, v1}, Ljunit/framework/Assert;.assertEquals:(JJ)V // method@000e
    135 0004b2: 7100 0900 0000                         |0043: invoke-static {}, Ljava/lang/invoke/MethodHandles;.lookup:()Ljava/lang/invoke/MethodHandles$Lookup; // method@0009
    136 0004b8: 0c02                                   |0046: move-result-object v2
    137 0004ba: 1c03 0a00                              |0047: const-class v3, Lcom/android/jack/java7/invokecustom/test004/Tests; // type@000a
    138 0004be: 6e40 0800 32ba                         |0049: invoke-virtual {v2, v3, v10, v11}, Ljava/lang/invoke/MethodHandles$Lookup;.findStatic:(Ljava/lang/Class;Ljava/lang/String;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/MethodHandle; // method@0008
    139 0004c4: 0c02                                   |004c: move-result-object v2
    140 0004c6: 2203 1400                              |004d: new-instance v3, Ljava/lang/invoke/ConstantCallSite; // type@0014
    141 0004ca: 7020 0700 2300                         |004f: invoke-direct {v3, v2}, Ljava/lang/invoke/ConstantCallSite;.<init>:(Ljava/lang/invoke/MethodHandle;)V // method@0007
    142 0004d0: 1103                                   |0052: return-object v3
    143       catches       : (none)
    144       positions     : 
    145         0x0000 line=62
    146         0x0003 line=63
    147         0x0007 line=64
    148         0x000c line=65
    149         0x0011 line=66
    150         0x0017 line=67
    151         0x0020 line=68
    152         0x002c line=69
    153         0x0034 line=70
    154         0x003b line=71
    155         0x0043 line=72
    156         0x004d line=73
    157       locals        : 
    158         0x0000 - 0x0053 reg=9 (null) Ljava/lang/invoke/MethodHandles$Lookup; 
    159         0x0000 - 0x0053 reg=10 (null) Ljava/lang/String; 
    160         0x0000 - 0x0053 reg=11 (null) Ljava/lang/invoke/MethodType; 
    161         0x0000 - 0x0053 reg=12 (null) Z 
    162         0x0000 - 0x0053 reg=13 (null) B 
    163         0x0000 - 0x0053 reg=14 (null) C 
    164         0x0000 - 0x0053 reg=15 (null) S 
    165         0x0000 - 0x0053 reg=16 (null) I 
    166         0x0000 - 0x0053 reg=17 (null) F 
    167         0x0000 - 0x0053 reg=18 (null) D 
    168         0x0000 - 0x0053 reg=20 (null) Ljava/lang/String; 
    169         0x0000 - 0x0053 reg=21 (null) Ljava/lang/Class; 
    170         0x0000 - 0x0053 reg=22 (null) J 
    171 
    172     #3              : (in Lcom/android/jack/java7/invokecustom/test004/Tests;)
    173       name          : 'main'
    174       type          : '([Ljava/lang/String;)V'
    175       access        : 0x0009 (PUBLIC STATIC)
    176       code          -
    177       registers     : 4
    178       ins           : 1
    179       outs          : 2
    180       insns size    : 12 16-bit code units
    181 0004d4:                                        |[0004d4] com.android.jack.java7.invokecustom.test004.Tests.main:([Ljava/lang/String;)V
    182 0004e4: 6200 0200                              |0000: sget-object v0, Ljava/lang/System;.out:Ljava/io/PrintStream; // field@0002
    183 0004e8: 1221                                   |0002: const/4 v1, #int 2 // #2
    184 0004ea: 1232                                   |0003: const/4 v2, #int 3 // #3
    185 0004ec: fc20 0000 2100                         |0004: invoke-custom {v1, v2}, call_site@0000
    186 0004f2: 0a01                                   |0007: move-result v1
    187 0004f4: 6e20 0500 1000                         |0008: invoke-virtual {v0, v1}, Ljava/io/PrintStream;.println:(I)V // method@0005
    188 0004fa: 0e00                                   |000b: return-void
    189       catches       : (none)
    190       positions     : 
    191         0x0000 line=82
    192         0x000b line=83
    193       locals        : 
    194         0x0000 - 0x000c reg=3 (null) [Ljava/lang/String; 
    195 
    196   Virtual methods   -
    197     #0              : (in Lcom/android/jack/java7/invokecustom/test004/Tests;)
    198       name          : 'test'
    199       type          : '()V'
    200       access        : 0x0001 (PUBLIC)
    201       code          -
    202       registers     : 3
    203       ins           : 1
    204       outs          : 2
    205       insns size    : 11 16-bit code units
    206 0004fc:                                        |[0004fc] com.android.jack.java7.invokecustom.test004.Tests.test:()V
    207 00050c: 1220                                   |0000: const/4 v0, #int 2 // #2
    208 00050e: 1231                                   |0001: const/4 v1, #int 3 // #3
    209 000510: fc20 0100 1000                         |0002: invoke-custom {v0, v1}, call_site@0001
    210 000516: 0a00                                   |0005: move-result v0
    211 000518: 1251                                   |0006: const/4 v1, #int 5 // #5
    212 00051a: 7120 0d00 0100                         |0007: invoke-static {v1, v0}, Ljunit/framework/Assert;.assertEquals:(II)V // method@000d
    213 000520: 0e00                                   |000a: return-void
    214       catches       : (none)
    215       positions     : 
    216         0x0000 line=78
    217         0x000a line=79
    218       locals        : 
    219         0x0000 - 0x000b reg=2 this Lcom/android/jack/java7/invokecustom/test004/Tests; 
    220 
    221   source_file_idx   : 38 (Tests.java)
    222 
    223 Method handle #0:
    224   type        : invoke-static
    225   target      : Lcom/android/jack/java7/invokecustom/test004/Tests; linkerMethod
    226   target_type : (Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;ZBCSIFDLjava/lang/String;Ljava/lang/Class;J)Ljava/lang/invoke/CallSite;
    227 Call site #0:
    228   link_argument[0] : 0 (MethodHandle)
    229   link_argument[1] : add (String)
    230   link_argument[2] : (II)I (MethodType)
    231   link_argument[3] : 1 (int)
    232   link_argument[4] : 1 (int)
    233   link_argument[5] : 97 (int)
    234   link_argument[6] : 1024 (int)
    235   link_argument[7] : 1 (int)
    236   link_argument[8] : 11.1 (float)
    237   link_argument[9] : 2.2 (double)
    238   link_argument[10] : Hello (String)
    239   link_argument[11] : Tests (Class)
    240   link_argument[12] : 123456789 (long)
    241 Call site #1:
    242   link_argument[0] : 0 (MethodHandle)
    243   link_argument[1] : add (String)
    244   link_argument[2] : (II)I (MethodType)
    245   link_argument[3] : 1 (int)
    246   link_argument[4] : 1 (int)
    247   link_argument[5] : 97 (int)
    248   link_argument[6] : 1024 (int)
    249   link_argument[7] : 1 (int)
    250   link_argument[8] : 11.1 (float)
    251   link_argument[9] : 2.2 (double)
    252   link_argument[10] : Hello (String)
    253   link_argument[11] : Tests (Class)
    254   link_argument[12] : 123456789 (long)
    255