monkey-asm 2.0.2

AOT AArch64 assembly backend for monkeylang (Linux ELF and macOS Mach-O)
Documentation
---
source: asm/lower_test.rs
expression: "assembly(\"1 + 2 * 3;\")"
---
// Generated by monkey-asm (docs/arm64-asm-backend-design.md). Do not edit.
    .text
    .globl main
    .p2align 2
main:
    stp x29, x30, [sp, #-16]!
    mov x29, sp
    adrp x0, g_globals
    add x0, x0, :lo12:g_globals
    movz x1, #0                     // global slot count
    bl rt_globals_init
    movz x0, #0x2                   // 1
    str x0, [sp, #-16]!             // left operand
    movz x0, #0x4                   // 2
    str x0, [sp, #-16]!             // left operand
    movz x0, #0x6                   // 3
    mov x1, x0                      // right operand
    ldr x0, [sp], #16               // left operand
    bl rt_mul                       // 2 * 3
    mov x1, x0                      // right operand
    ldr x0, [sp], #16               // left operand
    orr x8, x0, x1                  // SMI check on both bit0
    tbnz x8, #0, .L0
    adds x8, x0, x1                 // (a<<1)+(b<<1) = (a+b)<<1
    bvs .L0
    mov x0, x8
    b .L1
.L0:
    bl rt_add                       // 1 + 2 * 3
.L1:
.Lmain_exit:
    mov w0, #0                      // exit code is never the tagged value
    mov sp, x29
    ldp x29, x30, [sp], #16
    ret

    .bss
    .balign 8
g_globals:                          // 0 global slot(s)
    .skip 0