rustc_target/asm/
powerpc.rs

1use std::fmt;
2
3use rustc_data_structures::fx::FxIndexSet;
4use rustc_span::Symbol;
5
6use super::{InlineAsmArch, InlineAsmType, ModifierInfo};
7use crate::spec::{Abi, RelocModel, Target};
8
9#[allow(non_camel_case_types)]
pub enum PowerPCInlineAsmRegClass {
    reg,
    reg_nonzero,
    freg,
    vreg,
    vsreg,
    cr,
    ctr,
    lr,
    xer,
    spe_acc,
}
#[automatically_derived]
#[allow(non_camel_case_types)]
impl ::core::marker::Copy for PowerPCInlineAsmRegClass { }
#[automatically_derived]
#[doc(hidden)]
#[allow(non_camel_case_types)]
unsafe impl ::core::clone::TrivialClone for PowerPCInlineAsmRegClass { }
#[automatically_derived]
#[allow(non_camel_case_types)]
impl ::core::clone::Clone for PowerPCInlineAsmRegClass {
    #[inline]
    fn clone(&self) -> PowerPCInlineAsmRegClass { *self }
}
const _: () =
    {
        impl<__E: ::rustc_span::SpanEncoder> ::rustc_serialize::Encodable<__E>
            for PowerPCInlineAsmRegClass {
            fn encode(&self, __encoder: &mut __E) {
                let disc =
                    match *self {
                        PowerPCInlineAsmRegClass::reg => { 0usize }
                        PowerPCInlineAsmRegClass::reg_nonzero => { 1usize }
                        PowerPCInlineAsmRegClass::freg => { 2usize }
                        PowerPCInlineAsmRegClass::vreg => { 3usize }
                        PowerPCInlineAsmRegClass::vsreg => { 4usize }
                        PowerPCInlineAsmRegClass::cr => { 5usize }
                        PowerPCInlineAsmRegClass::ctr => { 6usize }
                        PowerPCInlineAsmRegClass::lr => { 7usize }
                        PowerPCInlineAsmRegClass::xer => { 8usize }
                        PowerPCInlineAsmRegClass::spe_acc => { 9usize }
                    };
                ::rustc_serialize::Encoder::emit_u8(__encoder, disc as u8);
                match *self {
                    PowerPCInlineAsmRegClass::reg => {}
                    PowerPCInlineAsmRegClass::reg_nonzero => {}
                    PowerPCInlineAsmRegClass::freg => {}
                    PowerPCInlineAsmRegClass::vreg => {}
                    PowerPCInlineAsmRegClass::vsreg => {}
                    PowerPCInlineAsmRegClass::cr => {}
                    PowerPCInlineAsmRegClass::ctr => {}
                    PowerPCInlineAsmRegClass::lr => {}
                    PowerPCInlineAsmRegClass::xer => {}
                    PowerPCInlineAsmRegClass::spe_acc => {}
                }
            }
        }
    };
const _: () =
    {
        impl<__D: ::rustc_span::SpanDecoder> ::rustc_serialize::Decodable<__D>
            for PowerPCInlineAsmRegClass {
            fn decode(__decoder: &mut __D) -> Self {
                match ::rustc_serialize::Decoder::read_u8(__decoder) as usize
                    {
                    0usize => { PowerPCInlineAsmRegClass::reg }
                    1usize => { PowerPCInlineAsmRegClass::reg_nonzero }
                    2usize => { PowerPCInlineAsmRegClass::freg }
                    3usize => { PowerPCInlineAsmRegClass::vreg }
                    4usize => { PowerPCInlineAsmRegClass::vsreg }
                    5usize => { PowerPCInlineAsmRegClass::cr }
                    6usize => { PowerPCInlineAsmRegClass::ctr }
                    7usize => { PowerPCInlineAsmRegClass::lr }
                    8usize => { PowerPCInlineAsmRegClass::xer }
                    9usize => { PowerPCInlineAsmRegClass::spe_acc }
                    n => {
                        ::core::panicking::panic_fmt(format_args!("invalid enum variant tag while decoding `PowerPCInlineAsmRegClass`, expected 0..10, actual {0}",
                                n));
                    }
                }
            }
        }
    };
#[automatically_derived]
#[allow(non_camel_case_types)]
impl ::core::fmt::Debug for PowerPCInlineAsmRegClass {
    #[inline]
    fn fmt(&self, f: &mut ::core::fmt::Formatter) -> ::core::fmt::Result {
        ::core::fmt::Formatter::write_str(f,
            match self {
                PowerPCInlineAsmRegClass::reg => "reg",
                PowerPCInlineAsmRegClass::reg_nonzero => "reg_nonzero",
                PowerPCInlineAsmRegClass::freg => "freg",
                PowerPCInlineAsmRegClass::vreg => "vreg",
                PowerPCInlineAsmRegClass::vsreg => "vsreg",
                PowerPCInlineAsmRegClass::cr => "cr",
                PowerPCInlineAsmRegClass::ctr => "ctr",
                PowerPCInlineAsmRegClass::lr => "lr",
                PowerPCInlineAsmRegClass::xer => "xer",
                PowerPCInlineAsmRegClass::spe_acc => "spe_acc",
            })
    }
}
#[automatically_derived]
#[allow(non_camel_case_types)]
impl ::core::cmp::Eq for PowerPCInlineAsmRegClass {
    #[inline]
    #[doc(hidden)]
    #[coverage(off)]
    fn assert_receiver_is_total_eq(&self) -> () {}
}
#[automatically_derived]
#[allow(non_camel_case_types)]
impl ::core::marker::StructuralPartialEq for PowerPCInlineAsmRegClass { }
#[automatically_derived]
#[allow(non_camel_case_types)]
impl ::core::cmp::PartialEq for PowerPCInlineAsmRegClass {
    #[inline]
    fn eq(&self, other: &PowerPCInlineAsmRegClass) -> bool {
        let __self_discr = ::core::intrinsics::discriminant_value(self);
        let __arg1_discr = ::core::intrinsics::discriminant_value(other);
        __self_discr == __arg1_discr
    }
}
#[automatically_derived]
#[allow(non_camel_case_types)]
impl ::core::cmp::PartialOrd for PowerPCInlineAsmRegClass {
    #[inline]
    fn partial_cmp(&self, other: &PowerPCInlineAsmRegClass)
        -> ::core::option::Option<::core::cmp::Ordering> {
        let __self_discr = ::core::intrinsics::discriminant_value(self);
        let __arg1_discr = ::core::intrinsics::discriminant_value(other);
        ::core::cmp::PartialOrd::partial_cmp(&__self_discr, &__arg1_discr)
    }
}
#[automatically_derived]
#[allow(non_camel_case_types)]
impl ::core::hash::Hash for PowerPCInlineAsmRegClass {
    #[inline]
    fn hash<__H: ::core::hash::Hasher>(&self, state: &mut __H) -> () {
        let __self_discr = ::core::intrinsics::discriminant_value(self);
        ::core::hash::Hash::hash(&__self_discr, state)
    }
}
const _: () =
    {
        impl<__CTX> ::rustc_data_structures::stable_hasher::HashStable<__CTX>
            for PowerPCInlineAsmRegClass where __CTX: crate::HashStableContext
            {
            #[inline]
            fn hash_stable(&self, __hcx: &mut __CTX,
                __hasher:
                    &mut ::rustc_data_structures::stable_hasher::StableHasher) {
                ::std::mem::discriminant(self).hash_stable(__hcx, __hasher);
                match *self {
                    PowerPCInlineAsmRegClass::reg => {}
                    PowerPCInlineAsmRegClass::reg_nonzero => {}
                    PowerPCInlineAsmRegClass::freg => {}
                    PowerPCInlineAsmRegClass::vreg => {}
                    PowerPCInlineAsmRegClass::vsreg => {}
                    PowerPCInlineAsmRegClass::cr => {}
                    PowerPCInlineAsmRegClass::ctr => {}
                    PowerPCInlineAsmRegClass::lr => {}
                    PowerPCInlineAsmRegClass::xer => {}
                    PowerPCInlineAsmRegClass::spe_acc => {}
                }
            }
        }
    };
impl PowerPCInlineAsmRegClass {
    pub fn name(self) -> rustc_span::Symbol {
        match self {
            Self::reg => rustc_span::sym::reg,
            Self::reg_nonzero => rustc_span::sym::reg_nonzero,
            Self::freg => rustc_span::sym::freg,
            Self::vreg => rustc_span::sym::vreg,
            Self::vsreg => rustc_span::sym::vsreg,
            Self::cr => rustc_span::sym::cr,
            Self::ctr => rustc_span::sym::ctr,
            Self::lr => rustc_span::sym::lr,
            Self::xer => rustc_span::sym::xer,
            Self::spe_acc => rustc_span::sym::spe_acc,
        }
    }
    pub fn parse(name: rustc_span::Symbol)
        -> Result<Self, &'static [rustc_span::Symbol]> {
        match name {
            rustc_span::sym::reg => Ok(Self::reg),
            rustc_span::sym::reg_nonzero => Ok(Self::reg_nonzero),
            rustc_span::sym::freg => Ok(Self::freg),
            rustc_span::sym::vreg => Ok(Self::vreg),
            rustc_span::sym::vsreg => Ok(Self::vsreg),
            rustc_span::sym::cr => Ok(Self::cr),
            rustc_span::sym::ctr => Ok(Self::ctr),
            rustc_span::sym::lr => Ok(Self::lr),
            rustc_span::sym::xer => Ok(Self::xer),
            rustc_span::sym::spe_acc => Ok(Self::spe_acc),
            _ =>
                Err(&[rustc_span::sym::reg, rustc_span::sym::reg_nonzero,
                                rustc_span::sym::freg, rustc_span::sym::vreg,
                                rustc_span::sym::vsreg, rustc_span::sym::cr,
                                rustc_span::sym::ctr, rustc_span::sym::lr,
                                rustc_span::sym::xer, rustc_span::sym::spe_acc]),
        }
    }
}
pub(super) fn regclass_map()
    ->
        rustc_data_structures::fx::FxHashMap<super::InlineAsmRegClass,
        rustc_data_structures::fx::FxIndexSet<super::InlineAsmReg>> {
    use rustc_data_structures::fx::FxHashMap;
    use rustc_data_structures::fx::FxIndexSet;
    use super::InlineAsmRegClass;
    let mut map = FxHashMap::default();
    map.insert(InlineAsmRegClass::PowerPC(PowerPCInlineAsmRegClass::reg),
        FxIndexSet::default());
    map.insert(InlineAsmRegClass::PowerPC(PowerPCInlineAsmRegClass::reg_nonzero),
        FxIndexSet::default());
    map.insert(InlineAsmRegClass::PowerPC(PowerPCInlineAsmRegClass::freg),
        FxIndexSet::default());
    map.insert(InlineAsmRegClass::PowerPC(PowerPCInlineAsmRegClass::vreg),
        FxIndexSet::default());
    map.insert(InlineAsmRegClass::PowerPC(PowerPCInlineAsmRegClass::vsreg),
        FxIndexSet::default());
    map.insert(InlineAsmRegClass::PowerPC(PowerPCInlineAsmRegClass::cr),
        FxIndexSet::default());
    map.insert(InlineAsmRegClass::PowerPC(PowerPCInlineAsmRegClass::ctr),
        FxIndexSet::default());
    map.insert(InlineAsmRegClass::PowerPC(PowerPCInlineAsmRegClass::lr),
        FxIndexSet::default());
    map.insert(InlineAsmRegClass::PowerPC(PowerPCInlineAsmRegClass::xer),
        FxIndexSet::default());
    map.insert(InlineAsmRegClass::PowerPC(PowerPCInlineAsmRegClass::spe_acc),
        FxIndexSet::default());
    map
}def_reg_class! {
10    PowerPC PowerPCInlineAsmRegClass {
11        reg,
12        reg_nonzero,
13        freg,
14        vreg,
15        vsreg,
16        cr,
17        ctr,
18        lr,
19        xer,
20        spe_acc,
21    }
22}
23
24impl PowerPCInlineAsmRegClass {
25    pub fn valid_modifiers(self, _arch: super::InlineAsmArch) -> &'static [char] {
26        &[]
27    }
28
29    pub fn suggest_class(self, _arch: InlineAsmArch, _ty: InlineAsmType) -> Option<Self> {
30        None
31    }
32
33    pub fn suggest_modifier(
34        self,
35        _arch: InlineAsmArch,
36        _ty: InlineAsmType,
37    ) -> Option<ModifierInfo> {
38        None
39    }
40
41    pub fn default_modifier(self, _arch: InlineAsmArch) -> Option<ModifierInfo> {
42        None
43    }
44
45    pub fn supported_types(
46        self,
47        arch: InlineAsmArch,
48    ) -> &'static [(InlineAsmType, Option<Symbol>)] {
49        match self {
50            Self::reg | Self::reg_nonzero => {
51                if arch == InlineAsmArch::PowerPC {
52                    {
    use super::InlineAsmType::*;
    &[(I8, None), (I16, None), (I32, None)]
}types! { _: I8, I16, I32; }
53                } else {
54                    {
    use super::InlineAsmType::*;
    &[(I8, None), (I16, None), (I32, None), (I64, None)]
}types! { _: I8, I16, I32, I64; }
55                }
56            }
57            Self::freg => {
    use super::InlineAsmType::*;
    &[(F32, None), (F64, None)]
}types! { _: F32, F64; },
58            // FIXME: vsx also supports integers?: https://github.com/rust-lang/rust/pull/131551#discussion_r1862535963
59            Self::vreg => {
    use super::InlineAsmType::*;
    &[(VecI8(16), Some(rustc_span::sym::altivec)),
                (VecI16(8), Some(rustc_span::sym::altivec)),
                (VecI32(4), Some(rustc_span::sym::altivec)),
                (VecF32(4), Some(rustc_span::sym::altivec)),
                (F32, Some(rustc_span::sym::vsx)),
                (F64, Some(rustc_span::sym::vsx)),
                (VecI64(2), Some(rustc_span::sym::vsx)),
                (VecF64(2), Some(rustc_span::sym::vsx))]
}types! {
60                altivec: VecI8(16), VecI16(8), VecI32(4), VecF32(4);
61                vsx: F32, F64, VecI64(2), VecF64(2);
62            },
63            // VSX is a superset of altivec.
64            Self::vsreg => {
    use super::InlineAsmType::*;
    &[(F32, Some(rustc_span::sym::vsx)), (F64, Some(rustc_span::sym::vsx)),
                (VecI8(16), Some(rustc_span::sym::vsx)),
                (VecI16(8), Some(rustc_span::sym::vsx)),
                (VecI32(4), Some(rustc_span::sym::vsx)),
                (VecI64(2), Some(rustc_span::sym::vsx)),
                (VecF32(4), Some(rustc_span::sym::vsx)),
                (VecF64(2), Some(rustc_span::sym::vsx))]
}types! {
65                vsx: F32, F64, VecI8(16), VecI16(8), VecI32(4), VecI64(2), VecF32(4), VecF64(2);
66            },
67            Self::cr | Self::ctr | Self::lr | Self::xer | Self::spe_acc => &[],
68        }
69    }
70}
71
72fn reserved_r13(
73    arch: InlineAsmArch,
74    _reloc_model: RelocModel,
75    _target_features: &FxIndexSet<Symbol>,
76    target: &Target,
77    _is_clobber: bool,
78) -> Result<(), &'static str> {
79    if target.is_like_aix && arch == InlineAsmArch::PowerPC {
80        Ok(())
81    } else {
82        Err("r13 is a reserved register on this target")
83    }
84}
85
86fn reserved_r29(
87    arch: InlineAsmArch,
88    _reloc_model: RelocModel,
89    _target_features: &FxIndexSet<Symbol>,
90    _target: &Target,
91    _is_clobber: bool,
92) -> Result<(), &'static str> {
93    if arch != InlineAsmArch::PowerPC {
94        Ok(())
95    } else {
96        Err("r29 is used internally by LLVM and cannot be used as an operand for inline asm")
97    }
98}
99
100fn reserved_v20to31(
101    _arch: InlineAsmArch,
102    _reloc_model: RelocModel,
103    _target_features: &FxIndexSet<Symbol>,
104    target: &Target,
105    _is_clobber: bool,
106) -> Result<(), &'static str> {
107    if target.is_like_aix {
108        match &target.options.abi {
109            Abi::VecDefault => Err("v20-v31 (vs52-vs63) are reserved on vec-default ABI"),
110            Abi::VecExtAbi => Ok(()),
111            abi => {
    ::core::panicking::panic_fmt(format_args!("internal error: entered unreachable code: {0}",
            format_args!("unrecognized AIX ABI: {0}", abi)));
}unreachable!("unrecognized AIX ABI: {abi}"),
112        }
113    } else {
114        Ok(())
115    }
116}
117
118fn spe_acc_target_check(
119    _arch: InlineAsmArch,
120    _reloc_model: RelocModel,
121    _target_features: &FxIndexSet<Symbol>,
122    target: &Target,
123    _is_clobber: bool,
124) -> Result<(), &'static str> {
125    if target.abi == Abi::Spe { Ok(()) } else { Err("spe_acc is only available on spe targets") }
126}
127
128#[allow(unreachable_code)]
#[allow(non_camel_case_types)]
pub enum PowerPCInlineAsmReg {
    r0,
    r3,
    r4,
    r5,
    r6,
    r7,
    r8,
    r9,
    r10,
    r11,
    r12,
    r13,
    r14,
    r15,
    r16,
    r17,
    r18,
    r19,
    r20,
    r21,
    r22,
    r23,
    r24,
    r25,
    r26,
    r27,
    r28,
    r29,
    f0,
    f1,
    f2,
    f3,
    f4,
    f5,
    f6,
    f7,
    f8,
    f9,
    f10,
    f11,
    f12,
    f13,
    f14,
    f15,
    f16,
    f17,
    f18,
    f19,
    f20,
    f21,
    f22,
    f23,
    f24,
    f25,
    f26,
    f27,
    f28,
    f29,
    f30,
    f31,
    v0,
    v1,
    v2,
    v3,
    v4,
    v5,
    v6,
    v7,
    v8,
    v9,
    v10,
    v11,
    v12,
    v13,
    v14,
    v15,
    v16,
    v17,
    v18,
    v19,
    v20,
    v21,
    v22,
    v23,
    v24,
    v25,
    v26,
    v27,
    v28,
    v29,
    v30,
    v31,
    vs0,
    vs1,
    vs2,
    vs3,
    vs4,
    vs5,
    vs6,
    vs7,
    vs8,
    vs9,
    vs10,
    vs11,
    vs12,
    vs13,
    vs14,
    vs15,
    vs16,
    vs17,
    vs18,
    vs19,
    vs20,
    vs21,
    vs22,
    vs23,
    vs24,
    vs25,
    vs26,
    vs27,
    vs28,
    vs29,
    vs30,
    vs31,
    vs32,
    vs33,
    vs34,
    vs35,
    vs36,
    vs37,
    vs38,
    vs39,
    vs40,
    vs41,
    vs42,
    vs43,
    vs44,
    vs45,
    vs46,
    vs47,
    vs48,
    vs49,
    vs50,
    vs51,
    vs52,
    vs53,
    vs54,
    vs55,
    vs56,
    vs57,
    vs58,
    vs59,
    vs60,
    vs61,
    vs62,
    vs63,
    cr,
    cr0,
    cr1,
    cr2,
    cr3,
    cr4,
    cr5,
    cr6,
    cr7,
    ctr,
    lr,
    xer,
    spe_acc,
}
#[automatically_derived]
#[allow(unreachable_code)]
#[allow(non_camel_case_types)]
impl ::core::marker::Copy for PowerPCInlineAsmReg { }
#[automatically_derived]
#[doc(hidden)]
#[allow(unreachable_code)]
#[allow(non_camel_case_types)]
unsafe impl ::core::clone::TrivialClone for PowerPCInlineAsmReg { }
#[automatically_derived]
#[allow(unreachable_code)]
#[allow(non_camel_case_types)]
impl ::core::clone::Clone for PowerPCInlineAsmReg {
    #[inline]
    fn clone(&self) -> PowerPCInlineAsmReg { *self }
}
const _: () =
    {
        impl<__E: ::rustc_span::SpanEncoder> ::rustc_serialize::Encodable<__E>
            for PowerPCInlineAsmReg {
            fn encode(&self, __encoder: &mut __E) {
                let disc =
                    match *self {
                        PowerPCInlineAsmReg::r0 => { 0usize }
                        PowerPCInlineAsmReg::r3 => { 1usize }
                        PowerPCInlineAsmReg::r4 => { 2usize }
                        PowerPCInlineAsmReg::r5 => { 3usize }
                        PowerPCInlineAsmReg::r6 => { 4usize }
                        PowerPCInlineAsmReg::r7 => { 5usize }
                        PowerPCInlineAsmReg::r8 => { 6usize }
                        PowerPCInlineAsmReg::r9 => { 7usize }
                        PowerPCInlineAsmReg::r10 => { 8usize }
                        PowerPCInlineAsmReg::r11 => { 9usize }
                        PowerPCInlineAsmReg::r12 => { 10usize }
                        PowerPCInlineAsmReg::r13 => { 11usize }
                        PowerPCInlineAsmReg::r14 => { 12usize }
                        PowerPCInlineAsmReg::r15 => { 13usize }
                        PowerPCInlineAsmReg::r16 => { 14usize }
                        PowerPCInlineAsmReg::r17 => { 15usize }
                        PowerPCInlineAsmReg::r18 => { 16usize }
                        PowerPCInlineAsmReg::r19 => { 17usize }
                        PowerPCInlineAsmReg::r20 => { 18usize }
                        PowerPCInlineAsmReg::r21 => { 19usize }
                        PowerPCInlineAsmReg::r22 => { 20usize }
                        PowerPCInlineAsmReg::r23 => { 21usize }
                        PowerPCInlineAsmReg::r24 => { 22usize }
                        PowerPCInlineAsmReg::r25 => { 23usize }
                        PowerPCInlineAsmReg::r26 => { 24usize }
                        PowerPCInlineAsmReg::r27 => { 25usize }
                        PowerPCInlineAsmReg::r28 => { 26usize }
                        PowerPCInlineAsmReg::r29 => { 27usize }
                        PowerPCInlineAsmReg::f0 => { 28usize }
                        PowerPCInlineAsmReg::f1 => { 29usize }
                        PowerPCInlineAsmReg::f2 => { 30usize }
                        PowerPCInlineAsmReg::f3 => { 31usize }
                        PowerPCInlineAsmReg::f4 => { 32usize }
                        PowerPCInlineAsmReg::f5 => { 33usize }
                        PowerPCInlineAsmReg::f6 => { 34usize }
                        PowerPCInlineAsmReg::f7 => { 35usize }
                        PowerPCInlineAsmReg::f8 => { 36usize }
                        PowerPCInlineAsmReg::f9 => { 37usize }
                        PowerPCInlineAsmReg::f10 => { 38usize }
                        PowerPCInlineAsmReg::f11 => { 39usize }
                        PowerPCInlineAsmReg::f12 => { 40usize }
                        PowerPCInlineAsmReg::f13 => { 41usize }
                        PowerPCInlineAsmReg::f14 => { 42usize }
                        PowerPCInlineAsmReg::f15 => { 43usize }
                        PowerPCInlineAsmReg::f16 => { 44usize }
                        PowerPCInlineAsmReg::f17 => { 45usize }
                        PowerPCInlineAsmReg::f18 => { 46usize }
                        PowerPCInlineAsmReg::f19 => { 47usize }
                        PowerPCInlineAsmReg::f20 => { 48usize }
                        PowerPCInlineAsmReg::f21 => { 49usize }
                        PowerPCInlineAsmReg::f22 => { 50usize }
                        PowerPCInlineAsmReg::f23 => { 51usize }
                        PowerPCInlineAsmReg::f24 => { 52usize }
                        PowerPCInlineAsmReg::f25 => { 53usize }
                        PowerPCInlineAsmReg::f26 => { 54usize }
                        PowerPCInlineAsmReg::f27 => { 55usize }
                        PowerPCInlineAsmReg::f28 => { 56usize }
                        PowerPCInlineAsmReg::f29 => { 57usize }
                        PowerPCInlineAsmReg::f30 => { 58usize }
                        PowerPCInlineAsmReg::f31 => { 59usize }
                        PowerPCInlineAsmReg::v0 => { 60usize }
                        PowerPCInlineAsmReg::v1 => { 61usize }
                        PowerPCInlineAsmReg::v2 => { 62usize }
                        PowerPCInlineAsmReg::v3 => { 63usize }
                        PowerPCInlineAsmReg::v4 => { 64usize }
                        PowerPCInlineAsmReg::v5 => { 65usize }
                        PowerPCInlineAsmReg::v6 => { 66usize }
                        PowerPCInlineAsmReg::v7 => { 67usize }
                        PowerPCInlineAsmReg::v8 => { 68usize }
                        PowerPCInlineAsmReg::v9 => { 69usize }
                        PowerPCInlineAsmReg::v10 => { 70usize }
                        PowerPCInlineAsmReg::v11 => { 71usize }
                        PowerPCInlineAsmReg::v12 => { 72usize }
                        PowerPCInlineAsmReg::v13 => { 73usize }
                        PowerPCInlineAsmReg::v14 => { 74usize }
                        PowerPCInlineAsmReg::v15 => { 75usize }
                        PowerPCInlineAsmReg::v16 => { 76usize }
                        PowerPCInlineAsmReg::v17 => { 77usize }
                        PowerPCInlineAsmReg::v18 => { 78usize }
                        PowerPCInlineAsmReg::v19 => { 79usize }
                        PowerPCInlineAsmReg::v20 => { 80usize }
                        PowerPCInlineAsmReg::v21 => { 81usize }
                        PowerPCInlineAsmReg::v22 => { 82usize }
                        PowerPCInlineAsmReg::v23 => { 83usize }
                        PowerPCInlineAsmReg::v24 => { 84usize }
                        PowerPCInlineAsmReg::v25 => { 85usize }
                        PowerPCInlineAsmReg::v26 => { 86usize }
                        PowerPCInlineAsmReg::v27 => { 87usize }
                        PowerPCInlineAsmReg::v28 => { 88usize }
                        PowerPCInlineAsmReg::v29 => { 89usize }
                        PowerPCInlineAsmReg::v30 => { 90usize }
                        PowerPCInlineAsmReg::v31 => { 91usize }
                        PowerPCInlineAsmReg::vs0 => { 92usize }
                        PowerPCInlineAsmReg::vs1 => { 93usize }
                        PowerPCInlineAsmReg::vs2 => { 94usize }
                        PowerPCInlineAsmReg::vs3 => { 95usize }
                        PowerPCInlineAsmReg::vs4 => { 96usize }
                        PowerPCInlineAsmReg::vs5 => { 97usize }
                        PowerPCInlineAsmReg::vs6 => { 98usize }
                        PowerPCInlineAsmReg::vs7 => { 99usize }
                        PowerPCInlineAsmReg::vs8 => { 100usize }
                        PowerPCInlineAsmReg::vs9 => { 101usize }
                        PowerPCInlineAsmReg::vs10 => { 102usize }
                        PowerPCInlineAsmReg::vs11 => { 103usize }
                        PowerPCInlineAsmReg::vs12 => { 104usize }
                        PowerPCInlineAsmReg::vs13 => { 105usize }
                        PowerPCInlineAsmReg::vs14 => { 106usize }
                        PowerPCInlineAsmReg::vs15 => { 107usize }
                        PowerPCInlineAsmReg::vs16 => { 108usize }
                        PowerPCInlineAsmReg::vs17 => { 109usize }
                        PowerPCInlineAsmReg::vs18 => { 110usize }
                        PowerPCInlineAsmReg::vs19 => { 111usize }
                        PowerPCInlineAsmReg::vs20 => { 112usize }
                        PowerPCInlineAsmReg::vs21 => { 113usize }
                        PowerPCInlineAsmReg::vs22 => { 114usize }
                        PowerPCInlineAsmReg::vs23 => { 115usize }
                        PowerPCInlineAsmReg::vs24 => { 116usize }
                        PowerPCInlineAsmReg::vs25 => { 117usize }
                        PowerPCInlineAsmReg::vs26 => { 118usize }
                        PowerPCInlineAsmReg::vs27 => { 119usize }
                        PowerPCInlineAsmReg::vs28 => { 120usize }
                        PowerPCInlineAsmReg::vs29 => { 121usize }
                        PowerPCInlineAsmReg::vs30 => { 122usize }
                        PowerPCInlineAsmReg::vs31 => { 123usize }
                        PowerPCInlineAsmReg::vs32 => { 124usize }
                        PowerPCInlineAsmReg::vs33 => { 125usize }
                        PowerPCInlineAsmReg::vs34 => { 126usize }
                        PowerPCInlineAsmReg::vs35 => { 127usize }
                        PowerPCInlineAsmReg::vs36 => { 128usize }
                        PowerPCInlineAsmReg::vs37 => { 129usize }
                        PowerPCInlineAsmReg::vs38 => { 130usize }
                        PowerPCInlineAsmReg::vs39 => { 131usize }
                        PowerPCInlineAsmReg::vs40 => { 132usize }
                        PowerPCInlineAsmReg::vs41 => { 133usize }
                        PowerPCInlineAsmReg::vs42 => { 134usize }
                        PowerPCInlineAsmReg::vs43 => { 135usize }
                        PowerPCInlineAsmReg::vs44 => { 136usize }
                        PowerPCInlineAsmReg::vs45 => { 137usize }
                        PowerPCInlineAsmReg::vs46 => { 138usize }
                        PowerPCInlineAsmReg::vs47 => { 139usize }
                        PowerPCInlineAsmReg::vs48 => { 140usize }
                        PowerPCInlineAsmReg::vs49 => { 141usize }
                        PowerPCInlineAsmReg::vs50 => { 142usize }
                        PowerPCInlineAsmReg::vs51 => { 143usize }
                        PowerPCInlineAsmReg::vs52 => { 144usize }
                        PowerPCInlineAsmReg::vs53 => { 145usize }
                        PowerPCInlineAsmReg::vs54 => { 146usize }
                        PowerPCInlineAsmReg::vs55 => { 147usize }
                        PowerPCInlineAsmReg::vs56 => { 148usize }
                        PowerPCInlineAsmReg::vs57 => { 149usize }
                        PowerPCInlineAsmReg::vs58 => { 150usize }
                        PowerPCInlineAsmReg::vs59 => { 151usize }
                        PowerPCInlineAsmReg::vs60 => { 152usize }
                        PowerPCInlineAsmReg::vs61 => { 153usize }
                        PowerPCInlineAsmReg::vs62 => { 154usize }
                        PowerPCInlineAsmReg::vs63 => { 155usize }
                        PowerPCInlineAsmReg::cr => { 156usize }
                        PowerPCInlineAsmReg::cr0 => { 157usize }
                        PowerPCInlineAsmReg::cr1 => { 158usize }
                        PowerPCInlineAsmReg::cr2 => { 159usize }
                        PowerPCInlineAsmReg::cr3 => { 160usize }
                        PowerPCInlineAsmReg::cr4 => { 161usize }
                        PowerPCInlineAsmReg::cr5 => { 162usize }
                        PowerPCInlineAsmReg::cr6 => { 163usize }
                        PowerPCInlineAsmReg::cr7 => { 164usize }
                        PowerPCInlineAsmReg::ctr => { 165usize }
                        PowerPCInlineAsmReg::lr => { 166usize }
                        PowerPCInlineAsmReg::xer => { 167usize }
                        PowerPCInlineAsmReg::spe_acc => { 168usize }
                    };
                ::rustc_serialize::Encoder::emit_u8(__encoder, disc as u8);
                match *self {
                    PowerPCInlineAsmReg::r0 => {}
                    PowerPCInlineAsmReg::r3 => {}
                    PowerPCInlineAsmReg::r4 => {}
                    PowerPCInlineAsmReg::r5 => {}
                    PowerPCInlineAsmReg::r6 => {}
                    PowerPCInlineAsmReg::r7 => {}
                    PowerPCInlineAsmReg::r8 => {}
                    PowerPCInlineAsmReg::r9 => {}
                    PowerPCInlineAsmReg::r10 => {}
                    PowerPCInlineAsmReg::r11 => {}
                    PowerPCInlineAsmReg::r12 => {}
                    PowerPCInlineAsmReg::r13 => {}
                    PowerPCInlineAsmReg::r14 => {}
                    PowerPCInlineAsmReg::r15 => {}
                    PowerPCInlineAsmReg::r16 => {}
                    PowerPCInlineAsmReg::r17 => {}
                    PowerPCInlineAsmReg::r18 => {}
                    PowerPCInlineAsmReg::r19 => {}
                    PowerPCInlineAsmReg::r20 => {}
                    PowerPCInlineAsmReg::r21 => {}
                    PowerPCInlineAsmReg::r22 => {}
                    PowerPCInlineAsmReg::r23 => {}
                    PowerPCInlineAsmReg::r24 => {}
                    PowerPCInlineAsmReg::r25 => {}
                    PowerPCInlineAsmReg::r26 => {}
                    PowerPCInlineAsmReg::r27 => {}
                    PowerPCInlineAsmReg::r28 => {}
                    PowerPCInlineAsmReg::r29 => {}
                    PowerPCInlineAsmReg::f0 => {}
                    PowerPCInlineAsmReg::f1 => {}
                    PowerPCInlineAsmReg::f2 => {}
                    PowerPCInlineAsmReg::f3 => {}
                    PowerPCInlineAsmReg::f4 => {}
                    PowerPCInlineAsmReg::f5 => {}
                    PowerPCInlineAsmReg::f6 => {}
                    PowerPCInlineAsmReg::f7 => {}
                    PowerPCInlineAsmReg::f8 => {}
                    PowerPCInlineAsmReg::f9 => {}
                    PowerPCInlineAsmReg::f10 => {}
                    PowerPCInlineAsmReg::f11 => {}
                    PowerPCInlineAsmReg::f12 => {}
                    PowerPCInlineAsmReg::f13 => {}
                    PowerPCInlineAsmReg::f14 => {}
                    PowerPCInlineAsmReg::f15 => {}
                    PowerPCInlineAsmReg::f16 => {}
                    PowerPCInlineAsmReg::f17 => {}
                    PowerPCInlineAsmReg::f18 => {}
                    PowerPCInlineAsmReg::f19 => {}
                    PowerPCInlineAsmReg::f20 => {}
                    PowerPCInlineAsmReg::f21 => {}
                    PowerPCInlineAsmReg::f22 => {}
                    PowerPCInlineAsmReg::f23 => {}
                    PowerPCInlineAsmReg::f24 => {}
                    PowerPCInlineAsmReg::f25 => {}
                    PowerPCInlineAsmReg::f26 => {}
                    PowerPCInlineAsmReg::f27 => {}
                    PowerPCInlineAsmReg::f28 => {}
                    PowerPCInlineAsmReg::f29 => {}
                    PowerPCInlineAsmReg::f30 => {}
                    PowerPCInlineAsmReg::f31 => {}
                    PowerPCInlineAsmReg::v0 => {}
                    PowerPCInlineAsmReg::v1 => {}
                    PowerPCInlineAsmReg::v2 => {}
                    PowerPCInlineAsmReg::v3 => {}
                    PowerPCInlineAsmReg::v4 => {}
                    PowerPCInlineAsmReg::v5 => {}
                    PowerPCInlineAsmReg::v6 => {}
                    PowerPCInlineAsmReg::v7 => {}
                    PowerPCInlineAsmReg::v8 => {}
                    PowerPCInlineAsmReg::v9 => {}
                    PowerPCInlineAsmReg::v10 => {}
                    PowerPCInlineAsmReg::v11 => {}
                    PowerPCInlineAsmReg::v12 => {}
                    PowerPCInlineAsmReg::v13 => {}
                    PowerPCInlineAsmReg::v14 => {}
                    PowerPCInlineAsmReg::v15 => {}
                    PowerPCInlineAsmReg::v16 => {}
                    PowerPCInlineAsmReg::v17 => {}
                    PowerPCInlineAsmReg::v18 => {}
                    PowerPCInlineAsmReg::v19 => {}
                    PowerPCInlineAsmReg::v20 => {}
                    PowerPCInlineAsmReg::v21 => {}
                    PowerPCInlineAsmReg::v22 => {}
                    PowerPCInlineAsmReg::v23 => {}
                    PowerPCInlineAsmReg::v24 => {}
                    PowerPCInlineAsmReg::v25 => {}
                    PowerPCInlineAsmReg::v26 => {}
                    PowerPCInlineAsmReg::v27 => {}
                    PowerPCInlineAsmReg::v28 => {}
                    PowerPCInlineAsmReg::v29 => {}
                    PowerPCInlineAsmReg::v30 => {}
                    PowerPCInlineAsmReg::v31 => {}
                    PowerPCInlineAsmReg::vs0 => {}
                    PowerPCInlineAsmReg::vs1 => {}
                    PowerPCInlineAsmReg::vs2 => {}
                    PowerPCInlineAsmReg::vs3 => {}
                    PowerPCInlineAsmReg::vs4 => {}
                    PowerPCInlineAsmReg::vs5 => {}
                    PowerPCInlineAsmReg::vs6 => {}
                    PowerPCInlineAsmReg::vs7 => {}
                    PowerPCInlineAsmReg::vs8 => {}
                    PowerPCInlineAsmReg::vs9 => {}
                    PowerPCInlineAsmReg::vs10 => {}
                    PowerPCInlineAsmReg::vs11 => {}
                    PowerPCInlineAsmReg::vs12 => {}
                    PowerPCInlineAsmReg::vs13 => {}
                    PowerPCInlineAsmReg::vs14 => {}
                    PowerPCInlineAsmReg::vs15 => {}
                    PowerPCInlineAsmReg::vs16 => {}
                    PowerPCInlineAsmReg::vs17 => {}
                    PowerPCInlineAsmReg::vs18 => {}
                    PowerPCInlineAsmReg::vs19 => {}
                    PowerPCInlineAsmReg::vs20 => {}
                    PowerPCInlineAsmReg::vs21 => {}
                    PowerPCInlineAsmReg::vs22 => {}
                    PowerPCInlineAsmReg::vs23 => {}
                    PowerPCInlineAsmReg::vs24 => {}
                    PowerPCInlineAsmReg::vs25 => {}
                    PowerPCInlineAsmReg::vs26 => {}
                    PowerPCInlineAsmReg::vs27 => {}
                    PowerPCInlineAsmReg::vs28 => {}
                    PowerPCInlineAsmReg::vs29 => {}
                    PowerPCInlineAsmReg::vs30 => {}
                    PowerPCInlineAsmReg::vs31 => {}
                    PowerPCInlineAsmReg::vs32 => {}
                    PowerPCInlineAsmReg::vs33 => {}
                    PowerPCInlineAsmReg::vs34 => {}
                    PowerPCInlineAsmReg::vs35 => {}
                    PowerPCInlineAsmReg::vs36 => {}
                    PowerPCInlineAsmReg::vs37 => {}
                    PowerPCInlineAsmReg::vs38 => {}
                    PowerPCInlineAsmReg::vs39 => {}
                    PowerPCInlineAsmReg::vs40 => {}
                    PowerPCInlineAsmReg::vs41 => {}
                    PowerPCInlineAsmReg::vs42 => {}
                    PowerPCInlineAsmReg::vs43 => {}
                    PowerPCInlineAsmReg::vs44 => {}
                    PowerPCInlineAsmReg::vs45 => {}
                    PowerPCInlineAsmReg::vs46 => {}
                    PowerPCInlineAsmReg::vs47 => {}
                    PowerPCInlineAsmReg::vs48 => {}
                    PowerPCInlineAsmReg::vs49 => {}
                    PowerPCInlineAsmReg::vs50 => {}
                    PowerPCInlineAsmReg::vs51 => {}
                    PowerPCInlineAsmReg::vs52 => {}
                    PowerPCInlineAsmReg::vs53 => {}
                    PowerPCInlineAsmReg::vs54 => {}
                    PowerPCInlineAsmReg::vs55 => {}
                    PowerPCInlineAsmReg::vs56 => {}
                    PowerPCInlineAsmReg::vs57 => {}
                    PowerPCInlineAsmReg::vs58 => {}
                    PowerPCInlineAsmReg::vs59 => {}
                    PowerPCInlineAsmReg::vs60 => {}
                    PowerPCInlineAsmReg::vs61 => {}
                    PowerPCInlineAsmReg::vs62 => {}
                    PowerPCInlineAsmReg::vs63 => {}
                    PowerPCInlineAsmReg::cr => {}
                    PowerPCInlineAsmReg::cr0 => {}
                    PowerPCInlineAsmReg::cr1 => {}
                    PowerPCInlineAsmReg::cr2 => {}
                    PowerPCInlineAsmReg::cr3 => {}
                    PowerPCInlineAsmReg::cr4 => {}
                    PowerPCInlineAsmReg::cr5 => {}
                    PowerPCInlineAsmReg::cr6 => {}
                    PowerPCInlineAsmReg::cr7 => {}
                    PowerPCInlineAsmReg::ctr => {}
                    PowerPCInlineAsmReg::lr => {}
                    PowerPCInlineAsmReg::xer => {}
                    PowerPCInlineAsmReg::spe_acc => {}
                }
            }
        }
    };
