]> git.ipfire.org Git - thirdparty/qemu.git/commit
tcg/s390: fix ld/st with CONFIG_TCG_PASS_AREG0
authorAurelien Jarno <aurelien@aurel32.net>
Sat, 8 Sep 2012 03:45:43 +0000 (03:45 +0000)
committerMichael Roth <mdroth@linux.vnet.ibm.com>
Tue, 9 Oct 2012 06:42:06 +0000 (01:42 -0500)
commit3bc7da7cd7c62c16da18484f1258b323f75ace61
tree777278c564ac68c00e337214050d3daf8aa5eea5
parent265434460ed7a2912b06819cb113c04111a29dea
tcg/s390: fix ld/st with CONFIG_TCG_PASS_AREG0

The load/store slow path has been broken in e141ab52d:
- We need to move 4 registers for store functions and 3 registers for
  load functions and not the reverse.
- According to the s390x calling convention the arguments of a function
  should be zero extended. This means that the register shift should be
  done with TCG_TYPE_I64 to ensure the higher word is correctly zero
  extended when needed.

I am aware that CONFIG_TCG_PASS_AREG0 is being removed and thus that
this patch can be improved, but doing so means it can also be applied to
the 1.1 and 1.2 stable branches.

Signed-off-by: Aurelien Jarno <aurelien@aurel32.net>
Signed-off-by: Alexander Graf <agraf@suse.de>
Signed-off-by: Michael Roth <mdroth@linux.vnet.ibm.com>
tcg/s390/tcg-target.c