- 
                Notifications
    You must be signed in to change notification settings 
- Fork 559
RISC-V: Add vector state registers #2005
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
          
     Merged
      
      
    
                
     Merged
            
            
          Conversation
  
    
      This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
      Learn more about bidirectional Unicode characters
    
  
  
    
    | Related: rust-lang/rust#146530 cc: @nnethercote, @Amanieu, @taiki-e | 
| I would remove vcsr in this case since it is redundant. | 
15c1983    to
    1fa7e99      
    Compare
  
    | Removed  | 
              
                    Amanieu
  
              
              approved these changes
              
                  
                    Sep 18, 2025 
                  
              
              
            
            
              
                    taiki-e
  
              
              approved these changes
              
                  
                    Sep 18, 2025 
                  
              
              
            
            
              
                    ehuss
  
              
              reviewed
              
                  
                    Sep 23, 2025 
                  
              
              
            
            
`vxsat` (vector fixed-point saturation flag) and `vxrm` (vector
fixed-point rounding mode) are subset, readable/writable mirrors of the
`vcsr` register.  Still, adding them to the default preserved
register list will improve clarity.
*   `vcsr`
    *   Bit 0–0 mirror: `vxsat`
    *   Bit 1–2 mirror: `vxrm`
Note that, the reason `vxrm` (rounding mode register which normally
the developer writes) is in the list is, it is not preserved across
calls on all ratified ABIs.
Quoting `asm.rules.preserves_flags`,
> As a general rule, the flags covered by `preserves_flags` are those
> which are not preserved when performing a function call.
    1fa7e99    to
    6d489f8      
    Compare
  
    
              
                    ehuss
  
              
              approved these changes
              
                  
                    Sep 24, 2025 
                  
              
              
            
            
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Thanks!
    
  Zalathar 
      added a commit
        to Zalathar/rust
      that referenced
      this pull request
    
      Oct 2, 2025 
    
    
      
  
    
      
    
  
Update books ## rust-lang/book 1 commits in 33f1af40cc44dde7e3e892f7a508e6f427d2cbc6..1d7c3e6abec2d5a9bfac798b29b7855b95025426 2025-09-28 21:24:16 UTC to 2025-09-28 21:24:16 UTC - Chunk of chapters from copyedit (rust-lang/book#4506) ## rust-lang/edition-guide 1 commits in aa6ce337c0adf7a63e33960d184270f2a45ab9ef..e2ed891f00361efc26616d82590b1c85d7a8920e 2025-10-01 17:11:54 UTC to 2025-10-01 17:11:54 UTC - link to never type fallback lint as deny by default (rust-lang/edition-guide#377) ## rust-lang/nomicon 1 commits in f17a018b9989430967d1c58e9a12c51169abc744..23fc2682f8fcb887f77d0eaabba708809f834c11 2025-09-24 10:10:31 UTC to 2025-09-24 10:10:31 UTC - a typo in ffi.md (rust-lang/nomicon#502) ## rust-lang/reference 13 commits in cc7247d8dfaef4c39000bb12c55c32ba5b5ba976..e11adf6016a362766eea5a3f9832e193994dd0c8 2025-09-29 00:55:42 UTC to 2025-09-23 23:33:32 UTC - const functions: separate rule about users and rule about what is allowed in such functions (rust-lang/reference#2013) - use "tuple enum variant" more consistently (rust-lang/reference#2015) - Remove caveats related to `format_args!` expansion (rust-lang/reference#2017) - RISC-V: Extension Updates (including document references) (rust-lang/reference#2002) - Move inferred sentence to an example block (rust-lang/reference#2019) - Add triagebot range-diff feature (rust-lang/reference#2011) - use AND when searching for multiple terms (rust-lang/reference#2016) - enumerations.md: fix pluralisation (rust-lang/reference#2014) - const_eval.md: use sentence case for section title, for consistency (rust-lang/reference#2012) - destructors.md: improve readability by adding pauses (rust-lang/reference#2007) - RISC-V: Add vector state registers (rust-lang/reference#2005) - destructors.md: point to core:: instead of std:: (rust-lang/reference#2006) - Create Whitespace grammar productions (rust-lang/reference#1991)
    
  matthiaskrgr 
      added a commit
        to matthiaskrgr/rust
      that referenced
      this pull request
    
      Oct 2, 2025 
    
    
      
  
    
      
    
  