const _: () =
    {
        impl<__D: ::rustc_span::SpanDecoder> ::rustc_serialize::Decodable<__D>
            for PowerPCInlineAsmReg {
            fn decode(__decoder: &mut __D) -> Self {
                match ::rustc_serialize::Decoder::read_u8(__decoder) as usize
                    {
                    0usize => { PowerPCInlineAsmReg::r0 }
                    1usize => { PowerPCInlineAsmReg::r3 }
                    2usize => { PowerPCInlineAsmReg::r4 }
                    3usize => { PowerPCInlineAsmReg::r5 }
                    4usize => { PowerPCInlineAsmReg::r6 }
                    5usize => { PowerPCInlineAsmReg::r7 }
                    6usize => { PowerPCInlineAsmReg::r8 }
                    7usize => { PowerPCInlineAsmReg::r9 }
                    8usize => { PowerPCInlineAsmReg::r10 }
                    9usize => { PowerPCInlineAsmReg::r11 }
                    10usize => { PowerPCInlineAsmReg::r12 }
                    11usize => { PowerPCInlineAsmReg::r13 }
                    12usize => { PowerPCInlineAsmReg::r14 }
                    13usize => { PowerPCInlineAsmReg::r15 }
                    14usize => { PowerPCInlineAsmReg::r16 }
                    15usize => { PowerPCInlineAsmReg::r17 }
                    16usize => { PowerPCInlineAsmReg::r18 }
                    17usize => { PowerPCInlineAsmReg::r19 }
                    18usize => { PowerPCInlineAsmReg::r20 }
                    19usize => { PowerPCInlineAsmReg::r21 }
                    20usize => { PowerPCInlineAsmReg::r22 }
                    21usize => { PowerPCInlineAsmReg::r23 }
                    22usize => { PowerPCInlineAsmReg::r24 }
                    23usize => { PowerPCInlineAsmReg::r25 }
                    24usize => { PowerPCInlineAsmReg::r26 }
                    25usize => { PowerPCInlineAsmReg::r27 }
                    26usize => { PowerPCInlineAsmReg::r28 }
                    27usize => { PowerPCInlineAsmReg::r29 }
                    28usize => { PowerPCInlineAsmReg::f0 }
                    29usize => { PowerPCInlineAsmReg::f1 }
                    30usize => { PowerPCInlineAsmReg::f2 }
                    31usize => { PowerPCInlineAsmReg::f3 }
                    32usize => { PowerPCInlineAsmReg::f4 }
                    33usize => { PowerPCInlineAsmReg::f5 }
                    34usize => { PowerPCInlineAsmReg::f6 }
                    35usize => { PowerPCInlineAsmReg::f7 }
                    36usize => { PowerPCInlineAsmReg::f8 }
                    37usize => { PowerPCInlineAsmReg::f9 }
                    38usize => { PowerPCInlineAsmReg::f10 }
                    39usize => { PowerPCInlineAsmReg::f11 }
                    40usize => { PowerPCInlineAsmReg::f12 }
                    41usize => { PowerPCInlineAsmReg::f13 }
                    42usize => { PowerPCInlineAsmReg::f14 }
                    43usize => { PowerPCInlineAsmReg::f15 }
                    44usize => { PowerPCInlineAsmReg::f16 }
                    45usize => { PowerPCInlineAsmReg::f17 }
                    46usize => { PowerPCInlineAsmReg::f18 }
                    47usize => { PowerPCInlineAsmReg::f19 }
                    48usize => { PowerPCInlineAsmReg::f20 }
                    49usize => { PowerPCInlineAsmReg::f21 }
                    50usize => { PowerPCInlineAsmReg::f22 }
                    51usize => { PowerPCInlineAsmReg::f23 }
                    52usize => { PowerPCInlineAsmReg::f24 }
                    53usize => { PowerPCInlineAsmReg::f25 }
                    54usize => { PowerPCInlineAsmReg::f26 }
                    55usize => { PowerPCInlineAsmReg::f27 }
                    56usize => { PowerPCInlineAsmReg::f28 }
                    57usize => { PowerPCInlineAsmReg::f29 }
                    58usize => { PowerPCInlineAsmReg::f30 }
                    59usize => { PowerPCInlineAsmReg::f31 }
                    60usize => { PowerPCInlineAsmReg::v0 }
                    61usize => { PowerPCInlineAsmReg::v1 }
                    62usize => { PowerPCInlineAsmReg::v2 }
                    63usize => { PowerPCInlineAsmReg::v3 }
                    64usize => { PowerPCInlineAsmReg::v4 }
                    65usize => { PowerPCInlineAsmReg::v5 }
                    66usize => { PowerPCInlineAsmReg::v6 }
                    67usize => { PowerPCInlineAsmReg::v7 }
                    68usize => { PowerPCInlineAsmReg::v8 }
                    69usize => { PowerPCInlineAsmReg::v9 }
                    70usize => { PowerPCInlineAsmReg::v10 }
                    71usize => { PowerPCInlineAsmReg::v11 }
                    72usize => { PowerPCInlineAsmReg::v12 }
                    73usize => { PowerPCInlineAsmReg::v13 }
                    74usize => { PowerPCInlineAsmReg::v14 }
                    75usize => { PowerPCInlineAsmReg::v15 }
                    76usize => { PowerPCInlineAsmReg::v16 }
                    77usize => { PowerPCInlineAsmReg::v17 }
                    78usize => { PowerPCInlineAsmReg::v18 }
                    79usize => { PowerPCInlineAsmReg::v19 }
                    80usize => { PowerPCInlineAsmReg::v20 }
                    81usize => { PowerPCInlineAsmReg::v21 }
                    82usize => { PowerPCInlineAsmReg::v22 }
                    83usize => { PowerPCInlineAsmReg::v23 }
                    84usize => { PowerPCInlineAsmReg::v24 }
                    85usize => { PowerPCInlineAsmReg::v25 }
                    86usize => { PowerPCInlineAsmReg::v26 }
                    87usize => { PowerPCInlineAsmReg::v27 }
                    88usize => { PowerPCInlineAsmReg::v28 }
                    89usize => { PowerPCInlineAsmReg::v29 }
                    90usize => { PowerPCInlineAsmReg::v30 }
                    91usize => { PowerPCInlineAsmReg::v31 }
                    92usize => { PowerPCInlineAsmReg::vs0 }
                    93usize => { PowerPCInlineAsmReg::vs1 }
                    94usize => { PowerPCInlineAsmReg::vs2 }
                    95usize => { PowerPCInlineAsmReg::vs3 }
                    96usize => { PowerPCInlineAsmReg::vs4 }
                    97usize => { PowerPCInlineAsmReg::vs5 }
                    98usize => { PowerPCInlineAsmReg::vs6 }
                    99usize => { PowerPCInlineAsmReg::vs7 }
                    100usize => { PowerPCInlineAsmReg::vs8 }
                    101usize => { PowerPCInlineAsmReg::vs9 }
                    102usize => { PowerPCInlineAsmReg::vs10 }
                    103usize => { PowerPCInlineAsmReg::vs11 }
                    104usize => { PowerPCInlineAsmReg::vs12 }
                    105usize => { PowerPCInlineAsmReg::vs13 }
                    106usize => { PowerPCInlineAsmReg::vs14 }
                    107usize => { PowerPCInlineAsmReg::vs15 }
                    108usize => { PowerPCInlineAsmReg::vs16 }
                    109usize => { PowerPCInlineAsmReg::vs17 }
                    110usize => { PowerPCInlineAsmReg::vs18 }
                    111usize => { PowerPCInlineAsmReg::vs19 }
                    112usize => { PowerPCInlineAsmReg::vs20 }
                    113usize => { PowerPCInlineAsmReg::vs21 }
                    114usize => { PowerPCInlineAsmReg::vs22 }
                    115usize => { PowerPCInlineAsmReg::vs23 }
                    116usize => { PowerPCInlineAsmReg::vs24 }
                    117usize => { PowerPCInlineAsmReg::vs25 }
                    118usize => { PowerPCInlineAsmReg::vs26 }
                    119usize => { PowerPCInlineAsmReg::vs27 }
                    120usize => { PowerPCInlineAsmReg::vs28 }
                    121usize => { PowerPCInlineAsmReg::vs29 }
                    122usize => { PowerPCInlineAsmReg::vs30 }
                    123usize => { PowerPCInlineAsmReg::vs31 }
                    124usize => { PowerPCInlineAsmReg::vs32 }
                    125usize => { PowerPCInlineAsmReg::vs33 }
                    126usize => { PowerPCInlineAsmReg::vs34 }
                    127usize => { PowerPCInlineAsmReg::vs35 }
                    128usize => { PowerPCInlineAsmReg::vs36 }
                    129usize => { PowerPCInlineAsmReg::vs37 }
                    130usize => { PowerPCInlineAsmReg::vs38 }
                    131usize => { PowerPCInlineAsmReg::vs39 }
                    132usize => { PowerPCInlineAsmReg::vs40 }
                    133usize => { PowerPCInlineAsmReg::vs41 }
                    134usize => { PowerPCInlineAsmReg::vs42 }
                    135usize => { PowerPCInlineAsmReg::vs43 }
                    136usize => { PowerPCInlineAsmReg::vs44 }
                    137usize => { PowerPCInlineAsmReg::vs45 }
                    138usize => { PowerPCInlineAsmReg::vs46 }
                    139usize => { PowerPCInlineAsmReg::vs47 }
                    140usize => { PowerPCInlineAsmReg::vs48 }
                    141usize => { PowerPCInlineAsmReg::vs49 }
                    142usize => { PowerPCInlineAsmReg::vs50 }
                    143usize => { PowerPCInlineAsmReg::vs51 }
                    144usize => { PowerPCInlineAsmReg::vs52 }
                    145usize => { PowerPCInlineAsmReg::vs53 }
                    146usize => { PowerPCInlineAsmReg::vs54 }
                    147usize => { PowerPCInlineAsmReg::vs55 }
                    148usize => { PowerPCInlineAsmReg::vs56 }
                    149usize => { PowerPCInlineAsmReg::vs57 }
                    150usize => { PowerPCInlineAsmReg::vs58 }
                    151usize => { PowerPCInlineAsmReg::vs59 }
                    152usize => { PowerPCInlineAsmReg::vs60 }
                    153usize => { PowerPCInlineAsmReg::vs61 }
                    154usize => { PowerPCInlineAsmReg::vs62 }
                    155usize => { PowerPCInlineAsmReg::vs63 }
                    156usize => { PowerPCInlineAsmReg::cr }
                    157usize => { PowerPCInlineAsmReg::cr0 }
                    158usize => { PowerPCInlineAsmReg::cr1 }
                    159usize => { PowerPCInlineAsmReg::cr2 }
                    160usize => { PowerPCInlineAsmReg::cr3 }
                    161usize => { PowerPCInlineAsmReg::cr4 }
                    162usize => { PowerPCInlineAsmReg::cr5 }
                    163usize => { PowerPCInlineAsmReg::cr6 }
                    164usize => { PowerPCInlineAsmReg::cr7 }
                    165usize => { PowerPCInlineAsmReg::ctr }
                    166usize => { PowerPCInlineAsmReg::lr }
                    167usize => { PowerPCInlineAsmReg::xer }
                    168usize => { PowerPCInlineAsmReg::spe_acc }
                    n => {
                        ::core::panicking::panic_fmt(format_args!("invalid enum variant tag while decoding `PowerPCInlineAsmReg`, expected 0..169, actual {0}",
                                n));
                    }
                }
            }
        }
    };
