xref: /openbmc/qemu/tests/tcg/s390x/pack.c (revision f530ba8f)
13cea0927SPavel Zbitskiy #include <unistd.h>
23cea0927SPavel Zbitskiy 
main(void)33cea0927SPavel Zbitskiy int main(void)
43cea0927SPavel Zbitskiy {
53cea0927SPavel Zbitskiy     char data[] = {0xaa, 0xaa, 0xf1, 0xf2, 0xf3, 0xc4, 0xaa, 0xaa};
63cea0927SPavel Zbitskiy     char exp[] = {0xaa, 0xaa, 0x00, 0x01, 0x23, 0x4c, 0xaa, 0xaa};
73cea0927SPavel Zbitskiy     int i;
83cea0927SPavel Zbitskiy 
93cea0927SPavel Zbitskiy     asm volatile(
103cea0927SPavel Zbitskiy         "    pack 2(4,%[data]),2(4,%[data])\n"
113cea0927SPavel Zbitskiy         :
12*f530ba8fSThomas Huth         : [data] "a" (&data[0])
133cea0927SPavel Zbitskiy         : "memory");
143cea0927SPavel Zbitskiy     for (i = 0; i < 8; i++) {
153cea0927SPavel Zbitskiy         if (data[i] != exp[i]) {
163cea0927SPavel Zbitskiy             write(1, "bad data\n", 9);
173cea0927SPavel Zbitskiy             return 1;
183cea0927SPavel Zbitskiy         }
193cea0927SPavel Zbitskiy     }
203cea0927SPavel Zbitskiy     return 0;
213cea0927SPavel Zbitskiy }
22