Skip to content

Commit 05cd587

Browse files
committed
Refactor: disabled frame pointer; consolidated unsupported register errors; added register prefix
1 parent 0c9e23c commit 05cd587

File tree

1 file changed

+18
-68
lines changed

1 file changed

+18
-68
lines changed

compiler/rustc_target/src/asm/s390x.rs

Lines changed: 18 additions & 68 deletions
Original file line numberDiff line numberDiff line change
@@ -54,8 +54,8 @@ def_regs! {
5454
r8: reg = ["r8"],
5555
r9: reg = ["r9"],
5656
r10: reg = ["r10"],
57-
r11: reg = ["r11"],
5857
r12: reg = ["r12"],
58+
r13: reg = ["r13"],
5959
r14: reg = ["r14"],
6060
f0: freg = ["f0"],
6161
f1: freg = ["f1"],
@@ -73,74 +73,24 @@ def_regs! {
7373
f13: freg = ["f13"],
7474
f14: freg = ["f14"],
7575
f15: freg = ["f15"],
76-
#error = ["r13"] =>
77-
"The base pointer cannot be used as an operand for inline asm",
76+
#error = ["r11"] =>
77+
"The frame pointer cannot be used as an operand for inline asm",
7878
#error = ["r15"] =>
7979
"The stack pointer cannot be used as an operand for inline asm",
80-
#error = ["a0"] =>
81-
"This pointer is reserved on s390x and cannot be used as an operand for inline asm",
82-
#error = ["a1"] =>
83-
"This pointer is reserved on z/Arch and cannot be used as an operand for inline asm",
84-
#error = ["c0"] =>
85-
"c0 is reserved by the kernel and cannot be used as an operand for inline asm",
86-
#error = ["c1"] =>
87-
"c1 is reserved by the kernel and cannot be used as an operand for inline asm",
88-
#error = ["c2"] =>
89-
"c2 is reserved by the kernel and cannot be used as an operand for inline asm",
90-
#error = ["c3"] =>
91-
"c3 is reserved by the kernel and cannot be used as an operand for inline asm",
92-
#error = ["c4"] =>
93-
"c4 is reserved by the kernel and cannot be used as an operand for inline asm",
94-
#error = ["c5"] =>
95-
"c5 is reserved by the kernel and cannot be used as an operand for inline asm",
96-
#error = ["c6"] =>
97-
"c6 is reserved by the kernel and cannot be used as an operand for inline asm",
98-
#error = ["c7"] =>
99-
"c7 is reserved by the kernel and cannot be used as an operand for inline asm",
100-
#error = ["c8"] =>
101-
"c8 is reserved by the kernel and cannot be used as an operand for inline asm",
102-
#error = ["c9"] =>
103-
"c9 is reserved by the kernel and cannot be used as an operand for inline asm",
104-
#error = ["c10"] =>
105-
"c10 is reserved by the kernel and cannot be used as an operand for inline asm",
106-
#error = ["c11"] =>
107-
"c11 is reserved by the kernel and cannot be used as an operand for inline asm",
108-
#error = ["c12"] =>
109-
"c12 is reserved by the kernel and cannot be used as an operand for inline asm",
110-
#error = ["c13"] =>
111-
"c13 is reserved by the kernel and cannot be used as an operand for inline asm",
112-
#error = ["c14"] =>
113-
"c14 is reserved by the kernel and cannot be used as an operand for inline asm",
114-
#error = ["c15"] =>
115-
"c15 is reserved by the kernel and cannot be used as an operand for inline asm",
116-
#error = ["a2"] =>
117-
"a2 is not supported by LLVM and cannot be used as an operand for inline asm",
118-
#error = ["a3"] =>
119-
"a3 is not supported by LLVM and cannot be used as an operand for inline asm",
120-
#error = ["a4"] =>
121-
"a4 is not supported by LLVM and cannot be used as an operand for inline asm",
122-
#error = ["a5"] =>
123-
"a5 is not supported by LLVM and cannot be used as an operand for inline asm",
124-
#error = ["a6"] =>
125-
"a6 is not supported by LLVM and cannot be used as an operand for inline asm",
126-
#error = ["a7"] =>
127-
"a7 is not supported by LLVM and cannot be used as an operand for inline asm",
128-
#error = ["a8"] =>
129-
"a8 is not supported by LLVM and cannot be used as an operand for inline asm",
130-
#error = ["a9"] =>
131-
"a9 is not supported by LLVM and cannot be used as an operand for inline asm",
132-
#error = ["a10"] =>
133-
"a10 is not supported by LLVM and cannot be used as an operand for inline asm",
134-
#error = ["a11"] =>
135-
"a11 is not supported by LLVM and cannot be used as an operand for inline asm",
136-
#error = ["a12"] =>
137-
"a12 is not supported by LLVM and cannot be used as an operand for inline asm",
138-
#error = ["a13"] =>
139-
"a13 is not supported by LLVM and cannot be used as an operand for inline asm",
140-
#error = ["a14"] =>
141-
"a14 is not supported by LLVM and cannot be used as an operand for inline asm",
142-
#error = ["a15"] =>
143-
"a15 is not supported by LLVM and cannot be used as an operand for inline asm",
80+
#error = [
81+
"c0", "c1", "c2", "c3",
82+
"c4", "c5", "c6", "c7",
83+
"c8", "c9", "c10", "c11",
84+
"c12", "c13", "c14", "c15"
85+
] =>
86+
"control registers are reserved by the kernel and cannot be used as operands for inline asm",
87+
#error = [
88+
"a0", "a1", "a2", "a3",
89+
"a4", "a5", "a6", "a7",
90+
"a8", "a9", "a10", "a11",
91+
"a12", "a13", "a14", "a15"
92+
] =>
93+
"access registers are not supported and cannot be used as operands for inline asm",
14494
}
14595
}
14696

@@ -151,6 +101,6 @@ impl S390xInlineAsmReg {
151101
_arch: InlineAsmArch,
152102
_modifier: Option<char>,
153103
) -> fmt::Result {
154-
out.write_str(self.name())
104+
out.write_str(&format!("%{}", self.name()))
155105
}
156106
}

0 commit comments

Comments
 (0)