URL
https://opencores.org/ocsvn/openrisc/openrisc/trunk
Subversion Repositories openrisc
[/] [openrisc/] [trunk/] [gnu-old/] [binutils-2.18.50/] [gas/] [testsuite/] [gas/] [ia64/] [opc-m.pl] - Rev 816
Compare with Previous | Blame | View Log
print ".text\n\t.type _start,@", "function\n_start:\n\n"; @ldhint = ( "", ".nt1", ".nta" ); @ldspec = ( "", ".s", ".a", ".sa", ".c.clr", ".c.nc" ); @sthint = ( "", ".nta" ); $i = 0; # Integer Load foreach $s ( "1", "2", "4", "8" ) { foreach $e (@ldspec, ".bias", ".acq", ".c.clr.acq") { foreach $l (@ldhint) { print "\tld${s}${e}${l} r4 = [r5]\n"; print "\tld${s}${e}${l} r4 = [r5], r6\n"; print "\tld${s}${e}${l} r4 = [r5], ", $i - 256, "\n"; $i = ($i + 13) % 512; } print "\n"; } } # Integer Fill for $l (@ldhint) { print "\tld8.fill${l} r4 = [r5]\n"; print "\tld8.fill${l} r4 = [r5], r6\n"; print "\tld8.fill${l} r4 = [r5], ", $i - 256, "\n"; $i = ($i + 13) % 512; } print "\n"; # Integer Store foreach $s ("1", "2", "4", "8", "1.rel", "2.rel", "4.rel", "8.rel", "8.spill") { for $l (@sthint) { print "\tst${s}${l} [r4] = r5\n"; print "\tst${s}${l} [r4] = r5, ", $i - 256, "\n"; $i = ($i + 13) % 512; } print "\n"; } # Floating Point Load foreach $s ( "fs", "fd", "f8", "fe" ) { foreach $e (@ldspec) { foreach $l (@ldhint) { print "\tld${s}${e}${l} f4 = [r5]\n"; print "\tld${s}${e}${l} f4 = [r5], r6\n"; print "\tld${s}${e}${l} f4 = [r5], ", $i - 256, "\n"; $i = ($i + 13) % 512; } print "\n"; } } # Floating Point Fill for $l (@ldhint) { print "\tldf.fill${l} f4 = [r5]\n"; print "\tldf.fill${l} f4 = [r5], r6\n"; print "\tldf.fill${l} f4 = [r5], ", $i - 256, "\n"; $i = ($i + 13) % 512; } print "\n"; # Floating Point Store foreach $s ( "fs", "fd", "f8", "fe", "f.spill" ) { for $l (@sthint) { print "\tst${s}${l} [r4] = f5\n"; print "\tst${s}${l} [r4] = f5, ", $i - 256, "\n"; $i = ($i + 13) % 512; } print "\n"; } # Floating Point Load Pair foreach $s ( "fps", "fpd", "fp8" ) { foreach $e (@ldspec) { foreach $l (@ldhint) { print "\tld${s}${e}${l} f4, f5 = [r5]\n"; print "\tld${s}${e}${l} f4, f5 = [r5], ", ($s eq "fps" ? 8 : 16), "\n"; } print "\n"; } } # Line Prefetch @lfhint = ( "", ".nt1", ".nt2", ".nta" ); foreach $e ( "", ".excl" ) { foreach $f ( "", ".fault" ) { foreach $h (@lfhint) { print "\tlfetch${f}${e}${h} [r4]\n"; print "\tlfetch${f}${e}${h} [r4], r5\n"; print "\tlfetch${f}${e}${h} [r4], ", $i - 256, "\n"; $i = ($i + 13) % 512; } print "\n"; } } # Compare and Exchange foreach $s ( "1", "2", "4", "8" ) { foreach $e ( ".acq", ".rel" ) { foreach $h (@ldhint) { print "\tcmpxchg${s}${e}${h} r4 = [r5], r6, ar.ccv\n"; } print "\n"; } } # Exchange foreach $s ( "1", "2", "4", "8" ) { foreach $h (@ldhint) { print "\txchg${s}${h} r4 = [r5], r6\n"; } print "\n"; } # Fetch and Add $i = 0; @inc3 = ( -16, -8, -4, -1, 1, 4, 8, 16 ); foreach $s ( "4.acq", "8.acq", "4.rel", "8.rel" ) { foreach $h (@ldhint) { print "\tfetchadd${s}${h} r4 = [r5], ", $inc3[$i], "\n"; $i = ($i + 1) % 8; } print "\n"; } # Get/Set FR foreach $e ( ".sig", ".exp", ".s", ".d" ) { print "\tsetf${e} f4 = r5\n"; } print "\n"; foreach $e ( ".sig", ".exp", ".s", ".d" ) { print "\tgetf${e} r4 = f5\n"; } print "\n"; # Speculation and Advanced Load Checkso print <<END chk.s.m r4, _start chk.s f4, _start chk.a.nc r4, _start chk.a.clr r4, _start chk.a.nc f4, _start chk.a.clr f4, _start invala fwb mf mf.a srlz.d srlz.i sync.i nop.m 0 nop.i 0 { .mii; alloc r4 = ar.pfs, 2, 10, 16, 16 } { .mii; flushrs } { .mii; loadrs } invala.e r4 invala.e f4 fc r4 ptc.e r4 break.m 0 break.m 0x1ffff nop.m 0 break.m 0x1ffff probe.r r4 = r5, r6 probe.w r4 = r5, r6 probe.r r4 = r5, 0 probe.w r4 = r5, 1 probe.r.fault r3, 2 probe.w.fault r3, 3 probe.rw.fault r3, 0 itc.d r8 itc.i r9 sum 0x1234 rum 0x5aaaaa ssm 0xffffff rsm 0x400000 ptc.l r4, r5 ptc.g r4, r5 ptc.ga r4, r5 ptr.d r4, r5 ptr.i r4, r5 thash r4 = r5 ttag r4 = r5 tpa r4 = r5 tak r4 = r5 END ;