Restrict spe_acc to PowerPC SPE targets

Update the tests, add powerpc-*-gnuspe testing, and create a distinct
clobber_abi list for PowerPC SPE targets.

Note, the SPE target does not have vector, vector-scalar, or
floating-point specific registers.
This commit is contained in:
Paul Murphy 2025-12-04 17:52:55 -06:00
parent 29e035e172
commit a1f4caf467
9 changed files with 1547 additions and 512 deletions

View file

@ -5,7 +5,7 @@ use rustc_data_structures::fx::{FxHashMap, FxIndexSet};
use rustc_macros::{Decodable, Encodable, HashStable_Generic};
use rustc_span::Symbol;
use crate::spec::{Arch, RelocModel, Target};
use crate::spec::{Abi, Arch, RelocModel, Target};
pub struct ModifierInfo {
pub modifier: char,
@ -936,6 +936,7 @@ pub enum InlineAsmClobberAbi {
RiscVE,
LoongArch,
PowerPC,
PowerPCSPE,
S390x,
Bpf,
Msp430,
@ -1000,7 +1001,11 @@ impl InlineAsmClobberAbi {
_ => Err(&["C", "system"]),
},
InlineAsmArch::PowerPC | InlineAsmArch::PowerPC64 => match name {
"C" | "system" => Ok(InlineAsmClobberAbi::PowerPC),
"C" | "system" => Ok(if target.abi == Abi::Spe {
InlineAsmClobberAbi::PowerPCSPE
} else {
InlineAsmClobberAbi::PowerPC
}),
_ => Err(&["C", "system"]),
},
InlineAsmArch::S390x => match name {
@ -1271,8 +1276,21 @@ impl InlineAsmClobberAbi {
ctr,
lr,
xer,
}
},
InlineAsmClobberAbi::PowerPCSPE => clobbered_regs! {
PowerPC PowerPCInlineAsmReg {
// r0, r3-r12
r0,
r3, r4, r5, r6, r7,
r8, r9, r10, r11, r12,
// These are only supported on PowerPC SPE targets.
// cr0-cr1, cr5-cr7, ctr, lr, xer, spe_acc
cr0, cr1,
cr5, cr6, cr7,
ctr,
lr,
xer,
spe_acc,
}
},

View file

@ -115,6 +115,16 @@ fn reserved_v20to31(
}
}
fn spe_acc_target_check(
_arch: InlineAsmArch,
_reloc_model: RelocModel,
_target_features: &FxIndexSet<Symbol>,
target: &Target,
_is_clobber: bool,
) -> Result<(), &'static str> {
if target.abi == Abi::Spe { Ok(()) } else { Err("spe_acc is only available on spe targets") }
}
def_regs! {
PowerPC PowerPCInlineAsmReg PowerPCInlineAsmRegClass {
r0: reg = ["r0", "0"],
@ -286,7 +296,7 @@ def_regs! {
ctr: ctr = ["ctr"],
lr: lr = ["lr"],
xer: xer = ["xer"],
spe_acc: spe_acc = ["spe_acc"],
spe_acc: spe_acc = ["spe_acc"] % spe_acc_target_check,
#error = ["r1", "1", "sp"] =>
"the stack pointer cannot be used as an operand for inline asm",
#error = ["r2", "2"] =>

View file

@ -1,11 +1,13 @@
//@ add-minicore
//@ revisions: powerpc powerpc64 powerpc64le aix64
//@ revisions: powerpc powerpc64 powerpc64le aix64 powerpcspe
//@[powerpc] compile-flags: --target powerpc-unknown-linux-gnu
//@[powerpc] needs-llvm-components: powerpc
//@[powerpc64] compile-flags: --target powerpc64-unknown-linux-gnu
//@[powerpc64] needs-llvm-components: powerpc
//@[powerpc64le] compile-flags: --target powerpc64le-unknown-linux-gnu
//@[powerpc64le] needs-llvm-components: powerpc
//@[powerpcspe] compile-flags: --target powerpc-unknown-linux-gnuspe
//@[powerpcspe] needs-llvm-components: powerpc
//@[aix64] compile-flags: --target powerpc64-ibm-aix
//@[aix64] needs-llvm-components: powerpc
// ignore-tidy-linelength
@ -67,12 +69,22 @@ pub unsafe fn vs32_clobber() {
asm!("", out("vs32") _, options(nostack, nomem, preserves_flags));
}
// This register is only available on SPE targets.
// CHECK-LABEL: @spe_acc_clobber
// powerpcspe: call void asm sideeffect "", "~{spe_acc}"()
#[no_mangle]
pub unsafe fn spe_acc_clobber() {
#[cfg(target_abi = "spe")]
asm!("", out("spe_acc") _, options(nostack, nomem, preserves_flags));
}
// Output format depends on the availability of altivec and vsx
// CHECK-LABEL: @clobber_abi
// powerpc: asm sideeffect "", "={r0},={r3},={r4},={r5},={r6},={r7},={r8},={r9},={r10},={r11},={r12},={f0},={f1},={f2},={f3},={f4},={f5},={f6},={f7},={f8},={f9},={f10},={f11},={f12},={f13},~{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},~{v0},~{v1},~{v2},~{v3},~{v4},~{v5},~{v6},~{v7},~{v8},~{v9},~{v10},~{v11},~{v12},~{v13},~{v14},~{v15},~{v16},~{v17},~{v18},~{v19},~{cr0},~{cr1},~{cr5},~{cr6},~{cr7},~{ctr},~{lr},~{xer},~{spe_acc}"()
// powerpc64: asm sideeffect "", "={r0},={r3},={r4},={r5},={r6},={r7},={r8},={r9},={r10},={r11},={r12},={f0},={f1},={f2},={f3},={f4},={f5},={f6},={f7},={f8},={f9},={f10},={f11},={f12},={f13},={v0},={v1},={v2},={v3},={v4},={v5},={v6},={v7},={v8},={v9},={v10},={v11},={v12},={v13},={v14},={v15},={v16},={v17},={v18},={v19},~{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},~{cr0},~{cr1},~{cr5},~{cr6},~{cr7},~{ctr},~{lr},~{xer},~{spe_acc}"()
// powerpc64le: asm sideeffect "", "={r0},={r3},={r4},={r5},={r6},={r7},={r8},={r9},={r10},={r11},={r12},={f0},={f1},={f2},={f3},={f4},={f5},={f6},={f7},={f8},={f9},={f10},={f11},={f12},={f13},={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},={v0},={v1},={v2},={v3},={v4},={v5},={v6},={v7},={v8},={v9},={v10},={v11},={v12},={v13},={v14},={v15},={v16},={v17},={v18},={v19},~{cr0},~{cr1},~{cr5},~{cr6},~{cr7},~{ctr},~{lr},~{xer},~{spe_acc}"()
// aix64: asm sideeffect "", "={r0},={r3},={r4},={r5},={r6},={r7},={r8},={r9},={r10},={r11},={r12},={f0},={f1},={f2},={f3},={f4},={f5},={f6},={f7},={f8},={f9},={f10},={f11},={f12},={f13},={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},={v0},={v1},={v2},={v3},={v4},={v5},={v6},={v7},={v8},={v9},={v10},={v11},={v12},={v13},={v14},={v15},={v16},={v17},={v18},={v19},~{cr0},~{cr1},~{cr5},~{cr6},~{cr7},~{ctr},~{lr},~{xer},~{spe_acc}"()
// powerpc: asm sideeffect "", "={r0},={r3},={r4},={r5},={r6},={r7},={r8},={r9},={r10},={r11},={r12},={f0},={f1},={f2},={f3},={f4},={f5},={f6},={f7},={f8},={f9},={f10},={f11},={f12},={f13},~{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},~{v0},~{v1},~{v2},~{v3},~{v4},~{v5},~{v6},~{v7},~{v8},~{v9},~{v10},~{v11},~{v12},~{v13},~{v14},~{v15},~{v16},~{v17},~{v18},~{v19},~{cr0},~{cr1},~{cr5},~{cr6},~{cr7},~{ctr},~{lr},~{xer}"()
// powerpc64: asm sideeffect "", "={r0},={r3},={r4},={r5},={r6},={r7},={r8},={r9},={r10},={r11},={r12},={f0},={f1},={f2},={f3},={f4},={f5},={f6},={f7},={f8},={f9},={f10},={f11},={f12},={f13},={v0},={v1},={v2},={v3},={v4},={v5},={v6},={v7},={v8},={v9},={v10},={v11},={v12},={v13},={v14},={v15},={v16},={v17},={v18},={v19},~{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},~{cr0},~{cr1},~{cr5},~{cr6},~{cr7},~{ctr},~{lr},~{xer}"()
// powerpc64le: asm sideeffect "", "={r0},={r3},={r4},={r5},={r6},={r7},={r8},={r9},={r10},={r11},={r12},={f0},={f1},={f2},={f3},={f4},={f5},={f6},={f7},={f8},={f9},={f10},={f11},={f12},={f13},={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},={v0},={v1},={v2},={v3},={v4},={v5},={v6},={v7},={v8},={v9},={v10},={v11},={v12},={v13},={v14},={v15},={v16},={v17},={v18},={v19},~{cr0},~{cr1},~{cr5},~{cr6},~{cr7},~{ctr},~{lr},~{xer}"()
// aix64: asm sideeffect "", "={r0},={r3},={r4},={r5},={r6},={r7},={r8},={r9},={r10},={r11},={r12},={f0},={f1},={f2},={f3},={f4},={f5},={f6},={f7},={f8},={f9},={f10},={f11},={f12},={f13},={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},={v0},={v1},={v2},={v3},={v4},={v5},={v6},={v7},={v8},={v9},={v10},={v11},={v12},={v13},={v14},={v15},={v16},={v17},={v18},={v19},~{cr0},~{cr1},~{cr5},~{cr6},~{cr7},~{ctr},~{lr},~{xer}"()
// powerpcspe: asm sideeffect "", "={r0},={r3},={r4},={r5},={r6},={r7},={r8},={r9},={r10},={r11},={r12},~{cr0},~{cr1},~{cr5},~{cr6},~{cr7},~{ctr},~{lr},~{xer},~{spe_acc}"()
#[no_mangle]
pub unsafe fn clobber_abi() {
asm!("", clobber_abi("C"), options(nostack, nomem, preserves_flags));
@ -104,10 +116,11 @@ pub unsafe fn clobber_preservesflags() {
// Output format depends on the availability of altivec and vsx
// CHECK-LABEL: @clobber_abi_no_preserves_flags
#[no_mangle]
// powerpc: asm sideeffect "nop", "={r0},={r3},={r4},={r5},={r6},={r7},={r8},={r9},={r10},={r11},={r12},={f0},={f1},={f2},={f3},={f4},={f5},={f6},={f7},={f8},={f9},={f10},={f11},={f12},={f13},~{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},~{v0},~{v1},~{v2},~{v3},~{v4},~{v5},~{v6},~{v7},~{v8},~{v9},~{v10},~{v11},~{v12},~{v13},~{v14},~{v15},~{v16},~{v17},~{v18},~{v19},~{cr0},~{cr1},~{cr5},~{cr6},~{cr7},~{ctr},~{lr},~{xer},~{spe_acc}"()
// powerpc64: asm sideeffect "nop", "={r0},={r3},={r4},={r5},={r6},={r7},={r8},={r9},={r10},={r11},={r12},={f0},={f1},={f2},={f3},={f4},={f5},={f6},={f7},={f8},={f9},={f10},={f11},={f12},={f13},={v0},={v1},={v2},={v3},={v4},={v5},={v6},={v7},={v8},={v9},={v10},={v11},={v12},={v13},={v14},={v15},={v16},={v17},={v18},={v19},~{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},~{cr0},~{cr1},~{cr5},~{cr6},~{cr7},~{ctr},~{lr},~{xer},~{spe_acc}"()
// powerpc64le: asm sideeffect "nop", "={r0},={r3},={r4},={r5},={r6},={r7},={r8},={r9},={r10},={r11},={r12},={f0},={f1},={f2},={f3},={f4},={f5},={f6},={f7},={f8},={f9},={f10},={f11},={f12},={f13},={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},={v0},={v1},={v2},={v3},={v4},={v5},={v6},={v7},={v8},={v9},={v10},={v11},={v12},={v13},={v14},={v15},={v16},={v17},={v18},={v19},~{cr0},~{cr1},~{cr5},~{cr6},~{cr7},~{ctr},~{lr},~{xer},~{spe_acc}"()
// aix64: asm sideeffect "nop", "={r0},={r3},={r4},={r5},={r6},={r7},={r8},={r9},={r10},={r11},={r12},={f0},={f1},={f2},={f3},={f4},={f5},={f6},={f7},={f8},={f9},={f10},={f11},={f12},={f13},={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},={v0},={v1},={v2},={v3},={v4},={v5},={v6},={v7},={v8},={v9},={v10},={v11},={v12},={v13},={v14},={v15},={v16},={v17},={v18},={v19},~{cr0},~{cr1},~{cr5},~{cr6},~{cr7},~{ctr},~{lr},~{xer},~{spe_acc}"()
// powerpc: asm sideeffect "nop", "={r0},={r3},={r4},={r5},={r6},={r7},={r8},={r9},={r10},={r11},={r12},={f0},={f1},={f2},={f3},={f4},={f5},={f6},={f7},={f8},={f9},={f10},={f11},={f12},={f13},~{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},~{v0},~{v1},~{v2},~{v3},~{v4},~{v5},~{v6},~{v7},~{v8},~{v9},~{v10},~{v11},~{v12},~{v13},~{v14},~{v15},~{v16},~{v17},~{v18},~{v19},~{cr0},~{cr1},~{cr5},~{cr6},~{cr7},~{ctr},~{lr},~{xer}"()
// powerpc64: asm sideeffect "nop", "={r0},={r3},={r4},={r5},={r6},={r7},={r8},={r9},={r10},={r11},={r12},={f0},={f1},={f2},={f3},={f4},={f5},={f6},={f7},={f8},={f9},={f10},={f11},={f12},={f13},={v0},={v1},={v2},={v3},={v4},={v5},={v6},={v7},={v8},={v9},={v10},={v11},={v12},={v13},={v14},={v15},={v16},={v17},={v18},={v19},~{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},~{cr0},~{cr1},~{cr5},~{cr6},~{cr7},~{ctr},~{lr},~{xer}"()
// powerpc64le: asm sideeffect "nop", "={r0},={r3},={r4},={r5},={r6},={r7},={r8},={r9},={r10},={r11},={r12},={f0},={f1},={f2},={f3},={f4},={f5},={f6},={f7},={f8},={f9},={f10},={f11},={f12},={f13},={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},={v0},={v1},={v2},={v3},={v4},={v5},={v6},={v7},={v8},={v9},={v10},={v11},={v12},={v13},={v14},={v15},={v16},={v17},={v18},={v19},~{cr0},~{cr1},~{cr5},~{cr6},~{cr7},~{ctr},~{lr},~{xer}"()
// aix64: asm sideeffect "nop", "={r0},={r3},={r4},={r5},={r6},={r7},={r8},={r9},={r10},={r11},={r12},={f0},={f1},={f2},={f3},={f4},={f5},={f6},={f7},={f8},={f9},={f10},={f11},={f12},={f13},={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},={v0},={v1},={v2},={v3},={v4},={v5},={v6},={v7},={v8},={v9},={v10},={v11},={v12},={v13},={v14},={v15},={v16},={v17},={v18},={v19},~{cr0},~{cr1},~{cr5},~{cr6},~{cr7},~{ctr},~{lr},~{xer}"()
// powerpcspe: asm sideeffect "nop", "={r0},={r3},={r4},={r5},={r6},={r7},={r8},={r9},={r10},={r11},={r12},~{cr0},~{cr1},~{cr5},~{cr6},~{cr7},~{ctr},~{lr},~{xer},~{spe_acc}"()
pub unsafe fn clobber_abi_no_preserves_flags() {
// Use a nop to prevent aliasing of identical functions here.
asm!("nop", clobber_abi("C"), options(nostack, nomem));

View file

@ -1,131 +1,131 @@
error: invalid register `sp`: the stack pointer cannot be used as an operand for inline asm
--> $DIR/bad-reg.rs:36:18
--> $DIR/bad-reg.rs:38:18
|
LL | asm!("", out("sp") _);
| ^^^^^^^^^^^
error: invalid register `r2`: r2 is a system reserved register and cannot be used as an operand for inline asm
--> $DIR/bad-reg.rs:38:18
--> $DIR/bad-reg.rs:40:18
|
LL | asm!("", out("r2") _);
| ^^^^^^^^^^^
error: invalid register `r30`: r30 is used internally by LLVM and cannot be used as an operand for inline asm
--> $DIR/bad-reg.rs:44:18
--> $DIR/bad-reg.rs:46:18
|
LL | asm!("", out("r30") _);
| ^^^^^^^^^^^^
error: invalid register `fp`: the frame pointer cannot be used as an operand for inline asm
--> $DIR/bad-reg.rs:46:18
--> $DIR/bad-reg.rs:48:18
|
LL | asm!("", out("fp") _);
| ^^^^^^^^^^^
error: invalid register `vrsave`: the vrsave register cannot be used as an operand for inline asm
--> $DIR/bad-reg.rs:48:18
--> $DIR/bad-reg.rs:50:18
|
LL | asm!("", out("vrsave") _);
| ^^^^^^^^^^^^^^^
error: register class `cr` can only be used as a clobber, not as an input or output
--> $DIR/bad-reg.rs:137:18
--> $DIR/bad-reg.rs:139:18
|
LL | asm!("", in("cr") x);
| ^^^^^^^^^^
error: register class `cr` can only be used as a clobber, not as an input or output
--> $DIR/bad-reg.rs:140:18
--> $DIR/bad-reg.rs:142:18
|
LL | asm!("", out("cr") x);
| ^^^^^^^^^^^
error: register class `cr` can only be used as a clobber, not as an input or output
--> $DIR/bad-reg.rs:143:26
--> $DIR/bad-reg.rs:145:26
|
LL | asm!("/* {} */", in(cr) x);
| ^^^^^^^^
error: register class `cr` can only be used as a clobber, not as an input or output
--> $DIR/bad-reg.rs:146:26
--> $DIR/bad-reg.rs:148:26
|
LL | asm!("/* {} */", out(cr) _);
| ^^^^^^^^^
error: register class `ctr` can only be used as a clobber, not as an input or output
--> $DIR/bad-reg.rs:150:18
--> $DIR/bad-reg.rs:152:18
|
LL | asm!("", in("ctr") x);
| ^^^^^^^^^^^
error: register class `ctr` can only be used as a clobber, not as an input or output
--> $DIR/bad-reg.rs:153:18
--> $DIR/bad-reg.rs:155:18
|
LL | asm!("", out("ctr") x);
| ^^^^^^^^^^^^
error: register class `ctr` can only be used as a clobber, not as an input or output
--> $DIR/bad-reg.rs:156:26
--> $DIR/bad-reg.rs:158:26
|
LL | asm!("/* {} */", in(ctr) x);
| ^^^^^^^^^
error: register class `ctr` can only be used as a clobber, not as an input or output
--> $DIR/bad-reg.rs:159:26
--> $DIR/bad-reg.rs:161:26
|
LL | asm!("/* {} */", out(ctr) _);
| ^^^^^^^^^^
error: register class `lr` can only be used as a clobber, not as an input or output
--> $DIR/bad-reg.rs:163:18
--> $DIR/bad-reg.rs:165:18
|
LL | asm!("", in("lr") x);
| ^^^^^^^^^^
error: register class `lr` can only be used as a clobber, not as an input or output
--> $DIR/bad-reg.rs:166:18
--> $DIR/bad-reg.rs:168:18
|
LL | asm!("", out("lr") x);
| ^^^^^^^^^^^
error: register class `lr` can only be used as a clobber, not as an input or output
--> $DIR/bad-reg.rs:169:26
--> $DIR/bad-reg.rs:171:26
|
LL | asm!("/* {} */", in(lr) x);
| ^^^^^^^^
error: register class `lr` can only be used as a clobber, not as an input or output
--> $DIR/bad-reg.rs:172:26
--> $DIR/bad-reg.rs:174:26
|
LL | asm!("/* {} */", out(lr) _);
| ^^^^^^^^^
error: register class `xer` can only be used as a clobber, not as an input or output
--> $DIR/bad-reg.rs:176:18
--> $DIR/bad-reg.rs:178:18
|
LL | asm!("", in("xer") x);
| ^^^^^^^^^^^
error: register class `xer` can only be used as a clobber, not as an input or output
--> $DIR/bad-reg.rs:179:18
--> $DIR/bad-reg.rs:181:18
|
LL | asm!("", out("xer") x);
| ^^^^^^^^^^^^
error: register class `xer` can only be used as a clobber, not as an input or output
--> $DIR/bad-reg.rs:182:26
--> $DIR/bad-reg.rs:184:26
|
LL | asm!("/* {} */", in(xer) x);
| ^^^^^^^^^
error: register class `xer` can only be used as a clobber, not as an input or output
--> $DIR/bad-reg.rs:185:26
--> $DIR/bad-reg.rs:187:26
|
LL | asm!("/* {} */", out(xer) _);
| ^^^^^^^^^^
error: register `cr0` conflicts with register `cr`
--> $DIR/bad-reg.rs:189:31
--> $DIR/bad-reg.rs:191:31
|
LL | asm!("", out("cr") _, out("cr0") _);
| ----------- ^^^^^^^^^^^^ register `cr0`
@ -133,7 +133,7 @@ LL | asm!("", out("cr") _, out("cr0") _);
| register `cr`
error: register `cr1` conflicts with register `cr`
--> $DIR/bad-reg.rs:191:31
--> $DIR/bad-reg.rs:193:31
|
LL | asm!("", out("cr") _, out("cr1") _);
| ----------- ^^^^^^^^^^^^ register `cr1`
@ -141,7 +141,7 @@ LL | asm!("", out("cr") _, out("cr1") _);
| register `cr`
error: register `cr2` conflicts with register `cr`
--> $DIR/bad-reg.rs:193:31
--> $DIR/bad-reg.rs:195:31
|
LL | asm!("", out("cr") _, out("cr2") _);
| ----------- ^^^^^^^^^^^^ register `cr2`
@ -149,7 +149,7 @@ LL | asm!("", out("cr") _, out("cr2") _);
| register `cr`
error: register `cr3` conflicts with register `cr`
--> $DIR/bad-reg.rs:195:31
--> $DIR/bad-reg.rs:197:31
|
LL | asm!("", out("cr") _, out("cr3") _);
| ----------- ^^^^^^^^^^^^ register `cr3`
@ -157,7 +157,7 @@ LL | asm!("", out("cr") _, out("cr3") _);
| register `cr`
error: register `cr4` conflicts with register `cr`
--> $DIR/bad-reg.rs:197:31
--> $DIR/bad-reg.rs:199:31
|
LL | asm!("", out("cr") _, out("cr4") _);
| ----------- ^^^^^^^^^^^^ register `cr4`
@ -165,7 +165,7 @@ LL | asm!("", out("cr") _, out("cr4") _);
| register `cr`
error: register `cr5` conflicts with register `cr`
--> $DIR/bad-reg.rs:199:31
--> $DIR/bad-reg.rs:201:31
|
LL | asm!("", out("cr") _, out("cr5") _);
| ----------- ^^^^^^^^^^^^ register `cr5`
@ -173,7 +173,7 @@ LL | asm!("", out("cr") _, out("cr5") _);
| register `cr`
error: register `cr6` conflicts with register `cr`
--> $DIR/bad-reg.rs:201:31
--> $DIR/bad-reg.rs:203:31
|
LL | asm!("", out("cr") _, out("cr6") _);
| ----------- ^^^^^^^^^^^^ register `cr6`
@ -181,7 +181,7 @@ LL | asm!("", out("cr") _, out("cr6") _);
| register `cr`
error: register `cr7` conflicts with register `cr`
--> $DIR/bad-reg.rs:203:31
--> $DIR/bad-reg.rs:205:31
|
LL | asm!("", out("cr") _, out("cr7") _);
| ----------- ^^^^^^^^^^^^ register `cr7`
@ -189,7 +189,7 @@ LL | asm!("", out("cr") _, out("cr7") _);
| register `cr`
error: register `vs0` conflicts with register `f0`
--> $DIR/bad-reg.rs:206:31
--> $DIR/bad-reg.rs:208:31
|
LL | asm!("", out("f0") _, out("vs0") _);
| ----------- ^^^^^^^^^^^^ register `vs0`
@ -197,7 +197,7 @@ LL | asm!("", out("f0") _, out("vs0") _);
| register `f0`
error: register `vs1` conflicts with register `f1`
--> $DIR/bad-reg.rs:208:31
--> $DIR/bad-reg.rs:210:31
|
LL | asm!("", out("f1") _, out("vs1") _);
| ----------- ^^^^^^^^^^^^ register `vs1`
@ -205,7 +205,7 @@ LL | asm!("", out("f1") _, out("vs1") _);
| register `f1`
error: register `vs2` conflicts with register `f2`
--> $DIR/bad-reg.rs:210:31
--> $DIR/bad-reg.rs:212:31
|
LL | asm!("", out("f2") _, out("vs2") _);
| ----------- ^^^^^^^^^^^^ register `vs2`
@ -213,7 +213,7 @@ LL | asm!("", out("f2") _, out("vs2") _);
| register `f2`
error: register `vs3` conflicts with register `f3`
--> $DIR/bad-reg.rs:212:31
--> $DIR/bad-reg.rs:214:31
|
LL | asm!("", out("f3") _, out("vs3") _);
| ----------- ^^^^^^^^^^^^ register `vs3`
@ -221,7 +221,7 @@ LL | asm!("", out("f3") _, out("vs3") _);
| register `f3`
error: register `vs4` conflicts with register `f4`
--> $DIR/bad-reg.rs:214:31
--> $DIR/bad-reg.rs:216:31
|
LL | asm!("", out("f4") _, out("vs4") _);
| ----------- ^^^^^^^^^^^^ register `vs4`
@ -229,7 +229,7 @@ LL | asm!("", out("f4") _, out("vs4") _);
| register `f4`
error: register `vs5` conflicts with register `f5`
--> $DIR/bad-reg.rs:216:31
--> $DIR/bad-reg.rs:218:31
|
LL | asm!("", out("f5") _, out("vs5") _);
| ----------- ^^^^^^^^^^^^ register `vs5`
@ -237,7 +237,7 @@ LL | asm!("", out("f5") _, out("vs5") _);
| register `f5`
error: register `vs6` conflicts with register `f6`
--> $DIR/bad-reg.rs:218:31
--> $DIR/bad-reg.rs:220:31
|
LL | asm!("", out("f6") _, out("vs6") _);
| ----------- ^^^^^^^^^^^^ register `vs6`
@ -245,7 +245,7 @@ LL | asm!("", out("f6") _, out("vs6") _);
| register `f6`
error: register `vs7` conflicts with register `f7`
--> $DIR/bad-reg.rs:220:31
--> $DIR/bad-reg.rs:222:31
|
LL | asm!("", out("f7") _, out("vs7") _);
| ----------- ^^^^^^^^^^^^ register `vs7`
@ -253,7 +253,7 @@ LL | asm!("", out("f7") _, out("vs7") _);
| register `f7`
error: register `vs8` conflicts with register `f8`
--> $DIR/bad-reg.rs:222:31
--> $DIR/bad-reg.rs:224:31
|
LL | asm!("", out("f8") _, out("vs8") _);
| ----------- ^^^^^^^^^^^^ register `vs8`
@ -261,7 +261,7 @@ LL | asm!("", out("f8") _, out("vs8") _);
| register `f8`
error: register `vs9` conflicts with register `f9`
--> $DIR/bad-reg.rs:224:31
--> $DIR/bad-reg.rs:226:31
|
LL | asm!("", out("f9") _, out("vs9") _);
| ----------- ^^^^^^^^^^^^ register `vs9`
@ -269,7 +269,7 @@ LL | asm!("", out("f9") _, out("vs9") _);
| register `f9`
error: register `vs10` conflicts with register `f10`
--> $DIR/bad-reg.rs:226:32
--> $DIR/bad-reg.rs:228:32
|
LL | asm!("", out("f10") _, out("vs10") _);
| ------------ ^^^^^^^^^^^^^ register `vs10`
@ -277,7 +277,7 @@ LL | asm!("", out("f10") _, out("vs10") _);
| register `f10`
error: register `vs11` conflicts with register `f11`
--> $DIR/bad-reg.rs:228:32
--> $DIR/bad-reg.rs:230:32
|
LL | asm!("", out("f11") _, out("vs11") _);
| ------------ ^^^^^^^^^^^^^ register `vs11`
@ -285,7 +285,7 @@ LL | asm!("", out("f11") _, out("vs11") _);
| register `f11`
error: register `vs12` conflicts with register `f12`
--> $DIR/bad-reg.rs:230:32
--> $DIR/bad-reg.rs:232:32
|
LL | asm!("", out("f12") _, out("vs12") _);
| ------------ ^^^^^^^^^^^^^ register `vs12`
@ -293,7 +293,7 @@ LL | asm!("", out("f12") _, out("vs12") _);
| register `f12`
error: register `vs13` conflicts with register `f13`
--> $DIR/bad-reg.rs:232:32
--> $DIR/bad-reg.rs:234:32
|
LL | asm!("", out("f13") _, out("vs13") _);
| ------------ ^^^^^^^^^^^^^ register `vs13`
@ -301,7 +301,7 @@ LL | asm!("", out("f13") _, out("vs13") _);
| register `f13`
error: register `vs14` conflicts with register `f14`
--> $DIR/bad-reg.rs:234:32
--> $DIR/bad-reg.rs:236:32
|
LL | asm!("", out("f14") _, out("vs14") _);
| ------------ ^^^^^^^^^^^^^ register `vs14`
@ -309,7 +309,7 @@ LL | asm!("", out("f14") _, out("vs14") _);
| register `f14`
error: register `vs15` conflicts with register `f15`
--> $DIR/bad-reg.rs:236:32
--> $DIR/bad-reg.rs:238:32
|
LL | asm!("", out("f15") _, out("vs15") _);
| ------------ ^^^^^^^^^^^^^ register `vs15`
@ -317,7 +317,7 @@ LL | asm!("", out("f15") _, out("vs15") _);
| register `f15`
error: register `vs16` conflicts with register `f16`
--> $DIR/bad-reg.rs:238:32
--> $DIR/bad-reg.rs:240:32
|
LL | asm!("", out("f16") _, out("vs16") _);
| ------------ ^^^^^^^^^^^^^ register `vs16`
@ -325,7 +325,7 @@ LL | asm!("", out("f16") _, out("vs16") _);
| register `f16`
error: register `vs17` conflicts with register `f17`
--> $DIR/bad-reg.rs:240:32
--> $DIR/bad-reg.rs:242:32
|
LL | asm!("", out("f17") _, out("vs17") _);
| ------------ ^^^^^^^^^^^^^ register `vs17`
@ -333,7 +333,7 @@ LL | asm!("", out("f17") _, out("vs17") _);
| register `f17`
error: register `vs18` conflicts with register `f18`
--> $DIR/bad-reg.rs:242:32
--> $DIR/bad-reg.rs:244:32
|
LL | asm!("", out("f18") _, out("vs18") _);
| ------------ ^^^^^^^^^^^^^ register `vs18`
@ -341,7 +341,7 @@ LL | asm!("", out("f18") _, out("vs18") _);
| register `f18`
error: register `vs19` conflicts with register `f19`
--> $DIR/bad-reg.rs:244:32
--> $DIR/bad-reg.rs:246:32
|
LL | asm!("", out("f19") _, out("vs19") _);
| ------------ ^^^^^^^^^^^^^ register `vs19`
@ -349,7 +349,7 @@ LL | asm!("", out("f19") _, out("vs19") _);
| register `f19`
error: register `vs20` conflicts with register `f20`
--> $DIR/bad-reg.rs:246:32
--> $DIR/bad-reg.rs:248:32
|
LL | asm!("", out("f20") _, out("vs20") _);
| ------------ ^^^^^^^^^^^^^ register `vs20`
@ -357,7 +357,7 @@ LL | asm!("", out("f20") _, out("vs20") _);
| register `f20`
error: register `vs21` conflicts with register `f21`
--> $DIR/bad-reg.rs:248:32
--> $DIR/bad-reg.rs:250:32
|
LL | asm!("", out("f21") _, out("vs21") _);
| ------------ ^^^^^^^^^^^^^ register `vs21`
@ -365,7 +365,7 @@ LL | asm!("", out("f21") _, out("vs21") _);
| register `f21`
error: register `vs22` conflicts with register `f22`
--> $DIR/bad-reg.rs:250:32
--> $DIR/bad-reg.rs:252:32
|
LL | asm!("", out("f22") _, out("vs22") _);
| ------------ ^^^^^^^^^^^^^ register `vs22`
@ -373,7 +373,7 @@ LL | asm!("", out("f22") _, out("vs22") _);
| register `f22`
error: register `vs23` conflicts with register `f23`
--> $DIR/bad-reg.rs:252:32
--> $DIR/bad-reg.rs:254:32
|
LL | asm!("", out("f23") _, out("vs23") _);
| ------------ ^^^^^^^^^^^^^ register `vs23`
@ -381,7 +381,7 @@ LL | asm!("", out("f23") _, out("vs23") _);
| register `f23`
error: register `vs24` conflicts with register `f24`
--> $DIR/bad-reg.rs:254:32
--> $DIR/bad-reg.rs:256:32
|
LL | asm!("", out("f24") _, out("vs24") _);
| ------------ ^^^^^^^^^^^^^ register `vs24`
@ -389,7 +389,7 @@ LL | asm!("", out("f24") _, out("vs24") _);
| register `f24`
error: register `vs25` conflicts with register `f25`
--> $DIR/bad-reg.rs:256:32
--> $DIR/bad-reg.rs:258:32
|
LL | asm!("", out("f25") _, out("vs25") _);
| ------------ ^^^^^^^^^^^^^ register `vs25`
@ -397,7 +397,7 @@ LL | asm!("", out("f25") _, out("vs25") _);
| register `f25`
error: register `vs26` conflicts with register `f26`
--> $DIR/bad-reg.rs:258:32
--> $DIR/bad-reg.rs:260:32
|
LL | asm!("", out("f26") _, out("vs26") _);
| ------------ ^^^^^^^^^^^^^ register `vs26`
@ -405,7 +405,7 @@ LL | asm!("", out("f26") _, out("vs26") _);
| register `f26`
error: register `vs27` conflicts with register `f27`
--> $DIR/bad-reg.rs:260:32
--> $DIR/bad-reg.rs:262:32
|
LL | asm!("", out("f27") _, out("vs27") _);
| ------------ ^^^^^^^^^^^^^ register `vs27`
@ -413,7 +413,7 @@ LL | asm!("", out("f27") _, out("vs27") _);
| register `f27`
error: register `vs28` conflicts with register `f28`
--> $DIR/bad-reg.rs:262:32
--> $DIR/bad-reg.rs:264:32
|
LL | asm!("", out("f28") _, out("vs28") _);
| ------------ ^^^^^^^^^^^^^ register `vs28`
@ -421,7 +421,7 @@ LL | asm!("", out("f28") _, out("vs28") _);
| register `f28`
error: register `vs29` conflicts with register `f29`
--> $DIR/bad-reg.rs:264:32
--> $DIR/bad-reg.rs:266:32
|
LL | asm!("", out("f29") _, out("vs29") _);
| ------------ ^^^^^^^^^^^^^ register `vs29`
@ -429,7 +429,7 @@ LL | asm!("", out("f29") _, out("vs29") _);
| register `f29`
error: register `vs30` conflicts with register `f30`
--> $DIR/bad-reg.rs:266:32
--> $DIR/bad-reg.rs:268:32
|
LL | asm!("", out("f30") _, out("vs30") _);
| ------------ ^^^^^^^^^^^^^ register `vs30`
@ -437,7 +437,7 @@ LL | asm!("", out("f30") _, out("vs30") _);
| register `f30`
error: register `vs31` conflicts with register `f31`
--> $DIR/bad-reg.rs:268:32
--> $DIR/bad-reg.rs:270:32
|
LL | asm!("", out("f31") _, out("vs31") _);
| ------------ ^^^^^^^^^^^^^ register `vs31`
@ -445,7 +445,7 @@ LL | asm!("", out("f31") _, out("vs31") _);
| register `f31`
error: register `v0` conflicts with register `vs32`
--> $DIR/bad-reg.rs:270:33
--> $DIR/bad-reg.rs:272:33
|
LL | asm!("", out("vs32") _, out("v0") _);
| ------------- ^^^^^^^^^^^ register `v0`
@ -453,7 +453,7 @@ LL | asm!("", out("vs32") _, out("v0") _);
| register `vs32`
error: register `v1` conflicts with register `vs33`
--> $DIR/bad-reg.rs:272:33
--> $DIR/bad-reg.rs:274:33
|
LL | asm!("", out("vs33") _, out("v1") _);
| ------------- ^^^^^^^^^^^ register `v1`
@ -461,7 +461,7 @@ LL | asm!("", out("vs33") _, out("v1") _);
| register `vs33`
error: register `v2` conflicts with register `vs34`
--> $DIR/bad-reg.rs:274:33
--> $DIR/bad-reg.rs:276:33
|
LL | asm!("", out("vs34") _, out("v2") _);
| ------------- ^^^^^^^^^^^ register `v2`
@ -469,7 +469,7 @@ LL | asm!("", out("vs34") _, out("v2") _);
| register `vs34`
error: register `v3` conflicts with register `vs35`
--> $DIR/bad-reg.rs:276:33
--> $DIR/bad-reg.rs:278:33
|
LL | asm!("", out("vs35") _, out("v3") _);
| ------------- ^^^^^^^^^^^ register `v3`
@ -477,7 +477,7 @@ LL | asm!("", out("vs35") _, out("v3") _);
| register `vs35`
error: register `v4` conflicts with register `vs36`
--> $DIR/bad-reg.rs:278:33
--> $DIR/bad-reg.rs:280:33
|
LL | asm!("", out("vs36") _, out("v4") _);
| ------------- ^^^^^^^^^^^ register `v4`
@ -485,7 +485,7 @@ LL | asm!("", out("vs36") _, out("v4") _);
| register `vs36`
error: register `v5` conflicts with register `vs37`
--> $DIR/bad-reg.rs:280:33
--> $DIR/bad-reg.rs:282:33
|
LL | asm!("", out("vs37") _, out("v5") _);
| ------------- ^^^^^^^^^^^ register `v5`
@ -493,7 +493,7 @@ LL | asm!("", out("vs37") _, out("v5") _);
| register `vs37`
error: register `v6` conflicts with register `vs38`
--> $DIR/bad-reg.rs:282:33
--> $DIR/bad-reg.rs:284:33
|
LL | asm!("", out("vs38") _, out("v6") _);
| ------------- ^^^^^^^^^^^ register `v6`
@ -501,7 +501,7 @@ LL | asm!("", out("vs38") _, out("v6") _);
| register `vs38`
error: register `v7` conflicts with register `vs39`
--> $DIR/bad-reg.rs:284:33
--> $DIR/bad-reg.rs:286:33
|
LL | asm!("", out("vs39") _, out("v7") _);
| ------------- ^^^^^^^^^^^ register `v7`
@ -509,7 +509,7 @@ LL | asm!("", out("vs39") _, out("v7") _);
| register `vs39`
error: register `v8` conflicts with register `vs40`
--> $DIR/bad-reg.rs:286:33
--> $DIR/bad-reg.rs:288:33
|
LL | asm!("", out("vs40") _, out("v8") _);
| ------------- ^^^^^^^^^^^ register `v8`
@ -517,7 +517,7 @@ LL | asm!("", out("vs40") _, out("v8") _);
| register `vs40`
error: register `v9` conflicts with register `vs41`
--> $DIR/bad-reg.rs:288:33
--> $DIR/bad-reg.rs:290:33
|
LL | asm!("", out("vs41") _, out("v9") _);
| ------------- ^^^^^^^^^^^ register `v9`
@ -525,7 +525,7 @@ LL | asm!("", out("vs41") _, out("v9") _);
| register `vs41`
error: register `v10` conflicts with register `vs42`
--> $DIR/bad-reg.rs:290:33
--> $DIR/bad-reg.rs:292:33
|
LL | asm!("", out("vs42") _, out("v10") _);
| ------------- ^^^^^^^^^^^^ register `v10`
@ -533,7 +533,7 @@ LL | asm!("", out("vs42") _, out("v10") _);
| register `vs42`
error: register `v11` conflicts with register `vs43`
--> $DIR/bad-reg.rs:292:33
--> $DIR/bad-reg.rs:294:33
|
LL | asm!("", out("vs43") _, out("v11") _);
| ------------- ^^^^^^^^^^^^ register `v11`
@ -541,7 +541,7 @@ LL | asm!("", out("vs43") _, out("v11") _);
| register `vs43`
error: register `v12` conflicts with register `vs44`
--> $DIR/bad-reg.rs:294:33
--> $DIR/bad-reg.rs:296:33
|
LL | asm!("", out("vs44") _, out("v12") _);
| ------------- ^^^^^^^^^^^^ register `v12`
@ -549,7 +549,7 @@ LL | asm!("", out("vs44") _, out("v12") _);
| register `vs44`
error: register `v13` conflicts with register `vs45`
--> $DIR/bad-reg.rs:296:33
--> $DIR/bad-reg.rs:298:33
|
LL | asm!("", out("vs45") _, out("v13") _);
| ------------- ^^^^^^^^^^^^ register `v13`
@ -557,7 +557,7 @@ LL | asm!("", out("vs45") _, out("v13") _);
| register `vs45`
error: register `v14` conflicts with register `vs46`
--> $DIR/bad-reg.rs:298:33
--> $DIR/bad-reg.rs:300:33
|
LL | asm!("", out("vs46") _, out("v14") _);
| ------------- ^^^^^^^^^^^^ register `v14`
@ -565,7 +565,7 @@ LL | asm!("", out("vs46") _, out("v14") _);
| register `vs46`
error: register `v15` conflicts with register `vs47`
--> $DIR/bad-reg.rs:300:33
--> $DIR/bad-reg.rs:302:33
|
LL | asm!("", out("vs47") _, out("v15") _);
| ------------- ^^^^^^^^^^^^ register `v15`
@ -573,7 +573,7 @@ LL | asm!("", out("vs47") _, out("v15") _);
| register `vs47`
error: register `v16` conflicts with register `vs48`
--> $DIR/bad-reg.rs:302:33
--> $DIR/bad-reg.rs:304:33
|
LL | asm!("", out("vs48") _, out("v16") _);
| ------------- ^^^^^^^^^^^^ register `v16`
@ -581,7 +581,7 @@ LL | asm!("", out("vs48") _, out("v16") _);
| register `vs48`
error: register `v17` conflicts with register `vs49`
--> $DIR/bad-reg.rs:304:33
--> $DIR/bad-reg.rs:306:33
|
LL | asm!("", out("vs49") _, out("v17") _);
| ------------- ^^^^^^^^^^^^ register `v17`
@ -589,7 +589,7 @@ LL | asm!("", out("vs49") _, out("v17") _);
| register `vs49`
error: register `v18` conflicts with register `vs50`
--> $DIR/bad-reg.rs:306:33
--> $DIR/bad-reg.rs:308:33
|
LL | asm!("", out("vs50") _, out("v18") _);
| ------------- ^^^^^^^^^^^^ register `v18`
@ -597,7 +597,7 @@ LL | asm!("", out("vs50") _, out("v18") _);
| register `vs50`
error: register `v19` conflicts with register `vs51`
--> $DIR/bad-reg.rs:308:33
--> $DIR/bad-reg.rs:310:33
|
LL | asm!("", out("vs51") _, out("v19") _);
| ------------- ^^^^^^^^^^^^ register `v19`
@ -605,7 +605,7 @@ LL | asm!("", out("vs51") _, out("v19") _);
| register `vs51`
error: register `v20` conflicts with register `vs52`
--> $DIR/bad-reg.rs:310:33
--> $DIR/bad-reg.rs:312:33
|
LL | asm!("", out("vs52") _, out("v20") _);
| ------------- ^^^^^^^^^^^^ register `v20`
@ -613,7 +613,7 @@ LL | asm!("", out("vs52") _, out("v20") _);
| register `vs52`
error: register `v21` conflicts with register `vs53`
--> $DIR/bad-reg.rs:312:33
--> $DIR/bad-reg.rs:314:33
|
LL | asm!("", out("vs53") _, out("v21") _);
| ------------- ^^^^^^^^^^^^ register `v21`
@ -621,7 +621,7 @@ LL | asm!("", out("vs53") _, out("v21") _);
| register `vs53`
error: register `v22` conflicts with register `vs54`
--> $DIR/bad-reg.rs:314:33
--> $DIR/bad-reg.rs:316:33
|
LL | asm!("", out("vs54") _, out("v22") _);
| ------------- ^^^^^^^^^^^^ register `v22`
@ -629,7 +629,7 @@ LL | asm!("", out("vs54") _, out("v22") _);
| register `vs54`
error: register `v23` conflicts with register `vs55`
--> $DIR/bad-reg.rs:316:33
--> $DIR/bad-reg.rs:318:33
|
LL | asm!("", out("vs55") _, out("v23") _);
| ------------- ^^^^^^^^^^^^ register `v23`
@ -637,7 +637,7 @@ LL | asm!("", out("vs55") _, out("v23") _);
| register `vs55`
error: register `v24` conflicts with register `vs56`
--> $DIR/bad-reg.rs:318:33
--> $DIR/bad-reg.rs:320:33
|
LL | asm!("", out("vs56") _, out("v24") _);
| ------------- ^^^^^^^^^^^^ register `v24`
@ -645,7 +645,7 @@ LL | asm!("", out("vs56") _, out("v24") _);
| register `vs56`
error: register `v25` conflicts with register `vs57`
--> $DIR/bad-reg.rs:320:33
--> $DIR/bad-reg.rs:322:33
|
LL | asm!("", out("vs57") _, out("v25") _);
| ------------- ^^^^^^^^^^^^ register `v25`
@ -653,7 +653,7 @@ LL | asm!("", out("vs57") _, out("v25") _);
| register `vs57`
error: register `v26` conflicts with register `vs58`
--> $DIR/bad-reg.rs:322:33
--> $DIR/bad-reg.rs:324:33
|
LL | asm!("", out("vs58") _, out("v26") _);
| ------------- ^^^^^^^^^^^^ register `v26`
@ -661,7 +661,7 @@ LL | asm!("", out("vs58") _, out("v26") _);
| register `vs58`
error: register `v27` conflicts with register `vs59`
--> $DIR/bad-reg.rs:324:33
--> $DIR/bad-reg.rs:326:33
|
LL | asm!("", out("vs59") _, out("v27") _);
| ------------- ^^^^^^^^^^^^ register `v27`
@ -669,7 +669,7 @@ LL | asm!("", out("vs59") _, out("v27") _);
| register `vs59`
error: register `v28` conflicts with register `vs60`
--> $DIR/bad-reg.rs:326:33
--> $DIR/bad-reg.rs:328:33
|
LL | asm!("", out("vs60") _, out("v28") _);
| ------------- ^^^^^^^^^^^^ register `v28`
@ -677,7 +677,7 @@ LL | asm!("", out("vs60") _, out("v28") _);
| register `vs60`
error: register `v29` conflicts with register `vs61`
--> $DIR/bad-reg.rs:328:33
--> $DIR/bad-reg.rs:330:33
|
LL | asm!("", out("vs61") _, out("v29") _);
| ------------- ^^^^^^^^^^^^ register `v29`
@ -685,7 +685,7 @@ LL | asm!("", out("vs61") _, out("v29") _);
| register `vs61`
error: register `v30` conflicts with register `vs62`
--> $DIR/bad-reg.rs:330:33
--> $DIR/bad-reg.rs:332:33
|
LL | asm!("", out("vs62") _, out("v30") _);
| ------------- ^^^^^^^^^^^^ register `v30`
@ -693,21 +693,27 @@ LL | asm!("", out("vs62") _, out("v30") _);
| register `vs62`
error: register `v31` conflicts with register `vs63`
--> $DIR/bad-reg.rs:332:33
--> $DIR/bad-reg.rs:334:33
|
LL | asm!("", out("vs63") _, out("v31") _);
| ------------- ^^^^^^^^^^^^ register `v31`
| |
| register `vs63`
error: register class `spe_acc` can only be used as a clobber, not as an input or output
--> $DIR/bad-reg.rs:340:26
|
LL | asm!("/* {} */", out(spe_acc) _);
| ^^^^^^^^^^^^^^
error: cannot use register `r13`: r13 is a reserved register on this target
--> $DIR/bad-reg.rs:40:18
--> $DIR/bad-reg.rs:42:18
|
LL | asm!("", out("r13") _);
| ^^^^^^^^^^^^
error: type `i32` cannot be used with this register class
--> $DIR/bad-reg.rs:63:27
--> $DIR/bad-reg.rs:65:27
|
LL | asm!("", in("v0") x); // FIXME: should be ok if vsx is available
| ^
@ -715,7 +721,7 @@ LL | asm!("", in("v0") x); // FIXME: should be ok if vsx is available
= note: register class `vreg` supports these types: i8x16, i16x8, i32x4, f32x4, f32, f64, i64x2, f64x2
error: type `i32` cannot be used with this register class
--> $DIR/bad-reg.rs:66:28
--> $DIR/bad-reg.rs:68:28
|
LL | asm!("", out("v0") x); // FIXME: should be ok if vsx is available
| ^
@ -723,7 +729,7 @@ LL | asm!("", out("v0") x); // FIXME: should be ok if vsx is available
= note: register class `vreg` supports these types: i8x16, i16x8, i32x4, f32x4, f32, f64, i64x2, f64x2
error: type `i32` cannot be used with this register class
--> $DIR/bad-reg.rs:74:35
--> $DIR/bad-reg.rs:76:35
|
LL | asm!("/* {} */", in(vreg) x); // FIXME: should be ok if vsx is available
| ^
@ -731,7 +737,7 @@ LL | asm!("/* {} */", in(vreg) x); // FIXME: should be ok if vsx is avai
= note: register class `vreg` supports these types: i8x16, i16x8, i32x4, f32x4, f32, f64, i64x2, f64x2
error: type `i32` cannot be used with this register class
--> $DIR/bad-reg.rs:104:28
--> $DIR/bad-reg.rs:106:28
|
LL | asm!("", in("vs0") x); // FIXME: should be ok if vsx is available
| ^
@ -739,7 +745,7 @@ LL | asm!("", in("vs0") x); // FIXME: should be ok if vsx is available
= note: register class `vsreg` supports these types: f32, f64, i8x16, i16x8, i32x4, i64x2, f32x4, f64x2
error: type `i32` cannot be used with this register class
--> $DIR/bad-reg.rs:107:29
--> $DIR/bad-reg.rs:109:29
|
LL | asm!("", out("vs0") x); // FIXME: should be ok if vsx is available
| ^
@ -747,7 +753,7 @@ LL | asm!("", out("vs0") x); // FIXME: should be ok if vsx is available
= note: register class `vsreg` supports these types: f32, f64, i8x16, i16x8, i32x4, i64x2, f32x4, f64x2
error: type `i32` cannot be used with this register class
--> $DIR/bad-reg.rs:114:36
--> $DIR/bad-reg.rs:116:36
|
LL | asm!("/* {} */", in(vsreg) x); // FIXME: should be ok if vsx is available
| ^
@ -755,7 +761,7 @@ LL | asm!("/* {} */", in(vsreg) x); // FIXME: should be ok if vsx is ava
= note: register class `vsreg` supports these types: f32, f64, i8x16, i16x8, i32x4, i64x2, f32x4, f64x2
error: type `i32` cannot be used with this register class
--> $DIR/bad-reg.rs:137:27
--> $DIR/bad-reg.rs:139:27
|
LL | asm!("", in("cr") x);
| ^
@ -763,7 +769,7 @@ LL | asm!("", in("cr") x);
= note: register class `cr` supports these types:
error: type `i32` cannot be used with this register class
--> $DIR/bad-reg.rs:140:28
--> $DIR/bad-reg.rs:142:28
|
LL | asm!("", out("cr") x);
| ^
@ -771,7 +777,7 @@ LL | asm!("", out("cr") x);
= note: register class `cr` supports these types:
error: type `i32` cannot be used with this register class
--> $DIR/bad-reg.rs:143:33
--> $DIR/bad-reg.rs:145:33
|
LL | asm!("/* {} */", in(cr) x);
| ^
@ -779,7 +785,7 @@ LL | asm!("/* {} */", in(cr) x);
= note: register class `cr` supports these types:
error: type `i32` cannot be used with this register class
--> $DIR/bad-reg.rs:150:28
--> $DIR/bad-reg.rs:152:28
|
LL | asm!("", in("ctr") x);
| ^
@ -787,7 +793,7 @@ LL | asm!("", in("ctr") x);
= note: register class `ctr` supports these types:
error: type `i32` cannot be used with this register class
--> $DIR/bad-reg.rs:153:29
--> $DIR/bad-reg.rs:155:29
|
LL | asm!("", out("ctr") x);
| ^
@ -795,7 +801,7 @@ LL | asm!("", out("ctr") x);
= note: register class `ctr` supports these types:
error: type `i32` cannot be used with this register class
--> $DIR/bad-reg.rs:156:34
--> $DIR/bad-reg.rs:158:34
|
LL | asm!("/* {} */", in(ctr) x);
| ^
@ -803,7 +809,7 @@ LL | asm!("/* {} */", in(ctr) x);
= note: register class `ctr` supports these types:
error: type `i32` cannot be used with this register class
--> $DIR/bad-reg.rs:163:27
--> $DIR/bad-reg.rs:165:27
|
LL | asm!("", in("lr") x);
| ^
@ -811,7 +817,7 @@ LL | asm!("", in("lr") x);
= note: register class `lr` supports these types:
error: type `i32` cannot be used with this register class
--> $DIR/bad-reg.rs:166:28
--> $DIR/bad-reg.rs:168:28
|
LL | asm!("", out("lr") x);
| ^
@ -819,7 +825,7 @@ LL | asm!("", out("lr") x);
= note: register class `lr` supports these types:
error: type `i32` cannot be used with this register class
--> $DIR/bad-reg.rs:169:33
--> $DIR/bad-reg.rs:171:33
|
LL | asm!("/* {} */", in(lr) x);
| ^
@ -827,7 +833,7 @@ LL | asm!("/* {} */", in(lr) x);
= note: register class `lr` supports these types:
error: type `i32` cannot be used with this register class
--> $DIR/bad-reg.rs:176:28
--> $DIR/bad-reg.rs:178:28
|
LL | asm!("", in("xer") x);
| ^
@ -835,7 +841,7 @@ LL | asm!("", in("xer") x);
= note: register class `xer` supports these types:
error: type `i32` cannot be used with this register class
--> $DIR/bad-reg.rs:179:29
--> $DIR/bad-reg.rs:181:29
|
LL | asm!("", out("xer") x);
| ^
@ -843,12 +849,18 @@ LL | asm!("", out("xer") x);
= note: register class `xer` supports these types:
error: type `i32` cannot be used with this register class
--> $DIR/bad-reg.rs:182:34
--> $DIR/bad-reg.rs:184:34
|
LL | asm!("/* {} */", in(xer) x);
| ^
|
= note: register class `xer` supports these types:
error: aborting due to 112 previous errors
error: cannot use register `spe_acc`: spe_acc is only available on spe targets
--> $DIR/bad-reg.rs:338:18
|
LL | asm!("", out("spe_acc") _);
| ^^^^^^^^^^^^^^^^
error: aborting due to 114 previous errors

View file

@ -1,131 +1,131 @@
error: invalid register `sp`: the stack pointer cannot be used as an operand for inline asm
--> $DIR/bad-reg.rs:36:18
--> $DIR/bad-reg.rs:38:18
|
LL | asm!("", out("sp") _);
| ^^^^^^^^^^^
error: invalid register `r2`: r2 is a system reserved register and cannot be used as an operand for inline asm
--> $DIR/bad-reg.rs:38:18
--> $DIR/bad-reg.rs:40:18
|
LL | asm!("", out("r2") _);
| ^^^^^^^^^^^
error: invalid register `r30`: r30 is used internally by LLVM and cannot be used as an operand for inline asm
--> $DIR/bad-reg.rs:44:18
--> $DIR/bad-reg.rs:46:18
|
LL | asm!("", out("r30") _);
| ^^^^^^^^^^^^
error: invalid register `fp`: the frame pointer cannot be used as an operand for inline asm
--> $DIR/bad-reg.rs:46:18
--> $DIR/bad-reg.rs:48:18
|
LL | asm!("", out("fp") _);
| ^^^^^^^^^^^
error: invalid register `vrsave`: the vrsave register cannot be used as an operand for inline asm
--> $DIR/bad-reg.rs:48:18
--> $DIR/bad-reg.rs:50:18
|
LL | asm!("", out("vrsave") _);
| ^^^^^^^^^^^^^^^
error: register class `cr` can only be used as a clobber, not as an input or output
--> $DIR/bad-reg.rs:137:18
--> $DIR/bad-reg.rs:139:18
|
LL | asm!("", in("cr") x);
| ^^^^^^^^^^
error: register class `cr` can only be used as a clobber, not as an input or output
--> $DIR/bad-reg.rs:140:18
--> $DIR/bad-reg.rs:142:18
|
LL | asm!("", out("cr") x);
| ^^^^^^^^^^^
error: register class `cr` can only be used as a clobber, not as an input or output
--> $DIR/bad-reg.rs:143:26
--> $DIR/bad-reg.rs:145:26
|
LL | asm!("/* {} */", in(cr) x);
| ^^^^^^^^
error: register class `cr` can only be used as a clobber, not as an input or output
--> $DIR/bad-reg.rs:146:26
--> $DIR/bad-reg.rs:148:26
|
LL | asm!("/* {} */", out(cr) _);
| ^^^^^^^^^
error: register class `ctr` can only be used as a clobber, not as an input or output
--> $DIR/bad-reg.rs:150:18
--> $DIR/bad-reg.rs:152:18
|
LL | asm!("", in("ctr") x);
| ^^^^^^^^^^^
error: register class `ctr` can only be used as a clobber, not as an input or output
--> $DIR/bad-reg.rs:153:18
--> $DIR/bad-reg.rs:155:18
|
LL | asm!("", out("ctr") x);
| ^^^^^^^^^^^^
error: register class `ctr` can only be used as a clobber, not as an input or output
--> $DIR/bad-reg.rs:156:26
--> $DIR/bad-reg.rs:158:26
|
LL | asm!("/* {} */", in(ctr) x);
| ^^^^^^^^^
error: register class `ctr` can only be used as a clobber, not as an input or output
--> $DIR/bad-reg.rs:159:26
--> $DIR/bad-reg.rs:161:26
|
LL | asm!("/* {} */", out(ctr) _);
| ^^^^^^^^^^
error: register class `lr` can only be used as a clobber, not as an input or output
--> $DIR/bad-reg.rs:163:18
--> $DIR/bad-reg.rs:165:18
|
LL | asm!("", in("lr") x);
| ^^^^^^^^^^
error: register class `lr` can only be used as a clobber, not as an input or output
--> $DIR/bad-reg.rs:166:18
--> $DIR/bad-reg.rs:168:18
|
LL | asm!("", out("lr") x);
| ^^^^^^^^^^^
error: register class `lr` can only be used as a clobber, not as an input or output
--> $DIR/bad-reg.rs:169:26
--> $DIR/bad-reg.rs:171:26
|
LL | asm!("/* {} */", in(lr) x);
| ^^^^^^^^
error: register class `lr` can only be used as a clobber, not as an input or output
--> $DIR/bad-reg.rs:172:26
--> $DIR/bad-reg.rs:174:26
|
LL | asm!("/* {} */", out(lr) _);
| ^^^^^^^^^
error: register class `xer` can only be used as a clobber, not as an input or output
--> $DIR/bad-reg.rs:176:18
--> $DIR/bad-reg.rs:178:18
|
LL | asm!("", in("xer") x);
| ^^^^^^^^^^^
error: register class `xer` can only be used as a clobber, not as an input or output
--> $DIR/bad-reg.rs:179:18
--> $DIR/bad-reg.rs:181:18
|
LL | asm!("", out("xer") x);
| ^^^^^^^^^^^^
error: register class `xer` can only be used as a clobber, not as an input or output
--> $DIR/bad-reg.rs:182:26
--> $DIR/bad-reg.rs:184:26
|
LL | asm!("/* {} */", in(xer) x);
| ^^^^^^^^^
error: register class `xer` can only be used as a clobber, not as an input or output
--> $DIR/bad-reg.rs:185:26
--> $DIR/bad-reg.rs:187:26
|
LL | asm!("/* {} */", out(xer) _);
| ^^^^^^^^^^
error: register `cr0` conflicts with register `cr`
--> $DIR/bad-reg.rs:189:31
--> $DIR/bad-reg.rs:191:31
|
LL | asm!("", out("cr") _, out("cr0") _);
| ----------- ^^^^^^^^^^^^ register `cr0`
@ -133,7 +133,7 @@ LL | asm!("", out("cr") _, out("cr0") _);
| register `cr`
error: register `cr1` conflicts with register `cr`
--> $DIR/bad-reg.rs:191:31
--> $DIR/bad-reg.rs:193:31
|
LL | asm!("", out("cr") _, out("cr1") _);
| ----------- ^^^^^^^^^^^^ register `cr1`
@ -141,7 +141,7 @@ LL | asm!("", out("cr") _, out("cr1") _);
| register `cr`
error: register `cr2` conflicts with register `cr`
--> $DIR/bad-reg.rs:193:31
--> $DIR/bad-reg.rs:195:31
|
LL | asm!("", out("cr") _, out("cr2") _);
| ----------- ^^^^^^^^^^^^ register `cr2`
@ -149,7 +149,7 @@ LL | asm!("", out("cr") _, out("cr2") _);
| register `cr`
error: register `cr3` conflicts with register `cr`
--> $DIR/bad-reg.rs:195:31
--> $DIR/bad-reg.rs:197:31
|
LL | asm!("", out("cr") _, out("cr3") _);
| ----------- ^^^^^^^^^^^^ register `cr3`
@ -157,7 +157,7 @@ LL | asm!("", out("cr") _, out("cr3") _);
| register `cr`
error: register `cr4` conflicts with register `cr`
--> $DIR/bad-reg.rs:197:31
--> $DIR/bad-reg.rs:199:31
|
LL | asm!("", out("cr") _, out("cr4") _);
| ----------- ^^^^^^^^^^^^ register `cr4`
@ -165,7 +165,7 @@ LL | asm!("", out("cr") _, out("cr4") _);
| register `cr`
error: register `cr5` conflicts with register `cr`
--> $DIR/bad-reg.rs:199:31
--> $DIR/bad-reg.rs:201:31
|
LL | asm!("", out("cr") _, out("cr5") _);
| ----------- ^^^^^^^^^^^^ register `cr5`
@ -173,7 +173,7 @@ LL | asm!("", out("cr") _, out("cr5") _);
| register `cr`
error: register `cr6` conflicts with register `cr`
--> $DIR/bad-reg.rs:201:31
--> $DIR/bad-reg.rs:203:31
|
LL | asm!("", out("cr") _, out("cr6") _);
| ----------- ^^^^^^^^^^^^ register `cr6`
@ -181,7 +181,7 @@ LL | asm!("", out("cr") _, out("cr6") _);
| register `cr`
error: register `cr7` conflicts with register `cr`
--> $DIR/bad-reg.rs:203:31
--> $DIR/bad-reg.rs:205:31
|
LL | asm!("", out("cr") _, out("cr7") _);
| ----------- ^^^^^^^^^^^^ register `cr7`
@ -189,7 +189,7 @@ LL | asm!("", out("cr") _, out("cr7") _);
| register `cr`
error: register `vs0` conflicts with register `f0`
--> $DIR/bad-reg.rs:206:31
--> $DIR/bad-reg.rs:208:31
|
LL | asm!("", out("f0") _, out("vs0") _);
| ----------- ^^^^^^^^^^^^ register `vs0`
@ -197,7 +197,7 @@ LL | asm!("", out("f0") _, out("vs0") _);
| register `f0`
error: register `vs1` conflicts with register `f1`
--> $DIR/bad-reg.rs:208:31
--> $DIR/bad-reg.rs:210:31
|
LL | asm!("", out("f1") _, out("vs1") _);
| ----------- ^^^^^^^^^^^^ register `vs1`
@ -205,7 +205,7 @@ LL | asm!("", out("f1") _, out("vs1") _);
| register `f1`
error: register `vs2` conflicts with register `f2`
--> $DIR/bad-reg.rs:210:31
--> $DIR/bad-reg.rs:212:31
|
LL | asm!("", out("f2") _, out("vs2") _);
| ----------- ^^^^^^^^^^^^ register `vs2`
@ -213,7 +213,7 @@ LL | asm!("", out("f2") _, out("vs2") _);
| register `f2`
error: register `vs3` conflicts with register `f3`
--> $DIR/bad-reg.rs:212:31
--> $DIR/bad-reg.rs:214:31
|
LL | asm!("", out("f3") _, out("vs3") _);
| ----------- ^^^^^^^^^^^^ register `vs3`
@ -221,7 +221,7 @@ LL | asm!("", out("f3") _, out("vs3") _);
| register `f3`
error: register `vs4` conflicts with register `f4`
--> $DIR/bad-reg.rs:214:31
--> $DIR/bad-reg.rs:216:31
|
LL | asm!("", out("f4") _, out("vs4") _);
| ----------- ^^^^^^^^^^^^ register `vs4`
@ -229,7 +229,7 @@ LL | asm!("", out("f4") _, out("vs4") _);
| register `f4`
error: register `vs5` conflicts with register `f5`
--> $DIR/bad-reg.rs:216:31
--> $DIR/bad-reg.rs:218:31
|
LL | asm!("", out("f5") _, out("vs5") _);
| ----------- ^^^^^^^^^^^^ register `vs5`
@ -237,7 +237,7 @@ LL | asm!("", out("f5") _, out("vs5") _);
| register `f5`
error: register `vs6` conflicts with register `f6`
--> $DIR/bad-reg.rs:218:31
--> $DIR/bad-reg.rs:220:31
|
LL | asm!("", out("f6") _, out("vs6") _);
| ----------- ^^^^^^^^^^^^ register `vs6`
@ -245,7 +245,7 @@ LL | asm!("", out("f6") _, out("vs6") _);
| register `f6`
error: register `vs7` conflicts with register `f7`
--> $DIR/bad-reg.rs:220:31
--> $DIR/bad-reg.rs:222:31
|
LL | asm!("", out("f7") _, out("vs7") _);
| ----------- ^^^^^^^^^^^^ register `vs7`
@ -253,7 +253,7 @@ LL | asm!("", out("f7") _, out("vs7") _);
| register `f7`
error: register `vs8` conflicts with register `f8`
--> $DIR/bad-reg.rs:222:31
--> $DIR/bad-reg.rs:224:31
|
LL | asm!("", out("f8") _, out("vs8") _);
| ----------- ^^^^^^^^^^^^ register `vs8`
@ -261,7 +261,7 @@ LL | asm!("", out("f8") _, out("vs8") _);
| register `f8`
error: register `vs9` conflicts with register `f9`
--> $DIR/bad-reg.rs:224:31
--> $DIR/bad-reg.rs:226:31
|
LL | asm!("", out("f9") _, out("vs9") _);
| ----------- ^^^^^^^^^^^^ register `vs9`
@ -269,7 +269,7 @@ LL | asm!("", out("f9") _, out("vs9") _);
| register `f9`
error: register `vs10` conflicts with register `f10`
--> $DIR/bad-reg.rs:226:32
--> $DIR/bad-reg.rs:228:32
|
LL | asm!("", out("f10") _, out("vs10") _);
| ------------ ^^^^^^^^^^^^^ register `vs10`
@ -277,7 +277,7 @@ LL | asm!("", out("f10") _, out("vs10") _);
| register `f10`
error: register `vs11` conflicts with register `f11`
--> $DIR/bad-reg.rs:228:32
--> $DIR/bad-reg.rs:230:32
|
LL | asm!("", out("f11") _, out("vs11") _);
| ------------ ^^^^^^^^^^^^^ register `vs11`
@ -285,7 +285,7 @@ LL | asm!("", out("f11") _, out("vs11") _);
| register `f11`
error: register `vs12` conflicts with register `f12`
--> $DIR/bad-reg.rs:230:32
--> $DIR/bad-reg.rs:232:32
|
LL | asm!("", out("f12") _, out("vs12") _);
| ------------ ^^^^^^^^^^^^^ register `vs12`
@ -293,7 +293,7 @@ LL | asm!("", out("f12") _, out("vs12") _);
| register `f12`
error: register `vs13` conflicts with register `f13`
--> $DIR/bad-reg.rs:232:32
--> $DIR/bad-reg.rs:234:32
|
LL | asm!("", out("f13") _, out("vs13") _);
| ------------ ^^^^^^^^^^^^^ register `vs13`
@ -301,7 +301,7 @@ LL | asm!("", out("f13") _, out("vs13") _);
| register `f13`
error: register `vs14` conflicts with register `f14`
--> $DIR/bad-reg.rs:234:32
--> $DIR/bad-reg.rs:236:32
|
LL | asm!("", out("f14") _, out("vs14") _);
| ------------ ^^^^^^^^^^^^^ register `vs14`
@ -309,7 +309,7 @@ LL | asm!("", out("f14") _, out("vs14") _);
| register `f14`
error: register `vs15` conflicts with register `f15`
--> $DIR/bad-reg.rs:236:32
--> $DIR/bad-reg.rs:238:32
|
LL | asm!("", out("f15") _, out("vs15") _);
| ------------ ^^^^^^^^^^^^^ register `vs15`
@ -317,7 +317,7 @@ LL | asm!("", out("f15") _, out("vs15") _);
| register `f15`
error: register `vs16` conflicts with register `f16`
--> $DIR/bad-reg.rs:238:32
--> $DIR/bad-reg.rs:240:32
|
LL | asm!("", out("f16") _, out("vs16") _);
| ------------ ^^^^^^^^^^^^^ register `vs16`
@ -325,7 +325,7 @@ LL | asm!("", out("f16") _, out("vs16") _);
| register `f16`
error: register `vs17` conflicts with register `f17`
--> $DIR/bad-reg.rs:240:32
--> $DIR/bad-reg.rs:242:32
|
LL | asm!("", out("f17") _, out("vs17") _);
| ------------ ^^^^^^^^^^^^^ register `vs17`
@ -333,7 +333,7 @@ LL | asm!("", out("f17") _, out("vs17") _);
| register `f17`
error: register `vs18` conflicts with register `f18`
--> $DIR/bad-reg.rs:242:32
--> $DIR/bad-reg.rs:244:32
|
LL | asm!("", out("f18") _, out("vs18") _);
| ------------ ^^^^^^^^^^^^^ register `vs18`
@ -341,7 +341,7 @@ LL | asm!("", out("f18") _, out("vs18") _);
| register `f18`
error: register `vs19` conflicts with register `f19`
--> $DIR/bad-reg.rs:244:32
--> $DIR/bad-reg.rs:246:32
|
LL | asm!("", out("f19") _, out("vs19") _);
| ------------ ^^^^^^^^^^^^^ register `vs19`
@ -349,7 +349,7 @@ LL | asm!("", out("f19") _, out("vs19") _);
| register `f19`
error: register `vs20` conflicts with register `f20`
--> $DIR/bad-reg.rs:246:32
--> $DIR/bad-reg.rs:248:32
|
LL | asm!("", out("f20") _, out("vs20") _);
| ------------ ^^^^^^^^^^^^^ register `vs20`
@ -357,7 +357,7 @@ LL | asm!("", out("f20") _, out("vs20") _);
| register `f20`
error: register `vs21` conflicts with register `f21`
--> $DIR/bad-reg.rs:248:32
--> $DIR/bad-reg.rs:250:32
|
LL | asm!("", out("f21") _, out("vs21") _);
| ------------ ^^^^^^^^^^^^^ register `vs21`
@ -365,7 +365,7 @@ LL | asm!("", out("f21") _, out("vs21") _);
| register `f21`
error: register `vs22` conflicts with register `f22`
--> $DIR/bad-reg.rs:250:32
--> $DIR/bad-reg.rs:252:32
|
LL | asm!("", out("f22") _, out("vs22") _);
| ------------ ^^^^^^^^^^^^^ register `vs22`
@ -373,7 +373,7 @@ LL | asm!("", out("f22") _, out("vs22") _);
| register `f22`
error: register `vs23` conflicts with register `f23`
--> $DIR/bad-reg.rs:252:32
--> $DIR/bad-reg.rs:254:32
|
LL | asm!("", out("f23") _, out("vs23") _);
| ------------ ^^^^^^^^^^^^^ register `vs23`
@ -381,7 +381,7 @@ LL | asm!("", out("f23") _, out("vs23") _);
| register `f23`
error: register `vs24` conflicts with register `f24`
--> $DIR/bad-reg.rs:254:32
--> $DIR/bad-reg.rs:256:32
|
LL | asm!("", out("f24") _, out("vs24") _);
| ------------ ^^^^^^^^^^^^^ register `vs24`
@ -389,7 +389,7 @@ LL | asm!("", out("f24") _, out("vs24") _);
| register `f24`
error: register `vs25` conflicts with register `f25`
--> $DIR/bad-reg.rs:256:32
--> $DIR/bad-reg.rs:258:32
|
LL | asm!("", out("f25") _, out("vs25") _);
| ------------ ^^^^^^^^^^^^^ register `vs25`
@ -397,7 +397,7 @@ LL | asm!("", out("f25") _, out("vs25") _);
| register `f25`
error: register `vs26` conflicts with register `f26`
--> $DIR/bad-reg.rs:258:32
--> $DIR/bad-reg.rs:260:32
|
LL | asm!("", out("f26") _, out("vs26") _);
| ------------ ^^^^^^^^^^^^^ register `vs26`
@ -405,7 +405,7 @@ LL | asm!("", out("f26") _, out("vs26") _);
| register `f26`
error: register `vs27` conflicts with register `f27`
--> $DIR/bad-reg.rs:260:32
--> $DIR/bad-reg.rs:262:32
|
LL | asm!("", out("f27") _, out("vs27") _);
| ------------ ^^^^^^^^^^^^^ register `vs27`
@ -413,7 +413,7 @@ LL | asm!("", out("f27") _, out("vs27") _);
| register `f27`
error: register `vs28` conflicts with register `f28`
--> $DIR/bad-reg.rs:262:32
--> $DIR/bad-reg.rs:264:32
|
LL | asm!("", out("f28") _, out("vs28") _);
| ------------ ^^^^^^^^^^^^^ register `vs28`
@ -421,7 +421,7 @@ LL | asm!("", out("f28") _, out("vs28") _);
| register `f28`
error: register `vs29` conflicts with register `f29`
--> $DIR/bad-reg.rs:264:32
--> $DIR/bad-reg.rs:266:32
|
LL | asm!("", out("f29") _, out("vs29") _);
| ------------ ^^^^^^^^^^^^^ register `vs29`
@ -429,7 +429,7 @@ LL | asm!("", out("f29") _, out("vs29") _);
| register `f29`
error: register `vs30` conflicts with register `f30`
--> $DIR/bad-reg.rs:266:32
--> $DIR/bad-reg.rs:268:32
|
LL | asm!("", out("f30") _, out("vs30") _);
| ------------ ^^^^^^^^^^^^^ register `vs30`
@ -437,7 +437,7 @@ LL | asm!("", out("f30") _, out("vs30") _);
| register `f30`
error: register `vs31` conflicts with register `f31`
--> $DIR/bad-reg.rs:268:32
--> $DIR/bad-reg.rs:270:32
|
LL | asm!("", out("f31") _, out("vs31") _);
| ------------ ^^^^^^^^^^^^^ register `vs31`
@ -445,7 +445,7 @@ LL | asm!("", out("f31") _, out("vs31") _);
| register `f31`
error: register `v0` conflicts with register `vs32`
--> $DIR/bad-reg.rs:270:33
--> $DIR/bad-reg.rs:272:33
|
LL | asm!("", out("vs32") _, out("v0") _);
| ------------- ^^^^^^^^^^^ register `v0`
@ -453,7 +453,7 @@ LL | asm!("", out("vs32") _, out("v0") _);
| register `vs32`
error: register `v1` conflicts with register `vs33`
--> $DIR/bad-reg.rs:272:33
--> $DIR/bad-reg.rs:274:33
|
LL | asm!("", out("vs33") _, out("v1") _);
| ------------- ^^^^^^^^^^^ register `v1`
@ -461,7 +461,7 @@ LL | asm!("", out("vs33") _, out("v1") _);
| register `vs33`
error: register `v2` conflicts with register `vs34`
--> $DIR/bad-reg.rs:274:33
--> $DIR/bad-reg.rs:276:33
|
LL | asm!("", out("vs34") _, out("v2") _);
| ------------- ^^^^^^^^^^^ register `v2`
@ -469,7 +469,7 @@ LL | asm!("", out("vs34") _, out("v2") _);
| register `vs34`
error: register `v3` conflicts with register `vs35`
--> $DIR/bad-reg.rs:276:33
--> $DIR/bad-reg.rs:278:33
|
LL | asm!("", out("vs35") _, out("v3") _);
| ------------- ^^^^^^^^^^^ register `v3`
@ -477,7 +477,7 @@ LL | asm!("", out("vs35") _, out("v3") _);
| register `vs35`
error: register `v4` conflicts with register `vs36`
--> $DIR/bad-reg.rs:278:33
--> $DIR/bad-reg.rs:280:33
|
LL | asm!("", out("vs36") _, out("v4") _);
| ------------- ^^^^^^^^^^^ register `v4`
@ -485,7 +485,7 @@ LL | asm!("", out("vs36") _, out("v4") _);
| register `vs36`
error: register `v5` conflicts with register `vs37`
--> $DIR/bad-reg.rs:280:33
--> $DIR/bad-reg.rs:282:33
|
LL | asm!("", out("vs37") _, out("v5") _);
| ------------- ^^^^^^^^^^^ register `v5`
@ -493,7 +493,7 @@ LL | asm!("", out("vs37") _, out("v5") _);
| register `vs37`
error: register `v6` conflicts with register `vs38`
--> $DIR/bad-reg.rs:282:33
--> $DIR/bad-reg.rs:284:33
|
LL | asm!("", out("vs38") _, out("v6") _);
| ------------- ^^^^^^^^^^^ register `v6`
@ -501,7 +501,7 @@ LL | asm!("", out("vs38") _, out("v6") _);
| register `vs38`
error: register `v7` conflicts with register `vs39`
--> $DIR/bad-reg.rs:284:33
--> $DIR/bad-reg.rs:286:33
|
LL | asm!("", out("vs39") _, out("v7") _);
| ------------- ^^^^^^^^^^^ register `v7`
@ -509,7 +509,7 @@ LL | asm!("", out("vs39") _, out("v7") _);
| register `vs39`
error: register `v8` conflicts with register `vs40`
--> $DIR/bad-reg.rs:286:33
--> $DIR/bad-reg.rs:288:33
|
LL | asm!("", out("vs40") _, out("v8") _);
| ------------- ^^^^^^^^^^^ register `v8`
@ -517,7 +517,7 @@ LL | asm!("", out("vs40") _, out("v8") _);
| register `vs40`
error: register `v9` conflicts with register `vs41`
--> $DIR/bad-reg.rs:288:33
--> $DIR/bad-reg.rs:290:33
|
LL | asm!("", out("vs41") _, out("v9") _);
| ------------- ^^^^^^^^^^^ register `v9`
@ -525,7 +525,7 @@ LL | asm!("", out("vs41") _, out("v9") _);
| register `vs41`
error: register `v10` conflicts with register `vs42`
--> $DIR/bad-reg.rs:290:33
--> $DIR/bad-reg.rs:292:33
|
LL | asm!("", out("vs42") _, out("v10") _);
| ------------- ^^^^^^^^^^^^ register `v10`
@ -533,7 +533,7 @@ LL | asm!("", out("vs42") _, out("v10") _);
| register `vs42`
error: register `v11` conflicts with register `vs43`
--> $DIR/bad-reg.rs:292:33
--> $DIR/bad-reg.rs:294:33
|
LL | asm!("", out("vs43") _, out("v11") _);
| ------------- ^^^^^^^^^^^^ register `v11`
@ -541,7 +541,7 @@ LL | asm!("", out("vs43") _, out("v11") _);
| register `vs43`
error: register `v12` conflicts with register `vs44`
--> $DIR/bad-reg.rs:294:33
--> $DIR/bad-reg.rs:296:33
|
LL | asm!("", out("vs44") _, out("v12") _);
| ------------- ^^^^^^^^^^^^ register `v12`
@ -549,7 +549,7 @@ LL | asm!("", out("vs44") _, out("v12") _);
| register `vs44`
error: register `v13` conflicts with register `vs45`
--> $DIR/bad-reg.rs:296:33
--> $DIR/bad-reg.rs:298:33
|
LL | asm!("", out("vs45") _, out("v13") _);
| ------------- ^^^^^^^^^^^^ register `v13`
@ -557,7 +557,7 @@ LL | asm!("", out("vs45") _, out("v13") _);
| register `vs45`
error: register `v14` conflicts with register `vs46`
--> $DIR/bad-reg.rs:298:33
--> $DIR/bad-reg.rs:300:33
|
LL | asm!("", out("vs46") _, out("v14") _);
| ------------- ^^^^^^^^^^^^ register `v14`
@ -565,7 +565,7 @@ LL | asm!("", out("vs46") _, out("v14") _);
| register `vs46`
error: register `v15` conflicts with register `vs47`
--> $DIR/bad-reg.rs:300:33
--> $DIR/bad-reg.rs:302:33
|
LL | asm!("", out("vs47") _, out("v15") _);
| ------------- ^^^^^^^^^^^^ register `v15`
@ -573,7 +573,7 @@ LL | asm!("", out("vs47") _, out("v15") _);
| register `vs47`
error: register `v16` conflicts with register `vs48`
--> $DIR/bad-reg.rs:302:33
--> $DIR/bad-reg.rs:304:33
|
LL | asm!("", out("vs48") _, out("v16") _);
| ------------- ^^^^^^^^^^^^ register `v16`
@ -581,7 +581,7 @@ LL | asm!("", out("vs48") _, out("v16") _);
| register `vs48`
error: register `v17` conflicts with register `vs49`
--> $DIR/bad-reg.rs:304:33
--> $DIR/bad-reg.rs:306:33
|
LL | asm!("", out("vs49") _, out("v17") _);
| ------------- ^^^^^^^^^^^^ register `v17`
@ -589,7 +589,7 @@ LL | asm!("", out("vs49") _, out("v17") _);
| register `vs49`
error: register `v18` conflicts with register `vs50`
--> $DIR/bad-reg.rs:306:33
--> $DIR/bad-reg.rs:308:33
|
LL | asm!("", out("vs50") _, out("v18") _);
| ------------- ^^^^^^^^^^^^ register `v18`
@ -597,7 +597,7 @@ LL | asm!("", out("vs50") _, out("v18") _);
| register `vs50`
error: register `v19` conflicts with register `vs51`
--> $DIR/bad-reg.rs:308:33
--> $DIR/bad-reg.rs:310:33
|
LL | asm!("", out("vs51") _, out("v19") _);
| ------------- ^^^^^^^^^^^^ register `v19`
@ -605,7 +605,7 @@ LL | asm!("", out("vs51") _, out("v19") _);
| register `vs51`
error: register `v20` conflicts with register `vs52`
--> $DIR/bad-reg.rs:310:33
--> $DIR/bad-reg.rs:312:33
|
LL | asm!("", out("vs52") _, out("v20") _);
| ------------- ^^^^^^^^^^^^ register `v20`
@ -613,7 +613,7 @@ LL | asm!("", out("vs52") _, out("v20") _);
| register `vs52`
error: register `v21` conflicts with register `vs53`
--> $DIR/bad-reg.rs:312:33
--> $DIR/bad-reg.rs:314:33
|
LL | asm!("", out("vs53") _, out("v21") _);
| ------------- ^^^^^^^^^^^^ register `v21`
@ -621,7 +621,7 @@ LL | asm!("", out("vs53") _, out("v21") _);
| register `vs53`
error: register `v22` conflicts with register `vs54`
--> $DIR/bad-reg.rs:314:33
--> $DIR/bad-reg.rs:316:33
|
LL | asm!("", out("vs54") _, out("v22") _);
| ------------- ^^^^^^^^^^^^ register `v22`
@ -629,7 +629,7 @@ LL | asm!("", out("vs54") _, out("v22") _);
| register `vs54`
error: register `v23` conflicts with register `vs55`
--> $DIR/bad-reg.rs:316:33
--> $DIR/bad-reg.rs:318:33
|
LL | asm!("", out("vs55") _, out("v23") _);
| ------------- ^^^^^^^^^^^^ register `v23`
@ -637,7 +637,7 @@ LL | asm!("", out("vs55") _, out("v23") _);
| register `vs55`
error: register `v24` conflicts with register `vs56`
--> $DIR/bad-reg.rs:318:33
--> $DIR/bad-reg.rs:320:33
|
LL | asm!("", out("vs56") _, out("v24") _);
| ------------- ^^^^^^^^^^^^ register `v24`
@ -645,7 +645,7 @@ LL | asm!("", out("vs56") _, out("v24") _);
| register `vs56`
error: register `v25` conflicts with register `vs57`
--> $DIR/bad-reg.rs:320:33
--> $DIR/bad-reg.rs:322:33
|
LL | asm!("", out("vs57") _, out("v25") _);
| ------------- ^^^^^^^^^^^^ register `v25`
@ -653,7 +653,7 @@ LL | asm!("", out("vs57") _, out("v25") _);
| register `vs57`
error: register `v26` conflicts with register `vs58`
--> $DIR/bad-reg.rs:322:33
--> $DIR/bad-reg.rs:324:33
|
LL | asm!("", out("vs58") _, out("v26") _);
| ------------- ^^^^^^^^^^^^ register `v26`
@ -661,7 +661,7 @@ LL | asm!("", out("vs58") _, out("v26") _);
| register `vs58`
error: register `v27` conflicts with register `vs59`
--> $DIR/bad-reg.rs:324:33
--> $DIR/bad-reg.rs:326:33
|
LL | asm!("", out("vs59") _, out("v27") _);
| ------------- ^^^^^^^^^^^^ register `v27`
@ -669,7 +669,7 @@ LL | asm!("", out("vs59") _, out("v27") _);
| register `vs59`
error: register `v28` conflicts with register `vs60`
--> $DIR/bad-reg.rs:326:33
--> $DIR/bad-reg.rs:328:33
|
LL | asm!("", out("vs60") _, out("v28") _);
| ------------- ^^^^^^^^^^^^ register `v28`
@ -677,7 +677,7 @@ LL | asm!("", out("vs60") _, out("v28") _);
| register `vs60`
error: register `v29` conflicts with register `vs61`
--> $DIR/bad-reg.rs:328:33
--> $DIR/bad-reg.rs:330:33
|
LL | asm!("", out("vs61") _, out("v29") _);
| ------------- ^^^^^^^^^^^^ register `v29`
@ -685,7 +685,7 @@ LL | asm!("", out("vs61") _, out("v29") _);
| register `vs61`
error: register `v30` conflicts with register `vs62`
--> $DIR/bad-reg.rs:330:33
--> $DIR/bad-reg.rs:332:33
|
LL | asm!("", out("vs62") _, out("v30") _);
| ------------- ^^^^^^^^^^^^ register `v30`
@ -693,147 +693,153 @@ LL | asm!("", out("vs62") _, out("v30") _);
| register `vs62`
error: register `v31` conflicts with register `vs63`
--> $DIR/bad-reg.rs:332:33
--> $DIR/bad-reg.rs:334:33
|
LL | asm!("", out("vs63") _, out("v31") _);
| ------------- ^^^^^^^^^^^^ register `v31`
| |
| register `vs63`
error: register class `spe_acc` can only be used as a clobber, not as an input or output
--> $DIR/bad-reg.rs:340:26
|
LL | asm!("/* {} */", out(spe_acc) _);
| ^^^^^^^^^^^^^^
error: cannot use register `r13`: r13 is a reserved register on this target
--> $DIR/bad-reg.rs:40:18
--> $DIR/bad-reg.rs:42:18
|
LL | asm!("", out("r13") _);
| ^^^^^^^^^^^^
error: cannot use register `r29`: r29 is used internally by LLVM and cannot be used as an operand for inline asm
--> $DIR/bad-reg.rs:42:18
--> $DIR/bad-reg.rs:44:18
|
LL | asm!("", out("r29") _);
| ^^^^^^^^^^^^
error: register class `vreg` requires at least one of the following target features: altivec, vsx
--> $DIR/bad-reg.rs:53:18
--> $DIR/bad-reg.rs:55:18
|
LL | asm!("", in("v0") v32x4); // requires altivec
| ^^^^^^^^^^^^^^
error: register class `vreg` requires at least one of the following target features: altivec, vsx
--> $DIR/bad-reg.rs:55:18
--> $DIR/bad-reg.rs:57:18
|
LL | asm!("", out("v0") v32x4); // requires altivec
| ^^^^^^^^^^^^^^^
error: register class `vreg` requires at least one of the following target features: altivec, vsx
--> $DIR/bad-reg.rs:57:18
--> $DIR/bad-reg.rs:59:18
|
LL | asm!("", in("v0") v64x2); // requires vsx
| ^^^^^^^^^^^^^^
error: register class `vreg` requires at least one of the following target features: altivec, vsx
--> $DIR/bad-reg.rs:60:18
--> $DIR/bad-reg.rs:62:18
|
LL | asm!("", out("v0") v64x2); // requires vsx
| ^^^^^^^^^^^^^^^
error: register class `vreg` requires at least one of the following target features: altivec, vsx
--> $DIR/bad-reg.rs:63:18
--> $DIR/bad-reg.rs:65:18
|
LL | asm!("", in("v0") x); // FIXME: should be ok if vsx is available
| ^^^^^^^^^^
error: register class `vreg` requires at least one of the following target features: altivec, vsx
--> $DIR/bad-reg.rs:66:18
--> $DIR/bad-reg.rs:68:18
|
LL | asm!("", out("v0") x); // FIXME: should be ok if vsx is available
| ^^^^^^^^^^^
error: register class `vreg` requires at least one of the following target features: altivec, vsx
--> $DIR/bad-reg.rs:69:26
--> $DIR/bad-reg.rs:71:26
|
LL | asm!("/* {} */", in(vreg) v32x4); // requires altivec
| ^^^^^^^^^^^^^^
error: register class `vreg` requires at least one of the following target features: altivec, vsx
--> $DIR/bad-reg.rs:71:26
--> $DIR/bad-reg.rs:73:26
|
LL | asm!("/* {} */", in(vreg) v64x2); // requires vsx
| ^^^^^^^^^^^^^^
error: register class `vreg` requires at least one of the following target features: altivec, vsx
--> $DIR/bad-reg.rs:74:26
--> $DIR/bad-reg.rs:76:26
|
LL | asm!("/* {} */", in(vreg) x); // FIXME: should be ok if vsx is available
| ^^^^^^^^^^
error: register class `vreg` requires at least one of the following target features: altivec, vsx
--> $DIR/bad-reg.rs:77:26
--> $DIR/bad-reg.rs:79:26
|
LL | asm!("/* {} */", out(vreg) _); // requires altivec
| ^^^^^^^^^^^
error: register class `vsreg` requires the `vsx` target feature
--> $DIR/bad-reg.rs:96:18
--> $DIR/bad-reg.rs:98:18
|
LL | asm!("", in("vs0") v32x4); // requires vsx
| ^^^^^^^^^^^^^^^
error: register class `vsreg` requires the `vsx` target feature
--> $DIR/bad-reg.rs:98:18
--> $DIR/bad-reg.rs:100:18
|
LL | asm!("", out("vs0") v32x4); // requires vsx
| ^^^^^^^^^^^^^^^^
error: register class `vsreg` requires the `vsx` target feature
--> $DIR/bad-reg.rs:100:18
--> $DIR/bad-reg.rs:102:18
|
LL | asm!("", in("vs0") v64x2); // requires vsx
| ^^^^^^^^^^^^^^^
error: register class `vsreg` requires the `vsx` target feature
--> $DIR/bad-reg.rs:102:18
--> $DIR/bad-reg.rs:104:18
|
LL | asm!("", out("vs0") v64x2); // requires vsx
| ^^^^^^^^^^^^^^^^
error: register class `vsreg` requires the `vsx` target feature
--> $DIR/bad-reg.rs:104:18
--> $DIR/bad-reg.rs:106:18
|
LL | asm!("", in("vs0") x); // FIXME: should be ok if vsx is available
| ^^^^^^^^^^^
error: register class `vsreg` requires the `vsx` target feature
--> $DIR/bad-reg.rs:107:18
--> $DIR/bad-reg.rs:109:18
|
LL | asm!("", out("vs0") x); // FIXME: should be ok if vsx is available
| ^^^^^^^^^^^^
error: register class `vsreg` requires the `vsx` target feature
--> $DIR/bad-reg.rs:110:26
--> $DIR/bad-reg.rs:112:26
|
LL | asm!("/* {} */", in(vsreg) v32x4); // requires vsx
| ^^^^^^^^^^^^^^^
error: register class `vsreg` requires the `vsx` target feature
--> $DIR/bad-reg.rs:112:26
--> $DIR/bad-reg.rs:114:26
|
LL | asm!("/* {} */", in(vsreg) v64x2); // requires vsx
| ^^^^^^^^^^^^^^^
error: register class `vsreg` requires the `vsx` target feature
--> $DIR/bad-reg.rs:114:26
--> $DIR/bad-reg.rs:116:26
|
LL | asm!("/* {} */", in(vsreg) x); // FIXME: should be ok if vsx is available
| ^^^^^^^^^^^
error: register class `vsreg` requires the `vsx` target feature
--> $DIR/bad-reg.rs:117:26
--> $DIR/bad-reg.rs:119:26
|
LL | asm!("/* {} */", out(vsreg) _); // requires vsx
| ^^^^^^^^^^^^
error: type `i32` cannot be used with this register class
--> $DIR/bad-reg.rs:137:27
--> $DIR/bad-reg.rs:139:27
|
LL | asm!("", in("cr") x);
| ^
@ -841,7 +847,7 @@ LL | asm!("", in("cr") x);
= note: register class `cr` supports these types:
error: type `i32` cannot be used with this register class
--> $DIR/bad-reg.rs:140:28
--> $DIR/bad-reg.rs:142:28
|
LL | asm!("", out("cr") x);
| ^
@ -849,7 +855,7 @@ LL | asm!("", out("cr") x);
= note: register class `cr` supports these types:
error: type `i32` cannot be used with this register class
--> $DIR/bad-reg.rs:143:33
--> $DIR/bad-reg.rs:145:33
|
LL | asm!("/* {} */", in(cr) x);
| ^
@ -857,7 +863,7 @@ LL | asm!("/* {} */", in(cr) x);
= note: register class `cr` supports these types:
error: type `i32` cannot be used with this register class
--> $DIR/bad-reg.rs:150:28
--> $DIR/bad-reg.rs:152:28
|
LL | asm!("", in("ctr") x);
| ^
@ -865,7 +871,7 @@ LL | asm!("", in("ctr") x);
= note: register class `ctr` supports these types:
error: type `i32` cannot be used with this register class
--> $DIR/bad-reg.rs:153:29
--> $DIR/bad-reg.rs:155:29
|
LL | asm!("", out("ctr") x);
| ^
@ -873,7 +879,7 @@ LL | asm!("", out("ctr") x);
= note: register class `ctr` supports these types:
error: type `i32` cannot be used with this register class
--> $DIR/bad-reg.rs:156:34
--> $DIR/bad-reg.rs:158:34
|
LL | asm!("/* {} */", in(ctr) x);
| ^
@ -881,7 +887,7 @@ LL | asm!("/* {} */", in(ctr) x);
= note: register class `ctr` supports these types:
error: type `i32` cannot be used with this register class
--> $DIR/bad-reg.rs:163:27
--> $DIR/bad-reg.rs:165:27
|
LL | asm!("", in("lr") x);
| ^
@ -889,7 +895,7 @@ LL | asm!("", in("lr") x);
= note: register class `lr` supports these types:
error: type `i32` cannot be used with this register class
--> $DIR/bad-reg.rs:166:28
--> $DIR/bad-reg.rs:168:28
|
LL | asm!("", out("lr") x);
| ^
@ -897,7 +903,7 @@ LL | asm!("", out("lr") x);
= note: register class `lr` supports these types:
error: type `i32` cannot be used with this register class
--> $DIR/bad-reg.rs:169:33
--> $DIR/bad-reg.rs:171:33
|
LL | asm!("/* {} */", in(lr) x);
| ^
@ -905,7 +911,7 @@ LL | asm!("/* {} */", in(lr) x);
= note: register class `lr` supports these types:
error: type `i32` cannot be used with this register class
--> $DIR/bad-reg.rs:176:28
--> $DIR/bad-reg.rs:178:28
|
LL | asm!("", in("xer") x);
| ^
@ -913,7 +919,7 @@ LL | asm!("", in("xer") x);
= note: register class `xer` supports these types:
error: type `i32` cannot be used with this register class
--> $DIR/bad-reg.rs:179:29
--> $DIR/bad-reg.rs:181:29
|
LL | asm!("", out("xer") x);
| ^
@ -921,12 +927,18 @@ LL | asm!("", out("xer") x);
= note: register class `xer` supports these types:
error: type `i32` cannot be used with this register class
--> $DIR/bad-reg.rs:182:34
--> $DIR/bad-reg.rs:184:34
|
LL | asm!("/* {} */", in(xer) x);
| ^
|
= note: register class `xer` supports these types:
error: aborting due to 127 previous errors
error: cannot use register `spe_acc`: spe_acc is only available on spe targets
--> $DIR/bad-reg.rs:338:18
|
LL | asm!("", out("spe_acc") _);
| ^^^^^^^^^^^^^^^^
error: aborting due to 129 previous errors

View file

@ -1,131 +1,131 @@
error: invalid register `sp`: the stack pointer cannot be used as an operand for inline asm
--> $DIR/bad-reg.rs:36:18
--> $DIR/bad-reg.rs:38:18
|
LL | asm!("", out("sp") _);
| ^^^^^^^^^^^
error: invalid register `r2`: r2 is a system reserved register and cannot be used as an operand for inline asm
--> $DIR/bad-reg.rs:38:18
--> $DIR/bad-reg.rs:40:18
|
LL | asm!("", out("r2") _);
| ^^^^^^^^^^^
error: invalid register `r30`: r30 is used internally by LLVM and cannot be used as an operand for inline asm
--> $DIR/bad-reg.rs:44:18
--> $DIR/bad-reg.rs:46:18
|
LL | asm!("", out("r30") _);
| ^^^^^^^^^^^^
error: invalid register `fp`: the frame pointer cannot be used as an operand for inline asm
--> $DIR/bad-reg.rs:46:18
--> $DIR/bad-reg.rs:48:18
|
LL | asm!("", out("fp") _);
| ^^^^^^^^^^^
error: invalid register `vrsave`: the vrsave register cannot be used as an operand for inline asm
--> $DIR/bad-reg.rs:48:18
--> $DIR/bad-reg.rs:50:18
|
LL | asm!("", out("vrsave") _);
| ^^^^^^^^^^^^^^^
error: register class `cr` can only be used as a clobber, not as an input or output
--> $DIR/bad-reg.rs:137:18
--> $DIR/bad-reg.rs:139:18
|
LL | asm!("", in("cr") x);
| ^^^^^^^^^^
error: register class `cr` can only be used as a clobber, not as an input or output
--> $DIR/bad-reg.rs:140:18
--> $DIR/bad-reg.rs:142:18
|
LL | asm!("", out("cr") x);
| ^^^^^^^^^^^
error: register class `cr` can only be used as a clobber, not as an input or output
--> $DIR/bad-reg.rs:143:26
--> $DIR/bad-reg.rs:145:26
|
LL | asm!("/* {} */", in(cr) x);
| ^^^^^^^^
error: register class `cr` can only be used as a clobber, not as an input or output
--> $DIR/bad-reg.rs:146:26
--> $DIR/bad-reg.rs:148:26
|
LL | asm!("/* {} */", out(cr) _);
| ^^^^^^^^^
error: register class `ctr` can only be used as a clobber, not as an input or output
--> $DIR/bad-reg.rs:150:18
--> $DIR/bad-reg.rs:152:18
|
LL | asm!("", in("ctr") x);
| ^^^^^^^^^^^
error: register class `ctr` can only be used as a clobber, not as an input or output
--> $DIR/bad-reg.rs:153:18
--> $DIR/bad-reg.rs:155:18
|
LL | asm!("", out("ctr") x);
| ^^^^^^^^^^^^
error: register class `ctr` can only be used as a clobber, not as an input or output
--> $DIR/bad-reg.rs:156:26
--> $DIR/bad-reg.rs:158:26
|
LL | asm!("/* {} */", in(ctr) x);
| ^^^^^^^^^
error: register class `ctr` can only be used as a clobber, not as an input or output
--> $DIR/bad-reg.rs:159:26
--> $DIR/bad-reg.rs:161:26
|
LL | asm!("/* {} */", out(ctr) _);
| ^^^^^^^^^^
error: register class `lr` can only be used as a clobber, not as an input or output
--> $DIR/bad-reg.rs:163:18
--> $DIR/bad-reg.rs:165:18
|
LL | asm!("", in("lr") x);
| ^^^^^^^^^^
error: register class `lr` can only be used as a clobber, not as an input or output
--> $DIR/bad-reg.rs:166:18
--> $DIR/bad-reg.rs:168:18
|
LL | asm!("", out("lr") x);
| ^^^^^^^^^^^
error: register class `lr` can only be used as a clobber, not as an input or output
--> $DIR/bad-reg.rs:169:26
--> $DIR/bad-reg.rs:171:26
|
LL | asm!("/* {} */", in(lr) x);
| ^^^^^^^^
error: register class `lr` can only be used as a clobber, not as an input or output
--> $DIR/bad-reg.rs:172:26
--> $DIR/bad-reg.rs:174:26
|
LL | asm!("/* {} */", out(lr) _);
| ^^^^^^^^^
error: register class `xer` can only be used as a clobber, not as an input or output
--> $DIR/bad-reg.rs:176:18
--> $DIR/bad-reg.rs:178:18
|
LL | asm!("", in("xer") x);
| ^^^^^^^^^^^
error: register class `xer` can only be used as a clobber, not as an input or output
--> $DIR/bad-reg.rs:179:18
--> $DIR/bad-reg.rs:181:18
|
LL | asm!("", out("xer") x);
| ^^^^^^^^^^^^
error: register class `xer` can only be used as a clobber, not as an input or output
--> $DIR/bad-reg.rs:182:26
--> $DIR/bad-reg.rs:184:26
|
LL | asm!("/* {} */", in(xer) x);
| ^^^^^^^^^
error: register class `xer` can only be used as a clobber, not as an input or output
--> $DIR/bad-reg.rs:185:26
--> $DIR/bad-reg.rs:187:26
|
LL | asm!("/* {} */", out(xer) _);
| ^^^^^^^^^^
error: register `cr0` conflicts with register `cr`
--> $DIR/bad-reg.rs:189:31
--> $DIR/bad-reg.rs:191:31
|
LL | asm!("", out("cr") _, out("cr0") _);
| ----------- ^^^^^^^^^^^^ register `cr0`
@ -133,7 +133,7 @@ LL | asm!("", out("cr") _, out("cr0") _);
| register `cr`
error: register `cr1` conflicts with register `cr`
--> $DIR/bad-reg.rs:191:31
--> $DIR/bad-reg.rs:193:31
|
LL | asm!("", out("cr") _, out("cr1") _);
| ----------- ^^^^^^^^^^^^ register `cr1`
@ -141,7 +141,7 @@ LL | asm!("", out("cr") _, out("cr1") _);
| register `cr`
error: register `cr2` conflicts with register `cr`
--> $DIR/bad-reg.rs:193:31
--> $DIR/bad-reg.rs:195:31
|
LL | asm!("", out("cr") _, out("cr2") _);
| ----------- ^^^^^^^^^^^^ register `cr2`
@ -149,7 +149,7 @@ LL | asm!("", out("cr") _, out("cr2") _);
| register `cr`
error: register `cr3` conflicts with register `cr`
--> $DIR/bad-reg.rs:195:31
--> $DIR/bad-reg.rs:197:31
|
LL | asm!("", out("cr") _, out("cr3") _);
| ----------- ^^^^^^^^^^^^ register `cr3`
@ -157,7 +157,7 @@ LL | asm!("", out("cr") _, out("cr3") _);
| register `cr`
error: register `cr4` conflicts with register `cr`
--> $DIR/bad-reg.rs:197:31
--> $DIR/bad-reg.rs:199:31
|
LL | asm!("", out("cr") _, out("cr4") _);
| ----------- ^^^^^^^^^^^^ register `cr4`
@ -165,7 +165,7 @@ LL | asm!("", out("cr") _, out("cr4") _);
| register `cr`
error: register `cr5` conflicts with register `cr`
--> $DIR/bad-reg.rs:199:31
--> $DIR/bad-reg.rs:201:31
|
LL | asm!("", out("cr") _, out("cr5") _);
| ----------- ^^^^^^^^^^^^ register `cr5`
@ -173,7 +173,7 @@ LL | asm!("", out("cr") _, out("cr5") _);
| register `cr`
error: register `cr6` conflicts with register `cr`
--> $DIR/bad-reg.rs:201:31
--> $DIR/bad-reg.rs:203:31
|
LL | asm!("", out("cr") _, out("cr6") _);
| ----------- ^^^^^^^^^^^^ register `cr6`
@ -181,7 +181,7 @@ LL | asm!("", out("cr") _, out("cr6") _);
| register `cr`
error: register `cr7` conflicts with register `cr`
--> $DIR/bad-reg.rs:203:31
--> $DIR/bad-reg.rs:205:31
|
LL | asm!("", out("cr") _, out("cr7") _);
| ----------- ^^^^^^^^^^^^ register `cr7`
@ -189,7 +189,7 @@ LL | asm!("", out("cr") _, out("cr7") _);
| register `cr`
error: register `vs0` conflicts with register `f0`
--> $DIR/bad-reg.rs:206:31
--> $DIR/bad-reg.rs:208:31
|
LL | asm!("", out("f0") _, out("vs0") _);
| ----------- ^^^^^^^^^^^^ register `vs0`
@ -197,7 +197,7 @@ LL | asm!("", out("f0") _, out("vs0") _);
| register `f0`
error: register `vs1` conflicts with register `f1`
--> $DIR/bad-reg.rs:208:31
--> $DIR/bad-reg.rs:210:31
|
LL | asm!("", out("f1") _, out("vs1") _);
| ----------- ^^^^^^^^^^^^ register `vs1`
@ -205,7 +205,7 @@ LL | asm!("", out("f1") _, out("vs1") _);
| register `f1`
error: register `vs2` conflicts with register `f2`
--> $DIR/bad-reg.rs:210:31
--> $DIR/bad-reg.rs:212:31
|
LL | asm!("", out("f2") _, out("vs2") _);
| ----------- ^^^^^^^^^^^^ register `vs2`
@ -213,7 +213,7 @@ LL | asm!("", out("f2") _, out("vs2") _);
| register `f2`
error: register `vs3` conflicts with register `f3`
--> $DIR/bad-reg.rs:212:31
--> $DIR/bad-reg.rs:214:31
|
LL | asm!("", out("f3") _, out("vs3") _);
| ----------- ^^^^^^^^^^^^ register `vs3`
@ -221,7 +221,7 @@ LL | asm!("", out("f3") _, out("vs3") _);
| register `f3`
error: register `vs4` conflicts with register `f4`
--> $DIR/bad-reg.rs:214:31
--> $DIR/bad-reg.rs:216:31
|
LL | asm!("", out("f4") _, out("vs4") _);
| ----------- ^^^^^^^^^^^^ register `vs4`
@ -229,7 +229,7 @@ LL | asm!("", out("f4") _, out("vs4") _);
| register `f4`
error: register `vs5` conflicts with register `f5`
--> $DIR/bad-reg.rs:216:31
--> $DIR/bad-reg.rs:218:31
|
LL | asm!("", out("f5") _, out("vs5") _);
| ----------- ^^^^^^^^^^^^ register `vs5`
@ -237,7 +237,7 @@ LL | asm!("", out("f5") _, out("vs5") _);
| register `f5`
error: register `vs6` conflicts with register `f6`
--> $DIR/bad-reg.rs:218:31
--> $DIR/bad-reg.rs:220:31
|
LL | asm!("", out("f6") _, out("vs6") _);
| ----------- ^^^^^^^^^^^^ register `vs6`
@ -245,7 +245,7 @@ LL | asm!("", out("f6") _, out("vs6") _);
| register `f6`
error: register `vs7` conflicts with register `f7`
--> $DIR/bad-reg.rs:220:31
--> $DIR/bad-reg.rs:222:31
|
LL | asm!("", out("f7") _, out("vs7") _);
| ----------- ^^^^^^^^^^^^ register `vs7`
@ -253,7 +253,7 @@ LL | asm!("", out("f7") _, out("vs7") _);
| register `f7`
error: register `vs8` conflicts with register `f8`
--> $DIR/bad-reg.rs:222:31
--> $DIR/bad-reg.rs:224:31
|
LL | asm!("", out("f8") _, out("vs8") _);
| ----------- ^^^^^^^^^^^^ register `vs8`
@ -261,7 +261,7 @@ LL | asm!("", out("f8") _, out("vs8") _);
| register `f8`
error: register `vs9` conflicts with register `f9`
--> $DIR/bad-reg.rs:224:31
--> $DIR/bad-reg.rs:226:31
|
LL | asm!("", out("f9") _, out("vs9") _);
| ----------- ^^^^^^^^^^^^ register `vs9`
@ -269,7 +269,7 @@ LL | asm!("", out("f9") _, out("vs9") _);
| register `f9`
error: register `vs10` conflicts with register `f10`
--> $DIR/bad-reg.rs:226:32
--> $DIR/bad-reg.rs:228:32
|
LL | asm!("", out("f10") _, out("vs10") _);
| ------------ ^^^^^^^^^^^^^ register `vs10`
@ -277,7 +277,7 @@ LL | asm!("", out("f10") _, out("vs10") _);
| register `f10`
error: register `vs11` conflicts with register `f11`
--> $DIR/bad-reg.rs:228:32
--> $DIR/bad-reg.rs:230:32
|
LL | asm!("", out("f11") _, out("vs11") _);
| ------------ ^^^^^^^^^^^^^ register `vs11`
@ -285,7 +285,7 @@ LL | asm!("", out("f11") _, out("vs11") _);
| register `f11`
error: register `vs12` conflicts with register `f12`
--> $DIR/bad-reg.rs:230:32
--> $DIR/bad-reg.rs:232:32
|
LL | asm!("", out("f12") _, out("vs12") _);
| ------------ ^^^^^^^^^^^^^ register `vs12`
@ -293,7 +293,7 @@ LL | asm!("", out("f12") _, out("vs12") _);
| register `f12`
error: register `vs13` conflicts with register `f13`
--> $DIR/bad-reg.rs:232:32
--> $DIR/bad-reg.rs:234:32
|
LL | asm!("", out("f13") _, out("vs13") _);
| ------------ ^^^^^^^^^^^^^ register `vs13`
@ -301,7 +301,7 @@ LL | asm!("", out("f13") _, out("vs13") _);
| register `f13`
error: register `vs14` conflicts with register `f14`
--> $DIR/bad-reg.rs:234:32
--> $DIR/bad-reg.rs:236:32
|
LL | asm!("", out("f14") _, out("vs14") _);
| ------------ ^^^^^^^^^^^^^ register `vs14`
@ -309,7 +309,7 @@ LL | asm!("", out("f14") _, out("vs14") _);
| register `f14`
error: register `vs15` conflicts with register `f15`
--> $DIR/bad-reg.rs:236:32
--> $DIR/bad-reg.rs:238:32
|
LL | asm!("", out("f15") _, out("vs15") _);
| ------------ ^^^^^^^^^^^^^ register `vs15`
@ -317,7 +317,7 @@ LL | asm!("", out("f15") _, out("vs15") _);
| register `f15`
error: register `vs16` conflicts with register `f16`
--> $DIR/bad-reg.rs:238:32
--> $DIR/bad-reg.rs:240:32
|
LL | asm!("", out("f16") _, out("vs16") _);
| ------------ ^^^^^^^^^^^^^ register `vs16`
@ -325,7 +325,7 @@ LL | asm!("", out("f16") _, out("vs16") _);
| register `f16`
error: register `vs17` conflicts with register `f17`
--> $DIR/bad-reg.rs:240:32
--> $DIR/bad-reg.rs:242:32
|
LL | asm!("", out("f17") _, out("vs17") _);
| ------------ ^^^^^^^^^^^^^ register `vs17`
@ -333,7 +333,7 @@ LL | asm!("", out("f17") _, out("vs17") _);
| register `f17`
error: register `vs18` conflicts with register `f18`
--> $DIR/bad-reg.rs:242:32
--> $DIR/bad-reg.rs:244:32
|
LL | asm!("", out("f18") _, out("vs18") _);
| ------------ ^^^^^^^^^^^^^ register `vs18`
@ -341,7 +341,7 @@ LL | asm!("", out("f18") _, out("vs18") _);
| register `f18`
error: register `vs19` conflicts with register `f19`
--> $DIR/bad-reg.rs:244:32
--> $DIR/bad-reg.rs:246:32
|
LL | asm!("", out("f19") _, out("vs19") _);
| ------------ ^^^^^^^^^^^^^ register `vs19`
@ -349,7 +349,7 @@ LL | asm!("", out("f19") _, out("vs19") _);
| register `f19`
error: register `vs20` conflicts with register `f20`
--> $DIR/bad-reg.rs:246:32
--> $DIR/bad-reg.rs:248:32
|
LL | asm!("", out("f20") _, out("vs20") _);
| ------------ ^^^^^^^^^^^^^ register `vs20`
@ -357,7 +357,7 @@ LL | asm!("", out("f20") _, out("vs20") _);
| register `f20`
error: register `vs21` conflicts with register `f21`
--> $DIR/bad-reg.rs:248:32
--> $DIR/bad-reg.rs:250:32
|
LL | asm!("", out("f21") _, out("vs21") _);
| ------------ ^^^^^^^^^^^^^ register `vs21`
@ -365,7 +365,7 @@ LL | asm!("", out("f21") _, out("vs21") _);
| register `f21`
error: register `vs22` conflicts with register `f22`
--> $DIR/bad-reg.rs:250:32
--> $DIR/bad-reg.rs:252:32
|
LL | asm!("", out("f22") _, out("vs22") _);
| ------------ ^^^^^^^^^^^^^ register `vs22`
@ -373,7 +373,7 @@ LL | asm!("", out("f22") _, out("vs22") _);
| register `f22`
error: register `vs23` conflicts with register `f23`
--> $DIR/bad-reg.rs:252:32
--> $DIR/bad-reg.rs:254:32
|
LL | asm!("", out("f23") _, out("vs23") _);
| ------------ ^^^^^^^^^^^^^ register `vs23`
@ -381,7 +381,7 @@ LL | asm!("", out("f23") _, out("vs23") _);
| register `f23`
error: register `vs24` conflicts with register `f24`
--> $DIR/bad-reg.rs:254:32
--> $DIR/bad-reg.rs:256:32
|
LL | asm!("", out("f24") _, out("vs24") _);
| ------------ ^^^^^^^^^^^^^ register `vs24`
@ -389,7 +389,7 @@ LL | asm!("", out("f24") _, out("vs24") _);
| register `f24`
error: register `vs25` conflicts with register `f25`
--> $DIR/bad-reg.rs:256:32
--> $DIR/bad-reg.rs:258:32
|
LL | asm!("", out("f25") _, out("vs25") _);
| ------------ ^^^^^^^^^^^^^ register `vs25`
@ -397,7 +397,7 @@ LL | asm!("", out("f25") _, out("vs25") _);
| register `f25`
error: register `vs26` conflicts with register `f26`
--> $DIR/bad-reg.rs:258:32
--> $DIR/bad-reg.rs:260:32
|
LL | asm!("", out("f26") _, out("vs26") _);
| ------------ ^^^^^^^^^^^^^ register `vs26`
@ -405,7 +405,7 @@ LL | asm!("", out("f26") _, out("vs26") _);
| register `f26`
error: register `vs27` conflicts with register `f27`
--> $DIR/bad-reg.rs:260:32
--> $DIR/bad-reg.rs:262:32
|
LL | asm!("", out("f27") _, out("vs27") _);
| ------------ ^^^^^^^^^^^^^ register `vs27`
@ -413,7 +413,7 @@ LL | asm!("", out("f27") _, out("vs27") _);
| register `f27`
error: register `vs28` conflicts with register `f28`
--> $DIR/bad-reg.rs:262:32
--> $DIR/bad-reg.rs:264:32
|
LL | asm!("", out("f28") _, out("vs28") _);
| ------------ ^^^^^^^^^^^^^ register `vs28`
@ -421,7 +421,7 @@ LL | asm!("", out("f28") _, out("vs28") _);
| register `f28`
error: register `vs29` conflicts with register `f29`
--> $DIR/bad-reg.rs:264:32
--> $DIR/bad-reg.rs:266:32
|
LL | asm!("", out("f29") _, out("vs29") _);
| ------------ ^^^^^^^^^^^^^ register `vs29`
@ -429,7 +429,7 @@ LL | asm!("", out("f29") _, out("vs29") _);
| register `f29`
error: register `vs30` conflicts with register `f30`
--> $DIR/bad-reg.rs:266:32
--> $DIR/bad-reg.rs:268:32
|
LL | asm!("", out("f30") _, out("vs30") _);
| ------------ ^^^^^^^^^^^^^ register `vs30`
@ -437,7 +437,7 @@ LL | asm!("", out("f30") _, out("vs30") _);
| register `f30`
error: register `vs31` conflicts with register `f31`
--> $DIR/bad-reg.rs:268:32
--> $DIR/bad-reg.rs:270:32
|
LL | asm!("", out("f31") _, out("vs31") _);
| ------------ ^^^^^^^^^^^^^ register `vs31`
@ -445,7 +445,7 @@ LL | asm!("", out("f31") _, out("vs31") _);
| register `f31`
error: register `v0` conflicts with register `vs32`
--> $DIR/bad-reg.rs:270:33
--> $DIR/bad-reg.rs:272:33
|
LL | asm!("", out("vs32") _, out("v0") _);
| ------------- ^^^^^^^^^^^ register `v0`
@ -453,7 +453,7 @@ LL | asm!("", out("vs32") _, out("v0") _);
| register `vs32`
error: register `v1` conflicts with register `vs33`
--> $DIR/bad-reg.rs:272:33
--> $DIR/bad-reg.rs:274:33
|
LL | asm!("", out("vs33") _, out("v1") _);
| ------------- ^^^^^^^^^^^ register `v1`
@ -461,7 +461,7 @@ LL | asm!("", out("vs33") _, out("v1") _);
| register `vs33`
error: register `v2` conflicts with register `vs34`
--> $DIR/bad-reg.rs:274:33
--> $DIR/bad-reg.rs:276:33
|
LL | asm!("", out("vs34") _, out("v2") _);
| ------------- ^^^^^^^^^^^ register `v2`
@ -469,7 +469,7 @@ LL | asm!("", out("vs34") _, out("v2") _);
| register `vs34`
error: register `v3` conflicts with register `vs35`
--> $DIR/bad-reg.rs:276:33
--> $DIR/bad-reg.rs:278:33
|
LL | asm!("", out("vs35") _, out("v3") _);
| ------------- ^^^^^^^^^^^ register `v3`
@ -477,7 +477,7 @@ LL | asm!("", out("vs35") _, out("v3") _);
| register `vs35`
error: register `v4` conflicts with register `vs36`
--> $DIR/bad-reg.rs:278:33
--> $DIR/bad-reg.rs:280:33
|
LL | asm!("", out("vs36") _, out("v4") _);
| ------------- ^^^^^^^^^^^ register `v4`
@ -485,7 +485,7 @@ LL | asm!("", out("vs36") _, out("v4") _);
| register `vs36`
error: register `v5` conflicts with register `vs37`
--> $DIR/bad-reg.rs:280:33
--> $DIR/bad-reg.rs:282:33
|
LL | asm!("", out("vs37") _, out("v5") _);
| ------------- ^^^^^^^^^^^ register `v5`
@ -493,7 +493,7 @@ LL | asm!("", out("vs37") _, out("v5") _);
| register `vs37`
error: register `v6` conflicts with register `vs38`
--> $DIR/bad-reg.rs:282:33
--> $DIR/bad-reg.rs:284:33
|
LL | asm!("", out("vs38") _, out("v6") _);
| ------------- ^^^^^^^^^^^ register `v6`
@ -501,7 +501,7 @@ LL | asm!("", out("vs38") _, out("v6") _);
| register `vs38`
error: register `v7` conflicts with register `vs39`
--> $DIR/bad-reg.rs:284:33
--> $DIR/bad-reg.rs:286:33
|
LL | asm!("", out("vs39") _, out("v7") _);
| ------------- ^^^^^^^^^^^ register `v7`
@ -509,7 +509,7 @@ LL | asm!("", out("vs39") _, out("v7") _);
| register `vs39`
error: register `v8` conflicts with register `vs40`
--> $DIR/bad-reg.rs:286:33
--> $DIR/bad-reg.rs:288:33
|
LL | asm!("", out("vs40") _, out("v8") _);
| ------------- ^^^^^^^^^^^ register `v8`
@ -517,7 +517,7 @@ LL | asm!("", out("vs40") _, out("v8") _);
| register `vs40`
error: register `v9` conflicts with register `vs41`
--> $DIR/bad-reg.rs:288:33
--> $DIR/bad-reg.rs:290:33
|
LL | asm!("", out("vs41") _, out("v9") _);
| ------------- ^^^^^^^^^^^ register `v9`
@ -525,7 +525,7 @@ LL | asm!("", out("vs41") _, out("v9") _);
| register `vs41`
error: register `v10` conflicts with register `vs42`
--> $DIR/bad-reg.rs:290:33
--> $DIR/bad-reg.rs:292:33
|
LL | asm!("", out("vs42") _, out("v10") _);
| ------------- ^^^^^^^^^^^^ register `v10`
@ -533,7 +533,7 @@ LL | asm!("", out("vs42") _, out("v10") _);
| register `vs42`
error: register `v11` conflicts with register `vs43`
--> $DIR/bad-reg.rs:292:33
--> $DIR/bad-reg.rs:294:33
|
LL | asm!("", out("vs43") _, out("v11") _);
| ------------- ^^^^^^^^^^^^ register `v11`
@ -541,7 +541,7 @@ LL | asm!("", out("vs43") _, out("v11") _);
| register `vs43`
error: register `v12` conflicts with register `vs44`
--> $DIR/bad-reg.rs:294:33
--> $DIR/bad-reg.rs:296:33
|
LL | asm!("", out("vs44") _, out("v12") _);
| ------------- ^^^^^^^^^^^^ register `v12`
@ -549,7 +549,7 @@ LL | asm!("", out("vs44") _, out("v12") _);
| register `vs44`
error: register `v13` conflicts with register `vs45`
--> $DIR/bad-reg.rs:296:33
--> $DIR/bad-reg.rs:298:33
|
LL | asm!("", out("vs45") _, out("v13") _);
| ------------- ^^^^^^^^^^^^ register `v13`
@ -557,7 +557,7 @@ LL | asm!("", out("vs45") _, out("v13") _);
| register `vs45`
error: register `v14` conflicts with register `vs46`
--> $DIR/bad-reg.rs:298:33
--> $DIR/bad-reg.rs:300:33
|
LL | asm!("", out("vs46") _, out("v14") _);
| ------------- ^^^^^^^^^^^^ register `v14`
@ -565,7 +565,7 @@ LL | asm!("", out("vs46") _, out("v14") _);
| register `vs46`
error: register `v15` conflicts with register `vs47`
--> $DIR/bad-reg.rs:300:33
--> $DIR/bad-reg.rs:302:33
|
LL | asm!("", out("vs47") _, out("v15") _);
| ------------- ^^^^^^^^^^^^ register `v15`
@ -573,7 +573,7 @@ LL | asm!("", out("vs47") _, out("v15") _);
| register `vs47`
error: register `v16` conflicts with register `vs48`
--> $DIR/bad-reg.rs:302:33
--> $DIR/bad-reg.rs:304:33
|
LL | asm!("", out("vs48") _, out("v16") _);
| ------------- ^^^^^^^^^^^^ register `v16`
@ -581,7 +581,7 @@ LL | asm!("", out("vs48") _, out("v16") _);
| register `vs48`
error: register `v17` conflicts with register `vs49`
--> $DIR/bad-reg.rs:304:33
--> $DIR/bad-reg.rs:306:33
|
LL | asm!("", out("vs49") _, out("v17") _);
| ------------- ^^^^^^^^^^^^ register `v17`
@ -589,7 +589,7 @@ LL | asm!("", out("vs49") _, out("v17") _);
| register `vs49`
error: register `v18` conflicts with register `vs50`
--> $DIR/bad-reg.rs:306:33
--> $DIR/bad-reg.rs:308:33
|
LL | asm!("", out("vs50") _, out("v18") _);
| ------------- ^^^^^^^^^^^^ register `v18`
@ -597,7 +597,7 @@ LL | asm!("", out("vs50") _, out("v18") _);
| register `vs50`
error: register `v19` conflicts with register `vs51`
--> $DIR/bad-reg.rs:308:33
--> $DIR/bad-reg.rs:310:33
|
LL | asm!("", out("vs51") _, out("v19") _);
| ------------- ^^^^^^^^^^^^ register `v19`
@ -605,7 +605,7 @@ LL | asm!("", out("vs51") _, out("v19") _);
| register `vs51`
error: register `v20` conflicts with register `vs52`
--> $DIR/bad-reg.rs:310:33
--> $DIR/bad-reg.rs:312:33
|
LL | asm!("", out("vs52") _, out("v20") _);
| ------------- ^^^^^^^^^^^^ register `v20`
@ -613,7 +613,7 @@ LL | asm!("", out("vs52") _, out("v20") _);
| register `vs52`
error: register `v21` conflicts with register `vs53`
--> $DIR/bad-reg.rs:312:33
--> $DIR/bad-reg.rs:314:33
|
LL | asm!("", out("vs53") _, out("v21") _);
| ------------- ^^^^^^^^^^^^ register `v21`
@ -621,7 +621,7 @@ LL | asm!("", out("vs53") _, out("v21") _);
| register `vs53`
error: register `v22` conflicts with register `vs54`
--> $DIR/bad-reg.rs:314:33
--> $DIR/bad-reg.rs:316:33
|
LL | asm!("", out("vs54") _, out("v22") _);
| ------------- ^^^^^^^^^^^^ register `v22`
@ -629,7 +629,7 @@ LL | asm!("", out("vs54") _, out("v22") _);
| register `vs54`
error: register `v23` conflicts with register `vs55`
--> $DIR/bad-reg.rs:316:33
--> $DIR/bad-reg.rs:318:33
|
LL | asm!("", out("vs55") _, out("v23") _);
| ------------- ^^^^^^^^^^^^ register `v23`
@ -637,7 +637,7 @@ LL | asm!("", out("vs55") _, out("v23") _);
| register `vs55`
error: register `v24` conflicts with register `vs56`
--> $DIR/bad-reg.rs:318:33
--> $DIR/bad-reg.rs:320:33
|
LL | asm!("", out("vs56") _, out("v24") _);
| ------------- ^^^^^^^^^^^^ register `v24`
@ -645,7 +645,7 @@ LL | asm!("", out("vs56") _, out("v24") _);
| register `vs56`
error: register `v25` conflicts with register `vs57`
--> $DIR/bad-reg.rs:320:33
--> $DIR/bad-reg.rs:322:33
|
LL | asm!("", out("vs57") _, out("v25") _);
| ------------- ^^^^^^^^^^^^ register `v25`
@ -653,7 +653,7 @@ LL | asm!("", out("vs57") _, out("v25") _);
| register `vs57`
error: register `v26` conflicts with register `vs58`
--> $DIR/bad-reg.rs:322:33
--> $DIR/bad-reg.rs:324:33
|
LL | asm!("", out("vs58") _, out("v26") _);
| ------------- ^^^^^^^^^^^^ register `v26`
@ -661,7 +661,7 @@ LL | asm!("", out("vs58") _, out("v26") _);
| register `vs58`
error: register `v27` conflicts with register `vs59`
--> $DIR/bad-reg.rs:324:33
--> $DIR/bad-reg.rs:326:33
|
LL | asm!("", out("vs59") _, out("v27") _);
| ------------- ^^^^^^^^^^^^ register `v27`
@ -669,7 +669,7 @@ LL | asm!("", out("vs59") _, out("v27") _);
| register `vs59`
error: register `v28` conflicts with register `vs60`
--> $DIR/bad-reg.rs:326:33
--> $DIR/bad-reg.rs:328:33
|
LL | asm!("", out("vs60") _, out("v28") _);
| ------------- ^^^^^^^^^^^^ register `v28`
@ -677,7 +677,7 @@ LL | asm!("", out("vs60") _, out("v28") _);
| register `vs60`
error: register `v29` conflicts with register `vs61`
--> $DIR/bad-reg.rs:328:33
--> $DIR/bad-reg.rs:330:33
|
LL | asm!("", out("vs61") _, out("v29") _);
| ------------- ^^^^^^^^^^^^ register `v29`
@ -685,7 +685,7 @@ LL | asm!("", out("vs61") _, out("v29") _);
| register `vs61`
error: register `v30` conflicts with register `vs62`
--> $DIR/bad-reg.rs:330:33
--> $DIR/bad-reg.rs:332:33
|
LL | asm!("", out("vs62") _, out("v30") _);
| ------------- ^^^^^^^^^^^^ register `v30`
@ -693,21 +693,27 @@ LL | asm!("", out("vs62") _, out("v30") _);
| register `vs62`
error: register `v31` conflicts with register `vs63`
--> $DIR/bad-reg.rs:332:33
--> $DIR/bad-reg.rs:334:33
|
LL | asm!("", out("vs63") _, out("v31") _);
| ------------- ^^^^^^^^^^^^ register `v31`
| |
| register `vs63`
error: register class `spe_acc` can only be used as a clobber, not as an input or output
--> $DIR/bad-reg.rs:340:26
|
LL | asm!("/* {} */", out(spe_acc) _);
| ^^^^^^^^^^^^^^
error: cannot use register `r13`: r13 is a reserved register on this target
--> $DIR/bad-reg.rs:40:18
--> $DIR/bad-reg.rs:42:18
|
LL | asm!("", out("r13") _);
| ^^^^^^^^^^^^
error: `vsx` target feature is not enabled
--> $DIR/bad-reg.rs:57:27
--> $DIR/bad-reg.rs:59:27
|
LL | asm!("", in("v0") v64x2); // requires vsx
| ^^^^^
@ -715,7 +721,7 @@ LL | asm!("", in("v0") v64x2); // requires vsx
= note: this is required to use type `i64x2` with register class `vreg`
error: `vsx` target feature is not enabled
--> $DIR/bad-reg.rs:60:28
--> $DIR/bad-reg.rs:62:28
|
LL | asm!("", out("v0") v64x2); // requires vsx
| ^^^^^
@ -723,7 +729,7 @@ LL | asm!("", out("v0") v64x2); // requires vsx
= note: this is required to use type `i64x2` with register class `vreg`
error: type `i32` cannot be used with this register class
--> $DIR/bad-reg.rs:63:27
--> $DIR/bad-reg.rs:65:27
|
LL | asm!("", in("v0") x); // FIXME: should be ok if vsx is available
| ^
@ -731,7 +737,7 @@ LL | asm!("", in("v0") x); // FIXME: should be ok if vsx is available
= note: register class `vreg` supports these types: i8x16, i16x8, i32x4, f32x4, f32, f64, i64x2, f64x2
error: type `i32` cannot be used with this register class
--> $DIR/bad-reg.rs:66:28
--> $DIR/bad-reg.rs:68:28
|
LL | asm!("", out("v0") x); // FIXME: should be ok if vsx is available
| ^
@ -739,7 +745,7 @@ LL | asm!("", out("v0") x); // FIXME: should be ok if vsx is available
= note: register class `vreg` supports these types: i8x16, i16x8, i32x4, f32x4, f32, f64, i64x2, f64x2
error: `vsx` target feature is not enabled
--> $DIR/bad-reg.rs:71:35
--> $DIR/bad-reg.rs:73:35
|
LL | asm!("/* {} */", in(vreg) v64x2); // requires vsx
| ^^^^^
@ -747,7 +753,7 @@ LL | asm!("/* {} */", in(vreg) v64x2); // requires vsx
= note: this is required to use type `i64x2` with register class `vreg`
error: type `i32` cannot be used with this register class
--> $DIR/bad-reg.rs:74:35
--> $DIR/bad-reg.rs:76:35
|
LL | asm!("/* {} */", in(vreg) x); // FIXME: should be ok if vsx is available
| ^
@ -755,67 +761,67 @@ LL | asm!("/* {} */", in(vreg) x); // FIXME: should be ok if vsx is avai
= note: register class `vreg` supports these types: i8x16, i16x8, i32x4, f32x4, f32, f64, i64x2, f64x2
error: register class `vsreg` requires the `vsx` target feature
--> $DIR/bad-reg.rs:96:18
--> $DIR/bad-reg.rs:98:18
|
LL | asm!("", in("vs0") v32x4); // requires vsx
| ^^^^^^^^^^^^^^^
error: register class `vsreg` requires the `vsx` target feature
--> $DIR/bad-reg.rs:98:18
--> $DIR/bad-reg.rs:100:18
|
LL | asm!("", out("vs0") v32x4); // requires vsx
| ^^^^^^^^^^^^^^^^
error: register class `vsreg` requires the `vsx` target feature
--> $DIR/bad-reg.rs:100:18
--> $DIR/bad-reg.rs:102:18
|
LL | asm!("", in("vs0") v64x2); // requires vsx
| ^^^^^^^^^^^^^^^
error: register class `vsreg` requires the `vsx` target feature
--> $DIR/bad-reg.rs:102:18
--> $DIR/bad-reg.rs:104:18
|
LL | asm!("", out("vs0") v64x2); // requires vsx
| ^^^^^^^^^^^^^^^^
error: register class `vsreg` requires the `vsx` target feature
--> $DIR/bad-reg.rs:104:18
--> $DIR/bad-reg.rs:106:18
|
LL | asm!("", in("vs0") x); // FIXME: should be ok if vsx is available
| ^^^^^^^^^^^
error: register class `vsreg` requires the `vsx` target feature
--> $DIR/bad-reg.rs:107:18
--> $DIR/bad-reg.rs:109:18
|
LL | asm!("", out("vs0") x); // FIXME: should be ok if vsx is available
| ^^^^^^^^^^^^
error: register class `vsreg` requires the `vsx` target feature
--> $DIR/bad-reg.rs:110:26
--> $DIR/bad-reg.rs:112:26
|
LL | asm!("/* {} */", in(vsreg) v32x4); // requires vsx
| ^^^^^^^^^^^^^^^
error: register class `vsreg` requires the `vsx` target feature
--> $DIR/bad-reg.rs:112:26
--> $DIR/bad-reg.rs:114:26
|
LL | asm!("/* {} */", in(vsreg) v64x2); // requires vsx
| ^^^^^^^^^^^^^^^
error: register class `vsreg` requires the `vsx` target feature
--> $DIR/bad-reg.rs:114:26
--> $DIR/bad-reg.rs:116:26
|
LL | asm!("/* {} */", in(vsreg) x); // FIXME: should be ok if vsx is available
| ^^^^^^^^^^^
error: register class `vsreg` requires the `vsx` target feature
--> $DIR/bad-reg.rs:117:26
--> $DIR/bad-reg.rs:119:26
|
LL | asm!("/* {} */", out(vsreg) _); // requires vsx
| ^^^^^^^^^^^^
error: type `i32` cannot be used with this register class
--> $DIR/bad-reg.rs:137:27
--> $DIR/bad-reg.rs:139:27
|
LL | asm!("", in("cr") x);
| ^
@ -823,7 +829,7 @@ LL | asm!("", in("cr") x);
= note: register class `cr` supports these types:
error: type `i32` cannot be used with this register class
--> $DIR/bad-reg.rs:140:28
--> $DIR/bad-reg.rs:142:28
|
LL | asm!("", out("cr") x);
| ^
@ -831,7 +837,7 @@ LL | asm!("", out("cr") x);
= note: register class `cr` supports these types:
error: type `i32` cannot be used with this register class
--> $DIR/bad-reg.rs:143:33
--> $DIR/bad-reg.rs:145:33
|
LL | asm!("/* {} */", in(cr) x);
| ^
@ -839,7 +845,7 @@ LL | asm!("/* {} */", in(cr) x);
= note: register class `cr` supports these types:
error: type `i32` cannot be used with this register class
--> $DIR/bad-reg.rs:150:28
--> $DIR/bad-reg.rs:152:28
|
LL | asm!("", in("ctr") x);
| ^
@ -847,7 +853,7 @@ LL | asm!("", in("ctr") x);
= note: register class `ctr` supports these types:
error: type `i32` cannot be used with this register class
--> $DIR/bad-reg.rs:153:29
--> $DIR/bad-reg.rs:155:29
|
LL | asm!("", out("ctr") x);
| ^
@ -855,7 +861,7 @@ LL | asm!("", out("ctr") x);
= note: register class `ctr` supports these types:
error: type `i32` cannot be used with this register class
--> $DIR/bad-reg.rs:156:34
--> $DIR/bad-reg.rs:158:34
|
LL | asm!("/* {} */", in(ctr) x);
| ^
@ -863,7 +869,7 @@ LL | asm!("/* {} */", in(ctr) x);
= note: register class `ctr` supports these types:
error: type `i32` cannot be used with this register class
--> $DIR/bad-reg.rs:163:27
--> $DIR/bad-reg.rs:165:27
|
LL | asm!("", in("lr") x);
| ^
@ -871,7 +877,7 @@ LL | asm!("", in("lr") x);
= note: register class `lr` supports these types:
error: type `i32` cannot be used with this register class
--> $DIR/bad-reg.rs:166:28
--> $DIR/bad-reg.rs:168:28
|
LL | asm!("", out("lr") x);
| ^
@ -879,7 +885,7 @@ LL | asm!("", out("lr") x);
= note: register class `lr` supports these types:
error: type `i32` cannot be used with this register class
--> $DIR/bad-reg.rs:169:33
--> $DIR/bad-reg.rs:171:33
|
LL | asm!("/* {} */", in(lr) x);
| ^
@ -887,7 +893,7 @@ LL | asm!("/* {} */", in(lr) x);
= note: register class `lr` supports these types:
error: type `i32` cannot be used with this register class
--> $DIR/bad-reg.rs:176:28
--> $DIR/bad-reg.rs:178:28
|
LL | asm!("", in("xer") x);
| ^
@ -895,7 +901,7 @@ LL | asm!("", in("xer") x);
= note: register class `xer` supports these types:
error: type `i32` cannot be used with this register class
--> $DIR/bad-reg.rs:179:29
--> $DIR/bad-reg.rs:181:29
|
LL | asm!("", out("xer") x);
| ^
@ -903,12 +909,18 @@ LL | asm!("", out("xer") x);
= note: register class `xer` supports these types:
error: type `i32` cannot be used with this register class
--> $DIR/bad-reg.rs:182:34
--> $DIR/bad-reg.rs:184:34
|
LL | asm!("/* {} */", in(xer) x);
| ^
|
= note: register class `xer` supports these types:
error: aborting due to 122 previous errors
error: cannot use register `spe_acc`: spe_acc is only available on spe targets
--> $DIR/bad-reg.rs:338:18
|
LL | asm!("", out("spe_acc") _);
| ^^^^^^^^^^^^^^^^
error: aborting due to 124 previous errors

View file

@ -1,131 +1,131 @@
error: invalid register `sp`: the stack pointer cannot be used as an operand for inline asm
--> $DIR/bad-reg.rs:36:18
--> $DIR/bad-reg.rs:38:18
|
LL | asm!("", out("sp") _);
| ^^^^^^^^^^^
error: invalid register `r2`: r2 is a system reserved register and cannot be used as an operand for inline asm
--> $DIR/bad-reg.rs:38:18
--> $DIR/bad-reg.rs:40:18
|
LL | asm!("", out("r2") _);
| ^^^^^^^^^^^
error: invalid register `r30`: r30 is used internally by LLVM and cannot be used as an operand for inline asm
--> $DIR/bad-reg.rs:44:18
--> $DIR/bad-reg.rs:46:18
|
LL | asm!("", out("r30") _);
| ^^^^^^^^^^^^
error: invalid register `fp`: the frame pointer cannot be used as an operand for inline asm
--> $DIR/bad-reg.rs:46:18
--> $DIR/bad-reg.rs:48:18
|
LL | asm!("", out("fp") _);
| ^^^^^^^^^^^
error: invalid register `vrsave`: the vrsave register cannot be used as an operand for inline asm
--> $DIR/bad-reg.rs:48:18
--> $DIR/bad-reg.rs:50:18
|
LL | asm!("", out("vrsave") _);
| ^^^^^^^^^^^^^^^
error: register class `cr` can only be used as a clobber, not as an input or output
--> $DIR/bad-reg.rs:137:18
--> $DIR/bad-reg.rs:139:18
|
LL | asm!("", in("cr") x);
| ^^^^^^^^^^
error: register class `cr` can only be used as a clobber, not as an input or output
--> $DIR/bad-reg.rs:140:18
--> $DIR/bad-reg.rs:142:18
|
LL | asm!("", out("cr") x);
| ^^^^^^^^^^^
error: register class `cr` can only be used as a clobber, not as an input or output
--> $DIR/bad-reg.rs:143:26
--> $DIR/bad-reg.rs:145:26
|
LL | asm!("/* {} */", in(cr) x);
| ^^^^^^^^
error: register class `cr` can only be used as a clobber, not as an input or output
--> $DIR/bad-reg.rs:146:26
--> $DIR/bad-reg.rs:148:26
|
LL | asm!("/* {} */", out(cr) _);
| ^^^^^^^^^
error: register class `ctr` can only be used as a clobber, not as an input or output
--> $DIR/bad-reg.rs:150:18
--> $DIR/bad-reg.rs:152:18
|
LL | asm!("", in("ctr") x);
| ^^^^^^^^^^^
error: register class `ctr` can only be used as a clobber, not as an input or output
--> $DIR/bad-reg.rs:153:18
--> $DIR/bad-reg.rs:155:18
|
LL | asm!("", out("ctr") x);
| ^^^^^^^^^^^^
error: register class `ctr` can only be used as a clobber, not as an input or output
--> $DIR/bad-reg.rs:156:26
--> $DIR/bad-reg.rs:158:26
|
LL | asm!("/* {} */", in(ctr) x);
| ^^^^^^^^^
error: register class `ctr` can only be used as a clobber, not as an input or output
--> $DIR/bad-reg.rs:159:26
--> $DIR/bad-reg.rs:161:26
|
LL | asm!("/* {} */", out(ctr) _);
| ^^^^^^^^^^
error: register class `lr` can only be used as a clobber, not as an input or output
--> $DIR/bad-reg.rs:163:18
--> $DIR/bad-reg.rs:165:18
|
LL | asm!("", in("lr") x);
| ^^^^^^^^^^
error: register class `lr` can only be used as a clobber, not as an input or output
--> $DIR/bad-reg.rs:166:18
--> $DIR/bad-reg.rs:168:18
|
LL | asm!("", out("lr") x);
| ^^^^^^^^^^^
error: register class `lr` can only be used as a clobber, not as an input or output
--> $DIR/bad-reg.rs:169:26
--> $DIR/bad-reg.rs:171:26
|
LL | asm!("/* {} */", in(lr) x);
| ^^^^^^^^
error: register class `lr` can only be used as a clobber, not as an input or output
--> $DIR/bad-reg.rs:172:26
--> $DIR/bad-reg.rs:174:26
|
LL | asm!("/* {} */", out(lr) _);
| ^^^^^^^^^
error: register class `xer` can only be used as a clobber, not as an input or output
--> $DIR/bad-reg.rs:176:18
--> $DIR/bad-reg.rs:178:18
|
LL | asm!("", in("xer") x);
| ^^^^^^^^^^^
error: register class `xer` can only be used as a clobber, not as an input or output
--> $DIR/bad-reg.rs:179:18
--> $DIR/bad-reg.rs:181:18
|
LL | asm!("", out("xer") x);
| ^^^^^^^^^^^^
error: register class `xer` can only be used as a clobber, not as an input or output
--> $DIR/bad-reg.rs:182:26
--> $DIR/bad-reg.rs:184:26
|
LL | asm!("/* {} */", in(xer) x);
| ^^^^^^^^^
error: register class `xer` can only be used as a clobber, not as an input or output
--> $DIR/bad-reg.rs:185:26
--> $DIR/bad-reg.rs:187:26
|
LL | asm!("/* {} */", out(xer) _);
| ^^^^^^^^^^
error: register `cr0` conflicts with register `cr`
--> $DIR/bad-reg.rs:189:31
--> $DIR/bad-reg.rs:191:31
|
LL | asm!("", out("cr") _, out("cr0") _);
| ----------- ^^^^^^^^^^^^ register `cr0`
@ -133,7 +133,7 @@ LL | asm!("", out("cr") _, out("cr0") _);
| register `cr`
error: register `cr1` conflicts with register `cr`
--> $DIR/bad-reg.rs:191:31
--> $DIR/bad-reg.rs:193:31
|
LL | asm!("", out("cr") _, out("cr1") _);
| ----------- ^^^^^^^^^^^^ register `cr1`
@ -141,7 +141,7 @@ LL | asm!("", out("cr") _, out("cr1") _);
| register `cr`
error: register `cr2` conflicts with register `cr`
--> $DIR/bad-reg.rs:193:31
--> $DIR/bad-reg.rs:195:31
|
LL | asm!("", out("cr") _, out("cr2") _);
| ----------- ^^^^^^^^^^^^ register `cr2`
@ -149,7 +149,7 @@ LL | asm!("", out("cr") _, out("cr2") _);
| register `cr`
error: register `cr3` conflicts with register `cr`
--> $DIR/bad-reg.rs:195:31
--> $DIR/bad-reg.rs:197:31
|
LL | asm!("", out("cr") _, out("cr3") _);
| ----------- ^^^^^^^^^^^^ register `cr3`
@ -157,7 +157,7 @@ LL | asm!("", out("cr") _, out("cr3") _);
| register `cr`
error: register `cr4` conflicts with register `cr`
--> $DIR/bad-reg.rs:197:31
--> $DIR/bad-reg.rs:199:31
|
LL | asm!("", out("cr") _, out("cr4") _);
| ----------- ^^^^^^^^^^^^ register `cr4`
@ -165,7 +165,7 @@ LL | asm!("", out("cr") _, out("cr4") _);
| register `cr`
error: register `cr5` conflicts with register `cr`
--> $DIR/bad-reg.rs:199:31
--> $DIR/bad-reg.rs:201:31
|
LL | asm!("", out("cr") _, out("cr5") _);
| ----------- ^^^^^^^^^^^^ register `cr5`
@ -173,7 +173,7 @@ LL | asm!("", out("cr") _, out("cr5") _);
| register `cr`
error: register `cr6` conflicts with register `cr`
--> $DIR/bad-reg.rs:201:31
--> $DIR/bad-reg.rs:203:31
|
LL | asm!("", out("cr") _, out("cr6") _);
| ----------- ^^^^^^^^^^^^ register `cr6`
@ -181,7 +181,7 @@ LL | asm!("", out("cr") _, out("cr6") _);
| register `cr`
error: register `cr7` conflicts with register `cr`
--> $DIR/bad-reg.rs:203:31
--> $DIR/bad-reg.rs:205:31
|
LL | asm!("", out("cr") _, out("cr7") _);
| ----------- ^^^^^^^^^^^^ register `cr7`
@ -189,7 +189,7 @@ LL | asm!("", out("cr") _, out("cr7") _);
| register `cr`
error: register `vs0` conflicts with register `f0`
--> $DIR/bad-reg.rs:206:31
--> $DIR/bad-reg.rs:208:31
|
LL | asm!("", out("f0") _, out("vs0") _);
| ----------- ^^^^^^^^^^^^ register `vs0`
@ -197,7 +197,7 @@ LL | asm!("", out("f0") _, out("vs0") _);
| register `f0`
error: register `vs1` conflicts with register `f1`
--> $DIR/bad-reg.rs:208:31
--> $DIR/bad-reg.rs:210:31
|
LL | asm!("", out("f1") _, out("vs1") _);
| ----------- ^^^^^^^^^^^^ register `vs1`
@ -205,7 +205,7 @@ LL | asm!("", out("f1") _, out("vs1") _);
| register `f1`
error: register `vs2` conflicts with register `f2`
--> $DIR/bad-reg.rs:210:31
--> $DIR/bad-reg.rs:212:31
|
LL | asm!("", out("f2") _, out("vs2") _);
| ----------- ^^^^^^^^^^^^ register `vs2`
@ -213,7 +213,7 @@ LL | asm!("", out("f2") _, out("vs2") _);
| register `f2`
error: register `vs3` conflicts with register `f3`
--> $DIR/bad-reg.rs:212:31
--> $DIR/bad-reg.rs:214:31
|
LL | asm!("", out("f3") _, out("vs3") _);
| ----------- ^^^^^^^^^^^^ register `vs3`
@ -221,7 +221,7 @@ LL | asm!("", out("f3") _, out("vs3") _);
| register `f3`
error: register `vs4` conflicts with register `f4`
--> $DIR/bad-reg.rs:214:31
--> $DIR/bad-reg.rs:216:31
|
LL | asm!("", out("f4") _, out("vs4") _);
| ----------- ^^^^^^^^^^^^ register `vs4`
@ -229,7 +229,7 @@ LL | asm!("", out("f4") _, out("vs4") _);
| register `f4`
error: register `vs5` conflicts with register `f5`
--> $DIR/bad-reg.rs:216:31
--> $DIR/bad-reg.rs:218:31
|
LL | asm!("", out("f5") _, out("vs5") _);
| ----------- ^^^^^^^^^^^^ register `vs5`
@ -237,7 +237,7 @@ LL | asm!("", out("f5") _, out("vs5") _);
| register `f5`
error: register `vs6` conflicts with register `f6`
--> $DIR/bad-reg.rs:218:31
--> $DIR/bad-reg.rs:220:31
|
LL | asm!("", out("f6") _, out("vs6") _);
| ----------- ^^^^^^^^^^^^ register `vs6`
@ -245,7 +245,7 @@ LL | asm!("", out("f6") _, out("vs6") _);
| register `f6`
error: register `vs7` conflicts with register `f7`
--> $DIR/bad-reg.rs:220:31
--> $DIR/bad-reg.rs:222:31
|
LL | asm!("", out("f7") _, out("vs7") _);
| ----------- ^^^^^^^^^^^^ register `vs7`
@ -253,7 +253,7 @@ LL | asm!("", out("f7") _, out("vs7") _);
| register `f7`
error: register `vs8` conflicts with register `f8`
--> $DIR/bad-reg.rs:222:31
--> $DIR/bad-reg.rs:224:31
|
LL | asm!("", out("f8") _, out("vs8") _);
| ----------- ^^^^^^^^^^^^ register `vs8`
@ -261,7 +261,7 @@ LL | asm!("", out("f8") _, out("vs8") _);
| register `f8`
error: register `vs9` conflicts with register `f9`
--> $DIR/bad-reg.rs:224:31
--> $DIR/bad-reg.rs:226:31
|
LL | asm!("", out("f9") _, out("vs9") _);
| ----------- ^^^^^^^^^^^^ register `vs9`
@ -269,7 +269,7 @@ LL | asm!("", out("f9") _, out("vs9") _);
| register `f9`
error: register `vs10` conflicts with register `f10`
--> $DIR/bad-reg.rs:226:32
--> $DIR/bad-reg.rs:228:32
|
LL | asm!("", out("f10") _, out("vs10") _);
| ------------ ^^^^^^^^^^^^^ register `vs10`
@ -277,7 +277,7 @@ LL | asm!("", out("f10") _, out("vs10") _);
| register `f10`
error: register `vs11` conflicts with register `f11`
--> $DIR/bad-reg.rs:228:32
--> $DIR/bad-reg.rs:230:32
|
LL | asm!("", out("f11") _, out("vs11") _);
| ------------ ^^^^^^^^^^^^^ register `vs11`
@ -285,7 +285,7 @@ LL | asm!("", out("f11") _, out("vs11") _);
| register `f11`
error: register `vs12` conflicts with register `f12`
--> $DIR/bad-reg.rs:230:32
--> $DIR/bad-reg.rs:232:32
|
LL | asm!("", out("f12") _, out("vs12") _);
| ------------ ^^^^^^^^^^^^^ register `vs12`
@ -293,7 +293,7 @@ LL | asm!("", out("f12") _, out("vs12") _);
| register `f12`
error: register `vs13` conflicts with register `f13`
--> $DIR/bad-reg.rs:232:32
--> $DIR/bad-reg.rs:234:32
|
LL | asm!("", out("f13") _, out("vs13") _);
| ------------ ^^^^^^^^^^^^^ register `vs13`
@ -301,7 +301,7 @@ LL | asm!("", out("f13") _, out("vs13") _);
| register `f13`
error: register `vs14` conflicts with register `f14`
--> $DIR/bad-reg.rs:234:32
--> $DIR/bad-reg.rs:236:32
|
LL | asm!("", out("f14") _, out("vs14") _);
| ------------ ^^^^^^^^^^^^^ register `vs14`
@ -309,7 +309,7 @@ LL | asm!("", out("f14") _, out("vs14") _);
| register `f14`
error: register `vs15` conflicts with register `f15`
--> $DIR/bad-reg.rs:236:32
--> $DIR/bad-reg.rs:238:32
|
LL | asm!("", out("f15") _, out("vs15") _);
| ------------ ^^^^^^^^^^^^^ register `vs15`
@ -317,7 +317,7 @@ LL | asm!("", out("f15") _, out("vs15") _);
| register `f15`
error: register `vs16` conflicts with register `f16`
--> $DIR/bad-reg.rs:238:32
--> $DIR/bad-reg.rs:240:32
|
LL | asm!("", out("f16") _, out("vs16") _);
| ------------ ^^^^^^^^^^^^^ register `vs16`
@ -325,7 +325,7 @@ LL | asm!("", out("f16") _, out("vs16") _);
| register `f16`
error: register `vs17` conflicts with register `f17`
--> $DIR/bad-reg.rs:240:32
--> $DIR/bad-reg.rs:242:32
|
LL | asm!("", out("f17") _, out("vs17") _);
| ------------ ^^^^^^^^^^^^^ register `vs17`
@ -333,7 +333,7 @@ LL | asm!("", out("f17") _, out("vs17") _);
| register `f17`
error: register `vs18` conflicts with register `f18`
--> $DIR/bad-reg.rs:242:32
--> $DIR/bad-reg.rs:244:32
|
LL | asm!("", out("f18") _, out("vs18") _);
| ------------ ^^^^^^^^^^^^^ register `vs18`
@ -341,7 +341,7 @@ LL | asm!("", out("f18") _, out("vs18") _);
| register `f18`
error: register `vs19` conflicts with register `f19`
--> $DIR/bad-reg.rs:244:32
--> $DIR/bad-reg.rs:246:32
|
LL | asm!("", out("f19") _, out("vs19") _);
| ------------ ^^^^^^^^^^^^^ register `vs19`
@ -349,7 +349,7 @@ LL | asm!("", out("f19") _, out("vs19") _);
| register `f19`
error: register `vs20` conflicts with register `f20`
--> $DIR/bad-reg.rs:246:32
--> $DIR/bad-reg.rs:248:32
|
LL | asm!("", out("f20") _, out("vs20") _);
| ------------ ^^^^^^^^^^^^^ register `vs20`
@ -357,7 +357,7 @@ LL | asm!("", out("f20") _, out("vs20") _);
| register `f20`
error: register `vs21` conflicts with register `f21`
--> $DIR/bad-reg.rs:248:32
--> $DIR/bad-reg.rs:250:32
|
LL | asm!("", out("f21") _, out("vs21") _);
| ------------ ^^^^^^^^^^^^^ register `vs21`
@ -365,7 +365,7 @@ LL | asm!("", out("f21") _, out("vs21") _);
| register `f21`
error: register `vs22` conflicts with register `f22`
--> $DIR/bad-reg.rs:250:32
--> $DIR/bad-reg.rs:252:32
|
LL | asm!("", out("f22") _, out("vs22") _);
| ------------ ^^^^^^^^^^^^^ register `vs22`
@ -373,7 +373,7 @@ LL | asm!("", out("f22") _, out("vs22") _);
| register `f22`
error: register `vs23` conflicts with register `f23`
--> $DIR/bad-reg.rs:252:32
--> $DIR/bad-reg.rs:254:32
|
LL | asm!("", out("f23") _, out("vs23") _);
| ------------ ^^^^^^^^^^^^^ register `vs23`
@ -381,7 +381,7 @@ LL | asm!("", out("f23") _, out("vs23") _);
| register `f23`
error: register `vs24` conflicts with register `f24`
--> $DIR/bad-reg.rs:254:32
--> $DIR/bad-reg.rs:256:32
|
LL | asm!("", out("f24") _, out("vs24") _);
| ------------ ^^^^^^^^^^^^^ register `vs24`
@ -389,7 +389,7 @@ LL | asm!("", out("f24") _, out("vs24") _);
| register `f24`
error: register `vs25` conflicts with register `f25`
--> $DIR/bad-reg.rs:256:32
--> $DIR/bad-reg.rs:258:32
|
LL | asm!("", out("f25") _, out("vs25") _);
| ------------ ^^^^^^^^^^^^^ register `vs25`
@ -397,7 +397,7 @@ LL | asm!("", out("f25") _, out("vs25") _);
| register `f25`
error: register `vs26` conflicts with register `f26`
--> $DIR/bad-reg.rs:258:32
--> $DIR/bad-reg.rs:260:32
|
LL | asm!("", out("f26") _, out("vs26") _);
| ------------ ^^^^^^^^^^^^^ register `vs26`
@ -405,7 +405,7 @@ LL | asm!("", out("f26") _, out("vs26") _);
| register `f26`
error: register `vs27` conflicts with register `f27`
--> $DIR/bad-reg.rs:260:32
--> $DIR/bad-reg.rs:262:32
|
LL | asm!("", out("f27") _, out("vs27") _);
| ------------ ^^^^^^^^^^^^^ register `vs27`
@ -413,7 +413,7 @@ LL | asm!("", out("f27") _, out("vs27") _);
| register `f27`
error: register `vs28` conflicts with register `f28`
--> $DIR/bad-reg.rs:262:32
--> $DIR/bad-reg.rs:264:32
|
LL | asm!("", out("f28") _, out("vs28") _);
| ------------ ^^^^^^^^^^^^^ register `vs28`
@ -421,7 +421,7 @@ LL | asm!("", out("f28") _, out("vs28") _);
| register `f28`
error: register `vs29` conflicts with register `f29`
--> $DIR/bad-reg.rs:264:32
--> $DIR/bad-reg.rs:266:32
|
LL | asm!("", out("f29") _, out("vs29") _);
| ------------ ^^^^^^^^^^^^^ register `vs29`
@ -429,7 +429,7 @@ LL | asm!("", out("f29") _, out("vs29") _);
| register `f29`
error: register `vs30` conflicts with register `f30`
--> $DIR/bad-reg.rs:266:32
--> $DIR/bad-reg.rs:268:32
|
LL | asm!("", out("f30") _, out("vs30") _);
| ------------ ^^^^^^^^^^^^^ register `vs30`
@ -437,7 +437,7 @@ LL | asm!("", out("f30") _, out("vs30") _);
| register `f30`
error: register `vs31` conflicts with register `f31`
--> $DIR/bad-reg.rs:268:32
--> $DIR/bad-reg.rs:270:32
|
LL | asm!("", out("f31") _, out("vs31") _);
| ------------ ^^^^^^^^^^^^^ register `vs31`
@ -445,7 +445,7 @@ LL | asm!("", out("f31") _, out("vs31") _);
| register `f31`
error: register `v0` conflicts with register `vs32`
--> $DIR/bad-reg.rs:270:33
--> $DIR/bad-reg.rs:272:33
|
LL | asm!("", out("vs32") _, out("v0") _);
| ------------- ^^^^^^^^^^^ register `v0`
@ -453,7 +453,7 @@ LL | asm!("", out("vs32") _, out("v0") _);
| register `vs32`
error: register `v1` conflicts with register `vs33`
--> $DIR/bad-reg.rs:272:33
--> $DIR/bad-reg.rs:274:33
|
LL | asm!("", out("vs33") _, out("v1") _);
| ------------- ^^^^^^^^^^^ register `v1`
@ -461,7 +461,7 @@ LL | asm!("", out("vs33") _, out("v1") _);
| register `vs33`
error: register `v2` conflicts with register `vs34`
--> $DIR/bad-reg.rs:274:33
--> $DIR/bad-reg.rs:276:33
|
LL | asm!("", out("vs34") _, out("v2") _);
| ------------- ^^^^^^^^^^^ register `v2`
@ -469,7 +469,7 @@ LL | asm!("", out("vs34") _, out("v2") _);
| register `vs34`
error: register `v3` conflicts with register `vs35`
--> $DIR/bad-reg.rs:276:33
--> $DIR/bad-reg.rs:278:33
|
LL | asm!("", out("vs35") _, out("v3") _);
| ------------- ^^^^^^^^^^^ register `v3`
@ -477,7 +477,7 @@ LL | asm!("", out("vs35") _, out("v3") _);
| register `vs35`
error: register `v4` conflicts with register `vs36`
--> $DIR/bad-reg.rs:278:33
--> $DIR/bad-reg.rs:280:33
|
LL | asm!("", out("vs36") _, out("v4") _);
| ------------- ^^^^^^^^^^^ register `v4`
@ -485,7 +485,7 @@ LL | asm!("", out("vs36") _, out("v4") _);
| register `vs36`
error: register `v5` conflicts with register `vs37`
--> $DIR/bad-reg.rs:280:33
--> $DIR/bad-reg.rs:282:33
|
LL | asm!("", out("vs37") _, out("v5") _);
| ------------- ^^^^^^^^^^^ register `v5`
@ -493,7 +493,7 @@ LL | asm!("", out("vs37") _, out("v5") _);
| register `vs37`
error: register `v6` conflicts with register `vs38`
--> $DIR/bad-reg.rs:282:33
--> $DIR/bad-reg.rs:284:33
|
LL | asm!("", out("vs38") _, out("v6") _);
| ------------- ^^^^^^^^^^^ register `v6`
@ -501,7 +501,7 @@ LL | asm!("", out("vs38") _, out("v6") _);
| register `vs38`
error: register `v7` conflicts with register `vs39`
--> $DIR/bad-reg.rs:284:33
--> $DIR/bad-reg.rs:286:33
|
LL | asm!("", out("vs39") _, out("v7") _);
| ------------- ^^^^^^^^^^^ register `v7`
@ -509,7 +509,7 @@ LL | asm!("", out("vs39") _, out("v7") _);
| register `vs39`
error: register `v8` conflicts with register `vs40`
--> $DIR/bad-reg.rs:286:33
--> $DIR/bad-reg.rs:288:33
|
LL | asm!("", out("vs40") _, out("v8") _);
| ------------- ^^^^^^^^^^^ register `v8`
@ -517,7 +517,7 @@ LL | asm!("", out("vs40") _, out("v8") _);
| register `vs40`
error: register `v9` conflicts with register `vs41`
--> $DIR/bad-reg.rs:288:33
--> $DIR/bad-reg.rs:290:33
|
LL | asm!("", out("vs41") _, out("v9") _);
| ------------- ^^^^^^^^^^^ register `v9`
@ -525,7 +525,7 @@ LL | asm!("", out("vs41") _, out("v9") _);
| register `vs41`
error: register `v10` conflicts with register `vs42`
--> $DIR/bad-reg.rs:290:33
--> $DIR/bad-reg.rs:292:33
|
LL | asm!("", out("vs42") _, out("v10") _);
| ------------- ^^^^^^^^^^^^ register `v10`
@ -533,7 +533,7 @@ LL | asm!("", out("vs42") _, out("v10") _);
| register `vs42`
error: register `v11` conflicts with register `vs43`
--> $DIR/bad-reg.rs:292:33
--> $DIR/bad-reg.rs:294:33
|
LL | asm!("", out("vs43") _, out("v11") _);
| ------------- ^^^^^^^^^^^^ register `v11`
@ -541,7 +541,7 @@ LL | asm!("", out("vs43") _, out("v11") _);
| register `vs43`
error: register `v12` conflicts with register `vs44`
--> $DIR/bad-reg.rs:294:33
--> $DIR/bad-reg.rs:296:33
|
LL | asm!("", out("vs44") _, out("v12") _);
| ------------- ^^^^^^^^^^^^ register `v12`
@ -549,7 +549,7 @@ LL | asm!("", out("vs44") _, out("v12") _);
| register `vs44`
error: register `v13` conflicts with register `vs45`
--> $DIR/bad-reg.rs:296:33
--> $DIR/bad-reg.rs:298:33
|
LL | asm!("", out("vs45") _, out("v13") _);
| ------------- ^^^^^^^^^^^^ register `v13`
@ -557,7 +557,7 @@ LL | asm!("", out("vs45") _, out("v13") _);
| register `vs45`
error: register `v14` conflicts with register `vs46`
--> $DIR/bad-reg.rs:298:33
--> $DIR/bad-reg.rs:300:33
|
LL | asm!("", out("vs46") _, out("v14") _);
| ------------- ^^^^^^^^^^^^ register `v14`
@ -565,7 +565,7 @@ LL | asm!("", out("vs46") _, out("v14") _);
| register `vs46`
error: register `v15` conflicts with register `vs47`
--> $DIR/bad-reg.rs:300:33
--> $DIR/bad-reg.rs:302:33
|
LL | asm!("", out("vs47") _, out("v15") _);
| ------------- ^^^^^^^^^^^^ register `v15`
@ -573,7 +573,7 @@ LL | asm!("", out("vs47") _, out("v15") _);
| register `vs47`
error: register `v16` conflicts with register `vs48`
--> $DIR/bad-reg.rs:302:33
--> $DIR/bad-reg.rs:304:33
|
LL | asm!("", out("vs48") _, out("v16") _);
| ------------- ^^^^^^^^^^^^ register `v16`
@ -581,7 +581,7 @@ LL | asm!("", out("vs48") _, out("v16") _);
| register `vs48`
error: register `v17` conflicts with register `vs49`
--> $DIR/bad-reg.rs:304:33
--> $DIR/bad-reg.rs:306:33
|
LL | asm!("", out("vs49") _, out("v17") _);
| ------------- ^^^^^^^^^^^^ register `v17`
@ -589,7 +589,7 @@ LL | asm!("", out("vs49") _, out("v17") _);
| register `vs49`
error: register `v18` conflicts with register `vs50`
--> $DIR/bad-reg.rs:306:33
--> $DIR/bad-reg.rs:308:33
|
LL | asm!("", out("vs50") _, out("v18") _);
| ------------- ^^^^^^^^^^^^ register `v18`
@ -597,7 +597,7 @@ LL | asm!("", out("vs50") _, out("v18") _);
| register `vs50`
error: register `v19` conflicts with register `vs51`
--> $DIR/bad-reg.rs:308:33
--> $DIR/bad-reg.rs:310:33
|
LL | asm!("", out("vs51") _, out("v19") _);
| ------------- ^^^^^^^^^^^^ register `v19`
@ -605,7 +605,7 @@ LL | asm!("", out("vs51") _, out("v19") _);
| register `vs51`
error: register `v20` conflicts with register `vs52`
--> $DIR/bad-reg.rs:310:33
--> $DIR/bad-reg.rs:312:33
|
LL | asm!("", out("vs52") _, out("v20") _);
| ------------- ^^^^^^^^^^^^ register `v20`
@ -613,7 +613,7 @@ LL | asm!("", out("vs52") _, out("v20") _);
| register `vs52`
error: register `v21` conflicts with register `vs53`
--> $DIR/bad-reg.rs:312:33
--> $DIR/bad-reg.rs:314:33
|
LL | asm!("", out("vs53") _, out("v21") _);
| ------------- ^^^^^^^^^^^^ register `v21`
@ -621,7 +621,7 @@ LL | asm!("", out("vs53") _, out("v21") _);
| register `vs53`
error: register `v22` conflicts with register `vs54`
--> $DIR/bad-reg.rs:314:33
--> $DIR/bad-reg.rs:316:33
|
LL | asm!("", out("vs54") _, out("v22") _);
| ------------- ^^^^^^^^^^^^ register `v22`
@ -629,7 +629,7 @@ LL | asm!("", out("vs54") _, out("v22") _);
| register `vs54`
error: register `v23` conflicts with register `vs55`
--> $DIR/bad-reg.rs:316:33
--> $DIR/bad-reg.rs:318:33
|
LL | asm!("", out("vs55") _, out("v23") _);
| ------------- ^^^^^^^^^^^^ register `v23`
@ -637,7 +637,7 @@ LL | asm!("", out("vs55") _, out("v23") _);
| register `vs55`
error: register `v24` conflicts with register `vs56`
--> $DIR/bad-reg.rs:318:33
--> $DIR/bad-reg.rs:320:33
|
LL | asm!("", out("vs56") _, out("v24") _);
| ------------- ^^^^^^^^^^^^ register `v24`
@ -645,7 +645,7 @@ LL | asm!("", out("vs56") _, out("v24") _);
| register `vs56`
error: register `v25` conflicts with register `vs57`
--> $DIR/bad-reg.rs:320:33
--> $DIR/bad-reg.rs:322:33
|
LL | asm!("", out("vs57") _, out("v25") _);
| ------------- ^^^^^^^^^^^^ register `v25`
@ -653,7 +653,7 @@ LL | asm!("", out("vs57") _, out("v25") _);
| register `vs57`
error: register `v26` conflicts with register `vs58`
--> $DIR/bad-reg.rs:322:33
--> $DIR/bad-reg.rs:324:33
|
LL | asm!("", out("vs58") _, out("v26") _);
| ------------- ^^^^^^^^^^^^ register `v26`
@ -661,7 +661,7 @@ LL | asm!("", out("vs58") _, out("v26") _);
| register `vs58`
error: register `v27` conflicts with register `vs59`
--> $DIR/bad-reg.rs:324:33
--> $DIR/bad-reg.rs:326:33
|
LL | asm!("", out("vs59") _, out("v27") _);
| ------------- ^^^^^^^^^^^^ register `v27`
@ -669,7 +669,7 @@ LL | asm!("", out("vs59") _, out("v27") _);
| register `vs59`
error: register `v28` conflicts with register `vs60`
--> $DIR/bad-reg.rs:326:33
--> $DIR/bad-reg.rs:328:33
|
LL | asm!("", out("vs60") _, out("v28") _);
| ------------- ^^^^^^^^^^^^ register `v28`
@ -677,7 +677,7 @@ LL | asm!("", out("vs60") _, out("v28") _);
| register `vs60`
error: register `v29` conflicts with register `vs61`
--> $DIR/bad-reg.rs:328:33
--> $DIR/bad-reg.rs:330:33
|
LL | asm!("", out("vs61") _, out("v29") _);
| ------------- ^^^^^^^^^^^^ register `v29`
@ -685,7 +685,7 @@ LL | asm!("", out("vs61") _, out("v29") _);
| register `vs61`
error: register `v30` conflicts with register `vs62`
--> $DIR/bad-reg.rs:330:33
--> $DIR/bad-reg.rs:332:33
|
LL | asm!("", out("vs62") _, out("v30") _);
| ------------- ^^^^^^^^^^^^ register `v30`
@ -693,21 +693,27 @@ LL | asm!("", out("vs62") _, out("v30") _);
| register `vs62`
error: register `v31` conflicts with register `vs63`
--> $DIR/bad-reg.rs:332:33
--> $DIR/bad-reg.rs:334:33
|
LL | asm!("", out("vs63") _, out("v31") _);
| ------------- ^^^^^^^^^^^^ register `v31`
| |
| register `vs63`
error: register class `spe_acc` can only be used as a clobber, not as an input or output
--> $DIR/bad-reg.rs:340:26
|
LL | asm!("/* {} */", out(spe_acc) _);
| ^^^^^^^^^^^^^^
error: cannot use register `r13`: r13 is a reserved register on this target
--> $DIR/bad-reg.rs:40:18
--> $DIR/bad-reg.rs:42:18
|
LL | asm!("", out("r13") _);
| ^^^^^^^^^^^^
error: type `i32` cannot be used with this register class
--> $DIR/bad-reg.rs:63:27
--> $DIR/bad-reg.rs:65:27
|
LL | asm!("", in("v0") x); // FIXME: should be ok if vsx is available
| ^
@ -715,7 +721,7 @@ LL | asm!("", in("v0") x); // FIXME: should be ok if vsx is available
= note: register class `vreg` supports these types: i8x16, i16x8, i32x4, f32x4, f32, f64, i64x2, f64x2
error: type `i32` cannot be used with this register class
--> $DIR/bad-reg.rs:66:28
--> $DIR/bad-reg.rs:68:28
|
LL | asm!("", out("v0") x); // FIXME: should be ok if vsx is available
| ^
@ -723,7 +729,7 @@ LL | asm!("", out("v0") x); // FIXME: should be ok if vsx is available
= note: register class `vreg` supports these types: i8x16, i16x8, i32x4, f32x4, f32, f64, i64x2, f64x2
error: type `i32` cannot be used with this register class
--> $DIR/bad-reg.rs:74:35
--> $DIR/bad-reg.rs:76:35
|
LL | asm!("/* {} */", in(vreg) x); // FIXME: should be ok if vsx is available
| ^
@ -731,7 +737,7 @@ LL | asm!("/* {} */", in(vreg) x); // FIXME: should be ok if vsx is avai
= note: register class `vreg` supports these types: i8x16, i16x8, i32x4, f32x4, f32, f64, i64x2, f64x2
error: type `i32` cannot be used with this register class
--> $DIR/bad-reg.rs:104:28
--> $DIR/bad-reg.rs:106:28
|
LL | asm!("", in("vs0") x); // FIXME: should be ok if vsx is available
| ^
@ -739,7 +745,7 @@ LL | asm!("", in("vs0") x); // FIXME: should be ok if vsx is available
= note: register class `vsreg` supports these types: f32, f64, i8x16, i16x8, i32x4, i64x2, f32x4, f64x2
error: type `i32` cannot be used with this register class
--> $DIR/bad-reg.rs:107:29
--> $DIR/bad-reg.rs:109:29
|
LL | asm!("", out("vs0") x); // FIXME: should be ok if vsx is available
| ^
@ -747,7 +753,7 @@ LL | asm!("", out("vs0") x); // FIXME: should be ok if vsx is available
= note: register class `vsreg` supports these types: f32, f64, i8x16, i16x8, i32x4, i64x2, f32x4, f64x2
error: type `i32` cannot be used with this register class
--> $DIR/bad-reg.rs:114:36
--> $DIR/bad-reg.rs:116:36
|
LL | asm!("/* {} */", in(vsreg) x); // FIXME: should be ok if vsx is available
| ^
@ -755,7 +761,7 @@ LL | asm!("/* {} */", in(vsreg) x); // FIXME: should be ok if vsx is ava
= note: register class `vsreg` supports these types: f32, f64, i8x16, i16x8, i32x4, i64x2, f32x4, f64x2
error: type `i32` cannot be used with this register class
--> $DIR/bad-reg.rs:137:27
--> $DIR/bad-reg.rs:139:27
|
LL | asm!("", in("cr") x);
| ^
@ -763,7 +769,7 @@ LL | asm!("", in("cr") x);
= note: register class `cr` supports these types:
error: type `i32` cannot be used with this register class
--> $DIR/bad-reg.rs:140:28
--> $DIR/bad-reg.rs:142:28
|
LL | asm!("", out("cr") x);
| ^
@ -771,7 +777,7 @@ LL | asm!("", out("cr") x);
= note: register class `cr` supports these types:
error: type `i32` cannot be used with this register class
--> $DIR/bad-reg.rs:143:33
--> $DIR/bad-reg.rs:145:33
|
LL | asm!("/* {} */", in(cr) x);
| ^
@ -779,7 +785,7 @@ LL | asm!("/* {} */", in(cr) x);
= note: register class `cr` supports these types:
error: type `i32` cannot be used with this register class
--> $DIR/bad-reg.rs:150:28
--> $DIR/bad-reg.rs:152:28
|
LL | asm!("", in("ctr") x);
| ^
@ -787,7 +793,7 @@ LL | asm!("", in("ctr") x);
= note: register class `ctr` supports these types:
error: type `i32` cannot be used with this register class
--> $DIR/bad-reg.rs:153:29
--> $DIR/bad-reg.rs:155:29
|
LL | asm!("", out("ctr") x);
| ^
@ -795,7 +801,7 @@ LL | asm!("", out("ctr") x);
= note: register class `ctr` supports these types:
error: type `i32` cannot be used with this register class
--> $DIR/bad-reg.rs:156:34
--> $DIR/bad-reg.rs:158:34
|
LL | asm!("/* {} */", in(ctr) x);
| ^
@ -803,7 +809,7 @@ LL | asm!("/* {} */", in(ctr) x);
= note: register class `ctr` supports these types:
error: type `i32` cannot be used with this register class
--> $DIR/bad-reg.rs:163:27
--> $DIR/bad-reg.rs:165:27
|
LL | asm!("", in("lr") x);
| ^
@ -811,7 +817,7 @@ LL | asm!("", in("lr") x);
= note: register class `lr` supports these types:
error: type `i32` cannot be used with this register class
--> $DIR/bad-reg.rs:166:28
--> $DIR/bad-reg.rs:168:28
|
LL | asm!("", out("lr") x);
| ^
@ -819,7 +825,7 @@ LL | asm!("", out("lr") x);
= note: register class `lr` supports these types:
error: type `i32` cannot be used with this register class
--> $DIR/bad-reg.rs:169:33
--> $DIR/bad-reg.rs:171:33
|
LL | asm!("/* {} */", in(lr) x);
| ^
@ -827,7 +833,7 @@ LL | asm!("/* {} */", in(lr) x);
= note: register class `lr` supports these types:
error: type `i32` cannot be used with this register class
--> $DIR/bad-reg.rs:176:28
--> $DIR/bad-reg.rs:178:28
|
LL | asm!("", in("xer") x);
| ^
@ -835,7 +841,7 @@ LL | asm!("", in("xer") x);
= note: register class `xer` supports these types:
error: type `i32` cannot be used with this register class
--> $DIR/bad-reg.rs:179:29
--> $DIR/bad-reg.rs:181:29
|
LL | asm!("", out("xer") x);
| ^
@ -843,12 +849,18 @@ LL | asm!("", out("xer") x);
= note: register class `xer` supports these types:
error: type `i32` cannot be used with this register class
--> $DIR/bad-reg.rs:182:34
--> $DIR/bad-reg.rs:184:34
|
LL | asm!("/* {} */", in(xer) x);
| ^
|
= note: register class `xer` supports these types:
error: aborting due to 112 previous errors
error: cannot use register `spe_acc`: spe_acc is only available on spe targets
--> $DIR/bad-reg.rs:338:18
|
LL | asm!("", out("spe_acc") _);
| ^^^^^^^^^^^^^^^^
error: aborting due to 114 previous errors

View file

@ -0,0 +1,938 @@
error: invalid register `sp`: the stack pointer cannot be used as an operand for inline asm
--> $DIR/bad-reg.rs:38:18
|
LL | asm!("", out("sp") _);
| ^^^^^^^^^^^
error: invalid register `r2`: r2 is a system reserved register and cannot be used as an operand for inline asm
--> $DIR/bad-reg.rs:40:18
|
LL | asm!("", out("r2") _);
| ^^^^^^^^^^^
error: invalid register `r30`: r30 is used internally by LLVM and cannot be used as an operand for inline asm
--> $DIR/bad-reg.rs:46:18
|
LL | asm!("", out("r30") _);
| ^^^^^^^^^^^^
error: invalid register `fp`: the frame pointer cannot be used as an operand for inline asm
--> $DIR/bad-reg.rs:48:18
|
LL | asm!("", out("fp") _);
| ^^^^^^^^^^^
error: invalid register `vrsave`: the vrsave register cannot be used as an operand for inline asm
--> $DIR/bad-reg.rs:50:18
|
LL | asm!("", out("vrsave") _);
| ^^^^^^^^^^^^^^^
error: register class `cr` can only be used as a clobber, not as an input or output
--> $DIR/bad-reg.rs:139:18
|
LL | asm!("", in("cr") x);
| ^^^^^^^^^^
error: register class `cr` can only be used as a clobber, not as an input or output
--> $DIR/bad-reg.rs:142:18
|
LL | asm!("", out("cr") x);
| ^^^^^^^^^^^
error: register class `cr` can only be used as a clobber, not as an input or output
--> $DIR/bad-reg.rs:145:26
|
LL | asm!("/* {} */", in(cr) x);
| ^^^^^^^^
error: register class `cr` can only be used as a clobber, not as an input or output
--> $DIR/bad-reg.rs:148:26
|
LL | asm!("/* {} */", out(cr) _);
| ^^^^^^^^^
error: register class `ctr` can only be used as a clobber, not as an input or output
--> $DIR/bad-reg.rs:152:18
|
LL | asm!("", in("ctr") x);
| ^^^^^^^^^^^
error: register class `ctr` can only be used as a clobber, not as an input or output
--> $DIR/bad-reg.rs:155:18
|
LL | asm!("", out("ctr") x);
| ^^^^^^^^^^^^
error: register class `ctr` can only be used as a clobber, not as an input or output
--> $DIR/bad-reg.rs:158:26
|
LL | asm!("/* {} */", in(ctr) x);
| ^^^^^^^^^
error: register class `ctr` can only be used as a clobber, not as an input or output
--> $DIR/bad-reg.rs:161:26
|
LL | asm!("/* {} */", out(ctr) _);
| ^^^^^^^^^^
error: register class `lr` can only be used as a clobber, not as an input or output
--> $DIR/bad-reg.rs:165:18
|
LL | asm!("", in("lr") x);
| ^^^^^^^^^^
error: register class `lr` can only be used as a clobber, not as an input or output
--> $DIR/bad-reg.rs:168:18
|
LL | asm!("", out("lr") x);
| ^^^^^^^^^^^
error: register class `lr` can only be used as a clobber, not as an input or output
--> $DIR/bad-reg.rs:171:26
|
LL | asm!("/* {} */", in(lr) x);
| ^^^^^^^^
error: register class `lr` can only be used as a clobber, not as an input or output
--> $DIR/bad-reg.rs:174:26
|
LL | asm!("/* {} */", out(lr) _);
| ^^^^^^^^^
error: register class `xer` can only be used as a clobber, not as an input or output
--> $DIR/bad-reg.rs:178:18
|
LL | asm!("", in("xer") x);
| ^^^^^^^^^^^
error: register class `xer` can only be used as a clobber, not as an input or output
--> $DIR/bad-reg.rs:181:18
|
LL | asm!("", out("xer") x);
| ^^^^^^^^^^^^
error: register class `xer` can only be used as a clobber, not as an input or output
--> $DIR/bad-reg.rs:184:26
|
LL | asm!("/* {} */", in(xer) x);
| ^^^^^^^^^
error: register class `xer` can only be used as a clobber, not as an input or output
--> $DIR/bad-reg.rs:187:26
|
LL | asm!("/* {} */", out(xer) _);
| ^^^^^^^^^^
error: register `cr0` conflicts with register `cr`
--> $DIR/bad-reg.rs:191:31
|
LL | asm!("", out("cr") _, out("cr0") _);
| ----------- ^^^^^^^^^^^^ register `cr0`
| |
| register `cr`
error: register `cr1` conflicts with register `cr`
--> $DIR/bad-reg.rs:193:31
|
LL | asm!("", out("cr") _, out("cr1") _);
| ----------- ^^^^^^^^^^^^ register `cr1`
| |
| register `cr`
error: register `cr2` conflicts with register `cr`
--> $DIR/bad-reg.rs:195:31
|
LL | asm!("", out("cr") _, out("cr2") _);
| ----------- ^^^^^^^^^^^^ register `cr2`
| |
| register `cr`
error: register `cr3` conflicts with register `cr`
--> $DIR/bad-reg.rs:197:31
|
LL | asm!("", out("cr") _, out("cr3") _);
| ----------- ^^^^^^^^^^^^ register `cr3`
| |
| register `cr`
error: register `cr4` conflicts with register `cr`
--> $DIR/bad-reg.rs:199:31
|
LL | asm!("", out("cr") _, out("cr4") _);
| ----------- ^^^^^^^^^^^^ register `cr4`
| |
| register `cr`
error: register `cr5` conflicts with register `cr`
--> $DIR/bad-reg.rs:201:31
|
LL | asm!("", out("cr") _, out("cr5") _);
| ----------- ^^^^^^^^^^^^ register `cr5`
| |
| register `cr`
error: register `cr6` conflicts with register `cr`
--> $DIR/bad-reg.rs:203:31
|
LL | asm!("", out("cr") _, out("cr6") _);
| ----------- ^^^^^^^^^^^^ register `cr6`
| |
| register `cr`
error: register `cr7` conflicts with register `cr`
--> $DIR/bad-reg.rs:205:31
|
LL | asm!("", out("cr") _, out("cr7") _);
| ----------- ^^^^^^^^^^^^ register `cr7`
| |
| register `cr`
error: register `vs0` conflicts with register `f0`
--> $DIR/bad-reg.rs:208:31
|
LL | asm!("", out("f0") _, out("vs0") _);
| ----------- ^^^^^^^^^^^^ register `vs0`
| |
| register `f0`
error: register `vs1` conflicts with register `f1`
--> $DIR/bad-reg.rs:210:31
|
LL | asm!("", out("f1") _, out("vs1") _);
| ----------- ^^^^^^^^^^^^ register `vs1`
| |
| register `f1`
error: register `vs2` conflicts with register `f2`
--> $DIR/bad-reg.rs:212:31
|
LL | asm!("", out("f2") _, out("vs2") _);
| ----------- ^^^^^^^^^^^^ register `vs2`
| |
| register `f2`
error: register `vs3` conflicts with register `f3`
--> $DIR/bad-reg.rs:214:31
|
LL | asm!("", out("f3") _, out("vs3") _);
| ----------- ^^^^^^^^^^^^ register `vs3`
| |
| register `f3`
error: register `vs4` conflicts with register `f4`
--> $DIR/bad-reg.rs:216:31
|
LL | asm!("", out("f4") _, out("vs4") _);
| ----------- ^^^^^^^^^^^^ register `vs4`
| |
| register `f4`
error: register `vs5` conflicts with register `f5`
--> $DIR/bad-reg.rs:218:31
|
LL | asm!("", out("f5") _, out("vs5") _);
| ----------- ^^^^^^^^^^^^ register `vs5`
| |
| register `f5`
error: register `vs6` conflicts with register `f6`
--> $DIR/bad-reg.rs:220:31
|
LL | asm!("", out("f6") _, out("vs6") _);
| ----------- ^^^^^^^^^^^^ register `vs6`
| |
| register `f6`
error: register `vs7` conflicts with register `f7`
--> $DIR/bad-reg.rs:222:31
|
LL | asm!("", out("f7") _, out("vs7") _);
| ----------- ^^^^^^^^^^^^ register `vs7`
| |
| register `f7`
error: register `vs8` conflicts with register `f8`
--> $DIR/bad-reg.rs:224:31
|
LL | asm!("", out("f8") _, out("vs8") _);
| ----------- ^^^^^^^^^^^^ register `vs8`
| |
| register `f8`
error: register `vs9` conflicts with register `f9`
--> $DIR/bad-reg.rs:226:31
|
LL | asm!("", out("f9") _, out("vs9") _);
| ----------- ^^^^^^^^^^^^ register `vs9`
| |
| register `f9`
error: register `vs10` conflicts with register `f10`
--> $DIR/bad-reg.rs:228:32
|
LL | asm!("", out("f10") _, out("vs10") _);
| ------------ ^^^^^^^^^^^^^ register `vs10`
| |
| register `f10`
error: register `vs11` conflicts with register `f11`
--> $DIR/bad-reg.rs:230:32
|
LL | asm!("", out("f11") _, out("vs11") _);
| ------------ ^^^^^^^^^^^^^ register `vs11`
| |
| register `f11`
error: register `vs12` conflicts with register `f12`
--> $DIR/bad-reg.rs:232:32
|
LL | asm!("", out("f12") _, out("vs12") _);
| ------------ ^^^^^^^^^^^^^ register `vs12`
| |
| register `f12`
error: register `vs13` conflicts with register `f13`
--> $DIR/bad-reg.rs:234:32
|
LL | asm!("", out("f13") _, out("vs13") _);
| ------------ ^^^^^^^^^^^^^ register `vs13`
| |
| register `f13`
error: register `vs14` conflicts with register `f14`
--> $DIR/bad-reg.rs:236:32
|
LL | asm!("", out("f14") _, out("vs14") _);
| ------------ ^^^^^^^^^^^^^ register `vs14`
| |
| register `f14`
error: register `vs15` conflicts with register `f15`
--> $DIR/bad-reg.rs:238:32
|
LL | asm!("", out("f15") _, out("vs15") _);
| ------------ ^^^^^^^^^^^^^ register `vs15`
| |
| register `f15`
error: register `vs16` conflicts with register `f16`
--> $DIR/bad-reg.rs:240:32
|
LL | asm!("", out("f16") _, out("vs16") _);
| ------------ ^^^^^^^^^^^^^ register `vs16`
| |
| register `f16`
error: register `vs17` conflicts with register `f17`
--> $DIR/bad-reg.rs:242:32
|
LL | asm!("", out("f17") _, out("vs17") _);
| ------------ ^^^^^^^^^^^^^ register `vs17`
| |
| register `f17`
error: register `vs18` conflicts with register `f18`
--> $DIR/bad-reg.rs:244:32
|
LL | asm!("", out("f18") _, out("vs18") _);
| ------------ ^^^^^^^^^^^^^ register `vs18`
| |
| register `f18`
error: register `vs19` conflicts with register `f19`
--> $DIR/bad-reg.rs:246:32
|
LL | asm!("", out("f19") _, out("vs19") _);
| ------------ ^^^^^^^^^^^^^ register `vs19`
| |
| register `f19`
error: register `vs20` conflicts with register `f20`
--> $DIR/bad-reg.rs:248:32
|
LL | asm!("", out("f20") _, out("vs20") _);
| ------------ ^^^^^^^^^^^^^ register `vs20`
| |
| register `f20`
error: register `vs21` conflicts with register `f21`
--> $DIR/bad-reg.rs:250:32
|
LL | asm!("", out("f21") _, out("vs21") _);
| ------------ ^^^^^^^^^^^^^ register `vs21`
| |
| register `f21`
error: register `vs22` conflicts with register `f22`
--> $DIR/bad-reg.rs:252:32
|
LL | asm!("", out("f22") _, out("vs22") _);
| ------------ ^^^^^^^^^^^^^ register `vs22`
| |
| register `f22`
error: register `vs23` conflicts with register `f23`
--> $DIR/bad-reg.rs:254:32
|
LL | asm!("", out("f23") _, out("vs23") _);
| ------------ ^^^^^^^^^^^^^ register `vs23`
| |
| register `f23`
error: register `vs24` conflicts with register `f24`
--> $DIR/bad-reg.rs:256:32
|
LL | asm!("", out("f24") _, out("vs24") _);
| ------------ ^^^^^^^^^^^^^ register `vs24`
| |
| register `f24`
error: register `vs25` conflicts with register `f25`
--> $DIR/bad-reg.rs:258:32
|
LL | asm!("", out("f25") _, out("vs25") _);
| ------------ ^^^^^^^^^^^^^ register `vs25`
| |
| register `f25`
error: register `vs26` conflicts with register `f26`
--> $DIR/bad-reg.rs:260:32
|
LL | asm!("", out("f26") _, out("vs26") _);
| ------------ ^^^^^^^^^^^^^ register `vs26`
| |
| register `f26`
error: register `vs27` conflicts with register `f27`
--> $DIR/bad-reg.rs:262:32
|
LL | asm!("", out("f27") _, out("vs27") _);
| ------------ ^^^^^^^^^^^^^ register `vs27`
| |
| register `f27`
error: register `vs28` conflicts with register `f28`
--> $DIR/bad-reg.rs:264:32
|
LL | asm!("", out("f28") _, out("vs28") _);
| ------------ ^^^^^^^^^^^^^ register `vs28`
| |
| register `f28`
error: register `vs29` conflicts with register `f29`
--> $DIR/bad-reg.rs:266:32
|
LL | asm!("", out("f29") _, out("vs29") _);
| ------------ ^^^^^^^^^^^^^ register `vs29`
| |
| register `f29`
error: register `vs30` conflicts with register `f30`
--> $DIR/bad-reg.rs:268:32
|
LL | asm!("", out("f30") _, out("vs30") _);
| ------------ ^^^^^^^^^^^^^ register `vs30`
| |
| register `f30`
error: register `vs31` conflicts with register `f31`
--> $DIR/bad-reg.rs:270:32
|
LL | asm!("", out("f31") _, out("vs31") _);
| ------------ ^^^^^^^^^^^^^ register `vs31`
| |
| register `f31`
error: register `v0` conflicts with register `vs32`
--> $DIR/bad-reg.rs:272:33
|
LL | asm!("", out("vs32") _, out("v0") _);
| ------------- ^^^^^^^^^^^ register `v0`
| |
| register `vs32`
error: register `v1` conflicts with register `vs33`
--> $DIR/bad-reg.rs:274:33
|
LL | asm!("", out("vs33") _, out("v1") _);
| ------------- ^^^^^^^^^^^ register `v1`
| |
| register `vs33`
error: register `v2` conflicts with register `vs34`
--> $DIR/bad-reg.rs:276:33
|
LL | asm!("", out("vs34") _, out("v2") _);
| ------------- ^^^^^^^^^^^ register `v2`
| |
| register `vs34`
error: register `v3` conflicts with register `vs35`
--> $DIR/bad-reg.rs:278:33
|
LL | asm!("", out("vs35") _, out("v3") _);
| ------------- ^^^^^^^^^^^ register `v3`
| |
| register `vs35`
error: register `v4` conflicts with register `vs36`
--> $DIR/bad-reg.rs:280:33
|
LL | asm!("", out("vs36") _, out("v4") _);
| ------------- ^^^^^^^^^^^ register `v4`
| |
| register `vs36`
error: register `v5` conflicts with register `vs37`
--> $DIR/bad-reg.rs:282:33
|
LL | asm!("", out("vs37") _, out("v5") _);
| ------------- ^^^^^^^^^^^ register `v5`
| |
| register `vs37`
error: register `v6` conflicts with register `vs38`
--> $DIR/bad-reg.rs:284:33
|
LL | asm!("", out("vs38") _, out("v6") _);
| ------------- ^^^^^^^^^^^ register `v6`
| |
| register `vs38`
error: register `v7` conflicts with register `vs39`
--> $DIR/bad-reg.rs:286:33
|
LL | asm!("", out("vs39") _, out("v7") _);
| ------------- ^^^^^^^^^^^ register `v7`
| |
| register `vs39`
error: register `v8` conflicts with register `vs40`
--> $DIR/bad-reg.rs:288:33
|
LL | asm!("", out("vs40") _, out("v8") _);
| ------------- ^^^^^^^^^^^ register `v8`
| |
| register `vs40`
error: register `v9` conflicts with register `vs41`
--> $DIR/bad-reg.rs:290:33
|
LL | asm!("", out("vs41") _, out("v9") _);
| ------------- ^^^^^^^^^^^ register `v9`
| |
| register `vs41`
error: register `v10` conflicts with register `vs42`
--> $DIR/bad-reg.rs:292:33
|
LL | asm!("", out("vs42") _, out("v10") _);
| ------------- ^^^^^^^^^^^^ register `v10`
| |
| register `vs42`
error: register `v11` conflicts with register `vs43`
--> $DIR/bad-reg.rs:294:33
|
LL | asm!("", out("vs43") _, out("v11") _);
| ------------- ^^^^^^^^^^^^ register `v11`
| |
| register `vs43`
error: register `v12` conflicts with register `vs44`
--> $DIR/bad-reg.rs:296:33
|
LL | asm!("", out("vs44") _, out("v12") _);
| ------------- ^^^^^^^^^^^^ register `v12`
| |
| register `vs44`
error: register `v13` conflicts with register `vs45`
--> $DIR/bad-reg.rs:298:33
|
LL | asm!("", out("vs45") _, out("v13") _);
| ------------- ^^^^^^^^^^^^ register `v13`
| |
| register `vs45`
error: register `v14` conflicts with register `vs46`
--> $DIR/bad-reg.rs:300:33
|
LL | asm!("", out("vs46") _, out("v14") _);
| ------------- ^^^^^^^^^^^^ register `v14`
| |
| register `vs46`
error: register `v15` conflicts with register `vs47`
--> $DIR/bad-reg.rs:302:33
|
LL | asm!("", out("vs47") _, out("v15") _);
| ------------- ^^^^^^^^^^^^ register `v15`
| |
| register `vs47`
error: register `v16` conflicts with register `vs48`
--> $DIR/bad-reg.rs:304:33
|
LL | asm!("", out("vs48") _, out("v16") _);
| ------------- ^^^^^^^^^^^^ register `v16`
| |
| register `vs48`
error: register `v17` conflicts with register `vs49`
--> $DIR/bad-reg.rs:306:33
|
LL | asm!("", out("vs49") _, out("v17") _);
| ------------- ^^^^^^^^^^^^ register `v17`
| |
| register `vs49`
error: register `v18` conflicts with register `vs50`
--> $DIR/bad-reg.rs:308:33
|
LL | asm!("", out("vs50") _, out("v18") _);
| ------------- ^^^^^^^^^^^^ register `v18`
| |
| register `vs50`
error: register `v19` conflicts with register `vs51`
--> $DIR/bad-reg.rs:310:33
|
LL | asm!("", out("vs51") _, out("v19") _);
| ------------- ^^^^^^^^^^^^ register `v19`
| |
| register `vs51`
error: register `v20` conflicts with register `vs52`
--> $DIR/bad-reg.rs:312:33
|
LL | asm!("", out("vs52") _, out("v20") _);
| ------------- ^^^^^^^^^^^^ register `v20`
| |
| register `vs52`
error: register `v21` conflicts with register `vs53`
--> $DIR/bad-reg.rs:314:33
|
LL | asm!("", out("vs53") _, out("v21") _);
| ------------- ^^^^^^^^^^^^ register `v21`
| |
| register `vs53`
error: register `v22` conflicts with register `vs54`
--> $DIR/bad-reg.rs:316:33
|
LL | asm!("", out("vs54") _, out("v22") _);
| ------------- ^^^^^^^^^^^^ register `v22`
| |
| register `vs54`
error: register `v23` conflicts with register `vs55`
--> $DIR/bad-reg.rs:318:33
|
LL | asm!("", out("vs55") _, out("v23") _);
| ------------- ^^^^^^^^^^^^ register `v23`
| |
| register `vs55`
error: register `v24` conflicts with register `vs56`
--> $DIR/bad-reg.rs:320:33
|
LL | asm!("", out("vs56") _, out("v24") _);
| ------------- ^^^^^^^^^^^^ register `v24`
| |
| register `vs56`
error: register `v25` conflicts with register `vs57`
--> $DIR/bad-reg.rs:322:33
|
LL | asm!("", out("vs57") _, out("v25") _);
| ------------- ^^^^^^^^^^^^ register `v25`
| |
| register `vs57`
error: register `v26` conflicts with register `vs58`
--> $DIR/bad-reg.rs:324:33
|
LL | asm!("", out("vs58") _, out("v26") _);
| ------------- ^^^^^^^^^^^^ register `v26`
| |
| register `vs58`
error: register `v27` conflicts with register `vs59`
--> $DIR/bad-reg.rs:326:33
|
LL | asm!("", out("vs59") _, out("v27") _);
| ------------- ^^^^^^^^^^^^ register `v27`
| |
| register `vs59`
error: register `v28` conflicts with register `vs60`
--> $DIR/bad-reg.rs:328:33
|
LL | asm!("", out("vs60") _, out("v28") _);
| ------------- ^^^^^^^^^^^^ register `v28`
| |
| register `vs60`
error: register `v29` conflicts with register `vs61`
--> $DIR/bad-reg.rs:330:33
|
LL | asm!("", out("vs61") _, out("v29") _);
| ------------- ^^^^^^^^^^^^ register `v29`
| |
| register `vs61`
error: register `v30` conflicts with register `vs62`
--> $DIR/bad-reg.rs:332:33
|
LL | asm!("", out("vs62") _, out("v30") _);
| ------------- ^^^^^^^^^^^^ register `v30`
| |
| register `vs62`
error: register `v31` conflicts with register `vs63`
--> $DIR/bad-reg.rs:334:33
|
LL | asm!("", out("vs63") _, out("v31") _);
| ------------- ^^^^^^^^^^^^ register `v31`
| |
| register `vs63`
error: register class `spe_acc` can only be used as a clobber, not as an input or output
--> $DIR/bad-reg.rs:340:26
|
LL | asm!("/* {} */", out(spe_acc) _);
| ^^^^^^^^^^^^^^
error: cannot use register `r13`: r13 is a reserved register on this target
--> $DIR/bad-reg.rs:42:18
|
LL | asm!("", out("r13") _);
| ^^^^^^^^^^^^
error: cannot use register `r29`: r29 is used internally by LLVM and cannot be used as an operand for inline asm
--> $DIR/bad-reg.rs:44:18
|
LL | asm!("", out("r29") _);
| ^^^^^^^^^^^^
error: register class `vreg` requires at least one of the following target features: altivec, vsx
--> $DIR/bad-reg.rs:55:18
|
LL | asm!("", in("v0") v32x4); // requires altivec
| ^^^^^^^^^^^^^^
error: register class `vreg` requires at least one of the following target features: altivec, vsx
--> $DIR/bad-reg.rs:57:18
|
LL | asm!("", out("v0") v32x4); // requires altivec
| ^^^^^^^^^^^^^^^
error: register class `vreg` requires at least one of the following target features: altivec, vsx
--> $DIR/bad-reg.rs:59:18
|
LL | asm!("", in("v0") v64x2); // requires vsx
| ^^^^^^^^^^^^^^
error: register class `vreg` requires at least one of the following target features: altivec, vsx
--> $DIR/bad-reg.rs:62:18
|
LL | asm!("", out("v0") v64x2); // requires vsx
| ^^^^^^^^^^^^^^^
error: register class `vreg` requires at least one of the following target features: altivec, vsx
--> $DIR/bad-reg.rs:65:18
|
LL | asm!("", in("v0") x); // FIXME: should be ok if vsx is available
| ^^^^^^^^^^
error: register class `vreg` requires at least one of the following target features: altivec, vsx
--> $DIR/bad-reg.rs:68:18
|
LL | asm!("", out("v0") x); // FIXME: should be ok if vsx is available
| ^^^^^^^^^^^
error: register class `vreg` requires at least one of the following target features: altivec, vsx
--> $DIR/bad-reg.rs:71:26
|
LL | asm!("/* {} */", in(vreg) v32x4); // requires altivec
| ^^^^^^^^^^^^^^
error: register class `vreg` requires at least one of the following target features: altivec, vsx
--> $DIR/bad-reg.rs:73:26
|
LL | asm!("/* {} */", in(vreg) v64x2); // requires vsx
| ^^^^^^^^^^^^^^
error: register class `vreg` requires at least one of the following target features: altivec, vsx
--> $DIR/bad-reg.rs:76:26
|
LL | asm!("/* {} */", in(vreg) x); // FIXME: should be ok if vsx is available
| ^^^^^^^^^^
error: register class `vreg` requires at least one of the following target features: altivec, vsx
--> $DIR/bad-reg.rs:79:26
|
LL | asm!("/* {} */", out(vreg) _); // requires altivec
| ^^^^^^^^^^^
error: register class `vsreg` requires the `vsx` target feature
--> $DIR/bad-reg.rs:98:18
|
LL | asm!("", in("vs0") v32x4); // requires vsx
| ^^^^^^^^^^^^^^^
error: register class `vsreg` requires the `vsx` target feature
--> $DIR/bad-reg.rs:100:18
|
LL | asm!("", out("vs0") v32x4); // requires vsx
| ^^^^^^^^^^^^^^^^
error: register class `vsreg` requires the `vsx` target feature
--> $DIR/bad-reg.rs:102:18
|
LL | asm!("", in("vs0") v64x2); // requires vsx
| ^^^^^^^^^^^^^^^
error: register class `vsreg` requires the `vsx` target feature
--> $DIR/bad-reg.rs:104:18
|
LL | asm!("", out("vs0") v64x2); // requires vsx
| ^^^^^^^^^^^^^^^^
error: register class `vsreg` requires the `vsx` target feature
--> $DIR/bad-reg.rs:106:18
|
LL | asm!("", in("vs0") x); // FIXME: should be ok if vsx is available
| ^^^^^^^^^^^
error: register class `vsreg` requires the `vsx` target feature
--> $DIR/bad-reg.rs:109:18
|
LL | asm!("", out("vs0") x); // FIXME: should be ok if vsx is available
| ^^^^^^^^^^^^
error: register class `vsreg` requires the `vsx` target feature
--> $DIR/bad-reg.rs:112:26
|
LL | asm!("/* {} */", in(vsreg) v32x4); // requires vsx
| ^^^^^^^^^^^^^^^
error: register class `vsreg` requires the `vsx` target feature
--> $DIR/bad-reg.rs:114:26
|
LL | asm!("/* {} */", in(vsreg) v64x2); // requires vsx
| ^^^^^^^^^^^^^^^
error: register class `vsreg` requires the `vsx` target feature
--> $DIR/bad-reg.rs:116:26
|
LL | asm!("/* {} */", in(vsreg) x); // FIXME: should be ok if vsx is available
| ^^^^^^^^^^^
error: register class `vsreg` requires the `vsx` target feature
--> $DIR/bad-reg.rs:119:26
|
LL | asm!("/* {} */", out(vsreg) _); // requires vsx
| ^^^^^^^^^^^^
error: type `i32` cannot be used with this register class
--> $DIR/bad-reg.rs:139:27
|
LL | asm!("", in("cr") x);
| ^
|
= note: register class `cr` supports these types:
error: type `i32` cannot be used with this register class
--> $DIR/bad-reg.rs:142:28
|
LL | asm!("", out("cr") x);
| ^
|
= note: register class `cr` supports these types:
error: type `i32` cannot be used with this register class
--> $DIR/bad-reg.rs:145:33
|
LL | asm!("/* {} */", in(cr) x);
| ^
|
= note: register class `cr` supports these types:
error: type `i32` cannot be used with this register class
--> $DIR/bad-reg.rs:152:28
|
LL | asm!("", in("ctr") x);
| ^
|
= note: register class `ctr` supports these types:
error: type `i32` cannot be used with this register class
--> $DIR/bad-reg.rs:155:29
|
LL | asm!("", out("ctr") x);
| ^
|
= note: register class `ctr` supports these types:
error: type `i32` cannot be used with this register class
--> $DIR/bad-reg.rs:158:34
|
LL | asm!("/* {} */", in(ctr) x);
| ^
|
= note: register class `ctr` supports these types:
error: type `i32` cannot be used with this register class
--> $DIR/bad-reg.rs:165:27
|
LL | asm!("", in("lr") x);
| ^
|
= note: register class `lr` supports these types:
error: type `i32` cannot be used with this register class
--> $DIR/bad-reg.rs:168:28
|
LL | asm!("", out("lr") x);
| ^
|
= note: register class `lr` supports these types:
error: type `i32` cannot be used with this register class
--> $DIR/bad-reg.rs:171:33
|
LL | asm!("/* {} */", in(lr) x);
| ^
|
= note: register class `lr` supports these types:
error: type `i32` cannot be used with this register class
--> $DIR/bad-reg.rs:178:28
|
LL | asm!("", in("xer") x);
| ^
|
= note: register class `xer` supports these types:
error: type `i32` cannot be used with this register class
--> $DIR/bad-reg.rs:181:29
|
LL | asm!("", out("xer") x);
| ^
|
= note: register class `xer` supports these types:
error: type `i32` cannot be used with this register class
--> $DIR/bad-reg.rs:184:34
|
LL | asm!("/* {} */", in(xer) x);
| ^
|
= note: register class `xer` supports these types:
error: aborting due to 128 previous errors

View file

@ -1,5 +1,5 @@
//@ add-minicore
//@ revisions: powerpc powerpc64 powerpc64le aix64
//@ revisions: powerpc powerpc64 powerpc64le aix64 powerpcspe
//@[powerpc] compile-flags: --target powerpc-unknown-linux-gnu
//@[powerpc] needs-llvm-components: powerpc
//@[powerpc64] compile-flags: --target powerpc64-unknown-linux-gnu
@ -8,6 +8,8 @@
//@[powerpc64le] needs-llvm-components: powerpc
//@[aix64] compile-flags: --target powerpc64-ibm-aix
//@[aix64] needs-llvm-components: powerpc
//@[powerpcspe] compile-flags: --target powerpc-unknown-linux-gnuspe
//@[powerpcspe] needs-llvm-components: powerpc
//@ ignore-backends: gcc
// ignore-tidy-linelength
@ -40,7 +42,7 @@ fn f() {
asm!("", out("r13") _);
//~^ ERROR cannot use register `r13`: r13 is a reserved register on this target
asm!("", out("r29") _);
//[powerpc]~^ ERROR cannot use register `r29`: r29 is used internally by LLVM and cannot be used as an operand for inline asm
//[powerpc,powerpcspe]~^ ERROR cannot use register `r29`: r29 is used internally by LLVM and cannot be used as an operand for inline asm
asm!("", out("r30") _);
//~^ ERROR invalid register `r30`: r30 is used internally by LLVM and cannot be used as an operand for inline asm
asm!("", out("fp") _);
@ -51,31 +53,31 @@ fn f() {
// vreg
asm!("", out("v0") _); // always ok
asm!("", in("v0") v32x4); // requires altivec
//[powerpc]~^ ERROR register class `vreg` requires at least one of the following target features: altivec, vsx
//[powerpc,powerpcspe]~^ ERROR register class `vreg` requires at least one of the following target features: altivec, vsx
asm!("", out("v0") v32x4); // requires altivec
//[powerpc]~^ ERROR register class `vreg` requires at least one of the following target features: altivec, vsx
//[powerpc,powerpcspe]~^ ERROR register class `vreg` requires at least one of the following target features: altivec, vsx
asm!("", in("v0") v64x2); // requires vsx
//[powerpc]~^ ERROR register class `vreg` requires at least one of the following target features: altivec, vsx
//[powerpc,powerpcspe]~^ ERROR register class `vreg` requires at least one of the following target features: altivec, vsx
//[powerpc64]~^^ ERROR `vsx` target feature is not enabled
asm!("", out("v0") v64x2); // requires vsx
//[powerpc]~^ ERROR register class `vreg` requires at least one of the following target features: altivec, vsx
//[powerpc,powerpcspe]~^ ERROR register class `vreg` requires at least one of the following target features: altivec, vsx
//[powerpc64]~^^ ERROR `vsx` target feature is not enabled
asm!("", in("v0") x); // FIXME: should be ok if vsx is available
//[powerpc]~^ ERROR register class `vreg` requires at least one of the following target features: altivec, vsx
//[powerpc,powerpcspe]~^ ERROR register class `vreg` requires at least one of the following target features: altivec, vsx
//[powerpc64,powerpc64le,aix64]~^^ ERROR type `i32` cannot be used with this register class
asm!("", out("v0") x); // FIXME: should be ok if vsx is available
//[powerpc]~^ ERROR register class `vreg` requires at least one of the following target features: altivec, vsx
//[powerpc,powerpcspe]~^ ERROR register class `vreg` requires at least one of the following target features: altivec, vsx
//[powerpc64,powerpc64le,aix64]~^^ ERROR type `i32` cannot be used with this register class
asm!("/* {} */", in(vreg) v32x4); // requires altivec
//[powerpc]~^ ERROR register class `vreg` requires at least one of the following target features: altivec, vsx
//[powerpc,powerpcspe]~^ ERROR register class `vreg` requires at least one of the following target features: altivec, vsx
asm!("/* {} */", in(vreg) v64x2); // requires vsx
//[powerpc]~^ ERROR register class `vreg` requires at least one of the following target features: altivec, vsx
//[powerpc,powerpcspe]~^ ERROR register class `vreg` requires at least one of the following target features: altivec, vsx
//[powerpc64]~^^ ERROR `vsx` target feature is not enabled
asm!("/* {} */", in(vreg) x); // FIXME: should be ok if vsx is available
//[powerpc]~^ ERROR register class `vreg` requires at least one of the following target features: altivec, vsx
//[powerpc,powerpcspe]~^ ERROR register class `vreg` requires at least one of the following target features: altivec, vsx
//[powerpc64,powerpc64le,aix64]~^^ ERROR type `i32` cannot be used with this register class
asm!("/* {} */", out(vreg) _); // requires altivec
//[powerpc]~^ ERROR register class `vreg` requires at least one of the following target features: altivec, vsx
//[powerpc,powerpcspe]~^ ERROR register class `vreg` requires at least one of the following target features: altivec, vsx
// v20-v31 (vs52-vs63) are reserved on AIX with vec-default ABI (this ABI is not currently used in Rust's builtin AIX targets).
asm!("", out("v20") _);
asm!("", out("v21") _);
@ -94,28 +96,28 @@ fn f() {
// vsreg
asm!("", out("vs0") _); // always ok
asm!("", in("vs0") v32x4); // requires vsx
//[powerpc,powerpc64]~^ ERROR register class `vsreg` requires the `vsx` target feature
//[powerpc,powerpcspe,powerpc64]~^ ERROR register class `vsreg` requires the `vsx` target feature
asm!("", out("vs0") v32x4); // requires vsx
//[powerpc,powerpc64]~^ ERROR register class `vsreg` requires the `vsx` target feature
//[powerpc,powerpcspe,powerpc64]~^ ERROR register class `vsreg` requires the `vsx` target feature
asm!("", in("vs0") v64x2); // requires vsx
//[powerpc,powerpc64]~^ ERROR register class `vsreg` requires the `vsx` target feature
//[powerpc,powerpcspe,powerpc64]~^ ERROR register class `vsreg` requires the `vsx` target feature
asm!("", out("vs0") v64x2); // requires vsx
//[powerpc,powerpc64]~^ ERROR register class `vsreg` requires the `vsx` target feature
//[powerpc,powerpcspe,powerpc64]~^ ERROR register class `vsreg` requires the `vsx` target feature
asm!("", in("vs0") x); // FIXME: should be ok if vsx is available
//[powerpc,powerpc64]~^ ERROR register class `vsreg` requires the `vsx` target feature
//[powerpc,powerpcspe,powerpc64]~^ ERROR register class `vsreg` requires the `vsx` target feature
//[powerpc64le,aix64]~^^ ERROR type `i32` cannot be used with this register class
asm!("", out("vs0") x); // FIXME: should be ok if vsx is available
//[powerpc,powerpc64]~^ ERROR register class `vsreg` requires the `vsx` target feature
//[powerpc,powerpcspe,powerpc64]~^ ERROR register class `vsreg` requires the `vsx` target feature
//[powerpc64le,aix64]~^^ ERROR type `i32` cannot be used with this register class
asm!("/* {} */", in(vsreg) v32x4); // requires vsx
//[powerpc,powerpc64]~^ ERROR register class `vsreg` requires the `vsx` target feature
//[powerpc,powerpcspe,powerpc64]~^ ERROR register class `vsreg` requires the `vsx` target feature
asm!("/* {} */", in(vsreg) v64x2); // requires vsx
//[powerpc,powerpc64]~^ ERROR register class `vsreg` requires the `vsx` target feature
//[powerpc,powerpcspe,powerpc64]~^ ERROR register class `vsreg` requires the `vsx` target feature
asm!("/* {} */", in(vsreg) x); // FIXME: should be ok if vsx is available
//[powerpc,powerpc64]~^ ERROR register class `vsreg` requires the `vsx` target feature
//[powerpc,powerpcspe,powerpc64]~^ ERROR register class `vsreg` requires the `vsx` target feature
//[powerpc64le,aix64]~^^ ERROR type `i32` cannot be used with this register class
asm!("/* {} */", out(vsreg) _); // requires vsx
//[powerpc,powerpc64]~^ ERROR register class `vsreg` requires the `vsx` target feature
//[powerpc,powerpcspe,powerpc64]~^ ERROR register class `vsreg` requires the `vsx` target feature
// v20-v31 (vs52-vs63) are reserved on AIX with vec-default ABI (this ABI is not currently used in Rust's builtin AIX targets).
asm!("", out("vs52") _);
@ -331,5 +333,11 @@ fn f() {
//~^ ERROR register `v30` conflicts with register `vs62`
asm!("", out("vs63") _, out("v31") _);
//~^ ERROR register `v31` conflicts with register `vs63`
// powerpc-*spe target specific tests
asm!("", out("spe_acc") _);
//[aix64,powerpc,powerpc64,powerpc64le]~^ ERROR cannot use register `spe_acc`: spe_acc is only available on spe targets
asm!("/* {} */", out(spe_acc) _);
//~^ ERROR can only be used as a clobber
}
}