neon.isa (7641:788c719d0fc8) | neon.isa (7644:62873d5c2bfc) |
---|---|
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 --- 606 unchanged lines hidden (view full) --- 615 { 616 if (isSnan(op1) || isSnan(op2)) 617 return 2.0; 618 return (fabsf(op1) >= fabsf(op2)) ? 0.0 : 1.0; 619 } 620}}; 621 622let {{ | 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 --- 606 unchanged lines hidden (view full) --- 615 { 616 if (isSnan(op1) || isSnan(op2)) 617 return 2.0; 618 return (fabsf(op1) >= fabsf(op2)) ? 0.0 : 1.0; 619 } 620}}; 621 622let {{ |
623 simdEnabledCheckCode = ''' 624 if (!neonEnabled(Cpacr, Cpsr, Fpexc)) 625 return disabledFault(); 626 ''' 627}}; | |
628 | 623 |
629let {{ 630 | |
631 header_output = "" 632 exec_output = "" 633 634 smallUnsignedTypes = ("uint8_t", "uint16_t", "uint32_t") 635 unsignedTypes = smallUnsignedTypes + ("uint64_t",) 636 smallSignedTypes = ("int8_t", "int16_t", "int32_t") 637 signedTypes = smallSignedTypes + ("int64_t",) 638 smallTypes = smallUnsignedTypes + smallSignedTypes --- 2591 unchanged lines hidden (view full) --- 3230 smallSignedTypes, vqmovunsCode) 3231 3232 def buildVext(name, Name, types, rCount, op): 3233 global header_output, exec_output 3234 eWalkCode = ''' 3235 RegVect srcReg1, srcReg2, destReg; 3236 ''' 3237 for reg in range(rCount): | 624 header_output = "" 625 exec_output = "" 626 627 smallUnsignedTypes = ("uint8_t", "uint16_t", "uint32_t") 628 unsignedTypes = smallUnsignedTypes + ("uint64_t",) 629 smallSignedTypes = ("int8_t", "int16_t", "int32_t") 630 signedTypes = smallSignedTypes + ("int64_t",) 631 smallTypes = smallUnsignedTypes + smallSignedTypes --- 2591 unchanged lines hidden (view full) --- 3223 smallSignedTypes, vqmovunsCode) 3224 3225 def buildVext(name, Name, types, rCount, op): 3226 global header_output, exec_output 3227 eWalkCode = ''' 3228 RegVect srcReg1, srcReg2, destReg; 3229 ''' 3230 for reg in range(rCount): |
3238 eWalkCode += ''' | 3231 eWalkCode += simdEnabledCheckCode + ''' |
3239 srcReg1.regs[%(reg)d] = htog(FpOp1P%(reg)d.uw); 3240 srcReg2.regs[%(reg)d] = htog(FpOp2P%(reg)d.uw); 3241 ''' % { "reg" : reg } 3242 eWalkCode += op 3243 for reg in range(rCount): 3244 eWalkCode += ''' 3245 FpDestP%(reg)d.uw = gtoh(destReg.regs[%(reg)d]); 3246 ''' % { "reg" : reg } --- 90 unchanged lines hidden --- | 3232 srcReg1.regs[%(reg)d] = htog(FpOp1P%(reg)d.uw); 3233 srcReg2.regs[%(reg)d] = htog(FpOp2P%(reg)d.uw); 3234 ''' % { "reg" : reg } 3235 eWalkCode += op 3236 for reg in range(rCount): 3237 eWalkCode += ''' 3238 FpDestP%(reg)d.uw = gtoh(destReg.regs[%(reg)d]); 3239 ''' % { "reg" : reg } --- 90 unchanged lines hidden --- |