mirror of
git://gcc.gnu.org/git/gcc.git
synced 2025-03-23 00:41:25 +08:00
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
@ -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>
|
||||
|
||||
* java/lang/natThread.cc (class locker): New class.
|
||||
|
@ -161,9 +161,6 @@ SUFFIXES = .class .java .h
|
||||
.class.lo:
|
||||
$(GCJCOMPILE) -o $@ $<
|
||||
|
||||
.java.lo:
|
||||
$(GCJCOMPILE) -o $@ $<
|
||||
|
||||
## This is GNU make specific. For the .o files in subdirs, use a
|
||||
## 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
|
||||
@ -484,12 +481,6 @@ built_java_source_files = java/lang/ConcreteProcess.java
|
||||
ordinary_java_source_files = $(convert_source_files) \
|
||||
gnu/gcj/runtime/MethodInvocation.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/CharacterBreakIterator.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) \
|
||||
gnu/gcj/runtime/MethodInvocation.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/CharacterBreakIterator.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/SentenceBreakIterator.P \
|
||||
.deps/gnu/gcj/text/WordBreakIterator.P \
|
||||
.deps/gnu/gcj/util/EnumerationChain.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/gnu/gcj/util/EnumerationChain.P .deps/interpret.P \
|
||||
.deps/java/io/BufferedInputStream.P \
|
||||
.deps/java/io/BufferedOutputStream.P .deps/java/io/BufferedReader.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
|
||||
gnu/gcj/runtime/VMClassLoader.lo: gnu/gcj/runtime/VMClassLoader.java \
|
||||
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:
|
||||
@$(mkinstalldirs) gnu/gcj/text
|
||||
@: > gnu/gcj/text/.dirstamp
|
||||
@ -2214,9 +2183,6 @@ clean-local:
|
||||
.class.lo:
|
||||
$(GCJCOMPILE) -o $@ $<
|
||||
|
||||
.java.lo:
|
||||
$(GCJCOMPILE) -o $@ $<
|
||||
|
||||
$(nat_files): %.lo: %.cc
|
||||
$(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_2 = 0xcb;
|
||||
static const int op_putfield_4 = 0xcd;
|
||||
static const int op_putfield_8 = 0xce;
|
||||
static const int op_putfield_a = 0xcf;
|
||||
static const int op_putfield_4 = 0xcc;
|
||||
static const int op_putfield_8 = 0xcd;
|
||||
static const int op_putfield_a = 0xce;
|
||||
|
||||
static const int op_putstatic_1 = 0xd0;
|
||||
static const int op_putstatic_2 = 0xd1;
|
||||
static const int op_putstatic_4 = 0xd2;
|
||||
static const int op_putstatic_8 = 0xd3;
|
||||
static const int op_putstatic_a = 0xd4;
|
||||
static const int op_putstatic_1 = 0xcf;
|
||||
static const int op_putstatic_2 = 0xd0;
|
||||
static const int op_putstatic_4 = 0xd1;
|
||||
static const int op_putstatic_8 = 0xd2;
|
||||
static const int op_putstatic_a = 0xd3;
|
||||
|
||||
static const int op_getfield_1 = 0xd5;
|
||||
static const int op_getfield_2s = 0xd6;
|
||||
static const int op_getfield_2u = 0xd7;
|
||||
static const int op_getfield_4 = 0xd8;
|
||||
static const int op_getfield_8 = 0xd9;
|
||||
static const int op_getfield_a = 0xda;
|
||||
static const int op_getfield_1 = 0xd4;
|
||||
static const int op_getfield_2s = 0xd5;
|
||||
static const int op_getfield_2u = 0xd6;
|
||||
static const int op_getfield_4 = 0xd7;
|
||||
static const int op_getfield_8 = 0xd8;
|
||||
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.
|
||||
NOTE: This function replicates functionality from
|
||||
NOTE: It contains replicated functionality from
|
||||
_Jv_ResolvePoolEntry, and this is intentional, since that function
|
||||
is
|
||||
lives in resolve.cc which is entirely conditionally compiled.
|
||||
*/
|
||||
void
|
||||
_Jv_PrepareCompiledClass(jclass klass)
|
||||
@ -253,17 +253,8 @@ _Jv_PrepareCompiledClass(jclass klass)
|
||||
JvThrow (new java::lang::ClassNotFoundException (str));
|
||||
}
|
||||
|
||||
if ((found->accflags & PUBLIC) == PUBLIC
|
||||
|| (_Jv_ClassNameSamePackage (found->name,
|
||||
klass->name)))
|
||||
{
|
||||
pool->data[index].clazz = found;
|
||||
pool->tags[index] |= JV_CONSTANT_ResolvedFlag;
|
||||
}
|
||||
else
|
||||
{
|
||||
JvThrow (new java::lang::IllegalAccessError (found->getName()));
|
||||
}
|
||||
pool->data[index].clazz = found;
|
||||
pool->tags[index] |= JV_CONSTANT_ResolvedFlag;
|
||||
}
|
||||
|
||||
else if (pool->tags[index] == JV_CONSTANT_String)
|
||||
|
Loading…
x
Reference in New Issue
Block a user