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