sergio/takana
> Una distribución Linux construida con un laboratorio funcional y hermético en el > sótano, y una terminal mutable, clásica y anárquica en el piso de arriba — diseñada > desde el suelo para que una IA programadora entienda, modifique y co…
Etapa G (clib): gradúa 15 libs C ya publicadas — incoming-clib → recipes/
1--- a/c/common/platform.h
2+++ b/c/common/platform.h
3@@ -318,19 +326,34 @@
4 #else /* not BROTLI_USE_PACKED_FOR_UNALIGNED */
5
6 static BROTLI_INLINE uint16_t BrotliUnalignedRead16(const void* p) {
7+#if defined(__mips__) && (!defined(__mips_isa_rev) || __mips_isa_rev < 6)
8+ const struct { uint16_t x; } __attribute__((__packed__)) *t = p;
9+ return t->x;
10+#else
11 uint16_t t;
12 memcpy(&t, p, sizeof t);
13 return t;
14+#endif
15 }
16 static BROTLI_INLINE uint32_t BrotliUnalignedRead32(const void* p) {
17+#if defined(__mips__) && (!defined(__mips_isa_rev) || __mips_isa_rev < 6)
18+ const struct { uint32_t x; } __attribute__((__packed__)) *t = p;
19+ return t->x;
20+#else
21 uint32_t t;
22 memcpy(&t, p, sizeof t);
23 return t;
24+#endif
25 }
26 static BROTLI_INLINE uint64_t BrotliUnalignedRead64(const void* p) {
27+#if defined(__mips__) && (!defined(__mips_isa_rev) || __mips_isa_rev < 6)
28+ const struct { uint64_t x; } __attribute__((__packed__)) *t = p;
29+ return t->x;
30+#else
31 uint64_t t;
32 memcpy(&t, p, sizeof t);
33 return t;
34+#endif
35 }
36 static BROTLI_INLINE size_t BrotliUnalignedReadSizeT(const void* p) {
37 size_t t;
38@@ -338,7 +361,12 @@
39 return t;
40 }
41 static BROTLI_INLINE void BrotliUnalignedWrite64(void* p, uint64_t v) {
42+#if defined(__mips__) && (!defined(__mips_isa_rev) || __mips_isa_rev < 6)
43+ struct { uint64_t x; } __attribute__((__packed__)) *t = p;
44+ t->x = v;
45+#else
46 memcpy(p, &v, sizeof v);
47+#endif
48 }
49
50 #endif /* BROTLI_USE_PACKED_FOR_UNALIGNED */