|
|
@ -1,8 +1,8 @@ |
|
|
|
// Fast decoder: ~3x the speed of decode.c, but x86-64 specific.
|
|
|
|
// Fast decoder: ~3x the speed of decode.c, but requires x86-64/ARM64.
|
|
|
|
// Also the table size grows by 2x.
|
|
|
|
// Also the table size grows by 2x.
|
|
|
|
//
|
|
|
|
//
|
|
|
|
// Could potentially be ported to ARM64 or other 64-bit archs that pass at
|
|
|
|
// Could potentially be ported to other 64-bit archs that pass at least six
|
|
|
|
// least six arguments in registers.
|
|
|
|
// arguments in registers and have 8 unused high bits in pointers.
|
|
|
|
//
|
|
|
|
//
|
|
|
|
// The overall design is to create specialized functions for every possible
|
|
|
|
// The overall design is to create specialized functions for every possible
|
|
|
|
// field type (eg. oneof boolean field with a 1 byte tag) and then dispatch
|
|
|
|
// field type (eg. oneof boolean field with a 1 byte tag) and then dispatch
|
|
|
|