regop.isa (5007:121fa5d20f59) | regop.isa (5011:6333ea094184) |
---|---|
1// Copyright (c) 2007 The Hewlett-Packard Development Company 2// All rights reserved. 3// 4// Redistribution and use of this software in source and binary forms, 5// with or without modification, are permitted provided that the 6// following conditions are met: 7// 8// The software must be used only for Non-Commercial Use which means any --- 638 unchanged lines hidden (view full) --- 647 648 defineMicroRegOpWr('Wrip', 'RIP = psrc1 + op2', elseCode="RIP = RIP;") 649 defineMicroRegOpWr('Br', 'nuIP = psrc1 + op2;', elseCode='nuIP = nuIP;') 650 defineMicroRegOpWr('Wruflags', 'ccFlagBits = psrc1 ^ op2') 651 652 defineMicroRegOpRd('Rdip', 'DestReg = RIP') 653 defineMicroRegOpRd('Ruflags', 'DestReg = ccFlagBits') 654 defineMicroRegOpRdImm('Ruflag', ''' | 1// Copyright (c) 2007 The Hewlett-Packard Development Company 2// All rights reserved. 3// 4// Redistribution and use of this software in source and binary forms, 5// with or without modification, are permitted provided that the 6// following conditions are met: 7// 8// The software must be used only for Non-Commercial Use which means any --- 638 unchanged lines hidden (view full) --- 647 648 defineMicroRegOpWr('Wrip', 'RIP = psrc1 + op2', elseCode="RIP = RIP;") 649 defineMicroRegOpWr('Br', 'nuIP = psrc1 + op2;', elseCode='nuIP = nuIP;') 650 defineMicroRegOpWr('Wruflags', 'ccFlagBits = psrc1 ^ op2') 651 652 defineMicroRegOpRd('Rdip', 'DestReg = RIP') 653 defineMicroRegOpRd('Ruflags', 'DestReg = ccFlagBits') 654 defineMicroRegOpRdImm('Ruflag', ''' |
655 int flag = bits(ccFlagBits, (1 << imm8) + 0*psrc1); | 655 int flag = bits(ccFlagBits, imm8 + 0*psrc1); |
656 DestReg = merge(DestReg, flag, dataSize); | 656 DestReg = merge(DestReg, flag, dataSize); |
657 ccFlagBits = ccFlagBits & ~EZFBit; 658 ccFlagBits = ccFlagBits | ((flag == 0) ? EZFBit : 0); | 657 ccFlagBits = (flag == 0) ? (ccFlagBits | EZFBit) : 658 (ccFlagBits & ~EZFBit); |
659 ''') 660 661 defineMicroRegOpImm('Sext', ''' 662 IntReg val = psrc1; 663 int sign_bit = bits(val, imm8-1, imm8-1); 664 uint64_t maskVal = mask(imm8); 665 val = sign_bit ? (val | ~maskVal) : (val & maskVal); 666 DestReg = merge(DestReg, val, dataSize); 667 ''') 668 669 defineMicroRegOpImm('Zext', 'DestReg = bits(psrc1, imm8-1, 0);') 670}}; | 659 ''') 660 661 defineMicroRegOpImm('Sext', ''' 662 IntReg val = psrc1; 663 int sign_bit = bits(val, imm8-1, imm8-1); 664 uint64_t maskVal = mask(imm8); 665 val = sign_bit ? (val | ~maskVal) : (val & maskVal); 666 DestReg = merge(DestReg, val, dataSize); 667 ''') 668 669 defineMicroRegOpImm('Zext', 'DestReg = bits(psrc1, imm8-1, 0);') 670}}; |