data.isa (7215:4fb71bcb1126) data.isa (7217:34621fef50c5)
1// -*- mode:c++ -*-
2
3// Copyright (c) 2010 ARM Limited
4// All rights reserved
5//
6// The license below extends only to copyright in the software and shall
7// not be construed as granting a license to any other intellectual
8// property including but not limited to intellectual property relating

--- 355 unchanged lines hidden (view full) ---

364 ''', flagType="none", buildCc=False)
365
366 buildRegDataInst("sadd8", '''
367 uint32_t geBits = 0;
368 resTemp = 0;
369 for (unsigned i = 0; i < 4; i++) {
370 int high = (i + 1) * 8 - 1;
371 int low = i * 8;
1// -*- mode:c++ -*-
2
3// Copyright (c) 2010 ARM Limited
4// All rights reserved
5//
6// The license below extends only to copyright in the software and shall
7// not be construed as granting a license to any other intellectual
8// property including but not limited to intellectual property relating

--- 355 unchanged lines hidden (view full) ---

364 ''', flagType="none", buildCc=False)
365
366 buildRegDataInst("sadd8", '''
367 uint32_t geBits = 0;
368 resTemp = 0;
369 for (unsigned i = 0; i < 4; i++) {
370 int high = (i + 1) * 8 - 1;
371 int low = i * 8;
372 int32_t midRes = sext<8>(bits(Op1, high, low)) +
373 sext<8>(bits(Op2, high, low));
372 int32_t midRes = sext<8>(bits(Op1.sw, high, low)) +
373 sext<8>(bits(Op2.sw, high, low));
374 replaceBits(resTemp, high, low, midRes);
375 if (midRes >= 0) {
376 geBits = geBits | (1 << i);
377 }
378 }
379 Dest = resTemp;
380 resTemp = geBits;
381 ''', flagType="ge", buildNonCc=False)
382 buildRegDataInst("sadd16", '''
383 uint32_t geBits = 0;
384 resTemp = 0;
385 for (unsigned i = 0; i < 2; i++) {
386 int high = (i + 1) * 16 - 1;
387 int low = i * 16;
374 replaceBits(resTemp, high, low, midRes);
375 if (midRes >= 0) {
376 geBits = geBits | (1 << i);
377 }
378 }
379 Dest = resTemp;
380 resTemp = geBits;
381 ''', flagType="ge", buildNonCc=False)
382 buildRegDataInst("sadd16", '''
383 uint32_t geBits = 0;
384 resTemp = 0;
385 for (unsigned i = 0; i < 2; i++) {
386 int high = (i + 1) * 16 - 1;
387 int low = i * 16;
388 int32_t midRes = sext<16>(bits(Op1, high, low)) +
389 sext<16>(bits(Op2, high, low));
388 int32_t midRes = sext<16>(bits(Op1.sw, high, low)) +
389 sext<16>(bits(Op2.sw, high, low));
390 replaceBits(resTemp, high, low, midRes);
391 if (midRes >= 0) {
392 geBits = geBits | (0x3 << (i * 2));
393 }
394 }
395 Dest = resTemp;
396 resTemp = geBits;
397 ''', flagType="ge", buildNonCc=False)
390 replaceBits(resTemp, high, low, midRes);
391 if (midRes >= 0) {
392 geBits = geBits | (0x3 << (i * 2));
393 }
394 }
395 Dest = resTemp;
396 resTemp = geBits;
397 ''', flagType="ge", buildNonCc=False)
398
399 buildRegDataInst("ssub8", '''
400 uint32_t geBits = 0;
401 resTemp = 0;
402 for (unsigned i = 0; i < 4; i++) {
403 int high = (i + 1) * 8 - 1;
404 int low = i * 8;
405 int32_t midRes = sext<8>(bits(Op1.sw, high, low)) -
406 sext<8>(bits(Op2.sw, high, low));
407 replaceBits(resTemp, high, low, midRes);
408 if (midRes >= 0) {
409 geBits = geBits | (1 << i);
410 }
411 }
412 Dest = resTemp;
413 resTemp = geBits;
414 ''', flagType="ge", buildNonCc=False)
415 buildRegDataInst("ssub16", '''
416 uint32_t geBits = 0;
417 resTemp = 0;
418 for (unsigned i = 0; i < 2; i++) {
419 int high = (i + 1) * 16 - 1;
420 int low = i * 16;
421 int32_t midRes = sext<16>(bits(Op1.sw, high, low)) -
422 sext<16>(bits(Op2.sw, high, low));
423 replaceBits(resTemp, high, low, midRes);
424 if (midRes >= 0) {
425 geBits = geBits | (0x3 << (i * 2));
426 }
427 }
428 Dest = resTemp;
429 resTemp = geBits;
430 ''', flagType="ge", buildNonCc=False)
398}};
431}};