| 1 | PMC * |
|---|
| 2 | Parrot_ctx_current_lexpad(PARROT_INTERP, ARGIN(PMC *p)) |
|---|
| 3 | { |
|---|
| 4 | ASSERT_ARGS(Parrot_ctx_current_lexpad) |
|---|
| 5 | if (!PMC_IS_NULL(p)) |
|---|
| 6 | CONTEXT(interp)->lex_pad = p; |
|---|
| 7 | return CONTEXT(interp)->lex_pad; |
|---|
| 8 | } |
|---|
| 9 | |
|---|
| 10 | PMC * |
|---|
| 11 | Parrot_ctx_current_sub_pmc(PARROT_INTERP, ARGIN(PMC *sub)) |
|---|
| 12 | { |
|---|
| 13 | ASSERT_ARGS(Parrot_ctx_current_sub_pmc) |
|---|
| 14 | if(!PMC_IS_NULL(sub)) |
|---|
| 15 | CONTEXT(interp)->current_sub = sub; |
|---|
| 16 | return CONTEXT(interp)->current_sub; |
|---|
| 17 | } |
|---|
| 18 | |
|---|
| 19 | PMC * |
|---|
| 20 | Parrot_ctx_current_handlers(PARROT_INTERP, ARGIN(PMC *handlers)) |
|---|
| 21 | { |
|---|
| 22 | ASSERT_ARGS(Parrot_ctx_current_handlers) |
|---|
| 23 | if (!PMC_IS_NULL(handlers)) |
|---|
| 24 | CONTEXT(interp)->handlers = handlers; |
|---|
| 25 | return CONTEXT(interp)->handlers; |
|---|
| 26 | } |
|---|
| 27 | |
|---|
| 28 | PMC * |
|---|
| 29 | Parrot_ctx_current_continuation(PARROT_INTERP, ARGIN(PMC* current_cont)) |
|---|
| 30 | { |
|---|
| 31 | ASSERT_ARGS(Parrot_ctx_current_continuation) |
|---|
| 32 | if (!PMC_IS_NULL(current_cont)) |
|---|
| 33 | CONTEXT(interp)->current_cont = current_cont; |
|---|
| 34 | return CONTEXT(interp)->current_cont; |
|---|
| 35 | } |
|---|
| 36 | |
|---|
| 37 | PMC * |
|---|
| 38 | Parrot_ctx_current_object(PARROT_INTERP, ARGIN(PMC *p)) |
|---|
| 39 | { |
|---|
| 40 | ASSERT_ARGS(Parrot_ctx_current_object) |
|---|
| 41 | if (!PMC_IS_NULL(p)) |
|---|
| 42 | CONTEXT(interp)->current_object = p; |
|---|
| 43 | return CONTEXT(interp)->current_object; |
|---|
| 44 | } |
|---|
| 45 | |
|---|
| 46 | PMC * |
|---|
| 47 | Parrot_ctx_current_namespace(PARROT_INTERP, ARGIN(PMC *p)) |
|---|
| 48 | { |
|---|
| 49 | ASSERT_ARGS(Parrot_ctx_current_namespace) |
|---|
| 50 | if (!PMC_IS_NULL(p)) |
|---|
| 51 | CONTEXT(interp)->current_namespace = p; |
|---|
| 52 | return CONTEXT(interp)->current_namespace; |
|---|
| 53 | } |
|---|
| 54 | |
|---|
| 55 | PMC * |
|---|
| 56 | Parrot_ctx_current_results_signature(PARROT_INTERP, ARGIN(PMC *p)) |
|---|
| 57 | { |
|---|
| 58 | ASSERT_ARGS(Parrot_ctx_results_signature) |
|---|
| 59 | if (!PMC_IS_NULL(p)) |
|---|
| 60 | CONTEXT(interp)->results_signature = p; |
|---|
| 61 | return CONTEXT(interp)->results_signature; |
|---|
| 62 | } |
|---|
| 63 | |
|---|
| 64 | Parrot_Context * |
|---|
| 65 | Parrot_ctx_caller_ctx(PARROT_INTERP, ARGMOD(Parrot_Context *ctx), |
|---|
| 66 | ARGIN(Parrot_Context *caller)) |
|---|
| 67 | { |
|---|
| 68 | ASSERT_ARGS(Parrot_ctx_caller_ctx) |
|---|
| 69 | if (caller != NULL) |
|---|
| 70 | ctx->caller_ctx = caller |
|---|
| 71 | return ctx->caller_ctx; |
|---|
| 72 | } |
|---|
| 73 | |
|---|
| 74 | Parrot_Context * |
|---|
| 75 | Parrot_ctx_outer_ctx(PARROT_INTERP, ARGMOD(Parrot_Context *ctx), |
|---|
| 76 | ARGIN(Parrot_Context *outer)) |
|---|
| 77 | { |
|---|
| 78 | ASSERT_ARGS(Parrot_ctx_outer_ctx) |
|---|
| 79 | if (outer != NULL) |
|---|
| 80 | ctx->outer_ctx = outer; |
|---|
| 81 | return ctx->outer_ctx; |
|---|
| 82 | } |
|---|
| 83 | |
|---|
| 84 | PackFile_Constant * |
|---|
| 85 | Parrot_ctx_get_constant(PARROT_INTERP, size_t idx) |
|---|
| 86 | { |
|---|
| 87 | return ctx->constants[idx]; |
|---|
| 88 | } |
|---|
| 89 | |
|---|
| 90 | |
|---|
| 91 | INTVAL |
|---|
| 92 | Parrot_ctx_get_INTVAL_reg(PARROT_INTERP, ARGIN(Parrot_Context *ctx), |
|---|
| 93 | INTVAL idx) |
|---|
| 94 | { |
|---|
| 95 | ASSERT_ARGS(Parrot_ctx_get_INTVAL_reg) |
|---|
| 96 | return ctx->bp.regs_i[idx]; |
|---|
| 97 | } |
|---|
| 98 | |
|---|
| 99 | void |
|---|
| 100 | Parrot_ctx_set_INTVAL_reg(PARROT_INTERP, ARGIN(Parrot_Context *ctx), |
|---|
| 101 | INTVAL idx, INTVAL value) |
|---|
| 102 | { |
|---|
| 103 | ASSERT_ARGS(Parrot_ctx_set_INTVAL_reg) |
|---|
| 104 | ctx->bp.regs_i[idx] = value; |
|---|
| 105 | } |
|---|
| 106 | |
|---|
| 107 | FLOATVAL |
|---|
| 108 | Parrot_ctx_get_FLOATVAL_reg(PARROT_INTERP, ARGIN(Parrot_Context *ctx), |
|---|
| 109 | INTVAL idx) |
|---|
| 110 | { |
|---|
| 111 | ASSERT_ARGS(Parrot_ctx_get_FLOATVAL_reg) |
|---|
| 112 | return ctx->bp.regs_n[-1L - idx]; |
|---|
| 113 | } |
|---|
| 114 | |
|---|
| 115 | void |
|---|
| 116 | Parrot_ctx_set_FLOATVAL_reg(PARROT_INTERP, ARGIN(Parrot_Context *ctx), |
|---|
| 117 | INTVAL idx, FLOATVAL value) |
|---|
| 118 | { |
|---|
| 119 | ASSERT_ARGS(Parrot_ctx_set_FLOATVAL_reg) |
|---|
| 120 | ctx->bp.regs_n[-1L - idx] = value; |
|---|
| 121 | } |
|---|
| 122 | |
|---|
| 123 | |
|---|
| 124 | STRING * |
|---|
| 125 | Parrot_ctx_get_STRING_reg(PARROT_INTERP, ARGIN(Parrot_Context *ctx), |
|---|
| 126 | INTVAL idx) |
|---|
| 127 | { |
|---|
| 128 | ASSERT_ARGS(Parrot_ctx_get_FLOATVAL_reg) |
|---|
| 129 | return ctx->bp.regs_s[idx[; |
|---|
| 130 | } |
|---|
| 131 | |
|---|
| 132 | void |
|---|
| 133 | Parrot_ctx_set_STRING_reg(PARROT_INTERP, ARGIN(Parrot_Context *ctx), |
|---|
| 134 | INTVAL idx, ARGIN(STRING *value)) |
|---|
| 135 | { |
|---|
| 136 | ASSERT_ARGS(Parrot_ctx_set_FLOATVAL_reg) |
|---|
| 137 | ctx->bp.regs_s[idx] = value; |
|---|
| 138 | } |
|---|
| 139 | |
|---|
| 140 | PMC * |
|---|
| 141 | Parrot_ctx_get_PMC_reg(PARROT_INTERP, ARGIN(Parrot_Context *ctx), INTVAL idx) |
|---|
| 142 | { |
|---|
| 143 | ASSERT_ARGS(Parrot_ctx_get_FLOATVAL_reg) |
|---|
| 144 | return ctx->bp.regs_p[-1L - idx]; |
|---|
| 145 | } |
|---|
| 146 | |
|---|
| 147 | void |
|---|
| 148 | Parrot_ctx_set_PMC_reg(PARROT_INTERP, ARGIN(Parrot_Context *ctx), |
|---|
| 149 | INTVAL idx, ARGIN(PMC *value)) |
|---|
| 150 | { |
|---|
| 151 | ASSERT_ARGS(Parrot_ctx_set_FLOATVAL_reg) |
|---|
| 152 | ctx->bp.regs_p[-1L - idx] = value; |
|---|
| 153 | } |
|---|