@@ -580,39 +580,44 @@ void sim_t::interactive_vreg(const std::string& cmd, const std::vector<std::stri
580
580
}
581
581
}
582
582
583
+ std::ostream out (sout_.rdbuf ());
584
+
583
585
// Show all the regs!
584
586
processor_t *p = get_core (args[0 ]);
585
- const int vlen = (int )(p->VU .get_vlen ()) >> 3 ;
586
- const int elen = (int )(p->VU .get_elen ()) >> 3 ;
587
- const int num_elem = vlen/elen;
588
-
589
- std::ostream out (sout_.rdbuf ());
590
- out << std::dec << " VLEN=" << (vlen << 3 ) << " bits; ELEN=" << (elen << 3 ) << " bits" << std::endl;
591
-
592
- for (int r = rstart; r < rend; ++r) {
593
- out << std::setfill (' ' ) << std::left << std::setw (4 ) << vr_name[r] << std::right << " : " ;
594
- for (int e = num_elem-1 ; e >= 0 ; --e) {
595
- uint64_t val;
596
- switch (elen) {
597
- case 8 :
598
- val = p->VU .elt <uint64_t >(r, e);
599
- out << std::dec << " [" << e << " ]: 0x" << std::hex << std::setfill (' 0' ) << std::setw (16 ) << val << " " ;
600
- break ;
601
- case 4 :
602
- val = p->VU .elt <uint32_t >(r, e);
603
- out << std::dec << " [" << e << " ]: 0x" << std::hex << std::setfill (' 0' ) << std::setw (8 ) << (uint32_t )val << " " ;
604
- break ;
605
- case 2 :
606
- val = p->VU .elt <uint16_t >(r, e);
607
- out << std::dec << " [" << e << " ]: 0x" << std::hex << std::setfill (' 0' ) << std::setw (8 ) << (uint16_t )val << " " ;
608
- break ;
609
- case 1 :
610
- val = p->VU .elt <uint8_t >(r, e);
611
- out << std::dec << " [" << e << " ]: 0x" << std::hex << std::setfill (' 0' ) << std::setw (8 ) << (int )(uint8_t )val << " " ;
612
- break ;
587
+ if (p->any_vector_extensions ()) {
588
+ const int vlen = (int )(p->VU .get_vlen ()) >> 3 ;
589
+ const int elen = (int )(p->VU .get_elen ()) >> 3 ;
590
+ const int num_elem = vlen/elen;
591
+
592
+ out << std::dec << " VLEN=" << (vlen << 3 ) << " bits; ELEN=" << (elen << 3 ) << " bits" << std::endl;
593
+
594
+ for (int r = rstart; r < rend; ++r) {
595
+ out << std::setfill (' ' ) << std::left << std::setw (4 ) << vr_name[r] << std::right << " : " ;
596
+ for (int e = num_elem-1 ; e >= 0 ; --e) {
597
+ uint64_t val;
598
+ switch (elen) {
599
+ case 8 :
600
+ val = p->VU .elt <uint64_t >(r, e);
601
+ out << std::dec << " [" << e << " ]: 0x" << std::hex << std::setfill (' 0' ) << std::setw (16 ) << val << " " ;
602
+ break ;
603
+ case 4 :
604
+ val = p->VU .elt <uint32_t >(r, e);
605
+ out << std::dec << " [" << e << " ]: 0x" << std::hex << std::setfill (' 0' ) << std::setw (8 ) << (uint32_t )val << " " ;
606
+ break ;
607
+ case 2 :
608
+ val = p->VU .elt <uint16_t >(r, e);
609
+ out << std::dec << " [" << e << " ]: 0x" << std::hex << std::setfill (' 0' ) << std::setw (8 ) << (uint16_t )val << " " ;
610
+ break ;
611
+ case 1 :
612
+ val = p->VU .elt <uint8_t >(r, e);
613
+ out << std::dec << " [" << e << " ]: 0x" << std::hex << std::setfill (' 0' ) << std::setw (8 ) << (int )(uint8_t )val << " " ;
614
+ break ;
615
+ }
613
616
}
617
+ out << std::endl;
614
618
}
615
- out << std::endl;
619
+ } else {
620
+ out << " Processor selected does not support any vector extensions" << std::endl;
616
621
}
617
622
}
618
623
0 commit comments