1*3cea0927SPavel Zbitskiy #include <unistd.h> 2*3cea0927SPavel Zbitskiy 3*3cea0927SPavel Zbitskiy int main(void) 4*3cea0927SPavel Zbitskiy { 5*3cea0927SPavel Zbitskiy char data[] = {0xaa, 0xaa, 0xf1, 0xf2, 0xf3, 0xc4, 0xaa, 0xaa}; 6*3cea0927SPavel Zbitskiy char exp[] = {0xaa, 0xaa, 0x00, 0x01, 0x23, 0x4c, 0xaa, 0xaa}; 7*3cea0927SPavel Zbitskiy int i; 8*3cea0927SPavel Zbitskiy 9*3cea0927SPavel Zbitskiy asm volatile( 10*3cea0927SPavel Zbitskiy " pack 2(4,%[data]),2(4,%[data])\n" 11*3cea0927SPavel Zbitskiy : 12*3cea0927SPavel Zbitskiy : [data] "r" (&data[0]) 13*3cea0927SPavel Zbitskiy : "memory"); 14*3cea0927SPavel Zbitskiy for (i = 0; i < 8; i++) { 15*3cea0927SPavel Zbitskiy if (data[i] != exp[i]) { 16*3cea0927SPavel Zbitskiy write(1, "bad data\n", 9); 17*3cea0927SPavel Zbitskiy return 1; 18*3cea0927SPavel Zbitskiy } 19*3cea0927SPavel Zbitskiy } 20*3cea0927SPavel Zbitskiy return 0; 21*3cea0927SPavel Zbitskiy } 22