diff options
Diffstat (limited to 'examples/directives.s')
| -rw-r--r-- | examples/directives.s | 35 |
1 files changed, 35 insertions, 0 deletions
diff --git a/examples/directives.s b/examples/directives.s new file mode 100644 index 0000000..df2ebb3 --- /dev/null +++ b/examples/directives.s @@ -0,0 +1,35 @@ +square: + addi sp,sp,-32 + sd ra,24(sp) + sd s0,16(sp) + addi s0,sp,32 + mv a5,a0 + sw a5,-20(s0) + lw a5,-20(s0) + mulw a5,a5,a5 + sext.w a5,a5 + mv a0,a5 + ld ra,24(sp) + ld s0,16(sp) + addi sp,sp,32 + jr ra +.LC0: + .string "%d\n" +main: + addi sp,sp,-16 + sd ra,8(sp) + sd s0,0(sp) + addi s0,sp,16 + li a0,2 + call square + mv a5,a0 + mv a1,a5 + lui a5,%hi(.LC0) + addi a0,a5,%lo(.LC0) + call printf + li a5,0 + mv a0,a5 + ld ra,8(sp) + ld s0,0(sp) + addi sp,sp,16 + jr ra |
