aboutsummaryrefslogtreecommitdiffstatshomepage
path: root/OpenSim/Region/Environment/Scenes/scripting/Engines/JVMEngine/JVM/Interpreter.Logic.cs
diff options
context:
space:
mode:
Diffstat (limited to 'OpenSim/Region/Environment/Scenes/scripting/Engines/JVMEngine/JVM/Interpreter.Logic.cs')
-rw-r--r--OpenSim/Region/Environment/Scenes/scripting/Engines/JVMEngine/JVM/Interpreter.Logic.cs266
1 files changed, 133 insertions, 133 deletions
diff --git a/OpenSim/Region/Environment/Scenes/scripting/Engines/JVMEngine/JVM/Interpreter.Logic.cs b/OpenSim/Region/Environment/Scenes/scripting/Engines/JVMEngine/JVM/Interpreter.Logic.cs
index 6f8d70c..ef6570d 100644
--- a/OpenSim/Region/Environment/Scenes/scripting/Engines/JVMEngine/JVM/Interpreter.Logic.cs
+++ b/OpenSim/Region/Environment/Scenes/scripting/Engines/JVMEngine/JVM/Interpreter.Logic.cs
@@ -45,293 +45,293 @@ namespace OpenSim.Region.Scripting.EmbeddedJVM
45 case (byte)(byte)OpCode.iconst_m1: 45 case (byte)(byte)OpCode.iconst_m1:
46 Int m_int = new Int(); 46 Int m_int = new Int();
47 m_int.mValue = -1; 47 m_int.mValue = -1;
48 this._mThread.currentFrame.OpStack.Push(m_int); 48 this.m_thread.m_currentFrame.OpStack.Push(m_int);
49 result = true; 49 result = true;
50 break; 50 break;
51 case (byte)(byte)OpCode.iconst_0: 51 case (byte)(byte)OpCode.iconst_0:
52 m_int = new Int(); 52 m_int = new Int();
53 m_int.mValue = 0; 53 m_int.mValue = 0;
54 this._mThread.currentFrame.OpStack.Push(m_int); 54 this.m_thread.m_currentFrame.OpStack.Push(m_int);
55 result = true; 55 result = true;
56 break; 56 break;
57 case (byte)(byte)OpCode.iconst_1: 57 case (byte)(byte)OpCode.iconst_1:
58 m_int = new Int(); 58 m_int = new Int();
59 m_int.mValue = 1; 59 m_int.mValue = 1;
60 this._mThread.currentFrame.OpStack.Push(m_int); 60 this.m_thread.m_currentFrame.OpStack.Push(m_int);
61 result = true; 61 result = true;
62 break; 62 break;
63 case (byte)(byte)OpCode.iconst_2: 63 case (byte)(byte)OpCode.iconst_2:
64 m_int = new Int(); 64 m_int = new Int();
65 m_int.mValue = 2; 65 m_int.mValue = 2;
66 this._mThread.currentFrame.OpStack.Push(m_int); 66 this.m_thread.m_currentFrame.OpStack.Push(m_int);
67 result = true; 67 result = true;
68 break; 68 break;
69 case (byte)(byte)OpCode.iconst_3: 69 case (byte)(byte)OpCode.iconst_3:
70 m_int = new Int(); 70 m_int = new Int();
71 m_int.mValue = 3; 71 m_int.mValue = 3;
72 this._mThread.currentFrame.OpStack.Push(m_int); 72 this.m_thread.m_currentFrame.OpStack.Push(m_int);
73 break; 73 break;
74 case (byte)(byte)OpCode.iconst_4: 74 case (byte)(byte)OpCode.iconst_4:
75 m_int = new Int(); 75 m_int = new Int();
76 m_int.mValue = 4; 76 m_int.mValue = 4;
77 this._mThread.currentFrame.OpStack.Push(m_int); 77 this.m_thread.m_currentFrame.OpStack.Push(m_int);
78 result = true; 78 result = true;
79 break; 79 break;
80 case (byte)OpCode.iconst_5: 80 case (byte)OpCode.iconst_5:
81 m_int = new Int(); 81 m_int = new Int();
82 m_int.mValue = 5; 82 m_int.mValue = 5;
83 this._mThread.currentFrame.OpStack.Push(m_int); 83 this.m_thread.m_currentFrame.OpStack.Push(m_int);
84 result = true; 84 result = true;
85 break; 85 break;
86 case (byte)OpCode.fconst_0: 86 case (byte)OpCode.fconst_0:
87 Float m_float = new Float(); 87 Float m_float = new Float();
88 m_float.mValue = 0.0f; 88 m_float.mValue = 0.0f;
89 this._mThread.currentFrame.OpStack.Push(m_float); 89 this.m_thread.m_currentFrame.OpStack.Push(m_float);
90 result = true; 90 result = true;
91 break; 91 break;
92 case (byte)OpCode.fconst_1: 92 case (byte)OpCode.fconst_1:
93 m_float = new Float(); 93 m_float = new Float();
94 m_float.mValue = 1.0f; 94 m_float.mValue = 1.0f;
95 this._mThread.currentFrame.OpStack.Push(m_float); 95 this.m_thread.m_currentFrame.OpStack.Push(m_float);
96 result = true; 96 result = true;
97 break; 97 break;
98 case (byte)OpCode.fconst_2: 98 case (byte)OpCode.fconst_2:
99 m_float = new Float(); 99 m_float = new Float();
100 m_float.mValue = 2.0f; 100 m_float.mValue = 2.0f;
101 this._mThread.currentFrame.OpStack.Push(m_float); 101 this.m_thread.m_currentFrame.OpStack.Push(m_float);
102 result = true; 102 result = true;
103 break; 103 break;
104 case (byte)OpCode.bipush: //is this right? this should be pushing a byte onto stack not int? 104 case (byte)OpCode.bipush: //is this right? this should be pushing a byte onto stack not int?
105 int pushvalue = (int)GlobalMemory.MethodArea.MethodBuffer[this._mThread.PC]; 105 int pushvalue = (int)GlobalMemory.MethodArea.MethodBuffer[this.m_thread.PC];
106 Int pushInt = new Int(); 106 Int pushInt = new Int();
107 pushInt.mValue = pushvalue; 107 pushInt.mValue = pushvalue;
108 this._mThread.currentFrame.OpStack.Push(pushInt); 108 this.m_thread.m_currentFrame.OpStack.Push(pushInt);
109 this._mThread.PC++; 109 this.m_thread.PC++;
110 result = true; 110 result = true;
111 break; 111 break;
112 case (byte)OpCode.sipush: 112 case (byte)OpCode.sipush:
113 short pushvalue2 = (short)((GlobalMemory.MethodArea.MethodBuffer[this._mThread.PC] << 8) + GlobalMemory.MethodArea.MethodBuffer[this._mThread.PC + 1]); 113 short pushvalue2 = (short)((GlobalMemory.MethodArea.MethodBuffer[this.m_thread.PC] << 8) + GlobalMemory.MethodArea.MethodBuffer[this.m_thread.PC + 1]);
114 Int pushInt2 = new Int(); 114 Int pushInt2 = new Int();
115 pushInt2.mValue = pushvalue2; 115 pushInt2.mValue = pushvalue2;
116 this._mThread.currentFrame.OpStack.Push(pushInt2); 116 this.m_thread.m_currentFrame.OpStack.Push(pushInt2);
117 this._mThread.PC += 2; 117 this.m_thread.PC += 2;
118 result = true; 118 result = true;
119 break; 119 break;
120 case (byte)OpCode.fload: 120 case (byte)OpCode.fload:
121 short findex1 = (short)((GlobalMemory.MethodArea.MethodBuffer[this._mThread.PC])); 121 short findex1 = (short)((GlobalMemory.MethodArea.MethodBuffer[this.m_thread.PC]));
122 Float fload = new Float(); 122 Float fload = new Float();
123 if (this._mThread.currentFrame.LocalVariables[findex1] != null) 123 if (this.m_thread.m_currentFrame.LocalVariables[findex1] != null)
124 { 124 {
125 if (this._mThread.currentFrame.LocalVariables[findex1] is Float) 125 if (this.m_thread.m_currentFrame.LocalVariables[findex1] is Float)
126 { 126 {
127 fload.mValue = ((Float)this._mThread.currentFrame.LocalVariables[findex1]).mValue; 127 fload.mValue = ((Float)this.m_thread.m_currentFrame.LocalVariables[findex1]).mValue;
128 this._mThread.currentFrame.OpStack.Push(fload); 128 this.m_thread.m_currentFrame.OpStack.Push(fload);
129 } 129 }
130 } 130 }
131 this._mThread.PC++; 131 this.m_thread.PC++;
132 result = true; 132 result = true;
133 break; 133 break;
134 case (byte)OpCode.iload_0: 134 case (byte)OpCode.iload_0:
135 if (this._mThread.currentFrame.LocalVariables[0] != null) 135 if (this.m_thread.m_currentFrame.LocalVariables[0] != null)
136 { 136 {
137 if (this._mThread.currentFrame.LocalVariables[0] is Int) 137 if (this.m_thread.m_currentFrame.LocalVariables[0] is Int)
138 { 138 {
139 Int newInt = new Int(); 139 Int newInt = new Int();
140 newInt.mValue = ((Int)this._mThread.currentFrame.LocalVariables[0]).mValue; 140 newInt.mValue = ((Int)this.m_thread.m_currentFrame.LocalVariables[0]).mValue;
141 this._mThread.currentFrame.OpStack.Push(newInt); 141 this.m_thread.m_currentFrame.OpStack.Push(newInt);
142 } 142 }
143 } 143 }
144 result = true; 144 result = true;
145 break; 145 break;
146 case (byte)OpCode.iload_1: 146 case (byte)OpCode.iload_1:
147 if (this._mThread.currentFrame.LocalVariables[1] != null) 147 if (this.m_thread.m_currentFrame.LocalVariables[1] != null)
148 { 148 {
149 if (this._mThread.currentFrame.LocalVariables[1] is Int) 149 if (this.m_thread.m_currentFrame.LocalVariables[1] is Int)
150 { 150 {
151 Int newInt = new Int(); 151 Int newInt = new Int();
152 newInt.mValue = ((Int)this._mThread.currentFrame.LocalVariables[1]).mValue; 152 newInt.mValue = ((Int)this.m_thread.m_currentFrame.LocalVariables[1]).mValue;
153 this._mThread.currentFrame.OpStack.Push(newInt); 153 this.m_thread.m_currentFrame.OpStack.Push(newInt);
154 } 154 }
155 } 155 }
156 result = true; 156 result = true;
157 break; 157 break;
158 case (byte)OpCode.fload_0: 158 case (byte)OpCode.fload_0:
159 if (this._mThread.currentFrame.LocalVariables[0] != null) 159 if (this.m_thread.m_currentFrame.LocalVariables[0] != null)
160 { 160 {
161 if (this._mThread.currentFrame.LocalVariables[0] is Float) 161 if (this.m_thread.m_currentFrame.LocalVariables[0] is Float)
162 { 162 {
163 Float newfloat = new Float(); 163 Float newfloat = new Float();
164 newfloat.mValue = ((Float)this._mThread.currentFrame.LocalVariables[0]).mValue; 164 newfloat.mValue = ((Float)this.m_thread.m_currentFrame.LocalVariables[0]).mValue;
165 this._mThread.currentFrame.OpStack.Push(newfloat); 165 this.m_thread.m_currentFrame.OpStack.Push(newfloat);
166 } 166 }
167 } 167 }
168 result = true; 168 result = true;
169 break; 169 break;
170 case (byte)OpCode.fload_1: 170 case (byte)OpCode.fload_1:
171 if (this._mThread.currentFrame.LocalVariables[1] != null) 171 if (this.m_thread.m_currentFrame.LocalVariables[1] != null)
172 { 172 {
173 if (this._mThread.currentFrame.LocalVariables[1] is Float) 173 if (this.m_thread.m_currentFrame.LocalVariables[1] is Float)
174 { 174 {
175 Float newfloat = new Float(); 175 Float newfloat = new Float();
176 newfloat.mValue = ((Float)this._mThread.currentFrame.LocalVariables[1]).mValue; 176 newfloat.mValue = ((Float)this.m_thread.m_currentFrame.LocalVariables[1]).mValue;
177 this._mThread.currentFrame.OpStack.Push(newfloat); 177 this.m_thread.m_currentFrame.OpStack.Push(newfloat);
178 } 178 }
179 } 179 }
180 result = true; 180 result = true;
181 break; 181 break;
182 case (byte)OpCode.fload_2: 182 case (byte)OpCode.fload_2:
183 if (this._mThread.currentFrame.LocalVariables[2] != null) 183 if (this.m_thread.m_currentFrame.LocalVariables[2] != null)
184 { 184 {
185 if (this._mThread.currentFrame.LocalVariables[2] is Float) 185 if (this.m_thread.m_currentFrame.LocalVariables[2] is Float)
186 { 186 {
187 Float newfloat = new Float(); 187 Float newfloat = new Float();
188 newfloat.mValue = ((Float)this._mThread.currentFrame.LocalVariables[2]).mValue; 188 newfloat.mValue = ((Float)this.m_thread.m_currentFrame.LocalVariables[2]).mValue;
189 this._mThread.currentFrame.OpStack.Push(newfloat); 189 this.m_thread.m_currentFrame.OpStack.Push(newfloat);
190 } 190 }
191 } 191 }
192 result = true; 192 result = true;
193 break; 193 break;
194 case (byte)OpCode.fload_3: 194 case (byte)OpCode.fload_3:
195 if (this._mThread.currentFrame.LocalVariables[3] != null) 195 if (this.m_thread.m_currentFrame.LocalVariables[3] != null)
196 { 196 {
197 if (this._mThread.currentFrame.LocalVariables[3] is Float) 197 if (this.m_thread.m_currentFrame.LocalVariables[3] is Float)
198 { 198 {
199 Float newfloat = new Float(); 199 Float newfloat = new Float();
200 newfloat.mValue = ((Float)this._mThread.currentFrame.LocalVariables[3]).mValue; 200 newfloat.mValue = ((Float)this.m_thread.m_currentFrame.LocalVariables[3]).mValue;
201 this._mThread.currentFrame.OpStack.Push(newfloat); 201 this.m_thread.m_currentFrame.OpStack.Push(newfloat);
202 } 202 }
203 } 203 }
204 result = true; 204 result = true;
205 break; 205 break;
206 case (byte)OpCode.istore: 206 case (byte)OpCode.istore:
207 short findex3 = (short)((GlobalMemory.MethodArea.MethodBuffer[this._mThread.PC])); 207 short findex3 = (short)((GlobalMemory.MethodArea.MethodBuffer[this.m_thread.PC]));
208 BaseType istor = this._mThread.currentFrame.OpStack.Pop(); 208 BaseType istor = this.m_thread.m_currentFrame.OpStack.Pop();
209 if (istor is Int) 209 if (istor is Int)
210 { 210 {
211 this._mThread.currentFrame.LocalVariables[findex3] = (Int)istor; 211 this.m_thread.m_currentFrame.LocalVariables[findex3] = (Int)istor;
212 } 212 }
213 this._mThread.PC++; 213 this.m_thread.PC++;
214 result = true; 214 result = true;
215 break; 215 break;
216 case (byte)OpCode.fstore: 216 case (byte)OpCode.fstore:
217 short findex = (short)((GlobalMemory.MethodArea.MethodBuffer[this._mThread.PC])); 217 short findex = (short)((GlobalMemory.MethodArea.MethodBuffer[this.m_thread.PC]));
218 BaseType fstor = this._mThread.currentFrame.OpStack.Pop(); 218 BaseType fstor = this.m_thread.m_currentFrame.OpStack.Pop();
219 if (fstor is Float) 219 if (fstor is Float)
220 { 220 {
221 this._mThread.currentFrame.LocalVariables[findex] = (Float)fstor; 221 this.m_thread.m_currentFrame.LocalVariables[findex] = (Float)fstor;
222 } 222 }
223 this._mThread.PC++; 223 this.m_thread.PC++;
224 result = true; 224 result = true;
225 break; 225 break;
226 case (byte)OpCode.istore_0: 226 case (byte)OpCode.istore_0:
227 BaseType baset = this._mThread.currentFrame.OpStack.Pop(); 227 BaseType baset = this.m_thread.m_currentFrame.OpStack.Pop();
228 if (baset is Int) 228 if (baset is Int)
229 { 229 {
230 this._mThread.currentFrame.LocalVariables[0] = (Int)baset; 230 this.m_thread.m_currentFrame.LocalVariables[0] = (Int)baset;
231 } 231 }
232 result = true; 232 result = true;
233 break; 233 break;
234 case (byte)OpCode.istore_1: 234 case (byte)OpCode.istore_1:
235 baset = this._mThread.currentFrame.OpStack.Pop(); 235 baset = this.m_thread.m_currentFrame.OpStack.Pop();
236 if (baset is Int) 236 if (baset is Int)
237 { 237 {
238 this._mThread.currentFrame.LocalVariables[1] = (Int)baset; 238 this.m_thread.m_currentFrame.LocalVariables[1] = (Int)baset;
239 } 239 }
240 result = true; 240 result = true;
241 break; 241 break;
242 case (byte)OpCode.fstore_0: 242 case (byte)OpCode.fstore_0:
243 baset = this._mThread.currentFrame.OpStack.Pop(); 243 baset = this.m_thread.m_currentFrame.OpStack.Pop();
244 if (baset is Float) 244 if (baset is Float)
245 { 245 {
246 this._mThread.currentFrame.LocalVariables[0] = (Float)baset; 246 this.m_thread.m_currentFrame.LocalVariables[0] = (Float)baset;
247 } 247 }
248 result = true; 248 result = true;
249 break; 249 break;
250 case (byte)OpCode.fstore_1: 250 case (byte)OpCode.fstore_1:
251 baset = this._mThread.currentFrame.OpStack.Pop(); 251 baset = this.m_thread.m_currentFrame.OpStack.Pop();
252 if (baset is Float) 252 if (baset is Float)
253 { 253 {
254 this._mThread.currentFrame.LocalVariables[1] = (Float)baset; 254 this.m_thread.m_currentFrame.LocalVariables[1] = (Float)baset;
255 } 255 }
256 result = true; 256 result = true;
257 break; 257 break;
258 case (byte)OpCode.fstore_2: 258 case (byte)OpCode.fstore_2:
259 baset = this._mThread.currentFrame.OpStack.Pop(); 259 baset = this.m_thread.m_currentFrame.OpStack.Pop();
260 if (baset is Float) 260 if (baset is Float)
261 { 261 {
262 this._mThread.currentFrame.LocalVariables[2] = (Float)baset; 262 this.m_thread.m_currentFrame.LocalVariables[2] = (Float)baset;
263 } 263 }
264 result = true; 264 result = true;
265 break; 265 break;
266 case (byte)OpCode.fstore_3: 266 case (byte)OpCode.fstore_3:
267 baset = this._mThread.currentFrame.OpStack.Pop(); 267 baset = this.m_thread.m_currentFrame.OpStack.Pop();
268 if (baset is Float) 268 if (baset is Float)
269 { 269 {
270 this._mThread.currentFrame.LocalVariables[3] = (Float)baset; 270 this.m_thread.m_currentFrame.LocalVariables[3] = (Float)baset;
271 } 271 }
272 result = true; 272 result = true;
273 break; 273 break;
274 case (byte)OpCode.pop: 274 case (byte)OpCode.pop:
275 this._mThread.currentFrame.OpStack.Pop(); 275 this.m_thread.m_currentFrame.OpStack.Pop();
276 result = true; 276 result = true;
277 break; 277 break;
278 case (byte)OpCode.fadd: 278 case (byte)OpCode.fadd:
279 BaseType bf2 = this._mThread.currentFrame.OpStack.Pop(); 279 BaseType bf2 = this.m_thread.m_currentFrame.OpStack.Pop();
280 BaseType bf1 = this._mThread.currentFrame.OpStack.Pop(); 280 BaseType bf1 = this.m_thread.m_currentFrame.OpStack.Pop();
281 if (bf1 is Float && bf2 is Float) 281 if (bf1 is Float && bf2 is Float)
282 { 282 {
283 Float nflt = new Float(); 283 Float nflt = new Float();
284 nflt.mValue = ((Float)bf1).mValue + ((Float)bf2).mValue; 284 nflt.mValue = ((Float)bf1).mValue + ((Float)bf2).mValue;
285 this._mThread.currentFrame.OpStack.Push(nflt); 285 this.m_thread.m_currentFrame.OpStack.Push(nflt);
286 } 286 }
287 result = true; 287 result = true;
288 break; 288 break;
289 case (byte)OpCode.fsub: 289 case (byte)OpCode.fsub:
290 BaseType bsf2 = this._mThread.currentFrame.OpStack.Pop(); 290 BaseType bsf2 = this.m_thread.m_currentFrame.OpStack.Pop();
291 BaseType bsf1 = this._mThread.currentFrame.OpStack.Pop(); 291 BaseType bsf1 = this.m_thread.m_currentFrame.OpStack.Pop();
292 if (bsf1 is Float && bsf2 is Float) 292 if (bsf1 is Float && bsf2 is Float)
293 { 293 {
294 Float resf = new Float(); 294 Float resf = new Float();
295 resf.mValue = ((Float)bsf1).mValue - ((Float)bsf2).mValue; 295 resf.mValue = ((Float)bsf1).mValue - ((Float)bsf2).mValue;
296 this._mThread.currentFrame.OpStack.Push(resf); 296 this.m_thread.m_currentFrame.OpStack.Push(resf);
297 } 297 }
298 result = true; 298 result = true;
299 break; 299 break;
300 case (byte)OpCode.imul: //check the order of the two values off the stack is correct 300 case (byte)OpCode.imul: //check the order of the two values off the stack is correct
301 BaseType bs2 = this._mThread.currentFrame.OpStack.Pop(); 301 BaseType bs2 = this.m_thread.m_currentFrame.OpStack.Pop();
302 BaseType bs1 = this._mThread.currentFrame.OpStack.Pop(); 302 BaseType bs1 = this.m_thread.m_currentFrame.OpStack.Pop();
303 if (bs1 is Int && bs2 is Int) 303 if (bs1 is Int && bs2 is Int)
304 { 304 {
305 Int nInt = new Int(); 305 Int nInt = new Int();
306 nInt.mValue = ((Int)bs1).mValue * ((Int)bs2).mValue; 306 nInt.mValue = ((Int)bs1).mValue * ((Int)bs2).mValue;
307 this._mThread.currentFrame.OpStack.Push(nInt); 307 this.m_thread.m_currentFrame.OpStack.Push(nInt);
308 } 308 }
309 result = true; 309 result = true;
310 break; 310 break;
311 case (byte)OpCode.iinc: 311 case (byte)OpCode.iinc:
312 if (this._mThread.currentFrame.LocalVariables[GlobalMemory.MethodArea.MethodBuffer[this._mThread.PC]] != null) 312 if (this.m_thread.m_currentFrame.LocalVariables[GlobalMemory.MethodArea.MethodBuffer[this.m_thread.PC]] != null)
313 { 313 {
314 if (this._mThread.currentFrame.LocalVariables[GlobalMemory.MethodArea.MethodBuffer[this._mThread.PC]] is Int) 314 if (this.m_thread.m_currentFrame.LocalVariables[GlobalMemory.MethodArea.MethodBuffer[this.m_thread.PC]] is Int)
315 { 315 {
316 ((Int)this._mThread.currentFrame.LocalVariables[GlobalMemory.MethodArea.MethodBuffer[this._mThread.PC]]).mValue += (sbyte)GlobalMemory.MethodArea.MethodBuffer[this._mThread.PC + 1]; 316 ((Int)this.m_thread.m_currentFrame.LocalVariables[GlobalMemory.MethodArea.MethodBuffer[this.m_thread.PC]]).mValue += (sbyte)GlobalMemory.MethodArea.MethodBuffer[this.m_thread.PC + 1];
317 } 317 }
318 } 318 }
319 this._mThread.PC += 2; 319 this.m_thread.PC += 2;
320 result = true; 320 result = true;
321 break; 321 break;
322 case (byte)OpCode.f2i: 322 case (byte)OpCode.f2i:
323 BaseType conv1 = this._mThread.currentFrame.OpStack.Pop(); 323 BaseType conv1 = this.m_thread.m_currentFrame.OpStack.Pop();
324 if (conv1 is Float) 324 if (conv1 is Float)
325 { 325 {
326 Int newconv = new Int(); 326 Int newconv = new Int();
327 newconv.mValue = (int)((Float)conv1).mValue; 327 newconv.mValue = (int)((Float)conv1).mValue;
328 this._mThread.currentFrame.OpStack.Push(newconv); 328 this.m_thread.m_currentFrame.OpStack.Push(newconv);
329 } 329 }
330 result = true; 330 result = true;
331 break; 331 break;
332 case (byte)OpCode.fcmpl: 332 case (byte)OpCode.fcmpl:
333 BaseType flcom2 = this._mThread.currentFrame.OpStack.Pop(); 333 BaseType flcom2 = this.m_thread.m_currentFrame.OpStack.Pop();
334 BaseType flcom1 = this._mThread.currentFrame.OpStack.Pop(); 334 BaseType flcom1 = this.m_thread.m_currentFrame.OpStack.Pop();
335 if (flcom1 is Float && flcom2 is Float) 335 if (flcom1 is Float && flcom2 is Float)
336 { 336 {
337 Int compres = new Int(); 337 Int compres = new Int();
@@ -347,13 +347,13 @@ namespace OpenSim.Region.Scripting.EmbeddedJVM
347 { 347 {
348 compres.mValue = 0; 348 compres.mValue = 0;
349 } 349 }
350 this._mThread.currentFrame.OpStack.Push(compres); 350 this.m_thread.m_currentFrame.OpStack.Push(compres);
351 } 351 }
352 result = true; 352 result = true;
353 break; 353 break;
354 case (byte)OpCode.fcmpg: 354 case (byte)OpCode.fcmpg:
355 flcom2 = this._mThread.currentFrame.OpStack.Pop(); 355 flcom2 = this.m_thread.m_currentFrame.OpStack.Pop();
356 flcom1 = this._mThread.currentFrame.OpStack.Pop(); 356 flcom1 = this.m_thread.m_currentFrame.OpStack.Pop();
357 if (flcom1 is Float && flcom2 is Float) 357 if (flcom1 is Float && flcom2 is Float)
358 { 358 {
359 Int compres = new Int(); 359 Int compres = new Int();
@@ -369,54 +369,54 @@ namespace OpenSim.Region.Scripting.EmbeddedJVM
369 { 369 {
370 compres.mValue = 0; 370 compres.mValue = 0;
371 } 371 }
372 this._mThread.currentFrame.OpStack.Push(compres); 372 this.m_thread.m_currentFrame.OpStack.Push(compres);
373 } 373 }
374 result = true; 374 result = true;
375 break; 375 break;
376 case (byte)OpCode.ifge: 376 case (byte)OpCode.ifge:
377 short compareoffset2 = (short)((GlobalMemory.MethodArea.MethodBuffer[this._mThread.PC] << 8) + GlobalMemory.MethodArea.MethodBuffer[this._mThread.PC + 1]); 377 short compareoffset2 = (short)((GlobalMemory.MethodArea.MethodBuffer[this.m_thread.PC] << 8) + GlobalMemory.MethodArea.MethodBuffer[this.m_thread.PC + 1]);
378 BaseType compe1 = this._mThread.currentFrame.OpStack.Pop(); 378 BaseType compe1 = this.m_thread.m_currentFrame.OpStack.Pop();
379 if (compe1 is Int) 379 if (compe1 is Int)
380 { 380 {
381 if (((Int)compe1).mValue >= 0) 381 if (((Int)compe1).mValue >= 0)
382 { 382 {
383 this._mThread.PC += -1 + compareoffset2; 383 this.m_thread.PC += -1 + compareoffset2;
384 } 384 }
385 else 385 else
386 { 386 {
387 this._mThread.PC += 2; 387 this.m_thread.PC += 2;
388 } 388 }
389 } 389 }
390 else 390 else
391 { 391 {
392 this._mThread.PC += 2; 392 this.m_thread.PC += 2;
393 } 393 }
394 result = true; 394 result = true;
395 break; 395 break;
396 case (byte)OpCode.ifle: 396 case (byte)OpCode.ifle:
397 short compareoffset1 = (short)((GlobalMemory.MethodArea.MethodBuffer[this._mThread.PC] << 8) + GlobalMemory.MethodArea.MethodBuffer[this._mThread.PC + 1]); 397 short compareoffset1 = (short)((GlobalMemory.MethodArea.MethodBuffer[this.m_thread.PC] << 8) + GlobalMemory.MethodArea.MethodBuffer[this.m_thread.PC + 1]);
398 BaseType comp1 = this._mThread.currentFrame.OpStack.Pop(); 398 BaseType comp1 = this.m_thread.m_currentFrame.OpStack.Pop();
399 if (comp1 is Int) 399 if (comp1 is Int)
400 { 400 {
401 if (((Int)comp1).mValue <= 0) 401 if (((Int)comp1).mValue <= 0)
402 { 402 {
403 this._mThread.PC += -1 + compareoffset1; 403 this.m_thread.PC += -1 + compareoffset1;
404 } 404 }
405 else 405 else
406 { 406 {
407 this._mThread.PC += 2; 407 this.m_thread.PC += 2;
408 } 408 }
409 } 409 }
410 else 410 else
411 { 411 {
412 this._mThread.PC += 2; 412 this.m_thread.PC += 2;
413 } 413 }
414 result = true; 414 result = true;
415 break; 415 break;
416 case (byte)OpCode.if_icmpge: 416 case (byte)OpCode.if_icmpge:
417 short compareoffset = (short)((GlobalMemory.MethodArea.MethodBuffer[this._mThread.PC] << 8) + GlobalMemory.MethodArea.MethodBuffer[this._mThread.PC + 1]); 417 short compareoffset = (short)((GlobalMemory.MethodArea.MethodBuffer[this.m_thread.PC] << 8) + GlobalMemory.MethodArea.MethodBuffer[this.m_thread.PC + 1]);
418 BaseType bc2 = this._mThread.currentFrame.OpStack.Pop(); 418 BaseType bc2 = this.m_thread.m_currentFrame.OpStack.Pop();
419 BaseType bc1 = this._mThread.currentFrame.OpStack.Pop(); 419 BaseType bc1 = this.m_thread.m_currentFrame.OpStack.Pop();
420 if (bc1 is Int && bc2 is Int) 420 if (bc1 is Int && bc2 is Int)
421 { 421 {
422 //Console.WriteLine("comparing " + ((Int)bc1).mValue + " and " + ((Int)bc2).mValue); 422 //Console.WriteLine("comparing " + ((Int)bc1).mValue + " and " + ((Int)bc2).mValue);
@@ -424,25 +424,25 @@ namespace OpenSim.Region.Scripting.EmbeddedJVM
424 { 424 {
425 // Console.WriteLine("branch compare true , offset is " +compareoffset); 425 // Console.WriteLine("branch compare true , offset is " +compareoffset);
426 // Console.WriteLine("current PC is " + this._mThread.PC); 426 // Console.WriteLine("current PC is " + this._mThread.PC);
427 this._mThread.PC += -1 + compareoffset; 427 this.m_thread.PC += -1 + compareoffset;
428 //Console.WriteLine("new PC is " + this._mThread.PC); 428 //Console.WriteLine("new PC is " + this._mThread.PC);
429 } 429 }
430 else 430 else
431 { 431 {
432 //Console.WriteLine("branch compare false"); 432 //Console.WriteLine("branch compare false");
433 this._mThread.PC += 2; 433 this.m_thread.PC += 2;
434 } 434 }
435 } 435 }
436 else 436 else
437 { 437 {
438 this._mThread.PC += 2; 438 this.m_thread.PC += 2;
439 } 439 }
440 result = true; 440 result = true;
441 break; 441 break;
442 case (byte)OpCode.if_icmple: 442 case (byte)OpCode.if_icmple:
443 short compareloffset = (short)((GlobalMemory.MethodArea.MethodBuffer[this._mThread.PC] << 8) + GlobalMemory.MethodArea.MethodBuffer[this._mThread.PC + 1]); 443 short compareloffset = (short)((GlobalMemory.MethodArea.MethodBuffer[this.m_thread.PC] << 8) + GlobalMemory.MethodArea.MethodBuffer[this.m_thread.PC + 1]);
444 BaseType bcl2 = this._mThread.currentFrame.OpStack.Pop(); 444 BaseType bcl2 = this.m_thread.m_currentFrame.OpStack.Pop();
445 BaseType bcl1 = this._mThread.currentFrame.OpStack.Pop(); 445 BaseType bcl1 = this.m_thread.m_currentFrame.OpStack.Pop();
446 if (bcl1 is Int && bcl2 is Int) 446 if (bcl1 is Int && bcl2 is Int)
447 { 447 {
448 //Console.WriteLine("comparing " + ((Int)bcl1).mValue + " and " + ((Int)bcl2).mValue); 448 //Console.WriteLine("comparing " + ((Int)bcl1).mValue + " and " + ((Int)bcl2).mValue);
@@ -450,47 +450,47 @@ namespace OpenSim.Region.Scripting.EmbeddedJVM
450 { 450 {
451 // Console.WriteLine("branch compare true , offset is " + compareloffset); 451 // Console.WriteLine("branch compare true , offset is " + compareloffset);
452 // Console.WriteLine("current PC is " + this._mThread.PC); 452 // Console.WriteLine("current PC is " + this._mThread.PC);
453 this._mThread.PC += -1 + compareloffset; 453 this.m_thread.PC += -1 + compareloffset;
454 // Console.WriteLine("new PC is " + this._mThread.PC); 454 // Console.WriteLine("new PC is " + this._mThread.PC);
455 } 455 }
456 else 456 else
457 { 457 {
458 //Console.WriteLine("branch compare false"); 458 //Console.WriteLine("branch compare false");
459 this._mThread.PC += 2; 459 this.m_thread.PC += 2;
460 } 460 }
461 } 461 }
462 else 462 else
463 { 463 {
464 this._mThread.PC += 2; 464 this.m_thread.PC += 2;
465 } 465 }
466 result = true; 466 result = true;
467 break; 467 break;
468 case (byte)OpCode._goto: 468 case (byte)OpCode._goto:
469 short offset = (short)((GlobalMemory.MethodArea.MethodBuffer[this._mThread.PC] << 8) + GlobalMemory.MethodArea.MethodBuffer[this._mThread.PC + 1]); 469 short offset = (short)((GlobalMemory.MethodArea.MethodBuffer[this.m_thread.PC] << 8) + GlobalMemory.MethodArea.MethodBuffer[this.m_thread.PC + 1]);
470 this._mThread.PC += -1 + offset; 470 this.m_thread.PC += -1 + offset;
471 result = true; 471 result = true;
472 break; 472 break;
473 case (byte)OpCode.getstatic: 473 case (byte)OpCode.getstatic:
474 short fieldrefIndex = (short)((GlobalMemory.MethodArea.MethodBuffer[this._mThread.PC] << 8) + GlobalMemory.MethodArea.MethodBuffer[this._mThread.PC + 1]); 474 short fieldrefIndex = (short)((GlobalMemory.MethodArea.MethodBuffer[this.m_thread.PC] << 8) + GlobalMemory.MethodArea.MethodBuffer[this.m_thread.PC + 1]);
475 if (this._mThread.currentClass._constantsPool[fieldrefIndex - 1] is ClassRecord.PoolFieldRef) 475 if (this.m_thread.currentClass.m_constantsPool[fieldrefIndex - 1] is ClassRecord.PoolFieldRef)
476 { 476 {
477 if (((ClassRecord.PoolFieldRef)this._mThread.currentClass._constantsPool[fieldrefIndex - 1]).mClass.Name.Value == this._mThread.currentClass.mClass.Name.Value) 477 if (((ClassRecord.PoolFieldRef)this.m_thread.currentClass.m_constantsPool[fieldrefIndex - 1]).mClass.Name.Value == this.m_thread.currentClass.MClass.Name.Value)
478 { 478 {
479 //from this class 479 //from this class
480 if (this._mThread.currentClass.StaticFields.ContainsKey(((ClassRecord.PoolFieldRef)this._mThread.currentClass._constantsPool[fieldrefIndex - 1]).mNameType.Name.Value)) 480 if (this.m_thread.currentClass.StaticFields.ContainsKey(((ClassRecord.PoolFieldRef)this.m_thread.currentClass.m_constantsPool[fieldrefIndex - 1]).mNameType.Name.Value))
481 { 481 {
482 if (this._mThread.currentClass.StaticFields[((ClassRecord.PoolFieldRef)this._mThread.currentClass._constantsPool[fieldrefIndex - 1]).mNameType.Name.Value] is Float) 482 if (this.m_thread.currentClass.StaticFields[((ClassRecord.PoolFieldRef)this.m_thread.currentClass.m_constantsPool[fieldrefIndex - 1]).mNameType.Name.Value] is Float)
483 { 483 {
484 Float retFloat = new Float(); 484 Float retFloat = new Float();
485 retFloat.mValue = ((Float)this._mThread.currentClass.StaticFields[((ClassRecord.PoolFieldRef)this._mThread.currentClass._constantsPool[fieldrefIndex - 1]).mNameType.Name.Value]).mValue; 485 retFloat.mValue = ((Float)this.m_thread.currentClass.StaticFields[((ClassRecord.PoolFieldRef)this.m_thread.currentClass.m_constantsPool[fieldrefIndex - 1]).mNameType.Name.Value]).mValue;
486 this._mThread.currentFrame.OpStack.Push(retFloat); 486 this.m_thread.m_currentFrame.OpStack.Push(retFloat);
487 } 487 }
488 else if (this._mThread.currentClass.StaticFields[((ClassRecord.PoolFieldRef)this._mThread.currentClass._constantsPool[fieldrefIndex - 1]).mNameType.Name.Value] is Int) 488 else if (this.m_thread.currentClass.StaticFields[((ClassRecord.PoolFieldRef)this.m_thread.currentClass.m_constantsPool[fieldrefIndex - 1]).mNameType.Name.Value] is Int)
489 { 489 {
490 Int retInt = new Int(); 490 Int retInt = new Int();
491 retInt.mValue = ((Int)this._mThread.currentClass.StaticFields[((ClassRecord.PoolFieldRef)this._mThread.currentClass._constantsPool[fieldrefIndex - 1]).mNameType.Name.Value]).mValue; 491 retInt.mValue = ((Int)this.m_thread.currentClass.StaticFields[((ClassRecord.PoolFieldRef)this.m_thread.currentClass.m_constantsPool[fieldrefIndex - 1]).mNameType.Name.Value]).mValue;
492 // Console.WriteLine("getting static field, " + retInt.mValue); 492 // Console.WriteLine("getting static field, " + retInt.mValue);
493 this._mThread.currentFrame.OpStack.Push(retInt); 493 this.m_thread.m_currentFrame.OpStack.Push(retInt);
494 } 494 }
495 } 495 }
496 } 496 }
@@ -499,36 +499,36 @@ namespace OpenSim.Region.Scripting.EmbeddedJVM
499 //get from a different class 499 //get from a different class
500 } 500 }
501 } 501 }
502 this._mThread.PC += 2; 502 this.m_thread.PC += 2;
503 result = true; 503 result = true;
504 break; 504 break;
505 case (byte)OpCode.putstatic: 505 case (byte)OpCode.putstatic:
506 fieldrefIndex = (short)((GlobalMemory.MethodArea.MethodBuffer[this._mThread.PC] << 8) + GlobalMemory.MethodArea.MethodBuffer[this._mThread.PC + 1]); 506 fieldrefIndex = (short)((GlobalMemory.MethodArea.MethodBuffer[this.m_thread.PC] << 8) + GlobalMemory.MethodArea.MethodBuffer[this.m_thread.PC + 1]);
507 BaseType addstatic = this._mThread.currentFrame.OpStack.Pop(); 507 BaseType addstatic = this.m_thread.m_currentFrame.OpStack.Pop();
508 if (this._mThread.currentClass._constantsPool[fieldrefIndex - 1] is ClassRecord.PoolFieldRef) 508 if (this.m_thread.currentClass.m_constantsPool[fieldrefIndex - 1] is ClassRecord.PoolFieldRef)
509 { 509 {
510 if (((ClassRecord.PoolFieldRef)this._mThread.currentClass._constantsPool[fieldrefIndex - 1]).mClass.Name.Value == this._mThread.currentClass.mClass.Name.Value) 510 if (((ClassRecord.PoolFieldRef)this.m_thread.currentClass.m_constantsPool[fieldrefIndex - 1]).mClass.Name.Value == this.m_thread.currentClass.MClass.Name.Value)
511 { 511 {
512 // this class 512 // this class
513 if (this._mThread.currentClass.StaticFields.ContainsKey(((ClassRecord.PoolFieldRef)this._mThread.currentClass._constantsPool[fieldrefIndex - 1]).mNameType.Name.Value)) 513 if (this.m_thread.currentClass.StaticFields.ContainsKey(((ClassRecord.PoolFieldRef)this.m_thread.currentClass.m_constantsPool[fieldrefIndex - 1]).mNameType.Name.Value))
514 { 514 {
515 if (addstatic is Float) 515 if (addstatic is Float)
516 { 516 {
517 if (this._mThread.currentClass.StaticFields[((ClassRecord.PoolFieldRef)this._mThread.currentClass._constantsPool[fieldrefIndex - 1]).mNameType.Name.Value] is Float) 517 if (this.m_thread.currentClass.StaticFields[((ClassRecord.PoolFieldRef)this.m_thread.currentClass.m_constantsPool[fieldrefIndex - 1]).mNameType.Name.Value] is Float)
518 { 518 {
519 Float newf = new Float(); 519 Float newf = new Float();
520 newf.mValue = ((Float)addstatic).mValue; 520 newf.mValue = ((Float)addstatic).mValue;
521 this._mThread.currentClass.StaticFields[((ClassRecord.PoolFieldRef)this._mThread.currentClass._constantsPool[fieldrefIndex - 1]).mNameType.Name.Value] = newf; 521 this.m_thread.currentClass.StaticFields[((ClassRecord.PoolFieldRef)this.m_thread.currentClass.m_constantsPool[fieldrefIndex - 1]).mNameType.Name.Value] = newf;
522 } 522 }
523 } 523 }
524 else if (addstatic is Int) 524 else if (addstatic is Int)
525 { 525 {
526 if (this._mThread.currentClass.StaticFields[((ClassRecord.PoolFieldRef)this._mThread.currentClass._constantsPool[fieldrefIndex - 1]).mNameType.Name.Value] is Int) 526 if (this.m_thread.currentClass.StaticFields[((ClassRecord.PoolFieldRef)this.m_thread.currentClass.m_constantsPool[fieldrefIndex - 1]).mNameType.Name.Value] is Int)
527 { 527 {
528 //Console.WriteLine("setting static field to " + ((Int)addstatic).mValue); 528 //Console.WriteLine("setting static field to " + ((Int)addstatic).mValue);
529 Int newi = new Int(); 529 Int newi = new Int();
530 newi.mValue = ((Int)addstatic).mValue; 530 newi.mValue = ((Int)addstatic).mValue;
531 this._mThread.currentClass.StaticFields[((ClassRecord.PoolFieldRef)this._mThread.currentClass._constantsPool[fieldrefIndex - 1]).mNameType.Name.Value] = newi; 531 this.m_thread.currentClass.StaticFields[((ClassRecord.PoolFieldRef)this.m_thread.currentClass.m_constantsPool[fieldrefIndex - 1]).mNameType.Name.Value] = newi;
532 } 532 }
533 } 533 }
534 } 534 }
@@ -538,7 +538,7 @@ namespace OpenSim.Region.Scripting.EmbeddedJVM
538 // a different class 538 // a different class
539 } 539 }
540 } 540 }
541 this._mThread.PC += 2; 541 this.m_thread.PC += 2;
542 result = true; 542 result = true;
543 break; 543 break;
544 544