1
Fork 0
mirror of https://git.savannah.gnu.org/git/guile.git synced 2025-06-01 01:40:21 +02:00

Remove a wrong optimization of callee save registers

This commit is contained in:
pcpa 2014-11-24 12:40:32 -02:00
parent 2d3529ddb5
commit c95a356c1a
2 changed files with 7 additions and 9 deletions

View file

@ -1,3 +1,9 @@
2014-11-24 Paulo Andrade <pcpa@gnu.org>
* lib/lightning.c: Remove an optimization to calee save
registers that may incorrectly remove a jit_movr under
special conditions.
2014-11-20 Paulo Andrade <pcpa@gnu.org>
* include/lightning/jit_ppc.h, lib/jit_ppc-cpu.c,

View file

@ -2855,12 +2855,12 @@ _simplify(jit_state_t *_jit)
jit_node_t *next;
jit_int32_t info;
jit_int32_t regno;
jit_int32_t offset;
for (prev = NULL, node = _jitc->head; node; prev = node, node = next) {
next = node->next;
switch (node->code) {
case jit_code_label: case jit_code_prolog:
case jit_code_callr: case jit_code_calli:
reset:
memset(_jitc->gen, 0, sizeof(jit_int32_t) * _jitc->reglen);
memset(_jitc->values, 0, sizeof(jit_value_t) * _jitc->reglen);
@ -2936,14 +2936,6 @@ _simplify(jit_state_t *_jit)
if (simplify_stxi(prev, node))
simplify_spill(node = prev, regno);
break;
case jit_code_callr: case jit_code_calli:
for (offset = 0; offset < _jitc->reglen; offset++) {
if (!(jit_class(_rvs[offset].spec) & jit_class_sav)) {
_jitc->values[offset].kind = 0;
++_jitc->gen[offset];
}
}
break;
default:
info = jit_classify(node->code);
if (info & jit_cc_a0_jmp)