V4: Remove more jumps.

Do not generate jump instructions when the target immediately follows
the current basic block, even if there are intermediate jumps in between
as long as they jump to the same basic block. In the IR snippet below,
no jumps will be generated at all.

…
L8:  goto L6;
L12: goto L6;
L6:  goto L4;
L11: goto L4;
L4:  goto L2;
L10: goto L2;
L2:  ….

Before this change, the gotos in L8, L6, and L2 were still generated.

Change-Id: I718ed0d41c603a6905f2279b782cd9e9cafb7d55
Reviewed-by: Lars Knoll <lars.knoll@digia.com>
V4 JIT: do not generate inline fall-back code for strings types.

Change-Id: I30ac6fcbc7d03f412ff03e87f2ecf61fd2617108
Reviewed-by: Lars Knoll <lars.knoll@digia.com>
V4 JIT: generate some strict (not) equal conditions

Checks for strict (not) equal to null, undefined, or a boolean value
can be generated without reserving extra registers, or doing a call.

This reduces the amount of runtime calls from >25mln to ~6500 for
v8-bench.js

Change-Id: If08d1124b2869227654b1233a89833c5b5e7b40c
Reviewed-by: Lars Knoll <lars.knoll@digia.com>
V4 JIT: ISel for bitwise or/xor.

Removes another 4mln calls when running v8-bench.js.

Change-Id: I7fd777e4e6303f989391c4d1e361277cc24b37e8
Reviewed-by: Lars Knoll <lars.knoll@digia.com>
V4 runtime: add some more counters.

Change-Id: I872f259a9fd4580e8faeae664f4d34f59a785c4e
Reviewed-by: Lars Knoll <lars.knoll@digia.com>