libfirm
11 years agobechordal: Remove the write-only bitset in_colors from struct be_chordal_alloc_env_t.
Christoph Mallon [Sat, 24 Nov 2012 15:53:20 +0000 (16:53 +0100)]
bechordal: Remove the write-only bitset in_colors from struct be_chordal_alloc_env_t.

11 years agobechordal: Remove unused macro.
Christoph Mallon [Sat, 24 Nov 2012 15:46:33 +0000 (16:46 +0100)]
bechordal: Remove unused macro.

11 years agobecopyheur2: Use bitset_foreach_clear() instead of bitset_flip_all() + bitset_foreach().
Christoph Mallon [Sat, 24 Nov 2012 15:25:24 +0000 (16:25 +0100)]
becopyheur2: Use bitset_foreach_clear() instead of bitset_flip_all() + bitset_foreach().

11 years agobechordal: Simplify get_decisive_partner_regs().
Christoph Mallon [Sat, 24 Nov 2012 15:13:10 +0000 (16:13 +0100)]
bechordal: Simplify get_decisive_partner_regs().

11 years agobechordal: Remove impossible case from get_decisive_partner_regs().
Christoph Mallon [Sat, 24 Nov 2012 15:10:42 +0000 (16:10 +0100)]
bechordal: Remove impossible case from get_decisive_partner_regs().

o2 gets determined from o1, so o1 cannot be null.

11 years agobechordal: Remove unnecessary bitset copies from get_decisive_partner_regs().
Christoph Mallon [Sat, 24 Nov 2012 15:09:47 +0000 (16:09 +0100)]
bechordal: Remove unnecessary bitset copies from get_decisive_partner_regs().

11 years agobechordal: Remove invalid cases from assertion.
Christoph Mallon [Sat, 24 Nov 2012 14:55:54 +0000 (15:55 +0100)]
bechordal: Remove invalid cases from assertion.

The register classes must not be null here.
All allocatable register requirements must have a class.

11 years agobeinsn: Remove a pointless if.
Christoph Mallon [Sat, 24 Nov 2012 14:55:12 +0000 (15:55 +0100)]
beinsn: Remove a pointless if.

The register class cannot be null here, because only operands for the current class are collected before.

11 years agobelive: Change be_liveness_nodes_live_at() to be_liveness_nodes_live_before().
Christoph Mallon [Sat, 24 Nov 2012 14:26:01 +0000 (15:26 +0100)]
belive: Change be_liveness_nodes_live_at() to be_liveness_nodes_live_before().

The operation we want to perform is to get the live values just before a node.

11 years agobe: Change insert_Perm_after() to insert_Perm_before().
Christoph Mallon [Sat, 24 Nov 2012 14:16:30 +0000 (15:16 +0100)]
be: Change insert_Perm_after() to insert_Perm_before().

The operation we want to perform is to insert a Perm before a node.

11 years agobeinsn: Remove the attribute next_insn from struct be_insn_t.
Christoph Mallon [Sat, 24 Nov 2012 13:15:39 +0000 (14:15 +0100)]
beinsn: Remove the attribute next_insn from struct be_insn_t.

Just use sched_next().

11 years agobeinsn: Remove the attributes in_constraints and out_constraints from struct be_insn_t.
Christoph Mallon [Sat, 24 Nov 2012 13:04:30 +0000 (14:04 +0100)]
beinsn: Remove the attributes in_constraints and out_constraints from struct be_insn_t.

They are only used locally.
Write their combined value directly to has_constraints.

11 years agobe: Remove the indirection via chordal_scan_insn() to be_scan_insn().
Christoph Mallon [Sat, 24 Nov 2012 13:00:57 +0000 (14:00 +0100)]
be: Remove the indirection via chordal_scan_insn() to be_scan_insn().

11 years agobechordal: Remove the unused attribute ilp_server[] from struct be_ra_chordal_opts_t.
Christoph Mallon [Sat, 24 Nov 2012 12:38:08 +0000 (13:38 +0100)]
bechordal: Remove the unused attribute ilp_server[] from struct be_ra_chordal_opts_t.

11 years agobechordal: Remove the unused attribute ilp_solver[] from struct be_ra_chordal_opts_t.
Christoph Mallon [Sat, 24 Nov 2012 12:36:50 +0000 (13:36 +0100)]
bechordal: Remove the unused attribute ilp_solver[] from struct be_ra_chordal_opts_t.

