12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970 |
- # Tests invoke-polymorphic added in DEX version 38.
- # Disassembled from dexdump test files.
- # Repo: https://android.googlesource.com/platform/art/
- # File: test/dexdump/invoke-polymorphic.dex
- # Compile using smali: https://github.com/JesusFreke/smali
- # java -jar smali.jar assemble invoke-polymorphic.smali --api 28
- .class public LMain;
- .super Ljava/lang/Object;
- .source "Main.java"
- # direct methods
- .method public constructor <init>()V
- .registers 1
- .prologue
- .line 9
- invoke-direct {p0}, Ljava/lang/Object;-><init>()V
- return-void
- .end method
- .method public static main([Ljava/lang/String;)V
- .registers 10
- .param p0, "args" # [Ljava/lang/String;
- .annotation system Ldalvik/annotation/Throws;
- value = {
- Ljava/lang/Throwable;
- }
- .end annotation
- .prologue
- const-wide v2, 0x400199999999999aL # 2.2
- const/4 v4, 0x1
- .line 31
- const/4 v0, 0x0
- .line 32
- .local v0, "handle":Ljava/lang/invoke/MethodHandle;
- const/4 v5, 0x0
- .line 33
- .local v5, "o":Ljava/lang/Object;
- const-string/jumbo v1, "a"
- move v6, v4
- invoke-polymorphic/range {v0 .. v6}, Ljava/lang/invoke/MethodHandle;->invoke([Ljava/lang/Object;)Ljava/lang/Object;, (Ljava/lang/String;DILjava/lang/Object;I)Ljava/lang/String;
- move-result-object v7
- .line 34
- .local v7, "s":Ljava/lang/String;
- invoke-polymorphic {v0, v2, v3, v4}, Ljava/lang/invoke/MethodHandle;->invokeExact([Ljava/lang/Object;)Ljava/lang/Object;, (DI)I
- move-result v8
- .line 35
- .local v8, "x":I
- const-string/jumbo v1, "a"
- invoke-polymorphic {v0, v1, v2, v3, v4}, Ljava/lang/invoke/MethodHandle;->invoke([Ljava/lang/Object;)Ljava/lang/Object;, (Ljava/lang/String;DI)V
- .line 56
- return-void
- .end method
|