| 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 1088 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1099 Register outHighReg, | 1099 Register outHighReg, |
| 1100 Register outLowReg) { | 1100 Register outLowReg) { |
| 1101 // ARMv7 VFP3 instructions to implement integer to double conversion. | 1101 // ARMv7 VFP3 instructions to implement integer to double conversion. |
| 1102 mov(r7, Operand(inReg, ASR, kSmiTagSize)); | 1102 mov(r7, Operand(inReg, ASR, kSmiTagSize)); |
| 1103 vmov(s15, r7); | 1103 vmov(s15, r7); |
| 1104 vcvt(d7, s15); | 1104 vcvt(d7, s15); |
| 1105 vmov(outLowReg, outHighReg, d7); | 1105 vmov(outLowReg, outHighReg, d7); |
| 1106 } | 1106 } |
| 1107 | 1107 |
| 1108 | 1108 |
| 1109 void MacroAssembler::GetLeastBitsFromSmi(Register dst, |
| 1110 Register src, |
| 1111 int num_least_bits) { |
| 1112 if (CpuFeatures::IsSupported(ARMv7)) { |
| 1113 ubfx(dst, src, Operand(kSmiTagSize), Operand(num_least_bits - 1)); |
| 1114 } else { |
| 1115 mov(dst, Operand(src, ASR, kSmiTagSize)); |
| 1116 and_(dst, dst, Operand((1 << num_least_bits) - 1)); |
| 1117 } |
| 1118 } |
| 1119 |
| 1120 |
| 1109 void MacroAssembler::CallRuntime(Runtime::Function* f, int num_arguments) { | 1121 void MacroAssembler::CallRuntime(Runtime::Function* f, int num_arguments) { |
| 1110 // All parameters are on the stack. r0 has the return value after call. | 1122 // All parameters are on the stack. r0 has the return value after call. |
| 1111 | 1123 |
| 1112 // If the expected number of arguments of the runtime function is | 1124 // If the expected number of arguments of the runtime function is |
| 1113 // constant, we check that the actual number of arguments match the | 1125 // constant, we check that the actual number of arguments match the |
| 1114 // expectation. | 1126 // expectation. |
| 1115 if (f->nargs >= 0 && f->nargs != num_arguments) { | 1127 if (f->nargs >= 0 && f->nargs != num_arguments) { |
| 1116 IllegalOperation(num_arguments); | 1128 IllegalOperation(num_arguments); |
| 1117 return; | 1129 return; |
| 1118 } | 1130 } |
| (...skipping 257 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1376 } | 1388 } |
| 1377 | 1389 |
| 1378 | 1390 |
| 1379 void CodePatcher::Emit(Address addr) { | 1391 void CodePatcher::Emit(Address addr) { |
| 1380 masm()->emit(reinterpret_cast<Instr>(addr)); | 1392 masm()->emit(reinterpret_cast<Instr>(addr)); |
| 1381 } | 1393 } |
| 1382 #endif // ENABLE_DEBUGGER_SUPPORT | 1394 #endif // ENABLE_DEBUGGER_SUPPORT |
| 1383 | 1395 |
| 1384 | 1396 |
| 1385 } } // namespace v8::internal | 1397 } } // namespace v8::internal |
| OLD | NEW |