11 years agobechordal: Make be_ra_chordal_color() static.
Christoph Mallon [Sat, 24 Nov 2012 12:34:49 +0000 (13:34 +0100)]
bechordal: Make be_ra_chordal_color() static.

11 years agobechordal: Use foreach_border_head() instead of the raw list_for_each_entry()/list_fo...
Christoph Mallon [Sat, 24 Nov 2012 12:32:09 +0000 (13:32 +0100)]
bechordal: Use foreach_border_head() instead of the raw list_for_each_entry()/list_for_each_entry_reverse().

The uses of list_for_each_entry() can use reverse, too.
They are only debug output.

11 years agobechordal: Remove the pointless wrapper macro get_block_border_head().
Christoph Mallon [Sat, 24 Nov 2012 12:25:30 +0000 (13:25 +0100)]
bechordal: Remove the pointless wrapper macro get_block_border_head().

11 years agobechordal: Remove the unused macros border_next() and border_prev().
Christoph Mallon [Sat, 24 Nov 2012 12:24:20 +0000 (13:24 +0100)]
bechordal: Remove the unused macros border_next() and border_prev().

11 years agobechordal: Merge the macro chordal_has_class() and the function has_reg_class().
Christoph Mallon [Sat, 24 Nov 2012 12:23:20 +0000 (13:23 +0100)]
bechordal: Merge the macro chordal_has_class() and the function has_reg_class().

11 years agobeabi: Remove unnecessary #include from beabi.h.
Christoph Mallon [Sat, 24 Nov 2012 11:51:27 +0000 (12:51 +0100)]
beabi: Remove unnecessary #include from beabi.h.

11 years agobeabi: Remove the declaration of the non-existent function be_abi_call_get_method_type().
Christoph Mallon [Sat, 24 Nov 2012 11:45:04 +0000 (12:45 +0100)]
beabi: Remove the declaration of the non-existent function be_abi_call_get_method_type().

11 years agobeabi: Remove pointless local variable.
Christoph Mallon [Sat, 24 Nov 2012 11:39:21 +0000 (12:39 +0100)]
beabi: Remove pointless local variable.

11 years agobeabi: Remove parameters from create_be_return(), which can be deduced from the param...
Christoph Mallon [Sat, 24 Nov 2012 11:35:58 +0000 (12:35 +0100)]
beabi: Remove parameters from create_be_return(), which can be deduced from the parameter irn.

11 years agobeabi: The parameter irn of create_be_return() never is null.
Christoph Mallon [Sat, 24 Nov 2012 11:31:39 +0000 (12:31 +0100)]
beabi: The parameter irn of create_be_return() never is null.

11 years agobeabi: Remove the attribute cls_addr from struct be_abi_call_t.
Christoph Mallon [Sat, 24 Nov 2012 11:12:54 +0000 (12:12 +0100)]
beabi: Remove the attribute cls_addr from struct be_abi_call_t.

It is only used locally.

11 years agobeabi: Remove the unused function be_abi_call_set_call_address_reg_class().
Christoph Mallon [Sat, 24 Nov 2012 11:01:00 +0000 (12:01 +0100)]
beabi: Remove the unused function be_abi_call_set_call_address_reg_class().

11 years agobeabi: Remove the unused attribute between_type from struct be_abi_call_t.
Christoph Mallon [Sat, 24 Nov 2012 10:58:49 +0000 (11:58 +0100)]
beabi: Remove the unused attribute between_type from struct be_abi_call_t.

11 years agobeabi: Remove the global variable be_omit_fp.
Christoph Mallon [Sat, 24 Nov 2012 10:55:13 +0000 (11:55 +0100)]
beabi: Remove the global variable be_omit_fp.

Simply directly use the be_options.

11 years agobeabi: Remove redundant adjustment of try_omit_fp in process_ops_in_block().
Christoph Mallon [Sat, 24 Nov 2012 10:53:02 +0000 (11:53 +0100)]
beabi: Remove redundant adjustment of try_omit_fp in process_ops_in_block().

It was initialised properly by be_abi_call_new().

11 years agobeabi: Always be_abi_call_get_flags() before be_abi_call_set_flags().
Christoph Mallon [Sat, 24 Nov 2012 10:49:18 +0000 (11:49 +0100)]
beabi: Always be_abi_call_get_flags() before be_abi_call_set_flags().

The template and amd64 backends left the omit_fp flag undefined due to allocating an uninitialized be_abi_call_flags_t on the stack.

