;;; ;;; マクロ・テンプレート ;;; (DEFTEMPLATE s (("DS:[?1c]" "%DS:?1c(,1)" "DS:[?1c]") (INTCONST I32 (HOLE 1))) (("[?1b]" "?1b(,1)" "[?1b]") (ASMCONST I32 (LABEL I32 (HOLE 1)))) (("[?1b+?2c]" "(?1b+?2c)(,1)" "[?1b+?2c]") (ASMCONST I32 (ADD I32 (LABEL I32 (HOLE 1)) (INTCONST I32 (HOLE 2))))) (("[?1b-?2c]" "(?1b-?2c)(,1)" "[?1b-?2c]") (ASMCONST I32 (SUB I32 (LABEL I32 (HOLE 1)) (INTCONST I32 (HOLE 2))))) (("[?1r]" "(%?1r)" "[?1r]") (REG I32 (HOLE 1 R32))) (("[?1r+?2c]" "?2c(%?1r)" "[?1r+?2c]") (ADD I32 (REG I32 (HOLE 1 R32)) (INTCONST I32 (HOLE 2)))) (("[?1r+?2b]" "?2b(%?1r)" "[?1r+?2b]") (ADD I32 (REG I32 (HOLE 1 R32)) (ASMCONST I32 (LABEL I32 (HOLE 2))))) (("[?1r+?2b+?3c]" "(?2b+?3c)(%?1r)" "[?1r+?2b+?3c]") (ADD I32 (REG I32 (HOLE 1 R32)) (ASMCONST I32 (ADD I32 (LABEL I32 (HOLE 2)) (INTCONST I32 (HOLE 3)))))) (("[?1r+?2b-?3c]" "(?2b-?3c)(%?1r)" "[?1r+?2b-?3c]") (ADD I32 (REG I32 (HOLE 1 R32)) (ASMCONST I32 (SUB I32 (LABEL I32 (HOLE 2)) (INTCONST I32 (HOLE 3)))))) (("[?1i*2]" "(,%?1i,2)" "[?1i*2]") (LSH I32 (REG I32 (HOLE 1 INDEX)) (INTCONST I32 1))) (("[?1i*4]" "(,%?1i,4)" "[?1i*4]") (LSH I32 (REG I32 (HOLE 1 INDEX)) (INTCONST I32 2))) (("[?1i*8]" "(,%?1i,8)" "[?1i*8]") (LSH I32 (REG I32 (HOLE 1 INDEX)) (INTCONST I32 3))) (("[?1i*2+?2c]" "?2c(,%?1i,2)" "[?1i*2+?2c]") (ADD I32 (LSH I32 (REG I32 (HOLE 1 INDEX))(INTCONST I32 1)) (INTCONST I32 (HOLE 2)))) (("[?1i*2+?2b]" "?2b(,%?1i,2)" "[?1i*2+?2b]") (ADD I32 (LSH I32 (REG I32 (HOLE 1 INDEX))(INTCONST I32 1)) (ASMCONST I32 (LABEL I32 (HOLE 2))))) (("[?1i*2+?2b+?3c]" "(?2b+?3c)(,%?1i,2)" "[?1i*2+?2b+?3c]") (ADD I32 (LSH I32 (REG I32 (HOLE 1 INDEX))(INTCONST I32 1)) (ASMCONST I32 (ADD I32 (LABEL I32 (HOLE 2)) (INTCONST I32 (HOLE 3)))))) (("[?1i*2+?2b-?3c]" "(?2b-?3c)(,%?1i,2)" "[?1i*2+?2b-?3c]") (ADD I32 (LSH I32 (REG I32 (HOLE 1 INDEX))(INTCONST I32 1)) (ASMCONST I32 (SUB I32 (LABEL I32 (HOLE 2)) (INTCONST I32 (HOLE 3)))))) (("[?1i*4+?2c]" "?2c(,%?1i,4)" "[?1i*4+?2c]") (ADD I32 (LSH I32 (REG I32 (HOLE 1 INDEX))(INTCONST I32 2)) (INTCONST I32 (HOLE 2)))) (("[?1i*4+?2b]" "?2b(,%?1i,4)" "[?1i*4+?2b]") (ADD I32 (LSH I32 (REG I32 (HOLE 1 INDEX))(INTCONST I32 2)) (ASMCONST I32 (LABEL I32 (HOLE 2))))) (("[?1i*4+?2b+?3c]" "(?2b+?3c)(,%?1i,4)" "[?1i*4+?2b+?3c]") (ADD I32 (LSH I32 (REG I32 (HOLE 1 INDEX))(INTCONST I32 2)) (ASMCONST I32 (ADD I32 (LABEL I32 (HOLE 2)) (INTCONST I32 (HOLE 3)))))) (("[?1i*4+?2b-?3c]" "(?2b-?3c)(,%?1i,4)" "[?1i*4+?2b-?3c]") (ADD I32 (LSH I32 (REG I32 (HOLE 1 INDEX))(INTCONST I32 2)) (ASMCONST I32 (SUB I32 (LABEL I32 (HOLE 2)) (INTCONST I32 (HOLE 3)))))) (("[?1i*8+?2c]" "?2c(,%?1i,8)" "[?1i*8+?2c]") (ADD I32 (LSH I32 (REG I32 (HOLE 1 INDEX))(INTCONST I32 3)) (INTCONST I32 (HOLE 2)))) (("[?1i*8+?2b]" "?2b(,%?1i,8)" "[?1i*8+?2b]") (ADD I32 (LSH I32 (REG I32 (HOLE 1 INDEX))(INTCONST I32 3)) (ASMCONST I32 (LABEL I32 (HOLE 2))))) (("[?1i*8+?2b+?3c]" "(?2b+?3c)(,%?1i,8)" "[?1i*8+?2b+?3c]") (ADD I32 (LSH I32 (REG I32 (HOLE 1 INDEX))(INTCONST I32 3)) (ASMCONST I32 (ADD I32 (LABEL I32 (HOLE 2)) (INTCONST I32 (HOLE 3)))))) (("[?1i*8+?2b-?3c]" "(?2b-?3c)(,%?1i,8)" "[?1i*8+?2b-?3c]") (ADD I32 (LSH I32 (REG I32 (HOLE 1 INDEX))(INTCONST I32 3)) (ASMCONST I32 (SUB I32 (LABEL I32 (HOLE 2)) (INTCONST I32 (HOLE 3)))))) (("[?1r+?2i]" "(%?1r,%?2i,1)" "[?1r+?2i]") (ADD I32 (REG I32 (HOLE 1 R32)) (REG I32 (HOLE 2 INDEX)))) (("[?1r+?2i+?3c]" "?3c(%?1r,%?2i,1)" "[?1r+?2i+?3c]") (ADD I32 (ADD I32 (REG I32 (HOLE 1 R32)) (REG I32 (HOLE 2 INDEX))) (INTCONST I32 (HOLE 3)))) (("[?1r+?2i*2]" "(%?1r,%?2i,2)" "[?1r+?2i*2]") (ADD I32 (REG I32 (HOLE 1 R32)) (LSH I32 (REG I32 (HOLE 2 INDEX)) (INTCONST I32 1)))) (("[?1r+?2i*4]" "(%?1r,%?2i,4)" "[?1r+?2i*4]") (ADD I32 (REG I32 (HOLE 1 R32))(LSH I32 (REG I32 (HOLE 2 INDEX)) (INTCONST I32 2)))) (("[?1r+?2i*8]" "(%?1r,%?2i,8)" "[?1r+?2i*8]") (ADD I32 (REG I32 (HOLE 1 R32)) (LSH I32 (REG I32 (HOLE 2 INDEX)) (INTCONST I32 3)))) (("[?1r+?2i*2+?3c]" "?3c(%?1r,%?2i,2)" "[?1r+?2i*2+?3c]") (ADD I32 (ADD I32 (REG I32 (HOLE 1 R32)) (LSH I32 (REG I32 (HOLE 2 INDEX)) (INTCONST I32 1))) (INTCONST I32 (HOLE 3)))) (("[?1r+?2i*4+?3c]" "?3c(%?1r,%?2i,4)" "[?1r+?2i*4+?3c]") (ADD I32 (ADD I32 (REG I32 (HOLE 1 R32)) (LSH I32 (REG I32 (HOLE 2 INDEX)) (INTCONST I32 2))) (INTCONST I32 (HOLE 3)))) (("[?1r+?2i*8+?3c]" "?3c(%?1r,%?2i,8)" "[?1r+?2i*8+?3c]") (ADD I32 (ADD I32 (REG I32 (HOLE 1 R32)) (LSH I32 (REG I32 (HOLE 2 INDEX)) (INTCONST I32 3))) (INTCONST I32 (HOLE 3))))) (DEFTEMPLATE a (("OFFSET ?1b" "?1b" "OFFSET ?1b") (ASMCONST I32 (LABEL I32 (HOLE 1)))) (("OFFSET ?1b+?2c" "?1b+?2c" "OFFSET ?1b+?2c") (ASMCONST I32 (ADD I32 (LABEL I32 (HOLE 1)) (INTCONST I32 (HOLE 2))))) (("OFFSET ?1b-?2c" "?1b-?2c" "OFFSET ?1b-?2c") (ASMCONST I32 (SUB I32 (LABEL I32 (HOLE 1)) (INTCONST I32 (HOLE 2))))))