MemIndexedMode enum - This enum defines the load / store indexed addressing modes.
Declared in <llvm/CodeGen/ISDOpcodes.h>
enum MemIndexedMode;
UNINDEXED "Normal" load / store. The effective address is already computed and is available in the base pointer. The offset operand is always undefined. In addition to producing a chain, an unindexed load produces one value (result of the load); an unindexed store does not produce a value.
PRE_INC Similar to the unindexed mode where the effective address is PRE_DEC the value of the base pointer add / subtract the offset. It considers the computation as being folded into the load / store operation (i.e. the load / store does the address computation as well as performing the memory transaction). The base operand is always undefined. In addition to producing a chain, pre-indexed load produces two values (result of the load and the result of the address computation); a pre-indexed store produces one value (result of the address computation).
POST_INC The effective address is the value of the base pointer. The POST_DEC value of the offset operand is then added to / subtracted from the base after memory transaction. In addition to producing a chain, post-indexed load produces two values (the result of the load and the result of the base +/- offset computation); a post-indexed store produces one value (the the result of the base +/- offset computation).
| Name | Description |
|---|---|
UNINDEXED | Normal load/store; address already in the base pointer. |
PRE_INC | Pre-increment: address is base + offset, then base is updated. |
PRE_DEC | Pre-decrement: address is base - offset, then base is updated. |
POST_INC | Post-increment: address is base, then base becomes base + offset. |
POST_DEC | Post-decrement: address is base, then base becomes base - offset. |