File: sub.c

package info (click to toggle)
icmake 6.30-3
  • links: PTS
  • area: main
  • in suites: etch, etch-m68k
  • size: 2,360 kB
  • ctags: 1,415
  • sloc: ansic: 7,727; makefile: 1,465; sh: 244; asm: 126; cpp: 39
file content (30 lines) | stat: -rw-r--r-- 854 bytes parent folder | download
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
/*
\funcref{fun\_sub}{void fun\_sub ()}
    {}
    {}
    {pop(), copylist(), delfromlist(), discard()}
    {}
    {funsub.c}
    {

        Function {\em fun\_sub()} processes opcode {\em op\_sub}. Two variables
        are popped and subtracted. Depending on their type, two integer values
        are subtracted or a difference between two lists is computed.

        The result of the subtraction is stored in a temporary variable, which
        is then pushed.

        The two popped variables are discarded after use.
    }
*/

#include "opcodefun.ih"

void fun_sub ()
{
    VAR_ rval = copyCons(top());    /* make a copy              */
    pop();                          /* remove the r-operand     */

    subtract(top(), &rval);         /* subtract the rval to the top  */
    destructor(&rval);              /* remove the local var     */
}