diff options
| author | kitty <nepeta@canaglie.net> | 2026-01-22 13:05:14 +1100 |
|---|---|---|
| committer | kitty <nepeta@canaglie.net> | 2026-01-22 13:05:14 +1100 |
| commit | fdf1935e2cc4142bf1585a78844f5b7df0e1cd8f (patch) | |
| tree | e85a145573843cb7c879828e081e2a414d90e13a /jefs.s | |
| parent | 9ddee3df23c1abc39a5e0e0605c4f815db113e3e (diff) | |
some macros
Diffstat (limited to 'jefs.s')
| -rw-r--r-- | jefs.s | 46 |
1 files changed, 46 insertions, 0 deletions
@@ -1,7 +1,53 @@ ; jewelforth ;; MACROS {{{ +%macro pspush 1 + lea r14, [r14-8] + mov qword [r14], r15 + mov r15, %1 +%endmacro + +%macro pspop 1 + mov %1, r15 + mov r15, qword [r14] + lea r14, [r14+8] +%endmacro + +;;; dictionary macros {{{ +%define mac_latest 0 ; updated through defdict + +%macro defdict 3 ; name asm-label flags + %strlen slen %1 + global lfa_%2 + lfa_%2: dq mac_latest + %define mac_latest lfa_%2 + ffa_%2: db %3 ; FFA + nfa_%2: dw slen ; NFA + db %1 +%endmacro + +%macro defword 3 + defdict %1, %2, %3 + %2: +%endmacro + +%macro defconst 4 ; ... value + defdict %1, %2, %3 + %define %2 %4 + pspush qword %4 + ret +%endmacro + +%macro defvar 4 ; ... default-value + %2: dq %4 + defdict %1, %2, %3 + pspush qword %2 + ret +%endmacro + %assign smudge_mask 0x1 +%assign immemdiate_mask 0x2 +;;; }}} ;; syscall %assign __NR_read 0 |
