Skip to content

Commit a4de8af

Browse files
committed
Mark xer as clobbered in powerpc/powerpc64 syscalls
1 parent 5245b81 commit a4de8af

File tree

2 files changed

+52
-0
lines changed

2 files changed

+52
-0
lines changed

src/backend/linux_raw/arch/powerpc.rs

Lines changed: 26 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -34,6 +34,8 @@ pub(in crate::backend) unsafe fn syscall0_readonly(nr: SyscallNumber<'_>) -> Ret
3434
lateout("r11") _,
3535
lateout("r12") _,
3636
lateout("cr0") _,
37+
// lateout("ctr") _, // TODO: https://github.com/rust-lang/rust/pull/146831
38+
lateout("xer") _,
3739
options(nostack, preserves_flags, readonly)
3840
);
3941
FromAsm::from_asm(r0)
@@ -59,6 +61,8 @@ pub(in crate::backend) unsafe fn syscall1(nr: SyscallNumber<'_>, a0: ArgReg<'_,
5961
lateout("r11") _,
6062
lateout("r12") _,
6163
lateout("cr0") _,
64+
// lateout("ctr") _, // TODO: https://github.com/rust-lang/rust/pull/146831
65+
lateout("xer") _,
6266
options(nostack, preserves_flags)
6367
);
6468
FromAsm::from_asm(r0)
@@ -87,6 +91,8 @@ pub(in crate::backend) unsafe fn syscall1_readonly(
8791
lateout("r11") _,
8892
lateout("r12") _,
8993
lateout("cr0") _,
94+
// lateout("ctr") _, // TODO: https://github.com/rust-lang/rust/pull/146831
95+
lateout("xer") _,
9096
options(nostack, preserves_flags, readonly)
9197
);
9298
FromAsm::from_asm(r0)
@@ -127,6 +133,8 @@ pub(in crate::backend) unsafe fn syscall2(
127133
lateout("r11") _,
128134
lateout("r12") _,
129135
lateout("cr0") _,
136+
// lateout("ctr") _, // TODO: https://github.com/rust-lang/rust/pull/146831
137+
lateout("xer") _,
130138
options(nostack, preserves_flags)
131139
);
132140
FromAsm::from_asm(r0)
@@ -156,6 +164,8 @@ pub(in crate::backend) unsafe fn syscall2_readonly(
156164
lateout("r11") _,
157165
lateout("r12") _,
158166
lateout("cr0") _,
167+
// lateout("ctr") _, // TODO: https://github.com/rust-lang/rust/pull/146831
168+
lateout("xer") _,
159169
options(nostack, preserves_flags, readonly)
160170
);
161171
FromAsm::from_asm(r0)
@@ -186,6 +196,8 @@ pub(in crate::backend) unsafe fn syscall3(
186196
lateout("r11") _,
187197
lateout("r12") _,
188198
lateout("cr0") _,
199+
// lateout("ctr") _, // TODO: https://github.com/rust-lang/rust/pull/146831
200+
lateout("xer") _,
189201
options(nostack, preserves_flags)
190202
);
191203
FromAsm::from_asm(r0)
@@ -216,6 +228,8 @@ pub(in crate::backend) unsafe fn syscall3_readonly(
216228
lateout("r11") _,
217229
lateout("r12") _,
218230
lateout("cr0") _,
231+
// lateout("ctr") _, // TODO: https://github.com/rust-lang/rust/pull/146831
232+
lateout("xer") _,
219233
options(nostack, preserves_flags, readonly)
220234
);
221235
FromAsm::from_asm(r0)
@@ -247,6 +261,8 @@ pub(in crate::backend) unsafe fn syscall4(
247261
lateout("r11") _,
248262
lateout("r12") _,
249263
lateout("cr0") _,
264+
// lateout("ctr") _, // TODO: https://github.com/rust-lang/rust/pull/146831
265+
lateout("xer") _,
250266
options(nostack, preserves_flags)
251267
);
252268
FromAsm::from_asm(r0)
@@ -278,6 +294,8 @@ pub(in crate::backend) unsafe fn syscall4_readonly(
278294
lateout("r11") _,
279295
lateout("r12") _,
280296
lateout("cr0") _,
297+
// lateout("ctr") _, // TODO: https://github.com/rust-lang/rust/pull/146831
298+
lateout("xer") _,
281299
options(nostack, preserves_flags, readonly)
282300
);
283301
FromAsm::from_asm(r0)
@@ -310,6 +328,8 @@ pub(in crate::backend) unsafe fn syscall5(
310328
lateout("r11") _,
311329
lateout("r12") _,
312330
lateout("cr0") _,
331+
// lateout("ctr") _, // TODO: https://github.com/rust-lang/rust/pull/146831
332+
lateout("xer") _,
313333
options(nostack, preserves_flags)
314334
);
315335
FromAsm::from_asm(r0)
@@ -342,6 +362,8 @@ pub(in crate::backend) unsafe fn syscall5_readonly(
342362
lateout("r11") _,
343363
lateout("r12") _,
344364
lateout("cr0") _,
365+
// lateout("ctr") _, // TODO: https://github.com/rust-lang/rust/pull/146831
366+
lateout("xer") _,
345367
options(nostack, preserves_flags, readonly)
346368
);
347369
FromAsm::from_asm(r0)
@@ -375,6 +397,8 @@ pub(in crate::backend) unsafe fn syscall6(
375397
lateout("r11") _,
376398
lateout("r12") _,
377399
lateout("cr0") _,
400+
// lateout("ctr") _, // TODO: https://github.com/rust-lang/rust/pull/146831
401+
lateout("xer") _,
378402
options(nostack, preserves_flags)
379403
);
380404
FromAsm::from_asm(r0)
@@ -408,6 +432,8 @@ pub(in crate::backend) unsafe fn syscall6_readonly(
408432
lateout("r11") _,
409433
lateout("r12") _,
410434
lateout("cr0") _,
435+
// lateout("ctr") _, // TODO: https://github.com/rust-lang/rust/pull/146831
436+
lateout("xer") _,
411437
options(nostack, preserves_flags, readonly)
412438
);
413439
FromAsm::from_asm(r0)

