- Timestamp:
- 2016-04-24T08:42:07Z (10 years ago)
- Branches:
- lfn, master, serial, ticket/834-toolchain-update, topic/msim-upgrade, topic/simplify-dev-export
- Children:
- bc41f3a3
- Parents:
- b66cc97
- Location:
- kernel/arch/sparc32/src
- Files:
-
- 3 edited
Legend:
- Unmodified
- Added
- Removed
-
kernel/arch/sparc32/src/context.S
rb66cc97 r38ad239 28 28 # 29 29 30 #include <abi/asmtool.h> 30 31 #include <arch/context_offset.h> 31 32 #include <arch/arch.h> … … 33 34 .text 34 35 35 .global context_save_arch36 .global context_restore_arch37 38 36 /* 39 37 * context_save_arch() is required not to create its own stack frame. See the 40 38 * generic context.h for explanation. 41 39 */ 42 context_save_arch: 40 FUNCTION_BEGIN(context_save_arch) 43 41 # 44 42 # Force all our active register windows to memory so that we can find … … 62 60 retl 63 61 mov 1, %o0 ! context_save_arch returns 1 62 FUNCTION_END(context_save_arch) 64 63 65 context_restore_arch: 64 FUNCTION_BEGIN(context_restore_arch) 66 65 # 67 66 # Forget all previous windows, they are not going to be needed again. … … 97 96 retl 98 97 xor %o0, %o0, %o0 ! context_restore_arch returns 0 98 FUNCTION_END(context_restore_arch) -
kernel/arch/sparc32/src/start.S
rb66cc97 r38ad239 27 27 # 28 28 29 #include <abi/asmtool.h> 30 29 31 .text 30 32 31 .global kernel_image_start 32 .global early_putchar 33 .global kernel_sp 34 .global uspace_wbuf 35 36 kernel_image_start: 33 SYMBOL(kernel_image_start) 37 34 # Install trap handlers 38 35 set trap_table, %g1 … … 68 65 nop 69 66 70 early_putchar: 67 FUNCTION_BEGIN(early_putchar) 71 68 set 0x80000100, %l0 72 69 cmp %o0, '\n' … … 80 77 retl 81 78 nop 79 FUNCTION_END(early_putchar) 82 80 83 kernel_sp: 81 SYMBOL(kernel_sp) 84 82 .space 4 85 83 86 uspace_wbuf: 84 SYMBOL(uspace_wbuf) 87 85 .space 4 88 86 -
kernel/arch/sparc32/src/trap_table.S
rb66cc97 r38ad239 27 27 # 28 28 29 #include <abi/asmtool.h> 29 30 #include <arch/trap.h> 30 31 #include <arch/regwin.h> 31 32 32 33 .text 33 34 .global trap_table35 .global reset_trap36 .global preemptible_trap37 .global interrupt_trap38 .global syscall_trap39 .global window_overflow_trap40 .global window_underflow_trap41 .global write_to_invalid42 .global read_from_invalid43 .global flush_windows44 34 45 35 .macro get_wim_number reg … … 218 208 .endm 219 209 220 write_to_invalid: 210 FUNCTION_BEGIN(write_to_invalid) 221 211 ! Write value 1 222 212 mov %o0, %g7 … … 236 226 retl 237 227 nop 238 239 read_from_invalid: 228 FUNCTION_END(write_to_invalid) 229 230 FUNCTION_BEGIN(read_from_invalid) 240 231 ! Read value 1 241 232 mov %o0, %g7 … … 255 246 retl 256 247 nop 257 258 reset_trap: 248 FUNCTION_END(read_from_invalid) 249 250 SYMBOL(reset_trap) 259 251 set 0x80000100, %l0 260 252 set 'r', %l1 … … 262 254 rett 263 255 264 window_overflow_trap: 256 SYMBOL(window_overflow_trap) 265 257 mov %g7, %l0 266 258 … … 393 385 rett %l2 394 386 395 window_underflow_trap: 387 SYMBOL(window_underflow_trap) 396 388 mov %g7, %l0 397 389 … … 479 471 rett %l2 480 472 481 flush_windows: 473 FUNCTION_BEGIN(flush_windows) 482 474 mov 7, %g1 483 475 1: … … 494 486 retl 495 487 nop 496 497 preemptible_trap: 488 FUNCTION_END(flush_windows) 489 490 SYMBOL(preemptible_trap) 498 491 /* Save %g7 */ 499 492 mov %g7, %l0 … … 670 663 rett %l2 671 664 672 interrupt_trap: 665 SYMBOL(interrupt_trap) 673 666 /* Save %g7 */ 674 667 mov %g7, %l0 … … 844 837 rett %l2 845 838 846 syscall_trap: 839 SYMBOL(syscall_trap) 847 840 /* Save %g7 */ 848 841 mov %g7, %l0 … … 1051 1044 1052 1045 .align TRAP_TABLE_SIZE 1053 trap_table: 1046 SYMBOL(trap_table) 1054 1047 STRAP(0x0, reset_trap) 1055 1048 TRAP(0x1, instruction_access_exception)
Note:
See TracChangeset
for help on using the changeset viewer.
