OLD | NEW |
1 // Copyright 2013 the V8 project authors. All rights reserved. | 1 // Copyright 2013 the V8 project authors. All rights reserved. |
2 // Redistribution and use in source and binary forms, with or without | 2 // Redistribution and use in source and binary forms, with or without |
3 // modification, are permitted provided that the following conditions are | 3 // modification, are permitted provided that the following conditions are |
4 // met: | 4 // met: |
5 // | 5 // |
6 // * Redistributions of source code must retain the above copyright | 6 // * Redistributions of source code must retain the above copyright |
7 // notice, this list of conditions and the following disclaimer. | 7 // notice, this list of conditions and the following disclaimer. |
8 // * Redistributions in binary form must reproduce the above | 8 // * Redistributions in binary form must reproduce the above |
9 // copyright notice, this list of conditions and the following | 9 // copyright notice, this list of conditions and the following |
10 // disclaimer in the documentation and/or other materials provided | 10 // disclaimer in the documentation and/or other materials provided |
(...skipping 1909 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1920 | 1920 |
1921 // Load the initial map from the global function. The registers function and | 1921 // Load the initial map from the global function. The registers function and |
1922 // map can be the same, function is then overwritten. | 1922 // map can be the same, function is then overwritten. |
1923 void LoadGlobalFunctionInitialMap(Register function, | 1923 void LoadGlobalFunctionInitialMap(Register function, |
1924 Register map, | 1924 Register map, |
1925 Register scratch); | 1925 Register scratch); |
1926 | 1926 |
1927 CPURegList* TmpList() { return &tmp_list_; } | 1927 CPURegList* TmpList() { return &tmp_list_; } |
1928 CPURegList* FPTmpList() { return &fptmp_list_; } | 1928 CPURegList* FPTmpList() { return &fptmp_list_; } |
1929 | 1929 |
| 1930 static CPURegList DefaultTmpList(); |
| 1931 static CPURegList DefaultFPTmpList(); |
| 1932 |
1930 // Like printf, but print at run-time from generated code. | 1933 // Like printf, but print at run-time from generated code. |
1931 // | 1934 // |
1932 // The caller must ensure that arguments for floating-point placeholders | 1935 // The caller must ensure that arguments for floating-point placeholders |
1933 // (such as %e, %f or %g) are FPRegisters, and that arguments for integer | 1936 // (such as %e, %f or %g) are FPRegisters, and that arguments for integer |
1934 // placeholders are Registers. | 1937 // placeholders are Registers. |
1935 // | 1938 // |
1936 // A maximum of four arguments may be given to any single Printf call. The | 1939 // A maximum of four arguments may be given to any single Printf call. The |
1937 // arguments must be of the same type, but they do not need to have the same | 1940 // arguments must be of the same type, but they do not need to have the same |
1938 // size. | 1941 // size. |
1939 // | 1942 // |
1940 // The following registers cannot be printed: | 1943 // The following registers cannot be printed: |
1941 // StackPointer(), csp. | 1944 // StackPointer(), csp. |
1942 // | 1945 // |
1943 // This function automatically preserves caller-saved registers so that | 1946 // This function automatically preserves caller-saved registers so that |
1944 // calling code can use Printf at any point without having to worry about | 1947 // calling code can use Printf at any point without having to worry about |
1945 // corruption. The preservation mechanism generates a lot of code. If this is | 1948 // corruption. The preservation mechanism generates a lot of code. If this is |
1946 // a problem, preserve the important registers manually and then call | 1949 // a problem, preserve the important registers manually and then call |
1947 // PrintfNoPreserve. Callee-saved registers are not used by Printf, and are | 1950 // PrintfNoPreserve. Callee-saved registers are not used by Printf, and are |
1948 // implicitly preserved. | 1951 // implicitly preserved. |
1949 // | 1952 // |
1950 // Unlike many MacroAssembler functions, x8 and x9 are guaranteed to be | |
1951 // preserved, and can be printed. This allows Printf to be used during debug | |
1952 // code. | |
1953 // | |
1954 // This function assumes (and asserts) that the current stack pointer is | 1953 // This function assumes (and asserts) that the current stack pointer is |
1955 // callee-saved, not caller-saved. This is most likely the case anyway, as a | 1954 // callee-saved, not caller-saved. This is most likely the case anyway, as a |
1956 // caller-saved stack pointer doesn't make a lot of sense. | 1955 // caller-saved stack pointer doesn't make a lot of sense. |
1957 void Printf(const char * format, | 1956 void Printf(const char * format, |
1958 const CPURegister& arg0 = NoCPUReg, | 1957 const CPURegister& arg0 = NoCPUReg, |
1959 const CPURegister& arg1 = NoCPUReg, | 1958 const CPURegister& arg1 = NoCPUReg, |
1960 const CPURegister& arg2 = NoCPUReg, | 1959 const CPURegister& arg2 = NoCPUReg, |
1961 const CPURegister& arg3 = NoCPUReg); | 1960 const CPURegister& arg3 = NoCPUReg); |
1962 | 1961 |
1963 // Like Printf, but don't preserve any caller-saved registers, not even 'lr'. | 1962 // Like Printf, but don't preserve any caller-saved registers, not even 'lr'. |
(...skipping 345 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
2309 #error "Unsupported option" | 2308 #error "Unsupported option" |
2310 #define CODE_COVERAGE_STRINGIFY(x) #x | 2309 #define CODE_COVERAGE_STRINGIFY(x) #x |
2311 #define CODE_COVERAGE_TOSTRING(x) CODE_COVERAGE_STRINGIFY(x) | 2310 #define CODE_COVERAGE_TOSTRING(x) CODE_COVERAGE_STRINGIFY(x) |
2312 #define __FILE_LINE__ __FILE__ ":" CODE_COVERAGE_TOSTRING(__LINE__) | 2311 #define __FILE_LINE__ __FILE__ ":" CODE_COVERAGE_TOSTRING(__LINE__) |
2313 #define ACCESS_MASM(masm) masm->stop(__FILE_LINE__); masm-> | 2312 #define ACCESS_MASM(masm) masm->stop(__FILE_LINE__); masm-> |
2314 #else | 2313 #else |
2315 #define ACCESS_MASM(masm) masm-> | 2314 #define ACCESS_MASM(masm) masm-> |
2316 #endif | 2315 #endif |
2317 | 2316 |
2318 #endif // V8_ARM64_MACRO_ASSEMBLER_ARM64_H_ | 2317 #endif // V8_ARM64_MACRO_ASSEMBLER_ARM64_H_ |
OLD | NEW |