OLD | NEW |
1 // Copyright 2006-2009 the V8 project authors. All rights reserved. | 1 // Copyright 2006-2009 the V8 project authors. All rights reserved. |
2 // Redistribution and use in source and binary forms, with or without | 2 // Redistribution and use in source and binary forms, with or without |
3 // modification, are permitted provided that the following conditions are | 3 // modification, are permitted provided that the following conditions are |
4 // met: | 4 // met: |
5 // | 5 // |
6 // * Redistributions of source code must retain the above copyright | 6 // * Redistributions of source code must retain the above copyright |
7 // notice, this list of conditions and the following disclaimer. | 7 // notice, this list of conditions and the following disclaimer. |
8 // * Redistributions in binary form must reproduce the above | 8 // * Redistributions in binary form must reproduce the above |
9 // copyright notice, this list of conditions and the following | 9 // copyright notice, this list of conditions and the following |
10 // disclaimer in the documentation and/or other materials provided | 10 // disclaimer in the documentation and/or other materials provided |
(...skipping 260 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
271 // Try to get function prototype of a function and puts the value in | 271 // Try to get function prototype of a function and puts the value in |
272 // the result register. Checks that the function really is a | 272 // the result register. Checks that the function really is a |
273 // function and jumps to the miss label if the fast checks fail. The | 273 // function and jumps to the miss label if the fast checks fail. The |
274 // function register will be untouched; the other registers may be | 274 // function register will be untouched; the other registers may be |
275 // clobbered. | 275 // clobbered. |
276 void TryGetFunctionPrototype(Register function, | 276 void TryGetFunctionPrototype(Register function, |
277 Register result, | 277 Register result, |
278 Register scratch, | 278 Register scratch, |
279 Label* miss); | 279 Label* miss); |
280 | 280 |
| 281 // The double precision value in a heap number is always aligned even |
| 282 // if the heap number object isn't. This takes the address of a heap |
| 283 // number and puts the address of its value in the result register. |
| 284 // It is OK for the two registers to be identical. |
| 285 void GenerateHeapNumberValueAddress(Register result, Register number) { |
| 286 lea(result, Operand(number, 4 + HeapNumber::kValueMinimumOffset - kHeapObjec
tTag)); |
| 287 and_(result, -8); |
| 288 //lea(result, Operand(number, HeapNumber::kValueMinimumOffset - kHeapObjectT
ag)); |
| 289 } |
| 290 |
281 // Generates code for reporting that an illegal operation has | 291 // Generates code for reporting that an illegal operation has |
282 // occurred. | 292 // occurred. |
283 void IllegalOperation(int num_arguments); | 293 void IllegalOperation(int num_arguments); |
284 | 294 |
285 // --------------------------------------------------------------------------- | 295 // --------------------------------------------------------------------------- |
286 // Runtime calls | 296 // Runtime calls |
287 | 297 |
288 // Call a code stub. | 298 // Call a code stub. |
289 void CallStub(CodeStub* stub); | 299 void CallStub(CodeStub* stub); |
290 | 300 |
(...skipping 168 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
459 } \ | 469 } \ |
460 masm-> | 470 masm-> |
461 #else | 471 #else |
462 #define ACCESS_MASM(masm) masm-> | 472 #define ACCESS_MASM(masm) masm-> |
463 #endif | 473 #endif |
464 | 474 |
465 | 475 |
466 } } // namespace v8::internal | 476 } } // namespace v8::internal |
467 | 477 |
468 #endif // V8_IA32_MACRO_ASSEMBLER_IA32_H_ | 478 #endif // V8_IA32_MACRO_ASSEMBLER_IA32_H_ |
OLD | NEW |