• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1// Copyright 2016, VIXL authors
2// All rights reserved.
3//
4// Redistribution and use in source and binary forms, with or without
5// modification, are permitted provided that the following conditions are met:
6//
7//   * Redistributions of source code must retain the above copyright notice,
8//     this list of conditions and the following disclaimer.
9//   * Redistributions in binary form must reproduce the above copyright notice,
10//     this list of conditions and the following disclaimer in the documentation
11//     and/or other materials provided with the distribution.
12//   * Neither the name of ARM Limited nor the names of its contributors may be
13//     used to endorse or promote products derived from this software without
14//     specific prior written permission.
15//
16// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS CONTRIBUTORS "AS IS" AND
17// ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
18// WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
19// DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
20// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
21// DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
22// SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
23// CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
24// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
25// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
26
27// Data type description shared by test case descriptions.
28
29{
30  // List of operand types. They describe what can be passed to the assembler to
31  // encode an instruction.
32  //
33  //   - name: Identifier for the operand. It allows test case descriptions to
34  //           refer to it.
35  //   - type: C++ type used by VIXL to represent this operand.
36  //   - variants: List of variant this operand can take.
37  //   - default: Which variant to use by default.
38  "operands": [
39    {
40      "identifier": "Condition",
41      "type": "Condition",
42      "variants": [
43        "eq",
44        "ne",
45        "cs",
46        "cc",
47        "mi",
48        "pl",
49        "vs",
50        "vc",
51        "hi",
52        "ls",
53        "ge",
54        "lt",
55        "gt",
56        "le",
57        "al"
58      ],
59      "default": "al"
60    },
61    {
62      "identifier": "Always",
63      "type": "Condition",
64      "variants": [
65        "al"
66      ],
67      "default": "al"
68    },
69    {
70      "identifier": "NotAlways",
71      "type": "Condition",
72      "variants": [
73        "eq",
74        "ne",
75        "cs",
76        "cc",
77        "mi",
78        "pl",
79        "vs",
80        "vc",
81        "hi",
82        "ls",
83        "ge",
84        "lt",
85        "gt",
86        "le"
87      ],
88      "default": "eq"
89    },
90    {
91      "identifier": "AllRegisters",
92      "type": "Register",
93      "variants": [
94        "r0",
95        "r1",
96        "r2",
97        "r3",
98        "r4",
99        "r5",
100        "r6",
101        "r7",
102        "r8",
103        "r9",
104        "r10",
105        "r11",
106        "r12",
107        "r13",
108        "r14",
109        "r15"
110      ],
111      "default": "r0"
112    },
113    {
114      "identifier": "AllRegistersButPC",
115      "type": "Register",
116      "variants": [
117        "r0",
118        "r1",
119        "r2",
120        "r3",
121        "r4",
122        "r5",
123        "r6",
124        "r7",
125        "r8",
126        "r9",
127        "r10",
128        "r11",
129        "r12",
130        "r13",
131        "r14"
132      ],
133      "default": "r0"
134    },
135    {
136      "identifier": "LowRegisters",
137      "type": "Register",
138      "variants": [
139        "r0",
140        "r1",
141        "r2",
142        "r3",
143        "r4",
144        "r5",
145        "r6",
146        "r7"
147      ],
148      "default": "r0"
149    },
150    {
151      "identifier": "RegisterPC",
152      "type": "Register",
153      "variants": [
154        "pc"
155      ],
156      "default": "pc"
157    },
158    {
159      "identifier": "RegisterSP",
160      "type": "Register",
161      "variants": [
162        "sp"
163      ],
164      "default": "sp"
165    },
166    {
167      "identifier": "A32ModifiedImmediate",
168      "type": "uint32_t",
169      "variants": [
170        "0x00000000",
171        "0x000000ff",
172        "0xc000003f",
173        "0xf000000f",
174        "0xfc000003",
175        "0xff000000",
176        "0x3fc00000",
177        "0x0ff00000",
178        "0x03fc0000",
179        "0x00ff0000",
180        "0x003fc000",
181        "0x000ff000",
182        "0x0003fc00",
183        "0x0000ff00",
184        "0x00003fc0",
185        "0x00000ff0",
186        "0x000003fc",
187        "0x000000ab",
188        "0xc000002a",
189        "0xb000000a",
190        "0xac000002",
191        "0xab000000",
192        "0x2ac00000",
193        "0x0ab00000",
194        "0x02ac0000",
195        "0x00ab0000",
196        "0x002ac000",
197        "0x000ab000",
198        "0x0002ac00",
199        "0x0000ab00",
200        "0x00002ac0",
201        "0x00000ab0",
202        "0x000002ac"
203      ],
204      "default": "0x000000ab"
205    },
206    {
207      "identifier": "T32ModifiedImmediate",
208      "type": "uint32_t",
209      "variants": [
210        "0x000001fe",
211        "0x000003fc",
212        "0x000007f8",
213        "0x00000ff0",
214        "0x00001fe0",
215        "0x00003fc0",
216        "0x00007f80",
217        "0x0000ff00",
218        "0x0001fe00",
219        "0x0003fc00",
220        "0x0007f800",
221        "0x000ff000",
222        "0x001fe000",
223        "0x003fc000",
224        "0x007f8000",
225        "0x00ff0000",
226        "0x01fe0000",
227        "0x03fc0000",
228        "0x07f80000",
229        "0x0ff00000",
230        "0x1fe00000",
231        "0x3fc00000",
232        "0x7f800000",
233        "0xff000000",
234        "0x000000ff",
235        "0x00ff00ff",
236        "0xff00ff00",
237        "0xffffffff",
238        "0x00000156",
239        "0x000002ac",
240        "0x00000558",
241        "0x00000ab0",
242        "0x00001560",
243        "0x00002ac0",
244        "0x00005580",
245        "0x0000ab00",
246        "0x00015600",
247        "0x0002ac00",
248        "0x00055800",
249        "0x000ab000",
250        "0x00156000",
251        "0x002ac000",
252        "0x00558000",
253        "0x00ab0000",
254        "0x01560000",
255        "0x02ac0000",
256        "0x05580000",
257        "0x0ab00000",
258        "0x15600000",
259        "0x2ac00000",
260        "0x55800000",
261        "0xab000000",
262        "0x000000ab",
263        "0x00ab00ab",
264        "0xab00ab00",
265        "0xabababab"
266      ],
267      "default": "0xabababab"
268    },
269    {
270      "identifier": "Imm16",
271      "type": "uint32_t",
272      "variants": [
273        "0x0000",
274        "0x0001",
275        "0x0002",
276        "0x0020",
277        "0x007d",
278        "0x007e",
279        "0x007f",
280        "0x7ffd",
281        "0x7ffe",
282        "0x7fff",
283        "0x3333",
284        "0x5555",
285        "0xaaaa",
286        "0xcccc",
287        "0x8000",
288        "0x8001",
289        "0x8002",
290        "0x8003",
291        "0xff80",
292        "0xff81",
293        "0xff82",
294        "0xff83",
295        "0xffe0",
296        "0xfffd",
297        "0xfffe",
298        "0xffff"
299      ],
300      "default": "0x0"
301    },
302    {
303      "identifier": "Imm8x4",
304      "type": "uint32_t",
305      "variants": [
306        "0x0",
307        "0x4",
308        "0x8",
309        "0xc",
310        "0x10",
311        "0x14",
312        "0x18",
313        "0x1c",
314        "0x20",
315        "0x24",
316        "0x28",
317        "0x2c",
318        "0x30",
319        "0x34",
320        "0x38",
321        "0x3c",
322        "0x40",
323        "0x44",
324        "0x48",
325        "0x4c",
326        "0x50",
327        "0x54",
328        "0x58",
329        "0x5c",
330        "0x60",
331        "0x64",
332        "0x68",
333        "0x6c",
334        "0x70",
335        "0x74",
336        "0x78",
337        "0x7c",
338        "0x80",
339        "0x84",
340        "0x88",
341        "0x8c",
342        "0x90",
343        "0x94",
344        "0x98",
345        "0x9c",
346        "0xa0",
347        "0xa4",
348        "0xa8",
349        "0xac",
350        "0xb0",
351        "0xb4",
352        "0xb8",
353        "0xbc",
354        "0xc0",
355        "0xc4",
356        "0xc8",
357        "0xcc",
358        "0xd0",
359        "0xd4",
360        "0xd8",
361        "0xdc",
362        "0xe0",
363        "0xe4",
364        "0xe8",
365        "0xec",
366        "0xf0",
367        "0xf4",
368        "0xf8",
369        "0xfc",
370        "0x100",
371        "0x104",
372        "0x108",
373        "0x10c",
374        "0x110",
375        "0x114",
376        "0x118",
377        "0x11c",
378        "0x120",
379        "0x124",
380        "0x128",
381        "0x12c",
382        "0x130",
383        "0x134",
384        "0x138",
385        "0x13c",
386        "0x140",
387        "0x144",
388        "0x148",
389        "0x14c",
390        "0x150",
391        "0x154",
392        "0x158",
393        "0x15c",
394        "0x160",
395        "0x164",
396        "0x168",
397        "0x16c",
398        "0x170",
399        "0x174",
400        "0x178",
401        "0x17c",
402        "0x180",
403        "0x184",
404        "0x188",
405        "0x18c",
406        "0x190",
407        "0x194",
408        "0x198",
409        "0x19c",
410        "0x1a0",
411        "0x1a4",
412        "0x1a8",
413        "0x1ac",
414        "0x1b0",
415        "0x1b4",
416        "0x1b8",
417        "0x1bc",
418        "0x1c0",
419        "0x1c4",
420        "0x1c8",
421        "0x1cc",
422        "0x1d0",
423        "0x1d4",
424        "0x1d8",
425        "0x1dc",
426        "0x1e0",
427        "0x1e4",
428        "0x1e8",
429        "0x1ec",
430        "0x1f0",
431        "0x1f4",
432        "0x1f8",
433        "0x1fc",
434        "0x200",
435        "0x204",
436        "0x208",
437        "0x20c",
438        "0x210",
439        "0x214",
440        "0x218",
441        "0x21c",
442        "0x220",
443        "0x224",
444        "0x228",
445        "0x22c",
446        "0x230",
447        "0x234",
448        "0x238",
449        "0x23c",
450        "0x240",
451        "0x244",
452        "0x248",
453        "0x24c",
454        "0x250",
455        "0x254",
456        "0x258",
457        "0x25c",
458        "0x260",
459        "0x264",
460        "0x268",
461        "0x26c",
462        "0x270",
463        "0x274",
464        "0x278",
465        "0x27c",
466        "0x280",
467        "0x284",
468        "0x288",
469        "0x28c",
470        "0x290",
471        "0x294",
472        "0x298",
473        "0x29c",
474        "0x2a0",
475        "0x2a4",
476        "0x2a8",
477        "0x2ac",
478        "0x2b0",
479        "0x2b4",
480        "0x2b8",
481        "0x2bc",
482        "0x2c0",
483        "0x2c4",
484        "0x2c8",
485        "0x2cc",
486        "0x2d0",
487        "0x2d4",
488        "0x2d8",
489        "0x2dc",
490        "0x2e0",
491        "0x2e4",
492        "0x2e8",
493        "0x2ec",
494        "0x2f0",
495        "0x2f4",
496        "0x2f8",
497        "0x2fc",
498        "0x300",
499        "0x304",
500        "0x308",
501        "0x30c",
502        "0x310",
503        "0x314",
504        "0x318",
505        "0x31c",
506        "0x320",
507        "0x324",
508        "0x328",
509        "0x32c",
510        "0x330",
511        "0x334",
512        "0x338",
513        "0x33c",
514        "0x340",
515        "0x344",
516        "0x348",
517        "0x34c",
518        "0x350",
519        "0x354",
520        "0x358",
521        "0x35c",
522        "0x360",
523        "0x364",
524        "0x368",
525        "0x36c",
526        "0x370",
527        "0x374",
528        "0x378",
529        "0x37c",
530        "0x380",
531        "0x384",
532        "0x388",
533        "0x38c",
534        "0x390",
535        "0x394",
536        "0x398",
537        "0x39c",
538        "0x3a0",
539        "0x3a4",
540        "0x3a8",
541        "0x3ac",
542        "0x3b0",
543        "0x3b4",
544        "0x3b8",
545        "0x3bc",
546        "0x3c0",
547        "0x3c4",
548        "0x3c8",
549        "0x3cc",
550        "0x3d0",
551        "0x3d4",
552        "0x3d8",
553        "0x3dc",
554        "0x3e0",
555        "0x3e4",
556        "0x3e8",
557        "0x3ec",
558        "0x3f0",
559        "0x3f4",
560        "0x3f8",
561        "0x3fc"
562      ],
563      "default": "0x3d4"
564    },
565    {
566      "identifier": "Imm7x4",
567      "type": "uint32_t",
568      "variants": [
569        "0x0",
570        "0x4",
571        "0x8",
572        "0xc",
573        "0x10",
574        "0x14",
575        "0x18",
576        "0x1c",
577        "0x20",
578        "0x24",
579        "0x28",
580        "0x2c",
581        "0x30",
582        "0x34",
583        "0x38",
584        "0x3c",
585        "0x40",
586        "0x44",
587        "0x48",
588        "0x4c",
589        "0x50",
590        "0x54",
591        "0x58",
592        "0x5c",
593        "0x60",
594        "0x64",
595        "0x68",
596        "0x6c",
597        "0x70",
598        "0x74",
599        "0x78",
600        "0x7c",
601        "0x80",
602        "0x84",
603        "0x88",
604        "0x8c",
605        "0x90",
606        "0x94",
607        "0x98",
608        "0x9c",
609        "0xa0",
610        "0xa4",
611        "0xa8",
612        "0xac",
613        "0xb0",
614        "0xb4",
615        "0xb8",
616        "0xbc",
617        "0xc0",
618        "0xc4",
619        "0xc8",
620        "0xcc",
621        "0xd0",
622        "0xd4",
623        "0xd8",
624        "0xdc",
625        "0xe0",
626        "0xe4",
627        "0xe8",
628        "0xec",
629        "0xf0",
630        "0xf4",
631        "0xf8",
632        "0xfc",
633        "0x100",
634        "0x104",
635        "0x108",
636        "0x10c",
637        "0x110",
638        "0x114",
639        "0x118",
640        "0x11c",
641        "0x120",
642        "0x124",
643        "0x128",
644        "0x12c",
645        "0x130",
646        "0x134",
647        "0x138",
648        "0x13c",
649        "0x140",
650        "0x144",
651        "0x148",
652        "0x14c",
653        "0x150",
654        "0x154",
655        "0x158",
656        "0x15c",
657        "0x160",
658        "0x164",
659        "0x168",
660        "0x16c",
661        "0x170",
662        "0x174",
663        "0x178",
664        "0x17c",
665        "0x180",
666        "0x184",
667        "0x188",
668        "0x18c",
669        "0x190",
670        "0x194",
671        "0x198",
672        "0x19c",
673        "0x1a0",
674        "0x1a4",
675        "0x1a8",
676        "0x1ac",
677        "0x1b0",
678        "0x1b4",
679        "0x1b8",
680        "0x1bc",
681        "0x1c0",
682        "0x1c4",
683        "0x1c8",
684        "0x1cc",
685        "0x1d0",
686        "0x1d4",
687        "0x1d8",
688        "0x1dc",
689        "0x1e0",
690        "0x1e4",
691        "0x1e8",
692        "0x1ec",
693        "0x1f0",
694        "0x1f4",
695        "0x1f8",
696        "0x1fc"
697      ],
698      "default": "0x1d4"
699    },
700    {
701      "identifier": "Shift",
702      "type": "ShiftType",
703      "variants": [
704        "LSL",
705        "LSR",
706        "ASR",
707        "ROR"
708      ],
709      "default": "LSL"
710    },
711    {
712      "identifier": "Shift1To31",
713      "type": "ShiftType",
714      "variants": [
715        "LSL",
716        "ROR"
717      ],
718      "default": "LSL"
719    },
720    {
721      "identifier": "Shift1To32",
722      "type": "ShiftType",
723      "variants": [
724        "LSR",
725        "ASR"
726      ],
727      "default": "LSR"
728    },
729    {
730      "identifier": "ShiftROR",
731      "type": "ShiftType",
732      "variants": [
733        "ROR"
734      ],
735      "default": "ROR"
736    },
737    {
738      "identifier": "ShiftAmount1To31",
739      "type": "uint32_t",
740      "variants": [
741        "1",
742        "2",
743        "3",
744        "4",
745        "5",
746        "6",
747        "7",
748        "8",
749        "9",
750        "10",
751        "11",
752        "12",
753        "13",
754        "14",
755        "15",
756        "16",
757        "17",
758        "18",
759        "19",
760        "20",
761        "21",
762        "22",
763        "23",
764        "24",
765        "25",
766        "26",
767        "27",
768        "28",
769        "29",
770        "30",
771        "31"
772      ],
773      "default": "1"
774    },
775    {
776      "identifier": "ShiftAmount1To32",
777      "type": "uint32_t",
778      "variants": [
779        "1",
780        "2",
781        "3",
782        "4",
783        "5",
784        "6",
785        "7",
786        "8",
787        "9",
788        "10",
789        "11",
790        "12",
791        "13",
792        "14",
793        "15",
794        "16",
795        "17",
796        "18",
797        "19",
798        "20",
799        "21",
800        "22",
801        "23",
802        "24",
803        "25",
804        "26",
805        "27",
806        "28",
807        "29",
808        "30",
809        "31",
810        "32"
811      ],
812      "default": "1"
813    },
814    // Some instructions have a rotation amount restricted to "0",
815    // "8", "16" and "24".
816    {
817      "identifier": "ShiftRotationAmountX8",
818      "type": "uint32_t",
819      "variants": [
820        "0",
821        "8",
822        "16",
823        "24"
824      ],
825      "default": "0"
826    },
827    {
828      "identifier": "Sign",
829      "type": "Sign",
830      "variants": [
831        "plus",
832        "minus"
833      ],
834      "default": "plus"
835    },
836    {
837      "identifier": "OffsetLowerThan256",
838      "type": "int32_t",
839      "variants": [
840        "0",
841        "1",
842        "2",
843        "3",
844        "4",
845        "5",
846        "6",
847        "7",
848        "8",
849        "9",
850        "10",
851        "11",
852        "12",
853        "13",
854        "14",
855        "15",
856        "16",
857        "17",
858        "18",
859        "19",
860        "20",
861        "21",
862        "22",
863        "23",
864        "24",
865        "25",
866        "26",
867        "27",
868        "28",
869        "29",
870        "30",
871        "31",
872        "32",
873        "33",
874        "34",
875        "35",
876        "36",
877        "37",
878        "38",
879        "39",
880        "40",
881        "41",
882        "42",
883        "43",
884        "44",
885        "45",
886        "46",
887        "47",
888        "48",
889        "49",
890        "50",
891        "51",
892        "52",
893        "53",
894        "54",
895        "55",
896        "56",
897        "57",
898        "58",
899        "59",
900        "60",
901        "61",
902        "62",
903        "63",
904        "64",
905        "65",
906        "66",
907        "67",
908        "68",
909        "69",
910        "70",
911        "71",
912        "72",
913        "73",
914        "74",
915        "75",
916        "76",
917        "77",
918        "78",
919        "79",
920        "80",
921        "81",
922        "82",
923        "83",
924        "84",
925        "85",
926        "86",
927        "87",
928        "88",
929        "89",
930        "90",
931        "91",
932        "92",
933        "93",
934        "94",
935        "95",
936        "96",
937        "97",
938        "98",
939        "99",
940        "100",
941        "101",
942        "102",
943        "103",
944        "104",
945        "105",
946        "106",
947        "107",
948        "108",
949        "109",
950        "110",
951        "111",
952        "112",
953        "113",
954        "114",
955        "115",
956        "116",
957        "117",
958        "118",
959        "119",
960        "120",
961        "121",
962        "122",
963        "123",
964        "124",
965        "125",
966        "126",
967        "127",
968        "128",
969        "129",
970        "130",
971        "131",
972        "132",
973        "133",
974        "134",
975        "135",
976        "136",
977        "137",
978        "138",
979        "139",
980        "140",
981        "141",
982        "142",
983        "143",
984        "144",
985        "145",
986        "146",
987        "147",
988        "148",
989        "149",
990        "150",
991        "151",
992        "152",
993        "153",
994        "154",
995        "155",
996        "156",
997        "157",
998        "158",
999        "159",
1000        "160",
1001        "161",
1002        "162",
1003        "163",
1004        "164",
1005        "165",
1006        "166",
1007        "167",
1008        "168",
1009        "169",
1010        "170",
1011        "171",
1012        "172",
1013        "173",
1014        "174",
1015        "175",
1016        "176",
1017        "177",
1018        "178",
1019        "179",
1020        "180",
1021        "181",
1022        "182",
1023        "183",
1024        "184",
1025        "185",
1026        "186",
1027        "187",
1028        "188",
1029        "189",
1030        "190",
1031        "191",
1032        "192",
1033        "193",
1034        "194",
1035        "195",
1036        "196",
1037        "197",
1038        "198",
1039        "199",
1040        "200",
1041        "201",
1042        "202",
1043        "203",
1044        "204",
1045        "205",
1046        "206",
1047        "207",
1048        "208",
1049        "209",
1050        "210",
1051        "211",
1052        "212",
1053        "213",
1054        "214",
1055        "215",
1056        "216",
1057        "217",
1058        "218",
1059        "219",
1060        "220",
1061        "221",
1062        "222",
1063        "223",
1064        "224",
1065        "225",
1066        "226",
1067        "227",
1068        "228",
1069        "229",
1070        "230",
1071        "231",
1072        "232",
1073        "233",
1074        "234",
1075        "235",
1076        "236",
1077        "237",
1078        "238",
1079        "239",
1080        "240",
1081        "241",
1082        "242",
1083        "243",
1084        "244",
1085        "245",
1086        "246",
1087        "247",
1088        "248",
1089        "249",
1090        "250",
1091        "251",
1092        "252",
1093        "253",
1094        "254",
1095        "255"
1096      ],
1097      "default": "0"
1098    },
1099    {
1100      "identifier": "OffsetLowerThan4096",
1101      "type": "int32_t",
1102      // These variants are a random sample of 500 integers out of all integers
1103      // from 1 to 4094 (included). We've added 0 and 4095 explicitely.
1104      "variants": [
1105        "0",
1106        "4095",
1107        "2",
1108        "4",
1109        "19",
1110        "22",
1111        "47",
1112        "48",
1113        "53",
1114        "55",
1115        "57",
1116        "70",
1117        "72",
1118        "83",
1119        "98",
1120        "106",
1121        "132",
1122        "136",
1123        "138",
1124        "180",
1125        "188",
1126        "192",
1127        "198",
1128        "199",
1129        "200",
1130        "210",
1131        "213",
1132        "216",
1133        "227",
1134        "233",
1135        "251",
1136        "263",
1137        "264",
1138        "270",
1139        "282",
1140        "306",
1141        "322",
1142        "342",
1143        "348",
1144        "358",
1145        "362",
1146        "365",
1147        "371",
1148        "386",
1149        "398",
1150        "421",
1151        "429",
1152        "441",
1153        "459",
1154        "462",
1155        "470",
1156        "478",
1157        "479",
1158        "481",
1159        "484",
1160        "490",
1161        "496",
1162        "510",
1163        "513",
1164        "517",
1165        "523",
1166        "524",
1167        "525",
1168        "542",
1169        "547",
1170        "565",
1171        "580",
1172        "582",
1173        "595",
1174        "601",
1175        "606",
1176        "612",
1177        "618",
1178        "624",
1179        "662",
1180        "663",
1181        "669",
1182        "670",
1183        "672",
1184        "674",
1185        "678",
1186        "679",
1187        "685",
1188        "688",
1189        "689",
1190        "704",
1191        "712",
1192        "719",
1193        "732",
1194        "766",
1195        "770",
1196        "774",
1197        "778",
1198        "783",
1199        "791",
1200        "794",
1201        "796",
1202        "797",
1203        "806",
1204        "811",
1205        "828",
1206        "831",
1207        "837",
1208        "844",
1209        "850",
1210        "871",
1211        "872",
1212        "875",
1213        "893",
1214        "915",
1215        "932",
1216        "955",
1217        "958",
1218        "960",
1219        "964",
1220        "969",
1221        "970",
1222        "977",
1223        "988",
1224        "997",
1225        "998",
1226        "999",
1227        "1009",
1228        "1017",
1229        "1027",
1230        "1035",
1231        "1043",
1232        "1050",
1233        "1066",
1234        "1079",
1235        "1097",
1236        "1099",
1237        "1116",
1238        "1135",
1239        "1159",
1240        "1168",
1241        "1171",
1242        "1175",
1243        "1186",
1244        "1198",
1245        "1231",
1246        "1234",
1247        "1241",
1248        "1246",
1249        "1261",
1250        "1266",
1251        "1274",
1252        "1295",
1253        "1309",
1254        "1323",
1255        "1348",
1256        "1357",
1257        "1359",
1258        "1372",
1259        "1374",
1260        "1377",
1261        "1389",
1262        "1390",
1263        "1394",
1264        "1399",
1265        "1407",
1266        "1428",
1267        "1437",
1268        "1438",
1269        "1445",
1270        "1455",
1271        "1458",
1272        "1459",
1273        "1472",
1274        "1475",
1275        "1479",
1276        "1485",
1277        "1498",
1278        "1505",
1279        "1506",
1280        "1526",
1281        "1527",
1282        "1536",
1283        "1537",
1284        "1542",
1285        "1551",
1286        "1556",
1287        "1567",
1288        "1585",
1289        "1601",
1290        "1610",
1291        "1635",
1292        "1642",
1293        "1651",
1294        "1652",
1295        "1655",
1296        "1660",
1297        "1665",
1298        "1666",
1299        "1677",
1300        "1687",
1301        "1695",
1302        "1699",
1303        "1712",
1304        "1732",
1305        "1736",
1306        "1740",
1307        "1750",
1308        "1759",
1309        "1769",
1310        "1804",
1311        "1808",
1312        "1823",
1313        "1824",
1314        "1835",
1315        "1845",
1316        "1848",
1317        "1859",
1318        "1860",
1319        "1867",
1320        "1870",
1321        "1872",
1322        "1887",
1323        "1892",
1324        "1896",
1325        "1899",
1326        "1916",
1327        "1922",
1328        "1924",
1329        "1934",
1330        "1948",
1331        "1961",
1332        "1967",
1333        "1975",
1334        "1981",
1335        "1991",
1336        "1999",
1337        "2011",
1338        "2012",
1339        "2016",
1340        "2021",
1341        "2023",
1342        "2025",
1343        "2026",
1344        "2036",
1345        "2038",
1346        "2040",
1347        "2044",
1348        "2046",
1349        "2047",
1350        "2052",
1351        "2069",
1352        "2072",
1353        "2086",
1354        "2091",
1355        "2098",
1356        "2119",
1357        "2124",
1358        "2137",
1359        "2139",
1360        "2175",
1361        "2180",
1362        "2183",
1363        "2202",
1364        "2208",
1365        "2217",
1366        "2224",
1367        "2233",
1368        "2240",
1369        "2245",
1370        "2247",
1371        "2254",
1372        "2281",
1373        "2290",
1374        "2311",
1375        "2314",
1376        "2323",
1377        "2326",
1378        "2338",
1379        "2345",
1380        "2358",
1381        "2359",
1382        "2365",
1383        "2366",
1384        "2374",
1385        "2381",
1386        "2395",
1387        "2402",
1388        "2403",
1389        "2427",
1390        "2442",
1391        "2451",
1392        "2453",
1393        "2454",
1394        "2462",
1395        "2464",
1396        "2475",
1397        "2483",
1398        "2490",
1399        "2507",
1400        "2519",
1401        "2523",
1402        "2532",
1403        "2535",
1404        "2541",
1405        "2545",
1406        "2546",
1407        "2559",
1408        "2582",
1409        "2588",
1410        "2590",
1411        "2591",
1412        "2617",
1413        "2619",
1414        "2627",
1415        "2628",
1416        "2642",
1417        "2650",
1418        "2651",
1419        "2662",
1420        "2665",
1421        "2669",
1422        "2677",
1423        "2689",
1424        "2690",
1425        "2695",
1426        "2701",
1427        "2703",
1428        "2710",
1429        "2718",
1430        "2721",
1431        "2726",
1432        "2728",
1433        "2749",
1434        "2768",
1435        "2775",
1436        "2792",
1437        "2794",
1438        "2796",
1439        "2797",
1440        "2799",
1441        "2800",
1442        "2810",
1443        "2813",
1444        "2821",
1445        "2839",
1446        "2849",
1447        "2864",
1448        "2866",
1449        "2892",
1450        "2901",
1451        "2906",
1452        "2929",
1453        "2933",
1454        "2944",
1455        "2945",
1456        "2946",
1457        "2948",
1458        "2963",
1459        "2976",
1460        "2978",
1461        "2982",
1462        "2984",
1463        "2994",
1464        "2999",
1465        "3002",
1466        "3003",
1467        "3007",
1468        "3008",
1469        "3015",
1470        "3028",
1471        "3034",
1472        "3039",
1473        "3041",
1474        "3057",
1475        "3063",
1476        "3069",
1477        "3071",
1478        "3072",
1479        "3076",
1480        "3078",
1481        "3079",
1482        "3082",
1483        "3088",
1484        "3094",
1485        "3099",
1486        "3105",
1487        "3109",
1488        "3117",
1489        "3136",
1490        "3138",
1491        "3139",
1492        "3142",
1493        "3157",
1494        "3162",
1495        "3170",
1496        "3194",
1497        "3195",
1498        "3209",
1499        "3221",
1500        "3239",
1501        "3254",
1502        "3256",
1503        "3266",
1504        "3282",
1505        "3287",
1506        "3308",
1507        "3313",
1508        "3325",
1509        "3343",
1510        "3344",
1511        "3366",
1512        "3384",
1513        "3391",
1514        "3397",
1515        "3399",
1516        "3405",
1517        "3413",
1518        "3417",
1519        "3425",
1520        "3438",
1521        "3439",
1522        "3443",
1523        "3449",
1524        "3450",
1525        "3472",
1526        "3481",
1527        "3487",
1528        "3491",
1529        "3504",
1530        "3517",
1531        "3522",
1532        "3529",
1533        "3541",
1534        "3544",
1535        "3548",
1536        "3564",
1537        "3566",
1538        "3570",
1539        "3572",
1540        "3583",
1541        "3585",
1542        "3597",
1543        "3603",
1544        "3607",
1545        "3608",
1546        "3610",
1547        "3625",
1548        "3626",
1549        "3633",
1550        "3636",
1551        "3638",
1552        "3652",
1553        "3659",
1554        "3660",
1555        "3662",
1556        "3663",
1557        "3685",
1558        "3688",
1559        "3696",
1560        "3702",
1561        "3714",
1562        "3717",
1563        "3728",
1564        "3739",
1565        "3743",
1566        "3752",
1567        "3765",
1568        "3771",
1569        "3772",
1570        "3774",
1571        "3787",
1572        "3802",
1573        "3811",
1574        "3821",
1575        "3856",
1576        "3865",
1577        "3867",
1578        "3870",
1579        "3871",
1580        "3880",
1581        "3899",
1582        "3907",
1583        "3914",
1584        "3918",
1585        "3921",
1586        "3949",
1587        "3952",
1588        "3963",
1589        "3975",
1590        "3978",
1591        "3986",
1592        "3989",
1593        "3994",
1594        "4018",
1595        "4037",
1596        "4046",
1597        "4056",
1598        "4058",
1599        "4065",
1600        "4076",
1601        "4079",
1602        "4082",
1603        "4090",
1604        "4091",
1605        "4092",
1606        "4093"
1607      ],
1608      "default": "0"
1609    },
1610    {
1611      "identifier": "AddressingMode",
1612      "type": "AddrMode",
1613      "variants": [
1614        "Offset",
1615        "PreIndex",
1616        "PostIndex"
1617      ],
1618      "default": "Offset"
1619    },
1620    {
1621      "identifier": "DataTypeFloat",
1622      "type": "DataType",
1623      "variants": [
1624        "F16",
1625        "F32",
1626        "F64"
1627      ],
1628      "default": "F32"
1629    },
1630    {
1631      "identifier": "DRegister",
1632      "type": "DRegister",
1633      "variants": [
1634        "d0",
1635        "d1",
1636        "d2",
1637        "d3",
1638        "d4",
1639        "d5",
1640        "d6",
1641        "d7",
1642        "d8",
1643        "d9",
1644        "d10",
1645        "d11",
1646        "d12",
1647        "d13",
1648        "d14",
1649        "d15",
1650        "d16",
1651        "d17",
1652        "d18",
1653        "d19",
1654        "d20",
1655        "d21",
1656        "d22",
1657        "d23",
1658        "d24",
1659        "d25",
1660        "d26",
1661        "d27",
1662        "d28",
1663        "d29",
1664        "d30",
1665        "d31"
1666      ],
1667      "default": "d0"
1668    }
1669  ],
1670  // List of input types. They describe what can be fed to an instruction at
1671  // runtime.
1672  //
1673  //   - name: Identifer for the input. It allows test case descriptions to refer
1674  //           to it.
1675  //   - type: Python type associated with this input, implemented as a subclass
1676  //           of `test_generator.data_types.Inputs`. There should be a Python
1677  //           class for every input type.
1678  //   - values: List of possible values.
1679  //   - default: Value to use by default.
1680  "inputs": [
1681    {
1682      "identifier": "NZCV",
1683      "type": "NZCV",
1684      "values": [
1685        "NFlag",
1686        "ZFlag",
1687        "CFlag",
1688        "VFlag",
1689        "NZFlag",
1690        "NCFlag",
1691        "NVFlag",
1692        "ZCFlag",
1693        "ZVFlag",
1694        "CVFlag",
1695        "NZCFlag",
1696        "NZVFlag",
1697        "NCVFlag",
1698        "ZCVFlag",
1699        "NZCVFlag"
1700      ],
1701      "default": "NoFlag"
1702    },
1703    // TODO: Consider having a seperate list for inputs for which we are only
1704    // interested in recording the value after the instruction has executed.
1705    // This applies to `Q` and `GE`.
1706    {
1707      "identifier": "Q",
1708      "type": "Q",
1709      "values": [
1710        "NoFlag",
1711        "QFlag"
1712      ],
1713      "default": "NoFlag"
1714    },
1715    {
1716      "identifier": "GE",
1717      "type": "GE",
1718      "values": [
1719        "NoFlag",
1720        "GE01Flag",
1721        "GE02Flag",
1722        "GE03Flag",
1723        "GE12Flag",
1724        "GE13Flag",
1725        "GE23Flag",
1726        "GE012Flag",
1727        "GE013Flag",
1728        "GE023Flag",
1729        "GE123Flag",
1730        "GE0123Flag"
1731      ],
1732      "default": "NoFlag"
1733    },
1734    {
1735      "identifier": "FPSCR",
1736      "type": "FPSCR",
1737      "values": [
1738        "0x0"
1739      ],
1740      "default": "0x0"
1741    },
1742    {
1743      "identifier": "Register",
1744      "type": "Register",
1745      "values": [
1746        "0x00000000",
1747        "0x00000001",
1748        "0x00000002",
1749        "0x00000020",
1750        "0x0000007d",
1751        "0x0000007e",
1752        "0x0000007f",
1753        "0x00007ffd",
1754        "0x00007ffe",
1755        "0x00007fff",
1756        "0x33333333",
1757        "0x55555555",
1758        "0x7ffffffd",
1759        "0x7ffffffe",
1760        "0x7fffffff",
1761        "0x80000000",
1762        "0x80000001",
1763        "0xaaaaaaaa",
1764        "0xcccccccc",
1765        "0xffff8000",
1766        "0xffff8001",
1767        "0xffff8002",
1768        "0xffff8003",
1769        "0xffffff80",
1770        "0xffffff81",
1771        "0xffffff82",
1772        "0xffffff83",
1773        "0xffffffe0",
1774        "0xfffffffd",
1775        "0xfffffffe",
1776        "0xffffffff"
1777      ],
1778      "default": "0xabababab"
1779    },
1780    {
1781      "identifier": "RegisterOffsetLowerThan4096",
1782      "type": "Register",
1783      // These values are a random sample of 500 integers out of all integers
1784      // from 1 to 4094 (included). We've added 0 and 4095 explicitely.
1785      "values": [
1786        "0",
1787        "4095",
1788        "2",
1789        "4",
1790        "19",
1791        "22",
1792        "47",
1793        "48",
1794        "53",
1795        "55",
1796        "57",
1797        "70",
1798        "72",
1799        "83",
1800        "98",
1801        "106",
1802        "132",
1803        "136",
1804        "138",
1805        "180",
1806        "188",
1807        "192",
1808        "198",
1809        "199",
1810        "200",
1811        "210",
1812        "213",
1813        "216",
1814        "227",
1815        "233",
1816        "251",
1817        "263",
1818        "264",
1819        "270",
1820        "282",
1821        "306",
1822        "322",
1823        "342",
1824        "348",
1825        "358",
1826        "362",
1827        "365",
1828        "371",
1829        "386",
1830        "398",
1831        "421",
1832        "429",
1833        "441",
1834        "459",
1835        "462",
1836        "470",
1837        "478",
1838        "479",
1839        "481",
1840        "484",
1841        "490",
1842        "496",
1843        "510",
1844        "513",
1845        "517",
1846        "523",
1847        "524",
1848        "525",
1849        "542",
1850        "547",
1851        "565",
1852        "580",
1853        "582",
1854        "595",
1855        "601",
1856        "606",
1857        "612",
1858        "618",
1859        "624",
1860        "662",
1861        "663",
1862        "669",
1863        "670",
1864        "672",
1865        "674",
1866        "678",
1867        "679",
1868        "685",
1869        "688",
1870        "689",
1871        "704",
1872        "712",
1873        "719",
1874        "732",
1875        "766",
1876        "770",
1877        "774",
1878        "778",
1879        "783",
1880        "791",
1881        "794",
1882        "796",
1883        "797",
1884        "806",
1885        "811",
1886        "828",
1887        "831",
1888        "837",
1889        "844",
1890        "850",
1891        "871",
1892        "872",
1893        "875",
1894        "893",
1895        "915",
1896        "932",
1897        "955",
1898        "958",
1899        "960",
1900        "964",
1901        "969",
1902        "970",
1903        "977",
1904        "988",
1905        "997",
1906        "998",
1907        "999",
1908        "1009",
1909        "1017",
1910        "1027",
1911        "1035",
1912        "1043",
1913        "1050",
1914        "1066",
1915        "1079",
1916        "1097",
1917        "1099",
1918        "1116",
1919        "1135",
1920        "1159",
1921        "1168",
1922        "1171",
1923        "1175",
1924        "1186",
1925        "1198",
1926        "1231",
1927        "1234",
1928        "1241",
1929        "1246",
1930        "1261",
1931        "1266",
1932        "1274",
1933        "1295",
1934        "1309",
1935        "1323",
1936        "1348",
1937        "1357",
1938        "1359",
1939        "1372",
1940        "1374",
1941        "1377",
1942        "1389",
1943        "1390",
1944        "1394",
1945        "1399",
1946        "1407",
1947        "1428",
1948        "1437",
1949        "1438",
1950        "1445",
1951        "1455",
1952        "1458",
1953        "1459",
1954        "1472",
1955        "1475",
1956        "1479",
1957        "1485",
1958        "1498",
1959        "1505",
1960        "1506",
1961        "1526",
1962        "1527",
1963        "1536",
1964        "1537",
1965        "1542",
1966        "1551",
1967        "1556",
1968        "1567",
1969        "1585",
1970        "1601",
1971        "1610",
1972        "1635",
1973        "1642",
1974        "1651",
1975        "1652",
1976        "1655",
1977        "1660",
1978        "1665",
1979        "1666",
1980        "1677",
1981        "1687",
1982        "1695",
1983        "1699",
1984        "1712",
1985        "1732",
1986        "1736",
1987        "1740",
1988        "1750",
1989        "1759",
1990        "1769",
1991        "1804",
1992        "1808",
1993        "1823",
1994        "1824",
1995        "1835",
1996        "1845",
1997        "1848",
1998        "1859",
1999        "1860",
2000        "1867",
2001        "1870",
2002        "1872",
2003        "1887",
2004        "1892",
2005        "1896",
2006        "1899",
2007        "1916",
2008        "1922",
2009        "1924",
2010        "1934",
2011        "1948",
2012        "1961",
2013        "1967",
2014        "1975",
2015        "1981",
2016        "1991",
2017        "1999",
2018        "2011",
2019        "2012",
2020        "2016",
2021        "2021",
2022        "2023",
2023        "2025",
2024        "2026",
2025        "2036",
2026        "2038",
2027        "2040",
2028        "2044",
2029        "2046",
2030        "2047",
2031        "2052",
2032        "2069",
2033        "2072",
2034        "2086",
2035        "2091",
2036        "2098",
2037        "2119",
2038        "2124",
2039        "2137",
2040        "2139",
2041        "2175",
2042        "2180",
2043        "2183",
2044        "2202",
2045        "2208",
2046        "2217",
2047        "2224",
2048        "2233",
2049        "2240",
2050        "2245",
2051        "2247",
2052        "2254",
2053        "2281",
2054        "2290",
2055        "2311",
2056        "2314",
2057        "2323",
2058        "2326",
2059        "2338",
2060        "2345",
2061        "2358",
2062        "2359",
2063        "2365",
2064        "2366",
2065        "2374",
2066        "2381",
2067        "2395",
2068        "2402",
2069        "2403",
2070        "2427",
2071        "2442",
2072        "2451",
2073        "2453",
2074        "2454",
2075        "2462",
2076        "2464",
2077        "2475",
2078        "2483",
2079        "2490",
2080        "2507",
2081        "2519",
2082        "2523",
2083        "2532",
2084        "2535",
2085        "2541",
2086        "2545",
2087        "2546",
2088        "2559",
2089        "2582",
2090        "2588",
2091        "2590",
2092        "2591",
2093        "2617",
2094        "2619",
2095        "2627",
2096        "2628",
2097        "2642",
2098        "2650",
2099        "2651",
2100        "2662",
2101        "2665",
2102        "2669",
2103        "2677",
2104        "2689",
2105        "2690",
2106        "2695",
2107        "2701",
2108        "2703",
2109        "2710",
2110        "2718",
2111        "2721",
2112        "2726",
2113        "2728",
2114        "2749",
2115        "2768",
2116        "2775",
2117        "2792",
2118        "2794",
2119        "2796",
2120        "2797",
2121        "2799",
2122        "2800",
2123        "2810",
2124        "2813",
2125        "2821",
2126        "2839",
2127        "2849",
2128        "2864",
2129        "2866",
2130        "2892",
2131        "2901",
2132        "2906",
2133        "2929",
2134        "2933",
2135        "2944",
2136        "2945",
2137        "2946",
2138        "2948",
2139        "2963",
2140        "2976",
2141        "2978",
2142        "2982",
2143        "2984",
2144        "2994",
2145        "2999",
2146        "3002",
2147        "3003",
2148        "3007",
2149        "3008",
2150        "3015",
2151        "3028",
2152        "3034",
2153        "3039",
2154        "3041",
2155        "3057",
2156        "3063",
2157        "3069",
2158        "3071",
2159        "3072",
2160        "3076",
2161        "3078",
2162        "3079",
2163        "3082",
2164        "3088",
2165        "3094",
2166        "3099",
2167        "3105",
2168        "3109",
2169        "3117",
2170        "3136",
2171        "3138",
2172        "3139",
2173        "3142",
2174        "3157",
2175        "3162",
2176        "3170",
2177        "3194",
2178        "3195",
2179        "3209",
2180        "3221",
2181        "3239",
2182        "3254",
2183        "3256",
2184        "3266",
2185        "3282",
2186        "3287",
2187        "3308",
2188        "3313",
2189        "3325",
2190        "3343",
2191        "3344",
2192        "3366",
2193        "3384",
2194        "3391",
2195        "3397",
2196        "3399",
2197        "3405",
2198        "3413",
2199        "3417",
2200        "3425",
2201        "3438",
2202        "3439",
2203        "3443",
2204        "3449",
2205        "3450",
2206        "3472",
2207        "3481",
2208        "3487",
2209        "3491",
2210        "3504",
2211        "3517",
2212        "3522",
2213        "3529",
2214        "3541",
2215        "3544",
2216        "3548",
2217        "3564",
2218        "3566",
2219        "3570",
2220        "3572",
2221        "3583",
2222        "3585",
2223        "3597",
2224        "3603",
2225        "3607",
2226        "3608",
2227        "3610",
2228        "3625",
2229        "3626",
2230        "3633",
2231        "3636",
2232        "3638",
2233        "3652",
2234        "3659",
2235        "3660",
2236        "3662",
2237        "3663",
2238        "3685",
2239        "3688",
2240        "3696",
2241        "3702",
2242        "3714",
2243        "3717",
2244        "3728",
2245        "3739",
2246        "3743",
2247        "3752",
2248        "3765",
2249        "3771",
2250        "3772",
2251        "3774",
2252        "3787",
2253        "3802",
2254        "3811",
2255        "3821",
2256        "3856",
2257        "3865",
2258        "3867",
2259        "3870",
2260        "3871",
2261        "3880",
2262        "3899",
2263        "3907",
2264        "3914",
2265        "3918",
2266        "3921",
2267        "3949",
2268        "3952",
2269        "3963",
2270        "3975",
2271        "3978",
2272        "3986",
2273        "3989",
2274        "3994",
2275        "4018",
2276        "4037",
2277        "4046",
2278        "4056",
2279        "4058",
2280        "4065",
2281        "4076",
2282        "4079",
2283        "4082",
2284        "4090",
2285        "4091",
2286        "4092",
2287        "4093"
2288      ],
2289      "default": "0"
2290    },
2291    {
2292      "identifier": "RegisterShift",
2293      "type": "Register",
2294      "values": [
2295        "0",
2296        "1",
2297        "2",
2298        "3",
2299        "4",
2300        "5",
2301        "6",
2302        "7",
2303        "8",
2304        "9",
2305        "10",
2306        "11",
2307        "12",
2308        "13",
2309        "14",
2310        "15",
2311        "16",
2312        "17",
2313        "18",
2314        "19",
2315        "20",
2316        "21",
2317        "22",
2318        "23",
2319        "24",
2320        "25",
2321        "26",
2322        "27",
2323        "28",
2324        "29",
2325        "30",
2326        "31",
2327        "32"
2328      ],
2329      "default": "0"
2330    },
2331    {
2332      "identifier": "DRegisterF64",
2333      "type": "DRegisterF64",
2334      "values": [
2335        // Simple values.
2336        "0x0000000000000000",   // 0.0
2337        "0x0010000000000000",   // The smallest normal value.
2338        "0x3fdfffffffffffff",   // The value just below 0.5.
2339        "0x3fe0000000000000",   // 0.5
2340        "0x3fe0000000000001",   // The value just above 0.5.
2341        "0x3fefffffffffffff",   // The value just below 1.0.
2342        "0x3ff0000000000000",   // 1.0
2343        "0x3ff0000000000001",   // The value just above 1.0.
2344        "0x3ff8000000000000",   // 1.5
2345        "0x4024000000000000",   // 10
2346        "0x7fefffffffffffff",   // The largest finite value.
2347
2348        // Infinity.
2349        "0x7ff0000000000000",
2350
2351        // NaNs.
2352        //  - Quiet NaNs
2353        "0x7ff923456789abcd",
2354        "0x7ff8000000000000",
2355        //  - Signalling NaNs
2356        "0x7ff123456789abcd",
2357        "0x7ff0000000000000",
2358
2359        // Subnormals.
2360        //  - A recognisable bit pattern.
2361        "0x000123456789abcd",
2362        //  - The largest subnormal value.
2363        "0x000fffffffffffff",
2364        //  - The smallest subnormal value.
2365        "0x0000000000000001",
2366
2367        // The same values again, but negated.
2368        "0x8000000000000000",
2369        "0x8010000000000000",
2370        "0xbfdfffffffffffff",
2371        "0xbfe0000000000000",
2372        "0xbfe0000000000001",
2373        "0xbfefffffffffffff",
2374        "0xbff0000000000000",
2375        "0xbff0000000000001",
2376        "0xbff8000000000000",
2377        "0xc024000000000000",
2378        "0xffefffffffffffff",
2379        "0xfff0000000000000",
2380        "0xfff923456789abcd",
2381        "0xfff8000000000000",
2382        "0xfff123456789abcd",
2383        "0xfff0000000000000",
2384        "0x800123456789abcd",
2385        "0x800fffffffffffff",
2386        "0x8000000000000001"
2387      ],
2388      "default": "0x0000000000000000"
2389    },
2390    {
2391      "identifier": "MemOperand",
2392      "type": "MemOperand",
2393      // MemOperand inputs are represented by an offset and a 32 bit word placed
2394      // in memory.
2395      // The word will be placed into a scratch buffer and we will compute the
2396      // address of the base register according to what the `MemOperand` does.
2397      // The offset is used to record the value of the base register.
2398      "values": [
2399        "{0, 0x77777777}",
2400        "{0, 0x55555555}",
2401        "{0, 0x0badbeef}",
2402        "{0, 0x0cabba9e}"
2403      ],
2404      "default": "{0, 0x77777777}"
2405    }
2406  ]
2407}
2408