File: funeq.c

package info (click to toggle)
icmake 6.22-2
  • links: PTS
  • area: main
  • in suites: woody
  • size: 2,120 kB
  • ctags: 1,045
  • sloc: ansic: 9,241; makefile: 1,138; asm: 126; sh: 124
file content (38 lines) | stat: -rw-r--r-- 804 bytes parent folder | download | duplicates (3)
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
31
32
33
34
35
36
37
38
/*
\funcref{fun\_eq}{void fun\_eq ()}
    {}
    {}
    {push(), compare(), pop()}
    {}
    {funeq.c}
    {

        Function {\em fun\_eq()} is called when opcode {\em op\_eq} is read.
        This function pops two variables, calls {\em compare()} to compare the
        values, and pushes the result of the comparison. The two compared
        variables are discarded.

        The result of the comparison is logically {\em not}-ted when two
        integers are beging compared, since {\em compare()} subtracts two
        integer values as result.

    }
*/

#include "icm-exec.h"

void fun_eq ()
{
    VAR_
        lval,
        rval;

    rval = pop ();
    lval = pop ();
    compare (lval, rval);

    stack [sp].vu.intval = ! stack [sp].vu.intval;

    discard (lval);
    discard (rval);
}