⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 opc-m.pl

📁 俄罗斯高人Mamaich的Pocket gcc编译器(运行在PocketPC上)的全部源代码。
💻 PL
字号:
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 Loadforeach $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 Fillfor $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 Storeforeach $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 Loadforeach $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 Fillfor $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 Storeforeach $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 Pairforeach $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 Exchangeforeach $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";  }}# Exchangeforeach $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 FRforeach $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 Checksoprint <<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 = r5END;

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -