interpret.cc (continue1): Implement explicit dispatch table.
* interpret.cc (continue1): Implement explicit dispatch table. insn_target: Explicit interpreter switch table. SAVE_PC: New macro, moves pc saving code into instructions that require so. NEXT_INSN: New macro, replaces `goto next_insn' in all insns. PC_REGISTER_ASM: New macro. INLINE_SWITCH: New macro. Constrols dispatching strategy. opcode: Remove local variable. {i,l,f,d}{load,store}_{0,1,2,3}: Expand definitions. (POKEI): Use _Jv_word. (iinc): Use _Jv_word. (dupx): Change reference argument (sp) to pointer. (jvdump): Remove * interpret.cc: Remove instruction timing instrumentation. * java/lang/natClassLoader.cc (_Jv_PrepareCompiledClass): Changed comment. Don't use _Jv_ClassNameSamePackage. * gnu/gcj/util/path/{SearchPath,ZipFileEntry,DirectoryPathEntry, URLPathEntry, CacheEntry}: Removed. * Makefile.am (ordinary_java_source_files): Remove gnu/gcj/util/path package. (.java.lo): Rule removed. * Makefile.in: Rebuilt. From-SVN: r28777
This commit is contained in:
parent
ad69db4af5
commit
f7b4fb110a
6 changed files with 962 additions and 730 deletions
|
@ -1,3 +1,33 @@
|
||||||
|
1999-08-20 Kresten Krab Thorup <krab@samam.daimi.au.dk>
|
||||||
|
|
||||||
|
* interpret.cc (continue1): Implement explicit dispatch table.
|
||||||
|
insn_target: Explicit interpreter switch table.
|
||||||
|
SAVE_PC: New macro, moves pc saving code into instructions that
|
||||||
|
require so.
|
||||||
|
NEXT_INSN: New macro, replaces `goto next_insn' in all insns.
|
||||||
|
PC_REGISTER_ASM: New macro.
|
||||||
|
INLINE_SWITCH: New macro. Constrols dispatching strategy.
|
||||||
|
opcode: Remove local variable.
|
||||||
|
{i,l,f,d}{load,store}_{0,1,2,3}: Expand definitions.
|
||||||
|
(POKEI): Use _Jv_word.
|
||||||
|
(iinc): Use _Jv_word.
|
||||||
|
(dupx): Change reference argument (sp) to pointer.
|
||||||
|
(jvdump): Remove
|
||||||
|
|
||||||
|
* interpret.cc: Remove instruction timing instrumentation.
|
||||||
|
|
||||||
|
* java/lang/natClassLoader.cc (_Jv_PrepareCompiledClass): Changed
|
||||||
|
comment. Don't use _Jv_ClassNameSamePackage.
|
||||||
|
|
||||||
|
* gnu/gcj/util/path/{SearchPath,ZipFileEntry,DirectoryPathEntry,
|
||||||
|
URLPathEntry, CacheEntry}: Removed.
|
||||||
|
|
||||||
|
* Makefile.am (ordinary_java_source_files): Remove gnu/gcj/util/path
|
||||||
|
package.
|
||||||
|
(.java.lo): Rule removed.
|
||||||
|
|
||||||
|
* Makefile.in: Rebuilt.
|
||||||
|
|
||||||
1999-08-19 Tom Tromey <tromey@cygnus.com>
|
1999-08-19 Tom Tromey <tromey@cygnus.com>
|
||||||
|
|
||||||
* java/lang/natThread.cc (class locker): New class.
|
* java/lang/natThread.cc (class locker): New class.
|
||||||
|
|
|
@ -161,9 +161,6 @@ SUFFIXES = .class .java .h
|
||||||
.class.lo:
|
.class.lo:
|
||||||
$(GCJCOMPILE) -o $@ $<
|
$(GCJCOMPILE) -o $@ $<
|
||||||
|
|
||||||
.java.lo:
|
|
||||||
$(GCJCOMPILE) -o $@ $<
|
|
||||||
|
|
||||||
## This is GNU make specific. For the .o files in subdirs, use a
|
## This is GNU make specific. For the .o files in subdirs, use a
|
||||||
## special rule. The standard automake rule can't be overridden (this
|
## special rule. The standard automake rule can't be overridden (this
|
||||||
## is a bug in automake), and it also won't put the .o files into
|
## is a bug in automake), and it also won't put the .o files into
|
||||||
|
@ -484,12 +481,6 @@ built_java_source_files = java/lang/ConcreteProcess.java
|
||||||
ordinary_java_source_files = $(convert_source_files) \
|
ordinary_java_source_files = $(convert_source_files) \
|
||||||
gnu/gcj/runtime/MethodInvocation.java \
|
gnu/gcj/runtime/MethodInvocation.java \
|
||||||
gnu/gcj/runtime/VMClassLoader.java \
|
gnu/gcj/runtime/VMClassLoader.java \
|
||||||
gnu/gcj/util/path/SearchPath.java \
|
|
||||||
gnu/gcj/util/path/PathEntry.java \
|
|
||||||
gnu/gcj/util/path/DirectoryPathEntry.java \
|
|
||||||
gnu/gcj/util/path/ZipPathEntry.java \
|
|
||||||
gnu/gcj/util/path/URLPathEntry.java \
|
|
||||||
gnu/gcj/util/path/CacheEntry.java \
|
|
||||||
gnu/gcj/text/BaseBreakIterator.java \
|
gnu/gcj/text/BaseBreakIterator.java \
|
||||||
gnu/gcj/text/CharacterBreakIterator.java \
|
gnu/gcj/text/CharacterBreakIterator.java \
|
||||||
gnu/gcj/text/LineBreakIterator.java \
|
gnu/gcj/text/LineBreakIterator.java \
|
||||||
|
|
|
@ -298,12 +298,6 @@ built_java_source_files = java/lang/ConcreteProcess.java
|
||||||
ordinary_java_source_files = $(convert_source_files) \
|
ordinary_java_source_files = $(convert_source_files) \
|
||||||
gnu/gcj/runtime/MethodInvocation.java \
|
gnu/gcj/runtime/MethodInvocation.java \
|
||||||
gnu/gcj/runtime/VMClassLoader.java \
|
gnu/gcj/runtime/VMClassLoader.java \
|
||||||
gnu/gcj/util/path/SearchPath.java \
|
|
||||||
gnu/gcj/util/path/PathEntry.java \
|
|
||||||
gnu/gcj/util/path/DirectoryPathEntry.java \
|
|
||||||
gnu/gcj/util/path/ZipPathEntry.java \
|
|
||||||
gnu/gcj/util/path/URLPathEntry.java \
|
|
||||||
gnu/gcj/util/path/CacheEntry.java \
|
|
||||||
gnu/gcj/text/BaseBreakIterator.java \
|
gnu/gcj/text/BaseBreakIterator.java \
|
||||||
gnu/gcj/text/CharacterBreakIterator.java \
|
gnu/gcj/text/CharacterBreakIterator.java \
|
||||||
gnu/gcj/text/LineBreakIterator.java \
|
gnu/gcj/text/LineBreakIterator.java \
|
||||||
|
@ -746,13 +740,7 @@ DEP_FILES = .deps/boehm.P .deps/defineclass.P .deps/dtoa.P \
|
||||||
.deps/gnu/gcj/text/LocaleData_en_US.P \
|
.deps/gnu/gcj/text/LocaleData_en_US.P \
|
||||||
.deps/gnu/gcj/text/SentenceBreakIterator.P \
|
.deps/gnu/gcj/text/SentenceBreakIterator.P \
|
||||||
.deps/gnu/gcj/text/WordBreakIterator.P \
|
.deps/gnu/gcj/text/WordBreakIterator.P \
|
||||||
.deps/gnu/gcj/util/EnumerationChain.P \
|
.deps/gnu/gcj/util/EnumerationChain.P .deps/interpret.P \
|
||||||
.deps/gnu/gcj/util/path/CacheEntry.P \
|
|
||||||
.deps/gnu/gcj/util/path/DirectoryPathEntry.P \
|
|
||||||
.deps/gnu/gcj/util/path/PathEntry.P \
|
|
||||||
.deps/gnu/gcj/util/path/SearchPath.P \
|
|
||||||
.deps/gnu/gcj/util/path/URLPathEntry.P \
|
|
||||||
.deps/gnu/gcj/util/path/ZipPathEntry.P .deps/interpret.P \
|
|
||||||
.deps/java/io/BufferedInputStream.P \
|
.deps/java/io/BufferedInputStream.P \
|
||||||
.deps/java/io/BufferedOutputStream.P .deps/java/io/BufferedReader.P \
|
.deps/java/io/BufferedOutputStream.P .deps/java/io/BufferedReader.P \
|
||||||
.deps/java/io/BufferedWriter.P .deps/java/io/ByteArrayInputStream.P \
|
.deps/java/io/BufferedWriter.P .deps/java/io/ByteArrayInputStream.P \
|
||||||
|
@ -1087,25 +1075,6 @@ gnu/gcj/runtime/MethodInvocation.lo: \
|
||||||
.deps/gnu/gcj/runtime/.dirstamp
|
.deps/gnu/gcj/runtime/.dirstamp
|
||||||
gnu/gcj/runtime/VMClassLoader.lo: gnu/gcj/runtime/VMClassLoader.java \
|
gnu/gcj/runtime/VMClassLoader.lo: gnu/gcj/runtime/VMClassLoader.java \
|
||||||
gnu/gcj/runtime/.dirstamp .deps/gnu/gcj/runtime/.dirstamp
|
gnu/gcj/runtime/.dirstamp .deps/gnu/gcj/runtime/.dirstamp
|
||||||
gnu/gcj/util/path/.dirstamp:
|
|
||||||
@$(mkinstalldirs) gnu/gcj/util/path
|
|
||||||
@: > gnu/gcj/util/path/.dirstamp
|
|
||||||
.deps/gnu/gcj/util/path/.dirstamp:
|
|
||||||
@$(mkinstalldirs) .deps/gnu/gcj/util/path
|
|
||||||
@: > .deps/gnu/gcj/util/path/.dirstamp
|
|
||||||
gnu/gcj/util/path/SearchPath.lo: gnu/gcj/util/path/SearchPath.java \
|
|
||||||
gnu/gcj/util/path/.dirstamp .deps/gnu/gcj/util/path/.dirstamp
|
|
||||||
gnu/gcj/util/path/PathEntry.lo: gnu/gcj/util/path/PathEntry.java \
|
|
||||||
gnu/gcj/util/path/.dirstamp .deps/gnu/gcj/util/path/.dirstamp
|
|
||||||
gnu/gcj/util/path/DirectoryPathEntry.lo: \
|
|
||||||
gnu/gcj/util/path/DirectoryPathEntry.java \
|
|
||||||
gnu/gcj/util/path/.dirstamp .deps/gnu/gcj/util/path/.dirstamp
|
|
||||||
gnu/gcj/util/path/ZipPathEntry.lo: gnu/gcj/util/path/ZipPathEntry.java \
|
|
||||||
gnu/gcj/util/path/.dirstamp .deps/gnu/gcj/util/path/.dirstamp
|
|
||||||
gnu/gcj/util/path/URLPathEntry.lo: gnu/gcj/util/path/URLPathEntry.java \
|
|
||||||
gnu/gcj/util/path/.dirstamp .deps/gnu/gcj/util/path/.dirstamp
|
|
||||||
gnu/gcj/util/path/CacheEntry.lo: gnu/gcj/util/path/CacheEntry.java \
|
|
||||||
gnu/gcj/util/path/.dirstamp .deps/gnu/gcj/util/path/.dirstamp
|
|
||||||
gnu/gcj/text/.dirstamp:
|
gnu/gcj/text/.dirstamp:
|
||||||
@$(mkinstalldirs) gnu/gcj/text
|
@$(mkinstalldirs) gnu/gcj/text
|
||||||
@: > gnu/gcj/text/.dirstamp
|
@: > gnu/gcj/text/.dirstamp
|
||||||
|
@ -2214,9 +2183,6 @@ clean-local:
|
||||||
.class.lo:
|
.class.lo:
|
||||||
$(GCJCOMPILE) -o $@ $<
|
$(GCJCOMPILE) -o $@ $<
|
||||||
|
|
||||||
.java.lo:
|
|
||||||
$(GCJCOMPILE) -o $@ $<
|
|
||||||
|
|
||||||
$(nat_files): %.lo: %.cc
|
$(nat_files): %.lo: %.cc
|
||||||
$(LTCXXCOMPILE) -c -o $@ $<
|
$(LTCXXCOMPILE) -c -o $@ $<
|
||||||
|
|
||||||
|
|
|
@ -215,32 +215,30 @@ static const int op_jsr_w = 0xc9;
|
||||||
|
|
||||||
static const int op_putfield_1 = 0xca;
|
static const int op_putfield_1 = 0xca;
|
||||||
static const int op_putfield_2 = 0xcb;
|
static const int op_putfield_2 = 0xcb;
|
||||||
static const int op_putfield_4 = 0xcd;
|
static const int op_putfield_4 = 0xcc;
|
||||||
static const int op_putfield_8 = 0xce;
|
static const int op_putfield_8 = 0xcd;
|
||||||
static const int op_putfield_a = 0xcf;
|
static const int op_putfield_a = 0xce;
|
||||||
|
|
||||||
static const int op_putstatic_1 = 0xd0;
|
static const int op_putstatic_1 = 0xcf;
|
||||||
static const int op_putstatic_2 = 0xd1;
|
static const int op_putstatic_2 = 0xd0;
|
||||||
static const int op_putstatic_4 = 0xd2;
|
static const int op_putstatic_4 = 0xd1;
|
||||||
static const int op_putstatic_8 = 0xd3;
|
static const int op_putstatic_8 = 0xd2;
|
||||||
static const int op_putstatic_a = 0xd4;
|
static const int op_putstatic_a = 0xd3;
|
||||||
|
|
||||||
static const int op_getfield_1 = 0xd5;
|
static const int op_getfield_1 = 0xd4;
|
||||||
static const int op_getfield_2s = 0xd6;
|
static const int op_getfield_2s = 0xd5;
|
||||||
static const int op_getfield_2u = 0xd7;
|
static const int op_getfield_2u = 0xd6;
|
||||||
static const int op_getfield_4 = 0xd8;
|
static const int op_getfield_4 = 0xd7;
|
||||||
static const int op_getfield_8 = 0xd9;
|
static const int op_getfield_8 = 0xd8;
|
||||||
static const int op_getfield_a = 0xda;
|
static const int op_getfield_a = 0xd9;
|
||||||
|
|
||||||
|
static const int op_getstatic_1 = 0xda;
|
||||||
|
static const int op_getstatic_2s = 0xdb;
|
||||||
|
static const int op_getstatic_2u = 0xdc;
|
||||||
|
static const int op_getstatic_4 = 0xdd;
|
||||||
|
static const int op_getstatic_8 = 0xde;
|
||||||
|
static const int op_getstatic_a = 0xdf;
|
||||||
|
|
||||||
static const int op_getstatic_1 = 0xdb;
|
|
||||||
static const int op_getstatic_2s = 0xdc;
|
|
||||||
static const int op_getstatic_2u = 0xdd;
|
|
||||||
static const int op_getstatic_4 = 0xde;
|
|
||||||
static const int op_getstatic_8 = 0xdf;
|
|
||||||
static const int op_getstatic_a = 0xe0;
|
|
||||||
|
|
||||||
static const int op_invokefinal = 0xe1;
|
|
||||||
static const int op_invokevtable = 0xe2;
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
1556
libjava/interpret.cc
1556
libjava/interpret.cc
File diff suppressed because it is too large
Load diff
|
@ -220,9 +220,9 @@ static const int ALL_FLAGS = 0x7FF;
|
||||||
|
|
||||||
|
|
||||||
/** This function does class-preparation for compiled classes.
|
/** This function does class-preparation for compiled classes.
|
||||||
NOTE: This function replicates functionality from
|
NOTE: It contains replicated functionality from
|
||||||
_Jv_ResolvePoolEntry, and this is intentional, since that function
|
_Jv_ResolvePoolEntry, and this is intentional, since that function
|
||||||
is
|
lives in resolve.cc which is entirely conditionally compiled.
|
||||||
*/
|
*/
|
||||||
void
|
void
|
||||||
_Jv_PrepareCompiledClass(jclass klass)
|
_Jv_PrepareCompiledClass(jclass klass)
|
||||||
|
@ -253,17 +253,8 @@ _Jv_PrepareCompiledClass(jclass klass)
|
||||||
JvThrow (new java::lang::ClassNotFoundException (str));
|
JvThrow (new java::lang::ClassNotFoundException (str));
|
||||||
}
|
}
|
||||||
|
|
||||||
if ((found->accflags & PUBLIC) == PUBLIC
|
pool->data[index].clazz = found;
|
||||||
|| (_Jv_ClassNameSamePackage (found->name,
|
pool->tags[index] |= JV_CONSTANT_ResolvedFlag;
|
||||||
klass->name)))
|
|
||||||
{
|
|
||||||
pool->data[index].clazz = found;
|
|
||||||
pool->tags[index] |= JV_CONSTANT_ResolvedFlag;
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
JvThrow (new java::lang::IllegalAccessError (found->getName()));
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
else if (pool->tags[index] == JV_CONSTANT_String)
|
else if (pool->tags[index] == JV_CONSTANT_String)
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue