View | Details | Raw Unified | Return to bug 37610
Collapse All | Expand All

(-)decode.c (+12 lines)
Lines 734-739 Link Here
734
{
734
{
735
	unsigned offset;
735
	unsigned offset;
736
736
737
	if (M.x86.mode & SYSMODE_PREFIX_ADDR) {
738
		u32* rp = decode_rm_long_register(rm);
739
		return (*rp);
740
	}
737
	switch (rm) {
741
	switch (rm) {
738
      case 0:
742
      case 0:
739
		DECODE_PRINTF("[BX+SI]");
743
		DECODE_PRINTF("[BX+SI]");
Lines 782-787 Link Here
782
	int rm)
786
	int rm)
783
{
787
{
784
	int displacement = (s8)fetch_byte_imm();
788
	int displacement = (s8)fetch_byte_imm();
789
	if (M.x86.mode & SYSMODE_PREFIX_ADDR) {
790
		u32* rp = decode_rm_long_register(rm);
791
		return (*rp + displacement);
792
	}
785
	switch (rm) {
793
	switch (rm) {
786
      case 0:
794
      case 0:
787
		DECODE_PRINTF2("%d[BX+SI]", displacement);
795
		DECODE_PRINTF2("%d[BX+SI]", displacement);
Lines 830-835 Link Here
830
	int rm)
838
	int rm)
831
{
839
{
832
	unsigned displacement = (u16)fetch_word_imm();
840
	unsigned displacement = (u16)fetch_word_imm();
841
	if (M.x86.mode & SYSMODE_PREFIX_ADDR) {
842
		u32* rp = decode_rm_long_register(rm);
843
		return (*rp + displacement);
844
	}
833
	switch (rm) {
845
	switch (rm) {
834
      case 0:
846
      case 0:
835
		DECODE_PRINTF2("%04x[BX+SI]", displacement);
847
		DECODE_PRINTF2("%04x[BX+SI]", displacement);

Return to bug 37610