Author: Richard Plangger <planri...@gmail.com> Branch: s390x-backend Changeset: r81830:737d6e63553a Date: 2016-01-18 10:07 +0100 http://bitbucket.org/pypy/pypy/changeset/737d6e63553a/
Log: removed double stack frame allocation from stacklet, zpickle requiring them pass diff --git a/rpython/rlib/constant.py b/rpython/rlib/constant.py --- a/rpython/rlib/constant.py +++ b/rpython/rlib/constant.py @@ -11,7 +11,6 @@ DBL_MIN = rffi_platform.DefinedConstantDouble('DBL_MIN') DBL_MANT_DIG = rffi_platform.ConstantInteger('DBL_MANT_DIG') - for k, v in rffi_platform.configure(CConfig).items(): assert v is not None, "no value found for %r" % k globals()[k] = v 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 @@ -7,16 +7,8 @@ { void *result; __asm__ volatile ( - /* By Vaibhav Sood & Armin Rigo, with some copying from - the Stackless version by Kristjan Valur Jonsson */ - - /* Save all 18 volatile GP registers, 18 volatile FP regs, and 12 - volatile vector regs. We need a stack frame of 144 bytes for FPR, - 144 bytes for GPR, 192 bytes for VR plus 48 bytes for the standard - stackframe = 528 bytes (a multiple of 16). */ - - //"mflr 0\n" /* Save LR into 16(r1) */ - //"stg 0, 16(1)\n" + /* The Stackless version by Kristjan Valur Jonsson, + ported to s390x by Richard Plangger */ "stmg 6,15,48(15)\n" @@ -25,17 +17,15 @@ "std 4,144(15)\n" "std 6,152(15)\n" - "lay 15,-160(15)\n" /* Create stack frame */ - "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 */ "lgr 2, 15\n" /* arg 1: current (old) stack pointer */ "lgr 3, 11\n" /* arg 2: extra */ - "lay 15, -160(15)\n" /* create temp stack space (see below) */ + "lay 15,-160(15)\n" /* create stack frame */ "basr 14, 14\n" /* call save_state() */ - "lay 15, 160(15)\n" /* destroy temp stack space */ + "lay 15, 160(15)\n" /* destroy stack frame */ "cgij 2, 0, 8, zero\n" /* skip the rest if the return value is null */ _______________________________________________ pypy-commit mailing list pypy-commit@python.org https://mail.python.org/mailman/listinfo/pypy-commit