Sha256: d49509bbc3bab49c613ad451b96a0771110f30f53f3f32498078e2b3b5653ceb

Contents?: true

Size: 1.1 KB

Versions: 46

Compression:

Stored size: 1.1 KB

Contents

// 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 br.call/brl.call (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"
	.text
	.align 16
	.global rb_ia64_flushrs#
	.proc rb_ia64_flushrs#
rb_ia64_flushrs:
	.prologue
	.body
	flushrs
	;;
	nop.i 0
	br.ret.sptk.many b0
	.endp rb_ia64_flushrs#
	.align 16
	.global rb_ia64_bsp#
	.proc rb_ia64_bsp#
rb_ia64_bsp:
	.prologue
	.body
	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)"

Version data entries

46 entries across 46 versions & 2 rubygems

Version Path
rhodes-5.5.18 platform/shared/ruby/ia64.s
rhodes-5.5.17 platform/shared/ruby/ia64.s
rhodes-5.5.15 platform/shared/ruby/ia64.s
rhodes-5.5.0.22 platform/shared/ruby/ia64.s
rhodes-5.5.2 platform/shared/ruby/ia64.s
rhodes-5.5.0.7 platform/shared/ruby/ia64.s
rhodes-5.5.0.3 platform/shared/ruby/ia64.s
rhodes-5.5.0 platform/shared/ruby/ia64.s
tauplatform-1.0.3 platform/shared/ruby/ia64.s
tauplatform-1.0.2 platform/shared/ruby/ia64.s
tauplatform-1.0.1 platform/shared/ruby/ia64.s
rhodes-3.5.1.12 platform/shared/ruby/ia64.s
rhodes-3.3.5 platform/shared/ruby/ia64.s
rhodes-3.4.2 platform/shared/ruby/ia64.s
rhodes-3.3.4 platform/shared/ruby/ia64.s
rhodes-3.3.3 platform/shared/ruby/ia64.s
rhodes-3.3.3.beta.4 platform/shared/ruby/ia64.s
rhodes-3.3.3.beta.3 platform/shared/ruby/ia64.s
rhodes-3.3.3.beta.2 platform/shared/ruby/ia64.s
rhodes-3.3.3.beta.1 platform/shared/ruby/ia64.s