Skip to content

[MEMTAGABIELF64] Rewrite LDG as a logical operation - #412

Open
smithp35 wants to merge 1 commit into
ARM-software:mainfrom
smithp35:memtagldg
Open

[MEMTAGABIELF64] Rewrite LDG as a logical operation#412
smithp35 wants to merge 1 commit into
ARM-software:mainfrom
smithp35:memtagldg

Conversation

@smithp35

Copy link
Copy Markdown
Contributor

The LDG(pointer) operation is defined in terms of the runtime environment using the ldg instruction. In most cases using the ldg instruction will work on allocation tagged memory and untagged memory. However if the untagged memory cannot be read, such as when that memory is execute-only then ldg cannot be used.

Rewrite LDG(pointer) in terms of the underlying requirement which is that after the operation, pointer` has the same logical tag as the allocation tag for *pointer. With memory that is not allocation tagged having a tag of 0000.

fixes: #411

The `LDG(pointer)` operation is defined in terms of the runtime
environment using the `ldg` instruction. In most cases using the
ldg instruction will work on allocation tagged memory and untagged
memory. However if the untagged memory cannot be read, such as
when that memory is execute-only then `ldg` cannot be used.

Rewrite `LDG(pointer) in terms of the underlying requirement
which is that after the operation, `pointer` has the same
logical tag as the allocation tag for *pointer. With memory that
is not allocation tagged having a tag of 0000.

fixes: ARM-software#411
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Memtag ABI: Clarify the semantics of LDG(S) in relocation processing

1 participant