Changeset d5a89a3 in mainline for uspace/lib/c/arch/ia64
- Timestamp:
- 2019-02-11T22:31:04Z (6 years ago)
- Children:
- aaf9789c
- Parents:
- e3272101 (diff), 4805495 (diff)
Note: this is a merge changeset, the changes displayed below correspond to the merge itself.
Use the(diff)
links above to see all the changes relative to each parent. - Location:
- uspace/lib/c/arch/ia64
- Files:
-
- 12 edited
Legend:
- Unmodified
- Added
- Removed
-
uspace/lib/c/arch/ia64/include/libarch/config.h
re3272101 rd5a89a3 33 33 */ 34 34 35 #ifndef LIBC_ia64_CONFIG_H_36 #define LIBC_ia64_CONFIG_H_35 #ifndef _LIBC_ia64_CONFIG_H_ 36 #define _LIBC_ia64_CONFIG_H_ 37 37 38 38 #define PAGE_WIDTH 14 -
uspace/lib/c/arch/ia64/include/libarch/ddi.h
re3272101 rd5a89a3 33 33 */ 34 34 35 #ifndef LIBC_ia64_DDI_H_36 #define LIBC_ia64_DDI_H_35 #ifndef _LIBC_ia64_DDI_H_ 36 #define _LIBC_ia64_DDI_H_ 37 37 38 38 #include <ddi.h> -
uspace/lib/c/arch/ia64/include/libarch/elf_linux.h
re3272101 rd5a89a3 33 33 */ 34 34 35 #ifndef LIBC_ia64_ELF_LINUX_H_36 #define LIBC_ia64_ELF_LINUX_H_35 #ifndef _LIBC_ia64_ELF_LINUX_H_ 36 #define _LIBC_ia64_ELF_LINUX_H_ 37 37 38 38 #include <libarch/istate.h> -
uspace/lib/c/arch/ia64/include/libarch/faddr.h
re3272101 rd5a89a3 33 33 */ 34 34 35 #ifndef LIBC_ia64_FADDR_H_36 #define LIBC_ia64_FADDR_H_35 #ifndef _LIBC_ia64_FADDR_H_ 36 #define _LIBC_ia64_FADDR_H_ 37 37 38 38 #include <types/common.h> -
uspace/lib/c/arch/ia64/include/libarch/fibril.h
re3272101 rd5a89a3 33 33 */ 34 34 35 #ifndef LIBC_ia64_FIBRIL_H_36 #define LIBC_ia64_FIBRIL_H_35 #ifndef _LIBC_ia64_FIBRIL_H_ 36 #define _LIBC_ia64_FIBRIL_H_ 37 37 38 38 #include <stdint.h> … … 43 43 44 44 /* 45 * __ setjmp() and __longjmp() are both leaf procedures.45 * __context_save() and __context_restore() are both leaf procedures. 46 46 * No need to allocate scratch area. 47 47 */ -
uspace/lib/c/arch/ia64/include/libarch/fibril_context.h
re3272101 rd5a89a3 27 27 */ 28 28 29 #ifndef LIBC_ARCH_FIBRIL_CONTEXT_H_30 #define LIBC_ARCH_FIBRIL_CONTEXT_H_29 #ifndef _LIBC_ARCH_FIBRIL_CONTEXT_H_ 30 #define _LIBC_ARCH_FIBRIL_CONTEXT_H_ 31 31 32 #define CONTEXT_OFFSET_AR_PFS 0x00033 #define CONTEXT_OFFSET_AR_UNAT_CALLER 0x00834 #define CONTEXT_OFFSET_AR_UNAT_CALLEE 0x01035 #define CONTEXT_OFFSET_AR_RSC 0x01836 #define CONTEXT_OFFSET_BSP 0x02037 #define CONTEXT_OFFSET_AR_RNAT 0x02838 #define CONTEXT_OFFSET_AR_LC 0x03039 #define CONTEXT_OFFSET_R1 0x03840 #define CONTEXT_OFFSET_R4 0x04041 #define CONTEXT_OFFSET_R5 0x04842 #define CONTEXT_OFFSET_R6 0x05043 #define CONTEXT_OFFSET_R7 0x05844 #define CONTEXT_OFFSET_SP 0x06045 #define CONTEXT_OFFSET_TP 0x06846 #define CONTEXT_OFFSET_PC 0x07047 #define CONTEXT_OFFSET_B1 0x07848 #define CONTEXT_OFFSET_B2 0x08049 #define CONTEXT_OFFSET_B3 0x08850 #define CONTEXT_OFFSET_B4 0x09051 #define CONTEXT_OFFSET_B5 0x09852 #define CONTEXT_OFFSET_PR 0x0a053 #define CONTEXT_OFFSET_F2 0x0b054 #define CONTEXT_OFFSET_F3 0x0c055 #define CONTEXT_OFFSET_F4 0x0d056 #define CONTEXT_OFFSET_F5 0x0e057 #define CONTEXT_OFFSET_F16 0x0f058 #define CONTEXT_OFFSET_F17 0x10059 #define CONTEXT_OFFSET_F18 0x11060 #define CONTEXT_OFFSET_F19 0x12061 #define CONTEXT_OFFSET_F20 0x13062 #define CONTEXT_OFFSET_F21 0x14063 #define CONTEXT_OFFSET_F22 0x15064 #define CONTEXT_OFFSET_F23 0x16065 #define CONTEXT_OFFSET_F24 0x17066 #define CONTEXT_OFFSET_F25 0x18067 #define CONTEXT_OFFSET_F26 0x19068 #define CONTEXT_OFFSET_F27 0x1a069 #define CONTEXT_OFFSET_F28 0x1b070 #define CONTEXT_OFFSET_F29 0x1c071 #define CONTEXT_OFFSET_F30 0x1d072 #define CONTEXT_OFFSET_F31 0x1e073 #define CONTEXT_SIZE 0x1f032 #define __CONTEXT_OFFSET_AR_PFS 0x000 33 #define __CONTEXT_OFFSET_AR_UNAT_CALLER 0x008 34 #define __CONTEXT_OFFSET_AR_UNAT_CALLEE 0x010 35 #define __CONTEXT_OFFSET_AR_RSC 0x018 36 #define __CONTEXT_OFFSET_BSP 0x020 37 #define __CONTEXT_OFFSET_AR_RNAT 0x028 38 #define __CONTEXT_OFFSET_AR_LC 0x030 39 #define __CONTEXT_OFFSET_R1 0x038 40 #define __CONTEXT_OFFSET_R4 0x040 41 #define __CONTEXT_OFFSET_R5 0x048 42 #define __CONTEXT_OFFSET_R6 0x050 43 #define __CONTEXT_OFFSET_R7 0x058 44 #define __CONTEXT_OFFSET_SP 0x060 45 #define __CONTEXT_OFFSET_TP 0x068 46 #define __CONTEXT_OFFSET_PC 0x070 47 #define __CONTEXT_OFFSET_B1 0x078 48 #define __CONTEXT_OFFSET_B2 0x080 49 #define __CONTEXT_OFFSET_B3 0x088 50 #define __CONTEXT_OFFSET_B4 0x090 51 #define __CONTEXT_OFFSET_B5 0x098 52 #define __CONTEXT_OFFSET_PR 0x0a0 53 #define __CONTEXT_OFFSET_F2 0x0b0 54 #define __CONTEXT_OFFSET_F3 0x0c0 55 #define __CONTEXT_OFFSET_F4 0x0d0 56 #define __CONTEXT_OFFSET_F5 0x0e0 57 #define __CONTEXT_OFFSET_F16 0x0f0 58 #define __CONTEXT_OFFSET_F17 0x100 59 #define __CONTEXT_OFFSET_F18 0x110 60 #define __CONTEXT_OFFSET_F19 0x120 61 #define __CONTEXT_OFFSET_F20 0x130 62 #define __CONTEXT_OFFSET_F21 0x140 63 #define __CONTEXT_OFFSET_F22 0x150 64 #define __CONTEXT_OFFSET_F23 0x160 65 #define __CONTEXT_OFFSET_F24 0x170 66 #define __CONTEXT_OFFSET_F25 0x180 67 #define __CONTEXT_OFFSET_F26 0x190 68 #define __CONTEXT_OFFSET_F27 0x1a0 69 #define __CONTEXT_OFFSET_F28 0x1b0 70 #define __CONTEXT_OFFSET_F29 0x1c0 71 #define __CONTEXT_OFFSET_F30 0x1d0 72 #define __CONTEXT_OFFSET_F31 0x1e0 73 #define __CONTEXT_SIZE 0x1f0 74 74 75 75 #ifndef __ASSEMBLER__ … … 79 79 80 80 // Only save registers that must be preserved across function calls. 81 typedef struct context {81 typedef struct __context { 82 82 // Application registers. 83 83 uint64_t ar_pfs; … … 132 132 uint128_t f30; 133 133 uint128_t f31; 134 } context_t;134 } __context_t; 135 135 136 136 #endif /* __ASSEMBLER__ */ -
uspace/lib/c/arch/ia64/include/libarch/stack.h
re3272101 rd5a89a3 33 33 */ 34 34 35 #ifndef LIBC_ia64_STACK_H_36 #define LIBC_ia64_STACK_H_35 #ifndef _LIBC_ia64_STACK_H_ 36 #define _LIBC_ia64_STACK_H_ 37 37 38 38 #define STACK_ITEM_SIZE 8 -
uspace/lib/c/arch/ia64/include/libarch/stackarg.h
re3272101 rd5a89a3 33 33 */ 34 34 35 #ifndef LIBC_STACKARG_H_36 #define LIBC_STACKARG_H_35 #ifndef _LIBC_STACKARG_H_ 36 #define _LIBC_STACKARG_H_ 37 37 38 38 #endif -
uspace/lib/c/arch/ia64/include/libarch/syscall.h
re3272101 rd5a89a3 34 34 */ 35 35 36 #ifndef LIBC_ia64_SYSCALL_H_37 #define LIBC_ia64_SYSCALL_H_36 #ifndef _LIBC_ia64_SYSCALL_H_ 37 #define _LIBC_ia64_SYSCALL_H_ 38 38 39 39 #define LIBARCH_SYSCALL_GENERIC -
uspace/lib/c/arch/ia64/include/libarch/thread.h
re3272101 rd5a89a3 33 33 */ 34 34 35 #ifndef LIBC_ia64_THREAD_H_36 #define LIBC_ia64_THREAD_H_35 #ifndef _LIBC_ia64_THREAD_H_ 36 #define _LIBC_ia64_THREAD_H_ 37 37 38 38 #endif -
uspace/lib/c/arch/ia64/include/libarch/tls.h
re3272101 rd5a89a3 33 33 */ 34 34 35 #ifndef LIBC_ia64_TLS_H_36 #define LIBC_ia64_TLS_H_35 #ifndef _LIBC_ia64_TLS_H_ 36 #define _LIBC_ia64_TLS_H_ 37 37 38 38 #define CONFIG_TLS_VARIANT_1 -
uspace/lib/c/arch/ia64/src/fibril.S
re3272101 rd5a89a3 32 32 .text 33 33 34 FUNCTION_BEGIN(__ setjmp)34 FUNCTION_BEGIN(__context_save) 35 35 alloc loc0 = ar.pfs, 1, 49, 0, 0 36 36 mov loc1 = ar.unat ;; … … 58 58 mov loc6 = ar.lc 59 59 60 add loc8 = CONTEXT_OFFSET_AR_PFS, in061 add loc9 = CONTEXT_OFFSET_AR_UNAT_CALLER, in062 add loc10 = CONTEXT_OFFSET_AR_UNAT_CALLEE, in063 add loc11 = CONTEXT_OFFSET_AR_RSC, in064 add loc12 = CONTEXT_OFFSET_BSP, in065 add loc13 = CONTEXT_OFFSET_AR_RNAT, in066 add loc14 = CONTEXT_OFFSET_AR_LC, in067 68 add loc15 = CONTEXT_OFFSET_R1, in069 add loc16 = CONTEXT_OFFSET_R4, in070 add loc17 = CONTEXT_OFFSET_R5, in071 add loc18 = CONTEXT_OFFSET_R6, in072 add loc19 = CONTEXT_OFFSET_R7, in073 add loc20 = CONTEXT_OFFSET_SP, in074 add loc21 = CONTEXT_OFFSET_TP, in075 76 add loc22 = CONTEXT_OFFSET_PC, in077 add loc23 = CONTEXT_OFFSET_B1, in078 add loc24 = CONTEXT_OFFSET_B2, in079 add loc25 = CONTEXT_OFFSET_B3, in080 add loc26 = CONTEXT_OFFSET_B4, in081 add loc27 = CONTEXT_OFFSET_B5, in082 83 add loc28 = CONTEXT_OFFSET_PR, in084 85 add loc29 = CONTEXT_OFFSET_F2, in086 add loc30 = CONTEXT_OFFSET_F3, in087 add loc31 = CONTEXT_OFFSET_F4, in088 add loc32 = CONTEXT_OFFSET_F5, in089 90 add loc33 = CONTEXT_OFFSET_F16, in091 add loc34 = CONTEXT_OFFSET_F17, in092 add loc35 = CONTEXT_OFFSET_F18, in093 add loc36 = CONTEXT_OFFSET_F19, in094 add loc37 = CONTEXT_OFFSET_F20, in095 add loc38 = CONTEXT_OFFSET_F21, in096 add loc39 = CONTEXT_OFFSET_F22, in097 add loc40 = CONTEXT_OFFSET_F23, in098 add loc41 = CONTEXT_OFFSET_F24, in099 add loc42 = CONTEXT_OFFSET_F25, in0100 add loc43 = CONTEXT_OFFSET_F26, in0101 add loc44 = CONTEXT_OFFSET_F27, in0102 add loc45 = CONTEXT_OFFSET_F28, in0103 add loc46 = CONTEXT_OFFSET_F29, in0104 add loc47 = CONTEXT_OFFSET_F30, in0105 add loc48 = CONTEXT_OFFSET_F31, in0 ;;60 add loc8 = __CONTEXT_OFFSET_AR_PFS, in0 61 add loc9 = __CONTEXT_OFFSET_AR_UNAT_CALLER, in0 62 add loc10 = __CONTEXT_OFFSET_AR_UNAT_CALLEE, in0 63 add loc11 = __CONTEXT_OFFSET_AR_RSC, in0 64 add loc12 = __CONTEXT_OFFSET_BSP, in0 65 add loc13 = __CONTEXT_OFFSET_AR_RNAT, in0 66 add loc14 = __CONTEXT_OFFSET_AR_LC, in0 67 68 add loc15 = __CONTEXT_OFFSET_R1, in0 69 add loc16 = __CONTEXT_OFFSET_R4, in0 70 add loc17 = __CONTEXT_OFFSET_R5, in0 71 add loc18 = __CONTEXT_OFFSET_R6, in0 72 add loc19 = __CONTEXT_OFFSET_R7, in0 73 add loc20 = __CONTEXT_OFFSET_SP, in0 74 add loc21 = __CONTEXT_OFFSET_TP, in0 75 76 add loc22 = __CONTEXT_OFFSET_PC, in0 77 add loc23 = __CONTEXT_OFFSET_B1, in0 78 add loc24 = __CONTEXT_OFFSET_B2, in0 79 add loc25 = __CONTEXT_OFFSET_B3, in0 80 add loc26 = __CONTEXT_OFFSET_B4, in0 81 add loc27 = __CONTEXT_OFFSET_B5, in0 82 83 add loc28 = __CONTEXT_OFFSET_PR, in0 84 85 add loc29 = __CONTEXT_OFFSET_F2, in0 86 add loc30 = __CONTEXT_OFFSET_F3, in0 87 add loc31 = __CONTEXT_OFFSET_F4, in0 88 add loc32 = __CONTEXT_OFFSET_F5, in0 89 90 add loc33 = __CONTEXT_OFFSET_F16, in0 91 add loc34 = __CONTEXT_OFFSET_F17, in0 92 add loc35 = __CONTEXT_OFFSET_F18, in0 93 add loc36 = __CONTEXT_OFFSET_F19, in0 94 add loc37 = __CONTEXT_OFFSET_F20, in0 95 add loc38 = __CONTEXT_OFFSET_F21, in0 96 add loc39 = __CONTEXT_OFFSET_F22, in0 97 add loc40 = __CONTEXT_OFFSET_F23, in0 98 add loc41 = __CONTEXT_OFFSET_F24, in0 99 add loc42 = __CONTEXT_OFFSET_F25, in0 100 add loc43 = __CONTEXT_OFFSET_F26, in0 101 add loc44 = __CONTEXT_OFFSET_F27, in0 102 add loc45 = __CONTEXT_OFFSET_F28, in0 103 add loc46 = __CONTEXT_OFFSET_F29, in0 104 add loc47 = __CONTEXT_OFFSET_F30, in0 105 add loc48 = __CONTEXT_OFFSET_F31, in0 ;; 106 106 107 107 /* … … 178 178 mov ar.unat = loc1 179 179 180 mov r8 = 0 /* __ setjmpreturns 0 */180 mov r8 = 0 /* __context_save returns 0 */ 181 181 br.ret.sptk.many b0 182 FUNCTION_END(__ setjmp)183 184 FUNCTION_BEGIN(__ longjmp)182 FUNCTION_END(__context_save) 183 184 FUNCTION_BEGIN(__context_restore) 185 185 alloc loc0 = ar.pfs, 2, 50, 0, 0 ;; 186 186 187 add loc9 = CONTEXT_OFFSET_AR_PFS, in0188 add loc10 = CONTEXT_OFFSET_AR_UNAT_CALLER, in0189 add loc11 = CONTEXT_OFFSET_AR_UNAT_CALLEE, in0190 add loc12 = CONTEXT_OFFSET_AR_RSC, in0191 add loc13 = CONTEXT_OFFSET_BSP, in0192 add loc14 = CONTEXT_OFFSET_AR_RNAT, in0193 add loc15 = CONTEXT_OFFSET_AR_LC, in0194 195 add loc16 = CONTEXT_OFFSET_R1, in0196 add loc17 = CONTEXT_OFFSET_R4, in0197 add loc18 = CONTEXT_OFFSET_R5, in0198 add loc19 = CONTEXT_OFFSET_R6, in0199 add loc20 = CONTEXT_OFFSET_R7, in0200 add loc21 = CONTEXT_OFFSET_SP, in0201 add loc22 = CONTEXT_OFFSET_TP, in0202 203 add loc23 = CONTEXT_OFFSET_PC, in0204 add loc24 = CONTEXT_OFFSET_B1, in0205 add loc25 = CONTEXT_OFFSET_B2, in0206 add loc26 = CONTEXT_OFFSET_B3, in0207 add loc27 = CONTEXT_OFFSET_B4, in0208 add loc28 = CONTEXT_OFFSET_B5, in0209 210 add loc29 = CONTEXT_OFFSET_PR, in0211 212 add loc30 = CONTEXT_OFFSET_F2, in0213 add loc31 = CONTEXT_OFFSET_F3, in0214 add loc32 = CONTEXT_OFFSET_F4, in0215 add loc33 = CONTEXT_OFFSET_F5, in0216 217 add loc34 = CONTEXT_OFFSET_F16, in0218 add loc35 = CONTEXT_OFFSET_F17, in0219 add loc36 = CONTEXT_OFFSET_F18, in0220 add loc37 = CONTEXT_OFFSET_F19, in0221 add loc38 = CONTEXT_OFFSET_F20, in0222 add loc39 = CONTEXT_OFFSET_F21, in0223 add loc40 = CONTEXT_OFFSET_F22, in0224 add loc41 = CONTEXT_OFFSET_F23, in0225 add loc42 = CONTEXT_OFFSET_F24, in0226 add loc43 = CONTEXT_OFFSET_F25, in0227 add loc44 = CONTEXT_OFFSET_F26, in0228 add loc45 = CONTEXT_OFFSET_F27, in0229 add loc46 = CONTEXT_OFFSET_F28, in0230 add loc47 = CONTEXT_OFFSET_F29, in0231 add loc48 = CONTEXT_OFFSET_F30, in0232 add loc49 = CONTEXT_OFFSET_F31, in0 ;;187 add loc9 = __CONTEXT_OFFSET_AR_PFS, in0 188 add loc10 = __CONTEXT_OFFSET_AR_UNAT_CALLER, in0 189 add loc11 = __CONTEXT_OFFSET_AR_UNAT_CALLEE, in0 190 add loc12 = __CONTEXT_OFFSET_AR_RSC, in0 191 add loc13 = __CONTEXT_OFFSET_BSP, in0 192 add loc14 = __CONTEXT_OFFSET_AR_RNAT, in0 193 add loc15 = __CONTEXT_OFFSET_AR_LC, in0 194 195 add loc16 = __CONTEXT_OFFSET_R1, in0 196 add loc17 = __CONTEXT_OFFSET_R4, in0 197 add loc18 = __CONTEXT_OFFSET_R5, in0 198 add loc19 = __CONTEXT_OFFSET_R6, in0 199 add loc20 = __CONTEXT_OFFSET_R7, in0 200 add loc21 = __CONTEXT_OFFSET_SP, in0 201 add loc22 = __CONTEXT_OFFSET_TP, in0 202 203 add loc23 = __CONTEXT_OFFSET_PC, in0 204 add loc24 = __CONTEXT_OFFSET_B1, in0 205 add loc25 = __CONTEXT_OFFSET_B2, in0 206 add loc26 = __CONTEXT_OFFSET_B3, in0 207 add loc27 = __CONTEXT_OFFSET_B4, in0 208 add loc28 = __CONTEXT_OFFSET_B5, in0 209 210 add loc29 = __CONTEXT_OFFSET_PR, in0 211 212 add loc30 = __CONTEXT_OFFSET_F2, in0 213 add loc31 = __CONTEXT_OFFSET_F3, in0 214 add loc32 = __CONTEXT_OFFSET_F4, in0 215 add loc33 = __CONTEXT_OFFSET_F5, in0 216 217 add loc34 = __CONTEXT_OFFSET_F16, in0 218 add loc35 = __CONTEXT_OFFSET_F17, in0 219 add loc36 = __CONTEXT_OFFSET_F18, in0 220 add loc37 = __CONTEXT_OFFSET_F19, in0 221 add loc38 = __CONTEXT_OFFSET_F20, in0 222 add loc39 = __CONTEXT_OFFSET_F21, in0 223 add loc40 = __CONTEXT_OFFSET_F22, in0 224 add loc41 = __CONTEXT_OFFSET_F23, in0 225 add loc42 = __CONTEXT_OFFSET_F24, in0 226 add loc43 = __CONTEXT_OFFSET_F25, in0 227 add loc44 = __CONTEXT_OFFSET_F26, in0 228 add loc45 = __CONTEXT_OFFSET_F27, in0 229 add loc46 = __CONTEXT_OFFSET_F28, in0 230 add loc47 = __CONTEXT_OFFSET_F29, in0 231 add loc48 = __CONTEXT_OFFSET_F30, in0 232 add loc49 = __CONTEXT_OFFSET_F31, in0 ;; 233 233 234 234 ld8 loc0 = [loc9] /* load ar.pfs */ … … 335 335 mov ar.unat = loc1 336 336 337 mov r8 = in1 /* __ longjmpreturns second argument */337 mov r8 = in1 /* __context_restore returns second argument */ 338 338 br.ret.sptk.many b0 339 FUNCTION_END(__ longjmp)339 FUNCTION_END(__context_restore)
Note:
See TracChangeset
for help on using the changeset viewer.