122d404a75a00cda0b0ebed1034c2808ba060b05fJohnnie Birch /* Copyright (C) 2008 The Android Open Source Project 222d404a75a00cda0b0ebed1034c2808ba060b05fJohnnie Birch * 322d404a75a00cda0b0ebed1034c2808ba060b05fJohnnie Birch * Licensed under the Apache License, Version 2.0 (the "License"); 422d404a75a00cda0b0ebed1034c2808ba060b05fJohnnie Birch * you may not use this file except in compliance with the License. 522d404a75a00cda0b0ebed1034c2808ba060b05fJohnnie Birch * You may obtain a copy of the License at 622d404a75a00cda0b0ebed1034c2808ba060b05fJohnnie Birch * 722d404a75a00cda0b0ebed1034c2808ba060b05fJohnnie Birch * http://www.apache.org/licenses/LICENSE-2.0 822d404a75a00cda0b0ebed1034c2808ba060b05fJohnnie Birch * 922d404a75a00cda0b0ebed1034c2808ba060b05fJohnnie Birch * Unless required by applicable law or agreed to in writing, software 1022d404a75a00cda0b0ebed1034c2808ba060b05fJohnnie Birch * distributed under the License is distributed on an "AS IS" BASIS, 1122d404a75a00cda0b0ebed1034c2808ba060b05fJohnnie Birch * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 1222d404a75a00cda0b0ebed1034c2808ba060b05fJohnnie Birch * See the License for the specific language governing permissions and 1322d404a75a00cda0b0ebed1034c2808ba060b05fJohnnie Birch * limitations under the License. 1422d404a75a00cda0b0ebed1034c2808ba060b05fJohnnie Birch */ 1522d404a75a00cda0b0ebed1034c2808ba060b05fJohnnie Birch 1622d404a75a00cda0b0ebed1034c2808ba060b05fJohnnie Birch /* 1722d404a75a00cda0b0ebed1034c2808ba060b05fJohnnie Birch * File: OP_DIV_FLOAT.S 1822d404a75a00cda0b0ebed1034c2808ba060b05fJohnnie Birch * 1922d404a75a00cda0b0ebed1034c2808ba060b05fJohnnie Birch * Code: Divides floats. Uses no substitutions. 2022d404a75a00cda0b0ebed1034c2808ba060b05fJohnnie Birch * 2122d404a75a00cda0b0ebed1034c2808ba060b05fJohnnie Birch * For: div-float 2222d404a75a00cda0b0ebed1034c2808ba060b05fJohnnie Birch * 2322d404a75a00cda0b0ebed1034c2808ba060b05fJohnnie Birch * Description: Divide operation on two source registers, storing 2422d404a75a00cda0b0ebed1034c2808ba060b05fJohnnie Birch * the result in a destiniation register 2522d404a75a00cda0b0ebed1034c2808ba060b05fJohnnie Birch * 2622d404a75a00cda0b0ebed1034c2808ba060b05fJohnnie Birch * Format: AA|op CC|BB (23x) 2722d404a75a00cda0b0ebed1034c2808ba060b05fJohnnie Birch * 2822d404a75a00cda0b0ebed1034c2808ba060b05fJohnnie Birch * Syntax: op vAA, vBB, vCC 2922d404a75a00cda0b0ebed1034c2808ba060b05fJohnnie Birch */ 3022d404a75a00cda0b0ebed1034c2808ba060b05fJohnnie Birch 3122d404a75a00cda0b0ebed1034c2808ba060b05fJohnnie Birch FETCH_BB 1, %eax # %eax<- BB 3222d404a75a00cda0b0ebed1034c2808ba060b05fJohnnie Birch FETCH_CC 1, %ecx # %ecx<- CC 3322d404a75a00cda0b0ebed1034c2808ba060b05fJohnnie Birch flds (rFP, %eax, 4) # floating point stack vBB 3422d404a75a00cda0b0ebed1034c2808ba060b05fJohnnie Birch fdivs (rFP, %ecx, 4) # divide double; vBB/vCC 3522d404a75a00cda0b0ebed1034c2808ba060b05fJohnnie Birch fstps (rFP, rINST, 4) # vAA<- result 3622d404a75a00cda0b0ebed1034c2808ba060b05fJohnnie Birch FFETCH_ADV 2, %eax # %eax<- next instruction hi; fetch, advance 3722d404a75a00cda0b0ebed1034c2808ba060b05fJohnnie Birch FGETOP_JMP 2, %eax # jump to next instruction; getop, jmp 38