aboutsummaryrefslogtreecommitdiff
path: root/lib/ExecutionEngine/Interpreter/ExternalFunctions.cpp
diff options
context:
space:
mode:
authorJan Voung <jvoung@chromium.org>2012-10-29 10:09:06 -0700
committerJan Voung <jvoung@chromium.org>2012-10-29 10:09:06 -0700
commit9c175b57efc1897b3d801696a60a0b80992b0310 (patch)
treebf36aa297a85dea95f1d4bf6b5a950682907f9db /lib/ExecutionEngine/Interpreter/ExternalFunctions.cpp
parent5c897cf45a7b9df227e0c562c27454f56ba86c20 (diff)
Make sret register classes match for llc at -O0.
PointerTy() is i32, so we end up with EDI as the sret register. However, this means that the copy to RAX won't match. We could either copy to EAX to have the register classes match, or promote EDI to RDI then copy. It shouldn't matter much since only the lower 32-bits matter. The EDI -> EAX version is 2 bytes while the the RDI -> RAX version is 3 bytes, so let's pick the smaller one. Also augment existing test to tickle the NaCl triple. This is mostly to get the debugger test working (since the debugger test fails when optimization is turned on). BUG= http://code.google.com/p/nativeclient/issues/detail?id=3104 BUG= http://code.google.com/p/nativeclient/issues/detail?id=2544 TEST= ./scons bitcode=1 platform=x86-64 run_gdb_change_variable_test (with a hacked driver that use -O0 for llc) TEST= test/CodeGen/X86/fast-isel-x86-64.ll Review URL: https://codereview.chromium.org/11308022
Diffstat (limited to 'lib/ExecutionEngine/Interpreter/ExternalFunctions.cpp')
0 files changed, 0 insertions, 0 deletions