11 years agobeabi: Turn be_abi_call_flags_t into a struct.
Christoph Mallon [Sat, 24 Nov 2012 10:45:49 +0000 (11:45 +0100)]
beabi: Turn be_abi_call_flags_t into a struct.

Remove the union aspect to interpret the flags as one unsigned int.

11 years agobeabi: Remove the atttribute on_stack from struct be_abi_call_arg_t.
Christoph Mallon [Sat, 24 Nov 2012 10:20:27 +0000 (11:20 +0100)]
beabi: Remove the atttribute on_stack from struct be_abi_call_arg_t.

It is the complement of the atttribute in_reg.

11 years agobeabi: Use the stack alignment, instead of hardcoding 4, to align the frame size.
Christoph Mallon [Sat, 24 Nov 2012 09:51:50 +0000 (10:51 +0100)]
beabi: Use the stack alignment, instead of hardcoding 4, to align the frame size.

11 years agobeabi: Remove the attribute frame_tp from struct lower_frame_sels_env_t.
Christoph Mallon [Sat, 24 Nov 2012 09:51:10 +0000 (10:51 +0100)]
beabi: Remove the attribute frame_tp from struct lower_frame_sels_env_t.

It is only used locally.

11 years agobeabi: Remove the unused attribute static_link_pos from struct lower_frame_sels_env_t.
Christoph Mallon [Sat, 24 Nov 2012 09:44:20 +0000 (10:44 +0100)]
beabi: Remove the unused attribute static_link_pos from struct lower_frame_sels_env_t.

11 years agobearch: Remove the write-only attribute link_class from struct arch_env_t.
Christoph Mallon [Sat, 24 Nov 2012 09:43:38 +0000 (10:43 +0100)]
bearch: Remove the write-only attribute link_class from struct arch_env_t.

11 years agobeabi: Remove the write-only attribute link_class from struct lower_frame_sels_env_t.
Christoph Mallon [Sat, 24 Nov 2012 09:42:28 +0000 (10:42 +0100)]
beabi: Remove the write-only attribute link_class from struct lower_frame_sels_env_t.

11 years agoamd64: Remove struct amd64_irg_data_t.
Christoph Mallon [Sat, 24 Nov 2012 09:08:34 +0000 (10:08 +0100)]
amd64: Remove struct amd64_irg_data_t.

Most attributes were unused.
The only one used (dump) is now directly read from the be_options.

11 years agobemain: init_graph in arch_isa_if_t may now be a null pointer.
Christoph Mallon [Sat, 24 Nov 2012 09:06:09 +0000 (10:06 +0100)]
bemain: init_graph in arch_isa_if_t may now be a null pointer.

Remove empty init_graph functions from arm and sparc backends.

11 years agobestack: Remove pointless local variable.
Christoph Mallon [Sat, 24 Nov 2012 09:05:16 +0000 (10:05 +0100)]
bestack: Remove pointless local variable.

11 years agobestack: Remove the write-only attribute between_size from struct bias_walk.
Christoph Mallon [Sat, 24 Nov 2012 09:04:41 +0000 (10:04 +0100)]
bestack: Remove the write-only attribute between_size from struct bias_walk.

11 years agobeabi: Pass be_abi_irg_t around locally instead of storing it in be_irg_t.
Christoph Mallon [Sat, 24 Nov 2012 09:01:17 +0000 (10:01 +0100)]
beabi: Pass be_abi_irg_t around locally instead of storing it in be_irg_t.

11 years agobeabi: Do not pass an environment to fix_pic_symconsts(), which it does not use.
Christoph Mallon [Sat, 24 Nov 2012 09:03:16 +0000 (10:03 +0100)]
beabi: Do not pass an environment to fix_pic_symconsts(), which it does not use.

11 years agobeabi: Remove the attribute start from struct be_abi_irg_t.
Christoph Mallon [Sat, 24 Nov 2012 08:33:52 +0000 (09:33 +0100)]
beabi: Remove the attribute start from struct be_abi_irg_t.

It is only used in one function.

11 years agobeabi: Remove the unused attribute start_block_bias from struct be_abi_irg_t.
Christoph Mallon [Sat, 24 Nov 2012 08:32:10 +0000 (09:32 +0100)]
beabi: Remove the unused attribute start_block_bias from struct be_abi_irg_t.

