xref: /aosp_15_r20/art/runtime/interpreter/mterp/x86_64ng/other.S (revision 795d594fd825385562da6b089ea9b2033f3abf5a)
1*795d594fSAndroid Build Coastguard Worker%def unused():
2*795d594fSAndroid Build Coastguard Worker    int3
3*795d594fSAndroid Build Coastguard Worker
4*795d594fSAndroid Build Coastguard Worker%def op_const():
5*795d594fSAndroid Build Coastguard Worker    /* const vAA, #+BBBBbbbb */
6*795d594fSAndroid Build Coastguard Worker    movl    2(rPC), %eax                    # grab all 32 bits at once
7*795d594fSAndroid Build Coastguard Worker    SET_VREG %eax, rINSTq                   # vAA<- eax
8*795d594fSAndroid Build Coastguard Worker    ADVANCE_PC_FETCH_AND_GOTO_NEXT 3
9*795d594fSAndroid Build Coastguard Worker
10*795d594fSAndroid Build Coastguard Worker%def op_const_16():
11*795d594fSAndroid Build Coastguard Worker    /* const/16 vAA, #+BBBB */
12*795d594fSAndroid Build Coastguard Worker    movswl  2(rPC), %ecx                    # ecx <- ssssBBBB
13*795d594fSAndroid Build Coastguard Worker    SET_VREG %ecx, rINSTq                   # vAA <- ssssBBBB
14*795d594fSAndroid Build Coastguard Worker    ADVANCE_PC_FETCH_AND_GOTO_NEXT 2
15*795d594fSAndroid Build Coastguard Worker
16*795d594fSAndroid Build Coastguard Worker%def op_const_4():
17*795d594fSAndroid Build Coastguard Worker    /* const/4 vA, #+B */
18*795d594fSAndroid Build Coastguard Worker    movsbl  rINSTbl, %eax                   # eax <-ssssssBx
19*795d594fSAndroid Build Coastguard Worker    andl    MACRO_LITERAL(0xf), rINST       # rINST <- A
20*795d594fSAndroid Build Coastguard Worker    sarl    MACRO_LITERAL(4), %eax
21*795d594fSAndroid Build Coastguard Worker    SET_VREG %eax, rINSTq
22*795d594fSAndroid Build Coastguard Worker    ADVANCE_PC_FETCH_AND_GOTO_NEXT 1
23*795d594fSAndroid Build Coastguard Worker
24*795d594fSAndroid Build Coastguard Worker%def op_const_high16():
25*795d594fSAndroid Build Coastguard Worker    /* const/high16 vAA, #+BBBB0000 */
26*795d594fSAndroid Build Coastguard Worker    movzwl  2(rPC), %eax                    # eax <- 0000BBBB
27*795d594fSAndroid Build Coastguard Worker    sall    MACRO_LITERAL(16), %eax         # eax <- BBBB0000
28*795d594fSAndroid Build Coastguard Worker    SET_VREG %eax, rINSTq                   # vAA <- eax
29*795d594fSAndroid Build Coastguard Worker    ADVANCE_PC_FETCH_AND_GOTO_NEXT 2
30*795d594fSAndroid Build Coastguard Worker
31*795d594fSAndroid Build Coastguard Worker%def op_const_object(jumbo="0", helper="nterp_load_object"):
32*795d594fSAndroid Build Coastguard Worker   // Fast-path which gets the object from thread-local cache.
33*795d594fSAndroid Build Coastguard Worker%  fetch_from_thread_cache("%rax", miss_label="2f")
34*795d594fSAndroid Build Coastguard Worker   cmpq MACRO_LITERAL(0), rSELF:THREAD_READ_BARRIER_MARK_REG00_OFFSET
35*795d594fSAndroid Build Coastguard Worker   jne 3f
36*795d594fSAndroid Build Coastguard Worker1:
37*795d594fSAndroid Build Coastguard Worker   SET_VREG_OBJECT %eax, rINSTq            # vAA <- value
38*795d594fSAndroid Build Coastguard Worker   .if $jumbo
39*795d594fSAndroid Build Coastguard Worker   ADVANCE_PC_FETCH_AND_GOTO_NEXT 3
40*795d594fSAndroid Build Coastguard Worker   .else
41*795d594fSAndroid Build Coastguard Worker   ADVANCE_PC_FETCH_AND_GOTO_NEXT 2
42*795d594fSAndroid Build Coastguard Worker   .endif
43*795d594fSAndroid Build Coastguard Worker2:
44*795d594fSAndroid Build Coastguard Worker   EXPORT_PC
45*795d594fSAndroid Build Coastguard Worker   movq rSELF:THREAD_SELF_OFFSET, %rdi
46*795d594fSAndroid Build Coastguard Worker   movq 0(%rsp), %rsi
47*795d594fSAndroid Build Coastguard Worker   movq rPC, %rdx
48*795d594fSAndroid Build Coastguard Worker   call SYMBOL($helper)
49*795d594fSAndroid Build Coastguard Worker   jmp 1b
50*795d594fSAndroid Build Coastguard Worker3:
51*795d594fSAndroid Build Coastguard Worker   // 00 is %rax
52*795d594fSAndroid Build Coastguard Worker   call art_quick_read_barrier_mark_reg00
53*795d594fSAndroid Build Coastguard Worker   jmp 1b
54*795d594fSAndroid Build Coastguard Worker
55*795d594fSAndroid Build Coastguard Worker%def op_const_class():
56*795d594fSAndroid Build Coastguard Worker%  op_const_object(jumbo="0", helper="nterp_get_class")
57*795d594fSAndroid Build Coastguard Worker
58*795d594fSAndroid Build Coastguard Worker%def op_const_method_handle():
59*795d594fSAndroid Build Coastguard Worker%  op_const_object(jumbo="0")
60*795d594fSAndroid Build Coastguard Worker
61*795d594fSAndroid Build Coastguard Worker%def op_const_method_type():
62*795d594fSAndroid Build Coastguard Worker%  op_const_object(jumbo="0")
63*795d594fSAndroid Build Coastguard Worker
64*795d594fSAndroid Build Coastguard Worker%def op_const_string():
65*795d594fSAndroid Build Coastguard Worker   /* const/string vAA, String@BBBB */
66*795d594fSAndroid Build Coastguard Worker%  op_const_object(jumbo="0")
67*795d594fSAndroid Build Coastguard Worker
68*795d594fSAndroid Build Coastguard Worker%def op_const_string_jumbo():
69*795d594fSAndroid Build Coastguard Worker   /* const/string vAA, String@BBBBBBBB */
70*795d594fSAndroid Build Coastguard Worker%  op_const_object(jumbo="1")
71*795d594fSAndroid Build Coastguard Worker
72*795d594fSAndroid Build Coastguard Worker%def op_const_wide():
73*795d594fSAndroid Build Coastguard Worker    /* const-wide vAA, #+HHHHhhhhBBBBbbbb */
74*795d594fSAndroid Build Coastguard Worker    movq    2(rPC), %rax                    # rax <- HHHHhhhhBBBBbbbb
75*795d594fSAndroid Build Coastguard Worker    SET_WIDE_VREG %rax, rINSTq
76*795d594fSAndroid Build Coastguard Worker    ADVANCE_PC_FETCH_AND_GOTO_NEXT 5
77*795d594fSAndroid Build Coastguard Worker
78*795d594fSAndroid Build Coastguard Worker%def op_const_wide_16():
79*795d594fSAndroid Build Coastguard Worker    /* const-wide/16 vAA, #+BBBB */
80*795d594fSAndroid Build Coastguard Worker    movswq  2(rPC), %rax                    # rax <- ssssssssssssBBBB
81*795d594fSAndroid Build Coastguard Worker    SET_WIDE_VREG %rax, rINSTq              # store
82*795d594fSAndroid Build Coastguard Worker    ADVANCE_PC_FETCH_AND_GOTO_NEXT 2
83*795d594fSAndroid Build Coastguard Worker
84*795d594fSAndroid Build Coastguard Worker%def op_const_wide_32():
85*795d594fSAndroid Build Coastguard Worker    /* const-wide/32 vAA, #+BBBBbbbb */
86*795d594fSAndroid Build Coastguard Worker    movslq   2(rPC), %rax                   # eax <- ssssssssBBBBbbbb
87*795d594fSAndroid Build Coastguard Worker    SET_WIDE_VREG %rax, rINSTq              # store
88*795d594fSAndroid Build Coastguard Worker    ADVANCE_PC_FETCH_AND_GOTO_NEXT 3
89*795d594fSAndroid Build Coastguard Worker
90*795d594fSAndroid Build Coastguard Worker%def op_const_wide_high16():
91*795d594fSAndroid Build Coastguard Worker    /* const-wide/high16 vAA, #+BBBB000000000000 */
92*795d594fSAndroid Build Coastguard Worker    movzwq  2(rPC), %rax                    # eax <- 000000000000BBBB
93*795d594fSAndroid Build Coastguard Worker    salq    $$48, %rax                      # eax <- 00000000BBBB0000
94*795d594fSAndroid Build Coastguard Worker    SET_WIDE_VREG %rax, rINSTq              # v[AA+0] <- eax
95*795d594fSAndroid Build Coastguard Worker    ADVANCE_PC_FETCH_AND_GOTO_NEXT 2
96*795d594fSAndroid Build Coastguard Worker
97*795d594fSAndroid Build Coastguard Worker%def op_monitor_enter():
98*795d594fSAndroid Build Coastguard Worker/*
99*795d594fSAndroid Build Coastguard Worker * Synchronize on an object.
100*795d594fSAndroid Build Coastguard Worker */
101*795d594fSAndroid Build Coastguard Worker    /* monitor-enter vAA */
102*795d594fSAndroid Build Coastguard Worker    EXPORT_PC
103*795d594fSAndroid Build Coastguard Worker    GET_VREG %edi, rINSTq
104*795d594fSAndroid Build Coastguard Worker    call art_quick_lock_object
105*795d594fSAndroid Build Coastguard Worker    ADVANCE_PC_FETCH_AND_GOTO_NEXT 1
106*795d594fSAndroid Build Coastguard Worker
107*795d594fSAndroid Build Coastguard Worker%def op_monitor_exit():
108*795d594fSAndroid Build Coastguard Worker/*
109*795d594fSAndroid Build Coastguard Worker * Unlock an object.
110*795d594fSAndroid Build Coastguard Worker *
111*795d594fSAndroid Build Coastguard Worker * Exceptions that occur when unlocking a monitor need to appear as
112*795d594fSAndroid Build Coastguard Worker * if they happened at the following instruction.  See the Dalvik
113*795d594fSAndroid Build Coastguard Worker * instruction spec.
114*795d594fSAndroid Build Coastguard Worker */
115*795d594fSAndroid Build Coastguard Worker    /* monitor-exit vAA */
116*795d594fSAndroid Build Coastguard Worker    EXPORT_PC
117*795d594fSAndroid Build Coastguard Worker    GET_VREG %edi, rINSTq
118*795d594fSAndroid Build Coastguard Worker    call art_quick_unlock_object
119*795d594fSAndroid Build Coastguard Worker    ADVANCE_PC_FETCH_AND_GOTO_NEXT 1
120*795d594fSAndroid Build Coastguard Worker
121*795d594fSAndroid Build Coastguard Worker%def op_move(is_object="0"):
122*795d594fSAndroid Build Coastguard Worker    /* for move, move-object, long-to-int */
123*795d594fSAndroid Build Coastguard Worker    /* op vA, vB */
124*795d594fSAndroid Build Coastguard Worker    movl    rINST, %eax                     # eax <- BA
125*795d594fSAndroid Build Coastguard Worker    andb    $$0xf, %al                      # eax <- A
126*795d594fSAndroid Build Coastguard Worker    shrl    $$4, rINST                      # rINST <- B
127*795d594fSAndroid Build Coastguard Worker    GET_VREG %edx, rINSTq
128*795d594fSAndroid Build Coastguard Worker    .if $is_object
129*795d594fSAndroid Build Coastguard Worker    SET_VREG_OBJECT %edx, %rax              # fp[A] <- fp[B]
130*795d594fSAndroid Build Coastguard Worker    .else
131*795d594fSAndroid Build Coastguard Worker    SET_VREG %edx, %rax                     # fp[A] <- fp[B]
132*795d594fSAndroid Build Coastguard Worker    .endif
133*795d594fSAndroid Build Coastguard Worker    ADVANCE_PC_FETCH_AND_GOTO_NEXT 1
134*795d594fSAndroid Build Coastguard Worker
135*795d594fSAndroid Build Coastguard Worker%def op_move_16(is_object="0"):
136*795d594fSAndroid Build Coastguard Worker    /* for: move/16, move-object/16 */
137*795d594fSAndroid Build Coastguard Worker    /* op vAAAA, vBBBB */
138*795d594fSAndroid Build Coastguard Worker    movzwq  4(rPC), %rcx                    # ecx <- BBBB
139*795d594fSAndroid Build Coastguard Worker    movzwq  2(rPC), %rax                    # eax <- AAAA
140*795d594fSAndroid Build Coastguard Worker    GET_VREG %edx, %rcx
141*795d594fSAndroid Build Coastguard Worker    .if $is_object
142*795d594fSAndroid Build Coastguard Worker    SET_VREG_OBJECT %edx, %rax              # fp[A] <- fp[B]
143*795d594fSAndroid Build Coastguard Worker    .else
144*795d594fSAndroid Build Coastguard Worker    SET_VREG %edx, %rax                     # fp[A] <- fp[B]
145*795d594fSAndroid Build Coastguard Worker    .endif
146*795d594fSAndroid Build Coastguard Worker    ADVANCE_PC_FETCH_AND_GOTO_NEXT 3
147*795d594fSAndroid Build Coastguard Worker
148*795d594fSAndroid Build Coastguard Worker%def op_move_exception():
149*795d594fSAndroid Build Coastguard Worker    /* move-exception vAA */
150*795d594fSAndroid Build Coastguard Worker    movl    rSELF:THREAD_EXCEPTION_OFFSET, %eax
151*795d594fSAndroid Build Coastguard Worker    SET_VREG_OBJECT %eax, rINSTq            # fp[AA] <- exception object
152*795d594fSAndroid Build Coastguard Worker    movl    $$0, rSELF:THREAD_EXCEPTION_OFFSET
153*795d594fSAndroid Build Coastguard Worker    ADVANCE_PC_FETCH_AND_GOTO_NEXT 1
154*795d594fSAndroid Build Coastguard Worker
155*795d594fSAndroid Build Coastguard Worker%def op_move_from16(is_object="0"):
156*795d594fSAndroid Build Coastguard Worker    /* for: move/from16, move-object/from16 */
157*795d594fSAndroid Build Coastguard Worker    /* op vAA, vBBBB */
158*795d594fSAndroid Build Coastguard Worker    movzwq  2(rPC), %rax                    # eax <- BBBB
159*795d594fSAndroid Build Coastguard Worker    GET_VREG %edx, %rax                     # edx <- fp[BBBB]
160*795d594fSAndroid Build Coastguard Worker    .if $is_object
161*795d594fSAndroid Build Coastguard Worker    SET_VREG_OBJECT %edx, rINSTq            # fp[A] <- fp[B]
162*795d594fSAndroid Build Coastguard Worker    .else
163*795d594fSAndroid Build Coastguard Worker    SET_VREG %edx, rINSTq                   # fp[A] <- fp[B]
164*795d594fSAndroid Build Coastguard Worker    .endif
165*795d594fSAndroid Build Coastguard Worker    ADVANCE_PC_FETCH_AND_GOTO_NEXT 2
166*795d594fSAndroid Build Coastguard Worker
167*795d594fSAndroid Build Coastguard Worker%def op_move_object():
168*795d594fSAndroid Build Coastguard Worker%  op_move(is_object="1")
169*795d594fSAndroid Build Coastguard Worker
170*795d594fSAndroid Build Coastguard Worker%def op_move_object_16():
171*795d594fSAndroid Build Coastguard Worker%  op_move_16(is_object="1")
172*795d594fSAndroid Build Coastguard Worker
173*795d594fSAndroid Build Coastguard Worker%def op_move_object_from16():
174*795d594fSAndroid Build Coastguard Worker%  op_move_from16(is_object="1")
175*795d594fSAndroid Build Coastguard Worker
176*795d594fSAndroid Build Coastguard Worker%def op_move_result(is_object="0"):
177*795d594fSAndroid Build Coastguard Worker    /* for: move-result, move-result-object */
178*795d594fSAndroid Build Coastguard Worker    /* op vAA */
179*795d594fSAndroid Build Coastguard Worker    .if $is_object
180*795d594fSAndroid Build Coastguard Worker    SET_VREG_OBJECT %eax, rINSTq            # fp[A] <- fp[B]
181*795d594fSAndroid Build Coastguard Worker    .else
182*795d594fSAndroid Build Coastguard Worker    SET_VREG %eax, rINSTq                   # fp[A] <- fp[B]
183*795d594fSAndroid Build Coastguard Worker    .endif
184*795d594fSAndroid Build Coastguard Worker    ADVANCE_PC_FETCH_AND_GOTO_NEXT 1
185*795d594fSAndroid Build Coastguard Worker
186*795d594fSAndroid Build Coastguard Worker%def op_move_result_object():
187*795d594fSAndroid Build Coastguard Worker%  op_move_result(is_object="1")
188*795d594fSAndroid Build Coastguard Worker
189*795d594fSAndroid Build Coastguard Worker%def op_move_result_wide():
190*795d594fSAndroid Build Coastguard Worker    /* move-result-wide vAA */
191*795d594fSAndroid Build Coastguard Worker    SET_WIDE_VREG %rax, rINSTq                   # v[AA] <- rdx
192*795d594fSAndroid Build Coastguard Worker    ADVANCE_PC_FETCH_AND_GOTO_NEXT 1
193*795d594fSAndroid Build Coastguard Worker
194*795d594fSAndroid Build Coastguard Worker%def op_move_wide():
195*795d594fSAndroid Build Coastguard Worker    /* move-wide vA, vB */
196*795d594fSAndroid Build Coastguard Worker    /* NOTE: regs can overlap, e.g. "move v6,v7" or "move v7,v6" */
197*795d594fSAndroid Build Coastguard Worker    movl    rINST, %ecx                     # ecx <- BA
198*795d594fSAndroid Build Coastguard Worker    sarl    $$4, rINST                      # rINST <- B
199*795d594fSAndroid Build Coastguard Worker    andb    $$0xf, %cl                      # ecx <- A
200*795d594fSAndroid Build Coastguard Worker    GET_WIDE_VREG %rdx, rINSTq              # rdx <- v[B]
201*795d594fSAndroid Build Coastguard Worker    SET_WIDE_VREG %rdx, %rcx                # v[A] <- rdx
202*795d594fSAndroid Build Coastguard Worker    ADVANCE_PC_FETCH_AND_GOTO_NEXT 1
203*795d594fSAndroid Build Coastguard Worker
204*795d594fSAndroid Build Coastguard Worker%def op_move_wide_16():
205*795d594fSAndroid Build Coastguard Worker    /* move-wide/16 vAAAA, vBBBB */
206*795d594fSAndroid Build Coastguard Worker    /* NOTE: regs can overlap, e.g. "move v6,v7" or "move v7,v6" */
207*795d594fSAndroid Build Coastguard Worker    movzwq  4(rPC), %rcx                    # ecx<- BBBB
208*795d594fSAndroid Build Coastguard Worker    movzwq  2(rPC), %rax                    # eax<- AAAA
209*795d594fSAndroid Build Coastguard Worker    GET_WIDE_VREG %rdx, %rcx                # rdx <- v[B]
210*795d594fSAndroid Build Coastguard Worker    SET_WIDE_VREG %rdx, %rax                # v[A] <- rdx
211*795d594fSAndroid Build Coastguard Worker    ADVANCE_PC_FETCH_AND_GOTO_NEXT 3
212*795d594fSAndroid Build Coastguard Worker
213*795d594fSAndroid Build Coastguard Worker%def op_move_wide_from16():
214*795d594fSAndroid Build Coastguard Worker    /* move-wide/from16 vAA, vBBBB */
215*795d594fSAndroid Build Coastguard Worker    /* NOTE: regs can overlap, e.g. "move v6,v7" or "move v7,v6" */
216*795d594fSAndroid Build Coastguard Worker    movzwl  2(rPC), %ecx                    # ecx <- BBBB
217*795d594fSAndroid Build Coastguard Worker    GET_WIDE_VREG %rdx, %rcx                # rdx <- v[B]
218*795d594fSAndroid Build Coastguard Worker    SET_WIDE_VREG %rdx, rINSTq              # v[A] <- rdx
219*795d594fSAndroid Build Coastguard Worker    ADVANCE_PC_FETCH_AND_GOTO_NEXT 2
220*795d594fSAndroid Build Coastguard Worker
221*795d594fSAndroid Build Coastguard Worker%def op_nop():
222*795d594fSAndroid Build Coastguard Worker    ADVANCE_PC_FETCH_AND_GOTO_NEXT 1
223*795d594fSAndroid Build Coastguard Worker
224*795d594fSAndroid Build Coastguard Worker%def op_unused_3e():
225*795d594fSAndroid Build Coastguard Worker%  unused()
226*795d594fSAndroid Build Coastguard Worker
227*795d594fSAndroid Build Coastguard Worker%def op_unused_3f():
228*795d594fSAndroid Build Coastguard Worker%  unused()
229*795d594fSAndroid Build Coastguard Worker
230*795d594fSAndroid Build Coastguard Worker%def op_unused_40():
231*795d594fSAndroid Build Coastguard Worker%  unused()
232*795d594fSAndroid Build Coastguard Worker
233*795d594fSAndroid Build Coastguard Worker%def op_unused_41():
234*795d594fSAndroid Build Coastguard Worker%  unused()
235*795d594fSAndroid Build Coastguard Worker
236*795d594fSAndroid Build Coastguard Worker%def op_unused_42():
237*795d594fSAndroid Build Coastguard Worker%  unused()
238*795d594fSAndroid Build Coastguard Worker
239*795d594fSAndroid Build Coastguard Worker%def op_unused_43():
240*795d594fSAndroid Build Coastguard Worker%  unused()
241*795d594fSAndroid Build Coastguard Worker
242*795d594fSAndroid Build Coastguard Worker%def op_unused_73():
243*795d594fSAndroid Build Coastguard Worker%  unused()
244*795d594fSAndroid Build Coastguard Worker
245*795d594fSAndroid Build Coastguard Worker%def op_unused_79():
246*795d594fSAndroid Build Coastguard Worker%  unused()
247*795d594fSAndroid Build Coastguard Worker
248*795d594fSAndroid Build Coastguard Worker%def op_unused_7a():
249*795d594fSAndroid Build Coastguard Worker%  unused()
250*795d594fSAndroid Build Coastguard Worker
251*795d594fSAndroid Build Coastguard Worker%def op_unused_e3():
252*795d594fSAndroid Build Coastguard Worker%  unused()
253*795d594fSAndroid Build Coastguard Worker
254*795d594fSAndroid Build Coastguard Worker%def op_unused_e4():
255*795d594fSAndroid Build Coastguard Worker%  unused()
256*795d594fSAndroid Build Coastguard Worker
257*795d594fSAndroid Build Coastguard Worker%def op_unused_e5():
258*795d594fSAndroid Build Coastguard Worker%  unused()
259*795d594fSAndroid Build Coastguard Worker
260*795d594fSAndroid Build Coastguard Worker%def op_unused_e6():
261*795d594fSAndroid Build Coastguard Worker%  unused()
262*795d594fSAndroid Build Coastguard Worker
263*795d594fSAndroid Build Coastguard Worker%def op_unused_e7():
264*795d594fSAndroid Build Coastguard Worker%  unused()
265*795d594fSAndroid Build Coastguard Worker
266*795d594fSAndroid Build Coastguard Worker%def op_unused_e8():
267*795d594fSAndroid Build Coastguard Worker%  unused()
268*795d594fSAndroid Build Coastguard Worker
269*795d594fSAndroid Build Coastguard Worker%def op_unused_e9():
270*795d594fSAndroid Build Coastguard Worker%  unused()
271*795d594fSAndroid Build Coastguard Worker
272*795d594fSAndroid Build Coastguard Worker%def op_unused_ea():
273*795d594fSAndroid Build Coastguard Worker%  unused()
274*795d594fSAndroid Build Coastguard Worker
275*795d594fSAndroid Build Coastguard Worker%def op_unused_eb():
276*795d594fSAndroid Build Coastguard Worker%  unused()
277*795d594fSAndroid Build Coastguard Worker
278*795d594fSAndroid Build Coastguard Worker%def op_unused_ec():
279*795d594fSAndroid Build Coastguard Worker%  unused()
280*795d594fSAndroid Build Coastguard Worker
281*795d594fSAndroid Build Coastguard Worker%def op_unused_ed():
282*795d594fSAndroid Build Coastguard Worker%  unused()
283*795d594fSAndroid Build Coastguard Worker
284*795d594fSAndroid Build Coastguard Worker%def op_unused_ee():
285*795d594fSAndroid Build Coastguard Worker%  unused()
286*795d594fSAndroid Build Coastguard Worker
287*795d594fSAndroid Build Coastguard Worker%def op_unused_ef():
288*795d594fSAndroid Build Coastguard Worker%  unused()
289*795d594fSAndroid Build Coastguard Worker
290*795d594fSAndroid Build Coastguard Worker%def op_unused_f0():
291*795d594fSAndroid Build Coastguard Worker%  unused()
292*795d594fSAndroid Build Coastguard Worker
293*795d594fSAndroid Build Coastguard Worker%def op_unused_f1():
294*795d594fSAndroid Build Coastguard Worker%  unused()
295*795d594fSAndroid Build Coastguard Worker
296*795d594fSAndroid Build Coastguard Worker%def op_unused_f2():
297*795d594fSAndroid Build Coastguard Worker%  unused()
298*795d594fSAndroid Build Coastguard Worker
299*795d594fSAndroid Build Coastguard Worker%def op_unused_f3():
300*795d594fSAndroid Build Coastguard Worker%  unused()
301*795d594fSAndroid Build Coastguard Worker
302*795d594fSAndroid Build Coastguard Worker%def op_unused_f4():
303*795d594fSAndroid Build Coastguard Worker%  unused()
304*795d594fSAndroid Build Coastguard Worker
305*795d594fSAndroid Build Coastguard Worker%def op_unused_f5():
306*795d594fSAndroid Build Coastguard Worker%  unused()
307*795d594fSAndroid Build Coastguard Worker
308*795d594fSAndroid Build Coastguard Worker%def op_unused_f6():
309*795d594fSAndroid Build Coastguard Worker%  unused()
310*795d594fSAndroid Build Coastguard Worker
311*795d594fSAndroid Build Coastguard Worker%def op_unused_f7():
312*795d594fSAndroid Build Coastguard Worker%  unused()
313*795d594fSAndroid Build Coastguard Worker
314*795d594fSAndroid Build Coastguard Worker%def op_unused_f8():
315*795d594fSAndroid Build Coastguard Worker%  unused()
316*795d594fSAndroid Build Coastguard Worker
317*795d594fSAndroid Build Coastguard Worker%def op_unused_f9():
318*795d594fSAndroid Build Coastguard Worker%  unused()
319*795d594fSAndroid Build Coastguard Worker
320*795d594fSAndroid Build Coastguard Worker%def op_unused_fc():
321*795d594fSAndroid Build Coastguard Worker%  unused()
322*795d594fSAndroid Build Coastguard Worker
323*795d594fSAndroid Build Coastguard Worker%def op_unused_fd():
324*795d594fSAndroid Build Coastguard Worker%  unused()
325