PPC port cleaned up, static linking works well now.
[musl] / arch / powerpc / pthread_arch.h
diff --git a/arch/powerpc/pthread_arch.h b/arch/powerpc/pthread_arch.h
new file mode 100644 (file)
index 0000000..cb2a70b
--- /dev/null
@@ -0,0 +1,14 @@
+static inline struct pthread *__pthread_self()
+{
+       register char* tp __asm__("r2");
+       return (pthread_t)(tp - 0x7000 - sizeof(struct pthread));
+}
+                        
+#define TLS_ABOVE_TP
+#define TP_ADJ(p) ((char *)(p) + sizeof(struct pthread) + 0x7000)
+
+// offset of the PC register in mcontext_t, divided by the system wordsize
+// the kernel calls the ip "nip", it's the first saved value after the 32
+// GPRs.
+#define CANCEL_REG_IP 32
+