Update books ## rust-lang/book 1 commits in 33f1af40cc44dde7e3e892f7a508e6f427d2cbc6..1d7c3e6abec2d5a9bfac798b29b7855b95025426 2025-09-28 21:24:16 UTC to 2025-09-28 21:24:16 UTC - Chunk of chapters from copyedit (rust-lang/book#4506) ## rust-lang/edition-guide 1 commits in aa6ce337c0adf7a63e33960d184270f2a45ab9ef..e2ed891f00361efc26616d82590b1c85d7a8920e 2025-10-01 17:11:54 UTC to 2025-10-01 17:11:54 UTC - link to never type fallback lint as deny by default (rust-lang/edition-guide#377) ## rust-lang/nomicon 1 commits in f17a018b9989430967d1c58e9a12c51169abc744..23fc2682f8fcb887f77d0eaabba708809f834c11 2025-09-24 10:10:31 UTC to 2025-09-24 10:10:31 UTC - a typo in ffi.md (rust-lang/nomicon#502) ## rust-lang/reference 13 commits in cc7247d8dfaef4c39000bb12c55c32ba5b5ba976..e11adf6016a362766eea5a3f9832e193994dd0c8 2025-09-29 00:55:42 UTC to 2025-09-23 23:33:32 UTC - const functions: separate rule about users and rule about what is allowed in such functions (rust-lang/reference#2013) - use "tuple enum variant" more consistently (rust-lang/reference#2015) - Remove caveats related to `format_args!` expansion (rust-lang/reference#2017) - RISC-V: Extension Updates (including document references) (rust-lang/reference#2002) - Move inferred sentence to an example block (rust-lang/reference#2019) - Add triagebot range-diff feature (rust-lang/reference#2011) - use AND when searching for multiple terms (rust-lang/reference#2016) - enumerations.md: fix pluralisation (rust-lang/reference#2014) - const_eval.md: use sentence case for section title, for consistency (rust-lang/reference#2012) - destructors.md: improve readability by adding pauses (rust-lang/reference#2007) - RISC-V: Add vector state registers (rust-lang/reference#2005) - destructors.md: point to core:: instead of std:: (rust-lang/reference#2006) - Create Whitespace grammar productions (rust-lang/reference#1991)
    
  jhpratt 
      added a commit
        to jhpratt/rust
      that referenced
      this pull request
    
      Oct 2, 2025 
    
    
      
  
    
      
    
  
Update books ## rust-lang/book 1 commits in 33f1af40cc44dde7e3e892f7a508e6f427d2cbc6..1d7c3e6abec2d5a9bfac798b29b7855b95025426 2025-09-28 21:24:16 UTC to 2025-09-28 21:24:16 UTC - Chunk of chapters from copyedit (rust-lang/book#4506) ## rust-lang/edition-guide 1 commits in aa6ce337c0adf7a63e33960d184270f2a45ab9ef..e2ed891f00361efc26616d82590b1c85d7a8920e 2025-10-01 17:11:54 UTC to 2025-10-01 17:11:54 UTC - link to never type fallback lint as deny by default (rust-lang/edition-guide#377) ## rust-lang/nomicon 1 commits in f17a018b9989430967d1c58e9a12c51169abc744..23fc2682f8fcb887f77d0eaabba708809f834c11 2025-09-24 10:10:31 UTC to 2025-09-24 10:10:31 UTC - a typo in ffi.md (rust-lang/nomicon#502) ## rust-lang/reference 13 commits in cc7247d8dfaef4c39000bb12c55c32ba5b5ba976..e11adf6016a362766eea5a3f9832e193994dd0c8 2025-09-29 00:55:42 UTC to 2025-09-23 23:33:32 UTC - const functions: separate rule about users and rule about what is allowed in such functions (rust-lang/reference#2013) - use "tuple enum variant" more consistently (rust-lang/reference#2015) - Remove caveats related to `format_args!` expansion (rust-lang/reference#2017) - RISC-V: Extension Updates (including document references) (rust-lang/reference#2002) - Move inferred sentence to an example block (rust-lang/reference#2019) - Add triagebot range-diff feature (rust-lang/reference#2011) - use AND when searching for multiple terms (rust-lang/reference#2016) - enumerations.md: fix pluralisation (rust-lang/reference#2014) - const_eval.md: use sentence case for section title, for consistency (rust-lang/reference#2012) - destructors.md: improve readability by adding pauses (rust-lang/reference#2007) - RISC-V: Add vector state registers (rust-lang/reference#2005) - destructors.md: point to core:: instead of std:: (rust-lang/reference#2006) - Create Whitespace grammar productions (rust-lang/reference#1991)
    
  matthiaskrgr 
      added a commit
        to matthiaskrgr/rust
      that referenced
      this pull request
    
      Oct 2, 2025 
    
    
      
  
    
      
    
  
