Skip to content


Subversion checkout URL

You can clone with
Download ZIP
Fetching contributors…
Cannot retrieve contributors at this time
43 lines (42 sloc) 1.1 KB
// rb_ia64_flushrs and rb_ia64_bsp is written in IA64 assembly language
// because Intel Compiler for IA64 doesn't support inline assembly.
// This file is based on following C program compiled by gcc.
// void rb_ia64_flushrs(void) { __builtin_ia64_flushrs(); }
// void *rb_ia64_bsp(void) { return __builtin_ia64_bsp(); }
// Note that rb_ia64_flushrs and rb_ia64_bsp works in its own stack frame.
// It's because BSP is updated by (not alloc instruction).
// So rb_ia64_flushrs flushes stack frames including caller's one.
// rb_ia64_bsp returns the address next to caller's register stack frame.
// See also
// Intel Itanium Architecture Software Developer's Manual
// Volume 2: System Architecture.
.file "ia64.c"
.align 16
.global rb_ia64_flushrs#
.proc rb_ia64_flushrs#
nop.i 0
br.ret.sptk.many b0
.endp rb_ia64_flushrs#
.align 16
.global rb_ia64_bsp#
.proc rb_ia64_bsp#
nop.m 0
mov r8 = ar.bsp
br.ret.sptk.many b0
.endp rb_ia64_bsp#
.ident "GCC: (GNU) 3.3.5 (Debian 1:3.3.5-13)"
Jump to Line
Something went wrong with that request. Please try again.