Please consider to rewrite this.
```d
switch (regsize)
{
case 2: value = ps[i]; break;
case 4:
    if (tym == TYldouble || tym == TYildouble)
        value = i == 2 ? ps[4] : pi[i]; // 80 bits
    else
        value = pi[i];
    break;
case 8: value = pl[i]; break;
default: asssert(0);
}
```