trampoline-mips64el
authorDebian Common Lisp Team <pkg-common-lisp-devel@lists.alioth.debian.org>
Sun, 26 Nov 2017 17:23:10 +0000 (17:23 +0000)
committerSébastien Villemot <sebastien@debian.org>
Sun, 26 Nov 2017 17:23:10 +0000 (17:23 +0000)
Gbp-Pq: Name trampoline-mips64el.patch

trampoline/trampoline.c

index a53f1708254c7bd4f468f2a7abe8afbdcf49ca29..07e82b2aa8ec564c7d7284357f14d395becf75b7 100644 (file)
@@ -760,17 +760,30 @@ trampoline_function_t alloc_trampoline (trampoline_function_t address, void** va
    *    .dword <data>                  <data>
    *    .dword <address>               <address>
    */
+#if __BYTE_ORDER__ == __ORDER_BIG_ENDIAN__
   *(long *)          (function + 0) = 0xDF220018DF230020L;
   *(long *)          (function + 8) = 0xFC430000DF390028L;
   *(long *)          (function +16) = 0x0320000800000000L;
+#else
+  *(long *)          (function + 0) = 0xDF230020DF220018L;
+  *(long *)          (function + 8) = 0xDF390028FC430000L;
+  *(long *)          (function +16) = 0x0000000003200008L;
+#endif
   *(unsigned long *) (function +24) = (unsigned long) variable;
   *(unsigned long *) (function +32) = (unsigned long) data;
   *(unsigned long *) (function +40) = (unsigned long) address;
 #define TRAMP_CODE_LENGTH  24
-#define is_tramp(function)  \
+#if __BYTE_ORDER__ == __ORDER_BIG_ENDIAN__
+# define is_tramp(function)  \
   *(long *)          (function + 0) == 0xDF220018DF230020L && \
   *(long *)          (function + 8) == 0xFC430000DF390028L && \
   *(long *)          (function +16) == 0x0320000800000000L
+#else
+# define is_tramp(function)  \
+  *(long *)          (function + 0) == 0xDF230020DF220018L && \
+  *(long *)          (function + 8) == 0xDF390028FC430000L && \
+  *(long *)          (function +16) == 0x0000000003200008L
+#endif
 #define tramp_address(function)  \
   *(unsigned long *) (function +40)
 #define tramp_variable(function)  \