Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(200)

Side by Side Diff: src/mips64/macro-assembler-mips64.h

Issue 1543883002: MIPS64: [turbofan] Add Int64(Add|Sub)WithOverflow support. (Closed) Base URL: https://chromium.googlesource.com/v8/v8.git@master
Patch Set: Created 4 years, 12 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
1 // Copyright 2012 the V8 project authors. All rights reserved. 1 // Copyright 2012 the V8 project authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #ifndef V8_MIPS_MACRO_ASSEMBLER_MIPS_H_ 5 #ifndef V8_MIPS_MACRO_ASSEMBLER_MIPS_H_
6 #define V8_MIPS_MACRO_ASSEMBLER_MIPS_H_ 6 #define V8_MIPS_MACRO_ASSEMBLER_MIPS_H_
7 7
8 #include "src/assembler.h" 8 #include "src/assembler.h"
9 #include "src/globals.h" 9 #include "src/globals.h"
10 #include "src/mips64/assembler-mips64.h" 10 #include "src/mips64/assembler-mips64.h"
(...skipping 1260 matching lines...) Expand 10 before | Expand all | Expand 10 after
1271 const Operand& right, Register overflow_dst, 1271 const Operand& right, Register overflow_dst,
1272 Register scratch); 1272 Register scratch);
1273 1273
1274 void DadduAndCheckForOverflow(Register dst, Register left, Register right, 1274 void DadduAndCheckForOverflow(Register dst, Register left, Register right,
1275 Register overflow_dst, Register scratch = at); 1275 Register overflow_dst, Register scratch = at);
1276 1276
1277 void DadduAndCheckForOverflow(Register dst, Register left, 1277 void DadduAndCheckForOverflow(Register dst, Register left,
1278 const Operand& right, Register overflow_dst, 1278 const Operand& right, Register overflow_dst,
1279 Register scratch); 1279 Register scratch);
1280 1280
1281 inline void DaddBranchOvf(Register dst, Register left, const Operand& right,
1282 Label* overflow_label, Register scratch = at) {
1283 DaddBranchOvf(dst, left, right, overflow_label, nullptr, scratch);
1284 }
1285
1286 inline void DaddBranchNoOvf(Register dst, Register left, const Operand& right,
1287 Label* no_overflow_label, Register scratch = at) {
1288 DaddBranchOvf(dst, left, right, nullptr, no_overflow_label, scratch);
1289 }
1290
1291 void DaddBranchOvf(Register dst, Register left, const Operand& right,
1292 Label* overflow_label, Label* no_overflow_label,
1293 Register scratch = at);
1294
1295 void DaddBranchOvf(Register dst, Register left, Register right,
1296 Label* overflow_label, Label* no_overflow_label,
1297 Register scratch = at);
1298
1281 void DsubuAndCheckForOverflow(Register dst, Register left, Register right, 1299 void DsubuAndCheckForOverflow(Register dst, Register left, Register right,
1282 Register overflow_dst, Register scratch = at); 1300 Register overflow_dst, Register scratch = at);
1283 1301
1284 void DsubuAndCheckForOverflow(Register dst, Register left, 1302 void DsubuAndCheckForOverflow(Register dst, Register left,
1285 const Operand& right, Register overflow_dst, 1303 const Operand& right, Register overflow_dst,
1286 Register scratch); 1304 Register scratch);
1287 1305
1306 inline void DsubBranchOvf(Register dst, Register left, const Operand& right,
1307 Label* overflow_label, Register scratch = at) {
1308 DsubBranchOvf(dst, left, right, overflow_label, nullptr, scratch);
1309 }
1310
1311 inline void DsubBranchNoOvf(Register dst, Register left, const Operand& right,
1312 Label* no_overflow_label, Register scratch = at) {
1313 DsubBranchOvf(dst, left, right, nullptr, no_overflow_label, scratch);
1314 }
1315
1316 void DsubBranchOvf(Register dst, Register left, const Operand& right,
1317 Label* overflow_label, Label* no_overflow_label,
1318 Register scratch = at);
1319
1320 void DsubBranchOvf(Register dst, Register left, Register right,
1321 Label* overflow_label, Label* no_overflow_label,
1322 Register scratch = at);
1323
1288 void BranchOnOverflow(Label* label, 1324 void BranchOnOverflow(Label* label,
1289 Register overflow_check, 1325 Register overflow_check,
1290 BranchDelaySlot bd = PROTECT) { 1326 BranchDelaySlot bd = PROTECT) {
1291 Branch(label, lt, overflow_check, Operand(zero_reg), bd); 1327 Branch(label, lt, overflow_check, Operand(zero_reg), bd);
1292 } 1328 }
1293 1329
1294 void BranchOnNoOverflow(Label* label, 1330 void BranchOnNoOverflow(Label* label,
1295 Register overflow_check, 1331 Register overflow_check,
1296 BranchDelaySlot bd = PROTECT) { 1332 BranchDelaySlot bd = PROTECT) {
1297 Branch(label, ge, overflow_check, Operand(zero_reg), bd); 1333 Branch(label, ge, overflow_check, Operand(zero_reg), bd);
(...skipping 555 matching lines...) Expand 10 before | Expand all | Expand 10 after
1853 #define __FILE_LINE__ __FILE__ ":" CODE_COVERAGE_TOSTRING(__LINE__) 1889 #define __FILE_LINE__ __FILE__ ":" CODE_COVERAGE_TOSTRING(__LINE__)
1854 #define ACCESS_MASM(masm) masm->stop(__FILE_LINE__); masm-> 1890 #define ACCESS_MASM(masm) masm->stop(__FILE_LINE__); masm->
1855 #else 1891 #else
1856 #define ACCESS_MASM(masm) masm-> 1892 #define ACCESS_MASM(masm) masm->
1857 #endif 1893 #endif
1858 1894
1859 } // namespace internal 1895 } // namespace internal
1860 } // namespace v8 1896 } // namespace v8
1861 1897
1862 #endif // V8_MIPS_MACRO_ASSEMBLER_MIPS_H_ 1898 #endif // V8_MIPS_MACRO_ASSEMBLER_MIPS_H_
OLDNEW
« no previous file with comments | « src/compiler/mips64/instruction-selector-mips64.cc ('k') | src/mips64/macro-assembler-mips64.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698