Skip to content

Commit 1bbdff8

Browse files
committed
Move compiler method definitions into the J2ME module.
1 parent 6f02c4a commit 1bbdff8

File tree

1 file changed

+61
-33
lines changed

1 file changed

+61
-33
lines changed

Diff for: vm/runtime.ts

+61-33
Original file line numberDiff line numberDiff line change
@@ -2079,6 +2079,61 @@ module J2ME {
20792079
export function throwUnwind7(pc: number, nextPC: number = pc + 3) {
20802080
throwUnwind(pc, nextPC, 7);
20812081
}
2082+
2083+
export function fadd(a: number, b: number): number {
2084+
aliasedI32[0] = a;
2085+
aliasedI32[1] = b;
2086+
aliasedF32[2] = aliasedF32[0] + aliasedF32[1];
2087+
return aliasedI32[2];
2088+
}
2089+
2090+
export function fsub(a: number, b: number): number {
2091+
aliasedI32[0] = a;
2092+
aliasedI32[1] = b;
2093+
aliasedF32[2] = aliasedF32[0] - aliasedF32[1];
2094+
return aliasedI32[2];
2095+
}
2096+
2097+
export function fmul(a: number, b: number): number {
2098+
aliasedI32[0] = a;
2099+
aliasedI32[1] = b;
2100+
aliasedF32[2] = aliasedF32[0] * aliasedF32[1];
2101+
return aliasedI32[2];
2102+
}
2103+
2104+
export function fdiv(a: number, b: number): number {
2105+
aliasedI32[0] = a;
2106+
aliasedI32[1] = b;
2107+
aliasedF32[2] = Math.fround(aliasedF32[0] / aliasedF32[1]);
2108+
return aliasedI32[2];
2109+
}
2110+
2111+
export function frem(a: number, b: number): number {
2112+
aliasedI32[0] = a;
2113+
aliasedI32[1] = b;
2114+
aliasedF32[2] = Math.fround(aliasedF32[0] % aliasedF32[1]);
2115+
return aliasedI32[2];
2116+
}
2117+
2118+
export function f2i(a: number) {
2119+
if (a > Constants.INT_MAX) {
2120+
return Constants.INT_MAX;
2121+
} else if (a < Constants.INT_MIN) {
2122+
return Constants.INT_MIN;
2123+
} else {
2124+
return a | 0;
2125+
}
2126+
}
2127+
2128+
export function f2l(a: number) {
2129+
if (a > Constants.INT_MAX) {
2130+
return Constants.INT_MAX;
2131+
} else if (a < Constants.INT_MIN) {
2132+
return Constants.INT_MIN;
2133+
} else {
2134+
return a | 0;
2135+
}
2136+
}
20822137
}
20832138

20842139
var Runtime = J2ME.Runtime;
@@ -2139,37 +2194,10 @@ var TN = J2ME.throwNegativeArraySizeException;
21392194
var PE = J2ME.preempt;
21402195
var PS = 0; // Preemption samples.
21412196

2142-
function fadd(a: number, b: number): number {
2143-
aliasedI32[0] = a;
2144-
aliasedI32[1] = b;
2145-
aliasedF32[2] = aliasedF32[0] + aliasedF32[1];
2146-
return aliasedI32[2];
2147-
}
2148-
2149-
function fsub(a: number, b: number): number {
2150-
aliasedI32[0] = a;
2151-
aliasedI32[1] = b;
2152-
aliasedF32[2] = aliasedF32[0] - aliasedF32[1];
2153-
return aliasedI32[2];
2154-
}
2155-
2156-
function fmul(a: number, b: number): number {
2157-
aliasedI32[0] = a;
2158-
aliasedI32[1] = b;
2159-
aliasedF32[2] = aliasedF32[0] * aliasedF32[1];
2160-
return aliasedI32[2];
2161-
}
2162-
2163-
function fdiv(a: number, b: number): number {
2164-
aliasedI32[0] = a;
2165-
aliasedI32[1] = b;
2166-
aliasedF32[2] = Math.fround(aliasedF32[0] / aliasedF32[1]);
2167-
return aliasedI32[2];
2168-
}
2197+
var fadd = J2ME.fadd;
2198+
var fsub = J2ME.fsub;
2199+
var fmul = J2ME.fmul;
2200+
var fdiv = J2ME.fdiv;
2201+
var frem = J2ME.frem;
21692202

2170-
function frem(a: number, b: number): number {
2171-
aliasedI32[0] = a;
2172-
aliasedI32[1] = b;
2173-
aliasedF32[2] = Math.fround(aliasedF32[0] % aliasedF32[1]);
2174-
return aliasedI32[2];
2175-
}
2203+
var f2i = J2ME.f2i;

0 commit comments

Comments
 (0)