@@ -746,29 +746,30 @@ static ZyanStatus ZydisReadDisplacement(ZydisDecoderState* state,
746746 {
747747 ZyanU16 value ;
748748 ZYAN_CHECK (ZydisInputNextBytes (state , instruction , (ZyanU8 * )& value , 2 ));
749+ ZYAN_LE16_TO_NATIVE (value );
749750 instruction -> raw .disp .value = * (ZyanI16 * )& value ;
750751 break ;
751752 }
752753 case 32 :
753754 {
754755 ZyanU32 value ;
755756 ZYAN_CHECK (ZydisInputNextBytes (state , instruction , (ZyanU8 * )& value , 4 ));
757+ ZYAN_LE32_TO_NATIVE (value );
756758 instruction -> raw .disp .value = * (ZyanI32 * )& value ;
757759 break ;
758760 }
759761 case 64 :
760762 {
761763 ZyanU64 value ;
762764 ZYAN_CHECK (ZydisInputNextBytes (state , instruction , (ZyanU8 * )& value , 8 ));
765+ ZYAN_LE64_TO_NATIVE (value );
763766 instruction -> raw .disp .value = * (ZyanI64 * )& value ;
764767 break ;
765768 }
766769 default :
767770 ZYAN_UNREACHABLE ;
768771 }
769772
770- // TODO: Fix endianess on big-endian systems
771-
772773 return ZYAN_STATUS_SUCCESS ;
773774}
774775
@@ -817,6 +818,7 @@ static ZyanStatus ZydisReadImmediate(ZydisDecoderState* state,
817818 {
818819 ZyanU16 value ;
819820 ZYAN_CHECK (ZydisInputNextBytes (state , instruction , (ZyanU8 * )& value , 2 ));
821+ ZYAN_LE16_TO_NATIVE (value );
820822 if (is_signed )
821823 {
822824 instruction -> raw .imm [id ].value .s = (ZyanI16 )value ;
@@ -830,6 +832,7 @@ static ZyanStatus ZydisReadImmediate(ZydisDecoderState* state,
830832 {
831833 ZyanU32 value ;
832834 ZYAN_CHECK (ZydisInputNextBytes (state , instruction , (ZyanU8 * )& value , 4 ));
835+ ZYAN_LE32_TO_NATIVE (value );
833836 if (is_signed )
834837 {
835838 instruction -> raw .imm [id ].value .s = (ZyanI32 )value ;
@@ -843,6 +846,7 @@ static ZyanStatus ZydisReadImmediate(ZydisDecoderState* state,
843846 {
844847 ZyanU64 value ;
845848 ZYAN_CHECK (ZydisInputNextBytes (state , instruction , (ZyanU8 * )& value , 8 ));
849+ ZYAN_LE64_TO_NATIVE (value );
846850 if (is_signed )
847851 {
848852 instruction -> raw .imm [id ].value .s = (ZyanI64 )value ;
@@ -856,8 +860,6 @@ static ZyanStatus ZydisReadImmediate(ZydisDecoderState* state,
856860 ZYAN_UNREACHABLE ;
857861 }
858862
859- // TODO: Fix endianess on big-endian systems
860-
861863 return ZYAN_STATUS_SUCCESS ;
862864}
863865
0 commit comments