qtdeclarative/llvm_runtime.cpp

179 lines
4.4 KiB
C++

#include "qmljs_runtime.h"
#include <stdio.h>
using namespace QQmlJS::VM;
extern "C" {
void __qmljs_llvm_return(Context *ctx, Value *result)
{
ctx->result = *result;
}
Value *__qmljs_llvm_get_argument(Context *ctx, int index)
{
return &ctx->arguments[index];
}
void __qmljs_llvm_init_number(Value *result, double value)
{
__qmljs_init_number(result, value);
}
void __qmljs_llvm_init_string(Context *ctx, Value *result, const char *str)
{
__qmljs_init_string(result, __qmljs_string_from_utf8(ctx, str));
}
bool __qmljs_llvm_to_boolean(Context *ctx, const Value *value)
{
return __qmljs_to_boolean(ctx, value);
}
void __qmljs_llvm_bit_and(Context *ctx, Value *result, Value *left, Value *right)
{
__qmljs_bit_and(ctx, result, left, right);
}
void __qmljs_llvm_bit_or(Context *ctx, Value *result, Value *left, Value *right)
{
__qmljs_bit_or(ctx, result, left, right);
}
void __qmljs_llvm_bit_xor(Context *ctx, Value *result, Value *left, Value *right)
{
__qmljs_bit_xor(ctx, result, left, right);
}
void __qmljs_llvm_add(Context *ctx, Value *result, Value *left, Value *right)
{
__qmljs_add(ctx, result, left, right);
}
void __qmljs_llvm_sub(Context *ctx, Value *result, Value *left, Value *right)
{
__qmljs_sub(ctx, result, left, right);
}
void __qmljs_llvm_mul(Context *ctx, Value *result, Value *left, Value *right)
{
__qmljs_mul(ctx, result, left, right);
}
void __qmljs_llvm_div(Context *ctx, Value *result, Value *left, Value *right)
{
__qmljs_div(ctx, result, left, right);
}
void __qmljs_llvm_mod(Context *ctx, Value *result, Value *left, Value *right)
{
__qmljs_mod(ctx, result, left, right);
}
void __qmljs_llvm_shl(Context *ctx, Value *result, Value *left, Value *right)
{
__qmljs_shl(ctx, result, left, right);
}
void __qmljs_llvm_shr(Context *ctx, Value *result, Value *left, Value *right)
{
__qmljs_shr(ctx, result, left, right);
}
void __qmljs_llvm_ushr(Context *ctx, Value *result, Value *left, Value *right)
{
__qmljs_ushr(ctx, result, left, right);
}
void __qmljs_llvm_gt(Context *ctx, Value *result, Value *left, Value *right)
{
__qmljs_gt(ctx, result, left, right);
}
void __qmljs_llvm_lt(Context *ctx, Value *result, Value *left, Value *right)
{
__qmljs_lt(ctx, result, left, right);
}
void __qmljs_llvm_ge(Context *ctx, Value *result, Value *left, Value *right)
{
__qmljs_ge(ctx, result, left, right);
}
void __qmljs_llvm_le(Context *ctx, Value *result, Value *left, Value *right)
{
__qmljs_le(ctx, result, left, right);
}
void __qmljs_llvm_eq(Context *ctx, Value *result, Value *left, Value *right)
{
__qmljs_eq(ctx, result, left, right);
}
void __qmljs_llvm_ne(Context *ctx, Value *result, Value *left, Value *right)
{
__qmljs_ne(ctx, result, left, right);
}
void __qmljs_llvm_se(Context *ctx, Value *result, Value *left, Value *right)
{
__qmljs_se(ctx, result, left, right);
}
void __qmljs_llvm_sne(Context *ctx, Value *result, Value *left, Value *right)
{
__qmljs_sne(ctx, result, left, right);
}
void __qmljs_llvm_instanceof(Context *ctx, Value *result, Value *left, Value *right)
{
__qmljs_instanceof(ctx, result, left, right);
}
void __qmljs_llvm_in(Context *ctx, Value *result, Value *left, Value *right)
{
__qmljs_in(ctx, result, left, right);
}
void __qmljs_llvm_uplus(Context *ctx, Value *result, const Value *value)
{
__qmljs_uplus(ctx, result, value);
}
void __qmljs_llvm_uminus(Context *ctx, Value *result, const Value *value)
{
__qmljs_uminus(ctx, result, value);
}
void __qmljs_llvm_compl(Context *ctx, Value *result, const Value *value)
{
__qmljs_compl(ctx, result, value);
}
void __qmljs_llvm_not(Context *ctx, Value *result, const Value *value)
{
__qmljs_not(ctx, result, value);
}
String *__qmljs_llvm_get_identifier(Context *ctx, const char *str)
{
return __qmljs_string_from_utf8(ctx, str); // ### make it unique
}
void __qmljs_llvm_call_activation_property(Context *context, Value *result, String *name, Value *args, int argc)
{
__qmljs_call_activation_property(context, result, name, args, argc);
}
void __qmljs_llvm_construct_activation_property(Context *context, Value *result, String *name, Value *args, int argc)
{
__qmljs_construct_activation_property(context, result, name, args, argc);
}
void __qmljs_llvm_get_property(Context *ctx, Value *result, Value *object, String *name)
{
__qmljs_get_property(ctx, result, object, name);
}
} // extern "C"