src/cpu/ppc/vm/assembler_ppc.hpp

Print this page




1363   // Turn or0(rx,rx,rx) into a nop and avoid that we accidently emit a
1364   // SMT-priority change instruction (see SMT instructions below).
1365   inline void or_unchecked(Register a, Register s, Register b);
1366   inline void orr(    Register a, Register s, Register b);  // suffixed by 'r' as 'or' is C++ keyword
1367   inline void or_(    Register a, Register s, Register b);
1368   inline void xorr(   Register a, Register s, Register b);  // suffixed by 'r' as 'xor' is C++ keyword
1369   inline void xor_(   Register a, Register s, Register b);
1370   inline void nand(   Register a, Register s, Register b);
1371   inline void nand_(  Register a, Register s, Register b);
1372   inline void nor(    Register a, Register s, Register b);
1373   inline void nor_(   Register a, Register s, Register b);
1374   inline void andc(   Register a, Register s, Register b);
1375   inline void andc_(  Register a, Register s, Register b);
1376   inline void orc(    Register a, Register s, Register b);
1377   inline void orc_(   Register a, Register s, Register b);
1378   inline void extsb(  Register a, Register s);
1379   inline void extsh(  Register a, Register s);
1380   inline void extsw(  Register a, Register s);
1381 
1382   // extended mnemonics
1383   inline void nop();
1384   // NOP for FP and BR units (different versions to allow them to be in one group)
1385   inline void fpnop0();
1386   inline void fpnop1();
1387   inline void brnop0();
1388   inline void brnop1();
1389   inline void brnop2();
1390 
1391   inline void mr(      Register d, Register s);
1392   inline void ori_opt( Register d, int ui16);
1393   inline void oris_opt(Register d, int ui16);
1394 
1395   // endgroup opcode for Power6
1396   inline void endgroup();
1397 
1398   // count instructions
1399   inline void cntlzw(  Register a, Register s);
1400   inline void cntlzw_( Register a, Register s);
1401   inline void cntlzd(  Register a, Register s);
1402   inline void cntlzd_( Register a, Register s);
1403 




1363   // Turn or0(rx,rx,rx) into a nop and avoid that we accidently emit a
1364   // SMT-priority change instruction (see SMT instructions below).
1365   inline void or_unchecked(Register a, Register s, Register b);
1366   inline void orr(    Register a, Register s, Register b);  // suffixed by 'r' as 'or' is C++ keyword
1367   inline void or_(    Register a, Register s, Register b);
1368   inline void xorr(   Register a, Register s, Register b);  // suffixed by 'r' as 'xor' is C++ keyword
1369   inline void xor_(   Register a, Register s, Register b);
1370   inline void nand(   Register a, Register s, Register b);
1371   inline void nand_(  Register a, Register s, Register b);
1372   inline void nor(    Register a, Register s, Register b);
1373   inline void nor_(   Register a, Register s, Register b);
1374   inline void andc(   Register a, Register s, Register b);
1375   inline void andc_(  Register a, Register s, Register b);
1376   inline void orc(    Register a, Register s, Register b);
1377   inline void orc_(   Register a, Register s, Register b);
1378   inline void extsb(  Register a, Register s);
1379   inline void extsh(  Register a, Register s);
1380   inline void extsw(  Register a, Register s);
1381 
1382   // extended mnemonics
1383   inline void nop(int count = 1);
1384   // NOP for FP and BR units (different versions to allow them to be in one group)
1385   inline void fpnop0();
1386   inline void fpnop1();
1387   inline void brnop0();
1388   inline void brnop1();
1389   inline void brnop2();
1390 
1391   inline void mr(      Register d, Register s);
1392   inline void ori_opt( Register d, int ui16);
1393   inline void oris_opt(Register d, int ui16);
1394 
1395   // endgroup opcode for Power6
1396   inline void endgroup();
1397 
1398   // count instructions
1399   inline void cntlzw(  Register a, Register s);
1400   inline void cntlzw_( Register a, Register s);
1401   inline void cntlzd(  Register a, Register s);
1402   inline void cntlzd_( Register a, Register s);
1403