@@ -16,58 +16,60 @@ const (
1616 SprnSrr1 = 0x01B // msr for rfid (SPRN_SRR1)
1717)
1818
19- // nolint:dupl
2019func (insnset * InsnSet ) initPseudo () {
21- insnset .Insns = append (insnset .Insns , & Insn {
22- Name : "PSEUDO_hypercall" ,
23- Priv : true ,
24- Pseudo : true ,
25- generator : func (cfg * iset.Config , r * rand.Rand ) []byte {
26- gen := makeGen (insnset , cfg , r )
27- gen .sc (1 )
28- return gen .text
20+ type pseudoInsn struct {
21+ Name string
22+ generator func (cfg * iset.Config , r * rand.Rand ) []byte
23+ }
24+ for _ , insn := range []pseudoInsn {
25+ {
26+ Name : "PSEUDO_hypercall" ,
27+ generator : func (cfg * iset.Config , r * rand.Rand ) []byte {
28+ gen := makeGen (insnset , cfg , r )
29+ gen .sc (1 )
30+ return gen .text
31+ },
2932 },
30- })
31- insnset .Insns = append (insnset .Insns , & Insn {
32- Name : "PSEUDO_syscall" ,
33- Priv : true ,
34- Pseudo : true ,
35- generator : func (cfg * iset.Config , r * rand.Rand ) []byte {
36- gen := makeGen (insnset , cfg , r )
37- gen .sc (0 )
38- return gen .text
33+ {
34+ Name : "PSEUDO_syscall" ,
35+ generator : func (cfg * iset.Config , r * rand.Rand ) []byte {
36+ gen := makeGen (insnset , cfg , r )
37+ gen .sc (0 )
38+ return gen .text
39+ },
3940 },
40- })
41- insnset .Insns = append (insnset .Insns , & Insn {
42- Name : "PSEUDO_ultracall" ,
43- Priv : true ,
44- Pseudo : true ,
45- generator : func (cfg * iset.Config , r * rand.Rand ) []byte {
46- gen := makeGen (insnset , cfg , r )
47- gen .sc (2 )
48- return gen .text
41+ {
42+ Name : "PSEUDO_ultracall" ,
43+ generator : func (cfg * iset.Config , r * rand.Rand ) []byte {
44+ gen := makeGen (insnset , cfg , r )
45+ gen .sc (2 )
46+ return gen .text
47+ },
4948 },
50- })
51- insnset .Insns = append (insnset .Insns , & Insn {
52- Name : "PSEUDO_rtas" ,
53- Priv : true ,
54- Pseudo : true ,
55- generator : func (cfg * iset.Config , r * rand.Rand ) []byte {
56- gen := makeGen (insnset , cfg , r )
57- gen .rtas ()
58- return gen .text
49+ {
50+ Name : "PSEUDO_rtas" ,
51+ generator : func (cfg * iset.Config , r * rand.Rand ) []byte {
52+ gen := makeGen (insnset , cfg , r )
53+ gen .rtas ()
54+ return gen .text
55+ },
5956 },
60- })
61- insnset .Insns = append (insnset .Insns , & Insn {
62- Name : "PSEUDO_rfid" ,
63- Priv : true ,
64- Pseudo : true ,
65- generator : func (cfg * iset.Config , r * rand.Rand ) []byte {
66- gen := makeGen (insnset , cfg , r )
67- gen .rfid ()
68- return gen .text
57+ {
58+ Name : "PSEUDO_rfid" ,
59+ generator : func (cfg * iset.Config , r * rand.Rand ) []byte {
60+ gen := makeGen (insnset , cfg , r )
61+ gen .rfid ()
62+ return gen .text
63+ },
6964 },
70- })
65+ } {
66+ insnset .Insns = append (insnset .Insns , & Insn {
67+ Name : insn .Name ,
68+ Priv : true ,
69+ Pseudo : true ,
70+ generator : insn .generator ,
71+ })
72+ }
7173}
7274
7375type generator struct {
0 commit comments