#define T TEST

(* T
readonly_files = "mainimmed.c"
arguments = "-I ${test_source_directory} mainimmed.c"
* asmgen
*)

(* Regenerate with  cpp -P immediates.cmmpp > immediates.cmm *)

#define F(N) \
  (addraset r i (+ x N)) (assign i (+ i 1)) \
  (addraset r i (- x N)) (assign i (+ i 1)) \
  (addraset r i ( * x N)) (assign i (+ i 1)) \
  (addraset r i (and x N)) (assign i (+ i 1)) \
  (addraset r i (or x N)) (assign i (+ i 1)) \
  (addraset r i (xor x N)) (assign i (+ i 1)) \
  (addraset r i (< x N)) (assign i (+ i 1)) \
  (checkbound i N)

(function "testimm" ()
  (let x (load int "X")
  (let r "R"
  (letmut i int 0
#include "immediates.tbl"
))))
