xref: /aosp_15_r20/external/google-smali/examples/InvokeCustom/Main.smali (revision 37f5703ca959d1ce24046e7595880d209e15c133)
1*37f5703cSAndroid Build Coastguard Worker.class LMain;
2*37f5703cSAndroid Build Coastguard Worker
3*37f5703cSAndroid Build Coastguard Worker.super Ljava/lang/Object;
4*37f5703cSAndroid Build Coastguard Worker
5*37f5703cSAndroid Build Coastguard Worker.method public static main([Ljava/lang/String;)V
6*37f5703cSAndroid Build Coastguard Worker    .registers 15
7*37f5703cSAndroid Build Coastguard Worker
8*37f5703cSAndroid Build Coastguard Worker    new-instance v0, LCustom;
9*37f5703cSAndroid Build Coastguard Worker    invoke-direct {v0}, LCustom;-><init>()V
10*37f5703cSAndroid Build Coastguard Worker
11*37f5703cSAndroid Build Coastguard Worker    const-string v1, "Arg to doSomething"
12*37f5703cSAndroid Build Coastguard Worker
13*37f5703cSAndroid Build Coastguard Worker    invoke-custom {v0, v1}, normallyLinkedCallSite("doSomething", (LCustom;Ljava/lang/String;)Ljava/lang/String;, "just testing")@LBootstrapLinker;->normalLink(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/String;)Ljava/lang/invoke/CallSite;
14*37f5703cSAndroid Build Coastguard Worker    move-result-object v2
15*37f5703cSAndroid Build Coastguard Worker    sget-object v3, Ljava/lang/System;->out:Ljava/io/PrintStream;
16*37f5703cSAndroid Build Coastguard Worker    const-string v4, "got back - "
17*37f5703cSAndroid Build Coastguard Worker    invoke-virtual {v3, v4}, Ljava/io/PrintStream;->print(Ljava/lang/String;)V
18*37f5703cSAndroid Build Coastguard Worker    invoke-virtual {v3, v2}, Ljava/io/PrintStream;->println(Ljava/lang/String;)V
19*37f5703cSAndroid Build Coastguard Worker
20*37f5703cSAndroid Build Coastguard Worker    invoke-custom {v0, v1}, backwardsLinkedCallSite("doSomething", (LCustom;Ljava/lang/String;)Ljava/lang/String;, "just testing")@LBootstrapLinker;->backwardsLink(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/String;)Ljava/lang/invoke/CallSite;
21*37f5703cSAndroid Build Coastguard Worker    move-result-object v2
22*37f5703cSAndroid Build Coastguard Worker    sget-object v3, Ljava/lang/System;->out:Ljava/io/PrintStream;
23*37f5703cSAndroid Build Coastguard Worker    const-string v4, "got back - "
24*37f5703cSAndroid Build Coastguard Worker    invoke-virtual {v3, v4}, Ljava/io/PrintStream;->print(Ljava/lang/String;)V
25*37f5703cSAndroid Build Coastguard Worker    invoke-virtual {v3, v2}, Ljava/io/PrintStream;->println(Ljava/lang/String;)V
26*37f5703cSAndroid Build Coastguard Worker.end method