mescc: Remove jump calculation, use labels: remove offset-jumps.
authorJan Nieuwenhuizen <janneke@gnu.org>
Tue, 13 Jun 2017 18:27:40 +0000 (20:27 +0200)
committerJan Nieuwenhuizen <janneke@gnu.org>
Tue, 13 Jun 2017 18:27:40 +0000 (20:27 +0200)
* module/mes/as-i386.mes (i386:XXjump, i386:Xjump, i386:Xjump-c,
  i386:Xjump-cz, i386:Xjump-g, i386:Xjump-ge, i386:Xjump-l,
  i386:Xjump-le, i386:Xjump-nc, i386:Xjump-ncz, i386:Xjump-ncz",
  i386:Xjump-nz, i386:Xjump-z, i386:jump, i386:jump-byte-nz,
  i386:jump-byte-z, i386:jump-c, i386:jump-cz, i386:jump-le,
  i386:jump-nc, i386:jump-ncz, i386:jump-nz, i386:jump-z,
  i386:test-jump-z): Remove.
* module/mes/as-i386.scm: Remove export.

module/mes/as-i386.mes
module/mes/as-i386.scm

index ae667d85fabc5a2f638187b870043347de60f525..dbffb710404529a78045b1d06ce5e8c257f1a537 100644 (file)
 (define (i386:accu-test)
   '(#x85 #xc0))                         ; test   %eax,%eax
 
-(define (i386:Xjump n)
-  (or n (error "invalid value: i386:Xjump: n: " n))
-  `(#xe9 ,@(int->bv32 (if (>= n 0) n (- n 5))))) ; jmp . + <n>
-
-(define (i386:XXjump n)
-  (or n (error "invalid value: i386:XXjump: n: " n))
-  `(#xe9 ,@(int->bv32 n)))              ; jmp . + <n>
-
 (define (i386:jump-label label)
   `(#xe9 ,label #f #f #f))              ; jmp . + <n>
 
 (define (i386:jump-label-z label)
   `(#x0f #x84 ,label #f #f #f))         ; jz . + <n>
 
-(define (i386:Xjump-nz n)
-  (or n (error "invalid value: i386:Xjump-nz: n: " n))
-  `(#x0f #x85 ,@(int->bv32 n)))         ; jnz . + <n>
-
-(define (i386:Xjump-z n)
-  (or n (error "invalid value: i386:Xjump-z: n: " n))
-  `(#x0f #x84 ,@(int->bv32 n)))         ; jz . + <n>
-
-(define (i386:jump n) ;;FIXME: NEED THIS WEIRDNESS for t.c
-  (when (or (> n #x80) (< n #x-80))
-    (error "JUMP n=" n))
-  `(#xeb ,(if (>= n 0) (- n 2) (- n 2)))) ; jmp <n>
-
-(define (i386:jump-c n)
-  (when (or (> n #x80) (< n #x-80))
-    (error "JUMP n=" n))
-  `(#x72 ,(if (>= n 0) n (- n 2))))     ; jc <n>
-
-(define (i386:jump-cz n)
-  (when (or (> n #x80) (< n #x-80))
-    (error "JUMP n=" n))
-  `(#x76 ,(if (>= n 0) n (- n 2))))     ; jbe <n>
-
-(define (i386:jump-ncz n)
-  (when (or (> n #x80) (< n #x-80))
-    (error "JUMP-ncz n=" n))
-  `(#x77 ,(if (>= n 0) n (- n 2))))     ; ja <n>
-
-(define (i386:jump-nc n)
-  (when (or (> n #x80) (< n #x-80))
-    (error "JUMP-nc n=" n))
-  `(#x73 ,(if (>= n 0) n (- n 2))))     ; jnc <n>
-
-;; unsigned
-(define (i386:Xjump-nc n)
-  (or n (error "invalid value i386:Xjump-nc: " n))
-  `(#x0f #x83 ,@(int->bv32 n)))         ; jnc <n>
-
-;; unsigned
-(define (i386:Xjump-ncz n)
-  (or n (error "invalid value: i386:Xjump-ncz" n))
-  `(#x0f #x87 ,@(int->bv32 n)))         ; ja <n>
-
-;; unsigned
-;; (define (i386:Xjump-c n)
-;;   (or n urg:Xjump-c)
-;;   `(#x0f #x82 ,@(int->bv32 n)))     ; jc <n>
-
-;; unsigned
-;; (define (i386:Xjump-cz n)
-;;   (or n urg:Xjump-cz)
-;;   `(#x0f #x86 ,@(int->bv32 n)))         ; jbe <n>
-
-;; signed
-(define (i386:Xjump-g n)
-  (or n (error "invalid value: i386:Xjump-g: " n))
-  `(#x0f #x8f ,@(int->bv32 n)))         ; jg/jnle <n>
-
-;; signed
-(define (i386:Xjump-ge n)
-  (or n (error "invalid value: Xjump-ge: " n))
-  `(#x0f #x8d ,@(int->bv32 n)))         ; jge/jnl <n>
-
-;; ;; signed
-;; (define (i386:Xjump-l n)
-;;   (or n urg:Xjump-l)
-;;   `(#x0f #x8c ,@(int->bv32 n)))         ; jl/jnge <n>
-
-;; ;; signed
-;; (define (i386:Xjump-le n)
-;;   (or n urg:Xjump-le)
-;;   `(#x0f #x8e ,@(int->bv32 n)))         ; jle/jgn <n>
-
-(define (i386:jump-z n)
-  (when (or (> n #x80) (< n #x-80))
-    (error "JUMP-z n=" n))
-  `(#x74 ,(if (>= n 0) n (- n 2))))     ; jz <n>
-
-(define (i386:jump-nz n)
-  (when (or (> n #x80) (< n #x-80))
-    (error "JUMP-nz n=" n))
-  `(#x75 ,(if (>= n 0) n (- n 2))))     ; jnz <n>
-
-(define (i386:test-jump-z n)
-  (when (or (> n #x80) (< n #x-80))
-    (error "JUMP-z n=" n))
-  `(#x85 #xc0                           ; test   %eax,%eax
-    #x74 ,(if (>= n 0) n (- n 4))))     ; jz <n>
-
-(define (i386:jump-byte-nz n)
-  (when (or (> n #x80) (< n #x-80))
-    (error "JUMP-byte-nz n=" n))
-  `(#x84 #xc0                           ; test   %al,%al
-    #x75 ,(if (>= n 0) n (- n 4))))     ; jne <n>
-
-(define (i386:jump-byte-z n)
-  (when (or (> n #x80) (< n #x-80))
-    (error "JUMP-byte-z n=" n))
-  `(#x84 #xc0                           ; test   %al,%al
-    #x74 ,(if (>= n 0) n (- n 4))))     ; jne <n>
-
 (define (i386:byte-test-base)
   `(#x38 #xc2))                         ; cmp    %al,%dl
 
index f324b8ca08ae79aeb020602a698012123da21f47..e76ae40bb5ee62bb3274b336752132bde2e24967 100644 (file)
@@ -79,7 +79,6 @@
             i386:label->base
             i386:label-mem->accu
             i386:label-mem->base
-
             i386:jump
             i386:jump-label
             i386:jump-label-byte-z
             i386:jump-label-ge
             i386:jump-label-nz
             i386:jump-label-z
-
-            i386:jump-byte-nz
-            i386:jump-byte-z
-            i386:jump-c
-            i386:jump-cz
-            i386:jump-le
-            i386:jump-nc
-            i386:jump-ncz
-            i386:jump-nz
-            i386:jump-z
             i386:local->accu
             i386:local->base
             i386:local-add
             i386:ret-local
             i386:sub-base
             i386:test-base
-            i386:test-jump-z
             i386:value->accu
             i386:value->accu-address
             i386:value->accu-address+n
             i386:value->base
             i386:xor-accu
             i386:xor-zf
-
-            ;; long jump
-            i386:Xjump
-            ;;i386:Xjump-c
-            ;;i386:Xjump-cz
-            i386:Xjump-nc
-            i386:Xjump-ncz
-
-            i386:Xjump-nz
-            i386:Xjump-z
-
-            i386:Xjump-g
-            i386:Xjump-ge
-
-            ;; i386:Xjump-l
-            ;; i386:Xjump-le
-
-            i386:XXjump
-
             i386:accu+n
             i386:base+n
             i386:base-address->accu-address
-
             i386:nz->accu
             i386:z->accu
             i386:accu<->stack