| /* Copyright lowRISC contributors. */ |
| /* Licensed under the Apache License, Version 2.0, see LICENSE for details. */ |
| /* SPDX-License-Identifier: Apache-2.0 */ |
| /* |
| An example of the pseudo-operations supported by the OTBN ISA |
| */ |
| .section .text.start |
| |
| nop_example: |
| /* NOP is a no-op, and expands to addi x0, x0, 0 */ |
| nop |
| |
| ret_example: |
| /* RET is a return and expands to jalr x0, x1, 0 */ |
| ret |
| |
| li_example: |
| /* LI is a bit more complicated. With a small immediate, it turns |
| into just addi */ |
| li x2, 1230 |
| li x2, -123 |
| li x2, 2272 |
| |
| /* With a big immediate which happens to have nothing set in the |
| lower 20 bits, it turns into just a LUI */ |
| li x2, 1048576 |
| li x2, -0x800000 |
| |
| /* With a big immediate in general, we need 2 instructions. |
| Firstly, a LUI to set up the upper bits, then an ADDI to sort out |
| the lower ones. */ |
| li x2, 0x10000042 |
| |
| li x2, 123456789 |
| li x2, 0x7fffffff |