11 years agobe: Remove the irg from the birg.
Christoph Mallon [Sat, 24 Nov 2012 07:59:00 +0000 (08:59 +0100)]
be: Remove the irg from the birg.

There was only one user of this information left, which is changed to directly use irgs.

11 years agoarm: Remove the unused function create_const().
Christoph Mallon [Sat, 24 Nov 2012 07:53:03 +0000 (08:53 +0100)]
arm: Remove the unused function create_const().

11 years agoamd64: Remove the unused function create_const().
Christoph Mallon [Sat, 24 Nov 2012 07:52:33 +0000 (08:52 +0100)]
amd64: Remove the unused function create_const().

11 years agoedges: Remove support for private edge data.
Christoph Mallon [Fri, 23 Nov 2012 21:21:22 +0000 (22:21 +0100)]
edges: Remove support for private edge data.

11 years agoedges: Remove unused macros.
Christoph Mallon [Fri, 23 Nov 2012 21:15:47 +0000 (22:15 +0100)]
edges: Remove unused macros.

11 years agotr: Remove if from set_type_size(), which would lead to a silent failure in release...
Christoph Mallon [Sat, 24 Nov 2012 09:58:56 +0000 (10:58 +0100)]
tr: Remove if from set_type_size(), which would lead to a silent failure in release mode.

Now we get a nice crash.

11 years agoCombo: Ensure split by partition for Phi nodes.
Sebastian Buchwald [Fri, 23 Nov 2012 13:02:33 +0000 (14:02 +0100)]
Combo: Ensure split by partition for Phi nodes.

This fixes opt/combo3.c and opt/combo4.c.

11 years agoImproved readability of debug output.
Sebastian Buchwald [Thu, 22 Nov 2012 09:37:28 +0000 (10:37 +0100)]
Improved readability of debug output.

11 years agoDump partitions before adding them to the worklist.
Sebastian Buchwald [Thu, 22 Nov 2012 09:22:53 +0000 (10:22 +0100)]
Dump partitions before adding them to the worklist.

This makes the debug output more readable.

11 years agoFixed some typos.
Sebastian Buchwald [Tue, 20 Nov 2012 07:37:10 +0000 (08:37 +0100)]
Fixed some typos.

11 years agotimer: Enlarge the display space for the time.
Christoph Mallon [Fri, 23 Nov 2012 06:41:08 +0000 (07:41 +0100)]
timer: Enlarge the display space for the time.

11 years agoverifier: Check the result mode of Div and Mod.
Christoph Mallon [Thu, 22 Nov 2012 16:48:54 +0000 (17:48 +0100)]
verifier: Check the result mode of Div and Mod.

11 years agoverifier: Check that Div has a num mode, not a data mode.
Christoph Mallon [Thu, 22 Nov 2012 16:47:59 +0000 (17:47 +0100)]
verifier: Check that Div has a num mode, not a data mode.

11 years agoupdate for release
Matthias Braun [Fri, 16 Nov 2012 18:33:27 +0000 (19:33 +0100)]
update for release

11 years agofix assert: there are initializers with size==0
Matthias Braun [Wed, 21 Nov 2012 16:48:36 +0000 (17:48 +0100)]
fix assert: there are initializers with size==0

11 years agoldstopt: fix for case of non-const global initializer
Matthias Braun [Mon, 19 Nov 2012 16:10:42 +0000 (17:10 +0100)]
ldstopt: fix for case of non-const global initializer

11 years agoia32: fix stupid bug introduced in last commit
Matthias Braun [Fri, 16 Nov 2012 17:38:12 +0000 (18:38 +0100)]
ia32: fix stupid bug introduced in last commit

makereport didn't catch it because it uses -march=native flags by
default which produces code without fucompp.

11 years agoia32_x87: remove the distinction between vfp and fp concepts
Matthias Braun [Thu, 15 Nov 2012 15:03:03 +0000 (16:03 +0100)]
ia32_x87: remove the distinction between vfp and fp concepts

It's really the same stuff just before and after running ia32_x87
simulator, there is no real need to have 2 different things.

11 years agox87: Add a heuristic for fxch-ing one operand in sim_binop(), if both operands die.
Christoph Mallon [Thu, 15 Nov 2012 13:53:15 +0000 (14:53 +0100)]
x87: Add a heuristic for fxch-ing one operand in sim_binop(), if both operands die.