src/backend/linux_raw/arch/powerpc64.rs

Lines changed: 26 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -34,6 +34,8 @@ pub(in crate::backend) unsafe fn syscall0_readonly(nr: SyscallNumber<'_>) -> Ret
3434
lateout("r11") _,
3535
lateout("r12") _,
3636
lateout("cr0") _,
37+
// lateout("ctr") _, // TODO: https://github.com/rust-lang/rust/pull/146831
38+
lateout("xer") _,
3739
options(nostack, preserves_flags, readonly)
3840
);
3941
FromAsm::from_asm(r0)
@@ -59,6 +61,8 @@ pub(in crate::backend) unsafe fn syscall1(nr: SyscallNumber<'_>, a0: ArgReg<'_,
5961
lateout("r11") _,
6062
lateout("r12") _,
6163
lateout("cr0") _,
64+
// lateout("ctr") _, // TODO: https://github.com/rust-lang/rust/pull/146831
65+
lateout("xer") _,
6266
options(nostack, preserves_flags)
6367
);
6468
FromAsm::from_asm(r0)
@@ -87,6 +91,8 @@ pub(in crate::backend) unsafe fn syscall1_readonly(
8791
lateout("r11") _,
8892
lateout("r12") _,
8993
lateout("cr0") _,
94+
// lateout("ctr") _, // TODO: https://github.com/rust-lang/rust/pull/146831
95+
lateout("xer") _,
9096
options(nostack, preserves_flags, readonly)
9197
);
9298
FromAsm::from_asm(r0)
@@ -127,6 +133,8 @@ pub(in crate::backend) unsafe fn syscall2(
127133
lateout("r11") _,
128134
lateout("r12") _,
129135
lateout("cr0") _,
136+
// lateout("ctr") _, // TODO: https://github.com/rust-lang/rust/pull/146831
137+
lateout("xer") _,
130138
options(nostack, preserves_flags)
131139
);
132140
FromAsm::from_asm(r0)
@@ -156,6 +164,8 @@ pub(in crate::backend) unsafe fn syscall2_readonly(
156164
lateout("r11") _,
157165
lateout("r12") _,
158166
lateout("cr0") _,
167+
// lateout("ctr") _, // TODO: https://github.com/rust-lang/rust/pull/146831
168+
lateout("xer") _,
159169
options(nostack, preserves_flags, readonly)
160170
);
161171
FromAsm::from_asm(r0)
@@ -186,6 +196,8 @@ pub(in crate::backend) unsafe fn syscall3(
186196
lateout("r11") _,
187197
lateout("r12") _,
188198
lateout("cr0") _,
199+
// lateout("ctr") _, // TODO: https://github.com/rust-lang/rust/pull/146831
200+
lateout("xer") _,
189201
options(nostack, preserves_flags)
190202
);
191203
FromAsm::from_asm(r0)
@@ -216,6 +228,8 @@ pub(in crate::backend) unsafe fn syscall3_readonly(
216228
lateout("r11") _,
217229
lateout("r12") _,
218230
lateout("cr0") _,
231+
// lateout("ctr") _, // TODO: https://github.com/rust-lang/rust/pull/146831
232+
lateout("xer") _,
219233
options(nostack, preserves_flags, readonly)
220234
);
221235
FromAsm::from_asm(r0)
@@ -247,6 +261,8 @@ pub(in crate::backend) unsafe fn syscall4(
247261
lateout("r11") _,
248262
lateout("r12") _,
249263
lateout("cr0") _,
264+
// lateout("ctr") _, // TODO: https://github.com/rust-lang/rust/pull/146831
265+
lateout("xer") _,
250266
options(nostack, preserves_flags)
251267
);
252268
FromAsm::from_asm(r0)
@@ -278,6 +294,8 @@ pub(in crate::backend) unsafe fn syscall4_readonly(
278294
lateout("r11") _,
279295
lateout("r12") _,
280296
lateout("cr0") _,
297+
// lateout("ctr") _, // TODO: https://github.com/rust-lang/rust/pull/146831
298+
lateout("xer") _,
281299
options(nostack, preserves_flags, readonly)
282300
);
283301
FromAsm::from_asm(r0)
@@ -310,6 +328,8 @@ pub(in crate::backend) unsafe fn syscall5(
310328
lateout("r11") _,
311329
lateout("r12") _,
312330
lateout("cr0") _,
331+
// lateout("ctr") _, // TODO: https://github.com/rust-lang/rust/pull/146831
332+
lateout("xer") _,
313333
options(nostack, preserves_flags)
314334
);
315335
FromAsm::from_asm(r0)
@@ -342,6 +362,8 @@ pub(in crate::backend) unsafe fn syscall5_readonly(
342362
lateout("r11") _,
343363
lateout("r12") _,
344364
lateout("cr0") _,
365+
// lateout("ctr") _, // TODO: https://github.com/rust-lang/rust/pull/146831
366+
lateout("xer") _,
345367
options(nostack, preserves_flags, readonly)
346368
);
347369
FromAsm::from_asm(r0)
@@ -375,6 +397,8 @@ pub(in crate::backend) unsafe fn syscall6(
375397
lateout("r11") _,
376398
lateout("r12") _,
377399
lateout("cr0") _,
400+
// lateout("ctr") _, // TODO: https://github.com/rust-lang/rust/pull/146831
401+
lateout("xer") _,
378402
options(nostack, preserves_flags)
379403
);
380404
FromAsm::from_asm(r0)
@@ -408,6 +432,8 @@ pub(in crate::backend) unsafe fn syscall6_readonly(
408432
lateout("r11") _,
409433
lateout("r12") _,
410434
lateout("cr0") _,
435+
// lateout("ctr") _, // TODO: https://github.com/rust-lang/rust/pull/146831
436+
lateout("xer") _,
411437
options(nostack, preserves_flags, readonly)
412438
);
413439
FromAsm::from_asm(r0)

0 commit comments

Comments
 (0)