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}};