OpenCores
URL https://opencores.org/ocsvn/openrisc_me/openrisc_me/trunk

Subversion Repositories openrisc_me

[/] [openrisc/] [trunk/] [gnu-src/] [binutils-2.20.1/] [gas/] [testsuite/] [gas/] [ia64/] [opc-m.pl] - Rev 205

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
;
 

Compare with Previous | Blame | View Log

powered by: WebSVN 2.1.0

© copyright 1999-2024 OpenCores.org, equivalent to Oliscience, all rights reserved. OpenCores®, registered trademark.