sedymrak wrote: > It's not clear to me whether this supports arbitrary sizes where the register > is for example, 6 bits (I saw a DSP once with these). "arbitrary" would mean > yes, this is supported but please confirm. > > If you want to limit this to byte multiples and only > 64-bit total then fine > as long as that's clear in comments and testing.
`RegisterValue` is able to store the value of a register that has any number of bits. It always uses at least as many bits as necessary. However, when `RegisterValue` object is initialized with `RegisterValue::SetValueFromData` method, the `RegisterValue` object may used more bits than it is necessary. It has no other option because the information concerning the exact number of bits is not provided. It (i.e. the `RegisterValue` object) is told only the number of bytes. So, for example, LLDB converts: - 6-bit values to 8-bit values - 33-bit values to 64-bit values - 65-bit values to 72-bit values. This is demonstrated in the tests. So `eTypeUIntN` registers do not break the convention estabilished by: - `eTypeUInt8` - `eTypeUInt16` - `eTypeUInt32` - `eTypeUInt64` Hopefully, I haven't misinterpreted your question. https://github.com/llvm/llvm-project/pull/166363 _______________________________________________ lldb-commits mailing list [email protected] https://lists.llvm.org/cgi-bin/mailman/listinfo/lldb-commits
