Mercurial > hg > Game > Cerium
view example/get_segment/spe/Hello.cc @ 539:3bc98f6d31ff draft
Reorganization..
author | Shinji KONO <kono@ie.u-ryukyu.ac.jp> |
---|---|
date | Mon, 12 Oct 2009 09:39:35 +0900 |
parents | 16f0abb574b7 |
children | 0e91ddaad798 |
line wrap: on
line source
#include <stdio.h> #include "Hello.h" #include "Func.h" /* これは必須 */ SchedDefineDynamicTask(Hello,0); static int rel_offset() { unsigned int pc; unsigned int label; __asm__ __volatile__( " brsl %0,____LLLL\n" "____LLLL:" " ila %1,____LLLL" : "=r" (pc), "=r" (label)); return pc-label; } static int run(SchedTask *smanager, void *rbuf, void *wbuf) { int task_id = smanager->get_param(0); unsigned int pc; __asm__ __volatile__( " brsl %0,____LLLL1\n" "____LLLL1:" : "=r" (pc)); char *fmt = "char [%0x] offset [%0x]\n"; int offset = rel_offset(); smanager->fprintf(smanager->stderr_,fmt+offset, fmt, offset); smanager->fprintf(smanager->stderr_,"[%d] Hello, World!! Seg1 \n"+offset, task_id); smanager->fprintf(smanager->stderr_,"pc=0x%0x 0x%0x\n"+offset,pc, (unsigned int)&runTask_Hello); return 0; }