static inline int32_t shift_s32_l4 (int32_t op)
{
asm(
"swap %A[op]\n"
"swap %B[op]\n"
"swap %C[op]\n"
"swap %D[op]\n"
"andi %D[op],0xF0\n"
"add %D[op],%C[op]\n"
"andi %C[op],0xF0\n"
"sub %D[op],%C[op]\n"
"add %C[op],%B[op]\n"
"andi %B[op],0xF0\n"
"sub %C[op],%B[op]\n"
"add %B[op],%A[op]\n"
"andi %A[op],0xF0\n"
"sub %B[op],%A[op]\n"
: [op] "=&d" (op)
: "[op]" (op)
);
return op;
}
c3RhdGljIGlubGluZSBpbnQzMl90IHNoaWZ0X3MzMl9sNCAoaW50MzJfdCBvcCkKewogICAgYXNtKAogICAgICAgICJzd2FwICVBW29wXVxuIgogICAgICAgICJzd2FwICVCW29wXVxuIgogICAgICAgICJzd2FwICVDW29wXVxuIgogICAgICAgICJzd2FwICVEW29wXVxuIgogICAgICAgICJhbmRpICVEW29wXSwweEYwXG4iCiAgICAgICAgImFkZCAlRFtvcF0sJUNbb3BdXG4iCiAgICAgICAgImFuZGkgJUNbb3BdLDB4RjBcbiIKICAgICAgICAic3ViICVEW29wXSwlQ1tvcF1cbiIKICAgICAgICAiYWRkICVDW29wXSwlQltvcF1cbiIKICAgICAgICAiYW5kaSAlQltvcF0sMHhGMFxuIgogICAgICAgICJzdWIgJUNbb3BdLCVCW29wXVxuIgogICAgICAgICJhZGQgJUJbb3BdLCVBW29wXVxuIgogICAgICAgICJhbmRpICVBW29wXSwweEYwXG4iCiAgICAgICAgInN1YiAlQltvcF0sJUFbb3BdXG4iCiAgICAgICAgOiBbb3BdICI9JmQiIChvcCkKICAgICAgICA6ICJbb3BdIiAob3ApCiAgICApOwogICAgcmV0dXJuIG9wOwp9