| OLD | NEW |
| 1 // Copyright 2012 the V8 project authors. All rights reserved. | 1 // Copyright 2012 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 465 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 476 const DwVfpRegister src2, | 476 const DwVfpRegister src2, |
| 477 const Register fpscr_flags, | 477 const Register fpscr_flags, |
| 478 const Condition cond = al); | 478 const Condition cond = al); |
| 479 void VFPCompareAndLoadFlags(const DwVfpRegister src1, | 479 void VFPCompareAndLoadFlags(const DwVfpRegister src1, |
| 480 const double src2, | 480 const double src2, |
| 481 const Register fpscr_flags, | 481 const Register fpscr_flags, |
| 482 const Condition cond = al); | 482 const Condition cond = al); |
| 483 | 483 |
| 484 void Vmov(const DwVfpRegister dst, | 484 void Vmov(const DwVfpRegister dst, |
| 485 const double imm, | 485 const double imm, |
| 486 const Register scratch = no_reg, | |
| 487 const Condition cond = al); | 486 const Condition cond = al); |
| 488 | 487 |
| 489 // Enter exit frame. | 488 // Enter exit frame. |
| 490 // stack_space - extra stack space, used for alignment before call to C. | 489 // stack_space - extra stack space, used for alignment before call to C. |
| 491 void EnterExitFrame(bool save_doubles, int stack_space = 0); | 490 void EnterExitFrame(bool save_doubles, int stack_space = 0); |
| 492 | 491 |
| 493 // Leave the current exit frame. Expects the return value in r0. | 492 // Leave the current exit frame. Expects the return value in r0. |
| 494 // Expect the number of values, pushed prior to the exit frame, to | 493 // Expect the number of values, pushed prior to the exit frame, to |
| 495 // remove in a register (or no_reg, if there is nothing to remove). | 494 // remove in a register (or no_reg, if there is nothing to remove). |
| 496 void LeaveExitFrame(bool save_doubles, Register argument_count); | 495 void LeaveExitFrame(bool save_doubles, Register argument_count); |
| (...skipping 312 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 809 Register scratch, | 808 Register scratch, |
| 810 Label* fail); | 809 Label* fail); |
| 811 | 810 |
| 812 // Check to see if maybe_number can be stored as a double in | 811 // Check to see if maybe_number can be stored as a double in |
| 813 // FastDoubleElements. If it can, store it at the index specified by key in | 812 // FastDoubleElements. If it can, store it at the index specified by key in |
| 814 // the FastDoubleElements array elements. Otherwise jump to fail, in which | 813 // the FastDoubleElements array elements. Otherwise jump to fail, in which |
| 815 // case scratch2, scratch3 and scratch4 are unmodified. | 814 // case scratch2, scratch3 and scratch4 are unmodified. |
| 816 void StoreNumberToDoubleElements(Register value_reg, | 815 void StoreNumberToDoubleElements(Register value_reg, |
| 817 Register key_reg, | 816 Register key_reg, |
| 818 Register receiver_reg, | 817 Register receiver_reg, |
| 819 // All regs below here overwritten. | |
| 820 Register elements_reg, | 818 Register elements_reg, |
| 821 Register scratch1, | 819 Register scratch1, |
| 822 Register scratch2, | 820 Register scratch2, |
| 823 Register scratch3, | 821 Register scratch3, |
| 824 Register scratch4, | 822 Register scratch4, |
| 825 Label* fail); | 823 Label* fail); |
| 826 | 824 |
| 827 // Compare an object's map with the specified map and its transitioned | 825 // Compare an object's map with the specified map and its transitioned |
| 828 // elements maps if mode is ALLOW_ELEMENT_TRANSITION_MAPS. Condition flags are | 826 // elements maps if mode is ALLOW_ELEMENT_TRANSITION_MAPS. Condition flags are |
| 829 // set with result of map compare. If multiple map compares are required, the | 827 // set with result of map compare. If multiple map compares are required, the |
| (...skipping 438 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1268 | 1266 |
| 1269 void ClampDoubleToUint8(Register result_reg, | 1267 void ClampDoubleToUint8(Register result_reg, |
| 1270 DoubleRegister input_reg, | 1268 DoubleRegister input_reg, |
| 1271 DoubleRegister temp_double_reg); | 1269 DoubleRegister temp_double_reg); |
| 1272 | 1270 |
| 1273 | 1271 |
| 1274 void LoadInstanceDescriptors(Register map, | 1272 void LoadInstanceDescriptors(Register map, |
| 1275 Register descriptors, | 1273 Register descriptors, |
| 1276 Register scratch); | 1274 Register scratch); |
| 1277 void EnumLength(Register dst, Register map); | 1275 void EnumLength(Register dst, Register map); |
| 1278 void NumberOfOwnDescriptors(Register dst, Register map); | |
| 1279 | |
| 1280 template<typename Field> | |
| 1281 void DecodeField(Register reg) { | |
| 1282 static const int shift = Field::kShift; | |
| 1283 static const int mask = (Field::kMask >> shift) << kSmiTagSize; | |
| 1284 mov(reg, Operand(reg, LSR, shift)); | |
| 1285 and_(reg, reg, Operand(mask)); | |
| 1286 } | |
| 1287 | 1276 |
| 1288 // Activation support. | 1277 // Activation support. |
| 1289 void EnterFrame(StackFrame::Type type); | 1278 void EnterFrame(StackFrame::Type type); |
| 1290 void LeaveFrame(StackFrame::Type type); | 1279 void LeaveFrame(StackFrame::Type type); |
| 1291 | 1280 |
| 1292 // Expects object in r0 and returns map with validated enum cache | 1281 // Expects object in r0 and returns map with validated enum cache |
| 1293 // in r0. Assumes that any other register can be used as a scratch. | 1282 // in r0. Assumes that any other register can be used as a scratch. |
| 1294 void CheckEnumCache(Register null_value, Label* call_runtime); | 1283 void CheckEnumCache(Register null_value, Label* call_runtime); |
| 1295 | 1284 |
| 1296 private: | 1285 private: |
| (...skipping 104 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1401 #define __FILE_LINE__ __FILE__ ":" CODE_COVERAGE_TOSTRING(__LINE__) | 1390 #define __FILE_LINE__ __FILE__ ":" CODE_COVERAGE_TOSTRING(__LINE__) |
| 1402 #define ACCESS_MASM(masm) masm->stop(__FILE_LINE__); masm-> | 1391 #define ACCESS_MASM(masm) masm->stop(__FILE_LINE__); masm-> |
| 1403 #else | 1392 #else |
| 1404 #define ACCESS_MASM(masm) masm-> | 1393 #define ACCESS_MASM(masm) masm-> |
| 1405 #endif | 1394 #endif |
| 1406 | 1395 |
| 1407 | 1396 |
| 1408 } } // namespace v8::internal | 1397 } } // namespace v8::internal |
| 1409 | 1398 |
| 1410 #endif // V8_ARM_MACRO_ASSEMBLER_ARM_H_ | 1399 #endif // V8_ARM_MACRO_ASSEMBLER_ARM_H_ |
| OLD | NEW |