1. Adjust might be 64bit, so we need to typecast it to UINT32 firstly.
[mirror_edk2.git] / Tools / Source / TianoTools / PeCoffLoader / BasePeCoff.c
index b90d7625f0c34f894f29ef371beab1fceb6b19c1..9c25e1f4b8f1162f7b60ae5b85efb606eed657b9 100644 (file)
@@ -643,7 +643,7 @@ Returns:
 \r
       case EFI_IMAGE_REL_BASED_HIGH:\r
         F16   = (UINT16 *) Fixup;\r
-        *F16  = (UINT16) ((*F16 << 16) + (UINT16) Adjust);\r
+        *F16 = (UINT16) (*F16 + ((UINT16) ((UINT32) Adjust >> 16)));\r
         if (FixupData != NULL) {\r
           *(UINT16 *) FixupData = *F16;\r
           FixupData             = FixupData + sizeof (UINT16);\r