Update books ## rust-lang/book 1 commits in 33f1af40cc44dde7e3e892f7a508e6f427d2cbc6..1d7c3e6abec2d5a9bfac798b29b7855b95025426 2025-09-28 21:24:16 UTC to 2025-09-28 21:24:16 UTC - Chunk of chapters from copyedit (rust-lang/book#4506) ## rust-lang/edition-guide 1 commits in aa6ce337c0adf7a63e33960d184270f2a45ab9ef..e2ed891f00361efc26616d82590b1c85d7a8920e 2025-10-01 17:11:54 UTC to 2025-10-01 17:11:54 UTC - link to never type fallback lint as deny by default (rust-lang/edition-guide#377) ## rust-lang/nomicon 1 commits in f17a018b9989430967d1c58e9a12c51169abc744..23fc2682f8fcb887f77d0eaabba708809f834c11 2025-09-24 10:10:31 UTC to 2025-09-24 10:10:31 UTC - a typo in ffi.md (rust-lang/nomicon#502) ## rust-lang/reference 13 commits in cc7247d8dfaef4c39000bb12c55c32ba5b5ba976..e11adf6016a362766eea5a3f9832e193994dd0c8 2025-09-29 00:55:42 UTC to 2025-09-23 23:33:32 UTC - const functions: separate rule about users and rule about what is allowed in such functions (rust-lang/reference#2013) - use "tuple enum variant" more consistently (rust-lang/reference#2015) - Remove caveats related to `format_args!` expansion (rust-lang/reference#2017) - RISC-V: Extension Updates (including document references) (rust-lang/reference#2002) - Move inferred sentence to an example block (rust-lang/reference#2019) - Add triagebot range-diff feature (rust-lang/reference#2011) - use AND when searching for multiple terms (rust-lang/reference#2016) - enumerations.md: fix pluralisation (rust-lang/reference#2014) - const_eval.md: use sentence case for section title, for consistency (rust-lang/reference#2012) - destructors.md: improve readability by adding pauses (rust-lang/reference#2007) - RISC-V: Add vector state registers (rust-lang/reference#2005) - destructors.md: point to core:: instead of std:: (rust-lang/reference#2006) - Create Whitespace grammar productions (rust-lang/reference#1991)
    
  rust-timer 
      added a commit
        to rust-lang/rust
      that referenced
      this pull request
    
      Oct 2, 2025 
    
    
      
  
    
      
    
  
Rollup merge of #147236 - rustbot:docs-update, r=ehuss Update books ## rust-lang/book 1 commits in 33f1af40cc44dde7e3e892f7a508e6f427d2cbc6..1d7c3e6abec2d5a9bfac798b29b7855b95025426 2025-09-28 21:24:16 UTC to 2025-09-28 21:24:16 UTC - Chunk of chapters from copyedit (rust-lang/book#4506) ## rust-lang/edition-guide 1 commits in aa6ce337c0adf7a63e33960d184270f2a45ab9ef..e2ed891f00361efc26616d82590b1c85d7a8920e 2025-10-01 17:11:54 UTC to 2025-10-01 17:11:54 UTC - link to never type fallback lint as deny by default (rust-lang/edition-guide#377) ## rust-lang/nomicon 1 commits in f17a018b9989430967d1c58e9a12c51169abc744..23fc2682f8fcb887f77d0eaabba708809f834c11 2025-09-24 10:10:31 UTC to 2025-09-24 10:10:31 UTC - a typo in ffi.md (rust-lang/nomicon#502) ## rust-lang/reference 13 commits in cc7247d8dfaef4c39000bb12c55c32ba5b5ba976..e11adf6016a362766eea5a3f9832e193994dd0c8 2025-09-29 00:55:42 UTC to 2025-09-23 23:33:32 UTC - const functions: separate rule about users and rule about what is allowed in such functions (rust-lang/reference#2013) - use "tuple enum variant" more consistently (rust-lang/reference#2015) - Remove caveats related to `format_args!` expansion (rust-lang/reference#2017) - RISC-V: Extension Updates (including document references) (rust-lang/reference#2002) - Move inferred sentence to an example block (rust-lang/reference#2019) - Add triagebot range-diff feature (rust-lang/reference#2011) - use AND when searching for multiple terms (rust-lang/reference#2016) - enumerations.md: fix pluralisation (rust-lang/reference#2014) - const_eval.md: use sentence case for section title, for consistency (rust-lang/reference#2012) - destructors.md: improve readability by adding pauses (rust-lang/reference#2007) - RISC-V: Add vector state registers (rust-lang/reference#2005) - destructors.md: point to core:: instead of std:: (rust-lang/reference#2006) - Create Whitespace grammar productions (rust-lang/reference#1991)
    
  github-actions bot
      pushed a commit
        to rust-lang/miri
      that referenced
      this pull request
    
      Oct 3, 2025 
    
    
      
  
    
      
    
  
