1 #ifndef _ASMPOWERPC_PPC_ASM_H 2 #define _ASMPOWERPC_PPC_ASM_H 3 4 #define LOAD_REG_IMMEDIATE(reg,expr) \ 5 lis reg,(expr)@highest; \ 6 ori reg,reg,(expr)@higher; \ 7 rldicr reg,reg,32,31; \ 8 oris reg,reg,(expr)@h; \ 9 ori reg,reg,(expr)@l; 10 11 #define LOAD_REG_ADDR(reg,name) \ 12 ld reg,name@got(r2) 13 14 #if __BYTE_ORDER__ == __ORDER_BIG_ENDIAN__ 15 16 #define FIXUP_ENDIAN 17 18 #elif __BYTE_ORDER__ == __ORDER_LITTLE_ENDIAN__ 19 20 #define FIXUP_ENDIAN \ 21 .long 0x05000048; /* bl . + 4 */ \ 22 .long 0xa602487d; /* mflr r10 */ \ 23 .long 0x20004a39; /* addi r10,r10,32 */ \ 24 .long 0xa600607d; /* mfmsr r11 */ \ 25 .long 0x01006b69; /* xori r11,r11,1 */ \ 26 .long 0xa6035a7d; /* mtsrr0 r10 */ \ 27 .long 0xa6037b7d; /* mtsrr1 r11 */ \ 28 .long 0x2400004c; /* rfid */ \ 29 .long 0x00000048; /* b . */ \ 30 31 #endif /* __BYTE_ORDER__ */ 32 33 #endif /* _ASMPOWERPC_PPC_ASM_H */ 34