xref: /aosp_15_r20/art/runtime/interpreter/mterp/x86ng/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, rINST                    # 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, rINST                    # 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, rINST
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, rINST                    # 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("%eax", miss_label="2f")
34*795d594fSAndroid Build Coastguard Worker   cmpl 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, rINST             # 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   movl rSELF:THREAD_SELF_OFFSET, ARG0
46*795d594fSAndroid Build Coastguard Worker   movl 0(%esp), ARG1
47*795d594fSAndroid Build Coastguard Worker   movl rPC, ARG2
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 %eax
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    movl    2(rPC), %eax                    # eax <- lsw
75*795d594fSAndroid Build Coastguard Worker    movzbl  rINSTbl, %ecx                   # ecx <- AA
76*795d594fSAndroid Build Coastguard Worker    movl    6(rPC), rINST                   # rINST <- msw
77*795d594fSAndroid Build Coastguard Worker    SET_VREG %eax, %ecx
78*795d594fSAndroid Build Coastguard Worker    SET_VREG_HIGH  rINST, %ecx
79*795d594fSAndroid Build Coastguard Worker    ADVANCE_PC_FETCH_AND_GOTO_NEXT 5
80*795d594fSAndroid Build Coastguard Worker
81*795d594fSAndroid Build Coastguard Worker%def op_const_wide_16():
82*795d594fSAndroid Build Coastguard Worker    /* const-wide/16 vAA, #+BBBB */
83*795d594fSAndroid Build Coastguard Worker    movswl  2(rPC), %eax                    # eax <- ssssBBBB
84*795d594fSAndroid Build Coastguard Worker    movl    rIBASE, %ecx                    # preserve rIBASE (cdq trashes it)
85*795d594fSAndroid Build Coastguard Worker    cdq                                     # rIBASE:eax <- ssssssssssssBBBB
86*795d594fSAndroid Build Coastguard Worker    SET_VREG_HIGH rIBASE, rINST             # store msw
87*795d594fSAndroid Build Coastguard Worker    SET_VREG %eax, rINST                    # store lsw
88*795d594fSAndroid Build Coastguard Worker    movl    %ecx, rIBASE                    # restore rIBASE
89*795d594fSAndroid Build Coastguard Worker    ADVANCE_PC_FETCH_AND_GOTO_NEXT 2
90*795d594fSAndroid Build Coastguard Worker
91*795d594fSAndroid Build Coastguard Worker%def op_const_wide_32():
92*795d594fSAndroid Build Coastguard Worker    /* const-wide/32 vAA, #+BBBBbbbb */
93*795d594fSAndroid Build Coastguard Worker    movl    2(rPC), %eax                    # eax <- BBBBbbbb
94*795d594fSAndroid Build Coastguard Worker    movl    rIBASE, %ecx                    # preserve rIBASE (cdq trashes it)
95*795d594fSAndroid Build Coastguard Worker    cdq                                     # rIBASE:eax <- ssssssssssssBBBB
96*795d594fSAndroid Build Coastguard Worker    SET_VREG_HIGH rIBASE, rINST             # store msw
97*795d594fSAndroid Build Coastguard Worker    SET_VREG %eax, rINST                    # store lsw
98*795d594fSAndroid Build Coastguard Worker    movl    %ecx, rIBASE                    # restore rIBASE
99*795d594fSAndroid Build Coastguard Worker    ADVANCE_PC_FETCH_AND_GOTO_NEXT 3
100*795d594fSAndroid Build Coastguard Worker
101*795d594fSAndroid Build Coastguard Worker%def op_const_wide_high16():
102*795d594fSAndroid Build Coastguard Worker    /* const-wide/high16 vAA, #+BBBB000000000000 */
103*795d594fSAndroid Build Coastguard Worker    movzwl  2(rPC), %eax                    # eax <- 0000BBBB
104*795d594fSAndroid Build Coastguard Worker    sall    $$16, %eax                      # eax <- BBBB0000
105*795d594fSAndroid Build Coastguard Worker    SET_VREG_HIGH %eax, rINST               # v[AA+1] <- eax
106*795d594fSAndroid Build Coastguard Worker    xorl    %eax, %eax
107*795d594fSAndroid Build Coastguard Worker    SET_VREG %eax, rINST                    # v[AA+0] <- eax
108*795d594fSAndroid Build Coastguard Worker    ADVANCE_PC_FETCH_AND_GOTO_NEXT 2
109*795d594fSAndroid Build Coastguard Worker
110*795d594fSAndroid Build Coastguard Worker%def op_monitor_enter():
111*795d594fSAndroid Build Coastguard Worker/*
112*795d594fSAndroid Build Coastguard Worker * Synchronize on an object.
113*795d594fSAndroid Build Coastguard Worker */
114*795d594fSAndroid Build Coastguard Worker    /* monitor-enter vAA */
115*795d594fSAndroid Build Coastguard Worker    EXPORT_PC
116*795d594fSAndroid Build Coastguard Worker    GET_VREG ARG0, rINST
117*795d594fSAndroid Build Coastguard Worker    call art_quick_lock_object
118*795d594fSAndroid Build Coastguard Worker    RESTORE_IBASE
119*795d594fSAndroid Build Coastguard Worker    ADVANCE_PC_FETCH_AND_GOTO_NEXT 1
120*795d594fSAndroid Build Coastguard Worker
121*795d594fSAndroid Build Coastguard Worker%def op_monitor_exit():
122*795d594fSAndroid Build Coastguard Worker/*
123*795d594fSAndroid Build Coastguard Worker * Unlock an object.
124*795d594fSAndroid Build Coastguard Worker *
125*795d594fSAndroid Build Coastguard Worker * Exceptions that occur when unlocking a monitor need to appear as
126*795d594fSAndroid Build Coastguard Worker * if they happened at the following instruction.  See the Dalvik
127*795d594fSAndroid Build Coastguard Worker * instruction spec.
128*795d594fSAndroid Build Coastguard Worker */
129*795d594fSAndroid Build Coastguard Worker    /* monitor-exit vAA */
130*795d594fSAndroid Build Coastguard Worker    EXPORT_PC
131*795d594fSAndroid Build Coastguard Worker    GET_VREG ARG0, rINST
132*795d594fSAndroid Build Coastguard Worker    call art_quick_unlock_object
133*795d594fSAndroid Build Coastguard Worker    RESTORE_IBASE
134*795d594fSAndroid Build Coastguard Worker    ADVANCE_PC_FETCH_AND_GOTO_NEXT 1
135*795d594fSAndroid Build Coastguard Worker
136*795d594fSAndroid Build Coastguard Worker%def op_move(is_object="0"):
137*795d594fSAndroid Build Coastguard Worker    /* for move, move-object, long-to-int */
138*795d594fSAndroid Build Coastguard Worker    /* op vA, vB */
139*795d594fSAndroid Build Coastguard Worker    movl    rINST, %eax                     # eax <- BA
140*795d594fSAndroid Build Coastguard Worker    andb    $$0xf, %al                      # eax <- A
141*795d594fSAndroid Build Coastguard Worker    shrl    $$4, rINST                      # rINST <- B
142*795d594fSAndroid Build Coastguard Worker    GET_VREG %ecx, rINST
143*795d594fSAndroid Build Coastguard Worker    .if $is_object
144*795d594fSAndroid Build Coastguard Worker    SET_VREG_OBJECT %ecx, %eax              # fp[A] <- fp[B]
145*795d594fSAndroid Build Coastguard Worker    .else
146*795d594fSAndroid Build Coastguard Worker    SET_VREG %ecx, %eax                     # fp[A] <- fp[B]
147*795d594fSAndroid Build Coastguard Worker    .endif
148*795d594fSAndroid Build Coastguard Worker    ADVANCE_PC_FETCH_AND_GOTO_NEXT 1
149*795d594fSAndroid Build Coastguard Worker
150*795d594fSAndroid Build Coastguard Worker%def op_move_16(is_object="0"):
151*795d594fSAndroid Build Coastguard Worker    /* for: move/16, move-object/16 */
152*795d594fSAndroid Build Coastguard Worker    /* op vAAAA, vBBBB */
153*795d594fSAndroid Build Coastguard Worker    movzwl  4(rPC), %ecx                    # ecx <- BBBB
154*795d594fSAndroid Build Coastguard Worker    movzwl  2(rPC), %eax                    # eax <- AAAA
155*795d594fSAndroid Build Coastguard Worker    GET_VREG %ecx, %ecx
156*795d594fSAndroid Build Coastguard Worker    .if $is_object
157*795d594fSAndroid Build Coastguard Worker    SET_VREG_OBJECT %ecx, %eax              # fp[A] <- fp[B]
158*795d594fSAndroid Build Coastguard Worker    .else
159*795d594fSAndroid Build Coastguard Worker    SET_VREG %ecx, %eax                     # fp[A] <- fp[B]
160*795d594fSAndroid Build Coastguard Worker    .endif
161*795d594fSAndroid Build Coastguard Worker    ADVANCE_PC_FETCH_AND_GOTO_NEXT 3
162*795d594fSAndroid Build Coastguard Worker
163*795d594fSAndroid Build Coastguard Worker%def op_move_exception():
164*795d594fSAndroid Build Coastguard Worker    /* move-exception vAA */
165*795d594fSAndroid Build Coastguard Worker    movl    rSELF:THREAD_EXCEPTION_OFFSET, %eax
166*795d594fSAndroid Build Coastguard Worker    SET_VREG_OBJECT %eax, rINST            # fp[AA] <- exception object
167*795d594fSAndroid Build Coastguard Worker    movl    $$0, rSELF:THREAD_EXCEPTION_OFFSET
168*795d594fSAndroid Build Coastguard Worker    ADVANCE_PC_FETCH_AND_GOTO_NEXT 1
169*795d594fSAndroid Build Coastguard Worker
170*795d594fSAndroid Build Coastguard Worker%def op_move_from16(is_object="0"):
171*795d594fSAndroid Build Coastguard Worker    /* for: move/from16, move-object/from16 */
172*795d594fSAndroid Build Coastguard Worker    /* op vAA, vBBBB */
173*795d594fSAndroid Build Coastguard Worker    movzwl  2(rPC), %eax                    # eax <- BBBB
174*795d594fSAndroid Build Coastguard Worker    GET_VREG %ecx, %eax                     # ecx <- fp[BBBB]
175*795d594fSAndroid Build Coastguard Worker    .if $is_object
176*795d594fSAndroid Build Coastguard Worker    SET_VREG_OBJECT %ecx, rINST             # fp[A] <- fp[B]
177*795d594fSAndroid Build Coastguard Worker    .else
178*795d594fSAndroid Build Coastguard Worker    SET_VREG %ecx, rINST                    # fp[A] <- fp[B]
179*795d594fSAndroid Build Coastguard Worker    .endif
180*795d594fSAndroid Build Coastguard Worker    ADVANCE_PC_FETCH_AND_GOTO_NEXT 2
181*795d594fSAndroid Build Coastguard Worker
182*795d594fSAndroid Build Coastguard Worker%def op_move_object():
183*795d594fSAndroid Build Coastguard Worker%  op_move(is_object="1")
184*795d594fSAndroid Build Coastguard Worker
185*795d594fSAndroid Build Coastguard Worker%def op_move_object_16():
186*795d594fSAndroid Build Coastguard Worker%  op_move_16(is_object="1")
187*795d594fSAndroid Build Coastguard Worker
188*795d594fSAndroid Build Coastguard Worker%def op_move_object_from16():
189*795d594fSAndroid Build Coastguard Worker%  op_move_from16(is_object="1")
190*795d594fSAndroid Build Coastguard Worker
191*795d594fSAndroid Build Coastguard Worker%def op_move_result(is_object="0"):
192*795d594fSAndroid Build Coastguard Worker    /* for: move-result, move-result-object */
193*795d594fSAndroid Build Coastguard Worker    /* op vAA */
194*795d594fSAndroid Build Coastguard Worker    .if $is_object
195*795d594fSAndroid Build Coastguard Worker    SET_VREG_OBJECT %eax, rINST             # fp[A] <- fp[B]
196*795d594fSAndroid Build Coastguard Worker    .else
197*795d594fSAndroid Build Coastguard Worker    SET_VREG %eax, rINST                    # fp[A] <- fp[B]
198*795d594fSAndroid Build Coastguard Worker    .endif
199*795d594fSAndroid Build Coastguard Worker    ADVANCE_PC_FETCH_AND_GOTO_NEXT 1
200*795d594fSAndroid Build Coastguard Worker
201*795d594fSAndroid Build Coastguard Worker%def op_move_result_object():
202*795d594fSAndroid Build Coastguard Worker%  op_move_result(is_object="1")
203*795d594fSAndroid Build Coastguard Worker
204*795d594fSAndroid Build Coastguard Worker%def op_move_result_wide():
205*795d594fSAndroid Build Coastguard Worker    /* move-result-wide vAA */
206*795d594fSAndroid Build Coastguard Worker    SET_VREG %eax, rINST
207*795d594fSAndroid Build Coastguard Worker    LOAD_WIDE_RETURN %eax
208*795d594fSAndroid Build Coastguard Worker    SET_VREG_HIGH %eax, rINST
209*795d594fSAndroid Build Coastguard Worker    ADVANCE_PC_FETCH_AND_GOTO_NEXT 1
210*795d594fSAndroid Build Coastguard Worker
211*795d594fSAndroid Build Coastguard Worker%def op_move_wide():
212*795d594fSAndroid Build Coastguard Worker    /* move-wide vA, vB */
213*795d594fSAndroid Build Coastguard Worker    /* NOTE: regs can overlap, e.g. "move v6,v7" or "move v7,v6" */
214*795d594fSAndroid Build Coastguard Worker    movzbl  rINSTbl, %ecx                   # ecx <- BA
215*795d594fSAndroid Build Coastguard Worker    sarl    $$4, rINST                      # rINST <- B
216*795d594fSAndroid Build Coastguard Worker    andb    $$0xf, %cl                      # ecx <- A
217*795d594fSAndroid Build Coastguard Worker    GET_WIDE_FP_VREG %xmm0, rINST           # xmm0 <- v[B]
218*795d594fSAndroid Build Coastguard Worker    SET_WIDE_FP_VREG %xmm0, %ecx            # v[A] <- xmm0
219*795d594fSAndroid Build Coastguard Worker    ADVANCE_PC_FETCH_AND_GOTO_NEXT 1
220*795d594fSAndroid Build Coastguard Worker
221*795d594fSAndroid Build Coastguard Worker%def op_move_wide_16():
222*795d594fSAndroid Build Coastguard Worker    /* move-wide/16 vAAAA, vBBBB */
223*795d594fSAndroid Build Coastguard Worker    /* NOTE: regs can overlap, e.g. "move v6,v7" or "move v7,v6" */
224*795d594fSAndroid Build Coastguard Worker    movzwl  4(rPC), %ecx                    # ecx<- BBBB
225*795d594fSAndroid Build Coastguard Worker    movzwl  2(rPC), %eax                    # eax<- AAAA
226*795d594fSAndroid Build Coastguard Worker    GET_WIDE_FP_VREG %xmm0, %ecx            # xmm0 <- v[B]
227*795d594fSAndroid Build Coastguard Worker    SET_WIDE_FP_VREG %xmm0, %eax            # v[A] <- xmm0
228*795d594fSAndroid Build Coastguard Worker    ADVANCE_PC_FETCH_AND_GOTO_NEXT 3
229*795d594fSAndroid Build Coastguard Worker
230*795d594fSAndroid Build Coastguard Worker%def op_move_wide_from16():
231*795d594fSAndroid Build Coastguard Worker    /* move-wide/from16 vAA, vBBBB */
232*795d594fSAndroid Build Coastguard Worker    /* NOTE: regs can overlap, e.g. "move v6,v7" or "move v7,v6" */
233*795d594fSAndroid Build Coastguard Worker    movzwl  2(rPC), %ecx                    # ecx <- BBBB
234*795d594fSAndroid Build Coastguard Worker    movzbl  rINSTbl, %eax                   # eax <- AAAA
235*795d594fSAndroid Build Coastguard Worker    GET_WIDE_FP_VREG %xmm0, %ecx            # xmm0 <- v[B]
236*795d594fSAndroid Build Coastguard Worker    SET_WIDE_FP_VREG %xmm0, %eax            # v[A] <- xmm0
237*795d594fSAndroid Build Coastguard Worker    ADVANCE_PC_FETCH_AND_GOTO_NEXT 2
238*795d594fSAndroid Build Coastguard Worker
239*795d594fSAndroid Build Coastguard Worker%def op_nop():
240*795d594fSAndroid Build Coastguard Worker    ADVANCE_PC_FETCH_AND_GOTO_NEXT 1
241*795d594fSAndroid Build Coastguard Worker
242*795d594fSAndroid Build Coastguard Worker%def op_unused_3e():
243*795d594fSAndroid Build Coastguard Worker%  unused()
244*795d594fSAndroid Build Coastguard Worker
245*795d594fSAndroid Build Coastguard Worker%def op_unused_3f():
246*795d594fSAndroid Build Coastguard Worker%  unused()
247*795d594fSAndroid Build Coastguard Worker
248*795d594fSAndroid Build Coastguard Worker%def op_unused_40():
249*795d594fSAndroid Build Coastguard Worker%  unused()
250*795d594fSAndroid Build Coastguard Worker
251*795d594fSAndroid Build Coastguard Worker%def op_unused_41():
252*795d594fSAndroid Build Coastguard Worker%  unused()
253*795d594fSAndroid Build Coastguard Worker
254*795d594fSAndroid Build Coastguard Worker%def op_unused_42():
255*795d594fSAndroid Build Coastguard Worker%  unused()
256*795d594fSAndroid Build Coastguard Worker
257*795d594fSAndroid Build Coastguard Worker%def op_unused_43():
258*795d594fSAndroid Build Coastguard Worker%  unused()
259*795d594fSAndroid Build Coastguard Worker
260*795d594fSAndroid Build Coastguard Worker%def op_unused_73():
261*795d594fSAndroid Build Coastguard Worker%  unused()
262*795d594fSAndroid Build Coastguard Worker
263*795d594fSAndroid Build Coastguard Worker%def op_unused_79():
264*795d594fSAndroid Build Coastguard Worker%  unused()
265*795d594fSAndroid Build Coastguard Worker
266*795d594fSAndroid Build Coastguard Worker%def op_unused_7a():
267*795d594fSAndroid Build Coastguard Worker%  unused()
268*795d594fSAndroid Build Coastguard Worker
269*795d594fSAndroid Build Coastguard Worker%def op_unused_e3():
270*795d594fSAndroid Build Coastguard Worker%  unused()
271*795d594fSAndroid Build Coastguard Worker
272*795d594fSAndroid Build Coastguard Worker%def op_unused_e4():
273*795d594fSAndroid Build Coastguard Worker%  unused()
274*795d594fSAndroid Build Coastguard Worker
275*795d594fSAndroid Build Coastguard Worker%def op_unused_e5():
276*795d594fSAndroid Build Coastguard Worker%  unused()
277*795d594fSAndroid Build Coastguard Worker
278*795d594fSAndroid Build Coastguard Worker%def op_unused_e6():
279*795d594fSAndroid Build Coastguard Worker%  unused()
280*795d594fSAndroid Build Coastguard Worker
281*795d594fSAndroid Build Coastguard Worker%def op_unused_e7():
282*795d594fSAndroid Build Coastguard Worker%  unused()
283*795d594fSAndroid Build Coastguard Worker
284*795d594fSAndroid Build Coastguard Worker%def op_unused_e8():
285*795d594fSAndroid Build Coastguard Worker%  unused()
286*795d594fSAndroid Build Coastguard Worker
287*795d594fSAndroid Build Coastguard Worker%def op_unused_e9():
288*795d594fSAndroid Build Coastguard Worker%  unused()
289*795d594fSAndroid Build Coastguard Worker
290*795d594fSAndroid Build Coastguard Worker%def op_unused_ea():
291*795d594fSAndroid Build Coastguard Worker%  unused()
292*795d594fSAndroid Build Coastguard Worker
293*795d594fSAndroid Build Coastguard Worker%def op_unused_eb():
294*795d594fSAndroid Build Coastguard Worker%  unused()
295*795d594fSAndroid Build Coastguard Worker
296*795d594fSAndroid Build Coastguard Worker%def op_unused_ec():
297*795d594fSAndroid Build Coastguard Worker%  unused()
298*795d594fSAndroid Build Coastguard Worker
299*795d594fSAndroid Build Coastguard Worker%def op_unused_ed():
300*795d594fSAndroid Build Coastguard Worker%  unused()
301*795d594fSAndroid Build Coastguard Worker
302*795d594fSAndroid Build Coastguard Worker%def op_unused_ee():
303*795d594fSAndroid Build Coastguard Worker%  unused()
304*795d594fSAndroid Build Coastguard Worker
305*795d594fSAndroid Build Coastguard Worker%def op_unused_ef():
306*795d594fSAndroid Build Coastguard Worker%  unused()
307*795d594fSAndroid Build Coastguard Worker
308*795d594fSAndroid Build Coastguard Worker%def op_unused_f0():
309*795d594fSAndroid Build Coastguard Worker%  unused()
310*795d594fSAndroid Build Coastguard Worker
311*795d594fSAndroid Build Coastguard Worker%def op_unused_f1():
312*795d594fSAndroid Build Coastguard Worker%  unused()
313*795d594fSAndroid Build Coastguard Worker
314*795d594fSAndroid Build Coastguard Worker%def op_unused_f2():
315*795d594fSAndroid Build Coastguard Worker%  unused()
316*795d594fSAndroid Build Coastguard Worker
317*795d594fSAndroid Build Coastguard Worker%def op_unused_f3():
318*795d594fSAndroid Build Coastguard Worker%  unused()
319*795d594fSAndroid Build Coastguard Worker
320*795d594fSAndroid Build Coastguard Worker%def op_unused_f4():
321*795d594fSAndroid Build Coastguard Worker%  unused()
322*795d594fSAndroid Build Coastguard Worker
323*795d594fSAndroid Build Coastguard Worker%def op_unused_f5():
324*795d594fSAndroid Build Coastguard Worker%  unused()
325*795d594fSAndroid Build Coastguard Worker
326*795d594fSAndroid Build Coastguard Worker%def op_unused_f6():
327*795d594fSAndroid Build Coastguard Worker%  unused()
328*795d594fSAndroid Build Coastguard Worker
329*795d594fSAndroid Build Coastguard Worker%def op_unused_f7():
330*795d594fSAndroid Build Coastguard Worker%  unused()
331*795d594fSAndroid Build Coastguard Worker
332*795d594fSAndroid Build Coastguard Worker%def op_unused_f8():
333*795d594fSAndroid Build Coastguard Worker%  unused()
334*795d594fSAndroid Build Coastguard Worker
335*795d594fSAndroid Build Coastguard Worker%def op_unused_f9():
336*795d594fSAndroid Build Coastguard Worker%  unused()
337*795d594fSAndroid Build Coastguard Worker
338*795d594fSAndroid Build Coastguard Worker%def op_unused_fc():
339*795d594fSAndroid Build Coastguard Worker%  unused()
340*795d594fSAndroid Build Coastguard Worker
341*795d594fSAndroid Build Coastguard Worker%def op_unused_fd():
342*795d594fSAndroid Build Coastguard Worker%  unused()
343