Home | History | Annotate | Download | only in a64

Lines Matching refs:Assembler

29 #include "a64/assembler-a64.h"
362 // Assembler
363 Assembler::Assembler(byte* buffer, unsigned buffer_size)
372 Assembler::~Assembler() {
378 void Assembler::Reset() {
391 void Assembler::FinalizeCode() {
399 void Assembler::bind(Label* label) {
415 int Assembler::UpdateAndGetByteOffsetTo(Label* label) {
431 void Assembler::br(const Register& xn) {
437 void Assembler::blr(const Register& xn) {
443 void Assembler::ret(const Register& xn) {
449 void Assembler::b(int imm26) {
454 void Assembler::b(int imm19, Condition cond) {
459 void Assembler::b(Label* label) {
464 void Assembler::b(Label* label, Condition cond) {
469 void Assembler::bl(int imm26) {
474 void Assembler::bl(Label* label) {
479 void Assembler::cbz(const Register& rt,
485 void Assembler::cbz(const Register& rt,
491 void Assembler::cbnz(const Register& rt,
497 void Assembler::cbnz(const Register& rt,
503 void Assembler::tbz(const Register& rt,
511 void Assembler::tbz(const Register& rt,
518 void Assembler::tbnz(const Register& rt,
526 void Assembler::tbnz(const Register& rt,
533 void Assembler::adr(const Register& rd, int imm21) {
539 void Assembler::adr(const Register& rd, Label* label) {
544 void Assembler::add(const Register& rd,
551 void Assembler::adds(const Register& rd,
558 void Assembler::cmn(const Register& rn,
565 void Assembler::sub(const Register& rd,
572 void Assembler::subs(const Register& rd,
579 void Assembler::cmp(const Register& rn, const Operand& operand) {
585 void Assembler::neg(const Register& rd, const Operand& operand) {
591 void Assembler::negs(const Register& rd, const Operand& operand) {
597 void Assembler::adc(const Register& rd,
604 void Assembler::adcs(const Register& rd,
611 void Assembler::sbc(const Register& rd,
618 void Assembler::sbcs(const Register& rd,
625 void Assembler::ngc(const Register& rd, const Operand& operand) {
631 void Assembler::ngcs(const Register& rd, const Operand& operand) {
638 void Assembler::and_(const Register& rd,
645 void Assembler::ands(const Register& rd,
652 void Assembler::tst(const Register& rn,
658 void Assembler::bic(const Register& rd,
665 void Assembler::bics(const Register& rd,
672 void Assembler::orr(const Register& rd,
679 void Assembler::orn(const Register& rd,
686 void Assembler::eor(const Register& rd,
693 void Assembler::eon(const Register& rd,
700 void Assembler::lslv(const Register& rd,
709 void Assembler::lsrv(const Register& rd,
718 void Assembler::asrv(const Register& rd,
727 void Assembler::rorv(const Register& rd,
737 void Assembler::bfm(const Register& rd,
748 void Assembler::sbfm(const Register& rd,
759 void Assembler::ubfm(const Register& rd,
770 void Assembler::extr(const Register& rd,
781 void Assembler::csel(const Register& rd,
789 void Assembler::csinc(const Register& rd,
797 void Assembler::csinv(const Register& rd,
805 void Assembler::csneg(const Register& rd,
813 void Assembler::cset(const Register &rd, Condition cond) {
820 void Assembler::csetm(const Register &rd, Condition cond) {
827 void Assembler::cinc(const Register &rd, const Register &rn, Condition cond) {
833 void Assembler::cinv(const Register &rd, const Register &rn, Condition cond) {
839 void Assembler::cneg(const Register &rd, const Register &rn, Condition cond) {
845 void Assembler::ConditionalSelect(const Register& rd,
856 void Assembler::ccmn(const Register& rn,
864 void Assembler::ccmp(const Register& rn,
872 void Assembler::DataProcessing3Source(const Register& rd,
881 void Assembler::mul(const Register& rd,
889 void Assembler::madd(const Register& rd,
897 void Assembler::mneg(const Register& rd,
905 void Assembler::msub(const Register& rd,
913 void Assembler::umaddl(const Register& rd,
923 void Assembler::smaddl(const Register& rd,
933 void Assembler::umsubl(const Register& rd,
943 void Assembler::smsubl(const Register& rd,
953 void Assembler::smull(const Register& rd,
962 void Assembler::sdiv(const Register& rd,
971 void Assembler::smulh(const Register& xd,
978 void Assembler::udiv(const Register& rd,
987 void Assembler::rbit(const Register& rd,
993 void Assembler::rev16(const Register& rd,
999 void Assembler::rev32(const Register& rd,
1006 void Assembler::rev(const Register& rd,
1012 void Assembler::clz(const Register& rd,
1018 void Assembler::cls(const Register& rd,
1024 void Assembler::ldp(const CPURegister& rt,
1031 void Assembler::stp(const CPURegister& rt,
1038 void Assembler::ldpsw(const Register& rt,
1046 void Assembler::LoadStorePair(const CPURegister& rt,
1073 void Assembler::ldnp(const CPURegister& rt,
1081 void Assembler::stnp(const CPURegister& rt,
1089 void Assembler::LoadStorePairNonTemporal(const CPURegister& rt,
1105 void Assembler::ldrb(const Register& rt, const MemOperand& src) {
1110 void Assembler::strb(const Register& rt, const MemOperand& dst) {
1115 void Assembler::ldrsb(const Register& rt, const MemOperand& src) {
1120 void Assembler::ldrh(const Register& rt, const MemOperand& src) {
1125 void Assembler::strh(const Register& rt, const MemOperand& dst) {
1130 void Assembler::ldrsh(const Register& rt, const MemOperand& src) {
1135 void Assembler::ldr(const CPURegister& rt, const MemOperand& src) {
1140 void Assembler::str(const CPURegister& rt, const MemOperand& src) {
1145 void Assembler::ldrsw(const Register& rt, const MemOperand& src) {
1151 void Assembler::ldr(const Register& rt, uint64_t imm) {
1156 void Assembler::ldr(const FPRegister& ft, double imm) {
1162 void Assembler::ldr(const FPRegister& ft, float imm) {
1168 void Assembler::mov(const Register& rd, const Register& rm) {
1180 void Assembler::mvn(const Register& rd, const Operand& operand) {
1185 void Assembler::mrs(const Register& rt, SystemRegister sysreg) {
1191 void Assembler::msr(SystemRegister sysreg, const Register& rt) {
1197 void Assembler::hint(SystemHint code) {
1202 void Assembler::dmb(BarrierDomain domain, BarrierType type) {
1207 void Assembler::dsb(BarrierDomain domain, BarrierType type) {
1212 void Assembler::isb() {
1217 void Assembler::fmov(const FPRegister& fd, double imm) {
1224 void Assembler::fmov(const FPRegister& fd, float imm) {
1231 void Assembler::fmov(const Register& rd, const FPRegister& fn) {
1238 void Assembler::fmov(const FPRegister& fd, const Register& rn) {
1245 void Assembler::fmov(const FPRegister& fd, const FPRegister& fn) {
1251 void Assembler::fadd(const FPRegister& fd,
1258 void Assembler::fsub(const FPRegister& fd,
1265 void Assembler::fmul(const FPRegister& fd,
1272 void Assembler::fmadd(const FPRegister& fd,
1280 void Assembler::fmsub(const FPRegister& fd,
1288 void Assembler::fnmadd(const FPRegister& fd,
1296 void Assembler::fnmsub(const FPRegister& fd,
1304 void Assembler::fdiv(const FPRegister& fd,
1311 void Assembler::fmax(const FPRegister& fd,
1318 void Assembler::fmaxnm(const FPRegister& fd,
1325 void Assembler::fmin(const FPRegister& fd,
1332 void Assembler::fminnm(const FPRegister& fd,
1339 void Assembler::fabs(const FPRegister& fd,
1346 void Assembler::fneg(const FPRegister& fd,
1353 void Assembler::fsqrt(const FPRegister& fd,
1360 void Assembler::frinta(const FPRegister& fd,
1367 void Assembler::frintm(const FPRegister& fd,
1374 void Assembler::frintn(const FPRegister& fd,
1381 void Assembler::frintz(const FPRegister& fd,
1388 void Assembler::fcmp(const FPRegister& fn,
1395 void Assembler::fcmp(const FPRegister& fn,
1406 void Assembler::fccmp(const FPRegister& fn,
1415 void Assembler::fcsel(const FPRegister& fd,
1425 void Assembler::FPConvertToInt(const Register& rd,
1432 void Assembler::fcvt(const FPRegister& fd,
1446 void Assembler::fcvtau(const Register& rd, const FPRegister& fn) {
1451 void Assembler::fcvtas(const Register& rd, const FPRegister& fn) {
1456 void Assembler::fcvtmu(const Register& rd, const FPRegister& fn) {
1461 void Assembler::fcvtms(const Register& rd, const FPRegister& fn) {
1466 void Assembler::fcvtnu(const Register& rd, const FPRegister& fn) {
1471 void Assembler::fcvtns(const Register& rd, const FPRegister& fn) {
1476 void Assembler::fcvtzu(const Register& rd, const FPRegister& fn) {
1481 void Assembler::fcvtzs(const Register& rd, const FPRegister& fn) {
1486 void Assembler::scvtf(const FPRegister& fd,
1498 void Assembler::ucvtf(const FPRegister& fd,
1514 Instr Assembler::ImmFP32(float imm) {
1529 Instr Assembler::ImmFP64(double imm) {
1546 void Assembler::MoveWide(const Register& rd,
1583 void Assembler::AddSub(const Register& rd,
1620 void Assembler::AddSubWithCarry(const Register& rd,
1632 void Assembler::hlt(int code) {
1638 void Assembler::brk(int code) {
1644 void Assembler::Logical(const Register& rd,
1668 // This case is handled in the macro assembler.
1680 void Assembler::LogicalImmediate(const Register& rd,
1694 void Assembler::ConditionalCompare(const Register& rn,
1712 void Assembler::DataProcessing1Source(const Register& rd,
1720 void Assembler::FPDataProcessing1Source(const FPRegister& fd,
1727 void Assembler::FPDataProcessing2Source(const FPRegister& fd,
1737 void Assembler::FPDataProcessing3Source(const FPRegister& fd,
1747 void Assembler::EmitShift(const Register& rd,
1770 void Assembler::EmitExtendShift(const Register& rd,
1807 void Assembler::DataProcShiftedRegister(const Register& rd,
1821 void Assembler::DataProcExtendedRegister(const Register& rd,
1833 bool Assembler::IsImmAddSub(int64_t immediate) {
1838 void Assembler::LoadStore(const CPURegister& rt,
1854 // This case is handled in the macro assembler.
1882 // This case is handled in the macro assembler.
1889 bool Assembler::IsImmLSUnscaled(ptrdiff_t offset) {
1894 bool Assembler::IsImmLSScaled(ptrdiff_t offset, LSDataSize size) {
1900 void Assembler::LoadLiteral(const CPURegister& rt,
1918 bool Assembler::IsImmLogical(uint64_t value,
2013 bool Assembler::IsImmConditionalCompare(int64_t immediate) {
2018 bool Assembler::IsImmFP32(float imm) {
2042 bool Assembler::IsImmFP64(double imm) {
2067 LoadStoreOp Assembler::LoadOpFor(const CPURegister& rt) {
2078 LoadStorePairOp Assembler::LoadPairOpFor(const CPURegister& rt,
2091 LoadStoreOp Assembler::StoreOpFor(const CPURegister& rt) {
2102 LoadStorePairOp Assembler::StorePairOpFor(const CPURegister& rt,
2115 LoadStorePairNonTemporalOp Assembler::LoadPairNonTemporalOpFor(
2128 LoadStorePairNonTemporalOp Assembler::StorePairNonTemporalOpFor(
2141 void Assembler::RecordLiteral(int64_t imm, unsigned size) {
2154 void Assembler::CheckLiteralPool(LiteralPoolEmitOption option) {
2179 void Assembler::EmitLiteralPool(LiteralPoolEmitOption option) {
2233 size_t Assembler::LiteralPoolSize() {