Author: Richard Plangger <planri...@gmail.com> Branch: s390x-backend Changeset: r82258:2d699125ebd7 Date: 2016-02-15 12:26 +0100 http://bitbucket.org/pypy/pypy/changeset/2d699125ebd7/
Log: stacklet switch removed one register move, rescuing f8-f15 diff --git a/rpython/translator/c/src/stacklet/switch_s390x_gcc.h b/rpython/translator/c/src/stacklet/switch_s390x_gcc.h --- a/rpython/translator/c/src/stacklet/switch_s390x_gcc.h +++ b/rpython/translator/c/src/stacklet/switch_s390x_gcc.h @@ -10,6 +10,7 @@ /* The Stackless version by Kristjan Valur Jonsson, ported to s390x by Richard Plangger */ + "lay 15,-64(15)\n" /* additional stack space to store f8-f15 */ "stmg 6,15,48(15)\n" "std 0,128(15)\n" @@ -17,6 +18,15 @@ "std 4,144(15)\n" "std 6,152(15)\n" + "std 8, 160(15)\n" + "std 9, 168(15)\n" + "std 10,176(15)\n" + "std 11,184(15)\n" + "std 12,192(15)\n" + "std 13,200(15)\n" + "std 14,208(15)\n" + "std 15,216(15)\n" + "lgr 10, %[restore_state]\n" /* save 'restore_state' for later */ "lgr 11, %[extra]\n" /* save 'extra' for later */ "lgr 14, %[save_state]\n" /* move 'save_state' into r14 for branching */ @@ -39,8 +49,7 @@ "lay 15, -160(15)\n" /* create temp stack space for callee to use */ - "lgr 14, 10\n" /* load restore_state */ - "basr 14, 14\n" /* call restore_state() */ + "basr 14, 10\n" /* call restore_state() */ "lay 15, 160(15)\n" /* destroy temp stack space */ /* The stack's content is now restored. */ @@ -55,6 +64,15 @@ "ld 4,144(15)\n" "ld 6,152(15)\n" + "ld 8, 160(15)\n" + "ld 9, 168(15)\n" + "ld 10,176(15)\n" + "ld 11,184(15)\n" + "ld 12,192(15)\n" + "ld 13,200(15)\n" + "ld 14,208(15)\n" + "ld 15,216(15)\n" + "lmg 6,15,48(15)\n" : "=r"(result) /* output variable: expected to be r2 */ _______________________________________________ pypy-commit mailing list pypy-commit@python.org https://mail.python.org/mailman/listinfo/pypy-commit