Home | History | Annotate | Download | only in libunwindstack

Lines Matching defs:byte

47     // The offset needs to be at least two byte aligned.
172 inline bool ArmExidx::GetByte(uint8_t* byte) {
177 *byte = data_.front();
182 inline bool ArmExidx::DecodePrefix_10_00(uint8_t byte) {
183 CHECK((byte >> 4) == 0x8);
185 uint16_t registers = (byte & 0xf) << 8;
186 if (!GetByte(&byte)) {
190 registers |= byte;
242 inline bool ArmExidx::DecodePrefix_10_01(uint8_t byte) {
243 CHECK((byte >> 4) == 0x9);
245 uint8_t bits = byte & 0xf;
268 inline bool ArmExidx::DecodePrefix_10_10(uint8_t byte) {
269 CHECK((byte >> 4) == 0xa);
275 uint8_t end_reg = byte & 0x7;
279 if (byte & 0x8) {
289 for (size_t i = 4; i <= 4 + (byte & 0x7); i++) {
297 if (byte & 0x8) {
322 uint8_t byte;
323 if (!GetByte(&byte)) {
327 if (byte == 0) {
335 if (byte >> 4) {
349 if (byte & (1 << i)) {
364 if (byte & (1 << reg)) {
380 uint8_t byte;
382 if (!GetByte(&byte)) {
386 result |= (byte & 0x7f) << shift;
388 } while (byte & 0x80);
402 uint8_t byte;
403 if (!GetByte(&byte)) {
408 uint8_t start_reg = byte >> 4;
410 uint8_t end_reg = start_reg + (byte & 0xf);
419 cfa_ += (byte & 0xf) * 8 + 12;
432 inline bool ArmExidx::DecodePrefix_10_11_1nnn(uint8_t byte) {
433 CHECK((byte & ~0x07) == 0xb8);
438 uint8_t last_reg = (byte & 0x7);
448 cfa_ += (byte & 0x7) * 8 + 12;
452 inline bool ArmExidx::DecodePrefix_10(uint8_t byte) {
453 CHECK((byte >> 6) == 0x2);
455 switch ((byte >> 4) & 0x3) {
457 return DecodePrefix_10_00(byte);
459 return DecodePrefix_10_01(byte);
461 return DecodePrefix_10_10(byte);
463 switch (byte & 0xf) {
473 if (byte & 0x8) {
474 return DecodePrefix_10_11_1nnn(byte);
482 inline bool ArmExidx::DecodePrefix_11_000(uint8_t byte) {
483 CHECK((byte & ~0x07) == 0xc0);
485 uint8_t bits = byte & 0x7;
487 if (!GetByte(&byte)) {
493 uint8_t start_reg = byte >> 4;
495 uint8_t end_reg = byte & 0xf;
505 cfa_ += (byte & 0xf) * 8 + 8;
507 if (!GetByte(&byte)) {
511 if (byte == 0) {
518 } else if ((byte >> 4) == 0) {
524 if (byte & (1 << i)) {
535 cfa_ += __builtin_popcount(byte) * 4;
548 uint8_t nnn = byte & 0x7;
558 cfa_ += (byte & 0x7) * 8 + 8;
563 inline bool ArmExidx::DecodePrefix_11_001(uint8_t byte) {
564 CHECK((byte & ~0x07) == 0xc8);
566 uint8_t bits = byte & 0x7;
569 if (!GetByte(&byte)) {
574 uint8_t start_reg = byte >> 4;
576 uint8_t end_reg = byte & 0xf;
586 cfa_ += (byte & 0xf) * 8 + 8;
589 if (!GetByte(&byte)) {
594 uint8_t start_reg = byte >> 4;
596 uint8_t end_reg = byte & 0xf;
606 cfa_ += (byte & 0xf) * 8 + 8;
618 inline bool ArmExidx::DecodePrefix_11_010(uint8_t byte) {
619 CHECK((byte & ~0x07) == 0xd0);
624 uint8_t end_reg = byte & 0x7;
633 cfa_ += (byte & 0x7) * 8 + 8;
637 inline bool ArmExidx::DecodePrefix_11(uint8_t byte) {
638 CHECK((byte >> 6) == 0x3);
640 switch ((byte >> 3) & 0x7) {
642 return DecodePrefix_11_000(byte);
644 return DecodePrefix_11_001(byte);
646 return DecodePrefix_11_010(byte);
659 uint8_t byte;
660 if (!GetByte(&byte)) {
664 switch (byte >> 6) {
668 log(log_indent_, "vsp = vsp + %d", ((byte & 0x3f) << 2) + 4);
673 cfa_ += ((byte & 0x3f) << 2) + 4;
678 log(log_indent_, "vsp = vsp - %d", ((byte & 0x3f) << 2) + 4);
683 cfa_ -= ((byte & 0x3f) << 2) + 4;
686 return DecodePrefix_10(byte);
688 return DecodePrefix_11(byte);