aboutsummaryrefslogtreecommitdiff
path: root/sim/ppc/gdb-sim.c
blob: 5806663fb04940ffef4056afdc20d125d99e7742 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
733
734
735
736
737
738
739
740
741
742
743
744
745
746
747
748
749
750
751
752
753
754
755
756
757
758
759
760
761
762
763
764
765
766
767
768
769
770
771
772
773
774
775
776
777
778
779
780
781
782
783
784
785
786
787
788
789
790
791
792
793
794
795
796
797
798
799
800
801
802
803
804
805
806
807
808
809
810
811
812
813
814
815
816
817
818
819
820
821
822
823
824
825
826
827
828
829
830
831
832
833
834
835
836
837
838
839
840
841
842
843
844
845
846
847
848
849
850
851
852
853
854
855
856
857
858
859
860
861
862
863
864
865
866
867
868
869
870
871
872
873
874
875
876
877
878
879
880
881
882
883
884
885
886
887
888
889
890
891
892
893
894
895
896
897
898
899
900
901
902
903
904
905
906
907
908
909
910
911
912
913
914
915
916
917
918
919
920
921
922
923
924
925
926
927
928
929
930
931
932
933
934
935
936
937
938
939
940
941
942
943
944
945
946
947
948
949
950
951
952
953
954
955
956
957
958
959
960
961
962
963
964
965
966
967
968
969
970
971
972
973
974
975
976
977
978
979
980
981
982
983
984
985
986
987
988
989
990
991
992
993
994
995
996
997
998
999
1000
1001
1002
1003
1004
1005
1006
1007
1008
1009
1010
1011
1012
1013
1014
1015
1016
1017
1018
1019
1020
1021
1022
1023
1024
1025
1026
1027
1028
1029
1030
1031
1032
1033
1034
1035
1036
1037
1038
1039
1040
1041
1042
1043
1044
1045
1046
1047
1048
1049
1050
1051
1052
1053
1054
1055
1056
1057
1058
1059
1060
1061
1062
1063
1064
1065
1066
1067
1068
1069
1070
1071
1072
1073
1074
1075
1076
1077
1078
1079
1080
1081
1082
1083
1084
1085
1086
1087
1088
1089
1090
1091
1092
1093
1094
1095
1096
1097
1098
1099
1100
1101
1102
1103
1104
1105
1106
1107
1108
1109
1110
1111
1112
1113
1114
1115
1116
1117
1118
1119
1120
1121
1122
1123
1124
1125
1126
1127
1128
1129
1130
1131
1132
1133
1134
1135
1136
1137
1138
1139
1140
1141
1142
1143
1144
1145
1146
1147
1148
1149
1150
1151
1152
1153
1154
1155
1156
1157
1158
1159
1160
1161
1162
1163
1164
1165
1166
1167
1168
1169
1170
1171
1172
1173
1174
1175
1176
1177
1178
1179
1180
1181
1182
1183
1184
1185
1186
1187
1188
1189
1190
1191
1192
1193
1194
1195
1196
1197
1198
1199
1200
1201
1202
1203
1204
1205
1206
1207
1208
1209
1210
1211
1212
1213
1214
1215
1216
1217
1218
1219
1220
1221
1222
1223
1224
1225
1226
1227
1228
1229
1230
1231
1232
1233
1234
1235
1236
1237
1238
1239
1240
1241
1242
1243
1244
1245
1246
1247
1248
1249
1250
1251
1252
1253
1254
1255
1256
1257
1258
1259
1260
1261
1262
1263
1264
1265
1266
1267
1268
1269
1270
1271
1272
1273
1274
1275
1276
1277
1278
1279
1280
1281
1282
1283
1284
1285
1286
1287
1288
1289
1290
1291
1292
1293
1294
1295
1296
1297
1298
/*  This file is part of GDB.

    Copyright 2004-2023 Free Software Foundation, Inc.

    This program is free software; you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
    the Free Software Foundation; either version 3 of the License, or
    (at your option) any later version.

    This program is distributed in the hope that it will be useful,
    but WITHOUT ANY WARRANTY; without even the implied warranty of
    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
    GNU General Public License for more details.

    You should have received a copy of the GNU General Public License
    along with this program.  If not, see <http://www.gnu.org/licenses/>.
 
    */


#include "psim.h"
#include "options.h"
#include "registers.h"

#include "ansidecl.h"
#include "sim_callbacks.h"
#include "sim/callback.h"
#include "sim/sim.h"
#include "sim/sim-ppc.h"

/* Return the register name for the supplied SPR if any, or NULL if
   none.  */
const char *
sim_spr_register_name (int spr)
{
  if (spr_is_valid (spr))
    return spr_name (spr);
  else
    return NULL;
}

#define regnum2spr(SPR) sim_spr_register_name (SPR)

/* Return the name of the register whose number is REGNUM, or zero if
   REGNUM is an invalid register number.  */

