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:
JesusFreke@JesusFreke.com 2009-08-07 07:06:47 +00:00
parent 7885a819a0
commit fdf48625bb

View File

@ -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());
} }
} }
} }