Changeset 8565a42 in mainline for uspace/lib/c/arch/sparc64
- Timestamp:
- 2018-03-02T20:34:50Z (8 years ago)
- Branches:
- lfn, master, serial, ticket/834-toolchain-update, topic/msim-upgrade, topic/simplify-dev-export
- Children:
- a1a81f69, d5e5fd1
- Parents:
- 3061bc1 (diff), 34e1206 (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. - git-author:
- Jiří Zárevúcky <zarevucky.jiri@…> (2018-03-02 20:34:50)
- git-committer:
- GitHub <noreply@…> (2018-03-02 20:34:50)
- Location:
- uspace/lib/c/arch/sparc64
- Files:
-
- 6 edited
-
_link.ld.in (modified) (5 diffs)
-
include/libarch/atomic.h (modified) (2 diffs)
-
include/libarch/syscall.h (modified) (1 diff)
-
src/entry.S (modified) (1 diff)
-
src/fibril.S (modified) (1 diff)
-
src/thread_entry.S (modified) (2 diffs)
Legend:
- Unmodified
- Added
- Removed
-
uspace/lib/c/arch/sparc64/_link.ld.in
r3061bc1 r8565a42 19 19 . = 0x4000 + SIZEOF_HEADERS; 20 20 #endif 21 21 22 22 .init : { 23 23 *(.init); 24 24 } :text 25 25 26 26 .text : { 27 27 *(.text .text.*); 28 28 *(.rodata .rodata.*); 29 29 } :text 30 30 31 31 #ifdef LOADER 32 32 .interp : { … … 34 34 } :interp :text 35 35 #endif 36 36 37 37 . = . + 0x4000; 38 38 39 39 .got : { 40 40 _gp = .; 41 41 *(.got*); 42 42 } :data 43 43 44 44 .data : { 45 45 *(.data); 46 46 *(.sdata); 47 47 } :data 48 48 49 49 .tdata : { 50 50 _tdata_start = .; … … 55 55 _tbss_end = .; 56 56 } :data 57 57 58 58 _tls_alignment = ALIGNOF(.tdata); 59 59 60 60 .bss : { 61 61 *(.sbss); … … 63 63 *(.bss); 64 64 } :data 65 65 66 66 #ifdef CONFIG_LINE_DEBUG 67 67 .comment 0 : { *(.comment); } :debug … … 76 76 .debug_str 0 : { *(.debug_str); } :debug 77 77 #endif 78 78 79 79 /DISCARD/ : { 80 80 *(*); -
uspace/lib/c/arch/sparc64/include/libarch/atomic.h
r3061bc1 r8565a42 55 55 atomic_count_t a; 56 56 atomic_count_t b; 57 57 58 58 do { 59 59 volatile uintptr_t ptr = (uintptr_t) &val->count; 60 60 61 61 a = *((atomic_count_t *) ptr); 62 62 b = a + i; 63 63 64 64 asm volatile ( 65 65 "casx %0, %2, %1\n" … … 69 69 ); 70 70 } while (a != b); 71 71 72 72 return a; 73 73 } -
uspace/lib/c/arch/sparc64/include/libarch/syscall.h
r3061bc1 r8565a42 66 66 : "memory" 67 67 ); 68 68 69 69 return a1; 70 70 } -
uspace/lib/c/arch/sparc64/src/entry.S
r3061bc1 r8565a42 45 45 flushw 46 46 add %g0, -0x7ff, %fp 47 47 48 48 # Pass pcb_ptr as the first argument to __main() 49 49 mov %i1, %o0 -
uspace/lib/c/arch/sparc64/src/fibril.S
r3061bc1 r8565a42 68 68 # 69 69 flushw 70 70 71 71 ldx [%o0 + CONTEXT_OFFSET_SP], %sp 72 72 ldx [%o0 + CONTEXT_OFFSET_PC], %o7 -
uspace/lib/c/arch/sparc64/src/thread_entry.S
r3061bc1 r8565a42 30 30 31 31 .text 32 32 33 33 ## User-space thread entry point for all but the first threads. 34 34 # … … 50 50 call __thread_main ! %o0 contains address of uarg 51 51 or %l7, %lo(_gp), %l7 52 52 53 53 ! not reached
Note:
See TracChangeset
for help on using the changeset viewer.