static const char *
regnum2name (int regnum)
{
  switch (regnum)
    {
    case sim_ppc_r0_regnum: return "r0";
    case sim_ppc_r1_regnum: return "r1";
    case sim_ppc_r2_regnum: return "r2";
    case sim_ppc_r3_regnum: return "r3";
    case sim_ppc_r4_regnum: return "r4";
    case sim_ppc_r5_regnum: return "r5";
    case sim_ppc_r6_regnum: return "r6";
    case sim_ppc_r7_regnum: return "r7";
    case sim_ppc_r8_regnum: return "r8";
    case sim_ppc_r9_regnum: return "r9";
    case sim_ppc_r10_regnum: return "r10";
    case sim_ppc_r11_regnum: return "r11";
    case sim_ppc_r12_regnum: return "r12";
    case sim_ppc_r13_regnum: return "r13";
    case sim_ppc_r14_regnum: return "r14";
    case sim_ppc_r15_regnum: return "r15";
    case sim_ppc_r16_regnum: return "r16";
    case sim_ppc_r17_regnum: return "r17";
    case sim_ppc_r18_regnum: return "r18";
    case sim_ppc_r19_regnum: return "r19";
    case sim_ppc_r20_regnum: return "r20";
    case sim_ppc_r21_regnum: return "r21";
    case sim_ppc_r22_regnum: return "r22";
    case sim_ppc_r23_regnum: return "r23";
    case sim_ppc_r24_regnum: return "r24";
    case sim_ppc_r25_regnum: return "r25";
    case sim_ppc_r26_regnum: return "r26";
    case sim_ppc_r27_regnum: return "r27";
    case sim_ppc_r28_regnum: return "r28";
    case sim_ppc_r29_regnum: return "r29";
    case sim_ppc_r30_regnum: return "r30";
    case sim_ppc_r31_regnum: return "r31";

    case sim_ppc_f0_regnum: return "f0";
    case sim_ppc_f1_regnum: return "f1";
    case sim_ppc_f2_regnum: return "f2";
    case sim_ppc_f3_regnum: return "f3";
    case sim_ppc_f4_regnum: return "f4";
    case sim_ppc_f5_regnum: return "f5";
    case sim_ppc_f6_regnum: return "f6";
    case sim_ppc_f7_regnum: return "f7";
    case sim_ppc_f8_regnum: return "f8";
    case sim_ppc_f9_regnum: return "f9";
    case sim_ppc_f10_regnum: return "f10";
    case sim_ppc_f11_regnum: return "f11";
    case sim_ppc_f12_regnum: return "f12";
    case sim_ppc_f13_regnum: return "f13";
    case sim_ppc_f14_regnum: return "f14";
    case sim_ppc_f15_regnum: return "f15";
    case sim_ppc_f16_regnum: return "f16";
    case sim_ppc_f17_regnum: return "f17";
    case sim_ppc_f18_regnum: return "f18";
    case sim_ppc_f19_regnum: return "f19";
    case sim_ppc_f20_regnum: return "f20";
    case sim_ppc_f21_regnum: return "f21";
    case sim_ppc_f22_regnum: return "f22";
    case sim_ppc_f23_regnum: return "f23";
    case sim_ppc_f24_regnum: return "f24";
    case sim_ppc_f25_regnum: return "f25";
    case sim_ppc_f26_regnum: return "f26";
    case sim_ppc_f27_regnum: return "f27";
    case sim_ppc_f28_regnum: return "f28";
    case sim_ppc_f29_regnum: return "f29";
    case sim_ppc_f30_regnum: return "f30";
    case sim_ppc_f31_regnum: return "f31";

    case sim_ppc_vr0_regnum: return "vr0";
    case sim_ppc_vr1_regnum: return "vr1";
    case sim_ppc_vr2_regnum: return "vr2";
    case sim_ppc_vr3_regnum: return "vr3";
    case sim_ppc_vr4_regnum: return "vr4";
    case sim_ppc_vr5_regnum: return "vr5";
    case sim_ppc_vr6_regnum: return "vr6";
    case sim_ppc_vr7_regnum: return "vr7";
    case sim_ppc_vr8_regnum: return "vr8";
    case sim_ppc_vr9_regnum: return "vr9";
    case sim_ppc_vr10_regnum: return "vr10";
    case sim_ppc_vr11_regnum: return "vr11";
    case sim_ppc_vr12_regnum: return "vr12";
    case sim_ppc_vr13_regnum: return "vr13";
    case sim_ppc_vr14_regnum: return "vr14";
    case sim_ppc_vr15_regnum: return "vr15";
    case sim_ppc_vr16_regnum: return "vr16";
    case sim_ppc_vr17_regnum: return "vr17";
    case sim_ppc_vr18_regnum: return "vr18";
    case sim_ppc_vr19_regnum: return "vr19";
    case sim_ppc_vr20_regnum: return "vr20";
    case sim_ppc_vr21_regnum: return "vr21";
    case sim_ppc_vr22_regnum: return "vr22";
    case sim_ppc_vr23_regnum: return "vr23";
    case sim_ppc_vr24_regnum: return "vr24";
    case sim_ppc_vr25_regnum: return "vr25";
    case sim_ppc_vr26_regnum: return "vr26";
    case sim_ppc_vr27_regnum: return "vr27";
    case sim_ppc_vr28_regnum: return "vr28";
    case sim_ppc_vr29_regnum: return "vr29";
    case sim_ppc_vr30_regnum: return "vr30";
    case sim_ppc_vr31_regnum: return "vr31";
    case sim_ppc_rh0_regnum: return "rh0";
    case sim_ppc_rh1_regnum: return "rh1";
    case sim_ppc_rh2_regnum: return "rh2";
    case sim_ppc_rh3_regnum: return "rh3";
    case sim_ppc_rh4_regnum: return "rh4";
    case sim_ppc_rh5_regnum: return "rh5";
    case sim_ppc_rh6_regnum: return "rh6";
    case sim_ppc_rh7_regnum: return "rh7";
    case sim_ppc_rh8_regnum: return "rh8";
    case sim_ppc_rh9_regnum: return "rh9";
    case sim_ppc_rh10_regnum: return "rh10";
    case sim_ppc_rh11_regnum: return "rh11";
    case sim_ppc_rh12_regnum: return "rh12";
    case sim_ppc_rh13_regnum: return "rh13";
    case sim_ppc_rh14_regnum: return "rh14";
    case sim_ppc_rh15_regnum: return "rh15";
    case sim_ppc_rh16_regnum: return "rh16";
    case sim_ppc_rh17_regnum: return "rh17";
    case sim_ppc_rh18_regnum: return "rh18";
    case sim_ppc_rh19_regnum: return "rh19";
    case sim_ppc_rh20_regnum: return "rh20";
    case sim_ppc_rh21_regnum: return "rh21";
    case sim_ppc_rh22_regnum: return "rh22";
    case sim_ppc_rh23_regnum: return "rh23";
    case sim_ppc_rh24_regnum: return "rh24";
    case sim_ppc_rh25_regnum: return "rh25";
    case sim_ppc_rh26_regnum: return "rh26";
    case sim_ppc_rh27_regnum: return "rh27";
    case sim_ppc_rh28_regnum: return "rh28";
    case sim_ppc_rh29_regnum: return "rh29";
    case sim_ppc_rh30_regnum: return "rh30";
    case sim_ppc_rh31_regnum: return "rh31";

    case sim_ppc_ev0_regnum: return "ev0";
    case sim_ppc_ev1_regnum: return "ev1";
    case sim_ppc_ev2_regnum: return "ev2";
    case sim_ppc_ev3_regnum: return "ev3";
    case sim_ppc_ev4_regnum: return "ev4";
    case sim_ppc_ev5_regnum: return "ev5";
    case sim_ppc_ev6_regnum: return "ev6";
    case sim_ppc_ev7_regnum: return "ev7";
    case sim_ppc_ev8_regnum: return "ev8";
    case sim_ppc_ev9_regnum: return "ev9";
    case sim_ppc_ev10_regnum: return "ev10";
    case sim_ppc_ev11_regnum: return "ev11";
    case sim_ppc_ev12_regnum: return "ev12";
    case sim_ppc_ev13_regnum: return "ev13";
    case sim_ppc_ev14_regnum: return "ev14";
    case sim_ppc_ev15_regnum: return "ev15";
    case sim_ppc_ev16_regnum: return "ev16";
    case sim_ppc_ev17_regnum: return "ev17";
    case sim_ppc_ev18_regnum: return "ev18";
    case sim_ppc_ev19_regnum: return "ev19";
    case sim_ppc_ev20_regnum: return "ev20";
    case sim_ppc_ev21_regnum: return "ev21";
    case sim_ppc_ev22_regnum: return "ev22";
    case sim_ppc_ev23_regnum: return "ev23";
    case sim_ppc_ev24_regnum: return "ev24";
    case sim_ppc_ev25_regnum: return "ev25";
    case sim_ppc_ev26_regnum: return "ev26";
    case sim_ppc_ev27_regnum: return "ev27";
    case sim_ppc_ev28_regnum: return "ev28";
    case sim_ppc_ev29_regnum: return "ev29";
    case sim_ppc_ev30_regnum: return "ev30";
    case sim_ppc_ev31_regnum: return "ev31";

    case sim_ppc_sr0_regnum: return "sr0";
    case sim_ppc_sr1_regnum: return "sr1";
    case sim_ppc_sr2_regnum: return "sr2";
    case sim_ppc_sr3_regnum: return "sr3";
    case sim_ppc_sr4_regnum: return "sr4";
    case sim_ppc_sr5_regnum: return "sr5";
    case sim_ppc_sr6_regnum: return "sr6";
    case sim_ppc_sr7_regnum: return "sr7";
    case sim_ppc_sr8_regnum: return "sr8";
    case sim_ppc_sr9_regnum: return "sr9";
    case sim_ppc_sr10_regnum: return "sr10";
    case sim_ppc_sr11_regnum: return "sr11";
    case sim_ppc_sr12_regnum: return "sr12";
    case sim_ppc_sr13_regnum: return "sr13";
    case sim_ppc_sr14_regnum: return "sr14";
    case sim_ppc_sr15_regnum: return "sr15";

    case sim_ppc_pc_regnum: return "pc";
    case sim_ppc_ps_regnum: return "ps";
    case sim_ppc_cr_regnum: return "cr";
    case sim_ppc_fpscr_regnum: return "fpscr";
    case sim_ppc_acc_regnum: return "acc";
    case sim_ppc_vscr_regnum: return "vscr";

    case sim_ppc_spr0_regnum: return regnum2spr (0);
    case sim_ppc_spr1_regnum: return regnum2spr (1);
    case sim_ppc_spr2_regnum: return regnum2spr (2);
    case sim_ppc_spr3_regnum: return regnum2spr (3);
    case sim_ppc_spr4_regnum: return regnum2spr (4);
    case sim_ppc_spr5_regnum: return regnum2spr (5);
    case sim_ppc_spr6_regnum: return regnum2spr (6);
    case sim_ppc_spr7_regnum: return regnum2spr (7);
    case sim_ppc_spr8_regnum: return regnum2spr (8);
    case sim_ppc_spr9_regnum: return regnum2spr (9);
    case sim_ppc_spr10_regnum: return regnum2spr (10);
    case sim_ppc_spr11_regnum: return regnum2spr (11);
    case sim_ppc_spr12_regnum: return regnum2spr (12);
    case sim_ppc_spr13_regnum: return regnum2spr (13);
    case sim_ppc_spr14_regnum: return regnum2spr (14);
    case sim_ppc_spr15_regnum: return regnum2spr (15);
    case sim_ppc_spr16_regnum: return regnum2spr (16);
    case sim_ppc_spr17_regnum: return regnum2spr (17);
    case sim_ppc_spr18_regnum: return regnum2spr (18);
    case sim_ppc_spr19_regnum: return regnum2spr (19);
    case sim_ppc_spr20_regnum: return regnum2spr (20);
    case sim_ppc_spr21_regnum: return regnum2spr (21);
    case sim_ppc_spr22_regnum: return regnum2spr (22);
    case sim_ppc_spr23_regnum: return regnum2spr (23);
    case sim_ppc_spr24_regnum: return regnum2spr (24);
    case sim_ppc_spr25_regnum: return regnum2spr (25);
    case sim_ppc_spr26_regnum: return regnum2spr (26);
    case sim_ppc_spr27_regnum: return regnum2spr (27);
    case sim_ppc_spr28_regnum: return regnum2spr (28);
    case sim_ppc_spr29_regnum: return regnum2spr (29);
    case sim_ppc_spr30_regnum: return regnum2spr (30);
    case sim_ppc_spr31_regnum: return regnum2spr (31);
    case sim_ppc_spr32_regnum: return regnum2spr (32);
    case sim_ppc_spr33_regnum: return regnum2spr (33);
    case sim_ppc_spr34_regnum: return regnum2spr (34);
    case sim_ppc_spr35_regnum: return regnum2spr (35);
    case sim_ppc_spr36_regnum: return regnum2spr (36);
    case sim_ppc_spr37_regnum: return regnum2spr (37);
    case sim_ppc_spr38_regnum: return regnum2spr (38);
    case sim_ppc_spr39_regnum: return regnum2spr (39);
    case sim_ppc_spr40_regnum: return regnum2spr (40);
    case sim_ppc_spr41_regnum: return regnum2spr (41);
    case sim_ppc_spr42_regnum: return regnum2spr (42);
    case sim_ppc_spr43_regnum: return regnum2spr (43);
    case sim_ppc_spr44_regnum: return regnum2spr (44);
    case sim_ppc_spr45_regnum: return regnum2spr (45);
    case sim_ppc_spr46_regnum: return regnum2spr (46);
    case sim_ppc_spr47_regnum: return regnum2spr (47);
    case sim_ppc_spr48_regnum: return regnum2spr (48);
    case sim_ppc_spr49_regnum: return regnum2spr (49);
    case sim_ppc_spr50_regnum: return regnum2spr (50);
    case sim_ppc_spr51_regnum: return regnum2spr (51);
    case sim_ppc_spr52_regnum: return regnum2spr (52);
    case sim_ppc_spr53_regnum: return regnum2spr (53);
    case sim_ppc_spr54_regnum: return regnum2spr (54);
    case sim_ppc_spr55_regnum: return regnum2spr (55);
    case sim_ppc_spr56_regnum: return regnum2spr (56);
    case sim_ppc_spr57_regnum: return regnum2spr (57);
    case sim_ppc_spr58_regnum: return regnum2spr (58);
    case sim_ppc_spr59_regnum: return regnum2spr (59);
    case sim_ppc_spr60_regnum: return regnum2spr (60);
    case sim_ppc_spr61_regnum: return regnum2spr (61);
    case sim_ppc_spr62_regnum: return regnum2spr (62);
    case sim_ppc_spr63_regnum: return regnum2spr (63);
    case sim_ppc_spr64_regnum: return regnum2spr (64);
    case sim_ppc_spr65_regnum: return regnum2spr (65);
    case sim_ppc_spr66_regnum: return regnum2spr (66);
    case sim_ppc_spr67_regnum: return regnum2spr (67);
    case sim_ppc_spr68_regnum: return regnum2spr (68);
    case sim_ppc_spr69_regnum: return regnum2spr (69);
    case sim_ppc_spr70_regnum: return regnum2spr (70);
    case sim_ppc_spr71_regnum: return regnum2spr (71);
    case sim_ppc_spr72_regnum: return regnum2spr (72);
    case sim_ppc_spr73_regnum: return regnum2spr (73);
    case sim_ppc_spr74_regnum: return regnum2spr (74);
    case sim_ppc_spr75_regnum: return regnum2spr (75);
    case sim_ppc_spr76_regnum: return regnum2spr (76);
    case sim_ppc_spr77_regnum: return regnum2spr (77);
    case sim_ppc_spr78_regnum: return regnum2spr (78);
    case sim_ppc_spr79_regnum: return regnum2spr (79);
    case sim_ppc_spr80_regnum: return regnum2spr (80);
    case sim_ppc_spr81_regnum: return regnum2spr (81);
    case sim_ppc_spr82_regnum: return regnum2spr (82);
    case sim_ppc_spr83_regnum: return regnum2spr (83);
    case sim_ppc_spr84_regnum: return regnum2spr (84);
    case sim_ppc_spr85_regnum: return regnum2spr (85);
    case sim_ppc_spr86_regnum: return regnum2spr (86);
    case sim_ppc_spr87_regnum: return regnum2spr (87);
    case sim_ppc_spr88_regnum: return regnum2spr (88);
    case sim_ppc_spr89_regnum: return regnum2spr (89);
    case sim_ppc_spr90_regnum: return regnum2spr (90);
    case sim_ppc_spr91_regnum: return regnum2spr (91);
    case sim_ppc_spr92_regnum: return regnum2spr (92);
    case sim_ppc_spr93_regnum: return regnum2spr (93);
    case sim_ppc_spr94_regnum: return regnum2spr (94);
    case sim_ppc_spr95_regnum: return regnum2spr (95);
    case sim_ppc_spr96_regnum: return regnum2spr (96);
    case sim_ppc_spr97_regnum: return regnum2spr (97);
    case sim_ppc_spr98_regnum: return regnum2spr (98);
    case sim_ppc_spr99_regnum: return regnum2spr (99);
    case sim_ppc_spr100_regnum: return regnum2spr (100);
    case sim_ppc_spr101_regnum: return regnum2spr (101);
    case sim_ppc_spr102_regnum: return regnum2spr (102);
    case sim_ppc_spr103_regnum: return regnum2spr (103);
    case sim_ppc_spr104_regnum: return regnum2spr (104);
    case sim_ppc_spr105_regnum: return regnum2spr (105);
    case sim_ppc_spr106_regnum: return regnum2spr (106);
    case sim_ppc_spr107_regnum: return regnum2spr (107);
    case sim_ppc_spr108_regnum: return regnum2spr (108);
    case sim_ppc_spr109_regnum: return regnum2spr (109);
    case sim_ppc_spr110_regnum: return regnum2spr (110);
    case sim_ppc_spr111_regnum: return regnum2spr (111);
    case sim_ppc_spr112_regnum: return regnum2spr (112);
    case sim_ppc_spr113_regnum: return regnum2spr (113);
    case sim_ppc_spr114_regnum: return regnum2spr (114);
    case sim_ppc_spr115_regnum: return regnum2spr (115);
    case sim_ppc_spr116_regnum: return regnum2spr (116);
    case sim_ppc_spr117_regnum: return regnum2spr (117);
    case sim_ppc_spr118_regnum: return regnum2spr (118);
    case sim_ppc_spr119_regnum: return regnum2spr (119);
    case sim_ppc_spr120_regnum: return regnum2spr (120);
    case sim_ppc_spr121_regnum: return regnum2spr (121);
    case sim_ppc_spr122_regnum: return regnum2spr (122);
    case sim_ppc_spr123_regnum: return regnum2spr (123);
    case sim_ppc_spr124_regnum: return regnum2spr (124);
    case sim_ppc_spr125_regnum: return regnum2spr (125);
    case sim_ppc_spr126_regnum: return regnum2spr (126);
    case sim_ppc_spr127_regnum: return regnum2spr (127);
    case sim_ppc_spr128_regnum: return regnum2spr (128);
    case sim_ppc_spr129_regnum: return regnum2spr (129);
    case sim_ppc_spr130_regnum: return regnum2spr (130);
    case sim_ppc_spr131_regnum: return regnum2spr (131);
    case sim_ppc_spr132_regnum: return regnum2spr (132);
    case sim_ppc_spr133_regnum: return regnum2spr (133);
    case sim_ppc_spr134_regnum: return regnum2spr (134);
    case sim_ppc_spr135_regnum: return regnum2spr (135);
    case sim_ppc_spr136_regnum: return regnum2spr (136);
    case sim_ppc_spr137_regnum: return regnum2spr (137);
    case sim_ppc_spr138_regnum: return regnum2spr (138);
    case sim_ppc_spr139_regnum: return regnum2spr (139);
    case sim_ppc_spr140_regnum: return regnum2spr (140);
    case sim_ppc_spr141_regnum: return regnum2spr (141);
    case sim_ppc_spr142_regnum: return regnum2spr (142);
    case sim_ppc_spr143_regnum: return regnum2spr (143);
    case sim_ppc_spr144_regnum: return regnum2spr (144);
    case sim_ppc_spr145_regnum: return regnum2spr (145);
    case sim_ppc_spr146_regnum: return regnum2spr (146);
    case sim_ppc_spr147_regnum: return regnum2spr (147);
    case sim_ppc_spr148_regnum: return regnum2spr (148);
    case sim_ppc_spr149_regnum: return regnum2spr (149);
    case sim_ppc_spr150_regnum: return regnum2spr (150);
    case sim_ppc_spr151_regnum: return regnum2spr (151);
    case sim_ppc_spr152_regnum: return regnum2spr (152);
    case sim_ppc_spr153_regnum: return regnum2spr (153);
    case sim_ppc_spr154_regnum: return regnum2spr (154);
    case sim_ppc_spr155_regnum: return regnum2spr (155);
    case sim_ppc_spr156_regnum: return regnum2spr (156);
    case sim_ppc_spr157_regnum: return regnum2spr (157);
    case sim_ppc_spr158_regnum: return regnum2spr (158);
    case sim_ppc_spr159_regnum: return regnum2spr (159);
    case sim_ppc_spr160_regnum: return regnum2spr (160);
    case sim_ppc_spr161_regnum: return regnum2spr (161);
    case sim_ppc_spr162_regnum: return regnum2spr (162);
    case sim_ppc_spr163_regnum: return regnum2spr (163);
    case sim_ppc_spr164_regnum: return regnum2spr (164);
    case sim_ppc_spr165_regnum: return regnum2spr (165);
    case sim_ppc_spr166_regnum: return regnum2spr (166);
    case sim_ppc_spr167_regnum: return regnum2spr (167);
    case sim_ppc_spr168_regnum: return regnum2spr (168);
    case sim_ppc_spr169_regnum: return regnum2spr (169);
    case sim_ppc_spr170_regnum: return regnum2spr (170);
    case sim_ppc_spr171_regnum: return regnum2spr (171);
    case sim_ppc_spr172_regnum: return regnum2spr (172);
    case sim_ppc_spr173_regnum: return regnum2spr (173);
    case sim_ppc_spr174_regnum: return regnum2spr (174);
    case sim_ppc_spr175_regnum: return regnum2spr (175);
    case sim_ppc_spr176_regnum: return regnum2spr (176);
    case sim_ppc_spr177_regnum: return regnum2spr (177);
    case sim_ppc_spr178_regnum: return regnum2spr (178);
    case sim_ppc_spr179_regnum: return regnum2spr (179);
    case sim_ppc_spr180_regnum: return regnum2spr (180);
    case sim_ppc_spr181_regnum: return regnum2spr (181);
    case sim_ppc_spr182_regnum: return regnum2spr (182);
    case sim_ppc_spr183_regnum: return regnum2spr (183);
    case sim_ppc_spr184_regnum: return regnum2spr (184);
    case sim_ppc_spr185_regnum: return regnum2spr (185);
    case sim_ppc_spr186_regnum: return regnum2spr (186);
    case sim_ppc_spr187_regnum: return regnum2spr (187);
    case sim_ppc_spr188_regnum: return regnum2spr (188);
    case sim_ppc_spr189_regnum: return regnum2spr (189);
    case sim_ppc_spr190_regnum: return regnum2spr (190);
    case sim_ppc_spr191_regnum: return regnum2spr (191);
    case sim_ppc_spr192_regnum: return regnum2spr (192);
    case sim_ppc_spr193_regnum: return regnum2spr (193);
    case sim_ppc_spr194_regnum: return regnum2spr (194);
    case sim_ppc_spr195_regnum: return regnum2spr (195);
    case sim_ppc_spr196_regnum: return regnum2spr (196);
    case sim_ppc_spr197_regnum: return regnum2spr (197);
    case sim_ppc_spr198_regnum: return regnum2spr (198);
    case sim_ppc_spr199_regnum: return regnum2spr (199);
    case sim_ppc_spr200_regnum: return regnum2spr (200);
    case sim_ppc_spr201_regnum: return regnum2spr (201);
    case sim_ppc_spr202_regnum: return regnum2spr (202);
    case sim_ppc_spr203_regnum: return regnum2spr (203);
    case sim_ppc_spr204_regnum: return regnum2spr (204);
    case sim_ppc_spr205_regnum: return regnum2spr (205);
    case sim_ppc_spr206_regnum: return regnum2spr (206);
    case sim_ppc_spr207_regnum: return regnum2spr (207);
    case sim_ppc_spr208_regnum: return regnum2spr (208);
    case sim_ppc_spr209_regnum: return regnum2spr (209);
    case sim_ppc_spr210_regnum: return regnum2spr (210);
    case sim_ppc_spr211_regnum: return regnum2spr (211);
    case sim_ppc_spr212_regnum: return regnum2spr (212);
    case sim_ppc_spr213_regnum: return regnum2spr (213);
    case sim_ppc_spr214_regnum: return regnum2spr (214);
    case sim_ppc_spr215_regnum: return regnum2spr (215);
    case sim_ppc_spr216_regnum: return regnum2spr (216);
    case sim_ppc_spr217_regnum: return regnum2spr (217);
    case sim_ppc_spr218_regnum: return regnum2spr (218);
    case sim_ppc_spr219_regnum: return regnum2spr (219);
    case sim_ppc_spr220_regnum: return regnum2spr (220);
    case sim_ppc_spr221_regnum: return regnum2spr (221);
    case sim_ppc_spr222_regnum: return regnum2spr (222);
    case sim_ppc_spr223_regnum: return regnum2spr (223);
    case sim_ppc_spr224_regnum: return regnum2spr (224);
    case sim_ppc_spr225_regnum: return regnum2spr (225);
    case sim_ppc_spr226_regnum: return regnum2spr (226);
    case sim_ppc_spr227_regnum: return regnum2spr (227);
    case sim_ppc_spr228_regnum: return regnum2spr (228);
    case sim_ppc_spr229_regnum: return regnum2spr (229);
    case sim_ppc_spr230_regnum: return regnum2spr (230);
    case sim_ppc_spr231_regnum: return regnum2spr (231);
    case sim_ppc_spr232_regnum: return regnum2spr (232);
    case sim_ppc_spr233_regnum: return regnum2spr (233);
    case sim_ppc_spr234_regnum: return regnum2spr (234);
    case sim_ppc_spr235_regnum: return regnum2spr (235);
    case sim_ppc_spr236_regnum: return regnum2spr (236);
    case sim_ppc_spr237_regnum: return regnum2spr (237);
    case sim_ppc_spr238_regnum: return regnum2spr (238);
    case sim_ppc_spr239_regnum: return regnum2spr (239);
    case sim_ppc_spr240_regnum: return regnum2spr (240);
    case sim_ppc_spr241_regnum: return regnum2spr (241);
    case sim_ppc_spr242_regnum: return regnum2spr (242);
    case sim_ppc_spr243_regnum: return regnum2spr (243);
    case sim_ppc_spr244_regnum: return regnum2spr (244);
    case sim_ppc_spr245_regnum: return regnum2spr (245);
    case sim_ppc_spr246_regnum: return regnum2spr (246);
    case sim_ppc_spr247_regnum: return regnum2spr (247);
    case sim_ppc_spr248_regnum: return regnum2spr (248);
    case sim_ppc_spr249_regnum: return regnum2spr (249);
    case sim_ppc_spr250_regnum: return regnum2spr (250);
    case sim_ppc_spr251_regnum: return regnum2spr (251);
    case sim_ppc_spr252_regnum: return regnum2spr (252);
    case sim_ppc_spr253_regnum: return regnum2spr (253);
    case sim_ppc_spr254_regnum: return regnum2spr (254);
    case sim_ppc_spr255_regnum: return regnum2spr (255);
    case sim_ppc_spr256_regnum: return regnum2spr (256);
    case sim_ppc_spr257_regnum: return regnum2spr (257);
    case sim_ppc_spr258_regnum: return regnum2spr (258);
    case sim_ppc_spr259_regnum: return regnum2spr (259);
    case sim_ppc_spr260_regnum: return regnum2spr (260);
    case sim_ppc_spr261_regnum: return regnum2spr (261);
    case sim_ppc_spr262_regnum: return regnum2spr (262);
    case sim_ppc_spr263_regnum: return regnum2spr (263);
    case sim_ppc_spr264_regnum: return regnum2spr (264);
    case sim_ppc_spr265_regnum: return regnum2spr (265);
    case sim_ppc_spr266_regnum: return regnum2spr (266);
    case sim_ppc_spr267_regnum: return regnum2spr (267);
    case sim_ppc_spr268_regnum: return regnum2spr (268);
    case sim_ppc_spr269_regnum: return regnum2spr (269);
    case sim_ppc_spr270_regnum: return regnum2spr (270);
    case sim_ppc_spr271_regnum: return regnum2spr (271);
    case sim_ppc_spr272_regnum: return regnum2spr (272);
    case sim_ppc_spr273_regnum: return regnum2spr (273);
    case sim_ppc_spr274_regnum: return regnum2spr (274);
    case sim_ppc_spr275_regnum: return regnum2spr (275);
    case sim_ppc_spr276_regnum: return regnum2spr (276);
    case sim_ppc_spr277_regnum: return regnum2spr (277);
    case sim_ppc_spr278_regnum: return regnum2spr (278);
    case sim_ppc_spr279_regnum: return regnum2spr (279);
    case sim_ppc_spr280_regnum: return regnum2spr (280);
    case sim_ppc_spr281_regnum: return regnum2spr (281);
    case sim_ppc_spr282_regnum: return regnum2spr (282);
    case sim_ppc_spr283_regnum: return regnum2spr (283);
    case sim_ppc_spr284_regnum: return regnum2spr (284);
    case sim_ppc_spr285_regnum: return regnum2spr (285);
    case sim_ppc_spr286_regnum: return regnum2spr (286);
    case sim_ppc_spr287_regnum: return regnum2spr (287);
    case sim_ppc_spr288_regnum: return regnum2spr (288);
    case sim_ppc_spr289_regnum: return regnum2spr (289);
    case sim_ppc_spr290_regnum: return regnum2spr (290);
    case sim_ppc_spr291_regnum: return regnum2spr (291);
    case sim_ppc_spr292_regnum: return regnum2spr (292);
    case sim_ppc_spr293_regnum: return regnum2spr (293);
    case sim_ppc_spr294_regnum: return regnum2spr (294);
    case sim_ppc_spr295_regnum: return regnum2spr (295);
    case sim_ppc_spr296_regnum: return regnum2spr (296);
    case sim_ppc_spr297_regnum: return regnum2spr (297);
    case sim_ppc_spr298_regnum: return regnum2spr (298);
    case sim_ppc_spr299_regnum: return regnum2spr (299);
    case sim_ppc_spr300_regnum: return regnum2spr (300);
    case sim_ppc_spr301_regnum: return regnum2spr (301);
    case sim_ppc_spr302_regnum: return regnum2spr (302);
    case sim_ppc_spr303_regnum: return regnum2spr (303);
    case sim_ppc_spr304_regnum: return regnum2spr (304);
    case sim_ppc_spr305_regnum: return regnum2spr (305);
    case sim_ppc_spr306_regnum: return regnum2spr (306);
    case sim_ppc_spr307_regnum: return regnum2spr (307);
    case sim_ppc_spr308_regnum: return regnum2spr (308);
    case sim_ppc_spr309_regnum: return regnum2spr (309);
    case sim_ppc_spr310_regnum: return regnum2spr (310);
    case sim_ppc_spr311_regnum: return regnum2spr (311);
    case sim_ppc_spr312_regnum: return regnum2spr (312);
    case sim_ppc_spr313_regnum: return regnum2spr (313);
    case sim_ppc_spr314_regnum: return regnum2spr (314);
    case sim_ppc_spr315_regnum: return regnum2spr (315);
    case sim_ppc_spr316_regnum: return regnum2spr (316);
    case sim_ppc_spr317_regnum: return regnum2spr (317);
    case sim_ppc_spr318_regnum: return regnum2spr (318);
    case sim_ppc_spr319_regnum: return regnum2spr (319);
    case sim_ppc_spr320_regnum: return regnum2spr (320);
    case sim_ppc_spr321_regnum: return regnum2spr (321);
    case sim_ppc_spr322_regnum: return regnum2spr (322);
    case sim_ppc_spr323_regnum: return regnum2spr (323);
    case sim_ppc_spr324_regnum: return regnum2spr (324);
    case sim_ppc_spr325_regnum: return regnum2spr (325);
    case sim_ppc_spr326_regnum: return regnum2spr (326);
    case sim_ppc_spr327_regnum: return regnum2spr (327);
    case sim_ppc_spr328_regnum: return regnum2spr (328);
    case sim_ppc_spr329_regnum: return regnum2spr (329);
    case sim_ppc_spr330_regnum: return regnum2spr (330);
    case sim_ppc_spr331_regnum: return regnum2spr (331);
    case sim_ppc_spr332_regnum: return regnum2spr (332);
    case sim_ppc_spr333_regnum: return regnum2spr (333);
    case sim_ppc_spr334_regnum: return regnum2spr (334);
    case sim_ppc_spr335_regnum: return regnum2spr (335);
    case sim_ppc_spr336_regnum: return regnum2spr (336);
    case sim_ppc_spr337_regnum: return regnum2spr (337);
    case sim_ppc_spr338_regnum: return regnum2spr (338);
    case sim_ppc_spr339_regnum: return regnum2spr (339);
    case sim_ppc_spr340_regnum: return regnum2spr (340);
    case sim_ppc_spr341_regnum: return regnum2spr (341);
    case sim_ppc_spr342_regnum: return regnum2spr (342);
    case sim_ppc_spr343_regnum: return regnum2spr (343);
    case sim_ppc_spr344_regnum: return regnum2spr (344);
    case sim_ppc_spr345_regnum: return regnum2spr (345);
    case sim_ppc_spr346_regnum: return regnum2spr (346);
    case sim_ppc_spr347_regnum: return regnum2spr (347);
    case sim_ppc_spr348_regnum: return regnum2spr (348);
    case sim_ppc_spr349_regnum: return regnum2spr (349);
    case sim_ppc_spr350_regnum: return regnum2spr (350);
    case sim_ppc_spr351_regnum: return regnum2spr (351);
    case sim_ppc_spr352_regnum: return regnum2spr (352);
    case sim_ppc_spr353_regnum: return regnum2spr (353);
    case sim_ppc_spr354_regnum: return regnum2spr (354);
    case sim_ppc_spr355_regnum: return regnum2spr (355);
    case sim_ppc_spr356_regnum: return regnum2spr (356);
    case sim_ppc_spr357_regnum: return regnum2spr (357);
    case sim_ppc_spr358_regnum: return regnum2spr (358);
    case sim_ppc_spr359_regnum: return regnum2spr (359);
    case sim_ppc_spr360_regnum: return regnum2spr (360);
    case sim_ppc_spr361_regnum: return regnum2spr (361);
    case sim_ppc_spr362_regnum: return regnum2spr (362);
    case sim_ppc_spr363_regnum: return regnum2spr (363);
    case sim_ppc_spr364_regnum: return regnum2spr (364);
    case sim_ppc_spr365_regnum: return regnum2spr (365);
    case sim_ppc_spr366_regnum: return regnum2spr (366);
    case sim_ppc_spr367_regnum: return regnum2spr (367);
    case sim_ppc_spr368_regnum: return regnum2spr (368);
    case sim_ppc_spr369_regnum: return regnum2spr (369);
    case sim_ppc_spr370_regnum: return regnum2spr (370);
    case sim_ppc_spr371_regnum: return regnum2spr (371);
    case sim_ppc_spr372_regnum: return regnum2spr (372);
    case sim_ppc_spr373_regnum: return regnum2spr (373);
    case sim_ppc_spr374_regnum: return regnum2spr (374);
    case sim_ppc_spr375_regnum: return regnum2spr (375);
    case sim_ppc_spr376_regnum: return regnum2spr (376);
    case sim_ppc_spr377_regnum: return regnum2spr (377);
    case sim_ppc_spr378_regnum: return regnum2spr (378);
    case sim_ppc_spr379_regnum: return regnum2spr (379);
    case sim_ppc_spr380_regnum: return regnum2spr (380);
    case sim_ppc_spr381_regnum: return regnum2spr (381);
    case sim_ppc_spr382_regnum: return regnum2spr (382);
    case sim_ppc_spr383_regnum: return regnum2spr (383);
    case sim_ppc_spr384_regnum: return regnum2spr (384);
    case sim_ppc_spr385_regnum: return regnum2spr (385);
    case sim_ppc_spr386_regnum: return regnum2spr (386);
    case sim_ppc_spr387_regnum: return regnum2spr (387);
    case sim_ppc_spr388_regnum: return regnum2spr (388);
    case sim_ppc_spr389_regnum: return regnum2spr (389);
    case sim_ppc_spr390_regnum: return regnum2spr (390);
    case sim_ppc_spr391_regnum: return regnum2spr (391);
    case sim_ppc_spr392_regnum: return regnum2spr (392);
    case sim_ppc_spr393_regnum: return regnum2spr (393);
    case sim_ppc_spr394_regnum: return regnum2spr (394);
    case sim_ppc_spr395_regnum: return regnum2spr (395);
    case sim_ppc_spr396_regnum: return regnum2spr (396);
    case sim_ppc_spr397_regnum: return regnum2spr (397);
    case sim_ppc_spr398_regnum: return regnum2spr (398);
    case sim_ppc_spr399_regnum: return regnum2spr (399);
    case sim_ppc_spr400_regnum: return regnum2spr (400);
    case sim_ppc_spr401_regnum: return regnum2spr (401);
    case sim_ppc_spr402_regnum: return regnum2spr (402);
    case sim_ppc_spr403_regnum: return regnum2spr (403);
    case sim_ppc_spr404_regnum: return regnum2spr (404);
    case sim_ppc_spr405_regnum: return regnum2spr (405);
    case sim_ppc_spr406_regnum: return regnum2spr (406);
    case sim_ppc_spr407_regnum: return regnum2spr (407);
    case sim_ppc_spr408_regnum: return regnum2spr (408);
    case sim_ppc_spr409_regnum: return regnum2spr (409);
    case sim_ppc_spr410_regnum: return regnum2spr (410);
    case sim_ppc_spr411_regnum: return regnum2spr (411);
    case sim_ppc_spr412_regnum: return regnum2spr (412);
    case sim_ppc_spr413_regnum: return regnum2spr (413);
    case sim_ppc_spr414_regnum: return regnum2spr (414);
    case sim_ppc_spr415_regnum: return regnum2spr (415);
    case sim_ppc_spr416_regnum: return regnum2spr (416);
    case sim_ppc_spr417_regnum: return regnum2spr (417);
    case sim_ppc_spr418_regnum: return regnum2spr (418);
    case sim_ppc_spr419_regnum: return regnum2spr (419);
    case sim_ppc_spr420_regnum: return regnum2spr (420);
    case sim_ppc_spr421_regnum: return regnum2spr (421);
    case sim_ppc_spr422_regnum: return regnum2spr (422);
    case sim_ppc_spr423_regnum: return regnum2spr (423);
    case sim_ppc_spr424_regnum: return regnum2spr (424);
    case sim_ppc_spr425_regnum: return regnum2spr (425);
    case sim_ppc_spr426_regnum: return regnum2spr (426);
    case sim_ppc_spr427_regnum: return regnum2spr (427);
    case sim_ppc_spr428_regnum: return regnum2spr (428);
    case sim_ppc_spr429_regnum: return regnum2spr (429);
    case sim_ppc_spr430_regnum: return regnum2spr (430);
    case sim_ppc_spr431_regnum: return regnum2spr (431);
    case sim_ppc_spr432_regnum: return regnum2spr (432);
    case sim_ppc_spr433_regnum: return regnum2spr (433);
    case sim_ppc_spr434_regnum: return regnum2spr (434);
    case sim_ppc_spr435_regnum: return regnum2spr (435);
    case sim_ppc_spr436_regnum: return regnum2spr (436);
    case sim_ppc_spr437_regnum: return regnum2spr (437);
    case sim_ppc_spr438_regnum: return regnum2spr (438);
    case sim_ppc_spr439_regnum: return regnum2spr (439);
    case sim_ppc_spr440_regnum: return regnum2spr (440);
    case sim_ppc_spr441_regnum: return regnum2spr (441);
    case sim_ppc_spr442_regnum: return regnum2spr (442);
    case sim_ppc_spr443_regnum: return regnum2spr (443);
    case sim_ppc_spr444_regnum: return regnum2spr (444);
    case sim_ppc_spr445_regnum: return regnum2spr (445);
    case sim_ppc_spr446_regnum: return regnum2spr (446);
    case sim_ppc_spr447_regnum: return regnum2spr (447);
    case sim_ppc_spr448_regnum: return regnum2spr (448);
    case sim_ppc_spr449_regnum: return regnum2spr (449);
    case sim_ppc_spr450_regnum: return regnum2spr (450);
    case sim_ppc_spr451_regnum: return regnum2spr (451);
    case sim_ppc_spr452_regnum: return regnum2spr (452);
    case sim_ppc_spr453_regnum: return regnum2spr (453);
    case sim_ppc_spr454_regnum: return regnum2spr (454);
    case sim_ppc_spr455_regnum: return regnum2spr (455);
    case sim_ppc_spr456_regnum: return regnum2spr (456);
    case sim_ppc_spr457_regnum: return regnum2spr (457);
    case sim_ppc_spr458_regnum: return regnum2spr (458);
    case sim_ppc_spr459_regnum: return regnum2spr (459);
    case sim_ppc_spr460_regnum: return regnum2spr (460);
    case sim_ppc_spr461_regnum: return regnum2spr (461);
    case sim_ppc_spr462_regnum: return regnum2spr (462);
    case sim_ppc_spr463_regnum: return regnum2spr (463);
    case sim_ppc_spr464_regnum: return regnum2spr (464);
    case sim_ppc_spr465_regnum: return regnum2spr (465);
    case sim_ppc_spr466_regnum: return regnum2spr (466);
    case sim_ppc_spr467_regnum: return regnum2spr (467);
    case sim_ppc_spr468_regnum: return regnum2spr (468);
    case sim_ppc_spr469_regnum: return regnum2spr (469);
    case sim_ppc_spr470_regnum: return regnum2spr (470);
    case sim_ppc_spr471_regnum: return regnum2spr (471);
    case sim_ppc_spr472_regnum: return regnum2spr (472);
    case sim_ppc_spr473_regnum: return regnum2spr (473);
    case sim_ppc_spr474_regnum: return regnum2spr (474);
    case sim_ppc_spr475_regnum: return regnum2spr (475);
    case sim_ppc_spr476_regnum: return regnum2spr (476);
    case sim_ppc_spr477_regnum: return regnum2spr (477);
    case sim_ppc_spr478_regnum: return regnum2spr (478);
    case sim_ppc_spr479_regnum: return regnum2spr (479);
    case sim_ppc_spr480_regnum: return regnum2spr (480);
    case sim_ppc_spr481_regnum: return regnum2spr (481);
    case sim_ppc_spr482_regnum: return regnum2spr (482);
    case sim_ppc_spr483_regnum: return regnum2spr (483);
    case sim_ppc_spr484_regnum: return regnum2spr (484);
    case sim_ppc_spr485_regnum: return regnum2spr (485);
    case sim_ppc_spr486_regnum: return regnum2spr (486);
    case sim_ppc_spr487_regnum: return regnum2spr (487);
    case sim_ppc_spr488_regnum: return regnum2spr (488);
    case sim_ppc_spr489_regnum: return regnum2spr (489);
    case sim_ppc_spr490_regnum: return regnum2spr (490);
    case sim_ppc_spr491_regnum: return regnum2spr (491);
    case sim_ppc_spr492_regnum: return regnum2spr (492);
    case sim_ppc_spr493_regnum: return regnum2spr (493);
    case sim_ppc_spr494_regnum: return regnum2spr (494);
    case sim_ppc_spr495_regnum: return regnum2spr (495);
    case sim_ppc_spr496_regnum: return regnum2spr (496);
    case sim_ppc_spr497_regnum: return regnum2spr (497);
    case sim_ppc_spr498_regnum: return regnum2spr (498);
    case sim_ppc_spr499_regnum: return regnum2spr (499);
    case sim_ppc_spr500_regnum: return regnum2spr (500);
    case sim_ppc_spr501_regnum: return regnum2spr (501);
    case sim_ppc_spr502_regnum: return regnum2spr (502);
    case sim_ppc_spr503_regnum: return regnum2spr (503);
    case sim_ppc_spr504_regnum: return regnum2spr (504);
    case sim_ppc_spr505_regnum: return regnum2spr (505);
    case sim_ppc_spr506_regnum: return regnum2spr (506);
    case sim_ppc_spr507_regnum: return regnum2spr (507);
    case sim_ppc_spr508_regnum: return regnum2spr (508);
    case sim_ppc_spr509_regnum: return regnum2spr (509);
    case sim_ppc_spr510_regnum: return regnum2spr (510);
    case sim_ppc_spr511_regnum: return regnum2spr (511);
    case sim_ppc_spr512_regnum: return regnum2spr (512);
    case sim_ppc_spr513_regnum: return regnum2spr (513);
    case sim_ppc_spr514_regnum: return regnum2spr (514);
    case sim_ppc_spr515_regnum: return regnum2spr (515);
    case sim_ppc_spr516_regnum: return regnum2spr (516);
    case sim_ppc_spr517_regnum: return regnum2spr (517);
    case sim_ppc_spr518_regnum: return regnum2spr (518);
    case sim_ppc_spr519_regnum: return regnum2spr (519);
    case sim_ppc_spr520_regnum: return regnum2spr (520);
    case sim_ppc_spr521_regnum: return regnum2spr (521);
    case sim_ppc_spr522_regnum: return regnum2spr (522);
    case sim_ppc_spr523_regnum: return regnum2spr (523);
    case sim_ppc_spr524_regnum: return regnum2spr (524);
    case sim_ppc_spr525_regnum: return regnum2spr (525);
    case sim_ppc_spr526_regnum: return regnum2spr (526);
    case sim_ppc_spr527_regnum: return regnum2spr (527);
    case sim_ppc_spr528_regnum: return regnum2spr (528);
    case sim_ppc_spr529_regnum: return regnum2spr (529);
    case sim_ppc_spr530_regnum: return regnum2spr (530);
    case sim_ppc_spr531_regnum: return regnum2spr (531);
    case sim_ppc_spr532_regnum: return regnum2spr (532);
    case sim_ppc_spr533_regnum: return regnum2spr (533);
    case sim_ppc_spr534_regnum: return regnum2spr (534);
    case sim_ppc_spr535_regnum: return regnum2spr (535);
    case sim_ppc_spr536_regnum: return regnum2spr (536);
    case sim_ppc_spr537_regnum: return regnum2spr (537);
    case sim_ppc_spr538_regnum: return regnum2spr (538);
    case sim_ppc_spr539_regnum: return regnum2spr (539);
    case sim_ppc_spr540_regnum: return regnum2spr (540);
    case sim_ppc_spr541_regnum: return regnum2spr (541);
    case sim_ppc_spr542_regnum: return regnum2spr (542);
    case sim_ppc_spr543_regnum: return regnum2spr (543);
    case sim_ppc_spr544_regnum: return regnum2spr (544);
    case sim_ppc_spr545_regnum: return regnum2spr (545);
    case sim_ppc_spr546_regnum: return regnum2spr (546);
    case sim_ppc_spr547_regnum: return regnum2spr (547);
    case sim_ppc_spr548_regnum: return regnum2spr (548);
    case sim_ppc_spr549_regnum: return regnum2spr (549);
    case sim_ppc_spr550_regnum: return regnum2spr (550);
    case sim_ppc_spr551_regnum: return regnum2spr (551);
    case sim_ppc_spr552_regnum: return regnum2spr (552);
    case sim_ppc_spr553_regnum: return regnum2spr (553);
    case sim_ppc_spr554_regnum: return regnum2spr (554);
    case sim_ppc_spr555_regnum: return regnum2spr (555);
    case sim_ppc_spr556_regnum: return regnum2spr (556);
    case sim_ppc_spr557_regnum: return regnum2spr (557);
    case sim_ppc_spr558_regnum: return regnum2spr (558);
    case sim_ppc_spr559_regnum: return regnum2spr (559);
    case sim_ppc_spr560_regnum: return regnum2spr (560);
    case sim_ppc_spr561_regnum: return regnum2spr (561);
    case sim_ppc_spr562_regnum: return regnum2spr (562);
    case sim_ppc_spr563_regnum: return regnum2spr (563);
    case sim_ppc_spr564_regnum: return regnum2spr (564);
    case sim_ppc_spr565_regnum: return regnum2spr (565);
    case sim_ppc_spr566_regnum: return regnum2spr (566);
    case sim_ppc_spr567_regnum: return regnum2spr (567);
    case sim_ppc_spr568_regnum: return regnum2spr (568);
    case sim_ppc_spr569_regnum: return regnum2spr (569);
    case sim_ppc_spr570_regnum: return regnum2spr (570);
    case sim_ppc_spr571_regnum: return regnum2spr (571);
    case sim_ppc_spr572_regnum: return regnum2spr (572);
    case sim_ppc_spr573_regnum: return regnum2spr (573);
    case sim_ppc_spr574_regnum: return regnum2spr (574);
    case sim_ppc_spr575_regnum: return regnum2spr (575);
    case sim_ppc_spr576_regnum: return regnum2spr (576);
    case sim_ppc_spr577_regnum: return regnum2spr (577);
    case sim_ppc_spr578_regnum: return regnum2spr (578);
    case sim_ppc_spr579_regnum: return regnum2spr (579);
    case sim_ppc_spr580_regnum: return regnum2spr (580);
    case sim_ppc_spr581_regnum: return regnum2spr (581);
    case sim_ppc_spr582_regnum: return regnum2spr (582);
    case sim_ppc_spr583_regnum: return regnum2spr (583);
    case sim_ppc_spr584_regnum: return regnum2spr (584);
    case sim_ppc_spr585_regnum: return regnum2spr (585);
    case sim_ppc_spr586_regnum: return regnum2spr (586);
    case sim_ppc_spr587_regnum: return regnum2spr (587);
    case sim_ppc_spr588_regnum: return regnum2spr (588);
    case sim_ppc_spr589_regnum: return regnum2spr (589);
    case sim_ppc_spr590_regnum: return regnum2spr (590);
    case sim_ppc_spr591_regnum: return regnum2spr (591);
    case sim_ppc_spr592_regnum: return regnum2spr (592);
    case sim_ppc_spr593_regnum: return regnum2spr (593);
    case sim_ppc_spr594_regnum: return regnum2spr (594);
    case sim_ppc_spr595_regnum: return regnum2spr (595);
    case sim_ppc_spr596_regnum: return regnum2spr (596);
    case sim_ppc_spr597_regnum: return regnum2spr (597);
    case sim_ppc_spr598_regnum: return regnum2spr (598);
    case sim_ppc_spr599_regnum: return regnum2spr (599);
    case sim_ppc_spr600_regnum: return regnum2spr (600);
    case sim_ppc_spr601_regnum: return regnum2spr (601);
    case sim_ppc_spr602_regnum: return regnum2spr (602);
    case sim_ppc_spr603_regnum: return regnum2spr (603);
    case sim_ppc_spr604_regnum: return regnum2spr (604);
    case sim_ppc_spr605_regnum: return regnum2spr (605);
    case sim_ppc_spr606_regnum: return regnum2spr (606);
    case sim_ppc_spr607_regnum: return regnum2spr (607);
    case sim_ppc_spr608_regnum: return regnum2spr (608);
    case sim_ppc_spr609_regnum: return regnum2spr (609);
    case sim_ppc_spr610_regnum: return regnum2spr (610);
    case sim_ppc_spr611_regnum: return regnum2spr (611);
    case sim_ppc_spr612_regnum: return regnum2spr (612);
    case sim_ppc_spr613_regnum: return regnum2spr (613);
    case sim_ppc_spr614_regnum: return regnum2spr (614);
    case sim_ppc_spr615_regnum: return regnum2spr (615);
    case sim_ppc_spr616_regnum: return regnum2spr (616);
    case sim_ppc_spr617_regnum: return regnum2spr (617);
    case sim_ppc_spr618_regnum: return regnum2spr (618);
    case sim_ppc_spr619_regnum: return regnum2spr (619);
    case sim_ppc_spr620_regnum: return regnum2spr (620);
    case sim_ppc_spr621_regnum: return regnum2spr (621);
    case sim_ppc_spr622_regnum: return regnum2spr (622);
    case sim_ppc_spr623_regnum: return regnum2spr (623);
    case sim_ppc_spr624_regnum: return regnum2spr (624);
    case sim_ppc_spr625_regnum: return regnum2spr (625);
    case sim_ppc_spr626_regnum: return regnum2spr (626);
    case sim_ppc_spr627_regnum: return regnum2spr (627);
    case sim_ppc_spr628_regnum: return regnum2spr (628);
    case sim_ppc_spr629_regnum: return regnum2spr (629);
    case sim_ppc_spr630_regnum: return regnum2spr (630);
    case sim_ppc_spr631_regnum: return regnum2spr (631);
    case sim_ppc_spr632_regnum: return regnum2spr (632);
    case sim_ppc_spr633_regnum: return regnum2spr (633);
    case sim_ppc_spr634_regnum: return regnum2spr (634);
    case sim_ppc_spr635_regnum: return regnum2spr (635);
    case sim_ppc_spr636_regnum: return regnum2spr (636);
    case sim_ppc_spr637_regnum: return regnum2spr (637);
    case sim_ppc_spr638_regnum: return regnum2spr (638);
    case sim_ppc_spr639_regnum: return regnum2spr (639);
    case sim_ppc_spr640_regnum: return regnum2spr (640);
    case sim_ppc_spr641_regnum: return regnum2spr (641);
    case sim_ppc_spr642_regnum: return regnum2spr (642);
    case sim_ppc_spr643_regnum: return regnum2spr (643);
    case sim_ppc_spr644_regnum: return regnum2spr (644);
    case sim_ppc_spr645_regnum: return regnum2spr (645);
    case sim_ppc_spr646_regnum: return regnum2spr (646);
    case sim_ppc_spr647_regnum: return regnum2spr (647);
    case sim_ppc_spr648_regnum: return regnum2spr (648);
    case sim_ppc_spr649_regnum: return regnum2spr (649);
    case sim_ppc_spr650_regnum: return regnum2spr (650);
    case sim_ppc_spr651_regnum: return regnum2spr (651);
    case sim_ppc_spr652_regnum: return regnum2spr (652);
    case sim_ppc_spr653_regnum: return regnum2spr (653);
    case sim_ppc_spr654_regnum: return regnum2spr (654);
    case sim_ppc_spr655_regnum: return regnum2spr (655);
    case sim_ppc_spr656_regnum: return regnum2spr (656);
    case sim_ppc_spr657_regnum: return regnum2spr (657);
    case sim_ppc_spr658_regnum: return regnum2spr (658);
    case sim_ppc_spr659_regnum: return regnum2spr (659);
    case sim_ppc_spr660_regnum: return regnum2spr (660);
    case sim_ppc_spr661_regnum: return regnum2spr (661);
    case sim_ppc_spr662_regnum: return regnum2spr (662);
    case sim_ppc_spr663_regnum: return regnum2spr (663);
    case sim_ppc_spr664_regnum: return regnum2spr (664);
    case sim_ppc_spr665_regnum: return regnum2spr (665);
    case sim_ppc_spr666_regnum: return regnum2spr (666);
    case sim_ppc_spr667_regnum: return regnum2spr (667);
    case sim_ppc_spr668_regnum: return regnum2spr (668);
    case sim_ppc_spr669_regnum: return regnum2spr (669);
    case sim_ppc_spr670_regnum: return regnum2spr (670);
    case sim_ppc_spr671_regnum: return regnum2spr (671);
    case sim_ppc_spr672_regnum: return regnum2spr (672);
    case sim_ppc_spr673_regnum: return regnum2spr (673);
    case sim_ppc_spr674_regnum: return regnum2spr (674);
    case sim_ppc_spr675_regnum: return regnum2spr (675);
    case sim_ppc_spr676_regnum: return regnum2spr (676);
    case sim_ppc_spr677_regnum: return regnum2spr (677);
    case sim_ppc_spr678_regnum: return regnum2spr (678);
    case sim_ppc_spr679_regnum: return regnum2spr (679);
    case sim_ppc_spr680_regnum: return regnum2spr (680);
    case sim_ppc_spr681_regnum: return regnum2spr (681);
    case sim_ppc_spr682_regnum: return regnum2spr (682);
    case sim_ppc_spr683_regnum: return regnum2spr (683);
    case sim_ppc_spr684_regnum: return regnum2spr (684);
    case sim_ppc_spr685_regnum: return regnum2spr (685);
    case sim_ppc_spr686_regnum: return regnum2spr (686);
    case sim_ppc_spr687_regnum: return regnum2spr (687);
    case sim_ppc_spr688_regnum: return regnum2spr (688);
    case sim_ppc_spr689_regnum: return regnum2spr (689);
    case sim_ppc_spr690_regnum: return regnum2spr (690);
    case sim_ppc_spr691_regnum: return regnum2spr (691);
    case sim_ppc_spr692_regnum: return regnum2spr (692);
    case sim_ppc_spr693_regnum: return regnum2spr (693);
    case sim_ppc_spr694_regnum: return regnum2spr (694);
    case sim_ppc_spr695_regnum: return regnum2spr (695);
    case sim_ppc_spr696_regnum: return regnum2spr (696);
    case sim_ppc_spr697_regnum: return regnum2spr (697);
    case sim_ppc_spr698_regnum: return regnum2spr (698);
    case sim_ppc_spr699_regnum: return regnum2spr (699);
    case sim_ppc_spr700_regnum: return regnum2spr (700);
    case sim_ppc_spr701_regnum: return regnum2spr (701);
    case sim_ppc_spr702_regnum: return regnum2spr (702);
    case sim_ppc_spr703_regnum: return regnum2spr (703);
    case sim_ppc_spr704_regnum: return regnum2spr (704);
    case sim_ppc_spr705_regnum: return regnum2spr (705);
    case sim_ppc_spr706_regnum: return regnum2spr (706);
    case sim_ppc_spr707_regnum: return regnum2spr (707);
    case sim_ppc_spr708_regnum: return regnum2spr (708);
    case sim_ppc_spr709_regnum: return regnum2spr (709);
    case sim_ppc_spr710_regnum: return regnum2spr (710);
    case sim_ppc_spr711_regnum: return regnum2spr (711);
    case sim_ppc_spr712_regnum: return regnum2spr (712);
    case sim_ppc_spr713_regnum: return regnum2spr (713);
    case sim_ppc_spr714_regnum: return regnum2spr (714);
    case sim_ppc_spr715_regnum: return regnum2spr (715);
    case sim_ppc_spr716_regnum: return regnum2spr (716);
    case sim_ppc_spr717_regnum: return regnum2spr (717);
    case sim_ppc_spr718_regnum: return regnum2spr (718);
    case sim_ppc_spr719_regnum: return regnum2spr (719);
    case sim_ppc_spr720_regnum: return regnum2spr (720);
    case sim_ppc_spr721_regnum: return regnum2spr (721);
    case sim_ppc_spr722_regnum: return regnum2spr (722);
    case sim_ppc_spr723_regnum: return regnum2spr (723);
    case sim_ppc_spr724_regnum: return regnum2spr (724);
    case sim_ppc_spr725_regnum: return regnum2spr (725);
    case sim_ppc_spr726_regnum: return regnum2spr (726);
    case sim_ppc_spr727_regnum: return regnum2spr (727);
    case sim_ppc_spr728_regnum: return regnum2spr (728);
    case sim_ppc_spr729_regnum: return regnum2spr (729);
    case sim_ppc_spr730_regnum: return regnum2spr (730);
    case sim_ppc_spr731_regnum: return regnum2spr (731);
    case sim_ppc_spr732_regnum: return regnum2spr (732);
    case sim_ppc_spr733_regnum: return regnum2spr (733);
    case sim_ppc_spr734_regnum: return regnum2spr (734);
    case sim_ppc_spr735_regnum: return regnum2spr (735);
    case sim_ppc_spr736_regnum: return regnum2spr (736);
    case sim_ppc_spr737_regnum: return regnum2spr (737);
    case sim_ppc_spr738_regnum: return regnum2spr (738);
    case sim_ppc_spr739_regnum: return regnum2spr (739);
    case sim_ppc_spr740_regnum: return regnum2spr (740);
    case sim_ppc_spr741_regnum: return regnum2spr (741);
    case sim_ppc_spr742_regnum: return regnum2spr (742);
    case sim_ppc_spr743_regnum: return regnum2spr (743);
    case sim_ppc_spr744_regnum: return regnum2spr (744);
    case sim_ppc_spr745_regnum: return regnum2spr (745);
    case sim_ppc_spr746_regnum: return regnum2spr (746);
    case sim_ppc_spr747_regnum: return regnum2spr (747);
    case sim_ppc_spr748_regnum: return regnum2spr (748);
    case sim_ppc_spr749_regnum: return regnum2spr (749);
    case sim_ppc_spr750_regnum: return regnum2spr (750);
    case sim_ppc_spr751_regnum: return regnum2spr (751);
    case sim_ppc_spr752_regnum: return regnum2spr (752);
    case sim_ppc_spr753_regnum: return regnum2spr (753);
    case sim_ppc_spr754_regnum: return regnum2spr (754);
    case sim_ppc_spr755_regnum: return regnum2spr (755);
    case sim_ppc_spr756_regnum: return regnum2spr (756);
    case sim_ppc_spr757_regnum: return regnum2spr (757);
    case sim_ppc_spr758_regnum: return regnum2spr (758);
    case sim_ppc_spr759_regnum: return regnum2spr (759);
    case sim_ppc_spr760_regnum: return regnum2spr (760);
    case sim_ppc_spr761_regnum: return regnum2spr (761);
    case sim_ppc_spr762_regnum: return regnum2spr (762);
    case sim_ppc_spr763_regnum: return regnum2spr (763);
    case sim_ppc_spr764_regnum: return regnum2spr (764);
    case sim_ppc_spr765_regnum: return regnum2spr (765);
    case sim_ppc_spr766_regnum: return regnum2spr (766);
    case sim_ppc_spr767_regnum: return regnum2spr (767);
    case sim_ppc_spr768_regnum: return regnum2spr (768);
    case sim_ppc_spr769_regnum: return regnum2spr (769);
    case sim_ppc_spr770_regnum: return regnum2spr (770);
    case sim_ppc_spr771_regnum: return regnum2spr (771);
    case sim_ppc_spr772_regnum: return regnum2spr (772);
    case sim_ppc_spr773_regnum: return regnum2spr (773);
    case sim_ppc_spr774_regnum: return regnum2spr (774);
    case sim_ppc_spr775_regnum: return regnum2spr (775);
    case sim_ppc_spr776_regnum: return regnum2spr (776);
    case sim_ppc_spr777_regnum: return regnum2spr (777);
    case sim_ppc_spr778_regnum: return regnum2spr (778);
    case sim_ppc_spr779_regnum: return regnum2spr (779);
    case sim_ppc_spr780_regnum: return regnum2spr (780);
    case sim_ppc_spr781_regnum: return regnum2spr (781);
    case sim_ppc_spr782_regnum: return regnum2spr (782);
    case sim_ppc_spr783_regnum: return regnum2spr (783);
    case sim_ppc_spr784_regnum: return regnum2spr (784);
    case sim_ppc_spr785_regnum: return regnum2spr (785);
    case sim_ppc_spr786_regnum: return regnum2spr (786);
    case sim_ppc_spr787_regnum: return regnum2spr (787);
    case sim_ppc_spr788_regnum: return regnum2spr (788);
    case sim_ppc_spr789_regnum: return regnum2spr (789);
    case sim_ppc_spr790_regnum: return regnum2spr (790);
    case sim_ppc_spr791_regnum: return regnum2spr (791);
    case sim_ppc_spr792_regnum: return regnum2spr (792);
    case sim_ppc_spr793_regnum: return regnum2spr (793);
    case sim_ppc_spr794_regnum: return regnum2spr (794);
    case sim_ppc_spr795_regnum: return regnum2spr (795);
    case sim_ppc_spr796_regnum: return regnum2spr (796);
    case sim_ppc_spr797_regnum: return regnum2spr (797);
    case sim_ppc_spr798_regnum: return regnum2spr (798);
    case sim_ppc_spr799_regnum: return regnum2spr (799);
    case sim_ppc_spr800_regnum: return regnum2spr (800);
    case sim_ppc_spr801_regnum: return regnum2spr (801);
    case sim_ppc_spr802_regnum: return regnum2spr (802);
    case sim_ppc_spr803_regnum: return regnum2spr (803);
    case sim_ppc_spr804_regnum: return regnum2spr (804);
    case sim_ppc_spr805_regnum: return regnum2spr (805);
    case sim_ppc_spr806_regnum: return regnum2spr (806);
    case sim_ppc_spr807_regnum: return regnum2spr (807);
    case sim_ppc_spr808_regnum: return regnum2spr (808);
    case sim_ppc_spr809_regnum: return regnum2spr (809);
    case sim_ppc_spr810_regnum: return regnum2spr (810);
    case sim_ppc_spr811_regnum: return regnum2spr (811);
    case sim_ppc_spr812_regnum: return regnum2spr (812);
    case sim_ppc_spr813_regnum: return regnum2spr (813);
    case sim_ppc_spr814_regnum: return regnum2spr (814);
    case sim_ppc_spr815_regnum: return regnum2spr (815);
    case sim_ppc_spr816_regnum: return regnum2spr (816);
    case sim_ppc_spr817_regnum: return regnum2spr (817);
    case sim_ppc_spr818_regnum: return regnum2spr (818);
    case sim_ppc_spr819_regnum: return regnum2spr (819);
    case sim_ppc_spr820_regnum: return regnum2spr (820);
    case sim_ppc_spr821_regnum: return regnum2spr (821);
    case sim_ppc_spr822_regnum: return regnum2spr (822);
    case sim_ppc_spr823_regnum: return regnum2spr (823);
    case sim_ppc_spr824_regnum: return regnum2spr (824);
    case sim_ppc_spr825_regnum: return regnum2spr (825);
    case sim_ppc_spr826_regnum: return regnum2spr (826);
    case sim_ppc_spr827_regnum: return regnum2spr (827);
    case sim_ppc_spr828_regnum: return regnum2spr (828);
    case sim_ppc_spr829_regnum: return regnum2spr (829);
    case sim_ppc_spr830_regnum: return regnum2spr (830);
    case sim_ppc_spr831_regnum: return regnum2spr (831);
    case sim_ppc_spr832_regnum: return regnum2spr (832);
    case sim_ppc_spr833_regnum: return regnum2spr (833);
    case sim_ppc_spr834_regnum: return regnum2spr (834);
    case sim_ppc_spr835_regnum: return regnum2spr (835);
    case sim_ppc_spr836_regnum: return regnum2spr (836);
    case sim_ppc_spr837_regnum: return regnum2spr (837);
    case sim_ppc_spr838_regnum: return regnum2spr (838);
    case sim_ppc_spr839_regnum: return regnum2spr (839);
    case sim_ppc_spr840_regnum: return regnum2spr (840);
    case sim_ppc_spr841_regnum: return regnum2spr (841);
    case sim_ppc_spr842_regnum: return regnum2spr (842);
    case sim_ppc_spr843_regnum: return regnum2spr (843);
    case sim_ppc_spr844_regnum: return regnum2spr (844);
    case sim_ppc_spr845_regnum: return regnum2spr (845);
    case sim_ppc_spr846_regnum: return regnum2spr (846);
    case sim_ppc_spr847_regnum: return regnum2spr (847);
    case sim_ppc_spr848_regnum: return regnum2spr (848);
    case sim_ppc_spr849_regnum: return regnum2spr (849);
    case sim_ppc_spr850_regnum: return regnum2spr (850);
    case sim_ppc_spr851_regnum: return regnum2spr (851);
    case sim_ppc_spr852_regnum: return regnum2spr (852);
    case sim_ppc_spr853_regnum: return regnum2spr (853);
    case sim_ppc_spr854_regnum: return regnum2spr (854);
    case sim_ppc_spr855_regnum: return regnum2spr (855);
    case sim_ppc_spr856_regnum: return regnum2spr (856);
    case sim_ppc_spr857_regnum: return regnum2spr (857);
    case sim_ppc_spr858_regnum: return regnum2spr (858);
    case sim_ppc_spr859_regnum: return regnum2spr (859);
    case sim_ppc_spr860_regnum: return regnum2spr (860);
    case sim_ppc_spr861_regnum: return regnum2spr (861);
    case sim_ppc_spr862_regnum: return regnum2spr (862);
    case sim_ppc_spr863_regnum: return regnum2spr (863);
    case sim_ppc_spr864_regnum: return regnum2spr (864);
    case sim_ppc_spr865_regnum: return regnum2spr (865);
    case sim_ppc_spr866_regnum: return regnum2spr (866);
    case sim_ppc_spr867_regnum: return regnum2spr (867);
    case sim_ppc_spr868_regnum: return regnum2spr (868);
    case sim_ppc_spr869_regnum: return regnum2spr (869);
    case sim_ppc_spr870_regnum: return regnum2spr (870);
    case sim_ppc_spr871_regnum: return regnum2spr (871);
    case sim_ppc_spr872_regnum: return regnum2spr (872);
    case sim_ppc_spr873_regnum: return regnum2spr (873);
    case sim_ppc_spr874_regnum: return regnum2spr (874);
    case sim_ppc_spr875_regnum: return regnum2spr (875);
    case sim_ppc_spr876_regnum: return regnum2spr (876);
    case sim_ppc_spr877_regnum: return regnum2spr (877);
    case sim_ppc_spr878_regnum: return regnum2spr (878);
    case sim_ppc_spr879_regnum: return regnum2spr (879);
    case sim_ppc_spr880_regnum: return regnum2spr (880);
    case sim_ppc_spr881_regnum: return regnum2spr (881);
    case sim_ppc_spr882_regnum: return regnum2spr (882);
    case sim_ppc_spr883_regnum: return regnum2spr (883);
    case sim_ppc_spr884_regnum: return regnum2spr (884);
    case sim_ppc_spr885_regnum: return regnum2spr (885);
    case sim_ppc_spr886_regnum: return regnum2spr (886);
    case sim_ppc_spr887_regnum: return regnum2spr (887);
    case sim_ppc_spr888_regnum: return regnum2spr (888);
    case sim_ppc_spr889_regnum: return regnum2spr (889);
    case sim_ppc_spr890_regnum: return regnum2spr (890);
    case sim_ppc_spr891_regnum: return regnum2spr (891);
    case sim_ppc_spr892_regnum: return regnum2spr (892);
    case sim_ppc_spr893_regnum: return regnum2spr (893);
    case sim_ppc_spr894_regnum: return regnum2spr (894);
    case sim_ppc_spr895_regnum: return regnum2spr (895);
    case sim_ppc_spr896_regnum: return regnum2spr (896);
    case sim_ppc_spr897_regnum: return regnum2spr (897);
    case sim_ppc_spr898_regnum: return regnum2spr (898);
    case sim_ppc_spr899_regnum: return regnum2spr (899);
    case sim_ppc_spr900_regnum: return regnum2spr (900);
    case sim_ppc_spr901_regnum: return regnum2spr (901);
    case sim_ppc_spr902_regnum: return regnum2spr (902);
    case sim_ppc_spr903_regnum: return regnum2spr (903);
    case sim_ppc_spr904_regnum: return regnum2spr (904);
    case sim_ppc_spr905_regnum: return regnum2spr (905);
    case sim_ppc_spr906_regnum: return regnum2spr (906);
    case sim_ppc_spr907_regnum: return regnum2spr (907);
    case sim_ppc_spr908_regnum: return regnum2spr (908);
    case sim_ppc_spr909_regnum: return regnum2spr (909);
    case sim_ppc_spr910_regnum: return regnum2spr (910);
    case sim_ppc_spr911_regnum: return regnum2spr (911);
    case sim_ppc_spr912_regnum: return regnum2spr (912);
    case sim_ppc_spr913_regnum: return regnum2spr (913);
    case sim_ppc_spr914_regnum: return regnum2spr (914);
    case sim_ppc_spr915_regnum: return regnum2spr (915);
    case sim_ppc_spr916_regnum: return regnum2spr (916);
    case sim_ppc_spr917_regnum: return regnum2spr (917);
    case sim_ppc_spr918_regnum: return regnum2spr (918);
    case sim_ppc_spr919_regnum: return regnum2spr (919);
    case sim_ppc_spr920_regnum: return regnum2spr (920);
    case sim_ppc_spr921_regnum: return regnum2spr (921);
    case sim_ppc_spr922_regnum: return regnum2spr (922);
    case sim_ppc_spr923_regnum: return regnum2spr (923);
    case sim_ppc_spr924_regnum: return regnum2spr (924);
    case sim_ppc_spr925_regnum: return regnum2spr (925);
    case sim_ppc_spr926_regnum: return regnum2spr (926);
    case sim_ppc_spr927_regnum: return regnum2spr (927);
    case sim_ppc_spr928_regnum: return regnum2spr (928);
    case sim_ppc_spr929_regnum: return regnum2spr (929);
    case sim_ppc_spr930_regnum: return regnum2spr (930);
    case sim_ppc_spr931_regnum: return regnum2spr (931);
    case sim_ppc_spr932_regnum: return regnum2spr (932);
    case sim_ppc_spr933_regnum: return regnum2spr (933);
    case sim_ppc_spr934_regnum: return regnum2spr (934);
    case sim_ppc_spr935_regnum: return regnum2spr (935);
    case sim_ppc_spr936_regnum: return regnum2spr (936);
    case sim_ppc_spr937_regnum: return regnum2spr (937);
    case sim_ppc_spr938_regnum: return regnum2spr (938);
    case sim_ppc_spr939_regnum: return regnum2spr (939);
    case sim_ppc_spr940_regnum: return regnum2spr (940);
    case sim_ppc_spr941_regnum: return regnum2spr (941);
    case sim_ppc_spr942_regnum: return regnum2spr (942);
    case sim_ppc_spr943_regnum: return regnum2spr (943);
    case sim_ppc_spr944_regnum: return regnum2spr (944);
    case sim_ppc_spr945_regnum: return regnum2spr (945);
    case sim_ppc_spr946_regnum: return regnum2spr (946);
    case sim_ppc_spr947_regnum: return regnum2spr (947);
    case sim_ppc_spr948_regnum: return regnum2spr (948);
    case sim_ppc_spr949_regnum: return regnum2spr (949);
    case sim_ppc_spr950_regnum: return regnum2spr (950);
    case sim_ppc_spr951_regnum: return regnum2spr (951);
    case sim_ppc_spr952_regnum: return regnum2spr (952);
    case sim_ppc_spr953_regnum: return regnum2spr (953);
    case sim_ppc_spr954_regnum: return regnum2spr (954);
    case sim_ppc_spr955_regnum: return regnum2spr (955);
    case sim_ppc_spr956_regnum: return regnum2spr (956);
    case sim_ppc_spr957_regnum: return regnum2spr (957);
    case sim_ppc_spr958_regnum: return regnum2spr (958);
    case sim_ppc_spr959_regnum: return regnum2spr (959);
    case sim_ppc_spr960_regnum: return regnum2spr (960);
    case sim_ppc_spr961_regnum: return regnum2spr (961);
    case sim_ppc_spr962_regnum: return regnum2spr (962);
    case sim_ppc_spr963_regnum: return regnum2spr (963);
    case sim_ppc_spr964_regnum: return regnum2spr (964);
    case sim_ppc_spr965_regnum: return regnum2spr (965);
    case sim_ppc_spr966_regnum: return regnum2spr (966);
    case sim_ppc_spr967_regnum: return regnum2spr (967);
    case sim_ppc_spr968_regnum: return regnum2spr (968);
    case sim_ppc_spr969_regnum: return regnum2spr (969);
    case sim_ppc_spr970_regnum: return regnum2spr (970);
    case sim_ppc_spr971_regnum: return regnum2spr (971);
    case sim_ppc_spr972_regnum: return regnum2spr (972);
    case sim_ppc_spr973_regnum: return regnum2spr (973);
    case sim_ppc_spr974_regnum: return regnum2spr (974);
    case sim_ppc_spr975_regnum: return regnum2spr (975);
    case sim_ppc_spr976_regnum: return regnum2spr (976);
    case sim_ppc_spr977_regnum: return regnum2spr (977);
    case sim_ppc_spr978_regnum: return regnum2spr (978);
    case sim_ppc_spr979_regnum: return regnum2spr (979);
    case sim_ppc_spr980_regnum: return regnum2spr (980);
    case sim_ppc_spr981_regnum: return regnum2spr (981);
    case sim_ppc_spr982_regnum: return regnum2spr (982);
    case sim_ppc_spr983_regnum: return regnum2spr (983);
    case sim_ppc_spr984_regnum: return regnum2spr (984);
    case sim_ppc_spr985_regnum: return regnum2spr (985);
    case sim_ppc_spr986_regnum: return regnum2spr (986);
    case sim_ppc_spr987_regnum: return regnum2spr (987);
    case sim_ppc_spr988_regnum: return regnum2spr (988);
    case sim_ppc_spr989_regnum: return regnum2spr (989);
    case sim_ppc_spr990_regnum: return regnum2spr (990);
    case sim_ppc_spr991_regnum: return regnum2spr (991);
    case sim_ppc_spr992_regnum: return regnum2spr (992);
    case sim_ppc_spr993_regnum: return regnum2spr (993);
    case sim_ppc_spr994_regnum: return regnum2spr (994);
    case sim_ppc_spr995_regnum: return regnum2spr (995);
    case sim_ppc_spr996_regnum: return regnum2spr (996);
    case sim_ppc_spr997_regnum: return regnum2spr (997);
    case sim_ppc_spr998_regnum: return regnum2spr (998);
    case sim_ppc_spr999_regnum: return regnum2spr (999);
    case sim_ppc_spr1000_regnum: return regnum2spr (1000);
    case sim_ppc_spr1001_regnum: return regnum2spr (1001);
    case sim_ppc_spr1002_regnum: return regnum2spr (1002);
    case sim_ppc_spr1003_regnum: return regnum2spr (1003);
    case sim_ppc_spr1004_regnum: return regnum2spr (1004);
    case sim_ppc_spr1005_regnum: return regnum2spr (1005);
    case sim_ppc_spr1006_regnum: return regnum2spr (1006);
    case sim_ppc_spr1007_regnum: return regnum2spr (1007);
    case sim_ppc_spr1008_regnum: return regnum2spr (1008);
    case sim_ppc_spr1009_regnum: return regnum2spr (1009);
    case sim_ppc_spr1010_regnum: return regnum2spr (1010);
    case sim_ppc_spr1011_regnum: return regnum2spr (1011);
    case sim_ppc_spr1012_regnum: return regnum2spr (1012);
    case sim_ppc_spr1013_regnum: return regnum2spr (1013);
    case sim_ppc_spr1014_regnum: return regnum2spr (1014);
    case sim_ppc_spr1015_regnum: return regnum2spr (1015);
    case sim_ppc_spr1016_regnum: return regnum2spr (1016);
    case sim_ppc_spr1017_regnum: return regnum2spr (1017);
    case sim_ppc_spr1018_regnum: return regnum2spr (1018);
    case sim_ppc_spr1019_regnum: return regnum2spr (1019);
    case sim_ppc_spr1020_regnum: return regnum2spr (1020);
    case sim_ppc_spr1021_regnum: return regnum2spr (1021);
    case sim_ppc_spr1022_regnum: return regnum2spr (1022);
    case sim_ppc_spr1023_regnum: return regnum2spr (1023);
    default:
      /* Not a valid register number at all.  */
      return NULL;
    }
}


int
sim_fetch_register (SIM_DESC sd, int regno, void *buf, int length)
{
  const char *regname = regnum2name (regno);

  if (simulator == NULL || regname == NULL)
    return -1;

  TRACE(trace_gdb, ("sim_fetch_register(regno=%d(%s), buf=%p)\n",
		    regno, regname, buf));
  return psim_read_register(simulator, MAX_NR_PROCESSORS,
			    buf, regname, raw_transfer);
}


int
sim_store_register (SIM_DESC sd, int regno, const void *buf, int length)
{
  const char *regname = regnum2name (regno);

  if (simulator == NULL || regname == NULL)
    return 0;

  TRACE(trace_gdb, ("sim_store_register(regno=%d(%s), buf=%p)\n",
		    regno, regname, buf));
  return psim_write_register(simulator, MAX_NR_PROCESSORS,
			     buf, regname, raw_transfer);
}