#[automatically_derived]
#[allow(unreachable_code)]
#[allow(non_camel_case_types)]
impl ::core::fmt::Debug for PowerPCInlineAsmReg {
    #[inline]
    fn fmt(&self, f: &mut ::core::fmt::Formatter) -> ::core::fmt::Result {
        ::core::fmt::Formatter::write_str(f,
            match self {
                PowerPCInlineAsmReg::r0 => "r0",
                PowerPCInlineAsmReg::r3 => "r3",
                PowerPCInlineAsmReg::r4 => "r4",
                PowerPCInlineAsmReg::r5 => "r5",
                PowerPCInlineAsmReg::r6 => "r6",
                PowerPCInlineAsmReg::r7 => "r7",
                PowerPCInlineAsmReg::r8 => "r8",
                PowerPCInlineAsmReg::r9 => "r9",
                PowerPCInlineAsmReg::r10 => "r10",
                PowerPCInlineAsmReg::r11 => "r11",
                PowerPCInlineAsmReg::r12 => "r12",
                PowerPCInlineAsmReg::r13 => "r13",
                PowerPCInlineAsmReg::r14 => "r14",
                PowerPCInlineAsmReg::r15 => "r15",
                PowerPCInlineAsmReg::r16 => "r16",
                PowerPCInlineAsmReg::r17 => "r17",
                PowerPCInlineAsmReg::r18 => "r18",
                PowerPCInlineAsmReg::r19 => "r19",
                PowerPCInlineAsmReg::r20 => "r20",
                PowerPCInlineAsmReg::r21 => "r21",
                PowerPCInlineAsmReg::r22 => "r22",
                PowerPCInlineAsmReg::r23 => "r23",
                PowerPCInlineAsmReg::r24 => "r24",
                PowerPCInlineAsmReg::r25 => "r25",
                PowerPCInlineAsmReg::r26 => "r26",
                PowerPCInlineAsmReg::r27 => "r27",
                PowerPCInlineAsmReg::r28 => "r28",
                PowerPCInlineAsmReg::r29 => "r29",
                PowerPCInlineAsmReg::f0 => "f0",
                PowerPCInlineAsmReg::f1 => "f1",
                PowerPCInlineAsmReg::f2 => "f2",
                PowerPCInlineAsmReg::f3 => "f3",
                PowerPCInlineAsmReg::f4 => "f4",
                PowerPCInlineAsmReg::f5 => "f5",
                PowerPCInlineAsmReg::f6 => "f6",
                PowerPCInlineAsmReg::f7 => "f7",
                PowerPCInlineAsmReg::f8 => "f8",
                PowerPCInlineAsmReg::f9 => "f9",
                PowerPCInlineAsmReg::f10 => "f10",
                PowerPCInlineAsmReg::f11 => "f11",
                PowerPCInlineAsmReg::f12 => "f12",
                PowerPCInlineAsmReg::f13 => "f13",
                PowerPCInlineAsmReg::f14 => "f14",
                PowerPCInlineAsmReg::f15 => "f15",
                PowerPCInlineAsmReg::f16 => "f16",
                PowerPCInlineAsmReg::f17 => "f17",
                PowerPCInlineAsmReg::f18 => "f18",
                PowerPCInlineAsmReg::f19 => "f19",
                PowerPCInlineAsmReg::f20 => "f20",
                PowerPCInlineAsmReg::f21 => "f21",
                PowerPCInlineAsmReg::f22 => "f22",
                PowerPCInlineAsmReg::f23 => "f23",
                PowerPCInlineAsmReg::f24 => "f24",
                PowerPCInlineAsmReg::f25 => "f25",
                PowerPCInlineAsmReg::f26 => "f26",
                PowerPCInlineAsmReg::f27 => "f27",
                PowerPCInlineAsmReg::f28 => "f28",
                PowerPCInlineAsmReg::f29 => "f29",
                PowerPCInlineAsmReg::f30 => "f30",
                PowerPCInlineAsmReg::f31 => "f31",
                PowerPCInlineAsmReg::v0 => "v0",
                PowerPCInlineAsmReg::v1 => "v1",
                PowerPCInlineAsmReg::v2 => "v2",
                PowerPCInlineAsmReg::v3 => "v3",
                PowerPCInlineAsmReg::v4 => "v4",
                PowerPCInlineAsmReg::v5 => "v5",
                PowerPCInlineAsmReg::v6 => "v6",
                PowerPCInlineAsmReg::v7 => "v7",
                PowerPCInlineAsmReg::v8 => "v8",
                PowerPCInlineAsmReg::v9 => "v9",
                PowerPCInlineAsmReg::v10 => "v10",
                PowerPCInlineAsmReg::v11 => "v11",
                PowerPCInlineAsmReg::v12 => "v12",
                PowerPCInlineAsmReg::v13 => "v13",
                PowerPCInlineAsmReg::v14 => "v14",
                PowerPCInlineAsmReg::v15 => "v15",
                PowerPCInlineAsmReg::v16 => "v16",
                PowerPCInlineAsmReg::v17 => "v17",
                PowerPCInlineAsmReg::v18 => "v18",
                PowerPCInlineAsmReg::v19 => "v19",
                PowerPCInlineAsmReg::v20 => "v20",
                PowerPCInlineAsmReg::v21 => "v21",
                PowerPCInlineAsmReg::v22 => "v22",
                PowerPCInlineAsmReg::v23 => "v23",
                PowerPCInlineAsmReg::v24 => "v24",
                PowerPCInlineAsmReg::v25 => "v25",
                PowerPCInlineAsmReg::v26 => "v26",
                PowerPCInlineAsmReg::v27 => "v27",
                PowerPCInlineAsmReg::v28 => "v28",
                PowerPCInlineAsmReg::v29 => "v29",
                PowerPCInlineAsmReg::v30 => "v30",
                PowerPCInlineAsmReg::v31 => "v31",
                PowerPCInlineAsmReg::vs0 => "vs0",
                PowerPCInlineAsmReg::vs1 => "vs1",
                PowerPCInlineAsmReg::vs2 => "vs2",
                PowerPCInlineAsmReg::vs3 => "vs3",
                PowerPCInlineAsmReg::vs4 => "vs4",
                PowerPCInlineAsmReg::vs5 => "vs5",
                PowerPCInlineAsmReg::vs6 => "vs6",
                PowerPCInlineAsmReg::vs7 => "vs7",
                PowerPCInlineAsmReg::vs8 => "vs8",
                PowerPCInlineAsmReg::vs9 => "vs9",
                PowerPCInlineAsmReg::vs10 => "vs10",
                PowerPCInlineAsmReg::vs11 => "vs11",
                PowerPCInlineAsmReg::vs12 => "vs12",
                PowerPCInlineAsmReg::vs13 => "vs13",
                PowerPCInlineAsmReg::vs14 => "vs14",
                PowerPCInlineAsmReg::vs15 => "vs15",
                PowerPCInlineAsmReg::vs16 => "vs16",
                PowerPCInlineAsmReg::vs17 => "vs17",
                PowerPCInlineAsmReg::vs18 => "vs18",
                PowerPCInlineAsmReg::vs19 => "vs19",
                PowerPCInlineAsmReg::vs20 => "vs20",
                PowerPCInlineAsmReg::vs21 => "vs21",
                PowerPCInlineAsmReg::vs22 => "vs22",
                PowerPCInlineAsmReg::vs23 => "vs23",
                PowerPCInlineAsmReg::vs24 => "vs24",
                PowerPCInlineAsmReg::vs25 => "vs25",
                PowerPCInlineAsmReg::vs26 => "vs26",
                PowerPCInlineAsmReg::vs27 => "vs27",
                PowerPCInlineAsmReg::vs28 => "vs28",
                PowerPCInlineAsmReg::vs29 => "vs29",
                PowerPCInlineAsmReg::vs30 => "vs30",
                PowerPCInlineAsmReg::vs31 => "vs31",
                PowerPCInlineAsmReg::vs32 => "vs32",
                PowerPCInlineAsmReg::vs33 => "vs33",
                PowerPCInlineAsmReg::vs34 => "vs34",
                PowerPCInlineAsmReg::vs35 => "vs35",
                PowerPCInlineAsmReg::vs36 => "vs36",
                PowerPCInlineAsmReg::vs37 => "vs37",
                PowerPCInlineAsmReg::vs38 => "vs38",
                PowerPCInlineAsmReg::vs39 => "vs39",
                PowerPCInlineAsmReg::vs40 => "vs40",
                PowerPCInlineAsmReg::vs41 => "vs41",
                PowerPCInlineAsmReg::vs42 => "vs42",
                PowerPCInlineAsmReg::vs43 => "vs43",
                PowerPCInlineAsmReg::vs44 => "vs44",
                PowerPCInlineAsmReg::vs45 => "vs45",
                PowerPCInlineAsmReg::vs46 => "vs46",
                PowerPCInlineAsmReg::vs47 => "vs47",
                PowerPCInlineAsmReg::vs48 => "vs48",
                PowerPCInlineAsmReg::vs49 => "vs49",
                PowerPCInlineAsmReg::vs50 => "vs50",
                PowerPCInlineAsmReg::vs51 => "vs51",
                PowerPCInlineAsmReg::vs52 => "vs52",
                PowerPCInlineAsmReg::vs53 => "vs53",
                PowerPCInlineAsmReg::vs54 => "vs54",
                PowerPCInlineAsmReg::vs55 => "vs55",
                PowerPCInlineAsmReg::vs56 => "vs56",
                PowerPCInlineAsmReg::vs57 => "vs57",
                PowerPCInlineAsmReg::vs58 => "vs58",
                PowerPCInlineAsmReg::vs59 => "vs59",
                PowerPCInlineAsmReg::vs60 => "vs60",
                PowerPCInlineAsmReg::vs61 => "vs61",
                PowerPCInlineAsmReg::vs62 => "vs62",
                PowerPCInlineAsmReg::vs63 => "vs63",
                PowerPCInlineAsmReg::cr => "cr",
                PowerPCInlineAsmReg::cr0 => "cr0",
                PowerPCInlineAsmReg::cr1 => "cr1",
                PowerPCInlineAsmReg::cr2 => "cr2",
                PowerPCInlineAsmReg::cr3 => "cr3",
                PowerPCInlineAsmReg::cr4 => "cr4",
                PowerPCInlineAsmReg::cr5 => "cr5",
                PowerPCInlineAsmReg::cr6 => "cr6",
                PowerPCInlineAsmReg::cr7 => "cr7",
                PowerPCInlineAsmReg::ctr => "ctr",
                PowerPCInlineAsmReg::lr => "lr",
                PowerPCInlineAsmReg::xer => "xer",
                PowerPCInlineAsmReg::spe_acc => "spe_acc",
            })
    }
}
#[automatically_derived]
#[allow(unreachable_code)]
#[allow(non_camel_case_types)]
impl ::core::cmp::Eq for PowerPCInlineAsmReg {
    #[inline]
    #[doc(hidden)]
    #[coverage(off)]
    fn assert_receiver_is_total_eq(&self) -> () {}
}
#[automatically_derived]
#[allow(unreachable_code)]
#[allow(non_camel_case_types)]
impl ::core::marker::StructuralPartialEq for PowerPCInlineAsmReg { }
#[automatically_derived]
#[allow(unreachable_code)]
#[allow(non_camel_case_types)]
impl ::core::cmp::PartialEq for PowerPCInlineAsmReg {
    #[inline]
    fn eq(&self, other: &PowerPCInlineAsmReg) -> bool {
        let __self_discr = ::core::intrinsics::discriminant_value(self);
        let __arg1_discr = ::core::intrinsics::discriminant_value(other);
        __self_discr == __arg1_discr
    }
}
#[automatically_derived]
#[allow(unreachable_code)]
#[allow(non_camel_case_types)]
impl ::core::cmp::PartialOrd for PowerPCInlineAsmReg {
    #[inline]
    fn partial_cmp(&self, other: &PowerPCInlineAsmReg)
        -> ::core::option::Option<::core::cmp::Ordering> {
        let __self_discr = ::core::intrinsics::discriminant_value(self);
        let __arg1_discr = ::core::intrinsics::discriminant_value(other);
        ::core::cmp::PartialOrd::partial_cmp(&__self_discr, &__arg1_discr)
    }
}
#[automatically_derived]
#[allow(unreachable_code)]
#[allow(non_camel_case_types)]
impl ::core::hash::Hash for PowerPCInlineAsmReg {
    #[inline]
    fn hash<__H: ::core::hash::Hasher>(&self, state: &mut __H) -> () {
        let __self_discr = ::core::intrinsics::discriminant_value(self);
        ::core::hash::Hash::hash(&__self_discr, state)
    }
}
const _: () =
    {
        impl<__CTX> ::rustc_data_structures::stable_hasher::HashStable<__CTX>
            for PowerPCInlineAsmReg where __CTX: crate::HashStableContext {
            #[inline]
            fn hash_stable(&self, __hcx: &mut __CTX,
                __hasher:
                    &mut ::rustc_data_structures::stable_hasher::StableHasher) {
                ::std::mem::discriminant(self).hash_stable(__hcx, __hasher);
                match *self {
                    PowerPCInlineAsmReg::r0 => {}
                    PowerPCInlineAsmReg::r3 => {}
                    PowerPCInlineAsmReg::r4 => {}
                    PowerPCInlineAsmReg::r5 => {}
                    PowerPCInlineAsmReg::r6 => {}
                    PowerPCInlineAsmReg::r7 => {}
                    PowerPCInlineAsmReg::r8 => {}
                    PowerPCInlineAsmReg::r9 => {}
                    PowerPCInlineAsmReg::r10 => {}
                    PowerPCInlineAsmReg::r11 => {}
                    PowerPCInlineAsmReg::r12 => {}
                    PowerPCInlineAsmReg::r13 => {}
                    PowerPCInlineAsmReg::r14 => {}
                    PowerPCInlineAsmReg::r15 => {}
                    PowerPCInlineAsmReg::r16 => {}
                    PowerPCInlineAsmReg::r17 => {}
                    PowerPCInlineAsmReg::r18 => {}
                    PowerPCInlineAsmReg::r19 => {}
                    PowerPCInlineAsmReg::r20 => {}
                    PowerPCInlineAsmReg::r21 => {}
                    PowerPCInlineAsmReg::r22 => {}
                    PowerPCInlineAsmReg::r23 => {}
                    PowerPCInlineAsmReg::r24 => {}
                    PowerPCInlineAsmReg::r25 => {}
                    PowerPCInlineAsmReg::r26 => {}
                    PowerPCInlineAsmReg::r27 => {}
                    PowerPCInlineAsmReg::r28 => {}
                    PowerPCInlineAsmReg::r29 => {}
                    PowerPCInlineAsmReg::f0 => {}
                    PowerPCInlineAsmReg::f1 => {}
                    PowerPCInlineAsmReg::f2 => {}
                    PowerPCInlineAsmReg::f3 => {}
                    PowerPCInlineAsmReg::f4 => {}
                    PowerPCInlineAsmReg::f5 => {}
                    PowerPCInlineAsmReg::f6 => {}
                    PowerPCInlineAsmReg::f7 => {}
                    PowerPCInlineAsmReg::f8 => {}
                    PowerPCInlineAsmReg::f9 => {}
                    PowerPCInlineAsmReg::f10 => {}
                    PowerPCInlineAsmReg::f11 => {}
                    PowerPCInlineAsmReg::f12 => {}
                    PowerPCInlineAsmReg::f13 => {}
                    PowerPCInlineAsmReg::f14 => {}
                    PowerPCInlineAsmReg::f15 => {}
                    PowerPCInlineAsmReg::f16 => {}
                    PowerPCInlineAsmReg::f17 => {}
                    PowerPCInlineAsmReg::f18 => {}
                    PowerPCInlineAsmReg::f19 => {}
                    PowerPCInlineAsmReg::f20 => {}
                    PowerPCInlineAsmReg::f21 => {}
                    PowerPCInlineAsmReg::f22 => {}
                    PowerPCInlineAsmReg::f23 => {}
                    PowerPCInlineAsmReg::f24 => {}
                    PowerPCInlineAsmReg::f25 => {}
                    PowerPCInlineAsmReg::f26 => {}
                    PowerPCInlineAsmReg::f27 => {}
                    PowerPCInlineAsmReg::f28 => {}
                    PowerPCInlineAsmReg::f29 => {}
                    PowerPCInlineAsmReg::f30 => {}
                    PowerPCInlineAsmReg::f31 => {}
                    PowerPCInlineAsmReg::v0 => {}
                    PowerPCInlineAsmReg::v1 => {}
                    PowerPCInlineAsmReg::v2 => {}
                    PowerPCInlineAsmReg::v3 => {}
                    PowerPCInlineAsmReg::v4 => {}
                    PowerPCInlineAsmReg::v5 => {}
                    PowerPCInlineAsmReg::v6 => {}
                    PowerPCInlineAsmReg::v7 => {}
                    PowerPCInlineAsmReg::v8 => {}
                    PowerPCInlineAsmReg::v9 => {}
                    PowerPCInlineAsmReg::v10 => {}
                    PowerPCInlineAsmReg::v11 => {}
                    PowerPCInlineAsmReg::v12 => {}
                    PowerPCInlineAsmReg::v13 => {}
                    PowerPCInlineAsmReg::v14 => {}
                    PowerPCInlineAsmReg::v15 => {}
                    PowerPCInlineAsmReg::v16 => {}
                    PowerPCInlineAsmReg::v17 => {}
                    PowerPCInlineAsmReg::v18 => {}
                    PowerPCInlineAsmReg::v19 => {}
                    PowerPCInlineAsmReg::v20 => {}
                    PowerPCInlineAsmReg::v21 => {}
                    PowerPCInlineAsmReg::v22 => {}
                    PowerPCInlineAsmReg::v23 => {}
                    PowerPCInlineAsmReg::v24 => {}
                    PowerPCInlineAsmReg::v25 => {}
                    PowerPCInlineAsmReg::v26 => {}
                    PowerPCInlineAsmReg::v27 => {}
                    PowerPCInlineAsmReg::v28 => {}
                    PowerPCInlineAsmReg::v29 => {}
                    PowerPCInlineAsmReg::v30 => {}
                    PowerPCInlineAsmReg::v31 => {}
                    PowerPCInlineAsmReg::vs0 => {}
                    PowerPCInlineAsmReg::vs1 => {}
                    PowerPCInlineAsmReg::vs2 => {}
                    PowerPCInlineAsmReg::vs3 => {}
                    PowerPCInlineAsmReg::vs4 => {}
                    PowerPCInlineAsmReg::vs5 => {}
                    PowerPCInlineAsmReg::vs6 => {}
                    PowerPCInlineAsmReg::vs7 => {}
                    PowerPCInlineAsmReg::vs8 => {}
                    PowerPCInlineAsmReg::vs9 => {}
                    PowerPCInlineAsmReg::vs10 => {}
                    PowerPCInlineAsmReg::vs11 => {}
                    PowerPCInlineAsmReg::vs12 => {}
                    PowerPCInlineAsmReg::vs13 => {}
                    PowerPCInlineAsmReg::vs14 => {}
                    PowerPCInlineAsmReg::vs15 => {}
                    PowerPCInlineAsmReg::vs16 => {}
                    PowerPCInlineAsmReg::vs17 => {}
                    PowerPCInlineAsmReg::vs18 => {}
                    PowerPCInlineAsmReg::vs19 => {}
                    PowerPCInlineAsmReg::vs20 => {}
                    PowerPCInlineAsmReg::vs21 => {}
                    PowerPCInlineAsmReg::vs22 => {}
                    PowerPCInlineAsmReg::vs23 => {}
                    PowerPCInlineAsmReg::vs24 => {}
                    PowerPCInlineAsmReg::vs25 => {}
                    PowerPCInlineAsmReg::vs26 => {}
                    PowerPCInlineAsmReg::vs27 => {}
                    PowerPCInlineAsmReg::vs28 => {}
                    PowerPCInlineAsmReg::vs29 => {}
                    PowerPCInlineAsmReg::vs30 => {}
                    PowerPCInlineAsmReg::vs31 => {}
                    PowerPCInlineAsmReg::vs32 => {}
                    PowerPCInlineAsmReg::vs33 => {}
                    PowerPCInlineAsmReg::vs34 => {}
                    PowerPCInlineAsmReg::vs35 => {}
                    PowerPCInlineAsmReg::vs36 => {}
                    PowerPCInlineAsmReg::vs37 => {}
                    PowerPCInlineAsmReg::vs38 => {}
                    PowerPCInlineAsmReg::vs39 => {}
                    PowerPCInlineAsmReg::vs40 => {}
                    PowerPCInlineAsmReg::vs41 => {}
                    PowerPCInlineAsmReg::vs42 => {}
                    PowerPCInlineAsmReg::vs43 => {}
                    PowerPCInlineAsmReg::vs44 => {}
                    PowerPCInlineAsmReg::vs45 => {}
                    PowerPCInlineAsmReg::vs46 => {}
                    PowerPCInlineAsmReg::vs47 => {}
                    PowerPCInlineAsmReg::vs48 => {}
                    PowerPCInlineAsmReg::vs49 => {}
                    PowerPCInlineAsmReg::vs50 => {}
                    PowerPCInlineAsmReg::vs51 => {}
                    PowerPCInlineAsmReg::vs52 => {}
                    PowerPCInlineAsmReg::vs53 => {}
                    PowerPCInlineAsmReg::vs54 => {}
                    PowerPCInlineAsmReg::vs55 => {}
                    PowerPCInlineAsmReg::vs56 => {}
                    PowerPCInlineAsmReg::vs57 => {}
                    PowerPCInlineAsmReg::vs58 => {}
                    PowerPCInlineAsmReg::vs59 => {}
                    PowerPCInlineAsmReg::vs60 => {}
                    PowerPCInlineAsmReg::vs61 => {}
                    PowerPCInlineAsmReg::vs62 => {}
                    PowerPCInlineAsmReg::vs63 => {}
                    PowerPCInlineAsmReg::cr => {}
                    PowerPCInlineAsmReg::cr0 => {}
                    PowerPCInlineAsmReg::cr1 => {}
                    PowerPCInlineAsmReg::cr2 => {}
                    PowerPCInlineAsmReg::cr3 => {}
                    PowerPCInlineAsmReg::cr4 => {}
                    PowerPCInlineAsmReg::cr5 => {}
                    PowerPCInlineAsmReg::cr6 => {}
                    PowerPCInlineAsmReg::cr7 => {}
                    PowerPCInlineAsmReg::ctr => {}
                    PowerPCInlineAsmReg::lr => {}
                    PowerPCInlineAsmReg::xer => {}
                    PowerPCInlineAsmReg::spe_acc => {}
                }
            }
        }
    };
