Skip to content
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

Inline assembly #2873

Merged
merged 68 commits into from
Jul 20, 2020
Merged
Changes from 65 commits
Commits
Show all changes
68 commits
Select commit Hold shift + click to select a range
5559913
Add inline asm RFC
Amanieu Jan 13, 2020
4edab76
Minor corrections
Amanieu Jan 14, 2020
03f22fe
More minor corrections
Amanieu Jan 14, 2020
31cab5e
Oops
Amanieu Jan 14, 2020
add2123
Add a section on rules for inline asm
Amanieu Jan 21, 2020
fad338a
Rename flags() to options()
Amanieu Jan 21, 2020
806228f
Clarify support for non-LLVM backends
Amanieu Jan 21, 2020
fa90ad2
Clarify reg class under ARM Thumb1
Amanieu Jan 22, 2020
fc99a8c
Clarify rules
Amanieu Jan 24, 2020
2572476
Rename imm to const
Amanieu Jan 25, 2020
93b179c
Rework register classes and modifiers
Amanieu Jan 30, 2020
d82b70d
Fix minor typos
Amanieu Feb 9, 2020
2adfde8
Disallow specifying the same register as both an input and an output …
Amanieu Feb 11, 2020
89cbf28
Clarify implicit operands that come after named operands
Amanieu Feb 11, 2020
5884b7f
Expand on default modifier used for registers
Amanieu Feb 15, 2020
f427d17
Explicit register operands can't be used in the template
Amanieu Feb 15, 2020
feecfa1
Add rationale for not supporting AT&T syntax
Amanieu Feb 16, 2020
15c7aa8
Add rationale for not validating the generating asm in rustc.
Amanieu Feb 16, 2020
7d066ce
Remove restriction on sym needing to be from current crate.
Amanieu Feb 24, 2020
44853af
Fix typos
Amanieu Feb 24, 2020
b5d854d
Fix some details to match WIP implementation
Amanieu Feb 24, 2020
6b3a129
Clarify that the compiler must treat asm! as a black box
Amanieu Feb 25, 2020
d83a1e1
Add more examples of asm! usage to motivation
Amanieu Feb 25, 2020
904b71e
Add type whitelist for each register class
Amanieu Feb 28, 2020
a48259d
Fix typo
Amanieu Feb 28, 2020
843b6cf
x[16-31] don't exist on RV32E
Amanieu Feb 29, 2020
a1467e2
Clarify rules
Amanieu Mar 1, 2020
0f4ffff
Pointers are i16 on some targets
Amanieu Mar 1, 2020
8c54738
Update semantics of "pure" option
Amanieu Mar 1, 2020
2d431ab
Clarify that locals are not dropped before entering a noreturn asm
Amanieu Mar 4, 2020
7ddeedc
Clarify that x86 high byte registers are never allocated.
Amanieu Mar 4, 2020
571474c
Clarify the meaning of undefined values on entry to asm
Amanieu Mar 4, 2020
d8fd770
Fix outdated wording on template modifiers
Amanieu Mar 5, 2020
88d4f21
Add rationale for not including arch name in asm!
Amanieu Mar 6, 2020
df8388f
Add rationale for register names as string literals
Amanieu Mar 6, 2020
5554950
Fix typo
Amanieu Mar 6, 2020
d0a743a
Clarify rules for context switching and noreturn
Amanieu Mar 6, 2020
1738eec
Clarify that the semantics of the asm string are target-specific
Amanieu Mar 6, 2020
8f2871e
Fix outdated text regarding _ labels
Amanieu Mar 6, 2020
651d152
Allow trailing commas in syntax
Amanieu Mar 7, 2020
766290f
Minor fixes
Amanieu Mar 15, 2020
ff3400a
Add namespacing as an unresolved question
Amanieu Mar 15, 2020
db1743a
Add drawback on post-monomorphization errors
Amanieu Mar 15, 2020
014624e
Add an alternative about operands before the template string
Amanieu Mar 17, 2020
784a13f
Clarify that the compiler errors if the target doesn't support asm!
Amanieu Mar 17, 2020
14b47f4
Explain why inlateout can't be used in example
Amanieu Mar 18, 2020
3490ce6
Add comments on CPUID arguments
Amanieu Mar 18, 2020
8d8b1d3
Assembly code that does not conform to the GAS syntax will result in …
Amanieu Mar 18, 2020
66bb5f9
Clarify nounwind rule
Amanieu Mar 18, 2020
ec6a4ce
Remove references to volatile_read/volatile_write
Amanieu Mar 18, 2020
491d29f
Specify that ARM uses UAL syntax
Amanieu Apr 23, 2020
35db0a9
Add sym to guide-level explanation
Amanieu Apr 23, 2020
f0cd800
Add support for high byte registers on x86
Amanieu Apr 28, 2020
cef9246
Update wording on high byte registers
Amanieu May 1, 2020
5dd81ea
Add att_syntax option for AT&T syntax
Amanieu May 1, 2020
52d0096
Add rationale for defaulting to Intel syntax
Amanieu May 1, 2020
a3c53ec
Clarify that inout requires a mutable place
Amanieu May 1, 2020
f97d53a
More clarifications and formatting fixes
Amanieu May 9, 2020
62fe4e4
Use u32 for CPUID example
Amanieu May 11, 2020
f45ca4b
Clarify that stdarch vector types are usable with asm!
Amanieu May 16, 2020
1dbeaf9
Clarify the evaluation order of asm! operands
Amanieu May 16, 2020
89f917e
Update text/0000-inline-asm.md
Amanieu May 16, 2020
3633849
Clarify rules regarding the x86 direction flag
Amanieu May 16, 2020
ae298d8
Clarify rules around the use of symbols in asm code
Amanieu May 16, 2020
65b1cf2
Fix broken link
Amanieu May 18, 2020
a03813d
Update text/0000-inline-asm.md
Amanieu Jun 2, 2020
087ac5c
Clarify wording around positional/named/register arguments
Amanieu Jun 11, 2020
733869a
RFC 2873 (asm!): Allow multiple template string arguments
joshtriplett Jun 15, 2020
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Loading