|
1 |
| -use super::{InlineAsmArch, InlineAsmType}; |
| 1 | +use super::{InlineAsmArch, InlineAsmType, ModifierInfo}; |
2 | 2 | use crate::spec::{RelocModel, Target};
|
3 | 3 | use rustc_data_structures::fx::FxIndexSet;
|
4 | 4 | use rustc_macros::HashStable_Generic;
|
@@ -27,32 +27,28 @@ impl AArch64InlineAsmRegClass {
|
27 | 27 | None
|
28 | 28 | }
|
29 | 29 |
|
30 |
| - pub fn suggest_modifier( |
31 |
| - self, |
32 |
| - _arch: InlineAsmArch, |
33 |
| - ty: InlineAsmType, |
34 |
| - ) -> Option<(char, &'static str)> { |
| 30 | + pub fn suggest_modifier(self, _arch: InlineAsmArch, ty: InlineAsmType) -> Option<ModifierInfo> { |
35 | 31 | match self {
|
36 | 32 | Self::reg => match ty.size().bits() {
|
37 | 33 | 64 => None,
|
38 |
| - _ => Some(('w', "w0")), |
| 34 | + _ => Some(('w', "w0", 32).into()), |
39 | 35 | },
|
40 | 36 | Self::vreg | Self::vreg_low16 => match ty.size().bits() {
|
41 |
| - 8 => Some(('b', "b0")), |
42 |
| - 16 => Some(('h', "h0")), |
43 |
| - 32 => Some(('s', "s0")), |
44 |
| - 64 => Some(('d', "d0")), |
45 |
| - 128 => Some(('q', "q0")), |
| 37 | + 8 => Some(('b', "b0", 8).into()), |
| 38 | + 16 => Some(('h', "h0", 16).into()), |
| 39 | + 32 => Some(('s', "s0", 32).into()), |
| 40 | + 64 => Some(('d', "d0", 64).into()), |
| 41 | + 128 => Some(('q', "q0", 128).into()), |
46 | 42 | _ => None,
|
47 | 43 | },
|
48 | 44 | Self::preg => None,
|
49 | 45 | }
|
50 | 46 | }
|
51 | 47 |
|
52 |
| - pub fn default_modifier(self, _arch: InlineAsmArch) -> Option<(char, &'static str)> { |
| 48 | + pub fn default_modifier(self, _arch: InlineAsmArch) -> Option<ModifierInfo> { |
53 | 49 | match self {
|
54 |
| - Self::reg => Some(('x', "x0")), |
55 |
| - Self::vreg | Self::vreg_low16 => Some(('v', "v0")), |
| 50 | + Self::reg => Some(('x', "x0", 64).into()), |
| 51 | + Self::vreg | Self::vreg_low16 => Some(('v', "v0", 128).into()), |
56 | 52 | Self::preg => None,
|
57 | 53 | }
|
58 | 54 | }
|
|
0 commit comments