powerpc: Define 32/64 bit asm macros and use them in fpu.S
[deliverable/linux.git] / include / asm-powerpc / ppc_asm.h
index 4efa71878fa987049c93f8519c56097b306bb756..6cd52c1303322b658536a96875b88e4ae44cebcf 100644 (file)
        oris    rn,rn,name##@h;         \
        ori     rn,rn,name##@l
 
-#define LOADBASE(rn,name) \
-       lis     rn,name@highest;        \
-       ori     rn,rn,name@higher;      \
-       rldicr  rn,rn,32,31;            \
-       oris    rn,rn,name@ha
+#define LOADBASE(rn,name)              \
+       .section .toc,"aw";             \
+1:     .tc     name[TC],name;          \
+       .previous;                      \
+       ld      rn,1b@toc(r2)
 
+#define OFF(name)      0
 
 #define SET_REG_TO_CONST(reg, value)                   \
        lis     reg,(((value)>>48)&0xFFFF);             \
        rldicr  reg,reg,32,31;                          \
        oris    reg,reg,(label)@h;                      \
        ori     reg,reg,(label)@l;
+
+/* operations for longs and pointers */
+#define LDL    ld
+#define STL    std
+#define CMPI   cmpdi
+
+#else /* 32-bit */
+#define LOADBASE(rn,name)      \
+       lis     rn,name@ha
+
+#define OFF(name)      name@l
+
+/* operations for longs and pointers */
+#define LDL    lwz
+#define STL    stw
+#define CMPI   cmpwi
+
 #endif
 
 /* various errata or part fixups */
This page took 0.034095 seconds and 5 git commands to generate.