- 07 Dec, 2015 2 commits
-
-
Karl Schimpf authored
Also factors out the body of method lsl() to emitShift(), so that all forms of shift instructions can use the same code. BUG= https://bugs.chromium.org/p/nativeclient/issues/detail?id=4334 R=stichnot@chromium.org Review URL: https://codereview.chromium.org/1501073002 .
-
Jim Stichnoth authored
Uses a nasty regexp to turn something like: // ... TODO(stichnot): Fix // this. into: /// ... @todo TODO(stichnot): Fix /// this. so that doxygen can generate the TODO list. Matches "TODO:" and "TODO " and "TODO(...". BUG= none R=rkotlerimgtec@gmail.com Review URL: https://codereview.chromium.org/1489413007 .
-
- 05 Dec, 2015 1 commit
-
-
John Porto authored
(See https://codereview.chromium.org/1491473002/ for the steps taken while implementing sandboxing.) BUG= https://code.google.com/p/nativeclient/issues/detail?id=4076 R=stichnot@chromium.org Review URL: https://codereview.chromium.org/1499983002 .
-
- 04 Dec, 2015 6 commits
-
-
Karl Schimpf authored
Adds RSB (immediate) and RSB (register) to the ARM integrated assembler. Also moves udiv method to corresponding (sorted) position in cpp file. BUG= https://bugs.chromium.org/p/nativeclient/issues/detail?id=4334 R=stichnot@chromium.org Review URL: https://codereview.chromium.org/1494433005 .
-
Karl Schimpf authored
Add allowing movt to work on integer constants that aren't relocatable. Also clean up code sharing between movw and movt. BUG= https://bugs.chromium.org/p/nativeclient/issues/detail?id=4334 R=stichnot@chromium.org Review URL: https://codereview.chromium.org/1500073002 .
-
Jim Stichnoth authored
Once again, the configuration file that comes with Doxygen seems to have defaults set for those generating API Documentation and not for documenting the code in a whole project. With this turned off, even todos and such are ignored in an anonymous namespace. BUG= R=stichnot@chromium.org Review URL: https://codereview.chromium.org/1501503002 .
-
Karl Schimpf authored
Up to now, all error handling in the ARM integrated assembler was handled by forcing a text fixup. This CL tries to minimize the use of fixup's to only be applied when there is an unimplemented form of an instruction. All other cases now generate fatal error messages. This CL should make it easier to determine what instructions still need to be extended. BUG= https://bugs.chromium.org/p/nativeclient/issues/detail?id=4334 R=stichnot@chromium.org Review URL: https://codereview.chromium.org/1495093002 .
-
John Porto authored
This reverts commit 38ac6bee (mistakenly TBRed.) BUG= https://code.google.com/p/nativeclient/issues/detail?id=4076 Review URL: https://codereview.chromium.org/1499973002 .
-
John Porto authored
BUG= https://code.google.com/p/nativeclient/issues/detail?id=4076 Review URL: https://codereview.chromium.org/1491473002 .
-
- 03 Dec, 2015 2 commits
-
-
John Porto authored
BUG= https://code.google.com/p/nativeclient/issues/detail?id=4076 R=stichnot@chromium.org Review URL: https://codereview.chromium.org/1477873002 .
-
Jim Stichnoth authored
There is a consistent mistake in most of the file level subzero doxygen comments which stems from a problem with brief. Basically, there are two types of documentation in Doxygen, inline and structural documentation. File level documentation is always structural because inline documentation must either come before or after the entity and for a file that would be impossible. When you have structure documentation, the brief and detailed is handled differently and you have to explicity put the \brief qualifier in. We were only doing this for a few files so when you looked the doxygen for the source directory, the description was blank for almost all of them. If you build docs with this patch and look at the "files" and src directory, you will see all the brief descriptions now. In addition I deleted the text "This file ..." from the beginning of all the file desriptions because it's redundant when you look at the doxygen output and adds no information but takes up space in the descripton. BUG= R=stichnot@chromium.org Review URL: https://codereview.chromium.org/1488913002 .
-
- 02 Dec, 2015 2 commits
-
-
Karl Schimpf authored
Cleans up function names containing "decode" and "encode". Change "encode" to represent the conversion of values into bit-sequences, as they appear in instructions. Change "decode" to represent the extraction of values from bit sequences. BUG=None R=stichnot@chromium.org Review URL: https://codereview.chromium.org/1490383002 .
-
Karl Schimpf authored
Adds many more cases of ldr{b,h}/str{b,h} instructions to the ARM integerated assembler. Also refactored decodeAddress() to deal with the fact that immediate/register arguments for LDR/LDRB/STR/STRB differ for LDRH/LDRD/STRH/STRD, by passing in the layout wanted. Note: LDRD/STRD instructions are currently not used by Subzero. BUG=https://bugs.chromium.org/p/nativeclient/issues/detail?id=4334 R=stichnot@chromium.org Review URL: https://codereview.chromium.org/1486263002 .
-
- 01 Dec, 2015 2 commits
-
-
John Porto authored
BUG= https://code.google.com/p/nativeclient/issues/detail?id=4076 R=stichnot@chromium.org Review URL: https://codereview.chromium.org/1474883002 .
-
Karl Schimpf authored
Moves APInt and corresponding convert to float method into the pnacl translator. Renames APInt to BitcodeInt to be more clear that we aren't referring to LLVM's APInt. Rather, it is the representation in PNaCl bitcode. BUG=None R=stichnot@chromium.org Review URL: https://codereview.chromium.org/1484003003 .
-
- 30 Nov, 2015 1 commit
-
-
Karl Schimpf authored
Fixes nits found in landed CL's https://codereview.chromium.org/1456783003, https://codereview.chromium.org/1452293003, and https://codereview.chromium.org/1460523005 BUG=None R=stichnot@chromium.org Review URL: https://codereview.chromium.org/1484023002 .
-
- 27 Nov, 2015 1 commit
-
-
Jim Stichnoth authored
BUG= none R=sehr@chromium.org Review URL: https://codereview.chromium.org/1479873002 .
-
- 26 Nov, 2015 1 commit
-
-
David Sehr authored
1) Move helper creation to separate method, which also computes the maximum outgoing argument size. The computed size is checked against call lowering's size. 2) Make addProlog use the outgoing argument size and remove the adjustments in lowerCall. 3) Remove AdjustStack instructions and friends. BUG= R=jpp@chromium.org, stichnot@chromium.org Review URL: https://codereview.chromium.org/1472623002 .
-
- 25 Nov, 2015 1 commit
-
-
Jim Stichnoth authored
This makes it easier to do bisection debugging. Note that this could be used to simplify "make -f Makefile.standalone check-spec", but I chose not to do that because shellcmd() buffers all of the stdout until completion, which is not a great user experience (at least for this user). BUG= none R=sehr@chromium.org Review URL: https://codereview.chromium.org/1472833006 .
-
- 24 Nov, 2015 1 commit
-
-
John Porto authored
BUG= https://code.google.com/p/nativeclient/issues/detail?id=4076 R=stichnot@chromium.org Review URL: https://codereview.chromium.org/1469113003 .
-
- 23 Nov, 2015 1 commit
-
-
John Porto authored
BUG= https://code.google.com/p/nativeclient/issues/detail?id=4076 R=stichnot@chromium.org Review URL: https://codereview.chromium.org/1465213002 .
-
- 22 Nov, 2015 1 commit
-
-
Jim Stichnoth authored
This way, the g++ build for the "make presubmit" target gets a separate build directory, and gets to use ccache. Also, get rid of the "git diff" test, because uncommitted changes are already checked by "git cl upload" and "git cl land". BUG= none R=jpp@chromium.org Review URL: https://codereview.chromium.org/1468823002 .
-
- 21 Nov, 2015 1 commit
-
-
David Sehr authored
BUG= R=jpp@chromium.org Review URL: https://codereview.chromium.org/1458713002 .
-
- 20 Nov, 2015 5 commits
-
-
Karl Schimpf authored
Extends the ARM integrated assembler to understand register-shifted data processing instructions (add, sub, etc.), as well as cmp/test instructions. BUG= https://bugs.chromium.org/p/nativeclient/issues/detail?id=4334 R=jpp@chromium.org Review URL: https://codereview.chromium.org/1459673003 .
-
Karl Schimpf authored
Also removes redundant rule checks in emitType01(). BUG= https://bugs.chromium.org/p/nativeclient/issues/detail?id=4334 R=jpp@chromium.org Review URL: https://codereview.chromium.org/1460523005 .
-
John Porto authored
Pre-computes the max stack size outgoing arguments, and pre-allocates it during prolog, deallocating during epilog. With this CL, there are no more StackAdjustments needed for the ARM32, which will simplify rematerializing alloca'd variables. BUG= https://code.google.com/p/nativeclient/issues/detail?id=4076 R=sehr@chromium.org Review URL: https://codereview.chromium.org/1467473003 .
-
John Porto authored
This pass gives Targets the ability to pre-lower high-level instructions that will later be lowered to a target-specific helper, e.g., 64-bit division on targets that can't natively handle them. This is a pre-requirement for correct outargs pre-allocation during function prolog. R=sehr@chromium.org Review URL: https://codereview.chromium.org/1455033005 .
-
David Sehr authored
BUG= R=stichnot@chromium.org Review URL: https://codereview.chromium.org/1460003003 .
-
- 19 Nov, 2015 2 commits
-
-
Karl Schimpf authored
Also does some clean up on emitType01 methods (making optional argument explicit, and moving rule checks to the lowest level). BUG= https://bugs.chromium.org/p/nativeclient/issues/detail?id=4334 R=jpp@chromium.org Review URL: https://codereview.chromium.org/1456783003 .
-
John Porto authored
This CL removes two warts from the ARM32 backend: 1) during argument lowering, if a stack parameter is assigned a register, the backend creates a new Variable that references the stack location with the incoming argument, and _mov() it to the parameter. 2) During stack slot legalization, all _mov(Mem(), Reg) are converted to stores; and all _mov(Reg, Mem()) are converted to loads. BUG= https://code.google.com/p/nativeclient/issues/detail?id=4076 R=kschimpf@google.com Review URL: https://codereview.chromium.org/1457683004 .
-
- 18 Nov, 2015 2 commits
-
-
Karl Schimpf authored
Adds BL and BLX to ARM integrated assembler. BUG= https://bugs.chromium.org/p/nativeclient/issues/detail?id=4334 R=jpp@chromium.org Review URL: https://codereview.chromium.org/1452293003 .
-
Jim Stichnoth authored
To see the main effect of this, look at the doxygen for file IceGlobalContext.h to see the effect of turning this on. Without it, the nested classes are not available because they are private. My guess is that often doxygen is used to generate API documents and for that reason, exporting of private info is excluded by default. BUG= R=stichnot@chromium.org Review URL: https://codereview.chromium.org/1411123019 .
-
- 17 Nov, 2015 8 commits
-
-
John Porto authored
Creates a special OperandARM32 for representing imm5 used when performing a shift operation. BUG= https://code.google.com/p/nativeclient/issues/detail?id=4076 R=kschimpf@google.com Review URL: https://codereview.chromium.org/1449263003 .
-
Karl Schimpf authored
BUG= https://bugs.chromium.org/p/nativeclient/issues/detail?id=4334 R=stichnot@chromium.org Review URL: https://codereview.chromium.org/1458523002 .
-
Jim Stichnoth authored
1. Include a test build (but no link) using g++, to identify errors and warnings before they hit the Windows bots. 2. Move "git diff --quiet" to the end so that the presubmit tests can easily be run before committing locally, if desired. 3. Add "make presubmit" as an alias for "make check-presubmit". 4. Document the individual steps. BUG= none R=jpp@chromium.org Review URL: https://codereview.chromium.org/1453713002 .
-
John Porto authored
BUG= https://code.google.com/p/nativeclient/issues/detail?id=4076 R=stichnot@chromium.org Review URL: https://codereview.chromium.org/1438773004 .
-
Jim Stichnoth authored
BUG= none TEST= make -j32 -f Makefile.standalone CXX=g++ LLVM_EXTRA_WARNINGS="-Wno-unknown-pragmas -Wno-unused-parameter -Wno-comment -Wno-enum-compare -Wno-strict-aliasing" STDLIB_FLAGS= (this command will compile but fail to link) R=jpp@chromium.org Review URL: https://codereview.chromium.org/1452993002 .
-
Jim Stichnoth authored
The register allocator does not need to be considering rematerializable variables at all. When it does, there tends to be a big performance cost because the live range of a rematerializable variable tends to be large, leading to lots of expensive overlap computations against register allocation candidates. BUG= none R=jpp@chromium.org, sehr@chromium.org Review URL: https://codereview.chromium.org/1450233002 .
-
David Sehr authored
Rather than bumping the stack pointer around the scalar return sequence in _fld, ensure the prolog allocates enough space. BUG= R=stichnot@chromium.org Review URL: https://codereview.chromium.org/1442753008 .
-
David Sehr authored
Also removes reliance on lowerAlloca entirely for the fixed allocations. BUG= R=jpp@chromium.org, stichnot@chromium.org Review URL: https://codereview.chromium.org/1435363002 .
-