sourcemod/sourcepawn/vm/jit/jit_helpers.cpp
David Anderson 302636d5e0 test dummy import of JIT structure
--HG--
extra : convert_revision : svn%3A39bc706e-5318-0410-9160-8a85361fbb7c/trunk%4073
2006-09-20 00:41:24 +00:00

101 lines
1.7 KiB
C++

#include <string.h>
#include <assert.h>
#include "jit_helpers.h"
cell_t jit_read_cell(jitinfo_t *jit)
{
cell_t val = *(jit->inptr);
jit->inptr++;
return val;
}
cell_t jit_read_cell_null(jitinfo_t *jit)
{
return 0;
}
cell_t *jit_read_cellptr(jitinfo_t *jit)
{
cell_t *val = *(cell_t **)(jit->inptr);
jit->inptr++;
return val;
}
cell_t *jit_read_cellptr_null(jitinfo_t *jit)
{
return NULL;
}
void jit_write_ubyte(jitinfo_t *jit, jit_uint8_t c)
{
*(jit->outptr++) = c;
}
void jit_write_ubyte_null(jitinfo_t *jit, jit_uint8_t c)
{
jit->outptr++;
}
void jit_write_byte(jitinfo_t *jit, jit_int8_t c)
{
*(jit->outptr++) = c;
}
void jit_write_byte_null(jitinfo_t *jit, jit_int8_t c)
{
jit->outptr++;
}
void jit_write_int32(jitinfo_t *jit, jit_int32_t c)
{
jit_int32_t *ptr = (jit_int32_t *)jit->outptr;
*ptr = c;
jit->outptr += sizeof(jit_int32_t);
}
void jit_write_int32_null(jitinfo_t *jit, jit_int32_t c)
{
jit->outptr += sizeof(jit_int32_t);
}
void jit_write_int64(jitinfo_t *jit, jit_int64_t c)
{
jit_int64_t *ptr = (jit_int64_t *)jit->outptr;
*ptr = c;
jit->outptr += sizeof(jit_int64_t);
}
void jit_write_int64_null(jitinfo_t *jit, jit_int64_t c)
{
jit->outptr += sizeof(jit_int64_t);
}
jitoffs_t jit_curpos(jitinfo_t *jit)
{
return (jit->outptr - jit->outbase);
}
jitwritefuncs_t g_write_funcs =
{
jit_read_cell,
jit_read_cellptr,
jit_write_ubyte,
jit_write_byte,
jit_write_int32,
jit_write_int64,
jit_curpos
};
jitwritefuncs_t g_write_null_funcs =
{
jit_read_cell_null,
jit_read_cellptr_null,
jit_write_ubyte_null,
jit_write_byte_null,
jit_write_int32_null,
jit_write_int64_null,
jit_curpos
};