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)
converter-cflags += -DOPPOSITE_ENDIAN
endif
flags = -arch armv6 -isysroot \
flags = -arch armv7 -isysroot \
/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS5.0.sdk/
openjdk-extra-cflags += $(flags)
cflags += $(flags)

View File

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

View File

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

View File

@ -3058,7 +3058,7 @@ popResources(Thread* t)
}
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);
@ -3080,7 +3080,7 @@ makeByteArray(Thread* t, const char* format, ...)
while (true) {
va_list a;
va_start(a, format);
object s = makeByteArray(t, format, a, size);
object s = makeByteArrayV(t, format, a, size);
va_end(a);
if (s) {
@ -3098,7 +3098,7 @@ makeString(Thread* t, const char* format, ...)
while (true) {
va_list a;
va_start(a, format);
object s = makeByteArray(t, format, a, size);
object s = makeByteArrayV(t, format, a, size);
va_end(a);
if (s) {

View File

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