Changeset 850235d in mainline for kernel/arch/amd64
- Timestamp:
- 2013-03-10T14:56:21Z (13 years ago)
- Branches:
- lfn, master, serial, ticket/834-toolchain-update, topic/msim-upgrade, topic/simplify-dev-export
- Children:
- 05bab88
- Parents:
- ea906c29 (diff), 2277e03 (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:
- kernel/arch/amd64
- Files:
-
- 1 deleted
- 5 edited
-
Makefile.inc (modified) (2 diffs)
-
include/arch/istate.h (modified) (1 diff)
-
src/amd64.c (modified) (2 diffs)
-
src/debugger.c (deleted)
-
src/fpu_context.c (modified) (1 diff)
-
src/mm/page.c (modified) (1 diff)
Legend:
- Unmodified
- Added
- Removed
-
kernel/arch/amd64/Makefile.inc
rea906c29 r850235d 33 33 34 34 FPU_NO_CFLAGS = -mno-sse -mno-sse2 35 36 # 37 # FIXME: 38 # 39 # The -fno-optimize-sibling-calls should be removed as soon as a bug 40 # in GCC concerning the "large" memory model and tail call optimization 41 # is fixed. 42 # 43 # When GCC generates a code for tail call, instead of generating .. 44 # 45 # jmp *fnc 46 # 47 # it generates an assembly code with an illegal immediate prefix: 48 # 49 # jmp *$fnc 50 # 51 # See http://gcc.gnu.org/bugzilla/show_bug.cgi?id=48385 for reference. 52 # 53 54 CMN1 = -m64 -mcmodel=large -mno-red-zone -fno-unwind-tables -fno-omit-frame-pointer -fno-optimize-sibling-calls 35 CMN1 = -m64 -mcmodel=large -mno-red-zone -fno-unwind-tables -fno-omit-frame-pointer 55 36 GCC_CFLAGS += $(CMN1) 56 37 ICC_CFLAGS += $(CMN1) … … 95 76 arch/$(KARCH)/src/proc/thread.c \ 96 77 arch/$(KARCH)/src/userspace.c \ 97 arch/$(KARCH)/src/syscall.c \ 98 arch/$(KARCH)/src/debugger.c 78 arch/$(KARCH)/src/syscall.c 99 79 100 80 ifeq ($(CONFIG_SMP),y) -
kernel/arch/amd64/include/arch/istate.h
rea906c29 r850235d 66 66 } istate_t; 67 67 68 #define RPL_USER 3 69 68 70 /** Return true if exception happened while in userspace */ 69 71 NO_TRACE static inline int istate_from_uspace(istate_t *istate) 70 72 { 71 return !(istate->rip & UINT64_C(0x8000000000000000));73 return (istate->cs & RPL_USER) == RPL_USER; 72 74 } 73 75 -
kernel/arch/amd64/src/amd64.c
rea906c29 r850235d 43 43 #include <arch/bios/bios.h> 44 44 #include <arch/boot/boot.h> 45 #include <arch/debugger.h>46 45 #include <arch/drivers/i8254.h> 47 46 #include <arch/drivers/i8259.h> … … 161 160 #endif 162 161 163 /* Enable debugger */164 debugger_init();165 162 /* Merge all memory zones to 1 big zone */ 166 163 zone_merge_all(); -
kernel/arch/amd64/src/fpu_context.c
rea906c29 r850235d 57 57 { 58 58 /* TODO: Zero all SSE, MMX etc. registers */ 59 /* Default value of SCR register is 0x1f80, 60 * it masks all FPU exceptions*/ 59 61 asm volatile ( 60 62 "fninit\n" -
kernel/arch/amd64/src/mm/page.c
rea906c29 r850235d 92 92 access = PF_ACCESS_READ; 93 93 94 if (as_page_fault(page, access, istate) == AS_PF_FAULT) { 95 fault_if_from_uspace(istate, "Page fault: %p.", (void *) page); 96 panic_memtrap(istate, access, page, NULL); 97 } 94 as_page_fault(page, access, istate); 98 95 } 99 96
Note:
See TracChangeset
for help on using the changeset viewer.
