Skip to content

Conversation

@dependabot
Copy link
Contributor

@dependabot dependabot bot commented on behalf of github Oct 29, 2024

Updates the requirements on dynasmrt to permit the latest version.

Changelog

Sourced from dynasmrt's changelog.

Version 3.0.1

Bugfix

  • x64 immediate const evaluation now handles negative displacements properly again, generating 8-bit displacements where possible.

Version 3.0.0

Summary

This release brings significant improvements to the aarch64 experience. The runtime assemblers now handle cache invalidation internally where necessary. Furthermore, where previously overly large immediates would just wrap during encoding, they are now fully checked and error at compile time, or panic at runtime. One major backwards compatibility break is that the syntax for data directives has changed. This syntax now uses the relevant rust type names, and supports significantly more types. Next to this, several long-standing bugs have been fixed, dependencies have been updated, and the crate has moved to rust edition 2021. The minimum supported rust version is now 1.77.

General

  • Moved to rust edition 2021
  • Dependencies have been updated.
  • minimum supported rust version increased to 1.77 to allow for the use of mem::offset_of!.
  • data directives now use .u8, .i16, .f32 syntax.
  • Several documentation improvements have been made.
  • More tests have been introduced.

Architecture support

  • x64 gained support for the MOVDIRI instruction
  • x64 gained support for the ZWORD operand size (needed for AVX512 support in the future)
  • the aarch64 assemblers now handle cache control internally. It is no longer needed for the user to handle this.
  • Immediates in aarch64 assembly are now fully size checked, where possible at compile time. Attempting to assemble an impossible immediate at runtime will cause a panic.

Bugfixes

  • All documentation/example crates now compile on stable rustc.
  • Worked around a rustc compiler bug that was causing operator precedence issues in emitted code.
  • Fixed x64/x86 register names used in compiler error debug messages.
  • Renamed several documentation bin targets due to artefact name collision errors in the workspace.
  • Fix unneeded parenthesis warnings in emitted code.
  • Eliminated warnings during plugin build.
  • the aarch64 instruction mov w0, immu32 now expects a u32 as immediate instead of an u64.

Several of these changes were the result of external contributions, we'd like to thank everyone who contributed to this release.

Version 2.0.0

... (truncated)

Commits
  • cdbabfb Update release notes.
  • 149bfbe Version v3.0.1.
  • 73395f8 Fix x64 constant immediate size calculation failing for slightly more complex...
  • e7290dd Ensure examples don't fail to compile on aarch64 during testing, and add expl...
  • ce3787d Version bump to 3.0.0.
  • 5f9cf4c Update release notes and fix documentation sidebar layout hack.
  • 8efebb9 Add aarch64 immediate encoding tests.
  • 640ae8d Implement aarch64 immediate range checking: Attempting to encode an overly bi...
  • c225c6a Rework data directives. They now use the rust type names (like .u8) instead o...
  • 10786cc Properly handle aarch64 icache invalidation.
  • Additional commits viewable in compare view

Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


Dependabot commands and options

You can trigger Dependabot actions by commenting on this PR:

  • @dependabot rebase will rebase this PR
  • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
  • @dependabot merge will merge this PR after your CI passes on it
  • @dependabot squash and merge will squash and merge this PR after your CI passes on it
  • @dependabot cancel merge will cancel a previously requested merge and block automerging
  • @dependabot reopen will reopen this PR if it is closed
  • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
  • @dependabot show <dependency name> ignore conditions will show all of the ignore conditions of the specified dependency
  • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
  • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
  • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)

@dependabot dependabot bot added dependencies Pull requests that update a dependency file rust Pull requests that update Rust code labels Oct 29, 2024
@dependabot dependabot bot force-pushed the dependabot/cargo/dynasmrt-3.0.1 branch 4 times, most recently from b7aa3f6 to 6e8c0ee Compare October 30, 2024 09:08
@dependabot @github
Copy link
Contributor Author

dependabot bot commented on behalf of github Oct 30, 2024

Dependabot tried to update this pull request, but something went wrong. We're looking into it, but in the meantime you can retry the update by commenting @dependabot rebase.

Updates the requirements on [dynasmrt](https://github.com/CensoredUsername/dynasm-rs) to permit the latest version.
- [Changelog](https://github.com/CensoredUsername/dynasm-rs/blob/master/doc/releasenotes.md)
- [Commits](CensoredUsername/dynasm-rs@v1.0.1...v3.0.1)

---
updated-dependencies:
- dependency-name: dynasmrt
  dependency-type: direct:production
...

Signed-off-by: dependabot[bot] <support@github.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

dependencies Pull requests that update a dependency file rust Pull requests that update Rust code

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant