summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDavid Schleef <ds@ginger.bigkitten.com>2008-05-22 11:42:00 -0700
committerDavid Schleef <ds@ginger.bigkitten.com>2008-05-22 11:42:00 -0700
commit50aa4a62b9c1154c06236f12d364bac97a2a15f7 (patch)
tree33a4f05686b36830ef0f13a44b7b8739b63ae42a
parent294090a6824d337318359dfc3b70a1bcba111c0f (diff)
downloadliboil-50aa4a62b9c1154c06236f12d364bac97a2a15f7.tar.gz
[orc] remove glib dependency
-rw-r--r--orc/orc.c1
-rw-r--r--orc/orc.h8
-rw-r--r--orc/orcexecutor.c1
-rw-r--r--orc/orcopcodes.c1
-rw-r--r--orc/orcprogram-linux.c13
-rw-r--r--orc/orcprogram-powerpc.c15
-rw-r--r--orc/orcprogram-x86.c115
-rw-r--r--orc/orcprogram.c37
-rw-r--r--orc/orcprogram.h10
-rw-r--r--orc/orcrule.c1
-rw-r--r--orc/orctype.c1
11 files changed, 105 insertions, 98 deletions
diff --git a/orc/orc.c b/orc/orc.c
index 9d009e1..6094adb 100644
--- a/orc/orc.c
+++ b/orc/orc.c
@@ -1,7 +1,6 @@
#include "config.h"
-#include <glib.h>
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
diff --git a/orc/orc.h b/orc/orc.h
new file mode 100644
index 0000000..ec27285
--- /dev/null
+++ b/orc/orc.h
@@ -0,0 +1,8 @@
+
+#ifndef _ORC_ORC_H_
+#define _ORC_ORC_H_
+
+#include <orc/orcprogram.h>
+
+#endif
+
diff --git a/orc/orcexecutor.c b/orc/orcexecutor.c
index 7395ed4..732e0f4 100644
--- a/orc/orcexecutor.c
+++ b/orc/orcexecutor.c
@@ -1,7 +1,6 @@
#include "config.h"
-#include <glib.h>
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
diff --git a/orc/orcopcodes.c b/orc/orcopcodes.c
index d82757d..1ec3ea7 100644
--- a/orc/orcopcodes.c
+++ b/orc/orcopcodes.c
@@ -1,7 +1,6 @@
#include "config.h"
-#include <glib.h>
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
diff --git a/orc/orcprogram-linux.c b/orc/orcprogram-linux.c
index 3109ceb..d590046 100644
--- a/orc/orcprogram-linux.c
+++ b/orc/orcprogram-linux.c
@@ -1,7 +1,6 @@
#include "config.h"
-#include <glib.h>
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
@@ -18,33 +17,31 @@
void
orc_program_allocate_codemem (OrcProgram *program)
{
- char *filename;
+ char filename[32] = "/tmp/orcexecXXXXXX";
int fd;
- GError *error = NULL;
- fd = g_file_open_tmp ("liboilexecXXXXXX", &filename, &error);
+ fd = mkstemp (filename);
if (fd == -1) {
/* FIXME oh crap */
- g_print("failed to create temp file\n");
+ printf("failed to create temp file\n");
program->error = TRUE;
return;
}
unlink (filename);
- g_free (filename);
ftruncate (fd, SIZE);
program->code = mmap (NULL, SIZE, PROT_READ|PROT_WRITE, MAP_SHARED, fd, 0);
if (program->code == MAP_FAILED) {
/* FIXME oh crap */
- g_print("failed to create write map\n");
+ printf("failed to create write map\n");
program->error = TRUE;
return;
}
program->code_exec = mmap (NULL, SIZE, PROT_READ|PROT_EXEC, MAP_SHARED, fd, 0);
if (program->code_exec == MAP_FAILED) {
/* FIXME oh crap */
- g_print("failed to create exec map\n");
+ printf("failed to create exec map\n");
program->error = TRUE;
return;
}
diff --git a/orc/orcprogram-powerpc.c b/orc/orcprogram-powerpc.c
index 9ed4683..2311899 100644
--- a/orc/orcprogram-powerpc.c
+++ b/orc/orcprogram-powerpc.c
@@ -1,7 +1,6 @@
#include "config.h"
-#include <glib.h>
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
@@ -147,7 +146,7 @@ orc_program_powerpc_allocate_register (OrcProgram *program, int data_reg)
}
}
}
- g_print("register overflow\n");
+ printf("register overflow\n");
return 0;
}
@@ -384,7 +383,7 @@ powerpc_load_constants (OrcProgram *program)
powerpc_emit_lwz (program,
program->vars[i].ptr_register,
POWERPC_R3,
- (int)G_STRUCT_OFFSET(OrcExecutor, arrays[i]));
+ (int)ORC_STRUCT_OFFSET(OrcExecutor, arrays[i]));
} else {
/* FIXME */
printf("ERROR");
@@ -478,7 +477,7 @@ orc_program_assemble_powerpc (OrcProgram *program)
powerpc_emit_prologue (program);
powerpc_emit_lwz (program, POWERPC_R0, POWERPC_R3,
- (int)G_STRUCT_OFFSET(OrcExecutor, n));
+ (int)ORC_STRUCT_OFFSET(OrcExecutor, n));
powerpc_emit_srawi (program, POWERPC_R0, POWERPC_R0,
program->loop_shift, 1);
@@ -674,7 +673,7 @@ orc_program_powerpc_register_rules (void)
void powerpc_emit_ret (OrcProgram *program)
{
- g_print(" ret\n");
+ printf(" ret\n");
//*program->codeptr++ = 0xc3;
}
@@ -695,7 +694,7 @@ powerpc_add_label (OrcProgram *program, unsigned char *ptr, int label)
void powerpc_emit_beq (OrcProgram *program, int label)
{
- g_print(" ble- .L%d\n", label);
+ printf(" ble- .L%d\n", label);
powerpc_add_fixup (program, program->codeptr, label);
powerpc_emit (program, 0x40810000);
@@ -703,7 +702,7 @@ void powerpc_emit_beq (OrcProgram *program, int label)
void powerpc_emit_bne (OrcProgram *program, int label)
{
- g_print(" bdnz+ .L%d\n", label);
+ printf(" bdnz+ .L%d\n", label);
powerpc_add_fixup (program, program->codeptr, label);
powerpc_emit (program, 0x42000000);
@@ -711,7 +710,7 @@ void powerpc_emit_bne (OrcProgram *program, int label)
void powerpc_emit_label (OrcProgram *program, int label)
{
- g_print(".L%d:\n", label);
+ printf(".L%d:\n", label);
powerpc_add_label (program, program->codeptr, label);
}
diff --git a/orc/orcprogram-x86.c b/orc/orcprogram-x86.c
index a0829a0..23707a1 100644
--- a/orc/orcprogram-x86.c
+++ b/orc/orcprogram-x86.c
@@ -1,7 +1,6 @@
#include "config.h"
-#include <glib.h>
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
@@ -149,7 +148,7 @@ orc_program_x86_allocate_register (OrcProgram *program, int data_reg)
}
}
}
- g_print("register overflow\n");
+ printf("register overflow\n");
return 0;
}
@@ -160,8 +159,8 @@ void orc_program_dump (OrcProgram *program);
void
x86_emit_prologue (OrcProgram *program)
{
- g_print(".global test\n");
- g_print("test:\n");
+ printf(".global test\n");
+ printf("test:\n");
x86_emit_push (program, 4, X86_EBP);
x86_emit_mov_memoffset_reg (program, 4, 8, X86_ESP, X86_EBP);
if (program->used_regs[X86_EDI]) {
@@ -245,7 +244,7 @@ x86_load_constants (OrcProgram *program)
case ORC_VAR_TYPE_DEST:
if (program->vars[i].ptr_register) {
x86_emit_mov_memoffset_reg (program, 4,
- (int)G_STRUCT_OFFSET(OrcExecutor, arrays[i]), X86_EBP,
+ (int)ORC_STRUCT_OFFSET(OrcExecutor, arrays[i]), X86_EBP,
program->vars[i].ptr_register);
} else {
/* FIXME */
@@ -332,12 +331,12 @@ orc_program_assemble_x86 (OrcProgram *program)
x86_emit_prologue (program);
- x86_emit_mov_memoffset_reg (program, 4, (int)G_STRUCT_OFFSET(OrcExecutor,n),
+ x86_emit_mov_memoffset_reg (program, 4, (int)ORC_STRUCT_OFFSET(OrcExecutor,n),
X86_EBP, X86_ECX);
x86_emit_sar_imm_reg (program, 4, program->loop_shift, X86_ECX);
x86_emit_mov_reg_memoffset (program, 4, X86_ECX,
- (int)G_STRUCT_OFFSET(OrcExecutor,counter), X86_EBP);
+ (int)ORC_STRUCT_OFFSET(OrcExecutor,counter), X86_EBP);
x86_emit_test_reg_reg (program, 4, X86_ECX, X86_ECX);
@@ -411,14 +410,14 @@ orc_program_assemble_x86 (OrcProgram *program)
} else {
x86_emit_add_imm_memoffset (program, 4,
orc_variable_get_size(program->vars + k) * program->n_per_loop,
- (int)G_STRUCT_OFFSET(OrcExecutor, arrays[k]),
+ (int)ORC_STRUCT_OFFSET(OrcExecutor, arrays[k]),
X86_EBP);
}
}
}
x86_emit_dec_memoffset (program, 4,
- (int)G_STRUCT_OFFSET(OrcExecutor,counter),
+ (int)ORC_STRUCT_OFFSET(OrcExecutor,counter),
X86_EBP);
x86_emit_jne (program, 0);
x86_emit_label (program, 1);
@@ -446,7 +445,7 @@ x86_rule_add_s16 (OrcProgram *p, void *user, OrcInstruction *insn)
{
if (insn->rule_flag == ORC_RULE_REG_IMM) {
int value = p->vars[insn->args[2]].s16;
- g_print(" addw $%d, %%%s\n", value,
+ printf(" addw $%d, %%%s\n", value,
x86_get_regname_16(p->vars[insn->args[0]].alloc));
if (value >= -128 && value < 128) {
@@ -462,7 +461,7 @@ x86_rule_add_s16 (OrcProgram *p, void *user, OrcInstruction *insn)
*p->codeptr++ = value >> 8;
}
} else {
- g_print(" addw %%%s, %%%s\n",
+ printf(" addw %%%s, %%%s\n",
x86_get_regname_16(p->vars[insn->args[2]].alloc),
x86_get_regname_16(p->vars[insn->args[0]].alloc));
@@ -476,7 +475,7 @@ x86_rule_add_s16 (OrcProgram *p, void *user, OrcInstruction *insn)
static void
x86_rule_sub_s16 (OrcProgram *p, void *user, OrcInstruction *insn)
{
- g_print(" subw %%%s, %%%s\n",
+ printf(" subw %%%s, %%%s\n",
x86_get_regname_16(p->vars[insn->args[2]].alloc),
x86_get_regname_16(p->vars[insn->args[0]].alloc));
@@ -489,7 +488,7 @@ x86_rule_sub_s16 (OrcProgram *p, void *user, OrcInstruction *insn)
static void
x86_rule_mul_s16 (OrcProgram *p, void *user, OrcInstruction *insn)
{
- g_print(" imulw %%%s, %%%s\n",
+ printf(" imulw %%%s, %%%s\n",
x86_get_regname_16(p->vars[insn->args[2]].alloc),
x86_get_regname_16(p->vars[insn->args[0]].alloc));
@@ -505,7 +504,7 @@ x86_rule_lshift_s16 (OrcProgram *p, void *user, OrcInstruction *insn)
{
x86_emit_mov_reg_reg(p, 4, p->vars[insn->args[2]].alloc, X86_ECX);
- g_print(" shlw %%cl, %%%s\n",
+ printf(" shlw %%cl, %%%s\n",
x86_get_regname_16(p->vars[insn->args[0]].alloc));
*p->codeptr++ = 0x66;
@@ -517,7 +516,7 @@ static void
x86_rule_rshift_s16 (OrcProgram *p, void *user, OrcInstruction *insn)
{
if (insn->rule_flag == ORC_RULE_REG_IMM) {
- g_print(" sarw $%d, %%%s\n",
+ printf(" sarw $%d, %%%s\n",
p->vars[insn->args[2]].s16,
x86_get_regname_16(p->vars[insn->args[0]].alloc));
@@ -534,7 +533,7 @@ x86_rule_rshift_s16 (OrcProgram *p, void *user, OrcInstruction *insn)
} else {
x86_emit_mov_reg_reg(p, 4, p->vars[insn->args[2]].alloc, X86_ECX);
- g_print(" sarw %%cl, %%%s\n",
+ printf(" sarw %%cl, %%%s\n",
x86_get_regname_16(p->vars[insn->args[0]].alloc));
*p->codeptr++ = 0x66;
@@ -568,7 +567,7 @@ static void
mmx_emit_loadi_s16 (OrcProgram *p, int reg, int value)
{
if (value == 0) {
- g_print(" pxor %%%s, %%%s\n", x86_get_regname_mmx(reg),
+ printf(" pxor %%%s, %%%s\n", x86_get_regname_mmx(reg),
x86_get_regname_mmx(reg));
*p->codeptr++ = 0x0f;
*p->codeptr++ = 0xef;
@@ -576,12 +575,12 @@ mmx_emit_loadi_s16 (OrcProgram *p, int reg, int value)
} else {
x86_emit_mov_imm_reg (p, 4, value, X86_ECX);
- g_print(" movd %%ecx, %%%s\n", x86_get_regname_mmx(reg));
+ printf(" movd %%ecx, %%%s\n", x86_get_regname_mmx(reg));
*p->codeptr++ = 0x0f;
*p->codeptr++ = 0x6e;
x86_emit_modrm_reg (p, X86_ECX, reg);
- g_print(" pshufw $0, %%%s, %%%s\n", x86_get_regname_mmx(reg),
+ printf(" pshufw $0, %%%s, %%%s\n", x86_get_regname_mmx(reg),
x86_get_regname_mmx(reg));
*p->codeptr++ = 0x0f;
@@ -601,7 +600,7 @@ mmx_rule_loadi_s16 (OrcProgram *p, void *user, OrcInstruction *insn)
static void
mmx_rule_add_s16 (OrcProgram *p, void *user, OrcInstruction *insn)
{
- g_print(" paddw %%%s, %%%s\n",
+ printf(" paddw %%%s, %%%s\n",
x86_get_regname_mmx(p->vars[insn->args[2]].alloc),
x86_get_regname_mmx(p->vars[insn->args[0]].alloc));
@@ -614,7 +613,7 @@ mmx_rule_add_s16 (OrcProgram *p, void *user, OrcInstruction *insn)
static void
mmx_rule_sub_s16 (OrcProgram *p, void *user, OrcInstruction *insn)
{
- g_print(" psubw %%%s, %%%s\n",
+ printf(" psubw %%%s, %%%s\n",
x86_get_regname_mmx(p->vars[insn->args[2]].alloc),
x86_get_regname_mmx(p->vars[insn->args[0]].alloc));
@@ -627,7 +626,7 @@ mmx_rule_sub_s16 (OrcProgram *p, void *user, OrcInstruction *insn)
static void
mmx_rule_mul_s16 (OrcProgram *p, void *user, OrcInstruction *insn)
{
- g_print(" pmullw %%%s, %%%s\n",
+ printf(" pmullw %%%s, %%%s\n",
x86_get_regname_mmx(p->vars[insn->args[2]].alloc),
x86_get_regname_mmx(p->vars[insn->args[0]].alloc));
@@ -641,7 +640,7 @@ static void
mmx_rule_lshift_s16 (OrcProgram *p, void *user, OrcInstruction *insn)
{
if (p->vars[insn->args[2]].vartype == ORC_VAR_TYPE_CONST) {
- g_print(" psllw $%d, %%%s\n",
+ printf(" psllw $%d, %%%s\n",
p->vars[insn->args[2]].s16,
x86_get_regname_mmx(p->vars[insn->args[0]].alloc));
@@ -651,7 +650,7 @@ mmx_rule_lshift_s16 (OrcProgram *p, void *user, OrcInstruction *insn)
*p->codeptr++ = p->vars[insn->args[2]].s16;
} else {
/* FIXME this doesn't work quite right */
- g_print(" psllw %%%s, %%%s\n",
+ printf(" psllw %%%s, %%%s\n",
x86_get_regname_mmx(p->vars[insn->args[2]].alloc),
x86_get_regname_mmx(p->vars[insn->args[0]].alloc));
@@ -666,7 +665,7 @@ static void
mmx_rule_rshift_s16 (OrcProgram *p, void *user, OrcInstruction *insn)
{
if (p->vars[insn->args[2]].vartype == ORC_VAR_TYPE_CONST) {
- g_print(" psraw $%d, %%%s\n",
+ printf(" psraw $%d, %%%s\n",
p->vars[insn->args[2]].s16,
x86_get_regname_mmx(p->vars[insn->args[0]].alloc));
@@ -676,7 +675,7 @@ mmx_rule_rshift_s16 (OrcProgram *p, void *user, OrcInstruction *insn)
*p->codeptr++ = p->vars[insn->args[2]].s16;
} else {
/* FIXME this doesn't work quite right */
- g_print(" psraw %%%s, %%%s\n",
+ printf(" psraw %%%s, %%%s\n",
x86_get_regname_mmx(p->vars[insn->args[2]].alloc),
x86_get_regname_mmx(p->vars[insn->args[0]].alloc));
@@ -718,11 +717,11 @@ x86_emit_push (OrcProgram *program, int size, int reg)
if (size == 1) {
program->error = 1;
} else if (size == 2) {
- g_print(" pushw %%%s\n", x86_get_regname_16(reg));
+ printf(" pushw %%%s\n", x86_get_regname_16(reg));
*program->codeptr++ = 0x66;
*program->codeptr++ = 0x50 + x86_get_regnum(reg);
} else {
- g_print(" pushl %%%s\n", x86_get_regname(reg));
+ printf(" pushl %%%s\n", x86_get_regname(reg));
*program->codeptr++ = 0x50 + x86_get_regnum(reg);
}
}
@@ -734,11 +733,11 @@ x86_emit_pop (OrcProgram *program, int size, int reg)
if (size == 1) {
program->error = 1;
} else if (size == 2) {
- g_print(" popw %%%s\n", x86_get_regname_16(reg));
+ printf(" popw %%%s\n", x86_get_regname_16(reg));
*program->codeptr++ = 0x66;
*program->codeptr++ = 0x58 + x86_get_regnum(reg);
} else {
- g_print(" popl %%%s\n", x86_get_regname(reg));
+ printf(" popl %%%s\n", x86_get_regname(reg));
*program->codeptr++ = 0x58 + x86_get_regnum(reg);
}
}
@@ -785,11 +784,11 @@ x86_emit_mov_memoffset_reg (OrcProgram *program, int size, int offset,
int reg1, int reg2)
{
if (size == 2) {
- g_print(" movw %d(%%%s), %%%s\n", offset, x86_get_regname(reg1),
+ printf(" movw %d(%%%s), %%%s\n", offset, x86_get_regname(reg1),
x86_get_regname_16(reg2));
*program->codeptr++ = 0x66;
} else {
- g_print(" movl %d(%%%s), %%%s\n", offset, x86_get_regname(reg1),
+ printf(" movl %d(%%%s), %%%s\n", offset, x86_get_regname(reg1),
x86_get_regname(reg2));
}
@@ -802,12 +801,12 @@ x86_emit_mov_memoffset_mmx (OrcProgram *program, int size, int offset,
int reg1, int reg2)
{
if (size == 4) {
- g_print(" movd %d(%%%s), %%%s\n", offset, x86_get_regname(reg1),
+ printf(" movd %d(%%%s), %%%s\n", offset, x86_get_regname(reg1),
x86_get_regname_mmx(reg2));
*program->codeptr++ = 0x0f;
*program->codeptr++ = 0x6e;
} else {
- g_print(" movq %d(%%%s), %%%s\n", offset, x86_get_regname(reg1),
+ printf(" movq %d(%%%s), %%%s\n", offset, x86_get_regname(reg1),
x86_get_regname_mmx(reg2));
*program->codeptr++ = 0x0f;
*program->codeptr++ = 0x6f;
@@ -820,11 +819,11 @@ x86_emit_mov_reg_memoffset (OrcProgram *program, int size, int reg1, int offset,
int reg2)
{
if (size == 2) {
- g_print(" movw %%%s, %d(%%%s)\n", x86_get_regname_16(reg1), offset,
+ printf(" movw %%%s, %d(%%%s)\n", x86_get_regname_16(reg1), offset,
x86_get_regname(reg2));
*program->codeptr++ = 0x66;
} else {
- g_print(" movl %%%s, %d(%%%s)\n", x86_get_regname(reg1), offset,
+ printf(" movl %%%s, %d(%%%s)\n", x86_get_regname(reg1), offset,
x86_get_regname(reg2));
}
@@ -837,12 +836,12 @@ x86_emit_mov_mmx_memoffset (OrcProgram *program, int size, int reg1, int offset,
int reg2)
{
if (size == 4) {
- g_print(" movd %%%s, %d(%%%s)\n", x86_get_regname_mmx(reg1), offset,
+ printf(" movd %%%s, %d(%%%s)\n", x86_get_regname_mmx(reg1), offset,
x86_get_regname(reg2));
*program->codeptr++ = 0x0f;
*program->codeptr++ = 0x7e;
} else {
- g_print(" movq %%%s, %d(%%%s)\n", x86_get_regname_mmx(reg1), offset,
+ printf(" movq %%%s, %d(%%%s)\n", x86_get_regname_mmx(reg1), offset,
x86_get_regname(reg2));
*program->codeptr++ = 0x0f;
*program->codeptr++ = 0x7f;
@@ -855,13 +854,13 @@ void
x86_emit_mov_imm_reg (OrcProgram *program, int size, int value, int reg1)
{
if (size == 2) {
- g_print(" movw $%d, %%%s\n", value, x86_get_regname_16(reg1));
+ printf(" movw $%d, %%%s\n", value, x86_get_regname_16(reg1));
*program->codeptr++ = 0x66;
*program->codeptr++ = 0xb8 + x86_get_regnum(reg1);
*program->codeptr++ = (value & 0xff);
*program->codeptr++ = ((value>>8) & 0xff);
} else {
- g_print(" movl $%d, %%%s\n", value, x86_get_regname(reg1));
+ printf(" movl $%d, %%%s\n", value, x86_get_regname(reg1));
*program->codeptr++ = 0xb8 + x86_get_regnum(reg1);
*program->codeptr++ = (value & 0xff);
*program->codeptr++ = ((value>>8) & 0xff);
@@ -874,11 +873,11 @@ x86_emit_mov_imm_reg (OrcProgram *program, int size, int value, int reg1)
void x86_emit_mov_reg_reg (OrcProgram *program, int size, int reg1, int reg2)
{
if (size == 2) {
- g_print(" movw %%%s, %%%s\n", x86_get_regname_16(reg1),
+ printf(" movw %%%s, %%%s\n", x86_get_regname_16(reg1),
x86_get_regname_16(reg2));
*program->codeptr++ = 0x66;
} else {
- g_print(" movl %%%s, %%%s\n", x86_get_regname(reg1),
+ printf(" movl %%%s, %%%s\n", x86_get_regname(reg1),
x86_get_regname(reg2));
}
@@ -889,7 +888,7 @@ void x86_emit_mov_reg_reg (OrcProgram *program, int size, int reg1, int reg2)
void x86_emit_mov_reg_mmx (OrcProgram *program, int reg1, int reg2)
{
/* FIXME */
- g_print(" movd %%%s, %%%s\n", x86_get_regname(reg1),
+ printf(" movd %%%s, %%%s\n", x86_get_regname(reg1),
x86_get_regname_mmx(reg2));
*program->codeptr++ = 0x0f;
*program->codeptr++ = 0x6e;
@@ -899,7 +898,7 @@ void x86_emit_mov_reg_mmx (OrcProgram *program, int reg1, int reg2)
void x86_emit_mov_mmx_reg (OrcProgram *program, int reg1, int reg2)
{
/* FIXME */
- g_print(" movd %%%s, %%%s\n", x86_get_regname_mmx(reg1),
+ printf(" movd %%%s, %%%s\n", x86_get_regname_mmx(reg1),
x86_get_regname(reg2));
*program->codeptr++ = 0x0f;
*program->codeptr++ = 0x7e;
@@ -910,11 +909,11 @@ void
x86_emit_test_reg_reg (OrcProgram *program, int size, int reg1, int reg2)
{
if (size == 2) {
- g_print(" testw %%%s, %%%s\n", x86_get_regname_16(reg1),
+ printf(" testw %%%s, %%%s\n", x86_get_regname_16(reg1),
x86_get_regname_16(reg2));
*program->codeptr++ = 0x66;
} else {
- g_print(" testl %%%s, %%%s\n", x86_get_regname(reg1),
+ printf(" testl %%%s, %%%s\n", x86_get_regname(reg1),
x86_get_regname(reg2));
}
@@ -925,7 +924,7 @@ x86_emit_test_reg_reg (OrcProgram *program, int size, int reg1, int reg2)
void
x86_emit_sar_imm_reg (OrcProgram *program, int size, int value, int reg)
{
- g_print(" sarl $%d, %%%s\n", value, x86_get_regname(reg));
+ printf(" sarl $%d, %%%s\n", value, x86_get_regname(reg));
if (value == 1) {
*program->codeptr++ = 0xd1;
@@ -942,11 +941,11 @@ x86_emit_add_imm_memoffset (OrcProgram *program, int size, int value,
int offset, int reg)
{
if (size == 2) {
- g_print(" addw $%d, %d(%%%s)\n", value, offset,
+ printf(" addw $%d, %d(%%%s)\n", value, offset,
x86_get_regname(reg));
*program->codeptr++ = 0x66;
} else {
- g_print(" addl $%d, %d(%%%s)\n", value, offset,
+ printf(" addl $%d, %d(%%%s)\n", value, offset,
x86_get_regname(reg));
}
@@ -970,10 +969,10 @@ void
x86_emit_add_imm_reg (OrcProgram *program, int size, int value, int reg)
{
if (size == 2) {
- g_print(" addw $%d, %%%s\n", value, x86_get_regname_16(reg));
+ printf(" addw $%d, %%%s\n", value, x86_get_regname_16(reg));
*program->codeptr++ = 0x66;
} else {
- g_print(" addl $%d, %%%s\n", value, x86_get_regname(reg));
+ printf(" addl $%d, %%%s\n", value, x86_get_regname(reg));
}
if (value >= -128 && value < 128) {
@@ -997,10 +996,10 @@ x86_emit_dec_memoffset (OrcProgram *program, int size,
int offset, int reg)
{
if (size == 2) {
- g_print(" decw %d(%%%s)\n", offset, x86_get_regname(reg));
+ printf(" decw %d(%%%s)\n", offset, x86_get_regname(reg));
*program->codeptr++ = 0x66;
} else {
- g_print(" decl %d(%%%s)\n", offset, x86_get_regname(reg));
+ printf(" decl %d(%%%s)\n", offset, x86_get_regname(reg));
}
*program->codeptr++ = 0xff;
@@ -1009,13 +1008,13 @@ x86_emit_dec_memoffset (OrcProgram *program, int size,
void x86_emit_ret (OrcProgram *program)
{
- g_print(" ret\n");
+ printf(" ret\n");
*program->codeptr++ = 0xc3;
}
void x86_emit_emms (OrcProgram *program)
{
- g_print(" emms\n");
+ printf(" emms\n");
*program->codeptr++ = 0x0f;
*program->codeptr++ = 0x77;
}
@@ -1037,7 +1036,7 @@ x86_add_label (OrcProgram *program, unsigned char *ptr, int label)
void x86_emit_je (OrcProgram *program, int label)
{
- g_print(" je .L%d\n", label);
+ printf(" je .L%d\n", label);
*program->codeptr++ = 0x74;
x86_add_fixup (program, program->codeptr, label);
@@ -1046,7 +1045,7 @@ void x86_emit_je (OrcProgram *program, int label)
void x86_emit_jne (OrcProgram *program, int label)
{
- g_print(" jne .L%d\n", label);
+ printf(" jne .L%d\n", label);
*program->codeptr++ = 0x75;
x86_add_fixup (program, program->codeptr, label);
*program->codeptr++ = -1;
@@ -1054,7 +1053,7 @@ void x86_emit_jne (OrcProgram *program, int label)
void x86_emit_label (OrcProgram *program, int label)
{
- g_print(".L%d:\n", label);
+ printf(".L%d:\n", label);
x86_add_label (program, program->codeptr, label);
}
diff --git a/orc/orcprogram.c b/orc/orcprogram.c
index da31111..e0d64d0 100644
--- a/orc/orcprogram.c
+++ b/orc/orcprogram.c
@@ -1,7 +1,6 @@
#include "config.h"
-#include <glib.h>
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
@@ -59,8 +58,8 @@ orc_program_dup_temporary (OrcProgram *program, int var, int j)
program->vars[i].vartype = ORC_VAR_TYPE_TEMP;
program->vars[i].type = program->vars[var].type;
- program->vars[i].name = g_strdup_printf("%s.dup%d",
- program->vars[var].name, j);
+ program->vars[i].name = malloc (strlen(program->vars[var].name) + 10);
+ sprintf(program->vars[i].name, "%s.dup%d", program->vars[var].name, j);
program->n_vars++;
return i;
@@ -203,7 +202,7 @@ orc_program_rewrite_vars (OrcProgram *program)
for(k=opcode->n_dest;k<opcode->n_src + opcode->n_dest;k++){
var = insn->args[k];
if (program->vars[var].vartype == ORC_VAR_TYPE_DEST) {
- g_print("ERROR: using dest var as source\n");
+ printf("ERROR: using dest var as source\n");
}
actual_var = var;
@@ -214,7 +213,7 @@ orc_program_rewrite_vars (OrcProgram *program)
if (!program->vars[var].used) {
if (program->vars[var].vartype == ORC_VAR_TYPE_TEMP) {
- g_print("ERROR: using uninitialized temp var\n");
+ printf("ERROR: using uninitialized temp var\n");
}
program->vars[var].used = TRUE;
program->vars[var].first_use = j;
@@ -226,13 +225,13 @@ orc_program_rewrite_vars (OrcProgram *program)
var = insn->args[k];
if (program->vars[var].vartype == ORC_VAR_TYPE_SRC) {
- g_print("ERROR: using src var as dest\n");
+ printf("ERROR: using src var as dest\n");
}
if (program->vars[var].vartype == ORC_VAR_TYPE_CONST) {
- g_print("ERROR: using const var as dest\n");
+ printf("ERROR: using const var as dest\n");
}
if (program->vars[var].vartype == ORC_VAR_TYPE_PARAM) {
- g_print("ERROR: using param var as dest\n");
+ printf("ERROR: using param var as dest\n");
}
actual_var = var;
@@ -246,7 +245,7 @@ orc_program_rewrite_vars (OrcProgram *program)
program->vars[actual_var].first_use = j;
} else {
if (program->vars[var].vartype == ORC_VAR_TYPE_DEST) {
- g_print("ERROR: writing dest more than once\n");
+ printf("ERROR: writing dest more than once\n");
}
if (program->vars[var].vartype == ORC_VAR_TYPE_TEMP) {
actual_var = orc_program_dup_temporary (program, var, j);
@@ -366,7 +365,7 @@ orc_program_rewrite_vars2 (OrcProgram *program)
#if 0
for(i=0;i<program->n_vars;i++){
- g_print("# %2d: %2d %2d %d\n",
+ printf("# %2d: %2d %2d %d\n",
i,
program->vars[i].first_use,
program->vars[i].last_use,
@@ -399,27 +398,27 @@ orc_program_dump (OrcProgram *program)
insn = program->insns + i;
opcode = insn->opcode;
- g_print("insn: %d\n", i);
- g_print(" opcode: %s\n", opcode->name);
+ printf("insn: %d\n", i);
+ printf(" opcode: %s\n", opcode->name);
for(j=0;j<opcode->n_dest;j++){
- g_print(" dest%d: %d %s\n", j, insn->args[j],
+ printf(" dest%d: %d %s\n", j, insn->args[j],
program->vars[insn->args[j]].name);
}
for(j=0;j<opcode->n_src;j++){
- g_print(" src%d: %d %s\n", j, insn->args[opcode->n_dest + j],
+ printf(" src%d: %d %s\n", j, insn->args[opcode->n_dest + j],
program->vars[insn->args[opcode->n_dest + j]].name);
}
- g_print("\n");
+ printf("\n");
}
for(i=0;i<program->n_vars;i++){
- g_print("var: %d %s\n", i, program->vars[i].name);
- g_print("first_use: %d\n", program->vars[i].first_use);
- g_print("last_use: %d\n", program->vars[i].last_use);
+ printf("var: %d %s\n", i, program->vars[i].name);
+ printf("first_use: %d\n", program->vars[i].first_use);
+ printf("last_use: %d\n", program->vars[i].last_use);
- g_print("\n");
+ printf("\n");
}
}
diff --git a/orc/orcprogram.h b/orc/orcprogram.h
index b2d2d83..de04067 100644
--- a/orc/orcprogram.h
+++ b/orc/orcprogram.h
@@ -28,6 +28,16 @@ typedef void (*OrcRuleEmitFunc)(OrcProgram *p, void *user, OrcInstruction *insn)
#define ORC_OPCODE_N_ARGS 4
#define ORC_OPCODE_N_RULES 8
+#define ORC_STRUCT_OFFSET(struct_type, member) \
+ ((long) ((unsigned int *) &((struct_type*) 0)->member))
+
+#ifndef TRUE
+#define TRUE 1
+#endif
+#ifndef FALSE
+#define FALSE 0
+#endif
+
enum {
ORC_RULE_C = 0,
ORC_RULE_SCALAR_1,
diff --git a/orc/orcrule.c b/orc/orcrule.c
index 7024745..1919e76 100644
--- a/orc/orcrule.c
+++ b/orc/orcrule.c
@@ -1,7 +1,6 @@
#include "config.h"
-#include <glib.h>
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
diff --git a/orc/orctype.c b/orc/orctype.c
index ea770c9..fbbe5ca 100644
--- a/orc/orctype.c
+++ b/orc/orctype.c
@@ -1,7 +1,6 @@
#include "config.h"
-#include <glib.h>
#include <stdio.h>
#include <string.h>
#include <stdlib.h>