mirror of
https://github.com/corda/corda.git
synced 2025-01-24 13:28:07 +00:00
Merge branch 'wip' of oss.readytalk.com:/var/local/git/avian into wip
This commit is contained in:
commit
d7d7443688
15
makefile
15
makefile
@ -133,6 +133,21 @@ ifeq ($(arch),powerpc)
|
|||||||
asm = powerpc
|
asm = powerpc
|
||||||
pointer-size = 4
|
pointer-size = 4
|
||||||
endif
|
endif
|
||||||
|
ifeq ($(arch),arm)
|
||||||
|
lflags := -L/opt/crosstool/gcc-4.1.0-glibc-2.3.2/arm-unknown-linux-gnu/arm-unknown-linux-gnu/lib -L$(root)/arm/lib $(lflags)
|
||||||
|
cflags := -I/opt/crosstool/gcc-4.1.0-glibc-2.3.2/arm-unknown-linux-gnu/arm-unknown-linux-gnu/include -I$(root)/arm/include $(cflags)
|
||||||
|
|
||||||
|
asm = arm
|
||||||
|
object-arch = arm
|
||||||
|
object-format = elf32-littlearm
|
||||||
|
pointer-size = 4
|
||||||
|
cxx = arm-unknown-linux-gnu-g++
|
||||||
|
cc = arm-unknown-linux-gnu-gcc
|
||||||
|
ar = arm-unknown-linux-gnu-ar
|
||||||
|
ranlib = arm-unknown-linux-gnu-ranlib
|
||||||
|
objcopy = arm-unknown-linux-gnu-objcopy
|
||||||
|
strip = arm-unknown-linux-gnu-strip
|
||||||
|
endif
|
||||||
|
|
||||||
ifeq ($(platform),darwin)
|
ifeq ($(platform),darwin)
|
||||||
build-cflags = $(common-cflags) -fPIC -fvisibility=hidden -I$(src)
|
build-cflags = $(common-cflags) -fPIC -fvisibility=hidden -I$(src)
|
||||||
|
981
src/arm.cpp
981
src/arm.cpp
File diff suppressed because it is too large
Load Diff
@ -895,6 +895,12 @@ class Context {
|
|||||||
} else {
|
} else {
|
||||||
assert(t, size == 4);
|
assert(t, size == 4);
|
||||||
switch (op) {
|
switch (op) {
|
||||||
|
case Divide:
|
||||||
|
return local::getThunk(t, divideIntThunk);
|
||||||
|
|
||||||
|
case Remainder:
|
||||||
|
return local::getThunk(t, moduloIntThunk);
|
||||||
|
|
||||||
case FloatAdd:
|
case FloatAdd:
|
||||||
return local::getThunk(t, addFloatThunk);
|
return local::getThunk(t, addFloatThunk);
|
||||||
|
|
||||||
@ -2160,12 +2166,23 @@ divideLong(int64_t b, int64_t a)
|
|||||||
return a / b;
|
return a / b;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
int64_t
|
||||||
|
divideInt(int32_t b, int32_t a)
|
||||||
|
{
|
||||||
|
return a / b;
|
||||||
|
}
|
||||||
|
|
||||||
int64_t
|
int64_t
|
||||||
moduloLong(int64_t b, int64_t a)
|
moduloLong(int64_t b, int64_t a)
|
||||||
{
|
{
|
||||||
return a % b;
|
return a % b;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
int64_t
|
||||||
|
moduloInt(int32_t b, int32_t a) {
|
||||||
|
return a % b;
|
||||||
|
}
|
||||||
|
|
||||||
uint64_t
|
uint64_t
|
||||||
floatToDouble(int32_t a)
|
floatToDouble(int32_t a)
|
||||||
{
|
{
|
||||||
|
@ -25,7 +25,7 @@
|
|||||||
#include "unistd.h"
|
#include "unistd.h"
|
||||||
#include "pthread.h"
|
#include "pthread.h"
|
||||||
#include "signal.h"
|
#include "signal.h"
|
||||||
#include "ucontext.h"
|
#include "sys/ucontext.h"
|
||||||
#include "stdint.h"
|
#include "stdint.h"
|
||||||
#include "dirent.h"
|
#include "dirent.h"
|
||||||
|
|
||||||
|
@ -1073,10 +1073,7 @@ load(Context* c, unsigned srcSize, int base, int offset, int index,
|
|||||||
break;
|
break;
|
||||||
|
|
||||||
case 8: {
|
case 8: {
|
||||||
if (srcSize == 4 and dstSize == 8) {
|
if (dstSize == 8) {
|
||||||
load(c, 4, base, offset, NoRegister, 1, 4, dst, false, false);
|
|
||||||
moveRR(c, 4, dst, 8, dst);
|
|
||||||
} else if (srcSize == 8 and dstSize == 8) {
|
|
||||||
Assembler::Register dstHigh(dst->high);
|
Assembler::Register dstHigh(dst->high);
|
||||||
load(c, 4, base, offset, NoRegister, 1, 4, &dstHigh, false, false);
|
load(c, 4, base, offset, NoRegister, 1, 4, &dstHigh, false, false);
|
||||||
load(c, 4, base, offset + 4, NoRegister, 1, 4, dst, false, false);
|
load(c, 4, base, offset + 4, NoRegister, 1, 4, dst, false, false);
|
||||||
|
@ -23,7 +23,9 @@ THUNK(moduloFloat)
|
|||||||
THUNK(negateFloat)
|
THUNK(negateFloat)
|
||||||
THUNK(absoluteFloat)
|
THUNK(absoluteFloat)
|
||||||
THUNK(divideLong)
|
THUNK(divideLong)
|
||||||
|
THUNK(divideInt)
|
||||||
THUNK(moduloLong)
|
THUNK(moduloLong)
|
||||||
|
THUNK(moduloInt)
|
||||||
THUNK(floatToDouble)
|
THUNK(floatToDouble)
|
||||||
THUNK(floatToInt)
|
THUNK(floatToInt)
|
||||||
THUNK(floatToLong)
|
THUNK(floatToLong)
|
||||||
|
Loading…
Reference in New Issue
Block a user