2 * Sources of the "INCREMENT/DECREMENT/ZERO" group instructions
5 /* $Id: do_incdec.c,v 2.7 1994/06/24 10:46:26 ceriel Exp $ */
17 PRIVATE long inc(), dec();
21 /* INC -: Increment word on top of stack by 1 (*) */
30 /* INL l: Increment local or parameter (*) */
33 LOG(("@Z6 DoINL(%ld)", l));
35 p = loc_addr(arg_l(l));
36 st_stw(p, inc(st_ldsw(p)));
42 /* INE g: Increment external (*) */
43 register ptr p = i2p(arg);
45 LOG(("@Z6 DoINE(%lu)", p));
48 dt_stw(p, inc(dt_ldsw(p)));
53 /* DEC -: Decrement word on top of stack by 1 (*) */
62 /* DEL l: Decrement local or parameter (*) */
65 LOG(("@Z6 DoDEL(%ld)", l));
69 st_stw(p, dec(st_ldsw(p)));
75 /* DEE g: Decrement external (*) */
76 register ptr p = i2p(arg);
78 LOG(("@Z6 DoDEE(%lu)", p));
81 dt_stw(p, dec(dt_ldsw(p)));
87 /* ZRL l: Zero local or parameter */
89 LOG(("@Z6 DoZRL(%ld)", l));
92 st_stw(loc_addr(l), 0L);
98 /* ZRE g: Zero external */
99 register ptr p = i2p(arg);
101 LOG(("@Z6 DoZRE(%lu)", p));
103 dt_stw(arg_g(p), 0L);
109 /* ZRF w: Load a floating zero of size w */
111 LOG(("@Z6 DoZRF(%ld)", l));
113 fpush(0.0, arg_wf(l));
123 /* ZER w: Load w zero bytes */
126 LOG(("@Z6 DoZER(%ld)", l));
131 for (i = arg_w(l); i; i -= wsize)
139 if (must_test && !(IgnMask&BIT(EIOVFL))) {
149 if (must_test && !(IgnMask&BIT(EIOVFL))) {