changeset 74:275073032132

modify
author Nobuyasu Oshiro <dimolto@cr.ie.u-ryukyu.ac.jp>
date Tue, 03 Jan 2012 19:21:51 +0900
parents 9250ac87c2c7
children 454ddda8d306
files presen/index.html
diffstat 1 files changed, 31 insertions(+), 14 deletions(-) [+]
line wrap: on
line diff
--- a/presen/index.html	Tue Jan 03 14:03:13 2012 +0900
+++ b/presen/index.html	Tue Jan 03 19:21:51 2012 +0900
@@ -9,7 +9,7 @@
 font-size:28px;
 }
 td.srctd {
-height:18em;
+height:17em;
 }
 pre.srcbox {
 height: 100%;
@@ -869,7 +869,7 @@
       <div class="slide">
 	<h1>CbCの実装:TCE(末尾除去)の実装について</h1>
 	<ul>
-	  <li>以前はexpand_call関数を元にしたexpand_cbc_goto関数を作って条件を回避させていた。</li>
+	  <li>以前はexpand_call関数を元にしたexpand_cbc_goto関数を作り条件を回避させていた。</li>
 	  <li>だがその方法だとexpand_call関数の修正にも合わせていく必要もあり管理も面倒であった。</li>
 	  <li>しかしtry_tail_callフラグを落とさせない方法にすることでexpand_cbc_goto関数はいらなくなり、管理が容易くなった。</li>
 	</ul>
@@ -877,11 +877,11 @@
       <!-- PAGE -->
       <div class="slide">
 	<h1>CbCの実装</h1>
+	<li>CbCの基本機能を実現する為の実装は以上の2つになる。</li>
 	<ul>
 	  <li>シンタックスの追加</li>
 	  <li>末尾除去によるコードセグメントへjmp命令での処理の移り</li>
 	</ul>
-	<li>この2つがGCCにおけるCbC実装の基本の部分となる。</li>
 	<li class="incremental">ここからはCbCの機能の拡張になる。</li>
       </div>
       <!-- PAGE -->
@@ -941,7 +941,6 @@
 	  <li>fastcall属性の付与によりMicro-C版に速度で勝るようになった。</li>
 	  <li></li>
 	</ul>
-
 	<table width=100% border=1 class="center">
 	  <caption>引数渡しに使われるレジスタの数(gcc)</caption>
 	  <tr>
@@ -991,7 +990,9 @@
       <!-- PAGE -->
       <div class="slide">
 	<h1>CbCの実装:環境付き継続</h1>
+<!--
 	<li><small>生成しているコードと生成する為のコード</small></li>
+-->
 	<table border=1 width=100%>
 	  <tr>
 	    <td><small>生成しているコード</small></td>
@@ -1000,8 +1001,8 @@
 	  <tr class="srctr">
 	    <td width=50% class="srctd">
 	  <pre class="srcbox" style="width:25em;">
-goto c1(__return, __environment);
 
+//goto c1(__return, __environment);
 goto c1(({
 	  __label__ _cbc_exit0;
 	  static int retval;
@@ -1018,7 +1019,30 @@
 	  </pre>
 	    </td>
 	    <td width=50% class="srctd">
+	      <img src="./pix/STATEMENT_LIST_1.png" style="height: 10em;">
+	    </td>
+	  </tr>
+	  </table>
+	  <li><small>retval変数の型は継続を行った関数と同じ戻値の型となる。</small></li>
+<!--
+	<li class="incremental">上記のコードをGCC内で生成すると次のようなTreeができる。</li>
+-->
+      </div>
+      <!-- PAGE -->
+      <div class="slide">
+	<h1>CbCの実装:環境付き継続</h1>
+	<table border=1 width=100%>
+	  <tr>
+	    <td width=50%><small>生成されるTree</small></td>
+	    <td width=50%><small>生成する為のコード</small></td>
+	  </tr>
+	  <tr class="srctr">
+	    <td class="srctd">
+	      <img src="./pix/STATEMENT_LIST_1.png" style="height: 10em;">
+	    </td>
+	    <td class="srctd">
 	      <pre class="srcbox" style="width:25em;">
+
     case RID_CbC_RET:
 {
   tree value, stmt, label, tlab, decl;
@@ -1064,17 +1088,10 @@
   expr.value = c_finish_stmt_expr (location, stmt);
   expr.original_code = ERROR_MARK;
 }
+			 </pre>
 	    </td>
 	  </tr>
-	  </table>
-	  <p>retval変数はint型になっているが、実際には継続を行った関数と同じ戻値の型となる。</p>
-	<li class="incremental">上記のコードをGCC内で生成すると次のようなTreeができる。</li>
-      </div>
-      <!-- PAGE -->
-      <div class="slide">
-	<h1>CbCの実装:環境付き継続</h1>
-	<h2>作成されるTree</h2>
-	<img src="./pix/STATEMENT_LIST_1.png" style="height: 10em;">
+	</table>
 <!--
 	<small>
 	  <pre>