aboutsummaryrefslogtreecommitdiff
path: root/target/xtensa/helper.c
diff options
context:
space:
mode:
authorMax Filippov <jcmvbkbc@gmail.com>2019-02-12 19:10:24 -0800
committerMax Filippov <jcmvbkbc@gmail.com>2019-02-28 04:43:22 -0800
commit89bec9e9117d454d2101f7848475b11677ca99ff (patch)
treecb737c95213f0251174d8e359298bdb3a84ffc06 /target/xtensa/helper.c
parent575e962a01ca502c7c2a8d671f83c5173446c68d (diff)
target/xtensa: break circular register dependencies
Currently topologic opcode sorting stops at the first detected dependency loop. Introduce struct opcode_arg_copy that describes temporary register copy. Scan remaining opcodes searching for dependencies that can be broken, break them by introducing temporary register copies and record them in an array. In case of success create local temporaries and initialize them with current register values. Share single temporary copy between all register users. Delete temporaries after translation. Signed-off-by: Max Filippov <jcmvbkbc@gmail.com>
Diffstat (limited to 'target/xtensa/helper.c')
0 files changed, 0 insertions, 0 deletions