mirror of
https://github.com/revanced/smali.git
synced 2025-05-09 19:04:32 +02:00
Refactor instruction 35c to set the Registers attribute multiple times, instead of setting it to an array
git-svn-id: https://smali.googlecode.com/svn/trunk@372 55b6fa8a-2a1e-11de-a435-ffa8d773f76a
This commit is contained in:
parent
7885a819a0
commit
fdf48625bb
@ -33,6 +33,8 @@ import org.jf.baksmali.Adaptors.Reference.Reference;
|
|||||||
import org.antlr.stringtemplate.StringTemplateGroup;
|
import org.antlr.stringtemplate.StringTemplateGroup;
|
||||||
import org.antlr.stringtemplate.StringTemplate;
|
import org.antlr.stringtemplate.StringTemplate;
|
||||||
|
|
||||||
|
import java.util.Arrays;
|
||||||
|
|
||||||
public class Instruction35cMethodItem extends InstructionFormatMethodItem<Instruction35c> {
|
public class Instruction35cMethodItem extends InstructionFormatMethodItem<Instruction35c> {
|
||||||
public Instruction35cMethodItem(int offset, StringTemplateGroup stg, Instruction35c instruction) {
|
public Instruction35cMethodItem(int offset, StringTemplateGroup stg, Instruction35c instruction) {
|
||||||
super(offset, stg, instruction);
|
super(offset, stg, instruction);
|
||||||
@ -41,25 +43,35 @@ public class Instruction35cMethodItem extends InstructionFormatMethodItem<Instru
|
|||||||
protected void setAttributes(StringTemplate template) {
|
protected void setAttributes(StringTemplate template) {
|
||||||
template.setAttribute("Reference", Reference.makeReference(template.getGroup(),
|
template.setAttribute("Reference", Reference.makeReference(template.getGroup(),
|
||||||
instruction.getReferencedItem()));
|
instruction.getReferencedItem()));
|
||||||
template.setAttribute("Registers", getRegisters());
|
setRegistersAttribute(template);
|
||||||
}
|
}
|
||||||
|
|
||||||
private int[] getRegisters() {
|
private void setRegistersAttribute(StringTemplate template) {
|
||||||
switch (instruction.getRegCount()) {
|
switch (instruction.getRegCount()) {
|
||||||
case 1:
|
case 1:
|
||||||
return new int[] {instruction.getRegisterD()};
|
template.setAttribute("Registers", (int)instruction.getRegisterD());
|
||||||
|
return;
|
||||||
case 2:
|
case 2:
|
||||||
return new int[] {instruction.getRegisterD(), instruction.getRegisterE()};
|
template.setAttribute("Registers", (int)instruction.getRegisterD());
|
||||||
|
template.setAttribute("Registers", (int)instruction.getRegisterE());
|
||||||
|
return;
|
||||||
case 3:
|
case 3:
|
||||||
return new int[] {instruction.getRegisterD(), instruction.getRegisterE(), instruction.getRegisterF()};
|
template.setAttribute("Registers", (int)instruction.getRegisterD());
|
||||||
|
template.setAttribute("Registers", (int)instruction.getRegisterE());
|
||||||
|
template.setAttribute("Registers", (int)instruction.getRegisterF());
|
||||||
|
return;
|
||||||
case 4:
|
case 4:
|
||||||
return new int[] {instruction.getRegisterD(), instruction.getRegisterE(), instruction.getRegisterF(),
|
template.setAttribute("Registers", (int)instruction.getRegisterD());
|
||||||
instruction.getRegisterG()};
|
template.setAttribute("Registers", (int)instruction.getRegisterE());
|
||||||
|
template.setAttribute("Registers", (int)instruction.getRegisterF());
|
||||||
|
template.setAttribute("Registers", (int)instruction.getRegisterG());
|
||||||
|
return;
|
||||||
case 5:
|
case 5:
|
||||||
return new int[] {instruction.getRegisterD(), instruction.getRegisterE(), instruction.getRegisterF(),
|
template.setAttribute("Registers", (int)instruction.getRegisterD());
|
||||||
instruction.getRegisterG(), instruction.getRegisterA()};
|
template.setAttribute("Registers", (int)instruction.getRegisterE());
|
||||||
default:
|
template.setAttribute("Registers", (int)instruction.getRegisterF());
|
||||||
return new int[0];
|
template.setAttribute("Registers", (int)instruction.getRegisterG());
|
||||||
|
template.setAttribute("Registers", (int)instruction.getRegisterA());
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user