//SPARTAN/trunk/arch/ia64/include/asm.h |
---|
61,4 → 61,9 |
#define get_psr(val) {__u64 v ; __asm__ volatile("mov r15 = psr;;\n" "mov %0 = r15;;\n" : "=r" (v) : : "r15" ); val=v; } |
void cpu_halt(void); |
#endif |
//SPARTAN/trunk/arch/ia64/Makefile.inc |
---|
6,7 → 6,11 |
CC=$(IA-64_CC_DIR)/$(IA-64_TARGET)-gcc |
AS=$(IA-64_BINUTILS_DIR)/$(IA-64_TARGET)-as |
LD=$(IA-64_BINUTILS_DIR)/$(IA-64_TARGET)-ld |
OBJCOPY=$(IA-64_BINUTILS_DIR)/$(IA-64_TARGET)-objcopy |
BFD_NAME=elf64-little |
BFD_ARCH=ia64-elf64 |
ASFLAGS=-mconstant-gp |
DEFS=-DARCH=$(ARCH) |
28,4 → 32,4 |
arch/cpu/cpu.c \ |
arch/ivt.S \ |
arch/interrupt_handler.c \ |
arch/fmath.c |
arch/fmath.c |
//SPARTAN/trunk/arch/ia64/src/cpu/cpu.c |
---|
22,9 → 22,9 |
__asm__ volatile ( |
"mov cr2 = %0;;\n" |
"mov psr.l = %1;;\n" |
"srlz.i;" |
"srlz.d;;" |
"{mov psr.l = %1;;}\n" |
"{srlz.i;" |
"srlz.d;;}" |
: |
: "r" (p), "r" (psr) |
); |
//SPARTAN/trunk/arch/ia64/src/interrupt_handler.c |
---|
32,6 → 32,7 |
#include <print.h> |
#include <arch/types.h> |
#include <arch/asm.h> |
#include <symtab.h> |
extern __u64 REG_DUMP; |
51,15 → 52,16 |
} |
#define cr_dump(r) {__u64 val; get_control_register(r,val); printf("cr"#r":%Q\n",val);} |
#define ar_dump(r) {__u64 val; get_aplication_register(r,val); printf("ar"#r":%Q\n",val);} |
#define cr_dump(r) {__u64 val; get_control_register(r,val); printf("\ncr"#r":%Q",val);} |
#define ar_dump(r) {__u64 val; get_aplication_register(r,val); printf("\nar"#r":%Q",val);} |
void universal_handler(void); |
void universal_handler(void) |
{ |
__u64 vector,psr; |
__u64 vector,psr,PC; |
__u64 *p; |
int i; |
char *sym; |
get_shadow_register(16,vector); |
76,10 → 78,10 |
cr_dump(8); |
cr_dump(16); |
cr_dump(17); |
cr_dump(19); |
cr_dump(20); |
cr_dump(19);get_control_register(19,PC); if(sym=get_symtab_entry(PC)) printf("(%s)",sym); |
cr_dump(20);get_control_register(20,PC); if(sym=get_symtab_entry(PC)) printf("(%s)",sym); |
cr_dump(21); |
cr_dump(22); |
cr_dump(22);get_control_register(22,PC); if(sym=get_symtab_entry(PC)) printf("(%s)",sym); |
cr_dump(23); |
cr_dump(24); |
cr_dump(25); |
//SPARTAN/trunk/arch/ia64/src/start.S |
---|
34,9 → 34,9 |
kernel_image_start: |
.auto |
# initialize PSR |
mov psr.l = r0;; |
srlz.i; |
srlz.d;; |
{mov psr.l = r0;;} |
{srlz.i; |
srlz.d;;} |
# initialize register stack |
mov ar.rsc = r0 |
//SPARTAN/trunk/arch/ia64/_link.ld |
---|
28,6 → 28,10 |
*(.scommon) |
*(.bss) |
*(COMMON); |
symbol_table = .; |
*(symtab.*); /* Symbol table, must be LAST symbol!*/ |
kdata_end = .; |
} |