| 
									
										
										
										
											2014-07-12 23:30:14 -05:00
										 |  |  | #define _put_x_var_instinit \
 | 
					
						
							|  |  |  |       register CELL *pt0; \ | 
					
						
							|  |  |  |       pt0 = HR; \ | 
					
						
							| 
									
										
										
										
											2015-01-18 01:32:13 +00:00
										 |  |  |       XREG((*_PREG)->u.xx.xl) = Unsigned(pt0); \ | 
					
						
							| 
									
										
										
										
											2014-07-12 23:30:14 -05:00
										 |  |  |       HR = pt0 + 1; \ | 
					
						
							| 
									
										
										
										
											2015-01-18 01:32:13 +00:00
										 |  |  |       XREG((*_PREG)->u.xx.xr) = Unsigned(pt0); \ | 
					
						
							| 
									
										
										
										
											2014-07-12 23:30:14 -05:00
										 |  |  |       (*_PREG) = NEXTOP((*_PREG), xx); \ | 
					
						
							|  |  |  |       RESET_VARIABLE(pt0); \ | 
					
						
							|  |  |  |       GONEXT(); | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | #if defined(YAPOR_SBA) && defined(FROZEN_STACKS)
 | 
					
						
							|  |  |  | #define _put_y_var_instinit \
 | 
					
						
							|  |  |  |       register CELL *pt0; \ | 
					
						
							| 
									
										
										
										
											2015-01-18 01:32:13 +00:00
										 |  |  |       pt0 = YREG + (*_PREG)->u.yx.y; \ | 
					
						
							|  |  |  |       XREG((*_PREG)->u.yx.x) = (CELL) pt0; \ | 
					
						
							| 
									
										
										
										
											2014-07-12 23:30:14 -05:00
										 |  |  |       (*_PREG) = NEXTOP((*_PREG), yx); \ | 
					
						
							|  |  |  |       if (Unsigned((Int)(pt0)-(Int)(H_FZ)) > \ | 
					
						
							|  |  |  | 	  Unsigned((Int)(B_FZ)-(Int)(H_FZ))) { \ | 
					
						
							|  |  |  | 	*pt0 =  (CELL)STACK_TO_SBA(pt0); \ | 
					
						
							|  |  |  |       } else \ | 
					
						
							|  |  |  | 	INITIALIZE_PERMVAR(pt0, (CELL)pt0); \ | 
					
						
							|  |  |  |       GONEXT(); | 
					
						
							|  |  |  | #else /* defined(YAPOR_SBA) && defined(FROZEN_STACKS) */
 | 
					
						
							|  |  |  | #define _put_y_var_instinit \
 | 
					
						
							|  |  |  |       register CELL *pt0; \ | 
					
						
							| 
									
										
										
										
											2015-01-18 01:32:13 +00:00
										 |  |  |       pt0 = YREG + (*_PREG)->u.yx.y; \ | 
					
						
							|  |  |  |       XREG((*_PREG)->u.yx.x) = (CELL) pt0; \ | 
					
						
							| 
									
										
										
										
											2014-07-12 23:30:14 -05:00
										 |  |  |       (*_PREG) = NEXTOP((*_PREG), yx); \ | 
					
						
							|  |  |  | 	INITIALIZE_PERMVAR(pt0, (CELL)pt0); \ | 
					
						
							|  |  |  |       GONEXT(); | 
					
						
							|  |  |  | #endif /* defined(YAPOR_SBA) && defined(FROZEN_STACKS) */
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | #define _put_x_val_instinit \
 | 
					
						
							|  |  |  |       register CELL d0; \ | 
					
						
							| 
									
										
										
										
											2015-01-18 01:32:13 +00:00
										 |  |  |       d0 = XREG((*_PREG)->u.xx.xl); \ | 
					
						
							|  |  |  |       XREG((*_PREG)->u.xx.xr) = d0; \ | 
					
						
							| 
									
										
										
										
											2014-07-12 23:30:14 -05:00
										 |  |  |       (*_PREG) = NEXTOP((*_PREG), xx); \ | 
					
						
							|  |  |  |       GONEXT(); | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | #define _put_xx_val_instinit \
 | 
					
						
							|  |  |  |       register CELL d0, d1; \ | 
					
						
							| 
									
										
										
										
											2015-01-18 01:32:13 +00:00
										 |  |  |       d0 = XREG((*_PREG)->u.xxxx.xl1); \ | 
					
						
							|  |  |  |       d1 = XREG((*_PREG)->u.xxxx.xl2); \ | 
					
						
							|  |  |  |       XREG((*_PREG)->u.xxxx.xr1) = d0; \ | 
					
						
							|  |  |  |       XREG((*_PREG)->u.xxxx.xr2) = d1; \ | 
					
						
							| 
									
										
										
										
											2014-07-12 23:30:14 -05:00
										 |  |  |       (*_PREG) = NEXTOP((*_PREG), xxxx); \ | 
					
						
							|  |  |  |       GONEXT(); | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | #ifdef YAPOR_SBA
 | 
					
						
							|  |  |  | #define _put_y_val_instinit \
 | 
					
						
							|  |  |  |       register CELL d0; \ | 
					
						
							| 
									
										
										
										
											2015-01-18 01:32:13 +00:00
										 |  |  |       d0 = YREG[(*_PREG)->u.yx.y]; \ | 
					
						
							| 
									
										
										
										
											2014-07-12 23:30:14 -05:00
										 |  |  |       if (d0 == 0) { \ | 
					
						
							| 
									
										
										
										
											2015-01-18 01:32:13 +00:00
										 |  |  | 	XREG((*_PREG)->u.yx.x) = (CELL)(YREG+(*_PREG)->u.yx.y); \ | 
					
						
							| 
									
										
										
										
											2014-07-12 23:30:14 -05:00
										 |  |  |       } else \ | 
					
						
							| 
									
										
										
										
											2015-01-18 01:32:13 +00:00
										 |  |  | 	XREG((*_PREG)->u.yx.x) = d0; \ | 
					
						
							| 
									
										
										
										
											2014-07-12 23:30:14 -05:00
										 |  |  |       (*_PREG) = NEXTOP((*_PREG), yx); \ | 
					
						
							|  |  |  |       GONEXT(); | 
					
						
							|  |  |  | #else /* YAPOR_SBA */
 | 
					
						
							|  |  |  | #define _put_y_val_instinit \
 | 
					
						
							|  |  |  |       register CELL d0; \ | 
					
						
							| 
									
										
										
										
											2015-01-18 01:32:13 +00:00
										 |  |  |       d0 = YREG[(*_PREG)->u.yx.y]; \ | 
					
						
							|  |  |  | 	XREG((*_PREG)->u.yx.x) = d0; \ | 
					
						
							| 
									
										
										
										
											2014-07-12 23:30:14 -05:00
										 |  |  |       (*_PREG) = NEXTOP((*_PREG), yx); \ | 
					
						
							|  |  |  |       GONEXT(); | 
					
						
							|  |  |  | #endif /* YAPOR_SBA */
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | #ifdef YAPOR_SBA
 | 
					
						
							|  |  |  | #define _put_y_vals_instinit \
 | 
					
						
							|  |  |  |       register CELL d0, d1; \ | 
					
						
							| 
									
										
										
										
											2015-01-18 01:32:13 +00:00
										 |  |  |       d0 = YREG[(*_PREG)->u.yyxx.y1]; \ | 
					
						
							| 
									
										
										
										
											2014-07-12 23:30:14 -05:00
										 |  |  |       if (d0 == 0) \ | 
					
						
							| 
									
										
										
										
											2015-01-18 01:32:13 +00:00
										 |  |  | 	XREG((*_PREG)->u.yyxx.x1) = (CELL)(YREG+(*_PREG)->u.yyxx.y1); \ | 
					
						
							| 
									
										
										
										
											2014-07-12 23:30:14 -05:00
										 |  |  |       else \ | 
					
						
							| 
									
										
										
										
											2015-01-18 01:32:13 +00:00
										 |  |  | 	XREG((*_PREG)->u.yyxx.x1) = d0; \ | 
					
						
							| 
									
										
										
										
											2014-07-12 23:30:14 -05:00
										 |  |  |       (*_PREG) = NEXTOP((*_PREG), yyxx); \ | 
					
						
							| 
									
										
										
										
											2015-01-18 01:32:13 +00:00
										 |  |  |       d1 = YREG[PREVOP((*_PREG),yyxx)->u.yyxx.y2]; \ | 
					
						
							| 
									
										
										
										
											2014-07-12 23:30:14 -05:00
										 |  |  |       if (d1 == 0) \ | 
					
						
							| 
									
										
										
										
											2015-01-18 01:32:13 +00:00
										 |  |  | 	XREG(PREVOP((*_PREG)->u.yyxx,yyxx).x2) = (CELL)(YREG+(*_PREG)->u.yyxx.y2); \ | 
					
						
							| 
									
										
										
										
											2014-07-12 23:30:14 -05:00
										 |  |  |       else \ | 
					
						
							| 
									
										
										
										
											2015-01-18 01:32:13 +00:00
										 |  |  | 	XREG(PREVOP((*_PREG),yyxx)->u.yyxx.x2) = d1; \ | 
					
						
							| 
									
										
										
										
											2014-07-12 23:30:14 -05:00
										 |  |  |       GONEXT(); | 
					
						
							|  |  |  | #else /* YAPOR_SBA */
 | 
					
						
							|  |  |  | #define _put_y_vals_instinit \
 | 
					
						
							|  |  |  |       register CELL d0, d1; \ | 
					
						
							| 
									
										
										
										
											2015-01-18 01:32:13 +00:00
										 |  |  |       d0 = YREG[(*_PREG)->u.yyxx.y1]; \ | 
					
						
							|  |  |  | 	XREG((*_PREG)->u.yyxx.x1) = d0; \ | 
					
						
							| 
									
										
										
										
											2014-07-12 23:30:14 -05:00
										 |  |  |       (*_PREG) = NEXTOP((*_PREG), yyxx); \ | 
					
						
							| 
									
										
										
										
											2015-01-18 01:32:13 +00:00
										 |  |  |       d1 = YREG[PREVOP((*_PREG),yyxx)->u.yyxx.y2]; \ | 
					
						
							|  |  |  | 	XREG(PREVOP((*_PREG),yyxx)->u.yyxx.x2) = d1; \ | 
					
						
							| 
									
										
										
										
											2014-07-12 23:30:14 -05:00
										 |  |  |       GONEXT(); | 
					
						
							|  |  |  | #endif /* YAPOR_SBA */
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | #define _put_unsafe_instinit \
 | 
					
						
							|  |  |  |       BEGD(d0); \ | 
					
						
							|  |  |  |       BEGP(pt0); \ | 
					
						
							| 
									
										
										
										
											2015-01-18 01:32:13 +00:00
										 |  |  |       pt0 = YREG+(*_PREG)->u.yx.y; \ | 
					
						
							| 
									
										
										
										
											2014-07-12 23:30:14 -05:00
										 |  |  |       d0 = *pt0; \ | 
					
						
							|  |  |  |       deref_head(d0, punsafe_unk); \ | 
					
						
							|  |  |  |     punsafe_nonvar: \ | 
					
						
							| 
									
										
										
										
											2015-01-18 01:32:13 +00:00
										 |  |  |       XREG((*_PREG)->u.yx.x) = d0; \ | 
					
						
							| 
									
										
										
										
											2014-07-12 23:30:14 -05:00
										 |  |  |       (*_PREG) = NEXTOP((*_PREG), yx); \ | 
					
						
							|  |  |  |       GONEXT(); \ | 
					
						
							|  |  |  |  \ | 
					
						
							|  |  |  |       derefa_body(d0, pt0, punsafe_unk, punsafe_nonvar); \ | 
					
						
							|  |  |  |       if (pt0 <= HR || pt0 >= YREG) { \ | 
					
						
							| 
									
										
										
										
											2015-01-18 01:32:13 +00:00
										 |  |  | 	XREG((*_PREG)->u.yx.x) = Unsigned(pt0); \ | 
					
						
							| 
									
										
										
										
											2014-07-12 23:30:14 -05:00
										 |  |  | 	(*_PREG) = NEXTOP((*_PREG), yx); \ | 
					
						
							|  |  |  | 	GONEXT(); \ | 
					
						
							|  |  |  |       } \ | 
					
						
							|  |  |  |       else { \ | 
					
						
							|  |  |  | 	Bind_Local(pt0, Unsigned(HR)); \ | 
					
						
							| 
									
										
										
										
											2015-01-18 01:32:13 +00:00
										 |  |  | 	XREG((*_PREG)->u.yx.x) = (CELL) HR; \ | 
					
						
							| 
									
										
										
										
											2014-07-12 23:30:14 -05:00
										 |  |  | 	RESET_VARIABLE(HR); \ | 
					
						
							| 
									
										
										
										
											2015-01-18 01:32:13 +00:00
										 |  |  | 	H++; \ | 
					
						
							| 
									
										
										
										
											2014-07-12 23:30:14 -05:00
										 |  |  | 	(*_PREG) = NEXTOP((*_PREG), yx); \ | 
					
						
							|  |  |  | 	GONEXT(); \ | 
					
						
							|  |  |  |       } \ | 
					
						
							|  |  |  |       ENDP(pt0); \ | 
					
						
							|  |  |  |       ENDD(d0); | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | #define _put_atom_instinit \
 | 
					
						
							|  |  |  |       register CELL d0; \ | 
					
						
							| 
									
										
										
										
											2015-01-18 01:32:13 +00:00
										 |  |  |       d0 = (*_PREG)->u.xc.c; \ | 
					
						
							|  |  |  |       XREG((*_PREG)->u.xc.x) = d0; \ | 
					
						
							| 
									
										
										
										
											2014-07-12 23:30:14 -05:00
										 |  |  |       (*_PREG) = NEXTOP((*_PREG), xc); \ | 
					
						
							|  |  |  |       GONEXT(); | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | #define PUT_DBTERM_INSTINIT \
 | 
					
						
							|  |  |  |       register CELL d0; \ | 
					
						
							| 
									
										
										
										
											2015-01-18 01:32:13 +00:00
										 |  |  |       d0 = (*_PREG)->u.xD.D; \ | 
					
						
							|  |  |  |       XREG((*_PREG)->u.xD.x) = d0; \ | 
					
						
							| 
									
										
										
										
											2014-07-12 23:30:14 -05:00
										 |  |  |       (*_PREG) = NEXTOP((*_PREG), xD); \ | 
					
						
							|  |  |  |       GONext(); | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | #define PUT_BIGINT_INSTINIT \
 | 
					
						
							|  |  |  |       register CELL d0; \ | 
					
						
							| 
									
										
										
										
											2015-01-18 01:32:13 +00:00
										 |  |  |       d0 = (*_PREG)->u.xN.b; \ | 
					
						
							|  |  |  |       XREG((*_PREG)->u.xN.x) = d0; \ | 
					
						
							| 
									
										
										
										
											2014-07-12 23:30:14 -05:00
										 |  |  |       (*_PREG) = NEXTOP((*_PREG), xN); \ | 
					
						
							|  |  |  |       GONext(); | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | #define _put_float_instinit \
 | 
					
						
							|  |  |  |       register CELL d0; \ | 
					
						
							| 
									
										
										
										
											2015-01-18 01:32:13 +00:00
										 |  |  |       d0 = AbsAppl((*_PREG)->u.xd.d); \ | 
					
						
							|  |  |  |       XREG((*_PREG)->u.xd.x) = d0; \ | 
					
						
							| 
									
										
										
										
											2014-07-12 23:30:14 -05:00
										 |  |  |       (*_PREG) = NEXTOP((*_PREG), xd); \ | 
					
						
							|  |  |  |       GONEXT(); | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | #define PUT_LONGINT_INSTINIT \
 | 
					
						
							|  |  |  |       register CELL d0; \ | 
					
						
							| 
									
										
										
										
											2015-01-18 01:32:13 +00:00
										 |  |  |       d0 = AbsAppl((*_PREG)->u.xi.i); \ | 
					
						
							|  |  |  |       XREG((*_PREG)->u.xi.x) = d0; \ | 
					
						
							| 
									
										
										
										
											2014-07-12 23:30:14 -05:00
										 |  |  |       (*_PREG) = NEXTOP((*_PREG), xi); \ | 
					
						
							|  |  |  |       GONext(); | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | #define _put_list_instinit \
 | 
					
						
							|  |  |  |       register CELL d0; \ | 
					
						
							|  |  |  |       CACHE_S(); \ | 
					
						
							|  |  |  |       READ_IN_S(); \ | 
					
						
							|  |  |  |       S_SREG = HR; \ | 
					
						
							|  |  |  |       HR += 2; \ | 
					
						
							|  |  |  |       d0 = AbsPair(S_SREG); \ | 
					
						
							| 
									
										
										
										
											2015-01-18 01:32:13 +00:00
										 |  |  |       XREG((*_PREG)->u.x.x) = d0; \ | 
					
						
							| 
									
										
										
										
											2014-07-12 23:30:14 -05:00
										 |  |  |       (*_PREG) = NEXTOP((*_PREG), x); \ | 
					
						
							|  |  |  |       WRITEBACK_S(S_SREG); \ | 
					
						
							|  |  |  |       ENDCACHE_S(); \ | 
					
						
							|  |  |  |       GONEXT(); | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | #define _put_struct_instinit \
 | 
					
						
							|  |  |  |       register CELL d0; \ | 
					
						
							|  |  |  |       d0 = AbsAppl(HR); \ | 
					
						
							| 
									
										
										
										
											2015-01-18 01:32:13 +00:00
										 |  |  |       XREG((*_PREG)->u.xfa.x) = d0; \ | 
					
						
							|  |  |  |       d0 = (CELL) ((*_PREG)->u.xfa.f); \ | 
					
						
							|  |  |  |       *H++ = d0; \ | 
					
						
							| 
									
										
										
										
											2014-07-12 23:30:14 -05:00
										 |  |  |       (*_SREG) = HR; \ | 
					
						
							| 
									
										
										
										
											2015-01-18 01:32:13 +00:00
										 |  |  |       HR += (*_PREG)->u.xfa.a; \ | 
					
						
							| 
									
										
										
										
											2014-07-12 23:30:14 -05:00
										 |  |  |       (*_PREG) = NEXTOP((*_PREG), xfa); \ | 
					
						
							|  |  |  |       GONEXT(); | 
					
						
							|  |  |  | 
 |