ARMAssemblerProxy.cpp revision 4dc1fa8e8d1f14868ab8bba93a8cbb87f847c4e3
14f6e8d7a00cbeda1e70cc15be9c4af1018bdad5The Android Open Source Project/* libs/pixelflinger/codeflinger/ARMAssemblerProxy.cpp
24f6e8d7a00cbeda1e70cc15be9c4af1018bdad5The Android Open Source Project**
34f6e8d7a00cbeda1e70cc15be9c4af1018bdad5The Android Open Source Project** Copyright 2006, The Android Open Source Project
44f6e8d7a00cbeda1e70cc15be9c4af1018bdad5The Android Open Source Project**
54f6e8d7a00cbeda1e70cc15be9c4af1018bdad5The Android Open Source Project** Licensed under the Apache License, Version 2.0 (the "License");
64f6e8d7a00cbeda1e70cc15be9c4af1018bdad5The Android Open Source Project** you may not use this file except in compliance with the License.
74f6e8d7a00cbeda1e70cc15be9c4af1018bdad5The Android Open Source Project** You may obtain a copy of the License at
84f6e8d7a00cbeda1e70cc15be9c4af1018bdad5The Android Open Source Project**
94f6e8d7a00cbeda1e70cc15be9c4af1018bdad5The Android Open Source Project**     http://www.apache.org/licenses/LICENSE-2.0
104f6e8d7a00cbeda1e70cc15be9c4af1018bdad5The Android Open Source Project**
114f6e8d7a00cbeda1e70cc15be9c4af1018bdad5The Android Open Source Project** Unless required by applicable law or agreed to in writing, software
124f6e8d7a00cbeda1e70cc15be9c4af1018bdad5The Android Open Source Project** distributed under the License is distributed on an "AS IS" BASIS,
134f6e8d7a00cbeda1e70cc15be9c4af1018bdad5The Android Open Source Project** WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
144f6e8d7a00cbeda1e70cc15be9c4af1018bdad5The Android Open Source Project** See the License for the specific language governing permissions and
154f6e8d7a00cbeda1e70cc15be9c4af1018bdad5The Android Open Source Project** limitations under the License.
164f6e8d7a00cbeda1e70cc15be9c4af1018bdad5The Android Open Source Project*/
174f6e8d7a00cbeda1e70cc15be9c4af1018bdad5The Android Open Source Project
184f6e8d7a00cbeda1e70cc15be9c4af1018bdad5The Android Open Source Project
194f6e8d7a00cbeda1e70cc15be9c4af1018bdad5The Android Open Source Project#include <stdint.h>
204f6e8d7a00cbeda1e70cc15be9c4af1018bdad5The Android Open Source Project#include <sys/types.h>
214f6e8d7a00cbeda1e70cc15be9c4af1018bdad5The Android Open Source Project
224f6e8d7a00cbeda1e70cc15be9c4af1018bdad5The Android Open Source Project#include "codeflinger/ARMAssemblerProxy.h"
234f6e8d7a00cbeda1e70cc15be9c4af1018bdad5The Android Open Source Project
244f6e8d7a00cbeda1e70cc15be9c4af1018bdad5The Android Open Source Projectnamespace android {
254f6e8d7a00cbeda1e70cc15be9c4af1018bdad5The Android Open Source Project
264f6e8d7a00cbeda1e70cc15be9c4af1018bdad5The Android Open Source Project// ----------------------------------------------------------------------------
274f6e8d7a00cbeda1e70cc15be9c4af1018bdad5The Android Open Source Project
284f6e8d7a00cbeda1e70cc15be9c4af1018bdad5The Android Open Source ProjectARMAssemblerProxy::ARMAssemblerProxy()
294f6e8d7a00cbeda1e70cc15be9c4af1018bdad5The Android Open Source Project    : mTarget(0)
304f6e8d7a00cbeda1e70cc15be9c4af1018bdad5The Android Open Source Project{
314f6e8d7a00cbeda1e70cc15be9c4af1018bdad5The Android Open Source Project}
324f6e8d7a00cbeda1e70cc15be9c4af1018bdad5The Android Open Source Project
334f6e8d7a00cbeda1e70cc15be9c4af1018bdad5The Android Open Source ProjectARMAssemblerProxy::ARMAssemblerProxy(ARMAssemblerInterface* target)
344f6e8d7a00cbeda1e70cc15be9c4af1018bdad5The Android Open Source Project    : mTarget(target)
354f6e8d7a00cbeda1e70cc15be9c4af1018bdad5The Android Open Source Project{
364f6e8d7a00cbeda1e70cc15be9c4af1018bdad5The Android Open Source Project}
374f6e8d7a00cbeda1e70cc15be9c4af1018bdad5The Android Open Source Project
384f6e8d7a00cbeda1e70cc15be9c4af1018bdad5The Android Open Source ProjectARMAssemblerProxy::~ARMAssemblerProxy()
394f6e8d7a00cbeda1e70cc15be9c4af1018bdad5The Android Open Source Project{
404f6e8d7a00cbeda1e70cc15be9c4af1018bdad5The Android Open Source Project    delete mTarget;
414f6e8d7a00cbeda1e70cc15be9c4af1018bdad5The Android Open Source Project}
424f6e8d7a00cbeda1e70cc15be9c4af1018bdad5The Android Open Source Project
434f6e8d7a00cbeda1e70cc15be9c4af1018bdad5The Android Open Source Projectvoid ARMAssemblerProxy::setTarget(ARMAssemblerInterface* target)
444f6e8d7a00cbeda1e70cc15be9c4af1018bdad5The Android Open Source Project{
454f6e8d7a00cbeda1e70cc15be9c4af1018bdad5The Android Open Source Project    delete mTarget;
464f6e8d7a00cbeda1e70cc15be9c4af1018bdad5The Android Open Source Project    mTarget = target;
474f6e8d7a00cbeda1e70cc15be9c4af1018bdad5The Android Open Source Project}
484f6e8d7a00cbeda1e70cc15be9c4af1018bdad5The Android Open Source Project
494f6e8d7a00cbeda1e70cc15be9c4af1018bdad5The Android Open Source Projectvoid ARMAssemblerProxy::reset() {
504f6e8d7a00cbeda1e70cc15be9c4af1018bdad5The Android Open Source Project    mTarget->reset();
514f6e8d7a00cbeda1e70cc15be9c4af1018bdad5The Android Open Source Project}
524f6e8d7a00cbeda1e70cc15be9c4af1018bdad5The Android Open Source Projectint ARMAssemblerProxy::generate(const char* name) {
534f6e8d7a00cbeda1e70cc15be9c4af1018bdad5The Android Open Source Project    return mTarget->generate(name);
544f6e8d7a00cbeda1e70cc15be9c4af1018bdad5The Android Open Source Project}
554f6e8d7a00cbeda1e70cc15be9c4af1018bdad5The Android Open Source Projectvoid ARMAssemblerProxy::disassemble(const char* name) {
564f6e8d7a00cbeda1e70cc15be9c4af1018bdad5The Android Open Source Project    return mTarget->disassemble(name);
574f6e8d7a00cbeda1e70cc15be9c4af1018bdad5The Android Open Source Project}
584f6e8d7a00cbeda1e70cc15be9c4af1018bdad5The Android Open Source Projectvoid ARMAssemblerProxy::prolog() {
594f6e8d7a00cbeda1e70cc15be9c4af1018bdad5The Android Open Source Project    mTarget->prolog();
604f6e8d7a00cbeda1e70cc15be9c4af1018bdad5The Android Open Source Project}
614f6e8d7a00cbeda1e70cc15be9c4af1018bdad5The Android Open Source Projectvoid ARMAssemblerProxy::epilog(uint32_t touched) {
624f6e8d7a00cbeda1e70cc15be9c4af1018bdad5The Android Open Source Project    mTarget->epilog(touched);
634f6e8d7a00cbeda1e70cc15be9c4af1018bdad5The Android Open Source Project}
644f6e8d7a00cbeda1e70cc15be9c4af1018bdad5The Android Open Source Projectvoid ARMAssemblerProxy::comment(const char* string) {
654f6e8d7a00cbeda1e70cc15be9c4af1018bdad5The Android Open Source Project    mTarget->comment(string);
664f6e8d7a00cbeda1e70cc15be9c4af1018bdad5The Android Open Source Project}
674f6e8d7a00cbeda1e70cc15be9c4af1018bdad5The Android Open Source Project
684f6e8d7a00cbeda1e70cc15be9c4af1018bdad5The Android Open Source Project
694f6e8d7a00cbeda1e70cc15be9c4af1018bdad5The Android Open Source Projectvoid ARMAssemblerProxy::dataProcessing( int opcode, int cc, int s,
704f6e8d7a00cbeda1e70cc15be9c4af1018bdad5The Android Open Source Project                                        int Rd, int Rn, uint32_t Op2)
714f6e8d7a00cbeda1e70cc15be9c4af1018bdad5The Android Open Source Project{
724f6e8d7a00cbeda1e70cc15be9c4af1018bdad5The Android Open Source Project    mTarget->dataProcessing(opcode, cc, s, Rd, Rn, Op2);
734f6e8d7a00cbeda1e70cc15be9c4af1018bdad5The Android Open Source Project}
744f6e8d7a00cbeda1e70cc15be9c4af1018bdad5The Android Open Source Project
754f6e8d7a00cbeda1e70cc15be9c4af1018bdad5The Android Open Source Projectvoid ARMAssemblerProxy::MLA(int cc, int s, int Rd, int Rm, int Rs, int Rn) {
764f6e8d7a00cbeda1e70cc15be9c4af1018bdad5The Android Open Source Project    mTarget->MLA(cc, s, Rd, Rm, Rs, Rn);
774f6e8d7a00cbeda1e70cc15be9c4af1018bdad5The Android Open Source Project}
784f6e8d7a00cbeda1e70cc15be9c4af1018bdad5The Android Open Source Projectvoid ARMAssemblerProxy::MUL(int cc, int s, int Rd, int Rm, int Rs) {
794f6e8d7a00cbeda1e70cc15be9c4af1018bdad5The Android Open Source Project    mTarget->MUL(cc, s, Rd, Rm, Rs);
804f6e8d7a00cbeda1e70cc15be9c4af1018bdad5The Android Open Source Project}
814f6e8d7a00cbeda1e70cc15be9c4af1018bdad5The Android Open Source Projectvoid ARMAssemblerProxy::UMULL(int cc, int s,
824f6e8d7a00cbeda1e70cc15be9c4af1018bdad5The Android Open Source Project            int RdLo, int RdHi, int Rm, int Rs) {
834f6e8d7a00cbeda1e70cc15be9c4af1018bdad5The Android Open Source Project    mTarget->UMULL(cc, s, RdLo, RdHi, Rm, Rs);
844f6e8d7a00cbeda1e70cc15be9c4af1018bdad5The Android Open Source Project}
854f6e8d7a00cbeda1e70cc15be9c4af1018bdad5The Android Open Source Projectvoid ARMAssemblerProxy::UMUAL(int cc, int s,
864f6e8d7a00cbeda1e70cc15be9c4af1018bdad5The Android Open Source Project            int RdLo, int RdHi, int Rm, int Rs) {
874f6e8d7a00cbeda1e70cc15be9c4af1018bdad5The Android Open Source Project    mTarget->UMUAL(cc, s, RdLo, RdHi, Rm, Rs);
884f6e8d7a00cbeda1e70cc15be9c4af1018bdad5The Android Open Source Project}
894f6e8d7a00cbeda1e70cc15be9c4af1018bdad5The Android Open Source Projectvoid ARMAssemblerProxy::SMULL(int cc, int s,
904f6e8d7a00cbeda1e70cc15be9c4af1018bdad5The Android Open Source Project            int RdLo, int RdHi, int Rm, int Rs) {
914f6e8d7a00cbeda1e70cc15be9c4af1018bdad5The Android Open Source Project    mTarget->SMULL(cc, s, RdLo, RdHi, Rm, Rs);
924f6e8d7a00cbeda1e70cc15be9c4af1018bdad5The Android Open Source Project}
934f6e8d7a00cbeda1e70cc15be9c4af1018bdad5The Android Open Source Projectvoid ARMAssemblerProxy::SMUAL(int cc, int s,
944f6e8d7a00cbeda1e70cc15be9c4af1018bdad5The Android Open Source Project            int RdLo, int RdHi, int Rm, int Rs) {
954f6e8d7a00cbeda1e70cc15be9c4af1018bdad5The Android Open Source Project    mTarget->SMUAL(cc, s, RdLo, RdHi, Rm, Rs);
964f6e8d7a00cbeda1e70cc15be9c4af1018bdad5The Android Open Source Project}
974f6e8d7a00cbeda1e70cc15be9c4af1018bdad5The Android Open Source Project
984f6e8d7a00cbeda1e70cc15be9c4af1018bdad5The Android Open Source Projectvoid ARMAssemblerProxy::B(int cc, uint32_t* pc) {
994f6e8d7a00cbeda1e70cc15be9c4af1018bdad5The Android Open Source Project    mTarget->B(cc, pc);
1004f6e8d7a00cbeda1e70cc15be9c4af1018bdad5The Android Open Source Project}
1014f6e8d7a00cbeda1e70cc15be9c4af1018bdad5The Android Open Source Projectvoid ARMAssemblerProxy::BL(int cc, uint32_t* pc) {
1024f6e8d7a00cbeda1e70cc15be9c4af1018bdad5The Android Open Source Project    mTarget->BL(cc, pc);
1034f6e8d7a00cbeda1e70cc15be9c4af1018bdad5The Android Open Source Project}
1044f6e8d7a00cbeda1e70cc15be9c4af1018bdad5The Android Open Source Projectvoid ARMAssemblerProxy::BX(int cc, int Rn) {
1054f6e8d7a00cbeda1e70cc15be9c4af1018bdad5The Android Open Source Project    mTarget->BX(cc, Rn);
1064f6e8d7a00cbeda1e70cc15be9c4af1018bdad5The Android Open Source Project}
1074f6e8d7a00cbeda1e70cc15be9c4af1018bdad5The Android Open Source Projectvoid ARMAssemblerProxy::label(const char* theLabel) {
1084f6e8d7a00cbeda1e70cc15be9c4af1018bdad5The Android Open Source Project    mTarget->label(theLabel);
1094f6e8d7a00cbeda1e70cc15be9c4af1018bdad5The Android Open Source Project}
1104f6e8d7a00cbeda1e70cc15be9c4af1018bdad5The Android Open Source Projectvoid ARMAssemblerProxy::B(int cc, const char* label) {
1114f6e8d7a00cbeda1e70cc15be9c4af1018bdad5The Android Open Source Project    mTarget->B(cc, label);
1124f6e8d7a00cbeda1e70cc15be9c4af1018bdad5The Android Open Source Project}
1134f6e8d7a00cbeda1e70cc15be9c4af1018bdad5The Android Open Source Projectvoid ARMAssemblerProxy::BL(int cc, const char* label) {
1144f6e8d7a00cbeda1e70cc15be9c4af1018bdad5The Android Open Source Project    mTarget->BL(cc, label);
1154f6e8d7a00cbeda1e70cc15be9c4af1018bdad5The Android Open Source Project}
1164f6e8d7a00cbeda1e70cc15be9c4af1018bdad5The Android Open Source Project
1174f6e8d7a00cbeda1e70cc15be9c4af1018bdad5The Android Open Source Projectuint32_t* ARMAssemblerProxy::pcForLabel(const char* label) {
1184f6e8d7a00cbeda1e70cc15be9c4af1018bdad5The Android Open Source Project    return mTarget->pcForLabel(label);
1194f6e8d7a00cbeda1e70cc15be9c4af1018bdad5The Android Open Source Project}
1204f6e8d7a00cbeda1e70cc15be9c4af1018bdad5The Android Open Source Project
1214f6e8d7a00cbeda1e70cc15be9c4af1018bdad5The Android Open Source Projectvoid ARMAssemblerProxy::LDR(int cc, int Rd, int Rn, uint32_t offset) {
1224f6e8d7a00cbeda1e70cc15be9c4af1018bdad5The Android Open Source Project    mTarget->LDR(cc, Rd, Rn, offset);
1234f6e8d7a00cbeda1e70cc15be9c4af1018bdad5The Android Open Source Project}
1244f6e8d7a00cbeda1e70cc15be9c4af1018bdad5The Android Open Source Projectvoid ARMAssemblerProxy::LDRB(int cc, int Rd, int Rn, uint32_t offset) {
1254f6e8d7a00cbeda1e70cc15be9c4af1018bdad5The Android Open Source Project    mTarget->LDRB(cc, Rd, Rn, offset);
1264f6e8d7a00cbeda1e70cc15be9c4af1018bdad5The Android Open Source Project}
1274f6e8d7a00cbeda1e70cc15be9c4af1018bdad5The Android Open Source Projectvoid ARMAssemblerProxy::STR(int cc, int Rd, int Rn, uint32_t offset) {
1284f6e8d7a00cbeda1e70cc15be9c4af1018bdad5The Android Open Source Project    mTarget->STR(cc, Rd, Rn, offset);
1294f6e8d7a00cbeda1e70cc15be9c4af1018bdad5The Android Open Source Project}
1304f6e8d7a00cbeda1e70cc15be9c4af1018bdad5The Android Open Source Projectvoid ARMAssemblerProxy::STRB(int cc, int Rd, int Rn, uint32_t offset) {
1314f6e8d7a00cbeda1e70cc15be9c4af1018bdad5The Android Open Source Project    mTarget->STRB(cc, Rd, Rn, offset);
1324f6e8d7a00cbeda1e70cc15be9c4af1018bdad5The Android Open Source Project}
1334f6e8d7a00cbeda1e70cc15be9c4af1018bdad5The Android Open Source Projectvoid ARMAssemblerProxy::LDRH(int cc, int Rd, int Rn, uint32_t offset) {
1344f6e8d7a00cbeda1e70cc15be9c4af1018bdad5The Android Open Source Project    mTarget->LDRH(cc, Rd, Rn, offset);
1354f6e8d7a00cbeda1e70cc15be9c4af1018bdad5The Android Open Source Project}
1364f6e8d7a00cbeda1e70cc15be9c4af1018bdad5The Android Open Source Projectvoid ARMAssemblerProxy::LDRSB(int cc, int Rd, int Rn, uint32_t offset) {
1374f6e8d7a00cbeda1e70cc15be9c4af1018bdad5The Android Open Source Project    mTarget->LDRSB(cc, Rd, Rn, offset);
1384f6e8d7a00cbeda1e70cc15be9c4af1018bdad5The Android Open Source Project}
1394f6e8d7a00cbeda1e70cc15be9c4af1018bdad5The Android Open Source Projectvoid ARMAssemblerProxy::LDRSH(int cc, int Rd, int Rn, uint32_t offset) {
1404f6e8d7a00cbeda1e70cc15be9c4af1018bdad5The Android Open Source Project    mTarget->LDRSH(cc, Rd, Rn, offset);
1414f6e8d7a00cbeda1e70cc15be9c4af1018bdad5The Android Open Source Project}
1424f6e8d7a00cbeda1e70cc15be9c4af1018bdad5The Android Open Source Projectvoid ARMAssemblerProxy::STRH(int cc, int Rd, int Rn, uint32_t offset) {
1434f6e8d7a00cbeda1e70cc15be9c4af1018bdad5The Android Open Source Project    mTarget->STRH(cc, Rd, Rn, offset);
1444f6e8d7a00cbeda1e70cc15be9c4af1018bdad5The Android Open Source Project}
1454f6e8d7a00cbeda1e70cc15be9c4af1018bdad5The Android Open Source Projectvoid ARMAssemblerProxy::LDM(int cc, int dir, int Rn, int W, uint32_t reg_list) {
1464f6e8d7a00cbeda1e70cc15be9c4af1018bdad5The Android Open Source Project    mTarget->LDM(cc, dir, Rn, W, reg_list);
1474f6e8d7a00cbeda1e70cc15be9c4af1018bdad5The Android Open Source Project}
1484f6e8d7a00cbeda1e70cc15be9c4af1018bdad5The Android Open Source Projectvoid ARMAssemblerProxy::STM(int cc, int dir, int Rn, int W, uint32_t reg_list) {
1494f6e8d7a00cbeda1e70cc15be9c4af1018bdad5The Android Open Source Project    mTarget->STM(cc, dir, Rn, W, reg_list);
1504f6e8d7a00cbeda1e70cc15be9c4af1018bdad5The Android Open Source Project}
1514f6e8d7a00cbeda1e70cc15be9c4af1018bdad5The Android Open Source Project
1524f6e8d7a00cbeda1e70cc15be9c4af1018bdad5The Android Open Source Projectvoid ARMAssemblerProxy::SWP(int cc, int Rn, int Rd, int Rm) {
1534f6e8d7a00cbeda1e70cc15be9c4af1018bdad5The Android Open Source Project    mTarget->SWP(cc, Rn, Rd, Rm);
1544f6e8d7a00cbeda1e70cc15be9c4af1018bdad5The Android Open Source Project}
1554f6e8d7a00cbeda1e70cc15be9c4af1018bdad5The Android Open Source Projectvoid ARMAssemblerProxy::SWPB(int cc, int Rn, int Rd, int Rm) {
1564f6e8d7a00cbeda1e70cc15be9c4af1018bdad5The Android Open Source Project    mTarget->SWPB(cc, Rn, Rd, Rm);
1574f6e8d7a00cbeda1e70cc15be9c4af1018bdad5The Android Open Source Project}
1584f6e8d7a00cbeda1e70cc15be9c4af1018bdad5The Android Open Source Projectvoid ARMAssemblerProxy::SWI(int cc, uint32_t comment) {
1594f6e8d7a00cbeda1e70cc15be9c4af1018bdad5The Android Open Source Project    mTarget->SWI(cc, comment);
1604f6e8d7a00cbeda1e70cc15be9c4af1018bdad5The Android Open Source Project}
1614f6e8d7a00cbeda1e70cc15be9c4af1018bdad5The Android Open Source Project
1624f6e8d7a00cbeda1e70cc15be9c4af1018bdad5The Android Open Source Project
1634f6e8d7a00cbeda1e70cc15be9c4af1018bdad5The Android Open Source Projectvoid ARMAssemblerProxy::PLD(int Rn, uint32_t offset) {
1644f6e8d7a00cbeda1e70cc15be9c4af1018bdad5The Android Open Source Project    mTarget->PLD(Rn, offset);
1654f6e8d7a00cbeda1e70cc15be9c4af1018bdad5The Android Open Source Project}
1664f6e8d7a00cbeda1e70cc15be9c4af1018bdad5The Android Open Source Projectvoid ARMAssemblerProxy::CLZ(int cc, int Rd, int Rm) {
1674f6e8d7a00cbeda1e70cc15be9c4af1018bdad5The Android Open Source Project    mTarget->CLZ(cc, Rd, Rm);
1684f6e8d7a00cbeda1e70cc15be9c4af1018bdad5The Android Open Source Project}
1694f6e8d7a00cbeda1e70cc15be9c4af1018bdad5The Android Open Source Projectvoid ARMAssemblerProxy::QADD(int cc, int Rd, int Rm, int Rn) {
1704f6e8d7a00cbeda1e70cc15be9c4af1018bdad5The Android Open Source Project    mTarget->QADD(cc, Rd, Rm, Rn);
1714f6e8d7a00cbeda1e70cc15be9c4af1018bdad5The Android Open Source Project}
1724f6e8d7a00cbeda1e70cc15be9c4af1018bdad5The Android Open Source Projectvoid ARMAssemblerProxy::QDADD(int cc, int Rd, int Rm, int Rn) {
1734f6e8d7a00cbeda1e70cc15be9c4af1018bdad5The Android Open Source Project    mTarget->QDADD(cc, Rd, Rm, Rn);
1744f6e8d7a00cbeda1e70cc15be9c4af1018bdad5The Android Open Source Project}
1754f6e8d7a00cbeda1e70cc15be9c4af1018bdad5The Android Open Source Projectvoid ARMAssemblerProxy::QSUB(int cc, int Rd, int Rm, int Rn) {
1764f6e8d7a00cbeda1e70cc15be9c4af1018bdad5The Android Open Source Project    mTarget->QSUB(cc, Rd, Rm, Rn);
1774f6e8d7a00cbeda1e70cc15be9c4af1018bdad5The Android Open Source Project}
1784f6e8d7a00cbeda1e70cc15be9c4af1018bdad5The Android Open Source Projectvoid ARMAssemblerProxy::QDSUB(int cc, int Rd, int Rm, int Rn) {
1794f6e8d7a00cbeda1e70cc15be9c4af1018bdad5The Android Open Source Project    mTarget->QDSUB(cc, Rd, Rm, Rn);
1804f6e8d7a00cbeda1e70cc15be9c4af1018bdad5The Android Open Source Project}
1814f6e8d7a00cbeda1e70cc15be9c4af1018bdad5The Android Open Source Projectvoid ARMAssemblerProxy::SMUL(int cc, int xy, int Rd, int Rm, int Rs) {
1824f6e8d7a00cbeda1e70cc15be9c4af1018bdad5The Android Open Source Project    mTarget->SMUL(cc, xy, Rd, Rm, Rs);
1834f6e8d7a00cbeda1e70cc15be9c4af1018bdad5The Android Open Source Project}
1844f6e8d7a00cbeda1e70cc15be9c4af1018bdad5The Android Open Source Projectvoid ARMAssemblerProxy::SMULW(int cc, int y, int Rd, int Rm, int Rs) {
1854f6e8d7a00cbeda1e70cc15be9c4af1018bdad5The Android Open Source Project    mTarget->SMULW(cc, y, Rd, Rm, Rs);
1864f6e8d7a00cbeda1e70cc15be9c4af1018bdad5The Android Open Source Project}
1874f6e8d7a00cbeda1e70cc15be9c4af1018bdad5The Android Open Source Projectvoid ARMAssemblerProxy::SMLA(int cc, int xy, int Rd, int Rm, int Rs, int Rn) {
1884f6e8d7a00cbeda1e70cc15be9c4af1018bdad5The Android Open Source Project    mTarget->SMLA(cc, xy, Rd, Rm, Rs, Rn);
1894f6e8d7a00cbeda1e70cc15be9c4af1018bdad5The Android Open Source Project}
1904f6e8d7a00cbeda1e70cc15be9c4af1018bdad5The Android Open Source Projectvoid ARMAssemblerProxy::SMLAL(  int cc, int xy,
1914f6e8d7a00cbeda1e70cc15be9c4af1018bdad5The Android Open Source Project                                int RdHi, int RdLo, int Rs, int Rm) {
1924f6e8d7a00cbeda1e70cc15be9c4af1018bdad5The Android Open Source Project    mTarget->SMLAL(cc, xy, RdHi, RdLo, Rs, Rm);
1934f6e8d7a00cbeda1e70cc15be9c4af1018bdad5The Android Open Source Project}
1944f6e8d7a00cbeda1e70cc15be9c4af1018bdad5The Android Open Source Projectvoid ARMAssemblerProxy::SMLAW(int cc, int y, int Rd, int Rm, int Rs, int Rn) {
1954f6e8d7a00cbeda1e70cc15be9c4af1018bdad5The Android Open Source Project    mTarget->SMLAW(cc, y, Rd, Rm, Rs, Rn);
1964f6e8d7a00cbeda1e70cc15be9c4af1018bdad5The Android Open Source Project}
1974f6e8d7a00cbeda1e70cc15be9c4af1018bdad5The Android Open Source Project
19896dbb4fc58fe2dcf4390e073dbb42cc77ef2f0b5Martyn Capewellvoid ARMAssemblerProxy::UXTB16(int cc, int Rd, int Rm, int rotate) {
19996dbb4fc58fe2dcf4390e073dbb42cc77ef2f0b5Martyn Capewell    mTarget->UXTB16(cc, Rd, Rm, rotate);
20096dbb4fc58fe2dcf4390e073dbb42cc77ef2f0b5Martyn Capewell}
2014f6e8d7a00cbeda1e70cc15be9c4af1018bdad5The Android Open Source Project
2024dc1fa8e8d1f14868ab8bba93a8cbb87f847c4e3Martyn Capewellvoid ARMAssemblerProxy::UBFX(int cc, int Rd, int Rn, int lsb, int width) {
2034dc1fa8e8d1f14868ab8bba93a8cbb87f847c4e3Martyn Capewell    mTarget->UBFX(cc, Rd, Rn, lsb, width);
2044dc1fa8e8d1f14868ab8bba93a8cbb87f847c4e3Martyn Capewell}
2054dc1fa8e8d1f14868ab8bba93a8cbb87f847c4e3Martyn Capewell
2064f6e8d7a00cbeda1e70cc15be9c4af1018bdad5The Android Open Source Project}; // namespace android
2074f6e8d7a00cbeda1e70cc15be9c4af1018bdad5The Android Open Source Project
208