boot2

Playing with the boostrap
git clone https://git.ryansepassi.com/git/boot2.git
Log | Files | Refs | README

151-exact-boundaries.scm.riscv32 (597B)


      1 ; P1-32's three tag bits leave exact integers in [-2^28, 2^28-1].
      2 (define max #xfffffff)
      3 (define min #x-10000000)
      4 (if (= max 268435455) 0 (sys-exit 1))
      5 (if (= min -268435456) 0 (sys-exit 2))
      6 (if (= min (string->number "-268435456")) 0 (sys-exit 3))
      7 (if (= max (string->number "268435455")) 0 (sys-exit 4))
      8 (if (string=? "-268435456" (number->string min)) 0 (sys-exit 5))
      9 (if (string=? "-10000000" (number->string min 16)) 0 (sys-exit 6))
     10 (if (= 0 (remainder min -1)) 0 (sys-exit 7))
     11 (if (= min (* #x-4000000 4)) 0 (sys-exit 8))
     12 (if (= -1 (arithmetic-shift min -1000)) 0 (sys-exit 9))
     13 (sys-exit 0)