Subversion Repositories HelenOS-historic

Compare Revisions

Ignore whitespace Rev 908 → Rev 917

/uspace/trunk/libc/arch/ia64/_link.ld.in
3,7 → 3,7
ENTRY(__entry)
 
SECTIONS {
.text 0x00004000 : {
.text 0x00010000 : {
*(.text)
*(.rodata .rodata.*)
*(.opd)
/uspace/trunk/libc/arch/ia64/src/entry.s
36,7 → 36,8
#
#
__entry:
br.call.sptk.many b0 = main
br.call.sptk.many b0 = __exit
mov r1 = __entry
{ br.call.sptk.many b0 = main }
{ br.call.sptk.many b0 = __exit }
.end __entry
/uspace/trunk/libc/arch/ia64/src/syscall.c
28,6 → 28,16
 
#include <libc.h>
 
/**
* Immediate operand for break instruction.
* Be carefull about the value as Ski simulator
* is somewhat sensitive to its value.
*
* 0 will be confused with Ski breakpoint.
* And higher values will be confused with SSC's.
*/
#define SYSCALL_IMM 1
 
sysarg_t __syscall(const syscall_t id, const sysarg_t p1, const sysarg_t p2, const sysarg_t p3)
{
sysarg_t ret;
37,10 → 47,10
"mov r15 = %2\n"
"mov r16 = %3\n"
"mov r17 = %4\n"
"break 0\n"
"break %5\n"
"mov %0 = r8\n"
: "=r" (ret)
: "r" (id), "r" (p1), "r" (p2), "r" (p3)
: "r" (id), "r" (p1), "r" (p2), "r" (p3), "i" (SYSCALL_IMM)
: "r8", "r14", "r15", "r16"
);