Qucs-S S-parameter Viewer & RF Synthesis Tools
Loading...
Searching...
No Matches
switch_x64_msvc.h
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*/