Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(676)

Unified Diff: src/arm/assembler-arm.h

Issue 595023: ARM optimize loading of immediates. (Closed)
Patch Set: Created 10 years, 10 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « no previous file | src/arm/assembler-arm.cc » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: src/arm/assembler-arm.h
diff --git a/src/arm/assembler-arm.h b/src/arm/assembler-arm.h
index f6b7a06aa2ca261edac503e8ebb8136292d971dd..48c7b767874d2ab2cbe2d9cb5bb5b46ac1aacc2a 100644
--- a/src/arm/assembler-arm.h
+++ b/src/arm/assembler-arm.h
@@ -387,6 +387,26 @@ enum LFlag {
};
+// Opcode field of addrmode1 opcodes.
+enum AddrMode1Opcodes {
+ AND = 0 << 21,
+ EOR = 1 << 21,
+ SUB = 2 << 21,
+ RSB = 3 << 21,
+ ADD = 4 << 21,
+ ADC = 5 << 21,
+ SBC = 6 << 21,
+ RSC = 7 << 21,
+ TST = 8 << 21,
+ TEQ = 9 << 21,
+ CMP = 10 << 21,
+ CMN = 11 << 21,
+ ORR = 12 << 21,
+ MOV = 13 << 21,
+ BIC = 14 << 21,
+ MVN = 15 << 21
+};
+
// -----------------------------------------------------------------------------
// Machine instruction Operands
@@ -1017,6 +1037,9 @@ class Assembler : public Malloced {
void addrmod4(Instr instr, Register rn, RegList rl);
void addrmod5(Instr instr, CRegister crd, const MemOperand& x);
+ // Used by addrmod1 and a few other cases to load constants.
+ bool fit_to_shifter(Instr* instr, uint32_t imm32, bool addrmode1 = true);
+
// Labels
void print(Label* L);
void bind_to(Label* L, int pos);
« no previous file with comments | « no previous file | src/arm/assembler-arm.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698