diff options
| author | Trevor Gross <tmgross@umich.edu> | 2025-06-08 17:13:18 +0000 |
|---|---|---|
| committer | Trevor Gross <tmgross@umich.edu> | 2025-06-09 04:46:54 +0000 |
| commit | f131c2fa47a743e3822d28b24ba7709f60b0cbc5 (patch) | |
| tree | 4925717c6228598447b3d5dc120fb0c478c324e1 | |
| parent | 58bef69b81fb78a4edf2e289d4e7d74effb9aebf (diff) | |
| download | rust-f131c2fa47a743e3822d28b24ba7709f60b0cbc5.tar.gz rust-f131c2fa47a743e3822d28b24ba7709f60b0cbc5.zip | |
compiler-builtins: Specify `:r` registers for `usize`
On the ILP32 `x86_64-unknown-linux-gnux32` target, `usize` is 32 bits so there is a sub-register alignment warning. Specify the 64-bit `r` registers, which matches the current default as well as the size of the other operands in the routines.
| -rw-r--r-- | library/compiler-builtins/compiler-builtins/src/mem/x86_64.rs | 6 |
1 files changed, 3 insertions, 3 deletions
diff --git a/library/compiler-builtins/compiler-builtins/src/mem/x86_64.rs b/library/compiler-builtins/compiler-builtins/src/mem/x86_64.rs index 5cbe83ab1e2..fb29eb11b23 100644 --- a/library/compiler-builtins/compiler-builtins/src/mem/x86_64.rs +++ b/library/compiler-builtins/compiler-builtins/src/mem/x86_64.rs @@ -69,7 +69,7 @@ pub unsafe fn copy_backward(dest: *mut u8, src: *const u8, count: usize) { "rep movsb", "sub $7, %rsi", "sub $7, %rdi", - "mov {qword_count}, %rcx", + "mov {qword_count:r}, %rcx", "rep movsq", "test {pre_byte_count:e}, {pre_byte_count:e}", "add $7, %rsi", @@ -212,7 +212,7 @@ pub unsafe fn c_string_length(mut s: *const core::ffi::c_char) -> usize { let x = { let r; asm!( - "movdqa ({addr}), {dest}", + "movdqa ({addr:r}), {dest}", addr = in(reg) s, dest = out(xmm_reg) r, options(att_syntax, nostack), @@ -232,7 +232,7 @@ pub unsafe fn c_string_length(mut s: *const core::ffi::c_char) -> usize { let x = { let r; asm!( - "movdqa ({addr}), {dest}", + "movdqa ({addr:r}), {dest}", addr = in(reg) s, dest = out(xmm_reg) r, options(att_syntax, nostack), |
