2 * This is included inside a switch statement.
8 just_set_top_word (-word2jint(get_top_word()));
13 tempStackWord = pop_word();
14 just_set_top_word (word2jint(get_top_word()) + word2jint(tempStackWord));
15 goto LABEL_ENGINELOOP;
19 tempStackWord = pop_word();
20 just_set_top_word (word2jint(get_top_word()) * word2jint(tempStackWord));
21 goto LABEL_ENGINELOOP;
25 tempInt = word2jint(pop_word());
28 throw_exception (arithmeticException);
29 goto LABEL_ENGINELOOP;
31 just_set_top_word ((*(pc-1) == OP_IDIV) ? word2jint(get_top_word()) / tempInt :
32 word2jint(get_top_word()) % tempInt);
33 goto LABEL_ENGINELOOP;
36 just_set_top_word (-word2jint(get_top_word()));
37 goto LABEL_ENGINELOOP;
42 just_set_top_word (jfloat2word(-word2jfloat(get_top_word())));
45 tempStackWord = pop_word();
46 just_set_top_word (jfloat2word(word2jfloat(get_top_word()) +
47 word2jfloat(tempStackWord)));
48 goto LABEL_ENGINELOOP;
50 tempStackWord = pop_word();
51 just_set_top_word (jfloat2word(word2jfloat(get_top_word()) *
52 word2jfloat(tempStackWord)));
53 goto LABEL_ENGINELOOP;
55 // TBD: no division by zero?
56 tempStackWord = pop_word();
57 just_set_top_word (jfloat2word(word2jfloat(get_top_word()) /
58 word2jfloat(tempStackWord)));
59 goto LABEL_ENGINELOOP;
62 just_set_top_word (jfloat2word(-word2jfloat(get_top_word())));
63 goto LABEL_ENGINELOOP;
65 just_set_top_word (jfloat2word(-word2jfloat(get_top_word())));
68 tempStackWord = get_top_word();
70 just_set_top_word (jfloat2word(word2jfloat(get_top_word()) +
71 word2jfloat(tempStackWord)));
72 goto LABEL_ENGINELOOP;
74 tempStackWord = get_top_word();
76 just_set_top_word (jfloat2word(word2jfloat(get_top_word()) *
77 word2jfloat(tempStackWord)));
78 goto LABEL_ENGINELOOP;
80 // TBD: no division by zero?
81 tempStackWord = get_top_word();
83 just_set_top_word (jfloat2word(word2jfloat(get_top_word()) /
84 word2jfloat(tempStackWord)));
85 goto LABEL_ENGINELOOP;
87 #endif // FP_ARITHMETIC
90 // - Not supported: LADD, LSUB, LMUL, LREM, FREM, DREM
91 // - Operations on doubles are truncated to low float