Index: firefox-146.0.1/gfx/skia/skia/src/core/SkBlitRow_D32.cpp
===================================================================
--- firefox-146.0.1.orig/gfx/skia/skia/src/core/SkBlitRow_D32.cpp
+++ firefox-146.0.1/gfx/skia/skia/src/core/SkBlitRow_D32.cpp
@@ -554,7 +554,7 @@ SkBlitRow::Proc32 SkBlitRow::Factory32(u
 void SkBlitRow::Color32(SkPMColor dst[], int count, SkPMColor color) {
     switch (SkGetPackedA32(color)) {
         case   0: /* Nothing to do */                  return;
-        case 255: SkOpts::memset32(dst, color, count); return;
+        case 255: SkOpts::memset32(dst, BE_CONVERT(color), count); return;
     }
-    return SkOpts::blit_row_color32(dst, count, color);
+    return SkOpts::blit_row_color32(dst, count, BE_CONVERT(color));
 }
Index: firefox-146.0.1/gfx/skia/skia/src/core/SkBlitter_ARGB32.cpp
===================================================================
--- firefox-146.0.1.orig/gfx/skia/skia/src/core/SkBlitter_ARGB32.cpp
+++ firefox-146.0.1/gfx/skia/skia/src/core/SkBlitter_ARGB32.cpp
@@ -1497,17 +1497,17 @@ void SkARGB32_Blitter::blitAntiH2(int x,
     uint32_t* device = fDevice.writable_addr32(x, y);
     SkDEBUGCODE((void)fDevice.writable_addr32(x + 1, y);)
 
-    device[0] = SkBlendARGB32(fPMColor, device[0], a0);
-    device[1] = SkBlendARGB32(fPMColor, device[1], a1);
+    device[0] = BE_CONVERT(SkBlendARGB32(fPMColor, BE_CONVERT(device[0]), a0));
+    device[1] = BE_CONVERT(SkBlendARGB32(fPMColor, BE_CONVERT(device[1]), a1));
 }
 
 void SkARGB32_Blitter::blitAntiV2(int x, int y, U8CPU a0, U8CPU a1) {
     uint32_t* device = fDevice.writable_addr32(x, y);
     SkDEBUGCODE((void)fDevice.writable_addr32(x, y + 1);)
 
-    device[0] = SkBlendARGB32(fPMColor, device[0], a0);
+    device[0] = BE_CONVERT(SkBlendARGB32(fPMColor, BE_CONVERT(device[0]), a0));
     device = (uint32_t*)((char*)device + fDevice.rowBytes());
-    device[0] = SkBlendARGB32(fPMColor, device[0], a1);
+    device[0] = BE_CONVERT(SkBlendARGB32(fPMColor, BE_CONVERT(device[0]), a1));
 }
 
 //////////////////////////////////////////////////////////////////////////////////////
@@ -1610,7 +1610,7 @@ void SkARGB32_Opaque_Blitter::blitAntiH(
         }
         SkAlpha aa = antialias[0];
         if (aa == 255) {
-            SkOpts::memset32(device, fPMColor, count);
+            SkOpts::memset32(device, BE_CONVERT(fPMColor), count);
         } else if (aa > 0) {
             SkPMColor sc = SkAlphaMulQ(fPMColor, SkAlpha255To256(aa));
             SkBlitRow::Color32(device, count, sc);
@@ -1625,17 +1625,17 @@ void SkARGB32_Opaque_Blitter::blitAntiH2
     uint32_t* device = fDevice.writable_addr32(x, y);
     SkDEBUGCODE((void)fDevice.writable_addr32(x + 1, y);)
 
-    device[0] = SkFastFourByteInterp(fPMColor, device[0], a0);
-    device[1] = SkFastFourByteInterp(fPMColor, device[1], a1);
+    device[0] = BE_CONVERT(SkFastFourByteInterp(fPMColor, BE_CONVERT(device[0]), a0));
+    device[1] = BE_CONVERT(SkFastFourByteInterp(fPMColor, BE_CONVERT(device[1]), a1));
 }
 
 void SkARGB32_Opaque_Blitter::blitAntiV2(int x, int y, U8CPU a0, U8CPU a1) {
     uint32_t* device = fDevice.writable_addr32(x, y);
     SkDEBUGCODE((void)fDevice.writable_addr32(x, y + 1);)
 
-    device[0] = SkFastFourByteInterp(fPMColor, device[0], a0);
+    device[0] = BE_CONVERT(SkFastFourByteInterp(fPMColor, BE_CONVERT(device[0]), a0));
     device = (uint32_t*)((char*)device + fDevice.rowBytes());
-    device[0] = SkFastFourByteInterp(fPMColor, device[0], a1);
+    device[0] = BE_CONVERT(SkFastFourByteInterp(fPMColor, BE_CONVERT(device[0]), a1));
 }
 
 std::optional<SkBlitter::DirectBlit> SkARGB32_Opaque_Blitter::canDirectBlit() {
@@ -1659,7 +1659,7 @@ void SkARGB32_Blitter::blitV(int x, int
     const unsigned dst_scale = SkAlpha255To256(255 - SkGetPackedA32(color));
     const size_t rowBytes = fDevice.rowBytes();
     while (--height >= 0) {
-        device[0] = color + SkAlphaMulQ(device[0], dst_scale);
+        device[0] = BE_CONVERT(color + SkAlphaMulQ(BE_CONVERT(device[0]), dst_scale));
         device = (uint32_t*)((char*)device + rowBytes);
     }
 }
@@ -1675,7 +1675,7 @@ void SkARGB32_Blitter::blitRect(int x, i
     const size_t rowBytes = fDevice.rowBytes();
 
     if (SkGetPackedA32(fPMColor) == 0xFF) {
-        SkOpts::rect_memset32(device, fPMColor, width, rowBytes, height);
+        SkOpts::rect_memset32(device, BE_CONVERT(fPMColor), width, rowBytes, height);
     } else {
         while (height --> 0) {
             SkBlitRow::Color32(device, width, fPMColor);
@@ -1704,7 +1704,7 @@ void SkARGB32_Black_Blitter::blitAntiH(i
         unsigned aa = antialias[0];
         if (aa) {
             if (aa == 255) {
-                SkOpts::memset32(device, kBlack, count);
+                SkOpts::memset32(device, BE_CONVERT(kBlack), count);
             } else {
                 const SkPMColor src = aa << SK_A32_SHIFT;
                 const unsigned dst_scale = SkAlpha255To256(255 - aa);
Index: firefox-146.0.1/gfx/skia/skia/src/core/SkColorData.h
===================================================================
--- firefox-146.0.1.orig/gfx/skia/skia/src/core/SkColorData.h
+++ firefox-146.0.1/gfx/skia/skia/src/core/SkColorData.h
@@ -18,6 +18,13 @@
 
 #include <cstdint>
 
+/* Macro to covert between big endian and little endian memory order. */
+#ifdef SK_CPU_BENDIAN
+#define BE_CONVERT(c) ((((c) & 0xff)<<24) | (((c) & 0xff00)<<8) | (((c) & 0xff0000)>>8) | (((c) & 0xff000000)>>24))
+#else
+#define BE_CONVERT(c) c
+#endif
+
 ////////////////////////////////////////////////////////////////////////////////////////////
 // Convert a 16bit pixel to a 32bit pixel
 
