ARMAssemblerProxy.cpp revision 96dbb4fc58fe2dcf4390e073dbb42cc77ef2f0b5
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 2024f6e8d7a00cbeda1e70cc15be9c4af1018bdad5The Android Open Source Project}; // namespace android 2034f6e8d7a00cbeda1e70cc15be9c4af1018bdad5The Android Open Source Project 204