mirror of
https://github.com/simon987/Much-Assembly-Required.git
synced 2025-04-18 02:06:43 +00:00
remove magic numbers
This commit is contained in:
parent
9aa876df62
commit
b19eb0568d
@ -25,38 +25,54 @@ import java.util.HashMap;
|
|||||||
public class SetccInstruction extends Instruction {
|
public class SetccInstruction extends Instruction {
|
||||||
|
|
||||||
public static final int OPCODE = 50;
|
public static final int OPCODE = 50;
|
||||||
|
|
||||||
|
public static final int SETA = 0x01;
|
||||||
|
public static final int SETAE = 0x02;
|
||||||
|
public static final int SETBE = 0x03;
|
||||||
|
public static final int SETB = 0x04;
|
||||||
|
public static final int SETE = 0x05;
|
||||||
|
public static final int SETNE = 0x06;
|
||||||
|
public static final int SETG = 0x07;
|
||||||
|
public static final int SETGE = 0x08;
|
||||||
|
public static final int SETLE = 0x09;
|
||||||
|
public static final int SETL = 0x0A;
|
||||||
|
public static final int SETO = 0x0B;
|
||||||
|
public static final int SETNO = 0x0C;
|
||||||
|
public static final int SETS = 0x0D;
|
||||||
|
public static final int SETNS = 0x0E;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Map of mnemonics, stored in mnemonic : family op code
|
* Map of mnemonics, stored in mnemonic : family op code
|
||||||
* This map includes aliases
|
* This map includes aliases
|
||||||
*/
|
*/
|
||||||
private static final Map<String, Character> mnemnoicFamilyOpCodeMap = new HashMap<>(26);
|
private static final Map<String, Character> mnemnoicFamilyOpCodeMap = new HashMap<>(26);
|
||||||
static {
|
static {
|
||||||
mnemnoicFamilyOpCodeMap.put("seta", (char) 0x01);
|
mnemnoicFamilyOpCodeMap.put("seta", (char) SETA);
|
||||||
mnemnoicFamilyOpCodeMap.put("setnbe", (char) 0x01);
|
mnemnoicFamilyOpCodeMap.put("setnbe", (char) SETA);
|
||||||
mnemnoicFamilyOpCodeMap.put("setae", (char) 0x02);
|
mnemnoicFamilyOpCodeMap.put("setae", (char) SETAE);
|
||||||
mnemnoicFamilyOpCodeMap.put("setnb", (char) 0x02);
|
mnemnoicFamilyOpCodeMap.put("setnb", (char) SETAE);
|
||||||
mnemnoicFamilyOpCodeMap.put("setnc", (char) 0x02);
|
mnemnoicFamilyOpCodeMap.put("setnc", (char) SETAE);
|
||||||
mnemnoicFamilyOpCodeMap.put("setbe", (char) 0x03);
|
mnemnoicFamilyOpCodeMap.put("setbe", (char) SETBE);
|
||||||
mnemnoicFamilyOpCodeMap.put("setna", (char) 0x03);
|
mnemnoicFamilyOpCodeMap.put("setna", (char) SETBE);
|
||||||
mnemnoicFamilyOpCodeMap.put("setb", (char) 0x04);
|
mnemnoicFamilyOpCodeMap.put("setb", (char) SETB);
|
||||||
mnemnoicFamilyOpCodeMap.put("setc", (char) 0x04);
|
mnemnoicFamilyOpCodeMap.put("setc", (char) SETB);
|
||||||
mnemnoicFamilyOpCodeMap.put("setnae", (char) 0x04);
|
mnemnoicFamilyOpCodeMap.put("setnae", (char) SETB);
|
||||||
mnemnoicFamilyOpCodeMap.put("sete", (char) 0x05);
|
mnemnoicFamilyOpCodeMap.put("sete", (char) SETE);
|
||||||
mnemnoicFamilyOpCodeMap.put("setz", (char) 0x05);
|
mnemnoicFamilyOpCodeMap.put("setz", (char) SETE);
|
||||||
mnemnoicFamilyOpCodeMap.put("setne", (char) 0x06);
|
mnemnoicFamilyOpCodeMap.put("setne", (char) SETNE);
|
||||||
mnemnoicFamilyOpCodeMap.put("setnz", (char) 0x06);
|
mnemnoicFamilyOpCodeMap.put("setnz", (char) SETNE);
|
||||||
mnemnoicFamilyOpCodeMap.put("setg", (char) 0x07);
|
mnemnoicFamilyOpCodeMap.put("setg", (char) SETG);
|
||||||
mnemnoicFamilyOpCodeMap.put("setnle", (char) 0x07);
|
mnemnoicFamilyOpCodeMap.put("setnle", (char) SETG);
|
||||||
mnemnoicFamilyOpCodeMap.put("setge", (char) 0x08);
|
mnemnoicFamilyOpCodeMap.put("setge", (char) SETGE);
|
||||||
mnemnoicFamilyOpCodeMap.put("setnl", (char) 0x08);
|
mnemnoicFamilyOpCodeMap.put("setnl", (char) SETGE);
|
||||||
mnemnoicFamilyOpCodeMap.put("setle", (char) 0x09);
|
mnemnoicFamilyOpCodeMap.put("setle", (char) SETLE);
|
||||||
mnemnoicFamilyOpCodeMap.put("setng", (char) 0x09);
|
mnemnoicFamilyOpCodeMap.put("setng", (char) SETLE);
|
||||||
mnemnoicFamilyOpCodeMap.put("setl", (char) 0x0A);
|
mnemnoicFamilyOpCodeMap.put("setl", (char) SETL);
|
||||||
mnemnoicFamilyOpCodeMap.put("setnge", (char) 0x0A);
|
mnemnoicFamilyOpCodeMap.put("setnge", (char) SETL);
|
||||||
mnemnoicFamilyOpCodeMap.put("seto", (char) 0x0B);
|
mnemnoicFamilyOpCodeMap.put("seto", (char) SETO);
|
||||||
mnemnoicFamilyOpCodeMap.put("setno", (char) 0x0C);
|
mnemnoicFamilyOpCodeMap.put("setno", (char) SETNO);
|
||||||
mnemnoicFamilyOpCodeMap.put("sets", (char) 0x0D);
|
mnemnoicFamilyOpCodeMap.put("sets", (char) SETS);
|
||||||
mnemnoicFamilyOpCodeMap.put("setns", (char) 0x0E);
|
mnemnoicFamilyOpCodeMap.put("setns", (char) SETNS);
|
||||||
}
|
}
|
||||||
|
|
||||||
public SetccInstruction() {
|
public SetccInstruction() {
|
||||||
@ -89,33 +105,33 @@ public class SetccInstruction extends Instruction {
|
|||||||
*/
|
*/
|
||||||
private static Status setcc(Target dst, int dstIndex, int familyOpCode, Status status) {
|
private static Status setcc(Target dst, int dstIndex, int familyOpCode, Status status) {
|
||||||
switch (familyOpCode) {
|
switch (familyOpCode) {
|
||||||
case 0x01:
|
case SETA:
|
||||||
return seta(dst, dstIndex, status);
|
return seta(dst, dstIndex, status);
|
||||||
case 0x02:
|
case SETAE:
|
||||||
return setae(dst, dstIndex, status);
|
return setae(dst, dstIndex, status);
|
||||||
case 0x03:
|
case SETBE:
|
||||||
return setbe(dst, dstIndex, status);
|
return setbe(dst, dstIndex, status);
|
||||||
case 0x04:
|
case SETB:
|
||||||
return setb(dst, dstIndex, status);
|
return setb(dst, dstIndex, status);
|
||||||
case 0x05:
|
case SETE:
|
||||||
return sete(dst, dstIndex, status);
|
return sete(dst, dstIndex, status);
|
||||||
case 0x06:
|
case SETNE:
|
||||||
return setne(dst, dstIndex, status);
|
return setne(dst, dstIndex, status);
|
||||||
case 0x07:
|
case SETG:
|
||||||
return setg(dst, dstIndex, status);
|
return setg(dst, dstIndex, status);
|
||||||
case 0x08:
|
case SETGE:
|
||||||
return setge(dst, dstIndex, status);
|
return setge(dst, dstIndex, status);
|
||||||
case 0x09:
|
case SETLE:
|
||||||
return setle(dst, dstIndex, status);
|
return setle(dst, dstIndex, status);
|
||||||
case 0x0A:
|
case SETL:
|
||||||
return setl(dst, dstIndex, status);
|
return setl(dst, dstIndex, status);
|
||||||
case 0x0B:
|
case SETO:
|
||||||
return seto(dst, dstIndex, status);
|
return seto(dst, dstIndex, status);
|
||||||
case 0x0C:
|
case SETNO:
|
||||||
return setno(dst, dstIndex, status);
|
return setno(dst, dstIndex, status);
|
||||||
case 0x0D:
|
case SETS:
|
||||||
return sets(dst, dstIndex, status);
|
return sets(dst, dstIndex, status);
|
||||||
case 0x0E:
|
case SETNS:
|
||||||
return setns(dst, dstIndex, status);
|
return setns(dst, dstIndex, status);
|
||||||
default:
|
default:
|
||||||
return status;
|
return status;
|
||||||
|
Loading…
x
Reference in New Issue
Block a user