Lines Matching refs:dex
23 namespace dex { namespace
28 using ::dex::kAccPublic;
42 constexpr ::dex::Opcode InvokeToInvokeRange(::dex::Opcode opcode) { in InvokeToInvokeRange()
44 case ::dex::Opcode::OP_INVOKE_VIRTUAL: in InvokeToInvokeRange()
45 return ::dex::Opcode::OP_INVOKE_VIRTUAL_RANGE; in InvokeToInvokeRange()
46 case ::dex::Opcode::OP_INVOKE_DIRECT: in InvokeToInvokeRange()
47 return ::dex::Opcode::OP_INVOKE_DIRECT_RANGE; in InvokeToInvokeRange()
48 case ::dex::Opcode::OP_INVOKE_STATIC: in InvokeToInvokeRange()
49 return ::dex::Opcode::OP_INVOKE_STATIC_RANGE; in InvokeToInvokeRange()
50 case ::dex::Opcode::OP_INVOKE_INTERFACE: in InvokeToInvokeRange()
51 return ::dex::Opcode::OP_INVOKE_INTERFACE_RANGE; in InvokeToInvokeRange()
194 ::dex::Writer writer(dex_file_); in CreateImage()
196 ::dex::u1* image = writer.CreateImage(&allocator_, &image_size); in CreateImage()
206 uint8_t* string_data_start = ::dex::WriteULeb128(buffer.get(), string.size()); in GetOrAddString()
217 ::dex::u4 const new_index = dex_file_->strings_indexes.AllocateIndex(); in GetOrAddString()
266 ir::Proto* Prototype::Encode(DexBuilder* dex) const { in Encode()
267 auto* proto = dex->Alloc<ir::Proto>(); in Encode()
268 proto->shorty = dex->GetOrAddString(Shorty()); in Encode()
269 proto->return_type = dex->GetOrAddType(return_type_.descriptor()); in Encode()
271 proto->param_types = dex->Alloc<ir::TypeList>(); in Encode()
273 proto->param_types->types.push_back(dex->GetOrAddType(param_type.descriptor())); in Encode()
308 MethodBuilder::MethodBuilder(DexBuilder* dex, ir::Class* class_def, ir::MethodDecl* decl) in MethodBuilder() argument
309 : dex_{dex}, class_{class_def}, decl_{decl} {} in MethodBuilder()
316 method->access_flags = kAccPublic | ::dex::kAccStatic; in Encode()
325 code->instructions = slicer::ArrayView<const ::dex::u2>(buffer_.data(), buffer_.size()); in Encode()
386 return EncodeReturn(instruction, ::dex::Opcode::OP_RETURN); in EncodeInstruction()
388 return EncodeReturn(instruction, ::dex::Opcode::OP_RETURN_OBJECT); in EncodeInstruction()
393 return EncodeInvoke(instruction, ::dex::Opcode::OP_INVOKE_VIRTUAL); in EncodeInstruction()
395 return EncodeInvoke(instruction, ::dex::Opcode::OP_INVOKE_DIRECT); in EncodeInstruction()
397 return EncodeInvoke(instruction, ::dex::Opcode::OP_INVOKE_STATIC); in EncodeInstruction()
399 return EncodeInvoke(instruction, ::dex::Opcode::OP_INVOKE_INTERFACE); in EncodeInstruction()
403 return EncodeBranch(::dex::Opcode::OP_IF_EQZ, instruction); in EncodeInstruction()
405 return EncodeBranch(::dex::Opcode::OP_IF_NEZ, instruction); in EncodeInstruction()
418 void MethodBuilder::EncodeReturn(const Instruction& instruction, ::dex::Opcode opcode) { in EncodeReturn()
421 Encode10x(::dex::Opcode::OP_RETURN_VOID); in EncodeReturn()
441 Encode11n(::dex::Opcode::OP_CONST_4, RegisterValue(*instruction.dest()), source.value()); in EncodeMove()
446 Encode21c(::dex::Opcode::OP_CONST_STRING, RegisterValue(*instruction.dest()), source.value()); in EncodeMove()
453 ? ::dex::Opcode::OP_MOVE_16 in EncodeMove()
454 : ::dex::Opcode::OP_MOVE_OBJECT_16; in EncodeMove()
461 void MethodBuilder::EncodeInvoke(const Instruction& instruction, ::dex::Opcode opcode) { in EncodeInvoke()
488 if (opcode == ::dex::Opcode::OP_INVOKE_VIRTUAL || in EncodeInvoke()
489 opcode == ::dex::Opcode::OP_INVOKE_DIRECT) { in EncodeInvoke()
522 Encode11x(instruction.result_is_object() ? ::dex::Opcode::OP_MOVE_RESULT_OBJECT in EncodeInvoke()
523 : ::dex::Opcode::OP_MOVE_RESULT, in EncodeInvoke()
531 void MethodBuilder::EncodeBranch(::dex::Opcode op, const Instruction& instruction) { in EncodeBranch()
554 Encode21c(::dex::Opcode::OP_NEW_INSTANCE, RegisterValue(*instruction.dest()), type.value()); in EncodeNew()
566 Encode21c(::dex::Opcode::OP_CHECK_CAST, RegisterValue(*instruction.dest()), type.value()); in EncodeCast()
577 Encode21c(::dex::Opcode::OP_SGET, in EncodeFieldOp()
587 Encode21c(::dex::Opcode::OP_SPUT, RegisterValue(args[0]), instruction.index_argument()); in EncodeFieldOp()
595 Encode22c(::dex::Opcode::OP_IGET, in EncodeFieldOp()
607 Encode22c(::dex::Opcode::OP_IPUT, in EncodeFieldOp()
643 ::dex::u2 MethodBuilder::LabelValue(const Value& label_id, size_t instruction_offset, in LabelValue()