9897bb
Index: acpica-unix2-20200925/source/components/tables/tbutils.c
9897bb
===================================================================
9897bb
--- acpica-unix2-20200925.orig/source/components/tables/tbutils.c
9897bb
+++ acpica-unix2-20200925/source/components/tables/tbutils.c
9897bb
@@ -238,9 +238,11 @@ AcpiTbGetRootTableEntry (
9897bb
          * 64-bit platform, XSDT: Move (unaligned) 64-bit to local,
9897bb
          *  return 64-bit
9897bb
          */
9897bb
-        ACPI_MOVE_64_TO_64 (&Address64, TableEntry);
9897bb
 
9897bb
 #if ACPI_MACHINE_WIDTH == 32
9897bb
+	UINT32 Tmp32 = (UINT32) TableEntry;
9897bb
+
9897bb
+	Address64 = (UINT64) Tmp32;
9897bb
         if (Address64 > ACPI_UINT32_MAX)
9897bb
         {
9897bb
             /* Will truncate 64-bit address to 32 bits, issue warning */
9897bb
@@ -250,8 +252,14 @@ AcpiTbGetRootTableEntry (
9897bb
                 " truncating",
9897bb
                 ACPI_FORMAT_UINT64 (Address64)));
9897bb
         }
9897bb
-#endif
9897bb
+
9897bb
+        return ((ACPI_PHYSICAL_ADDRESS) (*ACPI_CAST_PTR (
9897bb
+            UINT32, TableEntry)));
9897bb
+#else
9897bb
+	Address64 = (UINT64) TableEntry;
9897bb
+
9897bb
         return ((ACPI_PHYSICAL_ADDRESS) (Address64));
9897bb
+#endif
9897bb
     }
9897bb
 }
9897bb
 
9897bb
Index: acpica-unix2-20200925/source/compiler/aslparseop.c
9897bb
===================================================================
9897bb
--- acpica-unix2-20200925.orig/source/compiler/aslparseop.c
9897bb
+++ acpica-unix2-20200925/source/compiler/aslparseop.c
9897bb
@@ -289,7 +289,11 @@ TrCreateValuedLeafOp (
9897bb
         ParseOpcode == PARSEOP_NAMESEG ||
9897bb
         ParseOpcode == PARSEOP_STRING_LITERAL)
9897bb
     {
9897bb
+#if ACPI_MACHINE_WIDTH == 32
9897bb
+        Op->Asl.Value.String = (char *) (UINT32) Value;
9897bb
+#else
9897bb
         Op->Asl.Value.String = (char *) Value;
9897bb
+#endif
9897bb
     }
9897bb
     else
9897bb
     {