case 0x26: return "%es:";
case 0x64: return "%fs:";
case 0x65: return "%gs:";
+ case 0x36: return "%ss:";
default: vpanic("sorbTxt(x86,guest)");
}
}
case 0x26: sreg = R_ES; break;
case 0x64: sreg = R_FS; break;
case 0x65: sreg = R_GS; break;
+ case 0x36: sreg = R_SS; break;
default: vpanic("handleSegOverride(x86,guest)");
}
Int sz = 4;
/* sorb holds the segment-override-prefix byte, if any. Zero if no
- prefix has been seen, else one of {0x26, 0x3E, 0x64, 0x65}
+ prefix has been seen, else one of {0x26, 0x36, 0x3E, 0x64, 0x65}
indicating the prefix. */
UChar sorb = 0;
case 0x26: /* %ES: */
case 0x64: /* %FS: */
case 0x65: /* %GS: */
+ case 0x36: /* %SS: */
if (sorb != 0)
goto decode_failure; /* only one seg override allowed */
sorb = pre;
}
break;
}
- case 0x36: /* %SS: */
- /* SS override cases are not handled */
- goto decode_failure;
default:
goto not_a_prefix;
}