impl PowerPCInlineAsmReg {
    pub fn name(self) -> &'static str {
        match self {
            Self::r0 => "r0",
            Self::r3 => "r3",
            Self::r4 => "r4",
            Self::r5 => "r5",
            Self::r6 => "r6",
            Self::r7 => "r7",
            Self::r8 => "r8",
            Self::r9 => "r9",
            Self::r10 => "r10",
            Self::r11 => "r11",
            Self::r12 => "r12",
            Self::r13 => "r13",
            Self::r14 => "r14",
            Self::r15 => "r15",
            Self::r16 => "r16",
            Self::r17 => "r17",
            Self::r18 => "r18",
            Self::r19 => "r19",
            Self::r20 => "r20",
            Self::r21 => "r21",
            Self::r22 => "r22",
            Self::r23 => "r23",
            Self::r24 => "r24",
            Self::r25 => "r25",
            Self::r26 => "r26",
            Self::r27 => "r27",
            Self::r28 => "r28",
            Self::r29 => "r29",
            Self::f0 => "f0",
            Self::f1 => "f1",
            Self::f2 => "f2",
            Self::f3 => "f3",
            Self::f4 => "f4",
            Self::f5 => "f5",
            Self::f6 => "f6",
            Self::f7 => "f7",
            Self::f8 => "f8",
            Self::f9 => "f9",
            Self::f10 => "f10",
            Self::f11 => "f11",
            Self::f12 => "f12",
            Self::f13 => "f13",
            Self::f14 => "f14",
            Self::f15 => "f15",
            Self::f16 => "f16",
            Self::f17 => "f17",
            Self::f18 => "f18",
            Self::f19 => "f19",
            Self::f20 => "f20",
            Self::f21 => "f21",
            Self::f22 => "f22",
            Self::f23 => "f23",
            Self::f24 => "f24",
            Self::f25 => "f25",
            Self::f26 => "f26",
            Self::f27 => "f27",
            Self::f28 => "f28",
            Self::f29 => "f29",
            Self::f30 => "f30",
            Self::f31 => "f31",
            Self::v0 => "v0",
            Self::v1 => "v1",
            Self::v2 => "v2",
            Self::v3 => "v3",
            Self::v4 => "v4",
            Self::v5 => "v5",
            Self::v6 => "v6",
            Self::v7 => "v7",
            Self::v8 => "v8",
            Self::v9 => "v9",
            Self::v10 => "v10",
            Self::v11 => "v11",
            Self::v12 => "v12",
            Self::v13 => "v13",
            Self::v14 => "v14",
            Self::v15 => "v15",
            Self::v16 => "v16",
            Self::v17 => "v17",
            Self::v18 => "v18",
            Self::v19 => "v19",
            Self::v20 => "v20",
            Self::v21 => "v21",
            Self::v22 => "v22",
            Self::v23 => "v23",
            Self::v24 => "v24",
            Self::v25 => "v25",
            Self::v26 => "v26",
            Self::v27 => "v27",
            Self::v28 => "v28",
            Self::v29 => "v29",
            Self::v30 => "v30",
            Self::v31 => "v31",
            Self::vs0 => "vs0",
            Self::vs1 => "vs1",
            Self::vs2 => "vs2",
            Self::vs3 => "vs3",
            Self::vs4 => "vs4",
            Self::vs5 => "vs5",
            Self::vs6 => "vs6",
            Self::vs7 => "vs7",
            Self::vs8 => "vs8",
            Self::vs9 => "vs9",
            Self::vs10 => "vs10",
            Self::vs11 => "vs11",
            Self::vs12 => "vs12",
            Self::vs13 => "vs13",
            Self::vs14 => "vs14",
            Self::vs15 => "vs15",
            Self::vs16 => "vs16",
            Self::vs17 => "vs17",
            Self::vs18 => "vs18",
            Self::vs19 => "vs19",
            Self::vs20 => "vs20",
            Self::vs21 => "vs21",
            Self::vs22 => "vs22",
            Self::vs23 => "vs23",
            Self::vs24 => "vs24",
            Self::vs25 => "vs25",
            Self::vs26 => "vs26",
            Self::vs27 => "vs27",
            Self::vs28 => "vs28",
            Self::vs29 => "vs29",
            Self::vs30 => "vs30",
            Self::vs31 => "vs31",
            Self::vs32 => "vs32",
            Self::vs33 => "vs33",
            Self::vs34 => "vs34",
            Self::vs35 => "vs35",
            Self::vs36 => "vs36",
            Self::vs37 => "vs37",
            Self::vs38 => "vs38",
            Self::vs39 => "vs39",
            Self::vs40 => "vs40",
            Self::vs41 => "vs41",
            Self::vs42 => "vs42",
            Self::vs43 => "vs43",
            Self::vs44 => "vs44",
            Self::vs45 => "vs45",
            Self::vs46 => "vs46",
            Self::vs47 => "vs47",
            Self::vs48 => "vs48",
            Self::vs49 => "vs49",
            Self::vs50 => "vs50",
            Self::vs51 => "vs51",
            Self::vs52 => "vs52",
            Self::vs53 => "vs53",
            Self::vs54 => "vs54",
            Self::vs55 => "vs55",
            Self::vs56 => "vs56",
            Self::vs57 => "vs57",
            Self::vs58 => "vs58",
            Self::vs59 => "vs59",
            Self::vs60 => "vs60",
            Self::vs61 => "vs61",
            Self::vs62 => "vs62",
            Self::vs63 => "vs63",
            Self::cr => "cr",
            Self::cr0 => "cr0",
            Self::cr1 => "cr1",
            Self::cr2 => "cr2",
            Self::cr3 => "cr3",
            Self::cr4 => "cr4",
            Self::cr5 => "cr5",
            Self::cr6 => "cr6",
            Self::cr7 => "cr7",
            Self::ctr => "ctr",
            Self::lr => "lr",
            Self::xer => "xer",
            Self::spe_acc => "spe_acc",
        }
    }
    pub fn reg_class(self) -> PowerPCInlineAsmRegClass {
        match self {
            Self::r0 => PowerPCInlineAsmRegClass::reg,
            Self::r3 => PowerPCInlineAsmRegClass::reg,
            Self::r4 => PowerPCInlineAsmRegClass::reg,
            Self::r5 => PowerPCInlineAsmRegClass::reg,
            Self::r6 => PowerPCInlineAsmRegClass::reg,
            Self::r7 => PowerPCInlineAsmRegClass::reg,
            Self::r8 => PowerPCInlineAsmRegClass::reg,
            Self::r9 => PowerPCInlineAsmRegClass::reg,
            Self::r10 => PowerPCInlineAsmRegClass::reg,
            Self::r11 => PowerPCInlineAsmRegClass::reg,
            Self::r12 => PowerPCInlineAsmRegClass::reg,
            Self::r13 => PowerPCInlineAsmRegClass::reg,
            Self::r14 => PowerPCInlineAsmRegClass::reg,
            Self::r15 => PowerPCInlineAsmRegClass::reg,
            Self::r16 => PowerPCInlineAsmRegClass::reg,
            Self::r17 => PowerPCInlineAsmRegClass::reg,
            Self::r18 => PowerPCInlineAsmRegClass::reg,
            Self::r19 => PowerPCInlineAsmRegClass::reg,
            Self::r20 => PowerPCInlineAsmRegClass::reg,
            Self::r21 => PowerPCInlineAsmRegClass::reg,
            Self::r22 => PowerPCInlineAsmRegClass::reg,
            Self::r23 => PowerPCInlineAsmRegClass::reg,
            Self::r24 => PowerPCInlineAsmRegClass::reg,
            Self::r25 => PowerPCInlineAsmRegClass::reg,
            Self::r26 => PowerPCInlineAsmRegClass::reg,
            Self::r27 => PowerPCInlineAsmRegClass::reg,
            Self::r28 => PowerPCInlineAsmRegClass::reg,
            Self::r29 => PowerPCInlineAsmRegClass::reg,
            Self::f0 => PowerPCInlineAsmRegClass::freg,
            Self::f1 => PowerPCInlineAsmRegClass::freg,
            Self::f2 => PowerPCInlineAsmRegClass::freg,
            Self::f3 => PowerPCInlineAsmRegClass::freg,
            Self::f4 => PowerPCInlineAsmRegClass::freg,
            Self::f5 => PowerPCInlineAsmRegClass::freg,
            Self::f6 => PowerPCInlineAsmRegClass::freg,
            Self::f7 => PowerPCInlineAsmRegClass::freg,
            Self::f8 => PowerPCInlineAsmRegClass::freg,
            Self::f9 => PowerPCInlineAsmRegClass::freg,
            Self::f10 => PowerPCInlineAsmRegClass::freg,
            Self::f11 => PowerPCInlineAsmRegClass::freg,
            Self::f12 => PowerPCInlineAsmRegClass::freg,
            Self::f13 => PowerPCInlineAsmRegClass::freg,
            Self::f14 => PowerPCInlineAsmRegClass::freg,
            Self::f15 => PowerPCInlineAsmRegClass::freg,
            Self::f16 => PowerPCInlineAsmRegClass::freg,
            Self::f17 => PowerPCInlineAsmRegClass::freg,
            Self::f18 => PowerPCInlineAsmRegClass::freg,
            Self::f19 => PowerPCInlineAsmRegClass::freg,
            Self::f20 => PowerPCInlineAsmRegClass::freg,
            Self::f21 => PowerPCInlineAsmRegClass::freg,
            Self::f22 => PowerPCInlineAsmRegClass::freg,
            Self::f23 => PowerPCInlineAsmRegClass::freg,
            Self::f24 => PowerPCInlineAsmRegClass::freg,
            Self::f25 => PowerPCInlineAsmRegClass::freg,
            Self::f26 => PowerPCInlineAsmRegClass::freg,
            Self::f27 => PowerPCInlineAsmRegClass::freg,
            Self::f28 => PowerPCInlineAsmRegClass::freg,
            Self::f29 => PowerPCInlineAsmRegClass::freg,
            Self::f30 => PowerPCInlineAsmRegClass::freg,
            Self::f31 => PowerPCInlineAsmRegClass::freg,
            Self::v0 => PowerPCInlineAsmRegClass::vreg,
            Self::v1 => PowerPCInlineAsmRegClass::vreg,
            Self::v2 => PowerPCInlineAsmRegClass::vreg,
            Self::v3 => PowerPCInlineAsmRegClass::vreg,
            Self::v4 => PowerPCInlineAsmRegClass::vreg,
            Self::v5 => PowerPCInlineAsmRegClass::vreg,
            Self::v6 => PowerPCInlineAsmRegClass::vreg,
            Self::v7 => PowerPCInlineAsmRegClass::vreg,
            Self::v8 => PowerPCInlineAsmRegClass::vreg,
            Self::v9 => PowerPCInlineAsmRegClass::vreg,
            Self::v10 => PowerPCInlineAsmRegClass::vreg,
            Self::v11 => PowerPCInlineAsmRegClass::vreg,
            Self::v12 => PowerPCInlineAsmRegClass::vreg,
            Self::v13 => PowerPCInlineAsmRegClass::vreg,
            Self::v14 => PowerPCInlineAsmRegClass::vreg,
            Self::v15 => PowerPCInlineAsmRegClass::vreg,
            Self::v16 => PowerPCInlineAsmRegClass::vreg,
            Self::v17 => PowerPCInlineAsmRegClass::vreg,
            Self::v18 => PowerPCInlineAsmRegClass::vreg,
            Self::v19 => PowerPCInlineAsmRegClass::vreg,
            Self::v20 => PowerPCInlineAsmRegClass::vreg,
            Self::v21 => PowerPCInlineAsmRegClass::vreg,
            Self::v22 => PowerPCInlineAsmRegClass::vreg,
            Self::v23 => PowerPCInlineAsmRegClass::vreg,
            Self::v24 => PowerPCInlineAsmRegClass::vreg,
            Self::v25 => PowerPCInlineAsmRegClass::vreg,
            Self::v26 => PowerPCInlineAsmRegClass::vreg,
            Self::v27 => PowerPCInlineAsmRegClass::vreg,
            Self::v28 => PowerPCInlineAsmRegClass::vreg,
            Self::v29 => PowerPCInlineAsmRegClass::vreg,
            Self::v30 => PowerPCInlineAsmRegClass::vreg,
            Self::v31 => PowerPCInlineAsmRegClass::vreg,
            Self::vs0 => PowerPCInlineAsmRegClass::vsreg,
            Self::vs1 => PowerPCInlineAsmRegClass::vsreg,
            Self::vs2 => PowerPCInlineAsmRegClass::vsreg,
            Self::vs3 => PowerPCInlineAsmRegClass::vsreg,
            Self::vs4 => PowerPCInlineAsmRegClass::vsreg,
            Self::vs5 => PowerPCInlineAsmRegClass::vsreg,
            Self::vs6 => PowerPCInlineAsmRegClass::vsreg,
            Self::vs7 => PowerPCInlineAsmRegClass::vsreg,
            Self::vs8 => PowerPCInlineAsmRegClass::vsreg,
            Self::vs9 => PowerPCInlineAsmRegClass::vsreg,
            Self::vs10 => PowerPCInlineAsmRegClass::vsreg,
            Self::vs11 => PowerPCInlineAsmRegClass::vsreg,
            Self::vs12 => PowerPCInlineAsmRegClass::vsreg,
            Self::vs13 => PowerPCInlineAsmRegClass::vsreg,
            Self::vs14 => PowerPCInlineAsmRegClass::vsreg,
            Self::vs15 => PowerPCInlineAsmRegClass::vsreg,
            Self::vs16 => PowerPCInlineAsmRegClass::vsreg,
            Self::vs17 => PowerPCInlineAsmRegClass::vsreg,
            Self::vs18 => PowerPCInlineAsmRegClass::vsreg,
            Self::vs19 => PowerPCInlineAsmRegClass::vsreg,
            Self::vs20 => PowerPCInlineAsmRegClass::vsreg,
            Self::vs21 => PowerPCInlineAsmRegClass::vsreg,
            Self::vs22 => PowerPCInlineAsmRegClass::vsreg,
            Self::vs23 => PowerPCInlineAsmRegClass::vsreg,
            Self::vs24 => PowerPCInlineAsmRegClass::vsreg,
            Self::vs25 => PowerPCInlineAsmRegClass::vsreg,
            Self::vs26 => PowerPCInlineAsmRegClass::vsreg,
            Self::vs27 => PowerPCInlineAsmRegClass::vsreg,
            Self::vs28 => PowerPCInlineAsmRegClass::vsreg,
            Self::vs29 => PowerPCInlineAsmRegClass::vsreg,
            Self::vs30 => PowerPCInlineAsmRegClass::vsreg,
            Self::vs31 => PowerPCInlineAsmRegClass::vsreg,
            Self::vs32 => PowerPCInlineAsmRegClass::vsreg,
            Self::vs33 => PowerPCInlineAsmRegClass::vsreg,
            Self::vs34 => PowerPCInlineAsmRegClass::vsreg,
            Self::vs35 => PowerPCInlineAsmRegClass::vsreg,
            Self::vs36 => PowerPCInlineAsmRegClass::vsreg,
            Self::vs37 => PowerPCInlineAsmRegClass::vsreg,
            Self::vs38 => PowerPCInlineAsmRegClass::vsreg,
            Self::vs39 => PowerPCInlineAsmRegClass::vsreg,
            Self::vs40 => PowerPCInlineAsmRegClass::vsreg,
            Self::vs41 => PowerPCInlineAsmRegClass::vsreg,
            Self::vs42 => PowerPCInlineAsmRegClass::vsreg,
            Self::vs43 => PowerPCInlineAsmRegClass::vsreg,
            Self::vs44 => PowerPCInlineAsmRegClass::vsreg,
            Self::vs45 => PowerPCInlineAsmRegClass::vsreg,
            Self::vs46 => PowerPCInlineAsmRegClass::vsreg,
            Self::vs47 => PowerPCInlineAsmRegClass::vsreg,
            Self::vs48 => PowerPCInlineAsmRegClass::vsreg,
            Self::vs49 => PowerPCInlineAsmRegClass::vsreg,
            Self::vs50 => PowerPCInlineAsmRegClass::vsreg,
            Self::vs51 => PowerPCInlineAsmRegClass::vsreg,
            Self::vs52 => PowerPCInlineAsmRegClass::vsreg,
            Self::vs53 => PowerPCInlineAsmRegClass::vsreg,
            Self::vs54 => PowerPCInlineAsmRegClass::vsreg,
            Self::vs55 => PowerPCInlineAsmRegClass::vsreg,
            Self::vs56 => PowerPCInlineAsmRegClass::vsreg,
            Self::vs57 => PowerPCInlineAsmRegClass::vsreg,
            Self::vs58 => PowerPCInlineAsmRegClass::vsreg,
            Self::vs59 => PowerPCInlineAsmRegClass::vsreg,
            Self::vs60 => PowerPCInlineAsmRegClass::vsreg,
            Self::vs61 => PowerPCInlineAsmRegClass::vsreg,
            Self::vs62 => PowerPCInlineAsmRegClass::vsreg,
            Self::vs63 => PowerPCInlineAsmRegClass::vsreg,
            Self::cr => PowerPCInlineAsmRegClass::cr,
            Self::cr0 => PowerPCInlineAsmRegClass::cr,
            Self::cr1 => PowerPCInlineAsmRegClass::cr,
            Self::cr2 => PowerPCInlineAsmRegClass::cr,
            Self::cr3 => PowerPCInlineAsmRegClass::cr,
            Self::cr4 => PowerPCInlineAsmRegClass::cr,
            Self::cr5 => PowerPCInlineAsmRegClass::cr,
            Self::cr6 => PowerPCInlineAsmRegClass::cr,
            Self::cr7 => PowerPCInlineAsmRegClass::cr,
            Self::ctr => PowerPCInlineAsmRegClass::ctr,
            Self::lr => PowerPCInlineAsmRegClass::lr,
            Self::xer => PowerPCInlineAsmRegClass::xer,
            Self::spe_acc => PowerPCInlineAsmRegClass::spe_acc,
        }
    }
    pub fn parse(name: &str) -> Result<Self, &'static str> {
        match name {
            "0" | "r0" => Ok(Self::r0),
            "3" | "r3" => Ok(Self::r3),
            "4" | "r4" => Ok(Self::r4),
            "5" | "r5" => Ok(Self::r5),
            "6" | "r6" => Ok(Self::r6),
            "7" | "r7" => Ok(Self::r7),
            "8" | "r8" => Ok(Self::r8),
            "9" | "r9" => Ok(Self::r9),
            "10" | "r10" => Ok(Self::r10),
            "11" | "r11" => Ok(Self::r11),
            "12" | "r12" => Ok(Self::r12),
            "13" | "r13" => Ok(Self::r13),
            "14" | "r14" => Ok(Self::r14),
            "15" | "r15" => Ok(Self::r15),
            "16" | "r16" => Ok(Self::r16),
            "17" | "r17" => Ok(Self::r17),
            "18" | "r18" => Ok(Self::r18),
            "19" | "r19" => Ok(Self::r19),
            "20" | "r20" => Ok(Self::r20),
            "21" | "r21" => Ok(Self::r21),
            "22" | "r22" => Ok(Self::r22),
            "23" | "r23" => Ok(Self::r23),
            "24" | "r24" => Ok(Self::r24),
            "25" | "r25" => Ok(Self::r25),
            "26" | "r26" => Ok(Self::r26),
            "27" | "r27" => Ok(Self::r27),
            "28" | "r28" => Ok(Self::r28),
            "29" | "r29" => Ok(Self::r29),
            "fr0" | "f0" => Ok(Self::f0),
            "fr1" | "f1" => Ok(Self::f1),
            "fr2" | "f2" => Ok(Self::f2),
            "fr3" | "f3" => Ok(Self::f3),
            "fr4" | "f4" => Ok(Self::f4),
            "fr5" | "f5" => Ok(Self::f5),
            "fr6" | "f6" => Ok(Self::f6),
            "fr7" | "f7" => Ok(Self::f7),
            "fr8" | "f8" => Ok(Self::f8),
            "fr9" | "f9" => Ok(Self::f9),
            "fr10" | "f10" => Ok(Self::f10),
            "fr11" | "f11" => Ok(Self::f11),
            "fr12" | "f12" => Ok(Self::f12),
            "fr13" | "f13" => Ok(Self::f13),
            "fr14" | "f14" => Ok(Self::f14),
            "fr15" | "f15" => Ok(Self::f15),
            "fr16" | "f16" => Ok(Self::f16),
            "fr17" | "f17" => Ok(Self::f17),
            "fr18" | "f18" => Ok(Self::f18),
            "fr19" | "f19" => Ok(Self::f19),
            "fr20" | "f20" => Ok(Self::f20),
            "fr21" | "f21" => Ok(Self::f21),
            "fr22" | "f22" => Ok(Self::f22),
            "fr23" | "f23" => Ok(Self::f23),
            "fr24" | "f24" => Ok(Self::f24),
            "fr25" | "f25" => Ok(Self::f25),
            "fr26" | "f26" => Ok(Self::f26),
            "fr27" | "f27" => Ok(Self::f27),
            "fr28" | "f28" => Ok(Self::f28),
            "fr29" | "f29" => Ok(Self::f29),
            "fr30" | "f30" => Ok(Self::f30),
            "fr31" | "f31" => Ok(Self::f31),
            "v0" => Ok(Self::v0),
            "v1" => Ok(Self::v1),
            "v2" => Ok(Self::v2),
            "v3" => Ok(Self::v3),
            "v4" => Ok(Self::v4),
            "v5" => Ok(Self::v5),
            "v6" => Ok(Self::v6),
            "v7" => Ok(Self::v7),
            "v8" => Ok(Self::v8),
            "v9" => Ok(Self::v9),
            "v10" => Ok(Self::v10),
            "v11" => Ok(Self::v11),
            "v12" => Ok(Self::v12),
            "v13" => Ok(Self::v13),
            "v14" => Ok(Self::v14),
            "v15" => Ok(Self::v15),
            "v16" => Ok(Self::v16),
            "v17" => Ok(Self::v17),
            "v18" => Ok(Self::v18),
            "v19" => Ok(Self::v19),
            "v20" => Ok(Self::v20),
            "v21" => Ok(Self::v21),
            "v22" => Ok(Self::v22),
            "v23" => Ok(Self::v23),
            "v24" => Ok(Self::v24),
            "v25" => Ok(Self::v25),
            "v26" => Ok(Self::v26),
            "v27" => Ok(Self::v27),
            "v28" => Ok(Self::v28),
            "v29" => Ok(Self::v29),
            "v30" => Ok(Self::v30),
            "v31" => Ok(Self::v31),
            "vs0" => Ok(Self::vs0),
            "vs1" => Ok(Self::vs1),
            "vs2" => Ok(Self::vs2),
            "vs3" => Ok(Self::vs3),
            "vs4" => Ok(Self::vs4),
            "vs5" => Ok(Self::vs5),
            "vs6" => Ok(Self::vs6),
            "vs7" => Ok(Self::vs7),
            "vs8" => Ok(Self::vs8),
            "vs9" => Ok(Self::vs9),
            "vs10" => Ok(Self::vs10),
            "vs11" => Ok(Self::vs11),
            "vs12" => Ok(Self::vs12),
            "vs13" => Ok(Self::vs13),
            "vs14" => Ok(Self::vs14),
            "vs15" => Ok(Self::vs15),
            "vs16" => Ok(Self::vs16),
            "vs17" => Ok(Self::vs17),
            "vs18" => Ok(Self::vs18),
            "vs19" => Ok(Self::vs19),
            "vs20" => Ok(Self::vs20),
            "vs21" => Ok(Self::vs21),
            "vs22" => Ok(Self::vs22),
            "vs23" => Ok(Self::vs23),
            "vs24" => Ok(Self::vs24),
            "vs25" => Ok(Self::vs25),
            "vs26" => Ok(Self::vs26),
            "vs27" => Ok(Self::vs27),
            "vs28" => Ok(Self::vs28),
            "vs29" => Ok(Self::vs29),
            "vs30" => Ok(Self::vs30),
            "vs31" => Ok(Self::vs31),
            "vs32" => Ok(Self::vs32),
            "vs33" => Ok(Self::vs33),
            "vs34" => Ok(Self::vs34),
            "vs35" => Ok(Self::vs35),
            "vs36" => Ok(Self::vs36),
            "vs37" => Ok(Self::vs37),
            "vs38" => Ok(Self::vs38),
            "vs39" => Ok(Self::vs39),
            "vs40" => Ok(Self::vs40),
            "vs41" => Ok(Self::vs41),
            "vs42" => Ok(Self::vs42),
            "vs43" => Ok(Self::vs43),
            "vs44" => Ok(Self::vs44),
            "vs45" => Ok(Self::vs45),
            "vs46" => Ok(Self::vs46),
            "vs47" => Ok(Self::vs47),
            "vs48" => Ok(Self::vs48),
            "vs49" => Ok(Self::vs49),
            "vs50" => Ok(Self::vs50),
            "vs51" => Ok(Self::vs51),
            "vs52" => Ok(Self::vs52),
            "vs53" => Ok(Self::vs53),
            "vs54" => Ok(Self::vs54),
            "vs55" => Ok(Self::vs55),
            "vs56" => Ok(Self::vs56),
            "vs57" => Ok(Self::vs57),
            "vs58" => Ok(Self::vs58),
            "vs59" => Ok(Self::vs59),
            "vs60" => Ok(Self::vs60),
            "vs61" => Ok(Self::vs61),
            "vs62" => Ok(Self::vs62),
            "vs63" => Ok(Self::vs63),
            "cr" => Ok(Self::cr),
            "cr0" => Ok(Self::cr0),
            "cr1" => Ok(Self::cr1),
            "cr2" => Ok(Self::cr2),
            "cr3" => Ok(Self::cr3),
            "cr4" => Ok(Self::cr4),
            "cr5" => Ok(Self::cr5),
            "cr6" => Ok(Self::cr6),
            "cr7" => Ok(Self::cr7),
            "ctr" => Ok(Self::ctr),
            "lr" => Ok(Self::lr),
            "xer" => Ok(Self::xer),
            "spe_acc" => Ok(Self::spe_acc),
            "r1" | "1" | "sp" =>
                Err("the stack pointer cannot be used as an operand for inline asm"),
            "r2" | "2" =>
                Err("r2 is a system reserved register and cannot be used as an operand for inline asm"),
            "r30" | "30" =>
                Err("r30 is used internally by LLVM and cannot be used as an operand for inline asm"),
            "r31" | "31" | "fp" =>
                Err("the frame pointer cannot be used as an operand for inline asm"),
            "vrsave" =>
                Err("the vrsave register cannot be used as an operand for inline asm"),
            _ => Err("unknown register"),
        }
    }
    pub fn validate(self, _arch: super::InlineAsmArch,
        _reloc_model: crate::spec::RelocModel,
        _target_features: &rustc_data_structures::fx::FxIndexSet<Symbol>,
        _target: &crate::spec::Target, _is_clobber: bool)
        -> Result<(), &'static str> {
        match self {
            Self::r0 => { Ok(()) }
            Self::r3 => { Ok(()) }
            Self::r4 => { Ok(()) }
            Self::r5 => { Ok(()) }
            Self::r6 => { Ok(()) }
            Self::r7 => { Ok(()) }
            Self::r8 => { Ok(()) }
            Self::r9 => { Ok(()) }
            Self::r10 => { Ok(()) }
            Self::r11 => { Ok(()) }
            Self::r12 => { Ok(()) }
            Self::r13 => {
                reserved_r13(_arch, _reloc_model, _target_features, _target,
                        _is_clobber)?;
                Ok(())
            }
            Self::r14 => { Ok(()) }
            Self::r15 => { Ok(()) }
            Self::r16 => { Ok(()) }
            Self::r17 => { Ok(()) }
            Self::r18 => { Ok(()) }
            Self::r19 => { Ok(()) }
            Self::r20 => { Ok(()) }
            Self::r21 => { Ok(()) }
            Self::r22 => { Ok(()) }
            Self::r23 => { Ok(()) }
            Self::r24 => { Ok(()) }
            Self::r25 => { Ok(()) }
            Self::r26 => { Ok(()) }
            Self::r27 => { Ok(()) }
            Self::r28 => { Ok(()) }
            Self::r29 => {
                reserved_r29(_arch, _reloc_model, _target_features, _target,
                        _is_clobber)?;
                Ok(())
            }
            Self::f0 => { Ok(()) }
            Self::f1 => { Ok(()) }
            Self::f2 => { Ok(()) }
            Self::f3 => { Ok(()) }
            Self::f4 => { Ok(()) }
            Self::f5 => { Ok(()) }
            Self::f6 => { Ok(()) }
            Self::f7 => { Ok(()) }
            Self::f8 => { Ok(()) }
            Self::f9 => { Ok(()) }
            Self::f10 => { Ok(()) }
            Self::f11 => { Ok(()) }
            Self::f12 => { Ok(()) }
            Self::f13 => { Ok(()) }
            Self::f14 => { Ok(()) }
            Self::f15 => { Ok(()) }
            Self::f16 => { Ok(()) }
            Self::f17 => { Ok(()) }
            Self::f18 => { Ok(()) }
            Self::f19 => { Ok(()) }
            Self::f20 => { Ok(()) }
            Self::f21 => { Ok(()) }
            Self::f22 => { Ok(()) }
            Self::f23 => { Ok(()) }
            Self::f24 => { Ok(()) }
            Self::f25 => { Ok(()) }
            Self::f26 => { Ok(()) }
            Self::f27 => { Ok(()) }
            Self::f28 => { Ok(()) }
            Self::f29 => { Ok(()) }
            Self::f30 => { Ok(()) }
            Self::f31 => { Ok(()) }
            Self::v0 => { Ok(()) }
            Self::v1 => { Ok(()) }
            Self::v2 => { Ok(()) }
            Self::v3 => { Ok(()) }
            Self::v4 => { Ok(()) }
            Self::v5 => { Ok(()) }
            Self::v6 => { Ok(()) }
            Self::v7 => { Ok(()) }
            Self::v8 => { Ok(()) }
            Self::v9 => { Ok(()) }
            Self::v10 => { Ok(()) }
            Self::v11 => { Ok(()) }
            Self::v12 => { Ok(()) }
            Self::v13 => { Ok(()) }
            Self::v14 => { Ok(()) }
            Self::v15 => { Ok(()) }
            Self::v16 => { Ok(()) }
            Self::v17 => { Ok(()) }
            Self::v18 => { Ok(()) }
            Self::v19 => { Ok(()) }
            Self::v20 => {
                reserved_v20to31(_arch, _reloc_model, _target_features,
                        _target, _is_clobber)?;
                Ok(())
            }
            Self::v21 => {
                reserved_v20to31(_arch, _reloc_model, _target_features,
                        _target, _is_clobber)?;
                Ok(())
            }
            Self::v22 => {
                reserved_v20to31(_arch, _reloc_model, _target_features,
                        _target, _is_clobber)?;
                Ok(())
            }
            Self::v23 => {
                reserved_v20to31(_arch, _reloc_model, _target_features,
                        _target, _is_clobber)?;
                Ok(())
            }
            Self::v24 => {
                reserved_v20to31(_arch, _reloc_model, _target_features,
                        _target, _is_clobber)?;
                Ok(())
            }
            Self::v25 => {
                reserved_v20to31(_arch, _reloc_model, _target_features,
                        _target, _is_clobber)?;
                Ok(())
            }
            Self::v26 => {
                reserved_v20to31(_arch, _reloc_model, _target_features,
                        _target, _is_clobber)?;
                Ok(())
            }
            Self::v27 => {
                reserved_v20to31(_arch, _reloc_model, _target_features,
                        _target, _is_clobber)?;
                Ok(())
            }
            Self::v28 => {
                reserved_v20to31(_arch, _reloc_model, _target_features,
                        _target, _is_clobber)?;
                Ok(())
            }
            Self::v29 => {
                reserved_v20to31(_arch, _reloc_model, _target_features,
                        _target, _is_clobber)?;
                Ok(())
            }
            Self::v30 => {
                reserved_v20to31(_arch, _reloc_model, _target_features,
                        _target, _is_clobber)?;
                Ok(())
            }
            Self::v31 => {
                reserved_v20to31(_arch, _reloc_model, _target_features,
                        _target, _is_clobber)?;
                Ok(())
            }
            Self::vs0 => { Ok(()) }
            Self::vs1 => { Ok(()) }
            Self::vs2 => { Ok(()) }
            Self::vs3 => { Ok(()) }
            Self::vs4 => { Ok(()) }
            Self::vs5 => { Ok(()) }
            Self::vs6 => { Ok(()) }
            Self::vs7 => { Ok(()) }
            Self::vs8 => { Ok(()) }
            Self::vs9 => { Ok(()) }
            Self::vs10 => { Ok(()) }
            Self::vs11 => { Ok(()) }
            Self::vs12 => { Ok(()) }
            Self::vs13 => { Ok(()) }
            Self::vs14 => { Ok(()) }
            Self::vs15 => { Ok(()) }
            Self::vs16 => { Ok(()) }
            Self::vs17 => { Ok(()) }
            Self::vs18 => { Ok(()) }
            Self::vs19 => { Ok(()) }
            Self::vs20 => { Ok(()) }
            Self::vs21 => { Ok(()) }
            Self::vs22 => { Ok(()) }
            Self::vs23 => { Ok(()) }
            Self::vs24 => { Ok(()) }
            Self::vs25 => { Ok(()) }
            Self::vs26 => { Ok(()) }
            Self::vs27 => { Ok(()) }
            Self::vs28 => { Ok(()) }
            Self::vs29 => { Ok(()) }
            Self::vs30 => { Ok(()) }
            Self::vs31 => { Ok(()) }
            Self::vs32 => { Ok(()) }
            Self::vs33 => { Ok(()) }
            Self::vs34 => { Ok(()) }
            Self::vs35 => { Ok(()) }
            Self::vs36 => { Ok(()) }
            Self::vs37 => { Ok(()) }
            Self::vs38 => { Ok(()) }
            Self::vs39 => { Ok(()) }
            Self::vs40 => { Ok(()) }
            Self::vs41 => { Ok(()) }
            Self::vs42 => { Ok(()) }
            Self::vs43 => { Ok(()) }
            Self::vs44 => { Ok(()) }
            Self::vs45 => { Ok(()) }
            Self::vs46 => { Ok(()) }
            Self::vs47 => { Ok(()) }
            Self::vs48 => { Ok(()) }
            Self::vs49 => { Ok(()) }
            Self::vs50 => { Ok(()) }
            Self::vs51 => { Ok(()) }
            Self::vs52 => {
                reserved_v20to31(_arch, _reloc_model, _target_features,
                        _target, _is_clobber)?;
                Ok(())
            }
            Self::vs53 => {
                reserved_v20to31(_arch, _reloc_model, _target_features,
                        _target, _is_clobber)?;
                Ok(())
            }
            Self::vs54 => {
                reserved_v20to31(_arch, _reloc_model, _target_features,
                        _target, _is_clobber)?;
                Ok(())
            }
            Self::vs55 => {
                reserved_v20to31(_arch, _reloc_model, _target_features,
                        _target, _is_clobber)?;
                Ok(())
            }
            Self::vs56 => {
                reserved_v20to31(_arch, _reloc_model, _target_features,
                        _target, _is_clobber)?;
                Ok(())
            }
            Self::vs57 => {
                reserved_v20to31(_arch, _reloc_model, _target_features,
                        _target, _is_clobber)?;
                Ok(())
            }
            Self::vs58 => {
                reserved_v20to31(_arch, _reloc_model, _target_features,
                        _target, _is_clobber)?;
                Ok(())
            }
            Self::vs59 => {
                reserved_v20to31(_arch, _reloc_model, _target_features,
                        _target, _is_clobber)?;
                Ok(())
            }
            Self::vs60 => {
                reserved_v20to31(_arch, _reloc_model, _target_features,
                        _target, _is_clobber)?;
                Ok(())
            }
            Self::vs61 => {
                reserved_v20to31(_arch, _reloc_model, _target_features,
                        _target, _is_clobber)?;
                Ok(())
            }
            Self::vs62 => {
                reserved_v20to31(_arch, _reloc_model, _target_features,
                        _target, _is_clobber)?;
                Ok(())
            }
            Self::vs63 => {
                reserved_v20to31(_arch, _reloc_model, _target_features,
                        _target, _is_clobber)?;
                Ok(())
            }
            Self::cr => { Ok(()) }
            Self::cr0 => { Ok(()) }
            Self::cr1 => { Ok(()) }
            Self::cr2 => { Ok(()) }
            Self::cr3 => { Ok(()) }
            Self::cr4 => { Ok(()) }
            Self::cr5 => { Ok(()) }
            Self::cr6 => { Ok(()) }
            Self::cr7 => { Ok(()) }
            Self::ctr => { Ok(()) }
            Self::lr => { Ok(()) }
            Self::xer => { Ok(()) }
            Self::spe_acc => {
                spe_acc_target_check(_arch, _reloc_model, _target_features,
                        _target, _is_clobber)?;
                Ok(())
            }
        }
    }
}
pub(super) fn fill_reg_map(_arch: super::InlineAsmArch,
    _reloc_model: crate::spec::RelocModel,
    _target_features: &rustc_data_structures::fx::FxIndexSet<Symbol>,
    _target: &crate::spec::Target,
    _map:
        &mut rustc_data_structures::fx::FxHashMap<super::InlineAsmRegClass,
        rustc_data_structures::fx::FxIndexSet<super::InlineAsmReg>>) {
    #[allow(unused_imports)]
    use super::{InlineAsmReg, InlineAsmRegClass};
    if true {
        if let Some(set) =
                _map.get_mut(&InlineAsmRegClass::PowerPC(PowerPCInlineAsmRegClass::reg))
            {
            set.insert(InlineAsmReg::PowerPC(PowerPCInlineAsmReg::r0));
        }
    }
    if true {
        if let Some(set) =
                _map.get_mut(&InlineAsmRegClass::PowerPC(PowerPCInlineAsmRegClass::reg))
            {
            set.insert(InlineAsmReg::PowerPC(PowerPCInlineAsmReg::r3));
        }
        if let Some(set) =
                _map.get_mut(&InlineAsmRegClass::PowerPC(PowerPCInlineAsmRegClass::reg_nonzero))
            {
            set.insert(InlineAsmReg::PowerPC(PowerPCInlineAsmReg::r3));
        }
    }
    if true {
        if let Some(set) =
                _map.get_mut(&InlineAsmRegClass::PowerPC(PowerPCInlineAsmRegClass::reg))
            {
            set.insert(InlineAsmReg::PowerPC(PowerPCInlineAsmReg::r4));
        }
        if let Some(set) =
                _map.get_mut(&InlineAsmRegClass::PowerPC(PowerPCInlineAsmRegClass::reg_nonzero))
            {
            set.insert(InlineAsmReg::PowerPC(PowerPCInlineAsmReg::r4));
        }
    }
    if true {
        if let Some(set) =
                _map.get_mut(&InlineAsmRegClass::PowerPC(PowerPCInlineAsmRegClass::reg))
            {
            set.insert(InlineAsmReg::PowerPC(PowerPCInlineAsmReg::r5));
        }
        if let Some(set) =
                _map.get_mut(&InlineAsmRegClass::PowerPC(PowerPCInlineAsmRegClass::reg_nonzero))
            {
            set.insert(InlineAsmReg::PowerPC(PowerPCInlineAsmReg::r5));
        }
    }
    if true {
        if let Some(set) =
                _map.get_mut(&InlineAsmRegClass::PowerPC(PowerPCInlineAsmRegClass::reg))
            {
            set.insert(InlineAsmReg::PowerPC(PowerPCInlineAsmReg::r6));
        }
        if let Some(set) =
                _map.get_mut(&InlineAsmRegClass::PowerPC(PowerPCInlineAsmRegClass::reg_nonzero))
            {
            set.insert(InlineAsmReg::PowerPC(PowerPCInlineAsmReg::r6));
        }
    }
    if true {
        if let Some(set) =
                _map.get_mut(&InlineAsmRegClass::PowerPC(PowerPCInlineAsmRegClass::reg))
            {
            set.insert(InlineAsmReg::PowerPC(PowerPCInlineAsmReg::r7));
        }
        if let Some(set) =
                _map.get_mut(&InlineAsmRegClass::PowerPC(PowerPCInlineAsmRegClass::reg_nonzero))
            {
            set.insert(InlineAsmReg::PowerPC(PowerPCInlineAsmReg::r7));
        }
    }
    if true {
        if let Some(set) =
                _map.get_mut(&InlineAsmRegClass::PowerPC(PowerPCInlineAsmRegClass::reg))
            {
            set.insert(InlineAsmReg::PowerPC(PowerPCInlineAsmReg::r8));
        }
        if let Some(set) =
                _map.get_mut(&InlineAsmRegClass::PowerPC(PowerPCInlineAsmRegClass::reg_nonzero))
            {
            set.insert(InlineAsmReg::PowerPC(PowerPCInlineAsmReg::r8));
        }
    }
    if true {
        if let Some(set) =
                _map.get_mut(&InlineAsmRegClass::PowerPC(PowerPCInlineAsmRegClass::reg))
            {
            set.insert(InlineAsmReg::PowerPC(PowerPCInlineAsmReg::r9));
        }
        if let Some(set) =
                _map.get_mut(&InlineAsmRegClass::PowerPC(PowerPCInlineAsmRegClass::reg_nonzero))
            {
            set.insert(InlineAsmReg::PowerPC(PowerPCInlineAsmReg::r9));
        }
    }
    if true {
        if let Some(set) =
                _map.get_mut(&InlineAsmRegClass::PowerPC(PowerPCInlineAsmRegClass::reg))
            {
            set.insert(InlineAsmReg::PowerPC(PowerPCInlineAsmReg::r10));
        }
        if let Some(set) =
                _map.get_mut(&InlineAsmRegClass::PowerPC(PowerPCInlineAsmRegClass::reg_nonzero))
            {
            set.insert(InlineAsmReg::PowerPC(PowerPCInlineAsmReg::r10));
        }
    }
    if true {
        if let Some(set) =
                _map.get_mut(&InlineAsmRegClass::PowerPC(PowerPCInlineAsmRegClass::reg))
            {
            set.insert(InlineAsmReg::PowerPC(PowerPCInlineAsmReg::r11));
        }
        if let Some(set) =
                _map.get_mut(&InlineAsmRegClass::PowerPC(PowerPCInlineAsmRegClass::reg_nonzero))
            {
            set.insert(InlineAsmReg::PowerPC(PowerPCInlineAsmReg::r11));
        }
    }
    if true {
        if let Some(set) =
                _map.get_mut(&InlineAsmRegClass::PowerPC(PowerPCInlineAsmRegClass::reg))
            {
            set.insert(InlineAsmReg::PowerPC(PowerPCInlineAsmReg::r12));
        }
        if let Some(set) =
                _map.get_mut(&InlineAsmRegClass::PowerPC(PowerPCInlineAsmRegClass::reg_nonzero))
            {
            set.insert(InlineAsmReg::PowerPC(PowerPCInlineAsmReg::r12));
        }
    }
    if reserved_r13(_arch, _reloc_model, _target_features, _target,
                    false).is_ok() && true {
        if let Some(set) =
                _map.get_mut(&InlineAsmRegClass::PowerPC(PowerPCInlineAsmRegClass::reg))
            {
            set.insert(InlineAsmReg::PowerPC(PowerPCInlineAsmReg::r13));
        }
        if let Some(set) =
                _map.get_mut(&InlineAsmRegClass::PowerPC(PowerPCInlineAsmRegClass::reg_nonzero))
            {
            set.insert(InlineAsmReg::PowerPC(PowerPCInlineAsmReg::r13));
        }
    }
    if true {
        if let Some(set) =
                _map.get_mut(&InlineAsmRegClass::PowerPC(PowerPCInlineAsmRegClass::reg))
            {
            set.insert(InlineAsmReg::PowerPC(PowerPCInlineAsmReg::r14));
        }
        if let Some(set) =
                _map.get_mut(&InlineAsmRegClass::PowerPC(PowerPCInlineAsmRegClass::reg_nonzero))
            {
            set.insert(InlineAsmReg::PowerPC(PowerPCInlineAsmReg::r14));
        }
    }
    if true {
        if let Some(set) =
                _map.get_mut(&InlineAsmRegClass::PowerPC(PowerPCInlineAsmRegClass::reg))
            {
            set.insert(InlineAsmReg::PowerPC(PowerPCInlineAsmReg::r15));
        }
        if let Some(set) =
                _map.get_mut(&InlineAsmRegClass::PowerPC(PowerPCInlineAsmRegClass::reg_nonzero))
            {
            set.insert(InlineAsmReg::PowerPC(PowerPCInlineAsmReg::r15));
        }
    }
    if true {
        if let Some(set) =
                _map.get_mut(&InlineAsmRegClass::PowerPC(PowerPCInlineAsmRegClass::reg))
            {
            set.insert(InlineAsmReg::PowerPC(PowerPCInlineAsmReg::r16));
        }
        if let Some(set) =
                _map.get_mut(&InlineAsmRegClass::PowerPC(PowerPCInlineAsmRegClass::reg_nonzero))
            {
            set.insert(InlineAsmReg::PowerPC(PowerPCInlineAsmReg::r16));
        }
    }
    if true {
        if let Some(set) =
                _map.get_mut(&InlineAsmRegClass::PowerPC(PowerPCInlineAsmRegClass::reg))
            {
            set.insert(InlineAsmReg::PowerPC(PowerPCInlineAsmReg::r17));
        }
        if let Some(set) =
                _map.get_mut(&InlineAsmRegClass::PowerPC(PowerPCInlineAsmRegClass::reg_nonzero))
            {
            set.insert(InlineAsmReg::PowerPC(PowerPCInlineAsmReg::r17));
        }
    }
    if true {
        if let Some(set) =
                _map.get_mut(&InlineAsmRegClass::PowerPC(PowerPCInlineAsmRegClass::reg))
            {
            set.insert(InlineAsmReg::PowerPC(PowerPCInlineAsmReg::r18));
        }
        if let Some(set) =
                _map.get_mut(&InlineAsmRegClass::PowerPC(PowerPCInlineAsmRegClass::reg_nonzero))
            {
            set.insert(InlineAsmReg::PowerPC(PowerPCInlineAsmReg::r18));
        }
    }
    if true {
        if let Some(set) =
                _map.get_mut(&InlineAsmRegClass::PowerPC(PowerPCInlineAsmRegClass::reg))
            {
            set.insert(InlineAsmReg::PowerPC(PowerPCInlineAsmReg::r19));
        }
        if let Some(set) =
                _map.get_mut(&InlineAsmRegClass::PowerPC(PowerPCInlineAsmRegClass::reg_nonzero))
            {
            set.insert(InlineAsmReg::PowerPC(PowerPCInlineAsmReg::r19));
        }
    }
    if true {
        if let Some(set) =
                _map.get_mut(&InlineAsmRegClass::PowerPC(PowerPCInlineAsmRegClass::reg))
            {
            set.insert(InlineAsmReg::PowerPC(PowerPCInlineAsmReg::r20));
        }
        if let Some(set) =
                _map.get_mut(&InlineAsmRegClass::PowerPC(PowerPCInlineAsmRegClass::reg_nonzero))
            {
            set.insert(InlineAsmReg::PowerPC(PowerPCInlineAsmReg::r20));
        }
    }
    if true {
        if let Some(set) =
                _map.get_mut(&InlineAsmRegClass::PowerPC(PowerPCInlineAsmRegClass::reg))
            {
            set.insert(InlineAsmReg::PowerPC(PowerPCInlineAsmReg::r21));
        }
        if let Some(set) =
                _map.get_mut(&InlineAsmRegClass::PowerPC(PowerPCInlineAsmRegClass::reg_nonzero))
            {
            set.insert(InlineAsmReg::PowerPC(PowerPCInlineAsmReg::r21));
        }
    }
    if true {
        if let Some(set) =
                _map.get_mut(&InlineAsmRegClass::PowerPC(PowerPCInlineAsmRegClass::reg))
            {
            set.insert(InlineAsmReg::PowerPC(PowerPCInlineAsmReg::r22));
        }
        if let Some(set) =
                _map.get_mut(&InlineAsmRegClass::PowerPC(PowerPCInlineAsmRegClass::reg_nonzero))
            {
            set.insert(InlineAsmReg::PowerPC(PowerPCInlineAsmReg::r22));
        }
    }
    if true {
        if let Some(set) =
                _map.get_mut(&InlineAsmRegClass::PowerPC(PowerPCInlineAsmRegClass::reg))
            {
            set.insert(InlineAsmReg::PowerPC(PowerPCInlineAsmReg::r23));
        }
        if let Some(set) =
                _map.get_mut(&InlineAsmRegClass::PowerPC(PowerPCInlineAsmRegClass::reg_nonzero))
            {
            set.insert(InlineAsmReg::PowerPC(PowerPCInlineAsmReg::r23));
        }
    }
    if true {
        if let Some(set) =
                _map.get_mut(&InlineAsmRegClass::PowerPC(PowerPCInlineAsmRegClass::reg))
            {
            set.insert(InlineAsmReg::PowerPC(PowerPCInlineAsmReg::r24));
        }
        if let Some(set) =
                _map.get_mut(&InlineAsmRegClass::PowerPC(PowerPCInlineAsmRegClass::reg_nonzero))
            {
            set.insert(InlineAsmReg::PowerPC(PowerPCInlineAsmReg::r24));
        }
    }
    if true {
        if let Some(set) =
                _map.get_mut(&InlineAsmRegClass::PowerPC(PowerPCInlineAsmRegClass::reg))
            {
            set.insert(InlineAsmReg::PowerPC(PowerPCInlineAsmReg::r25));
        }
        if let Some(set) =
                _map.get_mut(&InlineAsmRegClass::PowerPC(PowerPCInlineAsmRegClass::reg_nonzero))
            {
            set.insert(InlineAsmReg::PowerPC(PowerPCInlineAsmReg::r25));
        }
    }
    if true {
        if let Some(set) =
                _map.get_mut(&InlineAsmRegClass::PowerPC(PowerPCInlineAsmRegClass::reg))
            {
            set.insert(InlineAsmReg::PowerPC(PowerPCInlineAsmReg::r26));
        }
        if let Some(set) =
                _map.get_mut(&InlineAsmRegClass::PowerPC(PowerPCInlineAsmRegClass::reg_nonzero))
            {
            set.insert(InlineAsmReg::PowerPC(PowerPCInlineAsmReg::r26));
        }
    }
    if true {
        if let Some(set) =
                _map.get_mut(&InlineAsmRegClass::PowerPC(PowerPCInlineAsmRegClass::reg))
            {
            set.insert(InlineAsmReg::PowerPC(PowerPCInlineAsmReg::r27));
        }
        if let Some(set) =
                _map.get_mut(&InlineAsmRegClass::PowerPC(PowerPCInlineAsmRegClass::reg_nonzero))
            {
            set.insert(InlineAsmReg::PowerPC(PowerPCInlineAsmReg::r27));
        }
    }
    if true {
        if let Some(set) =
                _map.get_mut(&InlineAsmRegClass::PowerPC(PowerPCInlineAsmRegClass::reg))
            {
            set.insert(InlineAsmReg::PowerPC(PowerPCInlineAsmReg::r28));
        }
        if let Some(set) =
                _map.get_mut(&InlineAsmRegClass::PowerPC(PowerPCInlineAsmRegClass::reg_nonzero))
            {
            set.insert(InlineAsmReg::PowerPC(PowerPCInlineAsmReg::r28));
        }
    }
    if reserved_r29(_arch, _reloc_model, _target_features, _target,
                    false).is_ok() && true {
        if let Some(set) =
                _map.get_mut(&InlineAsmRegClass::PowerPC(PowerPCInlineAsmRegClass::reg))
            {
            set.insert(InlineAsmReg::PowerPC(PowerPCInlineAsmReg::r29));
        }
        if let Some(set) =
                _map.get_mut(&InlineAsmRegClass::PowerPC(PowerPCInlineAsmRegClass::reg_nonzero))
            {
            set.insert(InlineAsmReg::PowerPC(PowerPCInlineAsmReg::r29));
        }
    }
    if true {
        if let Some(set) =
                _map.get_mut(&InlineAsmRegClass::PowerPC(PowerPCInlineAsmRegClass::freg))
            {
            set.insert(InlineAsmReg::PowerPC(PowerPCInlineAsmReg::f0));
        }
    }
    if true {
        if let Some(set) =
                _map.get_mut(&InlineAsmRegClass::PowerPC(PowerPCInlineAsmRegClass::freg))
            {
            set.insert(InlineAsmReg::PowerPC(PowerPCInlineAsmReg::f1));
        }
    }
    if true {
        if let Some(set) =
                _map.get_mut(&InlineAsmRegClass::PowerPC(PowerPCInlineAsmRegClass::freg))
            {
            set.insert(InlineAsmReg::PowerPC(PowerPCInlineAsmReg::f2));
        }
    }
    if true {
        if let Some(set) =
                _map.get_mut(&InlineAsmRegClass::PowerPC(PowerPCInlineAsmRegClass::freg))
            {
            set.insert(InlineAsmReg::PowerPC(PowerPCInlineAsmReg::f3));
        }
    }
    if true {
        if let Some(set) =
                _map.get_mut(&InlineAsmRegClass::PowerPC(PowerPCInlineAsmRegClass::freg))
            {
            set.insert(InlineAsmReg::PowerPC(PowerPCInlineAsmReg::f4));
        }
    }
    if true {
        if let Some(set) =
                _map.get_mut(&InlineAsmRegClass::PowerPC(PowerPCInlineAsmRegClass::freg))
            {
            set.insert(InlineAsmReg::PowerPC(PowerPCInlineAsmReg::f5));
        }
    }
    if true {
        if let Some(set) =
                _map.get_mut(&InlineAsmRegClass::PowerPC(PowerPCInlineAsmRegClass::freg))
            {
            set.insert(InlineAsmReg::PowerPC(PowerPCInlineAsmReg::f6));
        }
    }
    if true {
        if let Some(set) =
                _map.get_mut(&InlineAsmRegClass::PowerPC(PowerPCInlineAsmRegClass::freg))
            {
            set.insert(InlineAsmReg::PowerPC(PowerPCInlineAsmReg::f7));
        }
    }
    if true {
        if let Some(set) =
                _map.get_mut(&InlineAsmRegClass::PowerPC(PowerPCInlineAsmRegClass::freg))
            {
            set.insert(InlineAsmReg::PowerPC(PowerPCInlineAsmReg::f8));
        }
    }
    if true {
        if let Some(set) =
                _map.get_mut(&InlineAsmRegClass::PowerPC(PowerPCInlineAsmRegClass::freg))
            {
            set.insert(InlineAsmReg::PowerPC(PowerPCInlineAsmReg::f9));
        }
    }
    if true {
        if let Some(set) =
                _map.get_mut(&InlineAsmRegClass::PowerPC(PowerPCInlineAsmRegClass::freg))
            {
            set.insert(InlineAsmReg::PowerPC(PowerPCInlineAsmReg::f10));
        }
    }
    if true {
        if let Some(set) =
                _map.get_mut(&InlineAsmRegClass::PowerPC(PowerPCInlineAsmRegClass::freg))
            {
            set.insert(InlineAsmReg::PowerPC(PowerPCInlineAsmReg::f11));
        }
    }
    if true {
        if let Some(set) =
                _map.get_mut(&InlineAsmRegClass::PowerPC(PowerPCInlineAsmRegClass::freg))
            {
            set.insert(InlineAsmReg::PowerPC(PowerPCInlineAsmReg::f12));
        }
    }
    if true {
        if let Some(set) =
                _map.get_mut(&InlineAsmRegClass::PowerPC(PowerPCInlineAsmRegClass::freg))
            {
            set.insert(InlineAsmReg::PowerPC(PowerPCInlineAsmReg::f13));
        }
    }
    if true {
        if let Some(set) =
                _map.get_mut(&InlineAsmRegClass::PowerPC(PowerPCInlineAsmRegClass::freg))
            {
            set.insert(InlineAsmReg::PowerPC(PowerPCInlineAsmReg::f14));
        }
    }
    if true {
        if let Some(set) =
                _map.get_mut(&InlineAsmRegClass::PowerPC(PowerPCInlineAsmRegClass::freg))
            {
            set.insert(InlineAsmReg::PowerPC(PowerPCInlineAsmReg::f15));
        }
    }
    if true {
        if let Some(set) =
                _map.get_mut(&InlineAsmRegClass::PowerPC(PowerPCInlineAsmRegClass::freg))
            {
            set.insert(InlineAsmReg::PowerPC(PowerPCInlineAsmReg::f16));
        }
    }
    if true {
        if let Some(set) =
                _map.get_mut(&InlineAsmRegClass::PowerPC(PowerPCInlineAsmRegClass::freg))
            {
            set.insert(InlineAsmReg::PowerPC(PowerPCInlineAsmReg::f17));
        }
    }
    if true {
        if let Some(set) =
                _map.get_mut(&InlineAsmRegClass::PowerPC(PowerPCInlineAsmRegClass::freg))
            {
            set.insert(InlineAsmReg::PowerPC(PowerPCInlineAsmReg::f18));
        }
    }
    if true {
        if let Some(set) =
                _map.get_mut(&InlineAsmRegClass::PowerPC(PowerPCInlineAsmRegClass::freg))
            {
            set.insert(InlineAsmReg::PowerPC(PowerPCInlineAsmReg::f19));
        }
    }
    if true {
        if let Some(set) =
                _map.get_mut(&InlineAsmRegClass::PowerPC(PowerPCInlineAsmRegClass::freg))
            {
            set.insert(InlineAsmReg::PowerPC(PowerPCInlineAsmReg::f20));
        }
    }
    if true {
        if let Some(set) =
                _map.get_mut(&InlineAsmRegClass::PowerPC(PowerPCInlineAsmRegClass::freg))
            {
            set.insert(InlineAsmReg::PowerPC(PowerPCInlineAsmReg::f21));
        }
    }
    if true {
        if let Some(set) =
                _map.get_mut(&InlineAsmRegClass::PowerPC(PowerPCInlineAsmRegClass::freg))
            {
            set.insert(InlineAsmReg::PowerPC(PowerPCInlineAsmReg::f22));
        }
    }
    if true {
        if let Some(set) =
                _map.get_mut(&InlineAsmRegClass::PowerPC(PowerPCInlineAsmRegClass::freg))
            {
            set.insert(InlineAsmReg::PowerPC(PowerPCInlineAsmReg::f23));
        }
    }
    if true {
        if let Some(set) =
                _map.get_mut(&InlineAsmRegClass::PowerPC(PowerPCInlineAsmRegClass::freg))
            {
            set.insert(InlineAsmReg::PowerPC(PowerPCInlineAsmReg::f24));
        }
    }
    if true {
        if let Some(set) =
                _map.get_mut(&InlineAsmRegClass::PowerPC(PowerPCInlineAsmRegClass::freg))
            {
            set.insert(InlineAsmReg::PowerPC(PowerPCInlineAsmReg::f25));
        }
    }
    if true {
        if let Some(set) =
                _map.get_mut(&InlineAsmRegClass::PowerPC(PowerPCInlineAsmRegClass::freg))
            {
            set.insert(InlineAsmReg::PowerPC(PowerPCInlineAsmReg::f26));
        }
    }
    if true {
        if let Some(set) =
                _map.get_mut(&InlineAsmRegClass::PowerPC(PowerPCInlineAsmRegClass::freg))
            {
            set.insert(InlineAsmReg::PowerPC(PowerPCInlineAsmReg::f27));
        }
    }
    if true {
        if let Some(set) =
                _map.get_mut(&InlineAsmRegClass::PowerPC(PowerPCInlineAsmRegClass::freg))
            {
            set.insert(InlineAsmReg::PowerPC(PowerPCInlineAsmReg::f28));
        }
    }
    if true {
        if let Some(set) =
                _map.get_mut(&InlineAsmRegClass::PowerPC(PowerPCInlineAsmRegClass::freg))
            {
            set.insert(InlineAsmReg::PowerPC(PowerPCInlineAsmReg::f29));
        }
    }
    if true {
        if let Some(set) =
                _map.get_mut(&InlineAsmRegClass::PowerPC(PowerPCInlineAsmRegClass::freg))
            {
            set.insert(InlineAsmReg::PowerPC(PowerPCInlineAsmReg::f30));
        }
    }
    if true {
        if let Some(set) =
                _map.get_mut(&InlineAsmRegClass::PowerPC(PowerPCInlineAsmRegClass::freg))
            {
            set.insert(InlineAsmReg::PowerPC(PowerPCInlineAsmReg::f31));
        }
    }
    if true {
        if let Some(set) =
                _map.get_mut(&InlineAsmRegClass::PowerPC(PowerPCInlineAsmRegClass::vreg))
            {
            set.insert(InlineAsmReg::PowerPC(PowerPCInlineAsmReg::v0));
        }
    }
    if true {
        if let Some(set) =
                _map.get_mut(&InlineAsmRegClass::PowerPC(PowerPCInlineAsmRegClass::vreg))
            {
            set.insert(InlineAsmReg::PowerPC(PowerPCInlineAsmReg::v1));
        }
    }
    if true {
        if let Some(set) =
                _map.get_mut(&InlineAsmRegClass::PowerPC(PowerPCInlineAsmRegClass::vreg))
            {
            set.insert(InlineAsmReg::PowerPC(PowerPCInlineAsmReg::v2));
        }
    }
    if true {
        if let Some(set) =
                _map.get_mut(&InlineAsmRegClass::PowerPC(PowerPCInlineAsmRegClass::vreg))
            {
            set.insert(InlineAsmReg::PowerPC(PowerPCInlineAsmReg::v3));
        }
    }
    if true {
        if let Some(set) =
                _map.get_mut(&InlineAsmRegClass::PowerPC(PowerPCInlineAsmRegClass::vreg))
            {
            set.insert(InlineAsmReg::PowerPC(PowerPCInlineAsmReg::v4));
        }
    }
    if true {
        if let Some(set) =
                _map.get_mut(&InlineAsmRegClass::PowerPC(PowerPCInlineAsmRegClass::vreg))
            {
            set.insert(InlineAsmReg::PowerPC(PowerPCInlineAsmReg::v5));
        }
    }
    if true {
        if let Some(set) =
                _map.get_mut(&InlineAsmRegClass::PowerPC(PowerPCInlineAsmRegClass::vreg))
            {
            set.insert(InlineAsmReg::PowerPC(PowerPCInlineAsmReg::v6));
        }
    }
    if true {
        if let Some(set) =
                _map.get_mut(&InlineAsmRegClass::PowerPC(PowerPCInlineAsmRegClass::vreg))
            {
            set.insert(InlineAsmReg::PowerPC(PowerPCInlineAsmReg::v7));
        }
    }
    if true {
        if let Some(set) =
                _map.get_mut(&InlineAsmRegClass::PowerPC(PowerPCInlineAsmRegClass::vreg))
            {
            set.insert(InlineAsmReg::PowerPC(PowerPCInlineAsmReg::v8));
        }
    }
    if true {
        if let Some(set) =
                _map.get_mut(&InlineAsmRegClass::PowerPC(PowerPCInlineAsmRegClass::vreg))
            {
            set.insert(InlineAsmReg::PowerPC(PowerPCInlineAsmReg::v9));
        }
    }
    if true {
        if let Some(set) =
                _map.get_mut(&InlineAsmRegClass::PowerPC(PowerPCInlineAsmRegClass::vreg))
            {
            set.insert(InlineAsmReg::PowerPC(PowerPCInlineAsmReg::v10));
        }
    }
    if true {
        if let Some(set) =
                _map.get_mut(&InlineAsmRegClass::PowerPC(PowerPCInlineAsmRegClass::vreg))
            {
            set.insert(InlineAsmReg::PowerPC(PowerPCInlineAsmReg::v11));
        }
    }
    if true {
        if let Some(set) =
                _map.get_mut(&InlineAsmRegClass::PowerPC(PowerPCInlineAsmRegClass::vreg))
            {
            set.insert(InlineAsmReg::PowerPC(PowerPCInlineAsmReg::v12));
        }
    }
    if true {
        if let Some(set) =
                _map.get_mut(&InlineAsmRegClass::PowerPC(PowerPCInlineAsmRegClass::vreg))
            {
            set.insert(InlineAsmReg::PowerPC(PowerPCInlineAsmReg::v13));
        }
    }
    if true {
        if let Some(set) =
                _map.get_mut(&InlineAsmRegClass::PowerPC(PowerPCInlineAsmRegClass::vreg))
            {
            set.insert(InlineAsmReg::PowerPC(PowerPCInlineAsmReg::v14));
        }
    }
    if true {
        if let Some(set) =
                _map.get_mut(&InlineAsmRegClass::PowerPC(PowerPCInlineAsmRegClass::vreg))
            {
            set.insert(InlineAsmReg::PowerPC(PowerPCInlineAsmReg::v15));
        }
    }
    if true {
        if let Some(set) =
                _map.get_mut(&InlineAsmRegClass::PowerPC(PowerPCInlineAsmRegClass::vreg))
            {
            set.insert(InlineAsmReg::PowerPC(PowerPCInlineAsmReg::v16));
        }
    }
    if true {
        if let Some(set) =
                _map.get_mut(&InlineAsmRegClass::PowerPC(PowerPCInlineAsmRegClass::vreg))
            {
            set.insert(InlineAsmReg::PowerPC(PowerPCInlineAsmReg::v17));
        }
    }
    if true {
        if let Some(set) =
                _map.get_mut(&InlineAsmRegClass::PowerPC(PowerPCInlineAsmRegClass::vreg))
            {
            set.insert(InlineAsmReg::PowerPC(PowerPCInlineAsmReg::v18));
        }
    }
    if true {
        if let Some(set) =
                _map.get_mut(&InlineAsmRegClass::PowerPC(PowerPCInlineAsmRegClass::vreg))
            {
            set.insert(InlineAsmReg::PowerPC(PowerPCInlineAsmReg::v19));
        }
    }
    if reserved_v20to31(_arch, _reloc_model, _target_features, _target,
                    false).is_ok() && true {
        if let Some(set) =
                _map.get_mut(&InlineAsmRegClass::PowerPC(PowerPCInlineAsmRegClass::vreg))
            {
            set.insert(InlineAsmReg::PowerPC(PowerPCInlineAsmReg::v20));
        }
    }
    if reserved_v20to31(_arch, _reloc_model, _target_features, _target,
                    false).is_ok() && true {
        if let Some(set) =
                _map.get_mut(&InlineAsmRegClass::PowerPC(PowerPCInlineAsmRegClass::vreg))
            {
            set.insert(InlineAsmReg::PowerPC(PowerPCInlineAsmReg::v21));
        }
    }
    if reserved_v20to31(_arch, _reloc_model, _target_features, _target,
                    false).is_ok() && true {
        if let Some(set) =
                _map.get_mut(&InlineAsmRegClass::PowerPC(PowerPCInlineAsmRegClass::vreg))
            {
            set.insert(InlineAsmReg::PowerPC(PowerPCInlineAsmReg::v22));
        }
    }
    if reserved_v20to31(_arch, _reloc_model, _target_features, _target,
                    false).is_ok() && true {
        if let Some(set) =
                _map.get_mut(&InlineAsmRegClass::PowerPC(PowerPCInlineAsmRegClass::vreg))
            {
            set.insert(InlineAsmReg::PowerPC(PowerPCInlineAsmReg::v23));
        }
    }
    if reserved_v20to31(_arch, _reloc_model, _target_features, _target,
                    false).is_ok() && true {
        if let Some(set) =
                _map.get_mut(&InlineAsmRegClass::PowerPC(PowerPCInlineAsmRegClass::vreg))
            {
            set.insert(InlineAsmReg::PowerPC(PowerPCInlineAsmReg::v24));
        }
    }
    if reserved_v20to31(_arch, _reloc_model, _target_features, _target,
                    false).is_ok() && true {
        if let Some(set) =
                _map.get_mut(&InlineAsmRegClass::PowerPC(PowerPCInlineAsmRegClass::vreg))
            {
            set.insert(InlineAsmReg::PowerPC(PowerPCInlineAsmReg::v25));
        }
    }
    if reserved_v20to31(_arch, _reloc_model, _target_features, _target,
                    false).is_ok() && true {
        if let Some(set) =
                _map.get_mut(&InlineAsmRegClass::PowerPC(PowerPCInlineAsmRegClass::vreg))
            {
            set.insert(InlineAsmReg::PowerPC(PowerPCInlineAsmReg::v26));
        }
    }
    if reserved_v20to31(_arch, _reloc_model, _target_features, _target,
                    false).is_ok() && true {
        if let Some(set) =
                _map.get_mut(&InlineAsmRegClass::PowerPC(PowerPCInlineAsmRegClass::vreg))
            {
            set.insert(InlineAsmReg::PowerPC(PowerPCInlineAsmReg::v27));
        }
    }
    if reserved_v20to31(_arch, _reloc_model, _target_features, _target,
                    false).is_ok() && true {
        if let Some(set) =
                _map.get_mut(&InlineAsmRegClass::PowerPC(PowerPCInlineAsmRegClass::vreg))
            {
            set.insert(InlineAsmReg::PowerPC(PowerPCInlineAsmReg::v28));
        }
    }
    if reserved_v20to31(_arch, _reloc_model, _target_features, _target,
                    false).is_ok() && true {
        if let Some(set) =
                _map.get_mut(&InlineAsmRegClass::PowerPC(PowerPCInlineAsmRegClass::vreg))
            {
            set.insert(InlineAsmReg::PowerPC(PowerPCInlineAsmReg::v29));
        }
    }
    if reserved_v20to31(_arch, _reloc_model, _target_features, _target,
                    false).is_ok() && true {
        if let Some(set) =
                _map.get_mut(&InlineAsmRegClass::PowerPC(PowerPCInlineAsmRegClass::vreg))
            {
            set.insert(InlineAsmReg::PowerPC(PowerPCInlineAsmReg::v30));
        }
    }
    if reserved_v20to31(_arch, _reloc_model, _target_features, _target,
                    false).is_ok() && true {
        if let Some(set) =
                _map.get_mut(&InlineAsmRegClass::PowerPC(PowerPCInlineAsmRegClass::vreg))
            {
            set.insert(InlineAsmReg::PowerPC(PowerPCInlineAsmReg::v31));
        }
    }
    if true {
        if let Some(set) =
                _map.get_mut(&InlineAsmRegClass::PowerPC(PowerPCInlineAsmRegClass::vsreg))
            {
            set.insert(InlineAsmReg::PowerPC(PowerPCInlineAsmReg::vs0));
        }
    }
    if true {
        if let Some(set) =
                _map.get_mut(&InlineAsmRegClass::PowerPC(PowerPCInlineAsmRegClass::vsreg))
            {
            set.insert(InlineAsmReg::PowerPC(PowerPCInlineAsmReg::vs1));
        }
    }
    if true {
        if let Some(set) =
                _map.get_mut(&InlineAsmRegClass::PowerPC(PowerPCInlineAsmRegClass::vsreg))
            {
            set.insert(InlineAsmReg::PowerPC(PowerPCInlineAsmReg::vs2));
        }
    }
    if true {
        if let Some(set) =
                _map.get_mut(&InlineAsmRegClass::PowerPC(PowerPCInlineAsmRegClass::vsreg))
            {
            set.insert(InlineAsmReg::PowerPC(PowerPCInlineAsmReg::vs3));
        }
    }
    if true {
        if let Some(set) =
                _map.get_mut(&InlineAsmRegClass::PowerPC(PowerPCInlineAsmRegClass::vsreg))
            {
            set.insert(InlineAsmReg::PowerPC(PowerPCInlineAsmReg::vs4));
        }
    }
    if true {
        if let Some(set) =
                _map.get_mut(&InlineAsmRegClass::PowerPC(PowerPCInlineAsmRegClass::vsreg))
            {
            set.insert(InlineAsmReg::PowerPC(PowerPCInlineAsmReg::vs5));
        }
    }
    if true {
        if let Some(set) =
                _map.get_mut(&InlineAsmRegClass::PowerPC(PowerPCInlineAsmRegClass::vsreg))
            {
            set.insert(InlineAsmReg::PowerPC(PowerPCInlineAsmReg::vs6));
        }
    }
    if true {
        if let Some(set) =
                _map.get_mut(&InlineAsmRegClass::PowerPC(PowerPCInlineAsmRegClass::vsreg))
            {
            set.insert(InlineAsmReg::PowerPC(PowerPCInlineAsmReg::vs7));
        }
    }
    if true {
        if let Some(set) =
                _map.get_mut(&InlineAsmRegClass::PowerPC(PowerPCInlineAsmRegClass::vsreg))
            {
            set.insert(InlineAsmReg::PowerPC(PowerPCInlineAsmReg::vs8));
        }
    }
    if true {
        if let Some(set) =
                _map.get_mut(&InlineAsmRegClass::PowerPC(PowerPCInlineAsmRegClass::vsreg))
            {
            set.insert(InlineAsmReg::PowerPC(PowerPCInlineAsmReg::vs9));
        }
    }
    if true {
        if let Some(set) =
                _map.get_mut(&InlineAsmRegClass::PowerPC(PowerPCInlineAsmRegClass::vsreg))
            {
            set.insert(InlineAsmReg::PowerPC(PowerPCInlineAsmReg::vs10));
        }
    }
    if true {
        if let Some(set) =
                _map.get_mut(&InlineAsmRegClass::PowerPC(PowerPCInlineAsmRegClass::vsreg))
            {
            set.insert(InlineAsmReg::PowerPC(PowerPCInlineAsmReg::vs11));
        }
    }
    if true {
        if let Some(set) =
                _map.get_mut(&InlineAsmRegClass::PowerPC(PowerPCInlineAsmRegClass::vsreg))
            {
            set.insert(InlineAsmReg::PowerPC(PowerPCInlineAsmReg::vs12));
        }
    }
    if true {
        if let Some(set) =
                _map.get_mut(&InlineAsmRegClass::PowerPC(PowerPCInlineAsmRegClass::vsreg))
            {
            set.insert(InlineAsmReg::PowerPC(PowerPCInlineAsmReg::vs13));
        }
    }
    if true {
        if let Some(set) =
                _map.get_mut(&InlineAsmRegClass::PowerPC(PowerPCInlineAsmRegClass::vsreg))
            {
            set.insert(InlineAsmReg::PowerPC(PowerPCInlineAsmReg::vs14));
        }
    }
    if true {
        if let Some(set) =
                _map.get_mut(&InlineAsmRegClass::PowerPC(PowerPCInlineAsmRegClass::vsreg))
            {
            set.insert(InlineAsmReg::PowerPC(PowerPCInlineAsmReg::vs15));
        }
    }
    if true {
        if let Some(set) =
                _map.get_mut(&InlineAsmRegClass::PowerPC(PowerPCInlineAsmRegClass::vsreg))
            {
            set.insert(InlineAsmReg::PowerPC(PowerPCInlineAsmReg::vs16));
        }
    }
    if true {
        if let Some(set) =
                _map.get_mut(&InlineAsmRegClass::PowerPC(PowerPCInlineAsmRegClass::vsreg))
            {
            set.insert(InlineAsmReg::PowerPC(PowerPCInlineAsmReg::vs17));
        }
    }
    if true {
        if let Some(set) =
                _map.get_mut(&InlineAsmRegClass::PowerPC(PowerPCInlineAsmRegClass::vsreg))
            {
            set.insert(InlineAsmReg::PowerPC(PowerPCInlineAsmReg::vs18));
        }
    }
    if true {
        if let Some(set) =
                _map.get_mut(&InlineAsmRegClass::PowerPC(PowerPCInlineAsmRegClass::vsreg))
            {
            set.insert(InlineAsmReg::PowerPC(PowerPCInlineAsmReg::vs19));
        }
    }
    if true {
        if let Some(set) =
                _map.get_mut(&InlineAsmRegClass::PowerPC(PowerPCInlineAsmRegClass::vsreg))
            {
            set.insert(InlineAsmReg::PowerPC(PowerPCInlineAsmReg::vs20));
        }
    }
    if true {
        if let Some(set) =
                _map.get_mut(&InlineAsmRegClass::PowerPC(PowerPCInlineAsmRegClass::vsreg))
            {
            set.insert(InlineAsmReg::PowerPC(PowerPCInlineAsmReg::vs21));
        }
    }
    if true {
        if let Some(set) =
                _map.get_mut(&InlineAsmRegClass::PowerPC(PowerPCInlineAsmRegClass::vsreg))
            {
            set.insert(InlineAsmReg::PowerPC(PowerPCInlineAsmReg::vs22));
        }
    }
    if true {
        if let Some(set) =
                _map.get_mut(&InlineAsmRegClass::PowerPC(PowerPCInlineAsmRegClass::vsreg))
            {
            set.insert(InlineAsmReg::PowerPC(PowerPCInlineAsmReg::vs23));
        }
    }
    if true {
        if let Some(set) =
                _map.get_mut(&InlineAsmRegClass::PowerPC(PowerPCInlineAsmRegClass::vsreg))
            {
            set.insert(InlineAsmReg::PowerPC(PowerPCInlineAsmReg::vs24));
        }
    }
    if true {
        if let Some(set) =
                _map.get_mut(&InlineAsmRegClass::PowerPC(PowerPCInlineAsmRegClass::vsreg))
            {
            set.insert(InlineAsmReg::PowerPC(PowerPCInlineAsmReg::vs25));
        }
    }
    if true {
        if let Some(set) =
                _map.get_mut(&InlineAsmRegClass::PowerPC(PowerPCInlineAsmRegClass::vsreg))
            {
            set.insert(InlineAsmReg::PowerPC(PowerPCInlineAsmReg::vs26));
        }
    }
    if true {
        if let Some(set) =
                _map.get_mut(&InlineAsmRegClass::PowerPC(PowerPCInlineAsmRegClass::vsreg))
            {
            set.insert(InlineAsmReg::PowerPC(PowerPCInlineAsmReg::vs27));
        }
    }
    if true {
        if let Some(set) =
                _map.get_mut(&InlineAsmRegClass::PowerPC(PowerPCInlineAsmRegClass::vsreg))
            {
            set.insert(InlineAsmReg::PowerPC(PowerPCInlineAsmReg::vs28));
        }
    }
    if true {
        if let Some(set) =
                _map.get_mut(&InlineAsmRegClass::PowerPC(PowerPCInlineAsmRegClass::vsreg))
            {
            set.insert(InlineAsmReg::PowerPC(PowerPCInlineAsmReg::vs29));
        }
    }
    if true {
        if let Some(set) =
                _map.get_mut(&InlineAsmRegClass::PowerPC(PowerPCInlineAsmRegClass::vsreg))
            {
            set.insert(InlineAsmReg::PowerPC(PowerPCInlineAsmReg::vs30));
        }
    }
    if true {
        if let Some(set) =
                _map.get_mut(&InlineAsmRegClass::PowerPC(PowerPCInlineAsmRegClass::vsreg))
            {
            set.insert(InlineAsmReg::PowerPC(PowerPCInlineAsmReg::vs31));
        }
    }
    if true {
        if let Some(set) =
                _map.get_mut(&InlineAsmRegClass::PowerPC(PowerPCInlineAsmRegClass::vsreg))
            {
            set.insert(InlineAsmReg::PowerPC(PowerPCInlineAsmReg::vs32));
        }
    }
    if true {
        if let Some(set) =
                _map.get_mut(&InlineAsmRegClass::PowerPC(PowerPCInlineAsmRegClass::vsreg))
            {
            set.insert(InlineAsmReg::PowerPC(PowerPCInlineAsmReg::vs33));
        }
    }
    if true {
        if let Some(set) =
                _map.get_mut(&InlineAsmRegClass::PowerPC(PowerPCInlineAsmRegClass::vsreg))
            {
            set.insert(InlineAsmReg::PowerPC(PowerPCInlineAsmReg::vs34));
        }
    }
    if true {
        if let Some(set) =
                _map.get_mut(&InlineAsmRegClass::PowerPC(PowerPCInlineAsmRegClass::vsreg))
            {
            set.insert(InlineAsmReg::PowerPC(PowerPCInlineAsmReg::vs35));
        }
    }
    if true {
        if let Some(set) =
                _map.get_mut(&InlineAsmRegClass::PowerPC(PowerPCInlineAsmRegClass::vsreg))
            {
            set.insert(InlineAsmReg::PowerPC(PowerPCInlineAsmReg::vs36));
        }
    }
    if true {
        if let Some(set) =
                _map.get_mut(&InlineAsmRegClass::PowerPC(PowerPCInlineAsmRegClass::vsreg))
            {
            set.insert(InlineAsmReg::PowerPC(PowerPCInlineAsmReg::vs37));
        }
    }
    if true {
        if let Some(set) =
                _map.get_mut(&InlineAsmRegClass::PowerPC(PowerPCInlineAsmRegClass::vsreg))
            {
            set.insert(InlineAsmReg::PowerPC(PowerPCInlineAsmReg::vs38));
        }
    }
    if true {
        if let Some(set) =
                _map.get_mut(&InlineAsmRegClass::PowerPC(PowerPCInlineAsmRegClass::vsreg))
            {
            set.insert(InlineAsmReg::PowerPC(PowerPCInlineAsmReg::vs39));
        }
    }
    if true {
        if let Some(set) =
                _map.get_mut(&InlineAsmRegClass::PowerPC(PowerPCInlineAsmRegClass::vsreg))
            {
            set.insert(InlineAsmReg::PowerPC(PowerPCInlineAsmReg::vs40));
        }
    }
    if true {
        if let Some(set) =
                _map.get_mut(&InlineAsmRegClass::PowerPC(PowerPCInlineAsmRegClass::vsreg))
            {
            set.insert(InlineAsmReg::PowerPC(PowerPCInlineAsmReg::vs41));
        }
    }
    if true {
        if let Some(set) =
                _map.get_mut(&InlineAsmRegClass::PowerPC(PowerPCInlineAsmRegClass::vsreg))
            {
            set.insert(InlineAsmReg::PowerPC(PowerPCInlineAsmReg::vs42));
        }
    }
    if true {
        if let Some(set) =
                _map.get_mut(&InlineAsmRegClass::PowerPC(PowerPCInlineAsmRegClass::vsreg))
            {
            set.insert(InlineAsmReg::PowerPC(PowerPCInlineAsmReg::vs43));
        }
    }
    if true {
        if let Some(set) =
                _map.get_mut(&InlineAsmRegClass::PowerPC(PowerPCInlineAsmRegClass::vsreg))
            {
            set.insert(InlineAsmReg::PowerPC(PowerPCInlineAsmReg::vs44));
        }
    }
    if true {
        if let Some(set) =
                _map.get_mut(&InlineAsmRegClass::PowerPC(PowerPCInlineAsmRegClass::vsreg))
            {
            set.insert(InlineAsmReg::PowerPC(PowerPCInlineAsmReg::vs45));
        }
    }
    if true {
        if let Some(set) =
                _map.get_mut(&InlineAsmRegClass::PowerPC(PowerPCInlineAsmRegClass::vsreg))
            {
            set.insert(InlineAsmReg::PowerPC(PowerPCInlineAsmReg::vs46));
        }
    }
    if true {
        if let Some(set) =
                _map.get_mut(&InlineAsmRegClass::PowerPC(PowerPCInlineAsmRegClass::vsreg))
            {
            set.insert(InlineAsmReg::PowerPC(PowerPCInlineAsmReg::vs47));
        }
    }
    if true {
        if let Some(set) =
                _map.get_mut(&InlineAsmRegClass::PowerPC(PowerPCInlineAsmRegClass::vsreg))
            {
            set.insert(InlineAsmReg::PowerPC(PowerPCInlineAsmReg::vs48));
        }
    }
    if true {
        if let Some(set) =
                _map.get_mut(&InlineAsmRegClass::PowerPC(PowerPCInlineAsmRegClass::vsreg))
            {
            set.insert(InlineAsmReg::PowerPC(PowerPCInlineAsmReg::vs49));
        }
    }
    if true {
        if let Some(set) =
                _map.get_mut(&InlineAsmRegClass::PowerPC(PowerPCInlineAsmRegClass::vsreg))
            {
            set.insert(InlineAsmReg::PowerPC(PowerPCInlineAsmReg::vs50));
        }
    }
    if true {
        if let Some(set) =
                _map.get_mut(&InlineAsmRegClass::PowerPC(PowerPCInlineAsmRegClass::vsreg))
            {
            set.insert(InlineAsmReg::PowerPC(PowerPCInlineAsmReg::vs51));
        }
    }
    if reserved_v20to31(_arch, _reloc_model, _target_features, _target,
                    false).is_ok() && true {
        if let Some(set) =
                _map.get_mut(&InlineAsmRegClass::PowerPC(PowerPCInlineAsmRegClass::vsreg))
            {
            set.insert(InlineAsmReg::PowerPC(PowerPCInlineAsmReg::vs52));
        }
    }
    if reserved_v20to31(_arch, _reloc_model, _target_features, _target,
                    false).is_ok() && true {
        if let Some(set) =
                _map.get_mut(&InlineAsmRegClass::PowerPC(PowerPCInlineAsmRegClass::vsreg))
            {
            set.insert(InlineAsmReg::PowerPC(PowerPCInlineAsmReg::vs53));
        }
    }
    if reserved_v20to31(_arch, _reloc_model, _target_features, _target,
                    false).is_ok() && true {
        if let Some(set) =
                _map.get_mut(&InlineAsmRegClass::PowerPC(PowerPCInlineAsmRegClass::vsreg))
            {
            set.insert(InlineAsmReg::PowerPC(PowerPCInlineAsmReg::vs54));
        }
    }
    if reserved_v20to31(_arch, _reloc_model, _target_features, _target,
                    false).is_ok() && true {
        if let Some(set) =
                _map.get_mut(&InlineAsmRegClass::PowerPC(PowerPCInlineAsmRegClass::vsreg))
            {
            set.insert(InlineAsmReg::PowerPC(PowerPCInlineAsmReg::vs55));
        }
    }
    if reserved_v20to31(_arch, _reloc_model, _target_features, _target,
                    false).is_ok() && true {
        if let Some(set) =
                _map.get_mut(&InlineAsmRegClass::PowerPC(PowerPCInlineAsmRegClass::vsreg))
            {
            set.insert(InlineAsmReg::PowerPC(PowerPCInlineAsmReg::vs56));
        }
    }
    if reserved_v20to31(_arch, _reloc_model, _target_features, _target,
                    false).is_ok() && true {
        if let Some(set) =
                _map.get_mut(&InlineAsmRegClass::PowerPC(PowerPCInlineAsmRegClass::vsreg))
            {
            set.insert(InlineAsmReg::PowerPC(PowerPCInlineAsmReg::vs57));
        }
    }
    if reserved_v20to31(_arch, _reloc_model, _target_features, _target,
                    false).is_ok() && true {
        if let Some(set) =
                _map.get_mut(&InlineAsmRegClass::PowerPC(PowerPCInlineAsmRegClass::vsreg))
            {
            set.insert(InlineAsmReg::PowerPC(PowerPCInlineAsmReg::vs58));
        }
    }
    if reserved_v20to31(_arch, _reloc_model, _target_features, _target,
                    false).is_ok() && true {
        if let Some(set) =
                _map.get_mut(&InlineAsmRegClass::PowerPC(PowerPCInlineAsmRegClass::vsreg))
            {
            set.insert(InlineAsmReg::PowerPC(PowerPCInlineAsmReg::vs59));
        }
    }
    if reserved_v20to31(_arch, _reloc_model, _target_features, _target,
                    false).is_ok() && true {
        if let Some(set) =
                _map.get_mut(&InlineAsmRegClass::PowerPC(PowerPCInlineAsmRegClass::vsreg))
            {
            set.insert(InlineAsmReg::PowerPC(PowerPCInlineAsmReg::vs60));
        }
    }
    if reserved_v20to31(_arch, _reloc_model, _target_features, _target,
                    false).is_ok() && true {
        if let Some(set) =
                _map.get_mut(&InlineAsmRegClass::PowerPC(PowerPCInlineAsmRegClass::vsreg))
            {
            set.insert(InlineAsmReg::PowerPC(PowerPCInlineAsmReg::vs61));
        }
    }
    if reserved_v20to31(_arch, _reloc_model, _target_features, _target,
                    false).is_ok() && true {
        if let Some(set) =
                _map.get_mut(&InlineAsmRegClass::PowerPC(PowerPCInlineAsmRegClass::vsreg))
            {
            set.insert(InlineAsmReg::PowerPC(PowerPCInlineAsmReg::vs62));
        }
    }
    if reserved_v20to31(_arch, _reloc_model, _target_features, _target,
                    false).is_ok() && true {
        if let Some(set) =
                _map.get_mut(&InlineAsmRegClass::PowerPC(PowerPCInlineAsmRegClass::vsreg))
            {
            set.insert(InlineAsmReg::PowerPC(PowerPCInlineAsmReg::vs63));
        }
    }
    if true {
        if let Some(set) =
                _map.get_mut(&InlineAsmRegClass::PowerPC(PowerPCInlineAsmRegClass::cr))
            {
            set.insert(InlineAsmReg::PowerPC(PowerPCInlineAsmReg::cr));
        }
    }
    if true {
        if let Some(set) =
                _map.get_mut(&InlineAsmRegClass::PowerPC(PowerPCInlineAsmRegClass::cr))
            {
            set.insert(InlineAsmReg::PowerPC(PowerPCInlineAsmReg::cr0));
        }
    }
    if true {
        if let Some(set) =
                _map.get_mut(&InlineAsmRegClass::PowerPC(PowerPCInlineAsmRegClass::cr))
            {
            set.insert(InlineAsmReg::PowerPC(PowerPCInlineAsmReg::cr1));
        }
    }
    if true {
        if let Some(set) =
                _map.get_mut(&InlineAsmRegClass::PowerPC(PowerPCInlineAsmRegClass::cr))
            {
            set.insert(InlineAsmReg::PowerPC(PowerPCInlineAsmReg::cr2));
        }
    }
    if true {
        if let Some(set) =
                _map.get_mut(&InlineAsmRegClass::PowerPC(PowerPCInlineAsmRegClass::cr))
            {
            set.insert(InlineAsmReg::PowerPC(PowerPCInlineAsmReg::cr3));
        }
    }
    if true {
        if let Some(set) =
                _map.get_mut(&InlineAsmRegClass::PowerPC(PowerPCInlineAsmRegClass::cr))
            {
            set.insert(InlineAsmReg::PowerPC(PowerPCInlineAsmReg::cr4));
        }
    }
    if true {
        if let Some(set) =
                _map.get_mut(&InlineAsmRegClass::PowerPC(PowerPCInlineAsmRegClass::cr))
            {
            set.insert(InlineAsmReg::PowerPC(PowerPCInlineAsmReg::cr5));
        }
    }
    if true {
        if let Some(set) =
                _map.get_mut(&InlineAsmRegClass::PowerPC(PowerPCInlineAsmRegClass::cr))
            {
            set.insert(InlineAsmReg::PowerPC(PowerPCInlineAsmReg::cr6));
        }
    }
    if true {
        if let Some(set) =
                _map.get_mut(&InlineAsmRegClass::PowerPC(PowerPCInlineAsmRegClass::cr))
            {
            set.insert(InlineAsmReg::PowerPC(PowerPCInlineAsmReg::cr7));
        }
    }
    if true {
        if let Some(set) =
                _map.get_mut(&InlineAsmRegClass::PowerPC(PowerPCInlineAsmRegClass::ctr))
            {
            set.insert(InlineAsmReg::PowerPC(PowerPCInlineAsmReg::ctr));
        }
    }
    if true {
        if let Some(set) =
                _map.get_mut(&InlineAsmRegClass::PowerPC(PowerPCInlineAsmRegClass::lr))
            {
            set.insert(InlineAsmReg::PowerPC(PowerPCInlineAsmReg::lr));
        }
    }
    if true {
        if let Some(set) =
                _map.get_mut(&InlineAsmRegClass::PowerPC(PowerPCInlineAsmRegClass::xer))
            {
            set.insert(InlineAsmReg::PowerPC(PowerPCInlineAsmReg::xer));
        }
    }
    if spe_acc_target_check(_arch, _reloc_model, _target_features, _target,
                    false).is_ok() && true {
        if let Some(set) =
                _map.get_mut(&InlineAsmRegClass::PowerPC(PowerPCInlineAsmRegClass::spe_acc))
            {
            set.insert(InlineAsmReg::PowerPC(PowerPCInlineAsmReg::spe_acc));
        }
    }
}def_regs! {
129    PowerPC PowerPCInlineAsmReg PowerPCInlineAsmRegClass {
130        r0: reg = ["r0", "0"],
131        r3: reg, reg_nonzero = ["r3", "3"],
132        r4: reg, reg_nonzero = ["r4", "4"],
133        r5: reg, reg_nonzero = ["r5", "5"],
134        r6: reg, reg_nonzero = ["r6", "6"],
135        r7: reg, reg_nonzero = ["r7", "7"],
136        r8: reg, reg_nonzero = ["r8", "8"],
137        r9: reg, reg_nonzero = ["r9", "9"],
138        r10: reg, reg_nonzero = ["r10", "10"],
139        r11: reg, reg_nonzero = ["r11", "11"],
140        r12: reg, reg_nonzero = ["r12", "12"],
141        r13: reg, reg_nonzero = ["r13", "13"] % reserved_r13,
142        r14: reg, reg_nonzero = ["r14", "14"],
143        r15: reg, reg_nonzero = ["r15", "15"],
144        r16: reg, reg_nonzero = ["r16", "16"],
145        r17: reg, reg_nonzero = ["r17", "17"],
146        r18: reg, reg_nonzero = ["r18", "18"],
147        r19: reg, reg_nonzero = ["r19", "19"],
148        r20: reg, reg_nonzero = ["r20", "20"],
149        r21: reg, reg_nonzero = ["r21", "21"],
150        r22: reg, reg_nonzero = ["r22", "22"],
151        r23: reg, reg_nonzero = ["r23", "23"],
152        r24: reg, reg_nonzero = ["r24", "24"],
153        r25: reg, reg_nonzero = ["r25", "25"],
154        r26: reg, reg_nonzero = ["r26", "26"],
155        r27: reg, reg_nonzero = ["r27", "27"],
156        r28: reg, reg_nonzero = ["r28", "28"],
157        r29: reg, reg_nonzero = ["r29", "29"] % reserved_r29,
158        f0: freg = ["f0", "fr0"],
159        f1: freg = ["f1", "fr1"],
160        f2: freg = ["f2", "fr2"],
161        f3: freg = ["f3", "fr3"],
162        f4: freg = ["f4", "fr4"],
163        f5: freg = ["f5", "fr5"],
164        f6: freg = ["f6", "fr6"],
165        f7: freg = ["f7", "fr7"],
166        f8: freg = ["f8", "fr8"],
167        f9: freg = ["f9", "fr9"],
168        f10: freg = ["f10", "fr10"],
169        f11: freg = ["f11", "fr11"],
170        f12: freg = ["f12", "fr12"],
171        f13: freg = ["f13", "fr13"],
172        f14: freg = ["f14", "fr14"],
173        f15: freg = ["f15", "fr15"],
174        f16: freg = ["f16", "fr16"],
175        f17: freg = ["f17", "fr17"],
176        f18: freg = ["f18", "fr18"],
177        f19: freg = ["f19", "fr19"],
178        f20: freg = ["f20", "fr20"],
179        f21: freg = ["f21", "fr21"],
180        f22: freg = ["f22", "fr22"],
181        f23: freg = ["f23", "fr23"],
182        f24: freg = ["f24", "fr24"],
183        f25: freg = ["f25", "fr25"],
184        f26: freg = ["f26", "fr26"],
185        f27: freg = ["f27", "fr27"],
186        f28: freg = ["f28", "fr28"],
187        f29: freg = ["f29", "fr29"],
188        f30: freg = ["f30", "fr30"],
189        f31: freg = ["f31", "fr31"],
190        v0: vreg = ["v0"],
191        v1: vreg = ["v1"],
192        v2: vreg = ["v2"],
193        v3: vreg = ["v3"],
194        v4: vreg = ["v4"],
195        v5: vreg = ["v5"],
196        v6: vreg = ["v6"],
197        v7: vreg = ["v7"],
198        v8: vreg = ["v8"],
199        v9: vreg = ["v9"],
200        v10: vreg = ["v10"],
201        v11: vreg = ["v11"],
202        v12: vreg = ["v12"],
203        v13: vreg = ["v13"],
204        v14: vreg = ["v14"],
205        v15: vreg = ["v15"],
206        v16: vreg = ["v16"],
207        v17: vreg = ["v17"],
208        v18: vreg = ["v18"],
209        v19: vreg = ["v19"],
210        v20: vreg = ["v20"] % reserved_v20to31,
211        v21: vreg = ["v21"] % reserved_v20to31,
212        v22: vreg = ["v22"] % reserved_v20to31,
213        v23: vreg = ["v23"] % reserved_v20to31,
214        v24: vreg = ["v24"] % reserved_v20to31,
215        v25: vreg = ["v25"] % reserved_v20to31,
216        v26: vreg = ["v26"] % reserved_v20to31,
217        v27: vreg = ["v27"] % reserved_v20to31,
218        v28: vreg = ["v28"] % reserved_v20to31,
219        v29: vreg = ["v29"] % reserved_v20to31,
220        v30: vreg = ["v30"] % reserved_v20to31,
221        v31: vreg = ["v31"] % reserved_v20to31,
222        vs0: vsreg = ["vs0"],
223        vs1: vsreg = ["vs1"],
224        vs2: vsreg = ["vs2"],
225        vs3: vsreg = ["vs3"],
226        vs4: vsreg = ["vs4"],
227        vs5: vsreg = ["vs5"],
228        vs6: vsreg = ["vs6"],
229        vs7: vsreg = ["vs7"],
230        vs8: vsreg = ["vs8"],
231        vs9: vsreg = ["vs9"],
232        vs10: vsreg = ["vs10"],
233        vs11: vsreg = ["vs11"],
234        vs12: vsreg = ["vs12"],
235        vs13: vsreg = ["vs13"],
236        vs14: vsreg = ["vs14"],
237        vs15: vsreg = ["vs15"],
238        vs16: vsreg = ["vs16"],
239        vs17: vsreg = ["vs17"],
240        vs18: vsreg = ["vs18"],
241        vs19: vsreg = ["vs19"],
242        vs20: vsreg = ["vs20"],
243        vs21: vsreg = ["vs21"],
244        vs22: vsreg = ["vs22"],
245        vs23: vsreg = ["vs23"],
246        vs24: vsreg = ["vs24"],
247        vs25: vsreg = ["vs25"],
248        vs26: vsreg = ["vs26"],
249        vs27: vsreg = ["vs27"],
250        vs28: vsreg = ["vs28"],
251        vs29: vsreg = ["vs29"],
252        vs30: vsreg = ["vs30"],
253        vs31: vsreg = ["vs31"],
254        vs32: vsreg = ["vs32"],
255        vs33: vsreg = ["vs33"],
256        vs34: vsreg = ["vs34"],
257        vs35: vsreg = ["vs35"],
258        vs36: vsreg = ["vs36"],
259        vs37: vsreg = ["vs37"],
260        vs38: vsreg = ["vs38"],
261        vs39: vsreg = ["vs39"],
262        vs40: vsreg = ["vs40"],
263        vs41: vsreg = ["vs41"],
264        vs42: vsreg = ["vs42"],
265        vs43: vsreg = ["vs43"],
266        vs44: vsreg = ["vs44"],
267        vs45: vsreg = ["vs45"],
268        vs46: vsreg = ["vs46"],
269        vs47: vsreg = ["vs47"],
270        vs48: vsreg = ["vs48"],
271        vs49: vsreg = ["vs49"],
272        vs50: vsreg = ["vs50"],
273        vs51: vsreg = ["vs51"],
274        // vs52 - vs63 are aliases of v20-v31.
275        vs52: vsreg = ["vs52"] % reserved_v20to31,
276        vs53: vsreg = ["vs53"] % reserved_v20to31,
277        vs54: vsreg = ["vs54"] % reserved_v20to31,
278        vs55: vsreg = ["vs55"] % reserved_v20to31,
279        vs56: vsreg = ["vs56"] % reserved_v20to31,
280        vs57: vsreg = ["vs57"] % reserved_v20to31,
281        vs58: vsreg = ["vs58"] % reserved_v20to31,
282        vs59: vsreg = ["vs59"] % reserved_v20to31,
283        vs60: vsreg = ["vs60"] % reserved_v20to31,
284        vs61: vsreg = ["vs61"] % reserved_v20to31,
285        vs62: vsreg = ["vs62"] % reserved_v20to31,
286        vs63: vsreg = ["vs63"] % reserved_v20to31,
287        cr: cr = ["cr"],
288        cr0: cr = ["cr0"],
289        cr1: cr = ["cr1"],
290        cr2: cr = ["cr2"],
291        cr3: cr = ["cr3"],
292        cr4: cr = ["cr4"],
293        cr5: cr = ["cr5"],
294        cr6: cr = ["cr6"],
295        cr7: cr = ["cr7"],
296        ctr: ctr = ["ctr"],
297        lr: lr = ["lr"],
298        xer: xer = ["xer"],
299        spe_acc: spe_acc = ["spe_acc"] % spe_acc_target_check,
300        #error = ["r1", "1", "sp"] =>
301            "the stack pointer cannot be used as an operand for inline asm",
302        #error = ["r2", "2"] =>
303            "r2 is a system reserved register and cannot be used as an operand for inline asm",
304        #error = ["r30", "30"] =>
305            "r30 is used internally by LLVM and cannot be used as an operand for inline asm",
306        #error = ["r31", "31", "fp"] =>
307            "the frame pointer cannot be used as an operand for inline asm",
308        #error = ["vrsave"] =>
309            "the vrsave register cannot be used as an operand for inline asm",
310    }
311}
312
313impl PowerPCInlineAsmReg {
314    pub fn emit(
315        self,
316        out: &mut dyn fmt::Write,
317        _arch: InlineAsmArch,
318        _modifier: Option<char>,
319    ) -> fmt::Result {
320        macro_rules! do_emit {
321            (
322                $($(($reg:ident, $value:literal)),*;)*
323            ) => {
324                out.write_str(match self {
325                    $($(Self::$reg => $value,)*)*
326                })
327            };
328        }
329        // Strip off the leading prefix.
330        out.write_str(match self {
        Self::r0 => "0",
        Self::r3 => "3",
        Self::r4 => "4",
        Self::r5 => "5",
        Self::r6 => "6",
        Self::r7 => "7",
        Self::r8 => "8",
        Self::r9 => "9",
        Self::r10 => "10",
        Self::r11 => "11",
        Self::r12 => "12",
        Self::r13 => "13",
        Self::r14 => "14",
        Self::r15 => "15",
        Self::r16 => "16",
        Self::r17 => "17",
        Self::r18 => "18",
        Self::r19 => "19",
        Self::r20 => "20",
        Self::r21 => "21",
        Self::r22 => "22",
        Self::r23 => "23",
        Self::r24 => "24",
        Self::r25 => "25",
        Self::r26 => "26",
        Self::r27 => "27",
        Self::r28 => "28",
        Self::r29 => "29",
        Self::f0 => "0",
        Self::f1 => "1",
        Self::f2 => "2",
        Self::f3 => "3",
        Self::f4 => "4",
        Self::f5 => "5",
        Self::f6 => "6",
        Self::f7 => "7",
        Self::f8 => "8",
        Self::f9 => "9",
        Self::f10 => "10",
        Self::f11 => "11",
        Self::f12 => "12",
        Self::f13 => "13",
        Self::f14 => "14",
        Self::f15 => "15",
        Self::f16 => "16",
        Self::f17 => "17",
        Self::f18 => "18",
        Self::f19 => "19",
        Self::f20 => "20",
        Self::f21 => "21",
        Self::f22 => "22",
        Self::f23 => "23",
        Self::f24 => "24",
        Self::f25 => "25",
        Self::f26 => "26",
        Self::f27 => "27",
        Self::f28 => "28",
        Self::f29 => "29",
        Self::f30 => "30",
        Self::f31 => "31",
        Self::v0 => "0",
        Self::v1 => "1",
        Self::v2 => "2",
        Self::v3 => "3",
        Self::v4 => "4",
        Self::v5 => "5",
        Self::v6 => "6",
        Self::v7 => "7",
        Self::v8 => "8",
        Self::v9 => "9",
        Self::v10 => "10",
        Self::v11 => "11",
        Self::v12 => "12",
        Self::v13 => "13",
        Self::v14 => "14",
        Self::v15 => "15",
        Self::v16 => "16",
        Self::v17 => "17",
        Self::v18 => "18",
        Self::v19 => "19",
        Self::v20 => "20",
        Self::v21 => "21",
        Self::v22 => "22",
        Self::v23 => "23",
        Self::v24 => "24",
        Self::v25 => "25",
        Self::v26 => "26",
        Self::v27 => "27",
        Self::v28 => "28",
        Self::v29 => "29",
        Self::v30 => "30",
        Self::v31 => "31",
        Self::vs0 => "0",
        Self::vs1 => "1",
        Self::vs2 => "2",
        Self::vs3 => "3",
        Self::vs4 => "4",
        Self::vs5 => "5",
        Self::vs6 => "6",
        Self::vs7 => "7",
        Self::vs8 => "8",
        Self::vs9 => "9",
        Self::vs10 => "10",
        Self::vs11 => "11",
        Self::vs12 => "12",
        Self::vs13 => "13",
        Self::vs14 => "14",
        Self::vs15 => "15",
        Self::vs16 => "16",
        Self::vs17 => "17",
        Self::vs18 => "18",
        Self::vs19 => "19",
        Self::vs20 => "20",
        Self::vs21 => "21",
        Self::vs22 => "22",
        Self::vs23 => "23",
        Self::vs24 => "24",
        Self::vs25 => "25",
        Self::vs26 => "26",
        Self::vs27 => "27",
        Self::vs28 => "28",
        Self::vs29 => "29",
        Self::vs30 => "30",
        Self::vs31 => "31",
        Self::vs32 => "32",
        Self::vs33 => "33",
        Self::vs34 => "34",
        Self::vs35 => "35",
        Self::vs36 => "36",
        Self::vs37 => "37",
        Self::vs38 => "38",
        Self::vs39 => "39",
        Self::vs40 => "40",
        Self::vs41 => "41",
        Self::vs42 => "42",
        Self::vs43 => "43",
        Self::vs44 => "44",
        Self::vs45 => "45",
        Self::vs46 => "46",
        Self::vs47 => "47",
        Self::vs48 => "48",
        Self::vs49 => "49",
        Self::vs50 => "50",
        Self::vs51 => "51",
        Self::vs52 => "52",
        Self::vs53 => "53",
        Self::vs54 => "54",
        Self::vs55 => "55",
        Self::vs56 => "56",
        Self::vs57 => "57",
        Self::vs58 => "58",
        Self::vs59 => "59",
        Self::vs60 => "60",
        Self::vs61 => "61",
        Self::vs62 => "62",
        Self::vs63 => "63",
        Self::cr => "cr",
        Self::cr0 => "0",
        Self::cr1 => "1",
        Self::cr2 => "2",
        Self::cr3 => "3",
        Self::cr4 => "4",
        Self::cr5 => "5",
        Self::cr6 => "6",
        Self::cr7 => "7",
        Self::ctr => "ctr",
        Self::lr => "lr",
        Self::xer => "xer",
        Self::spe_acc => "spe_acc",
    });do_emit! {
331            (r0, "0"), (r3, "3"), (r4, "4"), (r5, "5"), (r6, "6"), (r7, "7");
332            (r8, "8"), (r9, "9"), (r10, "10"), (r11, "11"), (r12, "12"), (r13, "13"), (r14, "14"), (r15, "15");
333            (r16, "16"), (r17, "17"), (r18, "18"), (r19, "19"), (r20, "20"), (r21, "21"), (r22, "22"), (r23, "23");
334            (r24, "24"), (r25, "25"), (r26, "26"), (r27, "27"), (r28, "28"), (r29, "29");
335            (f0, "0"), (f1, "1"), (f2, "2"), (f3, "3"), (f4, "4"), (f5, "5"), (f6, "6"), (f7, "7");
336            (f8, "8"), (f9, "9"), (f10, "10"), (f11, "11"), (f12, "12"), (f13, "13"), (f14, "14"), (f15, "15");
337            (f16, "16"), (f17, "17"), (f18, "18"), (f19, "19"), (f20, "20"), (f21, "21"), (f22, "22"), (f23, "23");
338            (f24, "24"), (f25, "25"), (f26, "26"), (f27, "27"), (f28, "28"), (f29, "29"), (f30, "30"), (f31, "31");
339            (v0, "0"), (v1, "1"), (v2, "2"), (v3, "3"), (v4, "4"), (v5, "5"), (v6, "6"), (v7, "7");
340            (v8, "8"), (v9, "9"), (v10, "10"), (v11, "11"), (v12, "12"), (v13, "13"), (v14, "14"), (v15, "15");
341            (v16, "16"), (v17, "17"), (v18, "18"), (v19, "19"), (v20, "20"), (v21, "21"), (v22, "22"), (v23, "23");
342            (v24, "24"), (v25, "25"), (v26, "26"), (v27, "27"), (v28, "28"), (v29, "29"), (v30, "30"), (v31, "31");
343            (vs0, "0"), (vs1, "1"), (vs2, "2"), (vs3, "3"), (vs4, "4"), (vs5, "5"), (vs6, "6"), (vs7, "7"),
344            (vs8, "8"), (vs9, "9"), (vs10, "10"), (vs11, "11"), (vs12, "12"), (vs13, "13"), (vs14, "14"),
345            (vs15, "15"), (vs16, "16"), (vs17, "17"), (vs18, "18"), (vs19, "19"), (vs20, "20"), (vs21, "21"),
346            (vs22, "22"), (vs23, "23"), (vs24, "24"), (vs25, "25"), (vs26, "26"), (vs27, "27"), (vs28, "28"),
347            (vs29, "29"), (vs30, "30"), (vs31, "31"), (vs32, "32"), (vs33, "33"), (vs34, "34"), (vs35, "35"),
348            (vs36, "36"), (vs37, "37"), (vs38, "38"), (vs39, "39"), (vs40, "40"), (vs41, "41"), (vs42, "42"),
349            (vs43, "43"), (vs44, "44"), (vs45, "45"), (vs46, "46"), (vs47, "47"), (vs48, "48"), (vs49, "49"),
350            (vs50, "50"), (vs51, "51"), (vs52, "52"), (vs53, "53"), (vs54, "54"), (vs55, "55"), (vs56, "56"),
351            (vs57, "57"), (vs58, "58"), (vs59, "59"), (vs60, "60"), (vs61, "61"), (vs62, "62"), (vs63, "63"),
352            (cr, "cr");
353            (cr0, "0"), (cr1, "1"), (cr2, "2"), (cr3, "3"), (cr4, "4"), (cr5, "5"), (cr6, "6"), (cr7, "7");
354            (ctr, "ctr");
355            (lr, "lr");
356            (xer, "xer");
357            (spe_acc, "spe_acc");
358        }
359    }
360
361    pub fn overlapping_regs(self, mut cb: impl FnMut(PowerPCInlineAsmReg)) {
362        macro_rules! reg_conflicts {
363            (
364                $(
365                    $full:ident : $($field:ident)*
366                ),*;
367            ) => {
368                match self {
369                    $(
370                        Self::$full => {
371                            cb(Self::$full);
372                            $(cb(Self::$field);)*
373                        }
374                        $(Self::$field)|* => {
375                            cb(Self::$full);
376                            cb(self);
377                        }
378                    )*
379                    r => cb(r),
380                }
381            };
382        }
383        match self {
    Self::cr => {
        cb(Self::cr);
        cb(Self::cr0);
        cb(Self::cr1);
        cb(Self::cr2);
        cb(Self::cr3);
        cb(Self::cr4);
        cb(Self::cr5);
        cb(Self::cr6);
        cb(Self::cr7);
    }
    Self::cr0 | Self::cr1 | Self::cr2 | Self::cr3 | Self::cr4 | Self::cr5 |
        Self::cr6 | Self::cr7 => {
        cb(Self::cr);
        cb(self);
    }
    Self::vs0 => { cb(Self::vs0); cb(Self::f0); }
    Self::f0 => { cb(Self::vs0); cb(self); }
    Self::vs1 => { cb(Self::vs1); cb(Self::f1); }
    Self::f1 => { cb(Self::vs1); cb(self); }
    Self::vs2 => { cb(Self::vs2); cb(Self::f2); }
    Self::f2 => { cb(Self::vs2); cb(self); }
    Self::vs3 => { cb(Self::vs3); cb(Self::f3); }
    Self::f3 => { cb(Self::vs3); cb(self); }
    Self::vs4 => { cb(Self::vs4); cb(Self::f4); }
    Self::f4 => { cb(Self::vs4); cb(self); }
    Self::vs5 => { cb(Self::vs5); cb(Self::f5); }
    Self::f5 => { cb(Self::vs5); cb(self); }
    Self::vs6 => { cb(Self::vs6); cb(Self::f6); }
    Self::f6 => { cb(Self::vs6); cb(self); }
    Self::vs7 => { cb(Self::vs7); cb(Self::f7); }
    Self::f7 => { cb(Self::vs7); cb(self); }
    Self::vs8 => { cb(Self::vs8); cb(Self::f8); }
    Self::f8 => { cb(Self::vs8); cb(self); }
    Self::vs9 => { cb(Self::vs9); cb(Self::f9); }
    Self::f9 => { cb(Self::vs9); cb(self); }
    Self::vs10 => { cb(Self::vs10); cb(Self::f10); }
    Self::f10 => { cb(Self::vs10); cb(self); }
    Self::vs11 => { cb(Self::vs11); cb(Self::f11); }
    Self::f11 => { cb(Self::vs11); cb(self); }
    Self::vs12 => { cb(Self::vs12); cb(Self::f12); }
    Self::f12 => { cb(Self::vs12); cb(self); }
    Self::vs13 => { cb(Self::vs13); cb(Self::f13); }
    Self::f13 => { cb(Self::vs13); cb(self); }
    Self::vs14 => { cb(Self::vs14); cb(Self::f14); }
    Self::f14 => { cb(Self::vs14); cb(self); }
    Self::vs15 => { cb(Self::vs15); cb(Self::f15); }
    Self::f15 => { cb(Self::vs15); cb(self); }
    Self::vs16 => { cb(Self::vs16); cb(Self::f16); }
    Self::f16 => { cb(Self::vs16); cb(self); }
    Self::vs17 => { cb(Self::vs17); cb(Self::f17); }
    Self::f17 => { cb(Self::vs17); cb(self); }
    Self::vs18 => { cb(Self::vs18); cb(Self::f18); }
    Self::f18 => { cb(Self::vs18); cb(self); }
    Self::vs19 => { cb(Self::vs19); cb(Self::f19); }
    Self::f19 => { cb(Self::vs19); cb(self); }
    Self::vs20 => { cb(Self::vs20); cb(Self::f20); }
    Self::f20 => { cb(Self::vs20); cb(self); }
    Self::vs21 => { cb(Self::vs21); cb(Self::f21); }
    Self::f21 => { cb(Self::vs21); cb(self); }
    Self::vs22 => { cb(Self::vs22); cb(Self::f22); }
    Self::f22 => { cb(Self::vs22); cb(self); }
    Self::vs23 => { cb(Self::vs23); cb(Self::f23); }
    Self::f23 => { cb(Self::vs23); cb(self); }
    Self::vs24 => { cb(Self::vs24); cb(Self::f24); }
    Self::f24 => { cb(Self::vs24); cb(self); }
    Self::vs25 => { cb(Self::vs25); cb(Self::f25); }
    Self::f25 => { cb(Self::vs25); cb(self); }
    Self::vs26 => { cb(Self::vs26); cb(Self::f26); }
    Self::f26 => { cb(Self::vs26); cb(self); }
    Self::vs27 => { cb(Self::vs27); cb(Self::f27); }
    Self::f27 => { cb(Self::vs27); cb(self); }
    Self::vs28 => { cb(Self::vs28); cb(Self::f28); }
    Self::f28 => { cb(Self::vs28); cb(self); }
    Self::vs29 => { cb(Self::vs29); cb(Self::f29); }
    Self::f29 => { cb(Self::vs29); cb(self); }
    Self::vs30 => { cb(Self::vs30); cb(Self::f30); }
    Self::f30 => { cb(Self::vs30); cb(self); }
    Self::vs31 => { cb(Self::vs31); cb(Self::f31); }
    Self::f31 => { cb(Self::vs31); cb(self); }
    Self::vs32 => { cb(Self::vs32); cb(Self::v0); }
    Self::v0 => { cb(Self::vs32); cb(self); }
    Self::vs33 => { cb(Self::vs33); cb(Self::v1); }
    Self::v1 => { cb(Self::vs33); cb(self); }
    Self::vs34 => { cb(Self::vs34); cb(Self::v2); }
    Self::v2 => { cb(Self::vs34); cb(self); }
    Self::vs35 => { cb(Self::vs35); cb(Self::v3); }
    Self::v3 => { cb(Self::vs35); cb(self); }
    Self::vs36 => { cb(Self::vs36); cb(Self::v4); }
    Self::v4 => { cb(Self::vs36); cb(self); }
    Self::vs37 => { cb(Self::vs37); cb(Self::v5); }
    Self::v5 => { cb(Self::vs37); cb(self); }
    Self::vs38 => { cb(Self::vs38); cb(Self::v6); }
    Self::v6 => { cb(Self::vs38); cb(self); }
    Self::vs39 => { cb(Self::vs39); cb(Self::v7); }
    Self::v7 => { cb(Self::vs39); cb(self); }
    Self::vs40 => { cb(Self::vs40); cb(Self::v8); }
    Self::v8 => { cb(Self::vs40); cb(self); }
    Self::vs41 => { cb(Self::vs41); cb(Self::v9); }
    Self::v9 => { cb(Self::vs41); cb(self); }
    Self::vs42 => { cb(Self::vs42); cb(Self::v10); }
    Self::v10 => { cb(Self::vs42); cb(self); }
    Self::vs43 => { cb(Self::vs43); cb(Self::v11); }
    Self::v11 => { cb(Self::vs43); cb(self); }
    Self::vs44 => { cb(Self::vs44); cb(Self::v12); }
    Self::v12 => { cb(Self::vs44); cb(self); }
    Self::vs45 => { cb(Self::vs45); cb(Self::v13); }
    Self::v13 => { cb(Self::vs45); cb(self); }
    Self::vs46 => { cb(Self::vs46); cb(Self::v14); }
    Self::v14 => { cb(Self::vs46); cb(self); }
    Self::vs47 => { cb(Self::vs47); cb(Self::v15); }
    Self::v15 => { cb(Self::vs47); cb(self); }
    Self::vs48 => { cb(Self::vs48); cb(Self::v16); }
    Self::v16 => { cb(Self::vs48); cb(self); }
    Self::vs49 => { cb(Self::vs49); cb(Self::v17); }
    Self::v17 => { cb(Self::vs49); cb(self); }
    Self::vs50 => { cb(Self::vs50); cb(Self::v18); }
    Self::v18 => { cb(Self::vs50); cb(self); }
    Self::vs51 => { cb(Self::vs51); cb(Self::v19); }
    Self::v19 => { cb(Self::vs51); cb(self); }
    Self::vs52 => { cb(Self::vs52); cb(Self::v20); }
    Self::v20 => { cb(Self::vs52); cb(self); }
    Self::vs53 => { cb(Self::vs53); cb(Self::v21); }
    Self::v21 => { cb(Self::vs53); cb(self); }
    Self::vs54 => { cb(Self::vs54); cb(Self::v22); }
    Self::v22 => { cb(Self::vs54); cb(self); }
    Self::vs55 => { cb(Self::vs55); cb(Self::v23); }
    Self::v23 => { cb(Self::vs55); cb(self); }
    Self::vs56 => { cb(Self::vs56); cb(Self::v24); }
    Self::v24 => { cb(Self::vs56); cb(self); }
    Self::vs57 => { cb(Self::vs57); cb(Self::v25); }
    Self::v25 => { cb(Self::vs57); cb(self); }
    Self::vs58 => { cb(Self::vs58); cb(Self::v26); }
    Self::v26 => { cb(Self::vs58); cb(self); }
    Self::vs59 => { cb(Self::vs59); cb(Self::v27); }
    Self::v27 => { cb(Self::vs59); cb(self); }
    Self::vs60 => { cb(Self::vs60); cb(Self::v28); }
    Self::v28 => { cb(Self::vs60); cb(self); }
    Self::vs61 => { cb(Self::vs61); cb(Self::v29); }
    Self::v29 => { cb(Self::vs61); cb(self); }
    Self::vs62 => { cb(Self::vs62); cb(Self::v30); }
    Self::v30 => { cb(Self::vs62); cb(self); }
    Self::vs63 => { cb(Self::vs63); cb(Self::v31); }
    Self::v31 => { cb(Self::vs63); cb(self); }
    r => cb(r),
}reg_conflicts! {
384            cr : cr0 cr1 cr2 cr3 cr4 cr5 cr6 cr7,
385            // f0-f31 overlap half of each of vs0-vs32.
386            vs0 : f0,
387            vs1 : f1,
388            vs2 : f2,
389            vs3 : f3,
390            vs4 : f4,
391            vs5 : f5,
392            vs6 : f6,
393            vs7 : f7,
394            vs8 : f8,
395            vs9 : f9,
396            vs10 : f10,
397            vs11 : f11,
398            vs12 : f12,
399            vs13 : f13,
400            vs14 : f14,
401            vs15 : f15,
402            vs16 : f16,
403            vs17 : f17,
404            vs18 : f18,
405            vs19 : f19,
406            vs20 : f20,
407            vs21 : f21,
408            vs22 : f22,
409            vs23 : f23,
410            vs24 : f24,
411            vs25 : f25,
412            vs26 : f26,
413            vs27 : f27,
414            vs28 : f28,
415            vs29 : f29,
416            vs30 : f30,
417            vs31 : f31,
418            // vs32-v63 are aliases of v0-v31
419            vs32 : v0,
420            vs33 : v1,
421            vs34 : v2,
422            vs35 : v3,
423            vs36 : v4,
424            vs37 : v5,
425            vs38 : v6,
426            vs39 : v7,
427            vs40 : v8,
428            vs41 : v9,
429            vs42 : v10,
430            vs43 : v11,
431            vs44 : v12,
432            vs45 : v13,
433            vs46 : v14,
434            vs47 : v15,
435            vs48 : v16,
436            vs49 : v17,
437            vs50 : v18,
438            vs51 : v19,
439            vs52 : v20,
440            vs53 : v21,
441            vs54 : v22,
442            vs55 : v23,
443            vs56 : v24,
444            vs57 : v25,
445            vs58 : v26,
446            vs59 : v27,
447            vs60 : v28,
448            vs61 : v29,
449            vs62 : v30,
450            vs63 : v31;
451        }
452        // For more detail on how vsx, vmx (altivec), fpr, and mma registers overlap
453        // see OpenPOWER ISA 3.1C, Book I, Section 7.2.1.1 through 7.2.1.3.
454        //
455        // https://files.openpower.foundation/s/9izgC5Rogi5Ywmm
456    }
457}