]> CyberLeo.Net >> Repos - FreeBSD/FreeBSD.git/blob - contrib/llvm/tools/lldb/source/Utility/ARM_DWARF_Registers.cpp
Merge ^/head r311546 through r311683.
[FreeBSD/FreeBSD.git] / contrib / llvm / tools / lldb / source / Utility / ARM_DWARF_Registers.cpp
1 //===-- ARM_DWARF_Registers.cpp ---------------------------------*- C++ -*-===//
2 //
3 //                     The LLVM Compiler Infrastructure
4 //
5 // This file is distributed under the University of Illinois Open Source
6 // License. See LICENSE.TXT for details.
7 //
8 //===----------------------------------------------------------------------===//
9
10 #include "ARM_DWARF_Registers.h"
11 #include <string.h>
12
13 #include <string.h>
14
15 using namespace lldb;
16 using namespace lldb_private;
17
18 const char *GetARMDWARFRegisterName(unsigned reg_num) {
19   switch (reg_num) {
20   case dwarf_r0:
21     return "r0";
22   case dwarf_r1:
23     return "r1";
24   case dwarf_r2:
25     return "r2";
26   case dwarf_r3:
27     return "r3";
28   case dwarf_r4:
29     return "r4";
30   case dwarf_r5:
31     return "r5";
32   case dwarf_r6:
33     return "r6";
34   case dwarf_r7:
35     return "r7";
36   case dwarf_r8:
37     return "r8";
38   case dwarf_r9:
39     return "r9";
40   case dwarf_r10:
41     return "r10";
42   case dwarf_r11:
43     return "r11";
44   case dwarf_r12:
45     return "r12";
46   case dwarf_sp:
47     return "sp";
48   case dwarf_lr:
49     return "lr";
50   case dwarf_pc:
51     return "pc";
52   case dwarf_cpsr:
53     return "cpsr";
54
55   case dwarf_s0:
56     return "s0";
57   case dwarf_s1:
58     return "s1";
59   case dwarf_s2:
60     return "s2";
61   case dwarf_s3:
62     return "s3";
63   case dwarf_s4:
64     return "s4";
65   case dwarf_s5:
66     return "s5";
67   case dwarf_s6:
68     return "s6";
69   case dwarf_s7:
70     return "s7";
71   case dwarf_s8:
72     return "s8";
73   case dwarf_s9:
74     return "s9";
75   case dwarf_s10:
76     return "s10";
77   case dwarf_s11:
78     return "s11";
79   case dwarf_s12:
80     return "s12";
81   case dwarf_s13:
82     return "s13";
83   case dwarf_s14:
84     return "s14";
85   case dwarf_s15:
86     return "s15";
87   case dwarf_s16:
88     return "s16";
89   case dwarf_s17:
90     return "s17";
91   case dwarf_s18:
92     return "s18";
93   case dwarf_s19:
94     return "s19";
95   case dwarf_s20:
96     return "s20";
97   case dwarf_s21:
98     return "s21";
99   case dwarf_s22:
100     return "s22";
101   case dwarf_s23:
102     return "s23";
103   case dwarf_s24:
104     return "s24";
105   case dwarf_s25:
106     return "s25";
107   case dwarf_s26:
108     return "s26";
109   case dwarf_s27:
110     return "s27";
111   case dwarf_s28:
112     return "s28";
113   case dwarf_s29:
114     return "s29";
115   case dwarf_s30:
116     return "s30";
117   case dwarf_s31:
118     return "s31";
119
120   // FPA Registers 0-7
121   case dwarf_f0:
122     return "f0";
123   case dwarf_f1:
124     return "f1";
125   case dwarf_f2:
126     return "f2";
127   case dwarf_f3:
128     return "f3";
129   case dwarf_f4:
130     return "f4";
131   case dwarf_f5:
132     return "f5";
133   case dwarf_f6:
134     return "f6";
135   case dwarf_f7:
136     return "f7";
137
138   // Intel wireless MMX general purpose registers 0 - 7
139   // XScale accumulator register 0 - 7 (they do overlap with wCGR0 - wCGR7)
140   case dwarf_wCGR0:
141     return "wCGR0/ACC0";
142   case dwarf_wCGR1:
143     return "wCGR1/ACC1";
144   case dwarf_wCGR2:
145     return "wCGR2/ACC2";
146   case dwarf_wCGR3:
147     return "wCGR3/ACC3";
148   case dwarf_wCGR4:
149     return "wCGR4/ACC4";
150   case dwarf_wCGR5:
151     return "wCGR5/ACC5";
152   case dwarf_wCGR6:
153     return "wCGR6/ACC6";
154   case dwarf_wCGR7:
155     return "wCGR7/ACC7";
156
157   // Intel wireless MMX data registers 0 - 15
158   case dwarf_wR0:
159     return "wR0";
160   case dwarf_wR1:
161     return "wR1";
162   case dwarf_wR2:
163     return "wR2";
164   case dwarf_wR3:
165     return "wR3";
166   case dwarf_wR4:
167     return "wR4";
168   case dwarf_wR5:
169     return "wR5";
170   case dwarf_wR6:
171     return "wR6";
172   case dwarf_wR7:
173     return "wR7";
174   case dwarf_wR8:
175     return "wR8";
176   case dwarf_wR9:
177     return "wR9";
178   case dwarf_wR10:
179     return "wR10";
180   case dwarf_wR11:
181     return "wR11";
182   case dwarf_wR12:
183     return "wR12";
184   case dwarf_wR13:
185     return "wR13";
186   case dwarf_wR14:
187     return "wR14";
188   case dwarf_wR15:
189     return "wR15";
190
191   case dwarf_spsr:
192     return "spsr";
193   case dwarf_spsr_fiq:
194     return "spsr_fiq";
195   case dwarf_spsr_irq:
196     return "spsr_irq";
197   case dwarf_spsr_abt:
198     return "spsr_abt";
199   case dwarf_spsr_und:
200     return "spsr_und";
201   case dwarf_spsr_svc:
202     return "spsr_svc";
203
204   case dwarf_r8_usr:
205     return "r8_usr";
206   case dwarf_r9_usr:
207     return "r9_usr";
208   case dwarf_r10_usr:
209     return "r10_usr";
210   case dwarf_r11_usr:
211     return "r11_usr";
212   case dwarf_r12_usr:
213     return "r12_usr";
214   case dwarf_r13_usr:
215     return "r13_usr";
216   case dwarf_r14_usr:
217     return "r14_usr";
218   case dwarf_r8_fiq:
219     return "r8_fiq";
220   case dwarf_r9_fiq:
221     return "r9_fiq";
222   case dwarf_r10_fiq:
223     return "r10_fiq";
224   case dwarf_r11_fiq:
225     return "r11_fiq";
226   case dwarf_r12_fiq:
227     return "r12_fiq";
228   case dwarf_r13_fiq:
229     return "r13_fiq";
230   case dwarf_r14_fiq:
231     return "r14_fiq";
232   case dwarf_r13_irq:
233     return "r13_irq";
234   case dwarf_r14_irq:
235     return "r14_irq";
236   case dwarf_r13_abt:
237     return "r13_abt";
238   case dwarf_r14_abt:
239     return "r14_abt";
240   case dwarf_r13_und:
241     return "r13_und";
242   case dwarf_r14_und:
243     return "r14_und";
244   case dwarf_r13_svc:
245     return "r13_svc";
246   case dwarf_r14_svc:
247     return "r14_svc";
248
249   // Intel wireless MMX control register in co-processor 0 - 7
250   case dwarf_wC0:
251     return "wC0";
252   case dwarf_wC1:
253     return "wC1";
254   case dwarf_wC2:
255     return "wC2";
256   case dwarf_wC3:
257     return "wC3";
258   case dwarf_wC4:
259     return "wC4";
260   case dwarf_wC5:
261     return "wC5";
262   case dwarf_wC6:
263     return "wC6";
264   case dwarf_wC7:
265     return "wC7";
266
267   // VFP-v3/Neon
268   case dwarf_d0:
269     return "d0";
270   case dwarf_d1:
271     return "d1";
272   case dwarf_d2:
273     return "d2";
274   case dwarf_d3:
275     return "d3";
276   case dwarf_d4:
277     return "d4";
278   case dwarf_d5:
279     return "d5";
280   case dwarf_d6:
281     return "d6";
282   case dwarf_d7:
283     return "d7";
284   case dwarf_d8:
285     return "d8";
286   case dwarf_d9:
287     return "d9";
288   case dwarf_d10:
289     return "d10";
290   case dwarf_d11:
291     return "d11";
292   case dwarf_d12:
293     return "d12";
294   case dwarf_d13:
295     return "d13";
296   case dwarf_d14:
297     return "d14";
298   case dwarf_d15:
299     return "d15";
300   case dwarf_d16:
301     return "d16";
302   case dwarf_d17:
303     return "d17";
304   case dwarf_d18:
305     return "d18";
306   case dwarf_d19:
307     return "d19";
308   case dwarf_d20:
309     return "d20";
310   case dwarf_d21:
311     return "d21";
312   case dwarf_d22:
313     return "d22";
314   case dwarf_d23:
315     return "d23";
316   case dwarf_d24:
317     return "d24";
318   case dwarf_d25:
319     return "d25";
320   case dwarf_d26:
321     return "d26";
322   case dwarf_d27:
323     return "d27";
324   case dwarf_d28:
325     return "d28";
326   case dwarf_d29:
327     return "d29";
328   case dwarf_d30:
329     return "d30";
330   case dwarf_d31:
331     return "d31";
332
333   // NEON 128-bit vector registers (overlays the d registers)
334   case dwarf_q0:
335     return "q0";
336   case dwarf_q1:
337     return "q1";
338   case dwarf_q2:
339     return "q2";
340   case dwarf_q3:
341     return "q3";
342   case dwarf_q4:
343     return "q4";
344   case dwarf_q5:
345     return "q5";
346   case dwarf_q6:
347     return "q6";
348   case dwarf_q7:
349     return "q7";
350   case dwarf_q8:
351     return "q8";
352   case dwarf_q9:
353     return "q9";
354   case dwarf_q10:
355     return "q10";
356   case dwarf_q11:
357     return "q11";
358   case dwarf_q12:
359     return "q12";
360   case dwarf_q13:
361     return "q13";
362   case dwarf_q14:
363     return "q14";
364   case dwarf_q15:
365     return "q15";
366   }
367   return nullptr;
368 }
369
370 bool GetARMDWARFRegisterInfo(unsigned reg_num, RegisterInfo &reg_info) {
371   ::memset(&reg_info, 0, sizeof(RegisterInfo));
372   ::memset(reg_info.kinds, LLDB_INVALID_REGNUM, sizeof(reg_info.kinds));
373
374   if (reg_num >= dwarf_q0 && reg_num <= dwarf_q15) {
375     reg_info.byte_size = 16;
376     reg_info.format = eFormatVectorOfUInt8;
377     reg_info.encoding = eEncodingVector;
378   }
379
380   if (reg_num >= dwarf_d0 && reg_num <= dwarf_d31) {
381     reg_info.byte_size = 8;
382     reg_info.format = eFormatFloat;
383     reg_info.encoding = eEncodingIEEE754;
384   } else if (reg_num >= dwarf_s0 && reg_num <= dwarf_s31) {
385     reg_info.byte_size = 4;
386     reg_info.format = eFormatFloat;
387     reg_info.encoding = eEncodingIEEE754;
388   } else if (reg_num >= dwarf_f0 && reg_num <= dwarf_f7) {
389     reg_info.byte_size = 12;
390     reg_info.format = eFormatFloat;
391     reg_info.encoding = eEncodingIEEE754;
392   } else {
393     reg_info.byte_size = 4;
394     reg_info.format = eFormatHex;
395     reg_info.encoding = eEncodingUint;
396   }
397
398   reg_info.kinds[eRegisterKindDWARF] = reg_num;
399
400   switch (reg_num) {
401   case dwarf_r0:
402     reg_info.name = "r0";
403     break;
404   case dwarf_r1:
405     reg_info.name = "r1";
406     break;
407   case dwarf_r2:
408     reg_info.name = "r2";
409     break;
410   case dwarf_r3:
411     reg_info.name = "r3";
412     break;
413   case dwarf_r4:
414     reg_info.name = "r4";
415     break;
416   case dwarf_r5:
417     reg_info.name = "r5";
418     break;
419   case dwarf_r6:
420     reg_info.name = "r6";
421     break;
422   case dwarf_r7:
423     reg_info.name = "r7";
424     reg_info.kinds[eRegisterKindGeneric] = LLDB_REGNUM_GENERIC_FP;
425     break;
426   case dwarf_r8:
427     reg_info.name = "r8";
428     break;
429   case dwarf_r9:
430     reg_info.name = "r9";
431     break;
432   case dwarf_r10:
433     reg_info.name = "r10";
434     break;
435   case dwarf_r11:
436     reg_info.name = "r11";
437     break;
438   case dwarf_r12:
439     reg_info.name = "r12";
440     break;
441   case dwarf_sp:
442     reg_info.name = "sp";
443     reg_info.alt_name = "r13";
444     reg_info.kinds[eRegisterKindGeneric] = LLDB_REGNUM_GENERIC_SP;
445     break;
446   case dwarf_lr:
447     reg_info.name = "lr";
448     reg_info.alt_name = "r14";
449     reg_info.kinds[eRegisterKindGeneric] = LLDB_REGNUM_GENERIC_RA;
450     break;
451   case dwarf_pc:
452     reg_info.name = "pc";
453     reg_info.alt_name = "r15";
454     reg_info.kinds[eRegisterKindGeneric] = LLDB_REGNUM_GENERIC_PC;
455     break;
456   case dwarf_cpsr:
457     reg_info.name = "cpsr";
458     reg_info.kinds[eRegisterKindGeneric] = LLDB_REGNUM_GENERIC_FLAGS;
459     break;
460
461   case dwarf_s0:
462     reg_info.name = "s0";
463     break;
464   case dwarf_s1:
465     reg_info.name = "s1";
466     break;
467   case dwarf_s2:
468     reg_info.name = "s2";
469     break;
470   case dwarf_s3:
471     reg_info.name = "s3";
472     break;
473   case dwarf_s4:
474     reg_info.name = "s4";
475     break;
476   case dwarf_s5:
477     reg_info.name = "s5";
478     break;
479   case dwarf_s6:
480     reg_info.name = "s6";
481     break;
482   case dwarf_s7:
483     reg_info.name = "s7";
484     break;
485   case dwarf_s8:
486     reg_info.name = "s8";
487     break;
488   case dwarf_s9:
489     reg_info.name = "s9";
490     break;
491   case dwarf_s10:
492     reg_info.name = "s10";
493     break;
494   case dwarf_s11:
495     reg_info.name = "s11";
496     break;
497   case dwarf_s12:
498     reg_info.name = "s12";
499     break;
500   case dwarf_s13:
501     reg_info.name = "s13";
502     break;
503   case dwarf_s14:
504     reg_info.name = "s14";
505     break;
506   case dwarf_s15:
507     reg_info.name = "s15";
508     break;
509   case dwarf_s16:
510     reg_info.name = "s16";
511     break;
512   case dwarf_s17:
513     reg_info.name = "s17";
514     break;
515   case dwarf_s18:
516     reg_info.name = "s18";
517     break;
518   case dwarf_s19:
519     reg_info.name = "s19";
520     break;
521   case dwarf_s20:
522     reg_info.name = "s20";
523     break;
524   case dwarf_s21:
525     reg_info.name = "s21";
526     break;
527   case dwarf_s22:
528     reg_info.name = "s22";
529     break;
530   case dwarf_s23:
531     reg_info.name = "s23";
532     break;
533   case dwarf_s24:
534     reg_info.name = "s24";
535     break;
536   case dwarf_s25:
537     reg_info.name = "s25";
538     break;
539   case dwarf_s26:
540     reg_info.name = "s26";
541     break;
542   case dwarf_s27:
543     reg_info.name = "s27";
544     break;
545   case dwarf_s28:
546     reg_info.name = "s28";
547     break;
548   case dwarf_s29:
549     reg_info.name = "s29";
550     break;
551   case dwarf_s30:
552     reg_info.name = "s30";
553     break;
554   case dwarf_s31:
555     reg_info.name = "s31";
556     break;
557
558   // FPA Registers 0-7
559   case dwarf_f0:
560     reg_info.name = "f0";
561     break;
562   case dwarf_f1:
563     reg_info.name = "f1";
564     break;
565   case dwarf_f2:
566     reg_info.name = "f2";
567     break;
568   case dwarf_f3:
569     reg_info.name = "f3";
570     break;
571   case dwarf_f4:
572     reg_info.name = "f4";
573     break;
574   case dwarf_f5:
575     reg_info.name = "f5";
576     break;
577   case dwarf_f6:
578     reg_info.name = "f6";
579     break;
580   case dwarf_f7:
581     reg_info.name = "f7";
582     break;
583
584   // Intel wireless MMX general purpose registers 0 - 7
585   // XScale accumulator register 0 - 7 (they do overlap with wCGR0 - wCGR7)
586   case dwarf_wCGR0:
587     reg_info.name = "wCGR0/ACC0";
588     break;
589   case dwarf_wCGR1:
590     reg_info.name = "wCGR1/ACC1";
591     break;
592   case dwarf_wCGR2:
593     reg_info.name = "wCGR2/ACC2";
594     break;
595   case dwarf_wCGR3:
596     reg_info.name = "wCGR3/ACC3";
597     break;
598   case dwarf_wCGR4:
599     reg_info.name = "wCGR4/ACC4";
600     break;
601   case dwarf_wCGR5:
602     reg_info.name = "wCGR5/ACC5";
603     break;
604   case dwarf_wCGR6:
605     reg_info.name = "wCGR6/ACC6";
606     break;
607   case dwarf_wCGR7:
608     reg_info.name = "wCGR7/ACC7";
609     break;
610
611   // Intel wireless MMX data registers 0 - 15
612   case dwarf_wR0:
613     reg_info.name = "wR0";
614     break;
615   case dwarf_wR1:
616     reg_info.name = "wR1";
617     break;
618   case dwarf_wR2:
619     reg_info.name = "wR2";
620     break;
621   case dwarf_wR3:
622     reg_info.name = "wR3";
623     break;
624   case dwarf_wR4:
625     reg_info.name = "wR4";
626     break;
627   case dwarf_wR5:
628     reg_info.name = "wR5";
629     break;
630   case dwarf_wR6:
631     reg_info.name = "wR6";
632     break;
633   case dwarf_wR7:
634     reg_info.name = "wR7";
635     break;
636   case dwarf_wR8:
637     reg_info.name = "wR8";
638     break;
639   case dwarf_wR9:
640     reg_info.name = "wR9";
641     break;
642   case dwarf_wR10:
643     reg_info.name = "wR10";
644     break;
645   case dwarf_wR11:
646     reg_info.name = "wR11";
647     break;
648   case dwarf_wR12:
649     reg_info.name = "wR12";
650     break;
651   case dwarf_wR13:
652     reg_info.name = "wR13";
653     break;
654   case dwarf_wR14:
655     reg_info.name = "wR14";
656     break;
657   case dwarf_wR15:
658     reg_info.name = "wR15";
659     break;
660
661   case dwarf_spsr:
662     reg_info.name = "spsr";
663     break;
664   case dwarf_spsr_fiq:
665     reg_info.name = "spsr_fiq";
666     break;
667   case dwarf_spsr_irq:
668     reg_info.name = "spsr_irq";
669     break;
670   case dwarf_spsr_abt:
671     reg_info.name = "spsr_abt";
672     break;
673   case dwarf_spsr_und:
674     reg_info.name = "spsr_und";
675     break;
676   case dwarf_spsr_svc:
677     reg_info.name = "spsr_svc";
678     break;
679
680   case dwarf_r8_usr:
681     reg_info.name = "r8_usr";
682     break;
683   case dwarf_r9_usr:
684     reg_info.name = "r9_usr";
685     break;
686   case dwarf_r10_usr:
687     reg_info.name = "r10_usr";
688     break;
689   case dwarf_r11_usr:
690     reg_info.name = "r11_usr";
691     break;
692   case dwarf_r12_usr:
693     reg_info.name = "r12_usr";
694     break;
695   case dwarf_r13_usr:
696     reg_info.name = "r13_usr";
697     break;
698   case dwarf_r14_usr:
699     reg_info.name = "r14_usr";
700     break;
701   case dwarf_r8_fiq:
702     reg_info.name = "r8_fiq";
703     break;
704   case dwarf_r9_fiq:
705     reg_info.name = "r9_fiq";
706     break;
707   case dwarf_r10_fiq:
708     reg_info.name = "r10_fiq";
709     break;
710   case dwarf_r11_fiq:
711     reg_info.name = "r11_fiq";
712     break;
713   case dwarf_r12_fiq:
714     reg_info.name = "r12_fiq";
715     break;
716   case dwarf_r13_fiq:
717     reg_info.name = "r13_fiq";
718     break;
719   case dwarf_r14_fiq:
720     reg_info.name = "r14_fiq";
721     break;
722   case dwarf_r13_irq:
723     reg_info.name = "r13_irq";
724     break;
725   case dwarf_r14_irq:
726     reg_info.name = "r14_irq";
727     break;
728   case dwarf_r13_abt:
729     reg_info.name = "r13_abt";
730     break;
731   case dwarf_r14_abt:
732     reg_info.name = "r14_abt";
733     break;
734   case dwarf_r13_und:
735     reg_info.name = "r13_und";
736     break;
737   case dwarf_r14_und:
738     reg_info.name = "r14_und";
739     break;
740   case dwarf_r13_svc:
741     reg_info.name = "r13_svc";
742     break;
743   case dwarf_r14_svc:
744     reg_info.name = "r14_svc";
745     break;
746
747   // Intel wireless MMX control register in co-processor 0 - 7
748   case dwarf_wC0:
749     reg_info.name = "wC0";
750     break;
751   case dwarf_wC1:
752     reg_info.name = "wC1";
753     break;
754   case dwarf_wC2:
755     reg_info.name = "wC2";
756     break;
757   case dwarf_wC3:
758     reg_info.name = "wC3";
759     break;
760   case dwarf_wC4:
761     reg_info.name = "wC4";
762     break;
763   case dwarf_wC5:
764     reg_info.name = "wC5";
765     break;
766   case dwarf_wC6:
767     reg_info.name = "wC6";
768     break;
769   case dwarf_wC7:
770     reg_info.name = "wC7";
771     break;
772
773   // VFP-v3/Neon
774   case dwarf_d0:
775     reg_info.name = "d0";
776     break;
777   case dwarf_d1:
778     reg_info.name = "d1";
779     break;
780   case dwarf_d2:
781     reg_info.name = "d2";
782     break;
783   case dwarf_d3:
784     reg_info.name = "d3";
785     break;
786   case dwarf_d4:
787     reg_info.name = "d4";
788     break;
789   case dwarf_d5:
790     reg_info.name = "d5";
791     break;
792   case dwarf_d6:
793     reg_info.name = "d6";
794     break;
795   case dwarf_d7:
796     reg_info.name = "d7";
797     break;
798   case dwarf_d8:
799     reg_info.name = "d8";
800     break;
801   case dwarf_d9:
802     reg_info.name = "d9";
803     break;
804   case dwarf_d10:
805     reg_info.name = "d10";
806     break;
807   case dwarf_d11:
808     reg_info.name = "d11";
809     break;
810   case dwarf_d12:
811     reg_info.name = "d12";
812     break;
813   case dwarf_d13:
814     reg_info.name = "d13";
815     break;
816   case dwarf_d14:
817     reg_info.name = "d14";
818     break;
819   case dwarf_d15:
820     reg_info.name = "d15";
821     break;
822   case dwarf_d16:
823     reg_info.name = "d16";
824     break;
825   case dwarf_d17:
826     reg_info.name = "d17";
827     break;
828   case dwarf_d18:
829     reg_info.name = "d18";
830     break;
831   case dwarf_d19:
832     reg_info.name = "d19";
833     break;
834   case dwarf_d20:
835     reg_info.name = "d20";
836     break;
837   case dwarf_d21:
838     reg_info.name = "d21";
839     break;
840   case dwarf_d22:
841     reg_info.name = "d22";
842     break;
843   case dwarf_d23:
844     reg_info.name = "d23";
845     break;
846   case dwarf_d24:
847     reg_info.name = "d24";
848     break;
849   case dwarf_d25:
850     reg_info.name = "d25";
851     break;
852   case dwarf_d26:
853     reg_info.name = "d26";
854     break;
855   case dwarf_d27:
856     reg_info.name = "d27";
857     break;
858   case dwarf_d28:
859     reg_info.name = "d28";
860     break;
861   case dwarf_d29:
862     reg_info.name = "d29";
863     break;
864   case dwarf_d30:
865     reg_info.name = "d30";
866     break;
867   case dwarf_d31:
868     reg_info.name = "d31";
869     break;
870
871   // NEON 128-bit vector registers (overlays the d registers)
872   case dwarf_q0:
873     reg_info.name = "q0";
874     break;
875   case dwarf_q1:
876     reg_info.name = "q1";
877     break;
878   case dwarf_q2:
879     reg_info.name = "q2";
880     break;
881   case dwarf_q3:
882     reg_info.name = "q3";
883     break;
884   case dwarf_q4:
885     reg_info.name = "q4";
886     break;
887   case dwarf_q5:
888     reg_info.name = "q5";
889     break;
890   case dwarf_q6:
891     reg_info.name = "q6";
892     break;
893   case dwarf_q7:
894     reg_info.name = "q7";
895     break;
896   case dwarf_q8:
897     reg_info.name = "q8";
898     break;
899   case dwarf_q9:
900     reg_info.name = "q9";
901     break;
902   case dwarf_q10:
903     reg_info.name = "q10";
904     break;
905   case dwarf_q11:
906     reg_info.name = "q11";
907     break;
908   case dwarf_q12:
909     reg_info.name = "q12";
910     break;
911   case dwarf_q13:
912     reg_info.name = "q13";
913     break;
914   case dwarf_q14:
915     reg_info.name = "q14";
916     break;
917   case dwarf_q15:
918     reg_info.name = "q15";
919     break;
920
921   default:
922     return false;
923   }
924   return true;
925 }