asm volatile (
                "       sacf    256\n"
                "0:     llgc    %[tmp],0(%[src])\n"
-               "       sllg    %[val],%[val],8\n"
+               "4:     sllg    %[val],%[val],8\n"
                "       aghi    %[src],1\n"
                "       ogr     %[val],%[tmp]\n"
                "       brctg   %[cnt],0b\n"
                "2:     ipm     %[cc]\n"
                "       srl     %[cc],28\n"
                "3:     sacf    768\n"
-               EX_TABLE(0b, 3b) EX_TABLE(1b, 3b) EX_TABLE(2b, 3b)
+               EX_TABLE(0b, 3b) EX_TABLE(4b, 3b) EX_TABLE(1b, 3b) EX_TABLE(2b, 3b)
                :
                [src] "+a" (src), [cnt] "+d" (cnt),
                [val] "+d" (val), [tmp] "=d" (tmp),
                "2:     ahi     %[shift],-8\n"
                "       srlg    %[tmp],%[val],0(%[shift])\n"
                "3:     stc     %[tmp],0(%[dst])\n"
-               "       aghi    %[dst],1\n"
+               "5:     aghi    %[dst],1\n"
                "       brctg   %[cnt],2b\n"
                "4:     sacf    768\n"
-               EX_TABLE(0b, 4b) EX_TABLE(1b, 4b) EX_TABLE(3b, 4b)
+               EX_TABLE(0b, 4b) EX_TABLE(1b, 4b) EX_TABLE(3b, 4b) EX_TABLE(5b, 4b)
                :
                [ioaddr_len] "+&d" (ioaddr_len.pair),
                [cc] "+d" (cc), [val] "=d" (val),