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

@ -35,16 +35,26 @@ class CodeElementUIntInt : CodeElement {
this.val2 = val2;
}
/* obsolete
internal override int Length {
get {
return Encode7EUnsigned(val1, null)
+ Encode7ESigned(val2, null);
}
}
*/
internal override int Encode(BlobWriter bw)
internal override int GetLength(bool oneByteCode)
{
int len = Encode7EUnsigned(val1, bw);
return (oneByteCode ? 1 : Encode7EUnsigned(val1, null))
+ Encode7ESigned(val2, null);
}
internal override int Encode(BlobWriter bw, bool oneByteCode)
{
int len = oneByteCode
? EncodeOneByte(val1, bw)
: Encode7EUnsigned(val1, bw);
len += Encode7ESigned(val2, bw);
return len;
}