Update books ## rust-lang/book 1 commits in 33f1af40cc44dde7e3e892f7a508e6f427d2cbc6..1d7c3e6abec2d5a9bfac798b29b7855b95025426 2025-09-28 21:24:16 UTC to 2025-09-28 21:24:16 UTC - Chunk of chapters from copyedit (rust-lang/book#4506) ## rust-lang/edition-guide 1 commits in aa6ce337c0adf7a63e33960d184270f2a45ab9ef..e2ed891f00361efc26616d82590b1c85d7a8920e 2025-10-01 17:11:54 UTC to 2025-10-01 17:11:54 UTC - link to never type fallback lint as deny by default (rust-lang/edition-guide#377) ## rust-lang/nomicon 1 commits in f17a018b9989430967d1c58e9a12c51169abc744..23fc2682f8fcb887f77d0eaabba708809f834c11 2025-09-24 10:10:31 UTC to 2025-09-24 10:10:31 UTC - a typo in ffi.md (rust-lang/nomicon#502) ## rust-lang/reference 13 commits in cc7247d8dfaef4c39000bb12c55c32ba5b5ba976..e11adf6016a362766eea5a3f9832e193994dd0c8 2025-09-29 00:55:42 UTC to 2025-09-23 23:33:32 UTC - const functions: separate rule about users and rule about what is allowed in such functions (rust-lang/reference#2013) - use "tuple enum variant" more consistently (rust-lang/reference#2015) - Remove caveats related to `format_args!` expansion (rust-lang/reference#2017) - RISC-V: Extension Updates (including document references) (rust-lang/reference#2002) - Move inferred sentence to an example block (rust-lang/reference#2019) - Add triagebot range-diff feature (rust-lang/reference#2011) - use AND when searching for multiple terms (rust-lang/reference#2016) - enumerations.md: fix pluralisation (rust-lang/reference#2014) - const_eval.md: use sentence case for section title, for consistency (rust-lang/reference#2012) - destructors.md: improve readability by adding pauses (rust-lang/reference#2007) - RISC-V: Add vector state registers (rust-lang/reference#2005) - destructors.md: point to core:: instead of std:: (rust-lang/reference#2006) - Create Whitespace grammar productions (rust-lang/reference#1991)
    
  rust-cloud-vms bot
      pushed a commit
        to makai410/rustc_public
      that referenced
      this pull request
    
      Oct 12, 2025 
    
    
      
  
    
      
    
  
Update books ## rust-lang/book 1 commits in 33f1af40cc44dde7e3e892f7a508e6f427d2cbc6..1d7c3e6abec2d5a9bfac798b29b7855b95025426 2025-09-28 21:24:16 UTC to 2025-09-28 21:24:16 UTC - Chunk of chapters from copyedit (rust-lang/book#4506) ## rust-lang/edition-guide 1 commits in aa6ce337c0adf7a63e33960d184270f2a45ab9ef..e2ed891f00361efc26616d82590b1c85d7a8920e 2025-10-01 17:11:54 UTC to 2025-10-01 17:11:54 UTC - link to never type fallback lint as deny by default (rust-lang/edition-guide#377) ## rust-lang/nomicon 1 commits in f17a018b9989430967d1c58e9a12c51169abc744..23fc2682f8fcb887f77d0eaabba708809f834c11 2025-09-24 10:10:31 UTC to 2025-09-24 10:10:31 UTC - a typo in ffi.md (rust-lang/nomicon#502) ## rust-lang/reference 13 commits in cc7247d8dfaef4c39000bb12c55c32ba5b5ba976..e11adf6016a362766eea5a3f9832e193994dd0c8 2025-09-29 00:55:42 UTC to 2025-09-23 23:33:32 UTC - const functions: separate rule about users and rule about what is allowed in such functions (rust-lang/reference#2013) - use "tuple enum variant" more consistently (rust-lang/reference#2015) - Remove caveats related to `format_args!` expansion (rust-lang/reference#2017) - RISC-V: Extension Updates (including document references) (rust-lang/reference#2002) - Move inferred sentence to an example block (rust-lang/reference#2019) - Add triagebot range-diff feature (rust-lang/reference#2011) - use AND when searching for multiple terms (rust-lang/reference#2016) - enumerations.md: fix pluralisation (rust-lang/reference#2014) - const_eval.md: use sentence case for section title, for consistency (rust-lang/reference#2012) - destructors.md: improve readability by adding pauses (rust-lang/reference#2007) - RISC-V: Add vector state registers (rust-lang/reference#2005) - destructors.md: point to core:: instead of std:: (rust-lang/reference#2006) - Create Whitespace grammar productions (rust-lang/reference#1991)
    
  flip1995 
      pushed a commit
        to flip1995/rust-clippy
      that referenced
      this pull request
    
      Oct 18, 2025 
    
    
      
  
    
      
    
  
