mescc: Use signed division for x86, x86_64 when appropriate.
This fixes 36-compare-arithmetic.c * module/mescc/i386/as.scm (i386:r0/r1, i386:r0%r1): Do not reset signed?. * module/mescc/x86_64/as.scm (x86_64:r0/r1, x86_64:r0%r1): Likewise. * lib/tests/scaffold/36-compare-arithmetic.c (main): Use unique exit value per failure.
This commit is contained in:
parent
8429a4b0b6
commit
fa4147a284
|
@ -1,6 +1,6 @@
|
|||
/* -*-comment-start: "//";comment-end:""-*-
|
||||
* GNU Mes --- Maxwell Equations of Software
|
||||
* Copyright © 2017,2018 Jan (janneke) Nieuwenhuizen <janneke@gnu.org>
|
||||
* Copyright © 2017,2018,2020 Jan (janneke) Nieuwenhuizen <janneke@gnu.org>
|
||||
*
|
||||
* This file is part of GNU Mes.
|
||||
*
|
||||
|
@ -30,31 +30,31 @@ main ()
|
|||
|
||||
oputs ("t: 2 - 1\n");
|
||||
if (0)
|
||||
return 1;
|
||||
return 2;
|
||||
|
||||
oputs ("t: 1 << 3\n");
|
||||
if (1 << 3 != 8)
|
||||
return 1;
|
||||
return 3;
|
||||
|
||||
oputs ("t: 8 >> 3\n");
|
||||
if (8 >> 3 != 1)
|
||||
return 1;
|
||||
return 4;
|
||||
|
||||
oputs ("t: 8 / 4\n");
|
||||
if (8 / 4 != 2)
|
||||
return 1;
|
||||
return 5;
|
||||
|
||||
oputs ("t: 8 / -4\n");
|
||||
if (8 / -4 != -2)
|
||||
return 1;
|
||||
return 6;
|
||||
|
||||
oputs ("t: -8 / -4\n");
|
||||
if (-8 / -4 != 2)
|
||||
return 1;
|
||||
return 7;
|
||||
|
||||
oputs ("t: -8 / 4\n");
|
||||
if (-8 / 4 != -2)
|
||||
return 1;
|
||||
return 8;
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
|
|
@ -355,8 +355,7 @@
|
|||
`((,(string-append "and____%" r1 ",%" r0)))))
|
||||
|
||||
(define (i386:r0/r1 info signed?)
|
||||
(let ((signed? #f) ; nobody knows, -- all advice are belong to us?
|
||||
(allocated (.allocated info))
|
||||
(let ((allocated (.allocated info))
|
||||
(r0 (get-r0 info))
|
||||
(r1 (get-r1 info)))
|
||||
(if (not (member "edx" allocated))
|
||||
|
@ -381,8 +380,7 @@
|
|||
("pop____%eax")))))
|
||||
|
||||
(define (i386:r0%r1 info signed?)
|
||||
(let ((signed? #f) ; nobody knows, -- all advice are belong to us?
|
||||
(allocated (.allocated info))
|
||||
(let ((allocated (.allocated info))
|
||||
(r0 (get-r0 info))
|
||||
(r1 (get-r1 info)))
|
||||
(if (not (member "edx" allocated))
|
||||
|
|
|
@ -435,8 +435,7 @@
|
|||
`((,(string-append "and____%" r1 ",%" r0)))))
|
||||
|
||||
(define (x86_64:r0/r1 info signed?)
|
||||
(let ((signed? #f) ; nobody knows, -- all advice are belong to us?
|
||||
(allocated (.allocated info))
|
||||
(let ((allocated (.allocated info))
|
||||
(r0 (get-r0 info))
|
||||
(r1 (get-r1 info)))
|
||||
(if (not (member "rdx" allocated))
|
||||
|
@ -461,8 +460,7 @@
|
|||
("pop____%rax")))))
|
||||
|
||||
(define (x86_64:r0%r1 info signed?)
|
||||
(let ((signed? #f) ; nobody knows, -- all advice are belong to us?
|
||||
(allocated (.allocated info))
|
||||
(let ((allocated (.allocated info))
|
||||
(r0 (get-r0 info))
|
||||
(r1 (get-r1 info)))
|
||||
(if (not (member "rdx" allocated))
|
||||
|
|
Loading…
Reference in a new issue