New branch for vm-tests that use cts-tf framework.

Change-Id: I9927dc09027fc2298a1b1f7ee6c918ed1d36723a
diff --git a/tools/vm-tests-tf/src/dot/junit/opcodes/iget_char/TestStubs.java b/tools/vm-tests-tf/src/dot/junit/opcodes/iget_char/TestStubs.java
new file mode 100644
index 0000000..5bf73ae
--- /dev/null
+++ b/tools/vm-tests-tf/src/dot/junit/opcodes/iget_char/TestStubs.java
@@ -0,0 +1,24 @@
+/*
+ * Copyright (C) 2008 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package dot.junit.opcodes.iget_char;
+
+public class TestStubs {
+    // used by testVFE4
+    private char TestStubField = 50;
+    // ussed by testVFE15
+    protected char TestStubProtectedField = 50;
+}
diff --git a/tools/vm-tests-tf/src/dot/junit/opcodes/iget_char/Test_iget_char.java b/tools/vm-tests-tf/src/dot/junit/opcodes/iget_char/Test_iget_char.java
new file mode 100644
index 0000000..c7516e8
--- /dev/null
+++ b/tools/vm-tests-tf/src/dot/junit/opcodes/iget_char/Test_iget_char.java
@@ -0,0 +1,304 @@
+/*
+ * Copyright (C) 2008 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package dot.junit.opcodes.iget_char;
+
+import dot.junit.DxTestCase;
+import dot.junit.DxUtil;
+import dot.junit.opcodes.iget_char.d.T_iget_char_1;
+import dot.junit.opcodes.iget_char.d.T_iget_char_11;
+import dot.junit.opcodes.iget_char.d.T_iget_char_12;
+import dot.junit.opcodes.iget_char.d.T_iget_char_13;
+import dot.junit.opcodes.iget_char.d.T_iget_char_21;
+import dot.junit.opcodes.iget_char.d.T_iget_char_5;
+import dot.junit.opcodes.iget_char.d.T_iget_char_6;
+import dot.junit.opcodes.iget_char.d.T_iget_char_7;
+import dot.junit.opcodes.iget_char.d.T_iget_char_8;
+import dot.junit.opcodes.iget_char.d.T_iget_char_9;
+
+public class Test_iget_char extends DxTestCase {
+    
+    /**
+     * @title get char from field 
+     */
+    public void testN1() {
+        T_iget_char_1 t = new T_iget_char_1();
+        assertEquals(77, t.run());
+    }
+
+
+    /**
+     * @title access protected field from subclass
+     */
+    public void testN3() {
+        //@uses dot.junit.opcodes.iget_char.d.T_iget_char_1
+        //@uses dot.junit.opcodes.iget_char.d.T_iget_char_11
+        T_iget_char_11 t = new T_iget_char_11();
+        assertEquals(77, t.run());
+    }
+
+    /**
+     * @title expected NullPointerException
+     */
+    public void testE2() {
+        T_iget_char_9 t = new T_iget_char_9();
+        try {
+            t.run();
+            fail("expected NullPointerException");
+        } catch (NullPointerException e) {
+            // expected
+        }
+    }
+   
+
+    /**
+     * @constraint A11 
+     * @title constant pool index
+     */
+    public void testVFE1() {
+        try {
+            Class.forName("dot.junit.opcodes.iget_char.d.T_iget_char_4");
+            fail("expected a verification exception");
+        } catch (Throwable t) {
+            DxUtil.checkVerifyException(t);
+        }
+    }
+
+    /**
+     * 
+     * @constraint A23 
+     * @title number of registers
+     */
+    public void testVFE2() {
+        try {
+            Class.forName("dot.junit.opcodes.iget_char.d.T_iget_char_3");
+            fail("expected a verification exception");
+        } catch (Throwable t) {
+            DxUtil.checkVerifyException(t);
+        }
+    }
+    
+    /**
+     * 
+     * @constraint B13 
+     * @title read char from long field - only field with same name but 
+     * different type exists
+     */
+    public void testVFE3() {
+        try {
+            new T_iget_char_13().run();
+            fail("expected a NoSuchFieldError exception");
+        } catch (NoSuchFieldError t) {
+            // expected
+        }
+    }
+    
+    /**
+     * @constraint n/a
+     * @title Attempt to read inaccessible field.
+     */
+    public void testVFE4() {
+        //@uses dot.junit.opcodes.iget_char.d.T_iget_char_6
+        //@uses dot.junit.opcodes.iget_char.TestStubs
+        try {
+            new T_iget_char_6().run();
+            fail("expected an IllegalAccessError exception");
+        } catch (IllegalAccessError t) {
+            // expected
+        }
+    }
+
+    /**
+     * @constraint n/a
+     * @title Attempt to read field of undefined class.
+     */
+    public void testVFE5() {
+        try {
+            new T_iget_char_7().run();
+            fail("expected a NoClassDefFoundError exception");
+        } catch (NoClassDefFoundError t) {
+            // expected
+        }
+    }
+
+    /**
+     * @constraint n/a
+     * @title Attempt to read undefined field.
+     */
+    public void testVFE6() {
+        try {
+            new T_iget_char_8().run();
+            fail("expected a NoSuchFieldError exception");
+        } catch (NoSuchFieldError t) {
+            // expected
+        }
+    }
+    
+    /**
+     * @constraint n/a
+     * @title Attempt to read superclass' private field from subclass.
+     */
+    public void testVFE7() {
+        //@uses dot.junit.opcodes.iget_char.d.T_iget_char_12
+        //@uses dot.junit.opcodes.iget_char.d.T_iget_char_1
+        try {
+            new T_iget_char_12().run();
+            fail("expected an IllegalAccessError exception");
+        } catch (IllegalAccessError t) {
+            // expected
+        }
+    }
+   
+    /**
+     * @constraint B1 
+     * @title iget_char shall not work for reference fields
+     */
+    public void testVFE8() {
+        try {
+            Class.forName("dot.junit.opcodes.iget_char.d.T_iget_char_14");
+            fail("expected a verification exception");
+        } catch (Throwable t) {
+            DxUtil.checkVerifyException(t);
+        }
+    }
+    
+    /**
+     * 
+     * @constraint B1 
+     * @title iget_char shall not work for short fields
+     */
+    public void testVFE9() {
+        try {
+            Class.forName("dot.junit.opcodes.iget_char.d.T_iget_char_15");
+            fail("expected a verification exception");
+        } catch (Throwable t) {
+            DxUtil.checkVerifyException(t);
+        }
+    }
+    
+    /**
+     * 
+     * @constraint B1 
+     * @title iget_char shall not work for int fields
+     */
+    public void testVFE10() {
+        try {
+            Class.forName("dot.junit.opcodes.iget_char.d.T_iget_char_16");
+            fail("expected a verification exception");
+        } catch (Throwable t) {
+            DxUtil.checkVerifyException(t);
+        }
+    }
+    
+    /**
+     * 
+     * @constraint B1 
+     * @title iget_char shall not work for byte fields
+     */
+    public void testVFE11() {
+        try {
+            Class.forName("dot.junit.opcodes.iget_char.d.T_iget_char_17");
+            fail("expected a verification exception");
+        } catch (Throwable t) {
+            DxUtil.checkVerifyException(t);
+        }
+    }
+    
+    /**
+     * 
+     * @constraint B1 
+     * @title iget_char shall not work for boolean fields
+     */
+    public void testVFE12() {
+        try {
+            Class.forName("dot.junit.opcodes.iget_char.d.T_iget_char_18");
+            fail("expected a verification exception");
+        } catch (Throwable t) {
+            DxUtil.checkVerifyException(t);
+        }
+    }    
+    
+    /**
+     * @constraint B1 
+     * @title iget_char shall not work for double fields
+     */
+    public void testVFE13() {
+        try {
+            Class.forName("dot.junit.opcodes.iget_char.d.T_iget_char_19");
+            fail("expected a verification exception");
+        } catch (Throwable t) {
+            DxUtil.checkVerifyException(t);
+        }
+    } 
+    
+    /**
+     * @constraint B1 
+     * @title iget_char shall not work for long fields
+     */
+    public void testVFE14() {
+        try {
+            Class.forName("dot.junit.opcodes.iget_char.d.T_iget_char_20");
+            fail("expected a verification exception");
+        } catch (Throwable t) {
+            DxUtil.checkVerifyException(t);
+        }
+    }
+    
+    /**
+     * @constraint B12
+     * @title Attempt to read inaccessible protected field.
+     */
+    public void testVFE15() {
+        //@uses dot.junit.opcodes.iget_char.d.T_iget_char_21
+        //@uses dot.junit.opcodes.iget_char.TestStubs
+        try {
+            new T_iget_char_21().run();
+            fail("expected an IllegalAccessError exception");
+        } catch (IllegalAccessError t) {
+            // expected
+        }
+    }
+
+
+    /**
+     * @constraint A11
+     * @title Attempt to read static  field.
+     */
+    public void testVFE16() {
+        //@uses dot.junit.opcodes.iget_char.d.T_iget_char_5
+        //@uses dot.junit.opcodes.iget_char.TestStubs
+        try {
+            new T_iget_char_5().run();
+            fail("expected an IncompatibleClassChangeError exception");
+        } catch (IncompatibleClassChangeError t) {
+            // expected
+        }
+    }
+    
+
+    /**
+     * @constraint B6 
+     * @title instance fields may only be accessed on already initialized instances. 
+     */
+    public void testVFE30() {
+        try {
+            Class.forName("dot.junit.opcodes.iget_char.d.T_iget_char_30");
+            fail("expected a verification exception");
+        } catch (Throwable t) {
+            DxUtil.checkVerifyException(t);
+        }
+    }
+}
diff --git a/tools/vm-tests-tf/src/dot/junit/opcodes/iget_char/d/T_iget_char_1.d b/tools/vm-tests-tf/src/dot/junit/opcodes/iget_char/d/T_iget_char_1.d
new file mode 100644
index 0000000..837dd6b
--- /dev/null
+++ b/tools/vm-tests-tf/src/dot/junit/opcodes/iget_char/d/T_iget_char_1.d
@@ -0,0 +1,49 @@
+; Copyright (C) 2008 The Android Open Source Project
+;
+; Licensed under the Apache License, Version 2.0 (the "License");
+; you may not use this file except in compliance with the License.
+; You may obtain a copy of the License at
+;
+;      http://www.apache.org/licenses/LICENSE-2.0
+;
+; Unless required by applicable law or agreed to in writing, software
+; distributed under the License is distributed on an "AS IS" BASIS,
+; WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+; See the License for the specific language governing permissions and
+; limitations under the License.
+
+.source T_iget_char_1.java
+.class public dot.junit.opcodes.iget_char.d.T_iget_char_1
+.super java/lang/Object
+
+.field public  i1 C
+.field protected  p1 C
+.field private  pvt1 C
+
+
+.method public <init>()V
+.limit regs 2
+
+       invoke-direct {v1}, java/lang/Object/<init>()V
+       
+       const v0, 77
+       iput-char v0, v1, dot.junit.opcodes.iget_char.d.T_iget_char_1.i1 C
+
+       const v0, 77
+       iput-char v0, v1, dot.junit.opcodes.iget_char.d.T_iget_char_1.p1 C
+
+       const v0, 77
+       iput-char v0, v1, dot.junit.opcodes.iget_char.d.T_iget_char_1.pvt1 C
+       
+       
+       return-void
+.end method
+
+.method public run()C
+.limit regs 3
+
+       iget-char v1, v2, dot.junit.opcodes.iget_char.d.T_iget_char_1.i1 C
+       return v1
+.end method
+
+
diff --git a/tools/vm-tests-tf/src/dot/junit/opcodes/iget_char/d/T_iget_char_1.java b/tools/vm-tests-tf/src/dot/junit/opcodes/iget_char/d/T_iget_char_1.java
new file mode 100644
index 0000000..227f97a
--- /dev/null
+++ b/tools/vm-tests-tf/src/dot/junit/opcodes/iget_char/d/T_iget_char_1.java
@@ -0,0 +1,27 @@
+/*
+ * Copyright (C) 2008 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package dot.junit.opcodes.iget_char.d;
+
+public class T_iget_char_1 {
+    public  char i1 = 77;
+    protected  char p1 = 77;
+    private  char pvt1 = 77;
+    
+    public char run(){
+        return i1;
+    }
+}
diff --git a/tools/vm-tests-tf/src/dot/junit/opcodes/iget_char/d/T_iget_char_11.d b/tools/vm-tests-tf/src/dot/junit/opcodes/iget_char/d/T_iget_char_11.d
new file mode 100644
index 0000000..9d74992
--- /dev/null
+++ b/tools/vm-tests-tf/src/dot/junit/opcodes/iget_char/d/T_iget_char_11.d
@@ -0,0 +1,34 @@
+; Copyright (C) 2008 The Android Open Source Project
+;
+; Licensed under the Apache License, Version 2.0 (the "License");
+; you may not use this file except in compliance with the License.
+; You may obtain a copy of the License at
+;
+;      http://www.apache.org/licenses/LICENSE-2.0
+;
+; Unless required by applicable law or agreed to in writing, software
+; distributed under the License is distributed on an "AS IS" BASIS,
+; WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+; See the License for the specific language governing permissions and
+; limitations under the License.
+
+.source T_iget_char_11.java
+.class public dot.junit.opcodes.iget_char.d.T_iget_char_11
+.super dot/junit/opcodes/iget_char/d/T_iget_char_1
+
+
+.method public <init>()V
+.limit regs 1
+
+       invoke-direct {v0}, dot/junit/opcodes/iget_char/d/T_iget_char_1/<init>()V
+       return-void
+.end method
+
+.method public run()C
+.limit regs 3
+
+       iget-char v1, v2, dot.junit.opcodes.iget_char.d.T_iget_char_1.p1 C
+       return v1
+.end method
+
+
diff --git a/tools/vm-tests-tf/src/dot/junit/opcodes/iget_char/d/T_iget_char_11.java b/tools/vm-tests-tf/src/dot/junit/opcodes/iget_char/d/T_iget_char_11.java
new file mode 100644
index 0000000..cdd08a7
--- /dev/null
+++ b/tools/vm-tests-tf/src/dot/junit/opcodes/iget_char/d/T_iget_char_11.java
@@ -0,0 +1,24 @@
+/*
+ * Copyright (C) 2008 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package dot.junit.opcodes.iget_char.d;
+
+public class T_iget_char_11 extends T_iget_char_1 {
+
+    public char run(){
+        return p1;
+    }
+}
diff --git a/tools/vm-tests-tf/src/dot/junit/opcodes/iget_char/d/T_iget_char_12.d b/tools/vm-tests-tf/src/dot/junit/opcodes/iget_char/d/T_iget_char_12.d
new file mode 100644
index 0000000..5194ff9
--- /dev/null
+++ b/tools/vm-tests-tf/src/dot/junit/opcodes/iget_char/d/T_iget_char_12.d
@@ -0,0 +1,34 @@
+; Copyright (C) 2008 The Android Open Source Project
+;
+; Licensed under the Apache License, Version 2.0 (the "License");
+; you may not use this file except in compliance with the License.
+; You may obtain a copy of the License at
+;
+;      http://www.apache.org/licenses/LICENSE-2.0
+;
+; Unless required by applicable law or agreed to in writing, software
+; distributed under the License is distributed on an "AS IS" BASIS,
+; WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+; See the License for the specific language governing permissions and
+; limitations under the License.
+
+.source T_iget_char_12.java
+.class public dot.junit.opcodes.iget_char.d.T_iget_char_12
+.super dot/junit/opcodes/iget_char/d/T_iget_char_1
+
+
+.method public <init>()V
+.limit regs 1
+
+       invoke-direct {v0}, dot/junit/opcodes/iget_char/d/T_iget_char_1/<init>()V
+       return-void
+.end method
+
+.method public run()C
+.limit regs 3
+
+       iget-char v1, v2, dot.junit.opcodes.iget_char.d.T_iget_char_1.pvt1 C
+       return v1
+.end method
+
+
diff --git a/tools/vm-tests-tf/src/dot/junit/opcodes/iget_char/d/T_iget_char_12.java b/tools/vm-tests-tf/src/dot/junit/opcodes/iget_char/d/T_iget_char_12.java
new file mode 100644
index 0000000..611b24b
--- /dev/null
+++ b/tools/vm-tests-tf/src/dot/junit/opcodes/iget_char/d/T_iget_char_12.java
@@ -0,0 +1,25 @@
+/*
+ * Copyright (C) 2010 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package dot.junit.opcodes.iget_char.d;
+
+public class T_iget_char_12 extends T_iget_char_1 {
+
+    @Override
+    public char run() {
+        return 0;
+    }
+}
diff --git a/tools/vm-tests-tf/src/dot/junit/opcodes/iget_char/d/T_iget_char_13.d b/tools/vm-tests-tf/src/dot/junit/opcodes/iget_char/d/T_iget_char_13.d
new file mode 100644
index 0000000..a7f5e58
--- /dev/null
+++ b/tools/vm-tests-tf/src/dot/junit/opcodes/iget_char/d/T_iget_char_13.d
@@ -0,0 +1,35 @@
+; Copyright (C) 2008 The Android Open Source Project
+;
+; Licensed under the Apache License, Version 2.0 (the "License");
+; you may not use this file except in compliance with the License.
+; You may obtain a copy of the License at
+;
+;      http://www.apache.org/licenses/LICENSE-2.0
+;
+; Unless required by applicable law or agreed to in writing, software
+; distributed under the License is distributed on an "AS IS" BASIS,
+; WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+; See the License for the specific language governing permissions and
+; limitations under the License.
+
+.source T_iget_char_13.java
+.class public dot.junit.opcodes.iget_char.d.T_iget_char_13
+.super java/lang/Object
+
+.field public  i1 J
+
+.method public <init>()V
+.limit regs 1
+
+       invoke-direct {v0}, java/lang/Object/<init>()V
+       return-void
+.end method
+
+.method public run()V
+.limit regs 3
+
+       iget-char v0, v2, dot.junit.opcodes.iget_char.d.T_iget_char_13.i1 C
+       return-void
+.end method
+
+
diff --git a/tools/vm-tests-tf/src/dot/junit/opcodes/iget_char/d/T_iget_char_13.java b/tools/vm-tests-tf/src/dot/junit/opcodes/iget_char/d/T_iget_char_13.java
new file mode 100644
index 0000000..33cae33
--- /dev/null
+++ b/tools/vm-tests-tf/src/dot/junit/opcodes/iget_char/d/T_iget_char_13.java
@@ -0,0 +1,23 @@
+/*
+ * Copyright (C) 2010 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package dot.junit.opcodes.iget_char.d;
+
+public class T_iget_char_13 {
+
+    public void run() {
+    }
+}
diff --git a/tools/vm-tests-tf/src/dot/junit/opcodes/iget_char/d/T_iget_char_14.d b/tools/vm-tests-tf/src/dot/junit/opcodes/iget_char/d/T_iget_char_14.d
new file mode 100644
index 0000000..46f0e20
--- /dev/null
+++ b/tools/vm-tests-tf/src/dot/junit/opcodes/iget_char/d/T_iget_char_14.d
@@ -0,0 +1,35 @@
+; Copyright (C) 2008 The Android Open Source Project
+;
+; Licensed under the Apache License, Version 2.0 (the "License");
+; you may not use this file except in compliance with the License.
+; You may obtain a copy of the License at
+;
+;      http://www.apache.org/licenses/LICENSE-2.0
+;
+; Unless required by applicable law or agreed to in writing, software
+; distributed under the License is distributed on an "AS IS" BASIS,
+; WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+; See the License for the specific language governing permissions and
+; limitations under the License.
+
+.source T_iget_char_14.java
+.class public dot.junit.opcodes.iget_char.d.T_iget_char_14
+.super java/lang/Object
+
+.field public  i1 Ljava/lang/Object;
+
+.method public <init>()V
+.limit regs 1
+
+       invoke-direct {v0}, java/lang/Object/<init>()V
+       return-void
+.end method
+
+.method public run()V
+.limit regs 3
+
+       iget-char v0, v2, dot.junit.opcodes.iget_char.d.T_iget_char_14.i1 Ljava/lang/Object;
+       return-void
+.end method
+
+
diff --git a/tools/vm-tests-tf/src/dot/junit/opcodes/iget_char/d/T_iget_char_15.d b/tools/vm-tests-tf/src/dot/junit/opcodes/iget_char/d/T_iget_char_15.d
new file mode 100644
index 0000000..e8c7195
--- /dev/null
+++ b/tools/vm-tests-tf/src/dot/junit/opcodes/iget_char/d/T_iget_char_15.d
@@ -0,0 +1,35 @@
+; Copyright (C) 2008 The Android Open Source Project
+;
+; Licensed under the Apache License, Version 2.0 (the "License");
+; you may not use this file except in compliance with the License.
+; You may obtain a copy of the License at
+;
+;      http://www.apache.org/licenses/LICENSE-2.0
+;
+; Unless required by applicable law or agreed to in writing, software
+; distributed under the License is distributed on an "AS IS" BASIS,
+; WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+; See the License for the specific language governing permissions and
+; limitations under the License.
+
+.source T_iget_char_15.java
+.class public dot.junit.opcodes.iget_char.d.T_iget_char_15
+.super java/lang/Object
+
+.field public  i1 S
+
+.method public <init>()V
+.limit regs 1
+
+       invoke-direct {v0}, java/lang/Object/<init>()V
+       return-void
+.end method
+
+.method public run()V
+.limit regs 3
+
+       iget-char v0, v2, dot.junit.opcodes.iget_char.d.T_iget_char_15.i1 S
+       return-void
+.end method
+
+
diff --git a/tools/vm-tests-tf/src/dot/junit/opcodes/iget_char/d/T_iget_char_16.d b/tools/vm-tests-tf/src/dot/junit/opcodes/iget_char/d/T_iget_char_16.d
new file mode 100644
index 0000000..34dbaf0
--- /dev/null
+++ b/tools/vm-tests-tf/src/dot/junit/opcodes/iget_char/d/T_iget_char_16.d
@@ -0,0 +1,35 @@
+; Copyright (C) 2008 The Android Open Source Project
+;
+; Licensed under the Apache License, Version 2.0 (the "License");
+; you may not use this file except in compliance with the License.
+; You may obtain a copy of the License at
+;
+;      http://www.apache.org/licenses/LICENSE-2.0
+;
+; Unless required by applicable law or agreed to in writing, software
+; distributed under the License is distributed on an "AS IS" BASIS,
+; WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+; See the License for the specific language governing permissions and
+; limitations under the License.
+
+.source T_iget_char_16.java
+.class public dot.junit.opcodes.iget_char.d.T_iget_char_16
+.super java/lang/Object
+
+.field public  i1 I
+
+.method public <init>()V
+.limit regs 1
+
+       invoke-direct {v0}, java/lang/Object/<init>()V
+       return-void
+.end method
+
+.method public run()V
+.limit regs 3
+
+       iget-char v0, v2, dot.junit.opcodes.iget_char.d.T_iget_char_16.i1 I
+       return-void
+.end method
+
+
diff --git a/tools/vm-tests-tf/src/dot/junit/opcodes/iget_char/d/T_iget_char_17.d b/tools/vm-tests-tf/src/dot/junit/opcodes/iget_char/d/T_iget_char_17.d
new file mode 100644
index 0000000..cde1b06
--- /dev/null
+++ b/tools/vm-tests-tf/src/dot/junit/opcodes/iget_char/d/T_iget_char_17.d
@@ -0,0 +1,35 @@
+; Copyright (C) 2008 The Android Open Source Project
+;
+; Licensed under the Apache License, Version 2.0 (the "License");
+; you may not use this file except in compliance with the License.
+; You may obtain a copy of the License at
+;
+;      http://www.apache.org/licenses/LICENSE-2.0
+;
+; Unless required by applicable law or agreed to in writing, software
+; distributed under the License is distributed on an "AS IS" BASIS,
+; WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+; See the License for the specific language governing permissions and
+; limitations under the License.
+
+.source T_iget_char_17.java
+.class public dot.junit.opcodes.iget_char.d.T_iget_char_17
+.super java/lang/Object
+
+.field public  i1 B
+
+.method public <init>()V
+.limit regs 1
+
+       invoke-direct {v0}, java/lang/Object/<init>()V
+       return-void
+.end method
+
+.method public run()V
+.limit regs 3
+
+       iget-char v0, v2, dot.junit.opcodes.iget_char.d.T_iget_char_17.i1 B
+       return-void
+.end method
+
+
diff --git a/tools/vm-tests-tf/src/dot/junit/opcodes/iget_char/d/T_iget_char_18.d b/tools/vm-tests-tf/src/dot/junit/opcodes/iget_char/d/T_iget_char_18.d
new file mode 100644
index 0000000..f32f364
--- /dev/null
+++ b/tools/vm-tests-tf/src/dot/junit/opcodes/iget_char/d/T_iget_char_18.d
@@ -0,0 +1,35 @@
+; Copyright (C) 2008 The Android Open Source Project
+;
+; Licensed under the Apache License, Version 2.0 (the "License");
+; you may not use this file except in compliance with the License.
+; You may obtain a copy of the License at
+;
+;      http://www.apache.org/licenses/LICENSE-2.0
+;
+; Unless required by applicable law or agreed to in writing, software
+; distributed under the License is distributed on an "AS IS" BASIS,
+; WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+; See the License for the specific language governing permissions and
+; limitations under the License.
+
+.source T_iget_char_18.java
+.class public dot.junit.opcodes.iget_char.d.T_iget_char_18
+.super java/lang/Object
+
+.field public  i1 Z
+
+.method public <init>()V
+.limit regs 1
+
+       invoke-direct {v0}, java/lang/Object/<init>()V
+       return-void
+.end method
+
+.method public run()V
+.limit regs 3
+
+       iget-char v0, v2, dot.junit.opcodes.iget_char.d.T_iget_char_18.i1 Z
+       return-void
+.end method
+
+
diff --git a/tools/vm-tests-tf/src/dot/junit/opcodes/iget_char/d/T_iget_char_19.d b/tools/vm-tests-tf/src/dot/junit/opcodes/iget_char/d/T_iget_char_19.d
new file mode 100644
index 0000000..5efa5ba
--- /dev/null
+++ b/tools/vm-tests-tf/src/dot/junit/opcodes/iget_char/d/T_iget_char_19.d
@@ -0,0 +1,35 @@
+; Copyright (C) 2008 The Android Open Source Project
+;
+; Licensed under the Apache License, Version 2.0 (the "License");
+; you may not use this file except in compliance with the License.
+; You may obtain a copy of the License at
+;
+;      http://www.apache.org/licenses/LICENSE-2.0
+;
+; Unless required by applicable law or agreed to in writing, software
+; distributed under the License is distributed on an "AS IS" BASIS,
+; WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+; See the License for the specific language governing permissions and
+; limitations under the License.
+
+.source T_iget_char_19.java
+.class public dot.junit.opcodes.iget_char.d.T_iget_char_19
+.super java/lang/Object
+
+.field public  i1 D
+
+.method public <init>()V
+.limit regs 1
+
+       invoke-direct {v0}, java/lang/Object/<init>()V
+       return-void
+.end method
+
+.method public run()V
+.limit regs 3
+
+       iget-char v0, v2, dot.junit.opcodes.iget_char.d.T_iget_char_19.i1 D
+       return-void
+.end method
+
+
diff --git a/tools/vm-tests-tf/src/dot/junit/opcodes/iget_char/d/T_iget_char_20.d b/tools/vm-tests-tf/src/dot/junit/opcodes/iget_char/d/T_iget_char_20.d
new file mode 100644
index 0000000..895f42e
--- /dev/null
+++ b/tools/vm-tests-tf/src/dot/junit/opcodes/iget_char/d/T_iget_char_20.d
@@ -0,0 +1,35 @@
+; Copyright (C) 2008 The Android Open Source Project
+;
+; Licensed under the Apache License, Version 2.0 (the "License");
+; you may not use this file except in compliance with the License.
+; You may obtain a copy of the License at
+;
+;      http://www.apache.org/licenses/LICENSE-2.0
+;
+; Unless required by applicable law or agreed to in writing, software
+; distributed under the License is distributed on an "AS IS" BASIS,
+; WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+; See the License for the specific language governing permissions and
+; limitations under the License.
+
+.source T_iget_char_20.java
+.class public dot.junit.opcodes.iget_char.d.T_iget_char_20
+.super java/lang/Object
+
+.field public  i1 J
+
+.method public <init>()V
+.limit regs 1
+
+       invoke-direct {v0}, java/lang/Object/<init>()V
+       return-void
+.end method
+
+.method public run()V
+.limit regs 3
+
+       iget-char v0, v2, dot.junit.opcodes.iget_char.d.T_iget_char_20.i1 J
+       return-void
+.end method
+
+
diff --git a/tools/vm-tests-tf/src/dot/junit/opcodes/iget_char/d/T_iget_char_21.d b/tools/vm-tests-tf/src/dot/junit/opcodes/iget_char/d/T_iget_char_21.d
new file mode 100644
index 0000000..4902259
--- /dev/null
+++ b/tools/vm-tests-tf/src/dot/junit/opcodes/iget_char/d/T_iget_char_21.d
@@ -0,0 +1,37 @@
+; Copyright (C) 2008 The Android Open Source Project
+;
+; Licensed under the Apache License, Version 2.0 (the "License");
+; you may not use this file except in compliance with the License.
+; You may obtain a copy of the License at
+;
+;      http://www.apache.org/licenses/LICENSE-2.0
+;
+; Unless required by applicable law or agreed to in writing, software
+; distributed under the License is distributed on an "AS IS" BASIS,
+; WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+; See the License for the specific language governing permissions and
+; limitations under the License.
+
+.source T_iget_char_21.java
+.class public dot.junit.opcodes.iget_char.d.T_iget_char_21
+.super java/lang/Object
+
+
+.method public <init>()V
+.limit regs 1
+
+       invoke-direct {v0}, java/lang/Object/<init>()V
+       return-void
+.end method
+
+.method public run()C
+.limit regs 3
+
+       new-instance v0, Ldot/junit/opcodes/iget_char/TestStubs;
+       invoke-direct {v0}, dot/junit/opcodes/iget_char/TestStubs/<init>()V
+
+       iget-char v1, v0, dot.junit.opcodes.iget_char.TestStubs.TestStubProtectedField C
+       return v1
+.end method
+
+
diff --git a/tools/vm-tests-tf/src/dot/junit/opcodes/iget_char/d/T_iget_char_21.java b/tools/vm-tests-tf/src/dot/junit/opcodes/iget_char/d/T_iget_char_21.java
new file mode 100644
index 0000000..6517824
--- /dev/null
+++ b/tools/vm-tests-tf/src/dot/junit/opcodes/iget_char/d/T_iget_char_21.java
@@ -0,0 +1,24 @@
+/*
+ * Copyright (C) 2010 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package dot.junit.opcodes.iget_char.d;
+
+public class T_iget_char_21 {
+
+    public char run() {
+        return 0;
+    }
+}
diff --git a/tools/vm-tests-tf/src/dot/junit/opcodes/iget_char/d/T_iget_char_3.d b/tools/vm-tests-tf/src/dot/junit/opcodes/iget_char/d/T_iget_char_3.d
new file mode 100644
index 0000000..7838f58
--- /dev/null
+++ b/tools/vm-tests-tf/src/dot/junit/opcodes/iget_char/d/T_iget_char_3.d
@@ -0,0 +1,35 @@
+; Copyright (C) 2008 The Android Open Source Project
+;
+; Licensed under the Apache License, Version 2.0 (the "License");
+; you may not use this file except in compliance with the License.
+; You may obtain a copy of the License at
+;
+;      http://www.apache.org/licenses/LICENSE-2.0
+;
+; Unless required by applicable law or agreed to in writing, software
+; distributed under the License is distributed on an "AS IS" BASIS,
+; WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+; See the License for the specific language governing permissions and
+; limitations under the License.
+
+.source T_iget_char_3.java
+.class public dot.junit.opcodes.iget_char.d.T_iget_char_3
+.super java/lang/Object
+
+.field public  i1 C
+
+.method public <init>()V
+.limit regs 1
+
+       invoke-direct {v0}, java/lang/Object/<init>()V
+       return-void
+.end method
+
+.method public run()V
+.limit regs 3
+
+       iget-char v3, v2, dot.junit.opcodes.iget_char.d.T_iget_char_3.i1 C
+       return-void
+.end method
+
+
diff --git a/tools/vm-tests-tf/src/dot/junit/opcodes/iget_char/d/T_iget_char_30.d b/tools/vm-tests-tf/src/dot/junit/opcodes/iget_char/d/T_iget_char_30.d
new file mode 100644
index 0000000..bdc90d2
--- /dev/null
+++ b/tools/vm-tests-tf/src/dot/junit/opcodes/iget_char/d/T_iget_char_30.d
@@ -0,0 +1,32 @@
+; Copyright (C) 2008 The Android Open Source Project
+;
+; Licensed under the Apache License, Version 2.0 (the "License");
+; you may not use this file except in compliance with the License.
+; You may obtain a copy of the License at
+;
+;      http://www.apache.org/licenses/LICENSE-2.0
+;
+; Unless required by applicable law or agreed to in writing, software
+; distributed under the License is distributed on an "AS IS" BASIS,
+; WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+; See the License for the specific language governing permissions and
+; limitations under the License.
+
+.source T_iget_char_30.java
+.class public dot.junit.opcodes.iget_char.d.T_iget_char_30
+.super java/lang/Object
+
+.field public  st_i1 C
+
+.method public <init>()V
+.limit regs 1
+       invoke-direct {v0}, java/lang/Object/<init>()V
+       return-void
+.end method
+
+.method public run()V
+.limit regs 3
+    new-instance v0, dot/junit/opcodes/iget_char/d/T_iget_char_30
+    iget-char v1, v0, dot.junit.opcodes.iget_char.d.T_iget_char_30.st_i1 C
+.end method
+
diff --git a/tools/vm-tests-tf/src/dot/junit/opcodes/iget_char/d/T_iget_char_4.d b/tools/vm-tests-tf/src/dot/junit/opcodes/iget_char/d/T_iget_char_4.d
new file mode 100644
index 0000000..428c14b
--- /dev/null
+++ b/tools/vm-tests-tf/src/dot/junit/opcodes/iget_char/d/T_iget_char_4.d
@@ -0,0 +1,35 @@
+; Copyright (C) 2008 The Android Open Source Project
+;
+; Licensed under the Apache License, Version 2.0 (the "License");
+; you may not use this file except in compliance with the License.
+; You may obtain a copy of the License at
+;
+;      http://www.apache.org/licenses/LICENSE-2.0
+;
+; Unless required by applicable law or agreed to in writing, software
+; distributed under the License is distributed on an "AS IS" BASIS,
+; WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+; See the License for the specific language governing permissions and
+; limitations under the License.
+
+.source T_iget_char_4.java
+.class public dot.junit.opcodes.iget_char.d.T_iget_char_4
+.super java/lang/Object
+
+.field public  i1 C
+
+.method public <init>()V
+.limit regs 1
+
+       invoke-direct {v0}, java/lang/Object/<init>()V
+       return-void
+.end method
+
+.method public run()C
+.limit regs 3
+
+       iget-char v1, v2, dot.junit.opcodes.iget_char.d.T_iget_char_4.i1 C
+       return v1
+.end method
+
+
diff --git a/tools/vm-tests-tf/src/dot/junit/opcodes/iget_char/d/T_iget_char_4.dfh b/tools/vm-tests-tf/src/dot/junit/opcodes/iget_char/d/T_iget_char_4.dfh
new file mode 100644
index 0000000..270fbc7
--- /dev/null
+++ b/tools/vm-tests-tf/src/dot/junit/opcodes/iget_char/d/T_iget_char_4.dfh
@@ -0,0 +1,266 @@
+// Processing 'dalvik-opcodes/out/classes_dasm/dot/junit/opcodes/iget_char/d/T_iget_char_4.dex'...
+// Opened 'dalvik-opcodes/out/classes_dasm/dot/junit/opcodes/iget_char/d/T_iget_char_4.dex', DEX version '035'
+// DEX file header:
+// parsed: offset 0, len 8: magic               : 'dex
+// 035'
+    64 65 78 0A 30 33 35 00 
+// parsed: offset 8, len 4: checksum            : 583643f9
+    F9 43 36 58 
+// parsed: offset 12, len 20: signature           : c593...65f6
+    C5 93 2D 56 9E A8 DE 9C EB 9B 10 08 C0 63 49 6A B5 96 65 F6 
+// parsed: offset 32, len 4: file_size           : 560
+    30 02 00 00 
+// parsed: offset 36, len 4: header_size         : 112
+    70 00 00 00 
+// parsed: offset 40, len 4: endian_tag          : 0x12345678
+    78 56 34 12 
+// parsed: offset 44, len 4: link_size           : 0
+    00 00 00 00 
+// parsed: offset 48, len 4: link_off            : 0 (0x000000)
+    00 00 00 00 
+// parsed: offset 52, len 4: map_off             : 424 (0x0001a8)
+    A8 01 00 00 
+// parsed: offset 56, len 4: string_ids_size     : 8
+    08 00 00 00 
+// parsed: offset 60, len 4: string_ids_off      : 112 (0x000070)
+    70 00 00 00 
+// parsed: offset 64, len 4: type_ids_size       : 4
+    04 00 00 00 
+// parsed: offset 68, len 4: type_ids_off        : 144 (0x000090)
+    90 00 00 00 
+// parsed: offset 72, len 4: proto_ids_size      : 2
+    02 00 00 00 
+// parsed: offset 76, len 4: proto_ids_off       : 160 (0x0000a0)
+    A0 00 00 00 
+// parsed: offset 80, len 4: field_ids_size      : 1
+    01 00 00 00 
+// parsed: offset 84, len 4: field_ids_off       : 184 (0x0000b8)
+    B8 00 00 00 
+// parsed: offset 88, len 4: method_ids_size     : 3
+    03 00 00 00 
+// parsed: offset 92, len 4: method_ids_off      : 192 (0x0000c0)
+    C0 00 00 00 
+// parsed: offset 96, len 4: class_defs_size     : 1
+    01 00 00 00 
+// parsed: offset 100, len 4: class_defs_off      : 216 (0x0000d8)
+    D8 00 00 00 
+// parsed: offset 104, len 4: data_size           : 312
+    38 01 00 00 
+// parsed: offset 108, len 4: data_off            : 248 (0x0000f8)
+    F8 00 00 00 
+// 
+// string_ids:
+// parsed: offset 112, len 4: [0] string_data_off: 296 (0x000128) "<init>"
+    28 01 00 00 
+// parsed: offset 116, len 4: [1] string_data_off: 304 (0x000130) "C"
+    30 01 00 00 
+// parsed: offset 120, len 4: [2] string_data_off: 307 (0x000133) "Ldot/junit/opcodes/iget_char/d/T_iget_char_4;"
+    33 01 00 00 
+// parsed: offset 124, len 4: [3] string_data_off: 354 (0x000162) "Ljava/lang/Object;"
+    62 01 00 00 
+// parsed: offset 128, len 4: [4] string_data_off: 374 (0x000176) "T_iget_char_4.java"
+    76 01 00 00 
+// parsed: offset 132, len 4: [5] string_data_off: 394 (0x00018a) "V"
+    8A 01 00 00 
+// parsed: offset 136, len 4: [6] string_data_off: 397 (0x00018d) "i1"
+    8D 01 00 00 
+// parsed: offset 140, len 4: [7] string_data_off: 401 (0x000191) "run"
+    91 01 00 00 
+
+// type_ids:
+// parsed: offset 144, len 4: [0] descriptor_idx: 1 (0x000001) "C"
+    01 00 00 00 
+// parsed: offset 148, len 4: [1] descriptor_idx: 2 (0x000002) "Ldot/junit/opcodes/iget_char/d/T_iget_char_4;"
+    02 00 00 00 
+// parsed: offset 152, len 4: [2] descriptor_idx: 3 (0x000003) "Ljava/lang/Object;"
+    03 00 00 00 
+// parsed: offset 156, len 4: [3] descriptor_idx: 5 (0x000005) "V"
+    05 00 00 00 
+
+// proto_ids:
+// parsed: offset 160, len 12: [0] 
+//     shorty_idx: 1 (0x000001) "C"
+//     return_type_idx: 0 (0x000000) "C"
+//     parameters_off: 0 (0x000000)
+    01 00 00 00 00 00 00 00 00 00 00 00 
+// parsed: offset 172, len 12: [1] 
+//     shorty_idx: 5 (0x000005) "V"
+//     return_type_idx: 3 (0x000003) "V"
+//     parameters_off: 0 (0x000000)
+    05 00 00 00 03 00 00 00 00 00 00 00 
+
+// field_ids:
+// parsed: offset 184, len 8: [0] class_idx: 1 (0x000001)  type_idx: 0 (0x000000) name_idx: 6 (0x000006) "i1"
+    01 00 00 00 06 00 00 00 
+
+// methods_ids:
+// parsed: offset 192, len 8: [0] class_idx: 1 (0x000001)  proto_idx: 1 (0x000001) name_idx: 0 (0x000000) "<init>"
+    01 00 01 00 00 00 00 00 
+// parsed: offset 200, len 8: [1] class_idx: 1 (0x000001)  proto_idx: 0 (0x000000) name_idx: 7 (0x000007) "run"
+    01 00 00 00 07 00 00 00 
+// parsed: offset 208, len 8: [2] class_idx: 2 (0x000002)  proto_idx: 1 (0x000001) name_idx: 0 (0x000000) "<init>"
+    02 00 01 00 00 00 00 00 
+
+// class_defs:
+// parsed: offset 216, len 32: Class [0]
+//     class_idx: 1 "Ldot/junit/opcodes/iget_char/d/T_iget_char_4;"
+//     access_flags: 0x000001 (PUBLIC)
+//     superclass_idx: 2 "Ljava/lang/Object;"
+//     interfaces_off: 0 (0x000000)
+//     source_file_idx: 4 "T_iget_char_4.java"
+//     annotations_off: 0 (0x000000)
+//     class_data_off: 406 (0x000196)
+//     static_values_off: 0 (0x000000)
+    01 00 00 00 01 00 00 00 02 00 00 00 00 00 00 00 04 00 00 00 00 00 00 00 96 01 00 00 00 00 00 00 
+// data_section:
+// CODE_ITEM for "dot.junit.opcodes.iget_char.d.T_iget_char_4.<init>"
+    // parsed: offset 248, len 2: registers_size: 1
+        01 00 
+    // parsed: offset 250, len 2: ins_size: 1
+        01 00 
+    // parsed: offset 252, len 2: outs_size: 1
+        01 00 
+    // parsed: offset 254, len 2: tries_size: 0
+        00 00 
+    // parsed: offset 256, len 4: debug_info_off: 0 (0x000000)
+        00 00 00 00 
+    // parsed: offset 260, len 4: insns_size: 4
+        04 00 00 00 
+    // insns:
+        // parsed: offset 264, len 6: |0000: invoke-direct {v0}, Ljava/lang/Object;.<init>:()V // method@0002
+            70 10 02 00 00 00 
+        // parsed: offset 270, len 2: |0003: return-void
+            0E 00 
+    // tries: 
+    // handlers: 
+// CODE_ITEM for "dot.junit.opcodes.iget_char.d.T_iget_char_4.run"
+    // parsed: offset 272, len 2: registers_size: 3
+        03 00 
+    // parsed: offset 274, len 2: ins_size: 1
+        01 00 
+    // parsed: offset 276, len 2: outs_size: 0
+        00 00 
+    // parsed: offset 278, len 2: tries_size: 0
+        00 00 
+    // parsed: offset 280, len 4: debug_info_off: 0 (0x000000)
+        00 00 00 00 
+    // parsed: offset 284, len 4: insns_size: 3
+        03 00 00 00 
+    // insns:
+        // parsed: offset 288, len 4: |0000: iget-char v1, v2, Ldot/junit/opcodes/iget_char/d/T_iget_char_4;.i1:C // field@0000
+//@mod            57 21 00 00 
+            57 21 00 01 
+        // parsed: offset 292, len 2: |0002: return v1
+            0F 01 
+    // tries: 
+    // handlers: 
+// parsed: offset 294, len 2: PADDING
+    00 00 
+// parsed: offset 296, len 8: TYPE_STRING_DATA_ITEM [0] "<init>"
+    06 3C 69 6E 69 74 3E 00 
+// parsed: offset 304, len 3: TYPE_STRING_DATA_ITEM [1] "C"
+    01 43 00 
+// parsed: offset 307, len 47: TYPE_STRING_DATA_ITEM [2] "Ldot/junit/opcodes/iget_char/d/T_iget_char_4;"
+    2D 4C 64 6F 74 2F 6A 75 6E 69 74 2F 6F 70 63 6F 64 65 73 2F 69 67 65 74 5F 63 68 61 72 2F 64 2F 54 5F 69 67 65 74 5F 63 68 61 72 5F 34 3B 00 
+// parsed: offset 354, len 20: TYPE_STRING_DATA_ITEM [3] "Ljava/lang/Object;"
+    12 4C 6A 61 76 61 2F 6C 61 6E 67 2F 4F 62 6A 65 63 74 3B 00 
+// parsed: offset 374, len 20: TYPE_STRING_DATA_ITEM [4] "T_iget_char_4.java"
+    12 54 5F 69 67 65 74 5F 63 68 61 72 5F 34 2E 6A 61 76 61 00 
+// parsed: offset 394, len 3: TYPE_STRING_DATA_ITEM [5] "V"
+    01 56 00 
+// parsed: offset 397, len 4: TYPE_STRING_DATA_ITEM [6] "i1"
+    02 69 31 00 
+// parsed: offset 401, len 5: TYPE_STRING_DATA_ITEM [7] "run"
+    03 72 75 6E 00 
+// CLASS_DATA_ITEM for class [0] "Ldot/junit/opcodes/iget_char/d/T_iget_char_4;"
+    // parsed: offset 406, len 1: static_fields_size: 0
+        00 
+    // parsed: offset 407, len 1: instance_fields_size: 1
+        01 
+    // parsed: offset 408, len 1: direct_methods_size: 1
+        01 
+    // parsed: offset 409, len 1: virtual_methods_size: 1
+        01 
+    // static_fields:
+    // instance_fields:
+        // field [0]:
+            // parsed: offset 410, len 1: field_idx_diff: 0 (field_idx: 0 "i1")
+                00 
+            // parsed: offset 411, len 1: access_flags: 0x000001 (PUBLIC)
+                01 
+    // direct_methods:
+        // method [0]:
+            // parsed: offset 412, len 1: method_idx_diff: 0 (method_idx: 0 "<init>")
+                00 
+            // parsed: offset 413, len 3: access_flags: 0x010001 (PUBLIC CONSTRUCTOR)
+                81 80 04 
+            // parsed: offset 416, len 2: code_off: 248 (0x0000f8)
+                F8 01 
+    // virtual_methods:
+        // method [0]:
+            // parsed: offset 418, len 1: method_idx_diff: 1 (method_idx: 1 "run")
+                01 
+            // parsed: offset 419, len 1: access_flags: 0x000001 (PUBLIC)
+                01 
+            // parsed: offset 420, len 2: code_off: 272 (0x000110)
+                90 02 
+// parsed: offset 422, len 2: PADDING
+    00 00 
+// map_list:
+    // parsed: offset 424, len 4: size: 11
+        0B 00 00 00 
+    // parsed: offset 428, len 12: [0] type: 0x0000 TYPE_HEADER_ITEM
+    //      unused: 0
+    //      size: 1
+    //      offset: 0 (0x000000)
+        00 00 00 00 01 00 00 00 00 00 00 00 
+    // parsed: offset 440, len 12: [1] type: 0x0001 TYPE_STRING_ID_ITEM
+    //      unused: 0
+    //      size: 8
+    //      offset: 112 (0x000070)
+        01 00 00 00 08 00 00 00 70 00 00 00 
+    // parsed: offset 452, len 12: [2] type: 0x0002 TYPE_TYPE_ID_ITEM
+    //      unused: 0
+    //      size: 4
+    //      offset: 144 (0x000090)
+        02 00 00 00 04 00 00 00 90 00 00 00 
+    // parsed: offset 464, len 12: [3] type: 0x0003 TYPE_PROTO_ID_ITEM
+    //      unused: 0
+    //      size: 2
+    //      offset: 160 (0x0000a0)
+        03 00 00 00 02 00 00 00 A0 00 00 00 
+    // parsed: offset 476, len 12: [4] type: 0x0004 TYPE_FIELD_ID_ITEM
+    //      unused: 0
+    //      size: 1
+    //      offset: 184 (0x0000b8)
+        04 00 00 00 01 00 00 00 B8 00 00 00 
+    // parsed: offset 488, len 12: [5] type: 0x0005 TYPE_METHOD_ID_ITEM
+    //      unused: 0
+    //      size: 3
+    //      offset: 192 (0x0000c0)
+        05 00 00 00 03 00 00 00 C0 00 00 00 
+    // parsed: offset 500, len 12: [6] type: 0x0006 TYPE_CLASS_DEF_ITEM
+    //      unused: 0
+    //      size: 1
+    //      offset: 216 (0x0000d8)
+        06 00 00 00 01 00 00 00 D8 00 00 00 
+    // parsed: offset 512, len 12: [7] type: 0x2001 TYPE_CODE_ITEM
+    //      unused: 0
+    //      size: 2
+    //      offset: 248 (0x0000f8)
+        01 20 00 00 02 00 00 00 F8 00 00 00 
+    // parsed: offset 524, len 12: [8] type: 0x2002 TYPE_STRING_DATA_ITEM
+    //      unused: 0
+    //      size: 8
+    //      offset: 296 (0x000128)
+        02 20 00 00 08 00 00 00 28 01 00 00 
+    // parsed: offset 536, len 12: [9] type: 0x2000 TYPE_CLASS_DATA_ITEM
+    //      unused: 0
+    //      size: 1
+    //      offset: 406 (0x000196)
+        00 20 00 00 01 00 00 00 96 01 00 00 
+    // parsed: offset 548, len 12: [10] type: 0x1000 TYPE_MAP_LIST
+    //      unused: 0
+    //      size: 1
+    //      offset: 424 (0x0001a8)
+        00 10 00 00 01 00 00 00 A8 01 00 00 
diff --git a/tools/vm-tests-tf/src/dot/junit/opcodes/iget_char/d/T_iget_char_5.d b/tools/vm-tests-tf/src/dot/junit/opcodes/iget_char/d/T_iget_char_5.d
new file mode 100644
index 0000000..534412f
--- /dev/null
+++ b/tools/vm-tests-tf/src/dot/junit/opcodes/iget_char/d/T_iget_char_5.d
@@ -0,0 +1,35 @@
+; Copyright (C) 2008 The Android Open Source Project
+;
+; Licensed under the Apache License, Version 2.0 (the "License");
+; you may not use this file except in compliance with the License.
+; You may obtain a copy of the License at
+;
+;      http://www.apache.org/licenses/LICENSE-2.0
+;
+; Unless required by applicable law or agreed to in writing, software
+; distributed under the License is distributed on an "AS IS" BASIS,
+; WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+; See the License for the specific language governing permissions and
+; limitations under the License.
+
+.source T_iget_char_5.java
+.class public dot.junit.opcodes.iget_char.d.T_iget_char_5
+.super java/lang/Object
+
+.field public static i1 C
+
+.method public <init>()V
+.limit regs 4
+
+       invoke-direct {v3}, java/lang/Object/<init>()V
+       return-void
+.end method
+
+.method public run()C
+.limit regs 3
+
+       iget-char v1, v2, dot.junit.opcodes.iget_char.d.T_iget_char_5.i1 C
+       return v1
+.end method
+
+
diff --git a/tools/vm-tests-tf/src/dot/junit/opcodes/iget_char/d/T_iget_char_5.java b/tools/vm-tests-tf/src/dot/junit/opcodes/iget_char/d/T_iget_char_5.java
new file mode 100644
index 0000000..4975e76
--- /dev/null
+++ b/tools/vm-tests-tf/src/dot/junit/opcodes/iget_char/d/T_iget_char_5.java
@@ -0,0 +1,24 @@
+/*
+ * Copyright (C) 2010 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package dot.junit.opcodes.iget_char.d;
+
+public class T_iget_char_5 {
+
+    public char run() {
+        return 0;
+    }
+}
diff --git a/tools/vm-tests-tf/src/dot/junit/opcodes/iget_char/d/T_iget_char_6.d b/tools/vm-tests-tf/src/dot/junit/opcodes/iget_char/d/T_iget_char_6.d
new file mode 100644
index 0000000..0d208b3
--- /dev/null
+++ b/tools/vm-tests-tf/src/dot/junit/opcodes/iget_char/d/T_iget_char_6.d
@@ -0,0 +1,37 @@
+; Copyright (C) 2008 The Android Open Source Project
+;
+; Licensed under the Apache License, Version 2.0 (the "License");
+; you may not use this file except in compliance with the License.
+; You may obtain a copy of the License at
+;
+;      http://www.apache.org/licenses/LICENSE-2.0
+;
+; Unless required by applicable law or agreed to in writing, software
+; distributed under the License is distributed on an "AS IS" BASIS,
+; WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+; See the License for the specific language governing permissions and
+; limitations under the License.
+
+.source T_iget_char_6.java
+.class public dot.junit.opcodes.iget_char.d.T_iget_char_6
+.super java/lang/Object
+
+
+.method public <init>()V
+.limit regs 1
+
+       invoke-direct {v0}, java/lang/Object/<init>()V
+       return-void
+.end method
+
+.method public run()C
+.limit regs 3
+
+       new-instance v0, Ldot/junit/opcodes/iget_char/TestStubs;
+       invoke-direct {v0}, dot/junit/opcodes/iget_char/TestStubs/<init>()V
+
+       iget-char v1, v0, dot.junit.opcodes.iget_char.TestStubs.TestStubField C
+       return v1
+.end method
+
+
diff --git a/tools/vm-tests-tf/src/dot/junit/opcodes/iget_char/d/T_iget_char_6.java b/tools/vm-tests-tf/src/dot/junit/opcodes/iget_char/d/T_iget_char_6.java
new file mode 100644
index 0000000..8be8c2b
--- /dev/null
+++ b/tools/vm-tests-tf/src/dot/junit/opcodes/iget_char/d/T_iget_char_6.java
@@ -0,0 +1,24 @@
+/*
+ * Copyright (C) 2010 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package dot.junit.opcodes.iget_char.d;
+
+public class T_iget_char_6 {
+
+    public char run() {
+        return 0;
+    }
+}
diff --git a/tools/vm-tests-tf/src/dot/junit/opcodes/iget_char/d/T_iget_char_7.d b/tools/vm-tests-tf/src/dot/junit/opcodes/iget_char/d/T_iget_char_7.d
new file mode 100644
index 0000000..b2ca2ce
--- /dev/null
+++ b/tools/vm-tests-tf/src/dot/junit/opcodes/iget_char/d/T_iget_char_7.d
@@ -0,0 +1,33 @@
+; Copyright (C) 2008 The Android Open Source Project
+;
+; Licensed under the Apache License, Version 2.0 (the "License");
+; you may not use this file except in compliance with the License.
+; You may obtain a copy of the License at
+;
+;      http://www.apache.org/licenses/LICENSE-2.0
+;
+; Unless required by applicable law or agreed to in writing, software
+; distributed under the License is distributed on an "AS IS" BASIS,
+; WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+; See the License for the specific language governing permissions and
+; limitations under the License.
+
+.source T_iget_char_7.java
+.class public dot.junit.opcodes.iget_char.d.T_iget_char_7
+.super java/lang/Object
+
+.method public <init>()V
+.limit regs 1
+
+       invoke-direct {v0}, java/lang/Object/<init>()V
+       return-void
+.end method
+
+.method public run()C
+.limit regs 3
+
+       iget-char v1, v2, dot.junit.opcodes.iget_char.d.T_iget_char_7no_class.i1 C
+       return v1
+.end method
+
+
diff --git a/tools/vm-tests-tf/src/dot/junit/opcodes/iget_char/d/T_iget_char_7.java b/tools/vm-tests-tf/src/dot/junit/opcodes/iget_char/d/T_iget_char_7.java
new file mode 100644
index 0000000..4ca80d7
--- /dev/null
+++ b/tools/vm-tests-tf/src/dot/junit/opcodes/iget_char/d/T_iget_char_7.java
@@ -0,0 +1,24 @@
+/*
+ * Copyright (C) 2010 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package dot.junit.opcodes.iget_char.d;
+
+public class T_iget_char_7 {
+
+    public char run() {
+        return 0;
+    }
+}
diff --git a/tools/vm-tests-tf/src/dot/junit/opcodes/iget_char/d/T_iget_char_8.d b/tools/vm-tests-tf/src/dot/junit/opcodes/iget_char/d/T_iget_char_8.d
new file mode 100644
index 0000000..7a75de0
--- /dev/null
+++ b/tools/vm-tests-tf/src/dot/junit/opcodes/iget_char/d/T_iget_char_8.d
@@ -0,0 +1,33 @@
+; Copyright (C) 2008 The Android Open Source Project
+;
+; Licensed under the Apache License, Version 2.0 (the "License");
+; you may not use this file except in compliance with the License.
+; You may obtain a copy of the License at
+;
+;      http://www.apache.org/licenses/LICENSE-2.0
+;
+; Unless required by applicable law or agreed to in writing, software
+; distributed under the License is distributed on an "AS IS" BASIS,
+; WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+; See the License for the specific language governing permissions and
+; limitations under the License.
+
+.source T_iget_char_8.java
+.class public dot.junit.opcodes.iget_char.d.T_iget_char_8
+.super java/lang/Object
+
+.method public <init>()V
+.limit regs 1
+
+       invoke-direct {v0}, java/lang/Object/<init>()V
+       return-void
+.end method
+
+.method public run()C
+.limit regs 3
+
+       iget-char v1, v2, dot.junit.opcodes.iget_char.d.T_iget_char_8.i1N C
+       return v1
+.end method
+
+
diff --git a/tools/vm-tests-tf/src/dot/junit/opcodes/iget_char/d/T_iget_char_8.java b/tools/vm-tests-tf/src/dot/junit/opcodes/iget_char/d/T_iget_char_8.java
new file mode 100644
index 0000000..49d35c6
--- /dev/null
+++ b/tools/vm-tests-tf/src/dot/junit/opcodes/iget_char/d/T_iget_char_8.java
@@ -0,0 +1,24 @@
+/*
+ * Copyright (C) 2010 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package dot.junit.opcodes.iget_char.d;
+
+public class T_iget_char_8 {
+
+    public char run() {
+        return 0;
+    }
+}
diff --git a/tools/vm-tests-tf/src/dot/junit/opcodes/iget_char/d/T_iget_char_9.d b/tools/vm-tests-tf/src/dot/junit/opcodes/iget_char/d/T_iget_char_9.d
new file mode 100644
index 0000000..70eca20
--- /dev/null
+++ b/tools/vm-tests-tf/src/dot/junit/opcodes/iget_char/d/T_iget_char_9.d
@@ -0,0 +1,36 @@
+; Copyright (C) 2008 The Android Open Source Project
+;
+; Licensed under the Apache License, Version 2.0 (the "License");
+; you may not use this file except in compliance with the License.
+; You may obtain a copy of the License at
+;
+;      http://www.apache.org/licenses/LICENSE-2.0
+;
+; Unless required by applicable law or agreed to in writing, software
+; distributed under the License is distributed on an "AS IS" BASIS,
+; WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+; See the License for the specific language governing permissions and
+; limitations under the License.
+
+.source T_iget_char_9.java
+.class public dot.junit.opcodes.iget_char.d.T_iget_char_9
+.super java/lang/Object
+
+.field public  i1 C
+
+.method public <init>()V
+.limit regs 2
+
+       invoke-direct {v1}, java/lang/Object/<init>()V
+       return-void
+.end method
+
+.method public run()C
+.limit regs 3
+
+       const v0, 0    
+       iget-char v1, v0, dot.junit.opcodes.iget_char.d.T_iget_char_9.i1 C
+       return v1
+.end method
+
+
diff --git a/tools/vm-tests-tf/src/dot/junit/opcodes/iget_char/d/T_iget_char_9.java b/tools/vm-tests-tf/src/dot/junit/opcodes/iget_char/d/T_iget_char_9.java
new file mode 100644
index 0000000..6bbe1ca
--- /dev/null
+++ b/tools/vm-tests-tf/src/dot/junit/opcodes/iget_char/d/T_iget_char_9.java
@@ -0,0 +1,24 @@
+/*
+ * Copyright (C) 2008 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package dot.junit.opcodes.iget_char.d;
+
+public class T_iget_char_9 {
+    
+    public char run(){
+        return 0;
+    }
+}