Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion cmake/BCCompiler.cmake
Original file line number Diff line number Diff line change
Expand Up @@ -19,7 +19,7 @@ set(DEFAULT_BC_COMPILER_FLAGS
-ffreestanding -fno-common -fno-builtin -fno-exceptions -fno-rtti
-fno-asynchronous-unwind-tables -Wno-unneeded-internal-declaration
-Wno-unused-function -Wgnu-inline-cpp-without-extern
-Wno-pass-failed=transform-warning
-Wno-pass-failed=transform-warning -Wno-packed-non-pod
-std=c++17
)

Expand Down
4 changes: 2 additions & 2 deletions include/remill/Arch/Runtime/Intrinsics.h
Original file line number Diff line number Diff line change
Expand Up @@ -47,7 +47,7 @@ extern "C" {
[[gnu::used]] extern float64_t __remill_read_memory_f64(Memory *, addr_t);

[[gnu::used]] extern Memory *__remill_read_memory_f80(Memory *, addr_t,
native_float80_t &);
float80_t &);

[[gnu::used]] extern float128_t __remill_read_memory_f128(Memory *, addr_t);

Expand All @@ -58,7 +58,7 @@ extern "C" {
float64_t);

[[gnu::used]] extern Memory *
__remill_write_memory_f80(Memory *, addr_t, const native_float80_t &);
__remill_write_memory_f80(Memory *, addr_t, const float80_t &);

[[gnu::used]] extern Memory *__remill_write_memory_f128(Memory *, addr_t,
float128_t);
Expand Down
4 changes: 2 additions & 2 deletions include/remill/Arch/Runtime/Operators.h
Original file line number Diff line number Diff line change
Expand Up @@ -173,13 +173,13 @@ MAKE_MREAD(64, 64, float, f64)
#undef MAKE_MREAD

ALWAYS_INLINE static float80_t _Read(Memory *&memory, Mn<float80_t> op) {
native_float80_t val;
float80_t val;
memory = __remill_read_memory_f80(memory, op.addr, val);
return val;
}

ALWAYS_INLINE static float80_t _Read(Memory *&memory, MnW<float80_t> op) {
native_float80_t val;
float80_t val;
memory = __remill_read_memory_f80(memory, op.addr, val);
return val;
}
Expand Down
8 changes: 4 additions & 4 deletions tests/AArch64/Run.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -147,14 +147,14 @@ MAKE_RW_FP_MEMORY(64)
MAKE_RW_FP_MEMORY(128)

NEVER_INLINE Memory *__remill_read_memory_f80(Memory *, addr_t addr,
native_float80_t &out) {
out = AccessMemory<native_float80_t>(addr);
float80_t &out) {
out = AccessMemory<float80_t>(addr);
return nullptr;
}

NEVER_INLINE Memory *__remill_write_memory_f80(Memory *, addr_t addr,
const native_float80_t &in) {
AccessMemory<native_float80_t>(addr) = in;
const float80_t &in) {
AccessMemory<float80_t>(addr) = in;
return nullptr;
}

Expand Down
8 changes: 4 additions & 4 deletions tests/X86/Run.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -186,14 +186,14 @@ MAKE_RW_FP_MEMORY(64)
MAKE_RW_FP_MEMORY(128)

NEVER_INLINE Memory *__remill_read_memory_f80(Memory *, addr_t addr,
native_float80_t &out) {
out = AccessMemory<native_float80_t>(addr);
float80_t &out) {
out = AccessMemory<float80_t>(addr);
return nullptr;
}

NEVER_INLINE Memory *__remill_write_memory_f80(Memory *, addr_t addr,
const native_float80_t &in) {
AccessMemory<native_float80_t>(addr) = in;
const float80_t &in) {
AccessMemory<float80_t>(addr) = in;
return nullptr;
}

Expand Down
9 changes: 9 additions & 0 deletions tests/X86/X87/FLD.S
Original file line number Diff line number Diff line change
Expand Up @@ -27,6 +27,15 @@ TEST_INPUTS(TEST_INPUTS_MMX_QWORD)
fld QWORD PTR [rsp]
TEST_END_64

TEST_BEGIN_64(FLDm80, 1)
TEST_INPUTS(0x0123456789ABCDEF)
sub rsp, 16
mov QWORD PTR [rsp], ARG1_64
mov WORD PTR [rsp + 8], 0x1337
fld TBYTE PTR [rsp]
add rsp, 16
TEST_END_64

TEST_BEGIN_64(FLDst0, 1)
TEST_INPUTS(TEST_INPUTS_MMX_QWORD)
push ARG1_64
Expand Down
13 changes: 13 additions & 0 deletions tests/X86/X87/FST.S
Original file line number Diff line number Diff line change
Expand Up @@ -78,6 +78,19 @@ FST_INPUTS
fstp QWORD PTR [rsp]
TEST_END_64

TEST_BEGIN_64(FSTPm80, 1)
TEST_INPUTS(0x0123456789ABCDEF)
sub rsp, 16
mov QWORD PTR [rsp], ARG1_64
mov WORD PTR [rsp + 8], 0x1337
fld TBYTE PTR [rsp]
mov WORD PTR [rsp + 8], 0x0
fstp TBYTE PTR [rsp]
mov rax, QWORD PTR [rsp]
movzx rbx, WORD PTR [rsp + 8]
add rsp, 16
TEST_END_64

TEST_BEGIN_64(FSTPst, 1)
FST_INPUTS

Expand Down
Loading