Mark RISC-V vector state as clobbered in inline assembly
This commit is contained in:
parent
e9fb7bada1
commit
2f4612260d
2 changed files with 9 additions and 1 deletions
|
@ -302,7 +302,14 @@ impl AsmBuilderMethods<'tcx> for Builder<'a, 'll, 'tcx> {
|
|||
"~{flags}".to_string(),
|
||||
]);
|
||||
}
|
||||
InlineAsmArch::RiscV32 | InlineAsmArch::RiscV64 => {}
|
||||
InlineAsmArch::RiscV32 | InlineAsmArch::RiscV64 => {
|
||||
constraints.extend_from_slice(&[
|
||||
"~{vtype}".to_string(),
|
||||
"~{vl}".to_string(),
|
||||
"~{vxsat}".to_string(),
|
||||
"~{vxrm}".to_string(),
|
||||
]);
|
||||
}
|
||||
InlineAsmArch::Nvptx64 => {}
|
||||
InlineAsmArch::PowerPC | InlineAsmArch::PowerPC64 => {}
|
||||
InlineAsmArch::Hexagon => {}
|
||||
|
|
|
@ -842,6 +842,7 @@ The compiler performs some additional checks on options:
|
|||
- Floating-point status (`FPSR` register).
|
||||
- RISC-V
|
||||
- Floating-point exception flags in `fcsr` (`fflags`).
|
||||
- Vector extension state (`vtype`, `vl`, `vcsr`).
|
||||
- On x86, the direction flag (DF in `EFLAGS`) is clear on entry to an asm block and must be clear on exit.
|
||||
- Behavior is undefined if the direction flag is set on exiting an asm block.
|
||||
- The requirement of restoring the stack pointer and non-output registers to their original value only applies when exiting an `asm!` block.
|
||||
|
|
Loading…
Add table
Reference in a new issue