1 /* Copyright (C) 2008 The Android Open Source Project
3 * Licensed under the Apache License, Version 2.0 (the "License");
4 * you may not use this file except in compliance with the License.
5 * You may obtain a copy of the License at
7 * http://www.apache.org/licenses/LICENSE-2.0
9 * Unless required by applicable law or agreed to in writing, software
10 * distributed under the License is distributed on an "AS IS" BASIS,
11 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12 * See the License for the specific language governing permissions and
13 * limitations under the License.
17 * File: OP_DIV_FLOAT_2ADDR.S
19 * Code: Divides floats. Uses no substitutions.
21 * For: div-float/2addr
23 * Description: Divide operation on two source registers, storing
24 * the result in the first source reigster
26 * Format: B|A|op (12x)
31 movl rINST, %ecx # %ecx<- BA
32 andl $$15, %ecx # %ecx<- A
33 shr $$4, rINST # rINST<- B
34 flds (rFP, %ecx, 4) # %xmm0<- vA
35 fdivs (rFP, rINST, 4) # divide double; vA/vB
36 fstps (rFP, %ecx, 4) # vAA<- result
37 FINISH 1 # jump to next instruction