Files
ftmemsim-valgrind/none/tests/s390x/or.c
Julian Seward 7a3b89c927 s390x: rewrite some testcases. To make my testing and debugging life
simpler, I've rewritten those testcases from none/tests/s390x that
require binutils to recognize opcodes defined in the
extended-immediate and general-instruction-extension facilities. As a
side effect this change removes the special casing in
none/tests/s390x/Makefile.am and the configury bits to support it.
Fixes #270115.  (Florian Krohm, britzel@acm.org)



git-svn-id: svn://svn.valgrind.org/valgrind/trunk@11693
2011-04-13 14:57:44 +00:00

86 lines
1.9 KiB
C

#include <stdio.h>
#include "or.h"
#include "opcodes.h"
#define oihh(r1,i2) ".long 0xa5" #r1 "8" #i2 "\n\t"
#define oihl(r1,i2) ".long 0xa5" #r1 "9" #i2 "\n\t"
#define oilh(r1,i2) ".long 0xa5" #r1 "a" #i2 "\n\t"
#define oill(r1,i2) ".long 0xa5" #r1 "b" #i2 "\n\t"
static void do_imm_insns(void)
{
memimmsweep(oi, 0);
memimmsweep(oi, 255);
memimmsweep(oi, 128);
memimmsweep(oi, 0xaa);
memimmsweep(oi, 0x55);
oiysweep(00);
oiysweep(ff);
oiysweep(80);
oiysweep(aa);
oiysweep(55);
immsweep(oihh, 0055);
immsweep(oihl, 0055);
immsweep(oilh, 0055);
immsweep(oill, 0055);
immsweep(oihh, 00aa);
immsweep(oihl, 00aa);
immsweep(oilh, 00aa);
immsweep(oill, 00aa);
immsweep(oihh, 00ff);
immsweep(oihl, 00ff);
immsweep(oilh, 00ff);
immsweep(oill, 00ff);
immsweep(oihh, 0000);
immsweep(oihl, 0000);
immsweep(oilh, 0000);
immsweep(oill, 0000);
immsweep(oihh, ffff);
immsweep(oihl, ffff);
immsweep(oilh, ffff);
immsweep(oill, ffff);
immsweep(oihh, aaaa);
immsweep(oihl, aaaa);
immsweep(oilh, aaaa);
immsweep(oill, aaaa);
immsweep(oihh, 5555);
immsweep(oihl, 5555);
immsweep(oilh, 5555);
immsweep(oill, 5555);
}
static void do_regmem_insns(unsigned long s2)
{
memsweep(o, s2);
memsweep(og, s2);
regsweep(or, s2);
regsweep(ogr, s2);
oysweep(s2);
}
int main()
{
do_regmem_insns(0x0ul);
do_regmem_insns(0x5555555555555555ul);
do_regmem_insns(0xaaaaaaaaaaaaaaaaul);
do_regmem_insns(0x8000000000000000ul);
do_regmem_insns(0xfffffffffffffffful);
do_regmem_insns(0x7fffffff00000000ul);
do_regmem_insns(0x8000000000000000ul);
do_regmem_insns(0xaaaaaaaa00000000ul);
do_regmem_insns(0xffffffff00000000ul);
do_regmem_insns(0x000000007ffffffful);
do_regmem_insns(0x0000000080000000ul);
do_regmem_insns(0x0000000055555555ul);
do_regmem_insns(0x00000000fffffffful);
do_regmem_insns(0x000000000000fffful);
do_regmem_insns(0x0000000000007ffful);
do_regmem_insns(0x0000000000008000ul);
do_regmem_insns(0x000000000000fffful);
do_imm_insns();
return 0;
}