Deleted Added
sdiff udiff text old ( 3279:cf42adf4588f ) new ( 3378:4be53ff74fa8 )
full compact
1// Copyright (c) 2006 The Regents of The University of Michigan
2// All rights reserved.
3//
4// Redistribution and use in source and binary forms, with or without
5// modification, are permitted provided that the following conditions are
6// met: redistributions of source code must retain the above copyright
7// notice, this list of conditions and the following disclaimer;
8// redistributions in binary form must reproduce the above copyright

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

946 0x16: FailUnimpl::ldblockf_aiup();
947 //ASI_BLOCK_AS_IF_USER_SECONDARY
948 0x17: FailUnimpl::ldblockf_aius();
949 //ASI_BLOCK_AS_IF_USER_PRIMARY_LITTLE
950 0x1E: FailUnimpl::ldblockf_aiupl();
951 //ASI_BLOCK_AS_IF_USER_SECONDARY_LITTLE
952 0x1F: FailUnimpl::ldblockf_aiusl();
953 //ASI_BLOCK_PRIMARY
954 0xF0: ldblockf_p({{Frd_N = Mem.udw;}});
955 //ASI_BLOCK_SECONDARY
956 0xF1: FailUnimpl::ldblockf_s();
957 //ASI_BLOCK_PRIMARY_LITTLE
958 0xF8: FailUnimpl::ldblockf_pl();
959 //ASI_BLOCK_SECONDARY_LITTLE
960 0xF9: FailUnimpl::ldblockf_sl();
961 }
962

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

973 0xD2: FailUnimpl::ldshortf_16p();
974 //ASI_FL16_SECONDARY
975 0xD3: FailUnimpl::ldshortf_16s();
976 //ASI_FL16_PRIMARY_LITTLE
977 0xDA: FailUnimpl::ldshortf_16pl();
978 //ASI_FL16_SECONDARY_LITTLE
979 0xDB: FailUnimpl::ldshortf_16sl();
980 //Not an ASI which is legal with lddfa
981 default: Trap::lddfa_bad_asi({{fault = new DataAccessException;}});
982
983 //LoadAlt::lddfa({{
984 //Do the actual loading
985 //if(fault == NoFault)
986 //{
987 //if(AsiIsBlock(asi))
988 //{
989 //Do the block transfer
990 //}
991 //else
992 //{
993 //uint64_t val = Mem;
994 //if(AsiIsLittle(asi))
995 //val = gtole(val);
996 //Frd.udw = val;
997 //}
998 //}
999 //}}, {{64}});*/
1000 }
1001 }
1002 0x34: Store::stfa({{Mem.uw = Frd.uw;}});
1003 0x36: stqfa({{fault = new FpDisabled;}});
1004 //XXX need to work in the ASI thing
1005 0x37: Store::stdfa({{Mem.udw = Frd.udw;}});
1006 0x3C: Cas::casa({{
1007 uint64_t val = Mem.uw;
1008 if(Rs2.uw == val)
1009 Mem.uw = Rd.uw;
1010 Rd.uw = val;
1011 }});
1012 0x3D: Nop::prefetcha({{ }});
1013 0x3E: Cas::casxa({{
1014 uint64_t val = Mem.udw;
1015 if(Rs2 == val)
1016 Mem.udw = Rd;
1017 Rd = val;
1018 }});
1019 }
1020 }
1021}