Optimised T0 generated code: when possible (at most 256 words), word calls are encoded over one byte, even in the 128..255 range.

This commit is contained in:
Thomas Pornin 2016-12-12 19:58:49 +01:00
parent e61ad42191
commit fb7052216d
8 changed files with 114 additions and 20 deletions

View file

@ -33,14 +33,23 @@ class CodeElementUInt : CodeElement {
this.val = val;
}
/* obsolete
internal override int Length {
get {
return Encode7EUnsigned(val, null);
}
}
*/
internal override int Encode(BlobWriter bw)
internal override int GetLength(bool oneByteCode)
{
return Encode7EUnsigned(val, bw);
return oneByteCode ? 1 : Encode7EUnsigned(val, null);
}
internal override int Encode(BlobWriter bw, bool oneByteCode)
{
return oneByteCode
? EncodeOneByte(val, bw)
: Encode7EUnsigned(val, bw);
}
}