Merge remote branch 'oss/master' into jdk7

This commit is contained in:
Joel Dice 2012-03-05 13:19:38 -07:00
commit 0f97089e22
5 changed files with 45 additions and 22 deletions

View File

@ -321,7 +321,7 @@ ifeq ($(platform),darwin)
ifeq ($(build-arch),powerpc) ifeq ($(build-arch),powerpc)
converter-cflags += -DOPPOSITE_ENDIAN converter-cflags += -DOPPOSITE_ENDIAN
endif endif
flags = -arch armv6 -isysroot \ flags = -arch armv7 -isysroot \
/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS5.0.sdk/ /Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS5.0.sdk/
openjdk-extra-cflags += $(flags) openjdk-extra-cflags += $(flags)
cflags += $(flags) cflags += $(flags)

View File

@ -38,7 +38,7 @@
#define CPU_SUBTYPE_I386_ALL 3 #define CPU_SUBTYPE_I386_ALL 3
#define CPU_SUBTYPE_X86_64_ALL CPU_SUBTYPE_I386_ALL #define CPU_SUBTYPE_X86_64_ALL CPU_SUBTYPE_I386_ALL
#define CPU_SUBTYPE_POWERPC_ALL 0 #define CPU_SUBTYPE_POWERPC_ALL 0
#define CPU_SUBTYPE_ARM_V6 6 #define CPU_SUBTYPE_ARM_V7 9
#if (BITS_PER_WORD == 64) #if (BITS_PER_WORD == 64)
# define Magic MH_MAGIC_64 # define Magic MH_MAGIC_64
@ -321,7 +321,7 @@ MAKE_NAME(writeMachO, BITS_PER_WORD, Object)
cpuSubType = CPU_SUBTYPE_POWERPC_ALL; cpuSubType = CPU_SUBTYPE_POWERPC_ALL;
} else if (strcmp(architecture, "arm") == 0) { } else if (strcmp(architecture, "arm") == 0) {
cpuType = CPU_TYPE_ARM; cpuType = CPU_TYPE_ARM;
cpuSubType = CPU_SUBTYPE_ARM_V6; cpuSubType = CPU_SUBTYPE_ARM_V7;
} else { } else {
fprintf(stderr, "unsupported architecture: %s\n", architecture); fprintf(stderr, "unsupported architecture: %s\n", architecture);
return false; return false;

View File

@ -435,6 +435,10 @@ makeCodeImage(Thread* t, Zone* zone, BootImage* image, uint8_t* code,
memberFields[memberIndex] = *f; memberFields[memberIndex] = *f;
while (targetMemberOffset % f->targetSize) {
++ targetMemberOffset;
}
targetMemberOffset += f->targetSize; targetMemberOffset += f->targetSize;
++ memberIndex; ++ memberIndex;

View File

@ -3058,7 +3058,7 @@ popResources(Thread* t)
} }
object object
makeByteArray(Thread* t, const char* format, va_list a, int size) makeByteArrayV(Thread* t, const char* format, va_list a, int size)
{ {
THREAD_RUNTIME_ARRAY(t, char, buffer, size); THREAD_RUNTIME_ARRAY(t, char, buffer, size);
@ -3080,7 +3080,7 @@ makeByteArray(Thread* t, const char* format, ...)
while (true) { while (true) {
va_list a; va_list a;
va_start(a, format); va_start(a, format);
object s = makeByteArray(t, format, a, size); object s = makeByteArrayV(t, format, a, size);
va_end(a); va_end(a);
if (s) { if (s) {
@ -3098,7 +3098,7 @@ makeString(Thread* t, const char* format, ...)
while (true) { while (true) {
va_list a; va_list a;
va_start(a, format); va_start(a, format);
object s = makeByteArray(t, format, a, size); object s = makeByteArrayV(t, format, a, size);
va_end(a); va_end(a);
if (s) { if (s) {

View File

@ -2216,7 +2216,7 @@ make(Thread* t, object class_)
} }
object object
makeByteArray(Thread* t, const char* format, va_list a, int size); makeByteArrayV(Thread* t, const char* format, va_list a, int size);
object object
makeByteArray(Thread* t, const char* format, ...); makeByteArray(Thread* t, const char* format, ...);
@ -2642,25 +2642,37 @@ makeThrowable
} }
inline object inline object
makeThrowable(Thread* t, Machine::Type type, const char* format, va_list a) makeThrowableV(Thread* t, Machine::Type type, const char* format, va_list a,
int size)
{ {
object s = makeByteArray(t, format, a); object s = makeByteArrayV(t, format, a, size);
object message = t->m->classpath->makeString if (s) {
(t, s, 0, byteArrayLength(t, s) - 1); object message = t->m->classpath->makeString
(t, s, 0, byteArrayLength(t, s) - 1);
return makeThrowable(t, type, message); return makeThrowable(t, type, message);
} else {
return 0;
}
} }
inline object inline object
makeThrowable(Thread* t, Machine::Type type, const char* format, ...) makeThrowable(Thread* t, Machine::Type type, const char* format, ...)
{ {
va_list a; int size = 256;
va_start(a, format); while (true) {
object r = makeThrowable(t, type, format, a); va_list a;
va_end(a); va_start(a, format);
object r = makeThrowableV(t, type, format, a, size);
va_end(a);
return r; if (r) {
return r;
} else {
size *= 2;
}
}
} }
void void
@ -2696,12 +2708,19 @@ throwNew
inline void NO_RETURN inline void NO_RETURN
throwNew(Thread* t, Machine::Type type, const char* format, ...) throwNew(Thread* t, Machine::Type type, const char* format, ...)
{ {
va_list a; int size = 256;
va_start(a, format); while (true) {
object r = makeThrowable(t, type, format, a); va_list a;
va_end(a); va_start(a, format);
object r = makeThrowableV(t, type, format, a, size);
va_end(a);
throw_(t, r); if (r) {
throw_(t, r);
} else {
size *= 2;
}
}
} }
object object