diff options
author | Pekka Enberg <penberg@kernel.org> | 2012-02-02 19:02:20 +0200 |
---|---|---|
committer | Pekka Enberg <penberg@kernel.org> | 2012-02-02 19:02:20 +0200 |
commit | 48fad6d8f76a4456aeea5415c9f422a5c75f7583 (patch) | |
tree | 2ba3a264d6753fa55db0e00c5d9c6c7debd32623 | |
parent | fc8aba2bef7917b9deffa1918b2a7b8740dbdecf (diff) | |
parent | bcb42c3e504a58e1c7e3f8e8a61f6cc1f19569b0 (diff) | |
download | jato-48fad6d8f76a4456aeea5415c9f422a5c75f7583.tar.gz |
Merge /home/penberg/src/jato
-rw-r--r-- | arch/x86/emit_32.c | 1 | ||||
-rw-r--r-- | arch/x86/emit_64.c | 1 | ||||
-rw-r--r-- | arch/x86/encode.c | 1 | ||||
-rw-r--r-- | arch/x86/include/arch/instruction.h | 1 | ||||
-rw-r--r-- | arch/x86/instruction.c | 1 | ||||
-rw-r--r-- | arch/x86/lir-printer.c | 6 | ||||
-rw-r--r-- | boehmgc/Makefile | 7 | ||||
-rw-r--r-- | test/integration/bytecode-test.c | 5 |
8 files changed, 20 insertions, 3 deletions
diff --git a/arch/x86/emit_32.c b/arch/x86/emit_32.c index f133bdac..b308a0ec 100644 --- a/arch/x86/emit_32.c +++ b/arch/x86/emit_32.c @@ -1254,6 +1254,7 @@ static emit_fn_t emitters[] = { DECL_EMITTER(INSN_MULSD_XMM_XMM, insn_encode), DECL_EMITTER(INSN_MULSS_XMM_XMM, insn_encode), DECL_EMITTER(INSN_NEG_REG, insn_encode), + DECL_EMITTER(INSN_NOP, insn_encode), DECL_EMITTER(INSN_OR_REG_REG, insn_encode), DECL_EMITTER(INSN_POP_MEMLOCAL, insn_encode), DECL_EMITTER(INSN_POP_REG, insn_encode), diff --git a/arch/x86/emit_64.c b/arch/x86/emit_64.c index 081ab8df..8ffbc21f 100644 --- a/arch/x86/emit_64.c +++ b/arch/x86/emit_64.c @@ -1674,6 +1674,7 @@ static emit_fn_t emitters[] = { DECL_EMITTER(INSN_MULSD_XMM_XMM, insn_encode), DECL_EMITTER(INSN_MULSS_XMM_XMM, insn_encode), DECL_EMITTER(INSN_NEG_REG, insn_encode), + DECL_EMITTER(INSN_NOP, insn_encode), DECL_EMITTER(INSN_OR_REG_REG, insn_encode), DECL_EMITTER(INSN_POP_MEMLOCAL, insn_encode), DECL_EMITTER(INSN_POP_REG, insn_encode), diff --git a/arch/x86/encode.c b/arch/x86/encode.c index 08725417..ff6a4117 100644 --- a/arch/x86/encode.c +++ b/arch/x86/encode.c @@ -254,6 +254,7 @@ static uint64_t encode_table[NR_INSN_TYPES] = { [INSN_MULSD_XMM_XMM] = REPNE_PREFIX | ESCAPE_OPC_BYTE | OPCODE(0x59) | ADDMODE_REG_REG | WIDTH_64, [INSN_MULSS_XMM_XMM] = REPE_PREFIX | ESCAPE_OPC_BYTE | OPCODE(0x59) | ADDMODE_REG_REG | WIDTH_FULL, [INSN_NEG_REG] = OPCODE(0xf7) | OPCODE_EXT(3) | ADDMODE_REG | DIR_REVERSED | WIDTH_FULL | REX_W_PREFIX, + [INSN_NOP] = OPCODE(0x90) | ADDMODE_IMPLIED, [INSN_OR_MEMBASE_REG] = OPCODE(0x0b) | ADDMODE_RM_REG | WIDTH_FULL | REX_W_PREFIX, [INSN_OR_REG_REG] = OPCODE(0x09) | ADDMODE_REG_REG | DIR_REVERSED | WIDTH_FULL | REX_W_PREFIX, [INSN_PHI] = INVALID_INSN, diff --git a/arch/x86/include/arch/instruction.h b/arch/x86/include/arch/instruction.h index 6b1dc236..4dd16fb1 100644 --- a/arch/x86/include/arch/instruction.h +++ b/arch/x86/include/arch/instruction.h @@ -185,6 +185,7 @@ enum insn_type { INSN_MUL_REG_EAX, INSN_MUL_REG_REG, INSN_NEG_REG, + INSN_NOP, INSN_OR_IMM_MEMBASE, INSN_OR_MEMBASE_REG, INSN_OR_REG_REG, diff --git a/arch/x86/instruction.c b/arch/x86/instruction.c index bd8eacf7..27aa8cb0 100644 --- a/arch/x86/instruction.c +++ b/arch/x86/instruction.c @@ -887,6 +887,7 @@ static unsigned long insn_flags[] = { [INSN_MUL_REG_EAX] = USE_SRC | USE_DST | DEF_DST | DEF_xDX | DEF_xAX, [INSN_MUL_REG_REG] = USE_SRC | USE_DST | DEF_DST, [INSN_NEG_REG] = USE_DST | DEF_DST, + [INSN_NOP] = USE_NONE | DEF_NONE, [INSN_OR_IMM_MEMBASE] = USE_DST | DEF_NONE, [INSN_OR_MEMBASE_REG] = USE_SRC | USE_DST | DEF_DST, [INSN_OR_REG_REG] = USE_SRC | USE_DST | DEF_DST, diff --git a/arch/x86/lir-printer.c b/arch/x86/lir-printer.c index a6054098..2684e8db 100644 --- a/arch/x86/lir-printer.c +++ b/arch/x86/lir-printer.c @@ -821,6 +821,11 @@ static int print_neg_reg(struct string *str, struct insn *insn) return print_reg(str, &insn->dest); } +static int print_nop(struct string *str, struct insn *insn) +{ + return print_func_name(str); +} + static int print_or_imm_membase(struct string *str, struct insn *insn) { print_func_name(str); @@ -1072,6 +1077,7 @@ static print_insn_fn insn_printers[] = { [INSN_MUL_REG_EAX] = print_mul_reg_eax, [INSN_MUL_REG_REG] = print_mul_reg_reg, [INSN_NEG_REG] = print_neg_reg, + [INSN_NOP] = print_nop, [INSN_OR_IMM_MEMBASE] = print_or_imm_membase, [INSN_OR_MEMBASE_REG] = print_or_membase_reg, [INSN_OR_REG_REG] = print_or_reg_reg, diff --git a/boehmgc/Makefile b/boehmgc/Makefile index ce32a89f..59c77481 100644 --- a/boehmgc/Makefile +++ b/boehmgc/Makefile @@ -27,6 +27,13 @@ ifeq ($(uname_S),Darwin) endif endif +# +# Use -marm for arm* +# +ifneq ($(findstring arm,$(uname_M)),) + DEFAULT_CFLAGS += -marm +endif + BOEHMGC_OBJS += allchblk.o BOEHMGC_OBJS += alloc.o BOEHMGC_OBJS += blacklst.o diff --git a/test/integration/bytecode-test.c b/test/integration/bytecode-test.c index b7eb9f81..7911ab41 100644 --- a/test/integration/bytecode-test.c +++ b/test/integration/bytecode-test.c @@ -999,6 +999,7 @@ static void test_lstore_3(void) assert_long_equals(1, jlong_run(bytecode)); } +#ifndef CONFIG_ARM static void test_fstore_0(void) { uint8_t bytecode[] = { OPC_FCONST_1, OPC_FSTORE_0, OPC_FLOAD_0, OPC_FRETURN}; @@ -1055,8 +1056,6 @@ static void test_dstore_3(void) assert_double_equals(1, jdouble_run(bytecode)); } -#ifndef CONFIG_ARM - static void test_i2f(void) { uint8_t bytecode[] = { OPC_ICONST_1, OPC_I2F, OPC_FRETURN }; @@ -1236,6 +1235,7 @@ static void run_tests(void) test_lstore_1(); test_lstore_2(); test_lstore_3(); +#ifndef CONFIG_ARM test_fstore_0(); test_fstore_1(); test_fstore_2(); @@ -1244,7 +1244,6 @@ static void run_tests(void) test_dstore_1(); test_dstore_2(); test_dstore_3(); -#ifndef CONFIG_ARM /* test_astore_0(); */ /* test_astore_1(); */ /* test_astore_2(); */ |