1 // rb_ia64_flushrs
and rb_ia64_bsp is written in IA64 assembly language
2 // because Intel Compiler for IA64 doesn
't support inline assembly.
4 // This file is based on following C program compiled by gcc.
6 // void rb_ia64_flushrs(void) { __builtin_ia64_flushrs(); }
7 // void *rb_ia64_bsp(void) { return __builtin_ia64_bsp(); }
9 // Note that rb_ia64_flushrs and rb_ia64_bsp works in its own stack frame.
10 // It's because BSP is updated by br.call
/brl.call
(not alloc instruction
).
11 // So rb_ia64_flushrs flushes stack frames including caller
's one.
12 // rb_ia64_bsp returns the address next to caller's register stack frame.
15 // Intel Itanium Architecture Software Developer
's Manual
16 // Volume 2: System Architecture.
21 .global rb_ia64_flushrs#
22 .proc rb_ia64_flushrs#
30 .endp rb_ia64_flushrs#
42 .ident "GCC: (GNU) 3.3.5 (Debian 1:3.3.5-13)"