Team Ai
Datasetpublic

codekingpro/portable-devtools

sourceHugging Faceupdated 5mo agoView on Hugging Face
1likes14kdownloads
switch_x64_msvc.h60 linesDownload Raw Back to platform
1/*
2 * this is the internal transfer function.
3 *
4 * HISTORY
5 * 24-Nov-02  Christian Tismer  <tismer@tismer.com>
6 *      needed to add another magic constant to insure
7 *      that f in slp_eval_frame(PyFrameObject *f)
8 *      STACK_REFPLUS will probably be 1 in most cases.
9 *      gets included into the saved stack area.
10 * 26-Sep-02  Christian Tismer  <tismer@tismer.com>
11 *      again as a result of virtualized stack access,
12 *      the compiler used less registers. Needed to
13 *      explicit mention registers in order to get them saved.
14 *      Thanks to Jeff Senn for pointing this out and help.
15 * 17-Sep-02  Christian Tismer  <tismer@tismer.com>
16 *      after virtualizing stack save/restore, the
17 *      stack size shrunk a bit. Needed to introduce
18 *      an adjustment STACK_MAGIC per platform.
19 * 15-Sep-02  Gerd Woetzel       <gerd.woetzel@GMD.DE>
20 *      slightly changed framework for sparc
21 * 01-Mar-02  Christian Tismer  <tismer@tismer.com>
22 *      Initial final version after lots of iterations for i386.
23 */
24
25/* Avoid alloca redefined warning on mingw64 */
26#ifndef alloca
27#define alloca _alloca
28#endif
29
30#define STACK_REFPLUS 1
31#define STACK_MAGIC 0
32
33/* Use the generic support for an external assembly language slp_switch function. */
34#define EXTERNAL_ASM
35
36#ifdef SLP_EVAL
37/* This always uses the external masm assembly file. */
38#endif
39
40/*
41 * further self-processing support
42 */
43
44/* we have IsBadReadPtr available, so we can peek at objects */
45/*
46#define STACKLESS_SPY
47
48#ifdef IMPLEMENT_STACKLESSMODULE
49#include "Windows.h"
50#define CANNOT_READ_MEM(p, bytes) IsBadReadPtr(p, bytes)
51
52static int IS_ON_STACK(void*p)
53{
54    int stackref;
55    intptr_t stackbase = ((intptr_t)&stackref) & 0xfffff000;
56    return (intptr_t)p >= stackbase && (intptr_t)p < stackbase + 0x00100000;
57}
58
59#endif
60*/
codekingpro/portable-devtools · Team Ai