Skip to content

Commit

Permalink
crucible-llvm-syntax: Document load-handle, resolve-global, types
Browse files Browse the repository at this point in the history
  • Loading branch information
langston-barrett committed Nov 14, 2023
1 parent 0e02e9f commit 736f2e3
Showing 1 changed file with 6 additions and 0 deletions.
6 changes: 6 additions & 0 deletions crucible-llvm-syntax/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -32,7 +32,13 @@ If the numeral `w` is the width of a pointer and `n` is an arbitrary numeral,
- `ptr-ite : Bool -> Ptr n -> Ptr n -> Ptr n`: if-then-else for pointers
- `alloca : Alignment -> Bitvector w -> Ptr w`: allocate space on the stack
- `load : Alignment -> LLVMType -> Ptr w -> T`: load a value from memory, where the type `T` is determined by the `LLVMType`
- `load-handle : Type -> [Type] -> Ptr w -> T`: load a function handle from memory, where the type `T` is determined by the given return and argument types
- `store : Alignment -> LLVMType -> Ptr w -> T -> Unit`: store a value to memory, where the type `T` is determined by the `LLVMType`
- `resolve-global : String -> Ptr w`: get the address of a global variable

`Type` signifies a Crucible type, rather than an LLVM type. This means there
are no C- or LLVM-like `Type`s such as `i8*` or `size_t`, but rather the base
Crucible types as defined by `crucible-syntax`, and `(Ptr n)`.

## Further extensions

Expand Down

0 comments on commit 736f2e3

Please sign in to comment.