11 years agobedwarf: use be_gas_emit_string to fix escaping issues
Matthias Braun [Thu, 15 Nov 2012 09:29:13 +0000 (10:29 +0100)]
bedwarf: use be_gas_emit_string to fix escaping issues

11 years agobegnuas: simplify, add be_gas_emit_string()
Matthias Braun [Thu, 15 Nov 2012 09:28:04 +0000 (10:28 +0100)]
begnuas: simplify, add be_gas_emit_string()

simplify it by always using .asciz instead of sometimes .string/.ascii.
All new gcc/binutils understand .asciz.

11 years agobedwarf: query backend for pointer size
Matthias Braun [Thu, 15 Nov 2012 08:29:39 +0000 (09:29 +0100)]
bedwarf: query backend for pointer size

Also improve doku of machine_size element in backend_params struct.

11 years agox87: Only use fucompp if one operand happens to be at st(1).
Christoph Mallon [Wed, 14 Nov 2012 11:59:50 +0000 (12:59 +0100)]
x87: Only use fucompp if one operand happens to be at st(1).

Otherwise the extra effort to get the operands to the right position is not worth it.
Further, this avoids the unnecessary effort when we not going to use fucompp in favor of fucomi anyway.

11 years agox87: Enable x87_create_fpop() to remove entries other than just the tos.
Christoph Mallon [Wed, 14 Nov 2012 12:20:22 +0000 (13:20 +0100)]
x87: Enable x87_create_fpop() to remove entries other than just the tos.

11 years agox87: Remove the parameter num from x87_create_fpop().
Christoph Mallon [Wed, 14 Nov 2012 12:15:06 +0000 (13:15 +0100)]
x87: Remove the parameter num from x87_create_fpop().

11 years agox87: Improve sim_binop(): Only use fxch if both operands are not at tos.
Christoph Mallon [Wed, 14 Nov 2012 09:49:41 +0000 (10:49 +0100)]
x87: Improve sim_binop(): Only use fxch if both operands are not at tos.

11 years agox87: Simplify the case when both operands are dead in sim_binop().
Christoph Mallon [Wed, 14 Nov 2012 09:45:21 +0000 (10:45 +0100)]
x87: Simplify the case when both operands are dead in sim_binop().

11 years agox87: Fix harmless typo in sim_binop().
Christoph Mallon [Wed, 14 Nov 2012 09:33:20 +0000 (10:33 +0100)]
x87: Fix harmless typo in sim_binop().

The last parameter of x87_create_fpush() is used for debugging only.

11 years agox87: Simplify x87 code generation.
Christoph Mallon [Tue, 13 Nov 2012 09:01:42 +0000 (10:01 +0100)]
x87: Simplify x87 code generation.

Do not store up to three registers for an instruction.
Instead only store the explicit register operand and whether the operands are permuted and/or the result is to be placed in the explicit register operand or st0.

11 years agox87: Simplify sim_Fucom().
Christoph Mallon [Wed, 14 Nov 2012 11:30:22 +0000 (12:30 +0100)]
x87: Simplify sim_Fucom().

Whether the operands are permuted can be deduced by testing op1_idx != 0.

11 years agox87: Simplify selecting the instruction and popping the operands in sim_Fucom().
Christoph Mallon [Wed, 14 Nov 2012 12:05:13 +0000 (13:05 +0100)]
x87: Simplify selecting the instruction and popping the operands in sim_Fucom().

11 years agox87: Do not set x87 attributes, which are not used.
Christoph Mallon [Tue, 13 Nov 2012 09:28:36 +0000 (10:28 +0100)]
x87: Do not set x87 attributes, which are not used.

11 years agoLet be_foreach_definition() declare the value variable.
Christoph Mallon [Tue, 13 Nov 2012 09:12:55 +0000 (10:12 +0100)]
Let be_foreach_definition() declare the value variable.

11 years agoRemove the very thin wrapper function arch_register_get_class().
Christoph Mallon [Tue, 13 Nov 2012 08:46:59 +0000 (09:46 +0100)]
Remove the very thin wrapper function arch_register_get_class().

11 years agoRemove the very thin wrapper function arch_register_get_index().
Christoph Mallon [Tue, 13 Nov 2012 08:39:30 +0000 (09:39 +0100)]
Remove the very thin wrapper function arch_register_get_index().

11 years agoRemove the very thin wrapper function arch_register_get_name().
Christoph Mallon [Tue, 13 Nov 2012 08:27:30 +0000 (09:27 +0100)]
Remove the very thin wrapper function arch_register_get_name().

