WebKit Bugzilla
New
Browse
Log In
×
Sign in with GitHub
or
Remember my login
Create Account
·
Forgot Password
Forgotten password account recovery
RESOLVED FIXED
Bug 97243
MIPS store8 functions
https://bugs.webkit.org/show_bug.cgi?id=97243
Summary
MIPS store8 functions
Balazs Kilvady
Reported
2012-09-20 11:53:28 PDT
store8 functions added to MacroAssemblerMIPS.h and low level operations to MIPSAssembler.h. To be able to compile the master branch for MIPS the or32 patch from Chao-Ying Fu (
https://bugs.webkit.org/show_bug.cgi?id=97157
) also must be applied.
Attachments
MIPS store8 functions
(4.49 KB, text/plain)
2012-09-20 11:58 PDT
,
Balazs Kilvady
barraclough
: review+
webkit.review.bot
: commit-queue-
Details
MIPS store8 functions
(5.63 KB, text/plain)
2012-09-21 02:07 PDT
,
Balazs Kilvady
no flags
Details
MIPS store8 functions
(5.45 KB, patch)
2012-09-21 02:15 PDT
,
Balazs Kilvady
no flags
Details
Formatted Diff
Diff
Show Obsolete
(2)
View All
Add attachment
proposed patch, testcase, etc.
Balazs Kilvady
Comment 1
2012-09-20 11:58:33 PDT
Created
attachment 164959
[details]
MIPS store8 functions
WebKit Review Bot
Comment 2
2012-09-21 00:55:05 PDT
Comment on
attachment 164959
[details]
MIPS store8 functions Rejecting
attachment 164959
[details]
from commit-queue. Failed to run "['/mnt/git/webkit-commit-queue/Tools/Scripts/webkit-patch', '--status-host=queues.webkit.org', '-..." exit_code: 2 Last 500 characters of output: Kit/chromium/third_party/yasm/source/patched-yasm --revision 154708 --non-interactive --force --accept theirs-conflict --ignore-externals' in '/mnt/git/webkit-commit-queue/Source/WebKit/chromium' 51>At revision 154708. ________ running '/usr/bin/python tools/clang/scripts/update.py --mac-only' in '/mnt/git/webkit-commit-queue/Source/WebKit/chromium' ________ running '/usr/bin/python gyp_webkit' in '/mnt/git/webkit-commit-queue/Source/WebKit/chromium' Updating webkit projects from gyp files... Full output:
http://queues.webkit.org/results/13948513
Balazs Kilvady
Comment 3
2012-09-21 02:05:57 PDT
Comment on
attachment 164959
[details]
MIPS store8 functions
>diff --git a/Source/JavaScriptCore/assembler/MIPSAssembler.h b/Source/JavaScriptCore/assembler/MIPSAssembler.h >index 65307d9..d3f8af9 100644 >--- a/Source/JavaScriptCore/assembler/MIPSAssembler.h >+++ b/Source/JavaScriptCore/assembler/MIPSAssembler.h >@@ -405,6 +405,18 @@ public: > loadDelayNop(); > } > >+ void sb(RegisterID rt, RegisterID rs, int offset) >+ { >+ emitInst(0xa0000000 | (rt << OP_SH_RT) | (rs << OP_SH_RS) >+ | (offset & 0xffff)); >+ } >+ >+ void sh(RegisterID rt, RegisterID rs, int offset) >+ { >+ emitInst(0xa4000000 | (rt << OP_SH_RT) | (rs << OP_SH_RS) >+ | (offset & 0xffff)); >+ } >+ > void sw(RegisterID rt, RegisterID rs, int offset) > { > emitInst(0xac000000 | (rt << OP_SH_RT) | (rs << OP_SH_RS) >diff --git a/Source/JavaScriptCore/assembler/MacroAssemblerMIPS.h b/Source/JavaScriptCore/assembler/MacroAssemblerMIPS.h >index 8b3ce9f..cfd6a64 100644 >--- a/Source/JavaScriptCore/assembler/MacroAssemblerMIPS.h >+++ b/Source/JavaScriptCore/assembler/MacroAssemblerMIPS.h >@@ -779,6 +779,81 @@ public: > return dataLabel; > } > >+ void store8(RegisterID src, BaseIndex address) >+ { >+ if (address.offset >= -32768 && address.offset <= 32767 >+ && !m_fixedWidth) { >+ /* >+ sll addrTemp, address.index, address.scale >+ addu addrTemp, addrTemp, address.base >+ sb src, address.offset(addrTemp) >+ */ >+ m_assembler.sll(addrTempRegister, address.index, address.scale); >+ m_assembler.addu(addrTempRegister, addrTempRegister, address.base); >+ m_assembler.sb(src, addrTempRegister, address.offset); >+ } else { >+ /* >+ sll addrTemp, address.index, address.scale >+ addu addrTemp, addrTemp, address.base >+ lui immTemp, (address.offset + 0x8000) >> 16 >+ addu addrTemp, addrTemp, immTemp >+ sb src, (address.offset & 0xffff)(at) >+ */ >+ m_assembler.sll(addrTempRegister, address.index, address.scale); >+ m_assembler.addu(addrTempRegister, addrTempRegister, address.base); >+ m_assembler.lui(immTempRegister, (address.offset + 0x8000) >> 16); >+ m_assembler.addu(addrTempRegister, addrTempRegister, >+ immTempRegister); >+ m_assembler.sb(src, addrTempRegister, address.offset); >+ } >+ } >+ >+ void store8(TrustedImm32 imm, void* address) >+ { >+ /* >+ li immTemp, imm >+ li addrTemp, address >+ sb src, 0(addrTemp) >+ */ >+ if (!imm.m_value && !m_fixedWidth) { >+ move(TrustedImmPtr(address), addrTempRegister); >+ m_assembler.sb(MIPSRegisters::zero, addrTempRegister, 0); >+ } else { >+ move(imm, immTempRegister); >+ move(TrustedImmPtr(address), addrTempRegister); >+ m_assembler.sb(immTempRegister, addrTempRegister, 0); >+ } >+ } >+ >+ void store16(RegisterID src, BaseIndex address) >+ { >+ if (address.offset >= -32768 && address.offset <= 32767 >+ && !m_fixedWidth) { >+ /* >+ sll addrTemp, address.index, address.scale >+ addu addrTemp, addrTemp, address.base >+ sh src, address.offset(addrTemp) >+ */ >+ m_assembler.sll(addrTempRegister, address.index, address.scale); >+ m_assembler.addu(addrTempRegister, addrTempRegister, address.base); >+ m_assembler.sh(src, addrTempRegister, address.offset); >+ } else { >+ /* >+ sll addrTemp, address.index, address.scale >+ addu addrTemp, addrTemp, address.base >+ lui immTemp, (address.offset + 0x8000) >> 16 >+ addu addrTemp, addrTemp, immTemp >+ sh src, (address.offset & 0xffff)(at) >+ */ >+ m_assembler.sll(addrTempRegister, address.index, address.scale); >+ m_assembler.addu(addrTempRegister, addrTempRegister, address.base); >+ m_assembler.lui(immTempRegister, (address.offset + 0x8000) >> 16); >+ m_assembler.addu(addrTempRegister, addrTempRegister, >+ immTempRegister); >+ m_assembler.sh(src, addrTempRegister, address.offset); >+ } >+ } >+ > void store32(RegisterID src, ImplicitAddress address) > { > if (address.offset >= -32768 && address.offset <= 32767
Balazs Kilvady
Comment 4
2012-09-21 02:07:38 PDT
Created
attachment 165082
[details]
MIPS store8 functions
Balazs Kilvady
Comment 5
2012-09-21 02:15:45 PDT
Created
attachment 165085
[details]
MIPS store8 functions
Simon Hausmann
Comment 6
2012-09-24 05:31:55 PDT
Holger, do you know a bit of MIPS assembler to review this? :)
WebKit Review Bot
Comment 7
2012-09-24 08:05:06 PDT
Comment on
attachment 165085
[details]
MIPS store8 functions Clearing flags on attachment: 165085 Committed
r129367
: <
http://trac.webkit.org/changeset/129367
>
WebKit Review Bot
Comment 8
2012-09-24 08:05:10 PDT
All reviewed patches have been landed. Closing bug.
Note
You need to
log in
before you can comment on or make changes to this bug.
Top of Page
Format For Printing
XML
Clone This Bug