Update books ## rust-lang/book 1 commits in 33f1af40cc44dde7e3e892f7a508e6f427d2cbc6..1d7c3e6abec2d5a9bfac798b29b7855b95025426 2025-09-28 21:24:16 UTC to 2025-09-28 21:24:16 UTC - Chunk of chapters from copyedit (rust-lang/book#4506) ## rust-lang/edition-guide 1 commits in aa6ce337c0adf7a63e33960d184270f2a45ab9ef..e2ed891f00361efc26616d82590b1c85d7a8920e 2025-10-01 17:11:54 UTC to 2025-10-01 17:11:54 UTC - link to never type fallback lint as deny by default (rust-lang/edition-guide#377) ## rust-lang/nomicon 1 commits in f17a018b9989430967d1c58e9a12c51169abc744..23fc2682f8fcb887f77d0eaabba708809f834c11 2025-09-24 10:10:31 UTC to 2025-09-24 10:10:31 UTC - a typo in ffi.md (rust-lang/nomicon#502) ## rust-lang/reference 13 commits in cc7247d8dfaef4c39000bb12c55c32ba5b5ba976..e11adf6016a362766eea5a3f9832e193994dd0c8 2025-09-29 00:55:42 UTC to 2025-09-23 23:33:32 UTC - const functions: separate rule about users and rule about what is allowed in such functions (rust-lang/reference#2013) - use "tuple enum variant" more consistently (rust-lang/reference#2015) - Remove caveats related to `format_args!` expansion (rust-lang/reference#2017) - RISC-V: Extension Updates (including document references) (rust-lang/reference#2002) - Move inferred sentence to an example block (rust-lang/reference#2019) - Add triagebot range-diff feature (rust-lang/reference#2011) - use AND when searching for multiple terms (rust-lang/reference#2016) - enumerations.md: fix pluralisation (rust-lang/reference#2014) - const_eval.md: use sentence case for section title, for consistency (rust-lang/reference#2012) - destructors.md: improve readability by adding pauses (rust-lang/reference#2007) - RISC-V: Add vector state registers (rust-lang/reference#2005) - destructors.md: point to core:: instead of std:: (rust-lang/reference#2006) - Create Whitespace grammar productions (rust-lang/reference#1991)
  
    Sign up for free
    to join this conversation on GitHub.
    Already have an account?
    Sign in to comment
  
      
  Add this suggestion to a batch that can be applied as a single commit.
  This suggestion is invalid because no changes were made to the code.
  Suggestions cannot be applied while the pull request is closed.
  Suggestions cannot be applied while viewing a subset of changes.
  Only one suggestion per line can be applied in a batch.
  Add this suggestion to a batch that can be applied as a single commit.
  Applying suggestions on deleted lines is not supported.
  You must change the existing code in this line in order to create a valid suggestion.
  Outdated suggestions cannot be applied.
  This suggestion has been applied or marked resolved.
  Suggestions cannot be applied from pending reviews.
  Suggestions cannot be applied on multi-line comments.
  Suggestions cannot be applied while the pull request is queued to merge.
  Suggestion cannot be applied right now. Please check back later.
  
    
  
    
vxsat(vector fixed-point saturation flag) andvxrm(vector fixed-point rounding mode) are subset, readable/writable mirrors of thevcsrregister. Still, adding them to the default preserved register list will improve clarity.vcsrvxsatvxrmNote that, the reason
vxrm(rounding mode register which normally the developer writes) is in the list is, it is not preserved across calls on all ratified ABIs.Quoting
asm.rules.preserves_flags,