|Summary:||Split DFGJITCodeGenerator::callOperation methods.|
|Product:||WebKit||Reporter:||Gavin Barraclough <barraclough>|
|Version:||528+ (Nightly build)|
Description Gavin Barraclough 2011-10-25 22:34:08 PDT
The DFGJITCodeGenerator currently contains two sets of callOperation methods. One set works with the JSVALUE64 value representation and passes arguments in registers (suitable for use on x86-64), and one set works with the JSVALUE32_64 value representation and passes arguments in memory (suitable for use on x86). By refactoring out the representation and calling convention specific aspects of the code we can also configure the DFG JIT to operator on platforms that use the JSVALUE32_64 value representation but pass arguments in registers. On platforms supported by the JIT, the payload precedes the tag of a value in argument/result ordering, as such, in order to make the setupResults method generally applicable to return the results of a function that are returned in two registers, the ordering of arguments to this function has been reversed - as is the ordering of augments passed to setupArguments methods, with respect to the ordering with which they are passed in to callOperation. This inconsistency will be resolved in a later change when we combine the pairs of arguments passed into callOperation, such that the function signatures can be made consistent across the two value representations (the callOperation methods will be passed a reference to a struct representing the JSValue temporary, this will consist of two gprs on 32_64 and one on 64).
Comment 2 WebKit Review Bot 2011-10-25 22:47:21 PDT
Comment 3 Gavin Barraclough 2011-10-25 22:49:39 PDT
Created attachment 112452 [details] fix (make the style bot happy)
Comment 4 Eric Seidel (no email) 2011-12-21 14:30:31 PST
Attachment 112452 [details] was posted by a committer and has review+, assigning to Gavin Barraclough for commit.