Alien-LibJIT
view release on metacpan or search on metacpan
libjit/ChangeLog view on Meta::CPAN
accordingly.
* tools/gen-apply.c (detect_float_return): On x86 only the first
10 bytes of 12 byte long doubles are significant and are used for
comparison.
2005-12-12 Aleksey Demakov <ademakov@gmail.com>
* jit/jit-dump.c (dump_object_code): in order to make dump work on
cygwin call "as" and "objdump" in two separate system() calls because
it looks like the ';' separator between commands does not work there.
Also on Win32 use TMP and TEMP environment variables as the tmp
directory names and fallback to "c:/tmp".
* jit/jit-gen-x86.h (jit_assert): change the macro definition to
resolve problems introduced at 2005-12-10.
2005-12-10 Aleksey Demakov <ademakov@gmail.com>
* jit/jit-gen-x86.h: Merged changes from the latest Mono project's
version of this file.
libjit/doc/libjit.texi view on Meta::CPAN
probably still need to port @code{jit_apply} to each new architecture.
The @code{libjit} library makes use of gcc's @code{__builtin_apply}
facility to do most of the hard work of function application.
This gcc facility takes three arguments: a pointer to the function
to invoke, a structure containing register arguments, and a size
value that indicates the number of bytes to push onto the stack
for the call.
Unfortunately, the register argument structure is very system dependent.
There is no standard format for it, but it usually looks something
like this:
@table @code
@item stack_args
Pointer to an array of argument values to push onto the stack.
@item struct_ptr
Pointer to the buffer to receive a @code{struct} return value.
The @code{struct_ptr} field is only present if the architecture
passes @code{struct} pointers in a special register.
libjit/dpas/dpas-parser.y view on Meta::CPAN
ProgramHeading
: K_PROGRAM Identifier '(' IdentifierList ')' ';' {
jit_free($2);
identifier_list_free($4.list, $4.len);
}
| K_PROGRAM Identifier ';' {
jit_free($2);
}
| K_MODULE Identifier '(' IdentifierList ')' ';' {
/* The "module" keyword is provided as an alternative
to "program" because it looks odd to put "program"
on code included via an "import" clause */
jit_free($2);
identifier_list_free($4.list, $4.len);
}
| K_MODULE Identifier ';' {
jit_free($2);
}
;
ImportDeclarationPart
libjit/jit/jit-insn.c view on Meta::CPAN
if(!(func->builder->thrown_exception))
{
func->builder->thrown_exception =
jit_value_create(func, jit_type_void_ptr);
}
return func->builder->thrown_exception;
}
/*
* Initialize the "setjmp" setup block that is needed to catch exceptions
* thrown back to this level of execution. The block looks like this:
*
* jit_jmp_buf jbuf;
* void *catcher;
*
* _jit_unwind_push_setjmp(&jbuf);
* if(setjmp(&jbuf.buf))
* {
* catch_pc = jbuf.catch_pc;
* if(catch_pc)
* {
libjit/jitruby/ext/method_data.c.rpp view on Meta::CPAN
return result;
}
END
end
nil
END
/* Define a method and attach data to it.
*
* The method looks to ruby like a normal aliased CFUNC, with a modified
* origin class:
*
* NODE_FBODY
* |- (u1) orig - origin class
* | |- basic
* | | |- flags - origin class flags + FL_SINGLETON
* | | +- klass - NODE_MEMO
* | | |- (u1) cfnc - actual C function to call
* | | |- (u2) rval - stored data
* | | +- (u3) 0
( run in 0.410 second using v1.01-cache-2.11-cpan-64827b87656 )