11 years agojumpthreading: when copying kept nodes keep the copies
Matthias Braun [Mon, 12 Nov 2012 16:16:54 +0000 (17:16 +0100)]
jumpthreading: when copying kept nodes keep the copies

11 years agomake jumpthreading debug message less confusing
Matthias Braun [Mon, 12 Nov 2012 16:17:28 +0000 (17:17 +0100)]
make jumpthreading debug message less confusing

11 years agoonly create jmp/bad when replacing exception throwing loads
Matthias Braun [Mon, 12 Nov 2012 13:44:43 +0000 (14:44 +0100)]
only create jmp/bad when replacing exception throwing loads

11 years agoMakefile: cleanup, add -fomit-frame-pointer to optimize
Matthias Braun [Mon, 12 Nov 2012 13:14:10 +0000 (14:14 +0100)]
Makefile: cleanup, add -fomit-frame-pointer to optimize

11 years agoadd coverage build variant to Makefile
Matthias Braun [Sat, 10 Nov 2012 17:03:10 +0000 (18:03 +0100)]
add coverage build variant to Makefile

11 years agoMerge the (single) pop and non-pop variants of x87 compare operations.
Christoph Mallon [Sun, 11 Nov 2012 10:44:24 +0000 (11:44 +0100)]
Merge the (single) pop and non-pop variants of x87 compare operations.

Let a flag and the emitter handle printing the pop variant.

11 years agoMerge the pop and non-pop variants of x87 store operations.
Christoph Mallon [Sun, 11 Nov 2012 10:14:39 +0000 (11:14 +0100)]
Merge the pop and non-pop variants of x87 store operations.

Let a flag and the emitter handle printing the pop variant.

11 years agoMerge the pop and non-pop variants of x87 binary operations.
Christoph Mallon [Sun, 11 Nov 2012 09:47:21 +0000 (10:47 +0100)]
Merge the pop and non-pop variants of x87 binary operations.

Let a flag and the emitter handle printing the pop variant.

11 years agoMerge the r and non-r variants of fdiv and fsub.
Christoph Mallon [Sun, 11 Nov 2012 09:07:05 +0000 (10:07 +0100)]
Merge the r and non-r variants of fdiv and fsub.

Let the emitter handle printing the r by checking the assigned registers.

11 years agoRemove unnecessary tests.
Christoph Mallon [Sat, 10 Nov 2012 20:00:45 +0000 (21:00 +0100)]
Remove unnecessary tests.

out cannot be null.

11 years agoPanic when asked to simulate a vfprem.
Christoph Mallon [Sun, 11 Nov 2012 09:13:23 +0000 (10:13 +0100)]
Panic when asked to simulate a vfprem.

Simulating it as normal binop does only work in one special case.
It lacks the reverse form and selecting the second operand register.
So in many cases invalid code was generated silently.

11 years agoCorrect some off-by-one errors in ia32_emitf().
Christoph Mallon [Sat, 10 Nov 2012 19:58:33 +0000 (20:58 +0100)]
Correct some off-by-one errors in ia32_emitf().

11 years agoImplement binary emitter for ia32 bt.
Christoph Mallon [Sun, 11 Nov 2012 22:17:00 +0000 (23:17 +0100)]
Implement binary emitter for ia32 bt.

11 years agoFake a binary emitter for ia32 asm.
Christoph Mallon [Sun, 11 Nov 2012 22:06:41 +0000 (23:06 +0100)]
Fake a binary emitter for ia32 asm.

11 years agoImplement binary emitter for ia32 fisttp.
Christoph Mallon [Sun, 11 Nov 2012 21:51:02 +0000 (22:51 +0100)]
Implement binary emitter for ia32 fisttp.

11 years agoImplement binary emitter for ia32 popcnt.
Christoph Mallon [Sun, 11 Nov 2012 21:47:12 +0000 (22:47 +0100)]
Implement binary emitter for ia32 popcnt.

11 years agoImplement binary emitter for ia32 bswap.
Christoph Mallon [Sun, 11 Nov 2012 21:46:53 +0000 (22:46 +0100)]
Implement binary emitter for ia32 bswap.

11 years agoImplement binary emitter for ia32 sbb0.
Christoph Mallon [Sun, 11 Nov 2012 21:46:26 +0000 (22:46 +0100)]
Implement binary emitter for ia32 sbb0.