summaryrefslogtreecommitdiffstats
path: root/src/3rdparty/webkit/JavaScriptCore/assembler/MacroAssemblerARM.h
diff options
context:
space:
mode:
authorJoão Abecasis <joao@abecasis.name>2009-11-05 15:18:52 (GMT)
committerJoão Abecasis <joao@abecasis.name>2009-11-05 15:18:52 (GMT)
commitad3e723c334d72b746979b284910ac9b698b2d0b (patch)
tree28fa320fcbd38938345f30817d75f19716c4e534 /src/3rdparty/webkit/JavaScriptCore/assembler/MacroAssemblerARM.h
parentc4d8d7fd35c8ac7fd2c14208e5e7ca0a35c101e1 (diff)
parent4cd683231190443e5243f66098c7322e3808a131 (diff)
downloadQt-ad3e723c334d72b746979b284910ac9b698b2d0b.zip
Qt-ad3e723c334d72b746979b284910ac9b698b2d0b.tar.gz
Qt-ad3e723c334d72b746979b284910ac9b698b2d0b.tar.bz2
Merge commit 'origin/4.6' into large-file-support
Diffstat (limited to 'src/3rdparty/webkit/JavaScriptCore/assembler/MacroAssemblerARM.h')
-rw-r--r--src/3rdparty/webkit/JavaScriptCore/assembler/MacroAssemblerARM.h9
1 files changed, 4 insertions, 5 deletions
diff --git a/src/3rdparty/webkit/JavaScriptCore/assembler/MacroAssemblerARM.h b/src/3rdparty/webkit/JavaScriptCore/assembler/MacroAssemblerARM.h
index aa8cbb0..7a72b06 100644
--- a/src/3rdparty/webkit/JavaScriptCore/assembler/MacroAssemblerARM.h
+++ b/src/3rdparty/webkit/JavaScriptCore/assembler/MacroAssemblerARM.h
@@ -65,6 +65,7 @@ public:
};
static const RegisterID stackPointerRegister = ARMRegisters::sp;
+ static const RegisterID linkRegister = ARMRegisters::lr;
static const Scale ScalePtr = TimesFour;
@@ -530,7 +531,7 @@ public:
void ret()
{
- pop(ARMRegisters::pc);
+ m_assembler.mov_r(ARMRegisters::pc, linkRegister);
}
void set32(Condition cond, RegisterID left, RegisterID right, RegisterID dest)
@@ -746,11 +747,9 @@ protected:
void prepareCall()
{
- ensureSpace(3 * sizeof(ARMWord), sizeof(ARMWord));
+ ensureSpace(2 * sizeof(ARMWord), sizeof(ARMWord));
- // S0 might be used for parameter passing
- m_assembler.add_r(ARMRegisters::S1, ARMRegisters::pc, ARMAssembler::OP2_IMM | 0x4);
- m_assembler.push_r(ARMRegisters::S1);
+ m_assembler.mov_r(linkRegister, ARMRegisters::pc);
}
void call32(RegisterID base, int32_t offset)