Make byte encoding use 0xff for no predicate, otherwise preg num.

git-svn-id: http://www.cdkersey.com/harp/harptool@122 0246edb2-e076-4747-b392-db732a341fa2
This commit is contained in:
chad
2013-01-25 02:07:20 +00:00
parent 7a688ea6ab
commit e8ade7e29e
2 changed files with 5 additions and 17 deletions

View File

@@ -103,8 +103,8 @@ void Decoder::setRefs(const std::vector<Ref*> &refVec) {
Instruction *ByteDecoder::decode(const vector<Byte> &v, Size &n) {
Instruction &inst = *(new Instruction());
RegNum pred = readByte(v, n);
if (pred) inst.setPred(pred - 1);
uint8_t pred = readByte(v, n);
if (pred != 0xff) inst.setPred(pred);
unsigned op = readByte(v, n);
inst.setOpcode(Instruction::Opcode(op));
@@ -190,8 +190,8 @@ ByteEncoder::ByteEncoder(const ArchDef &ad) {
Size ByteEncoder::encode(Ref *&ref, vector<Byte> &v, Size n0, Instruction &i) {
Size n(n0);
if (i.hasPred()) writeByte(v, n, i.getPred() + 1);
else writeByte(v, n, 0);
if (i.hasPred()) writeByte(v, n, i.getPred());
else writeByte(v, n, 0xff);
writeByte(v, n, Byte(i.getOpcode()));