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

Unified Diff: src/trusted/validator_arm/gen/arm32_decode_baselines_1.cc

Issue 12223046: Use generated actual decoders for ARM table: (Closed) Base URL: svn://svn.chromium.org/native_client/trunk/src/native_client/
Patch Set: Created 7 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
Index: src/trusted/validator_arm/gen/arm32_decode_baselines_1.cc
===================================================================
--- src/trusted/validator_arm/gen/arm32_decode_baselines_1.cc (revision 10736)
+++ src/trusted/validator_arm/gen/arm32_decode_baselines_1.cc (working copy)
@@ -1421,6 +1421,7 @@
// {Cond: Cond(31:28),
// Lr: 14,
// Pc: 15,
+// actual: Actual_BL_BLX_immediate_cccc1011iiiiiiiiiiiiiiiiiiiiiiii_case_1,
// baseline: BranchImmediate24,
// constraints: ,
// defs: {Pc, Lr},
@@ -1430,7 +1431,7 @@
// imm32: SignExtend(imm24:'00'(1:0), 32),
// pattern: cccc1011iiiiiiiiiiiiiiiiiiiiiiii,
// relative: true,
-// relative_offset: imm32,
+// relative_offset: imm32 + 8,
// rule: BL_BLX_immediate,
// safety: [true => MAY_BE_SAFE],
// true: true,
@@ -1454,10 +1455,10 @@
int32_t BL_BLX_immediate_cccc1011iiiiiiiiiiiiiiiiiiiiiiii_case_0::
branch_target_offset(Instruction inst) const {
UNREFERENCED_PARAMETER(inst); // To silence compiler.
- // relative_offset: "SignExtend(inst(23:0):'00'(1:0), 32)"
+ // relative_offset: "SignExtend(inst(23:0):'00'(1:0), 32) + 8"
return (((((((inst.Bits() & 0x00FFFFFF)) << 2) | (0 & 0x00000003))) & 0x02000000)
? ((((((inst.Bits() & 0x00FFFFFF)) << 2) | (0 & 0x00000003))) | 0xFC000000)
- : ((((inst.Bits() & 0x00FFFFFF)) << 2) | (0 & 0x00000003)));
+ : ((((inst.Bits() & 0x00FFFFFF)) << 2) | (0 & 0x00000003))) + 8;
}
SafetyLevel BL_BLX_immediate_cccc1011iiiiiiiiiiiiiiiiiiiiiiii_case_0::
@@ -1484,6 +1485,7 @@
//
// {Cond: Cond(31:28),
// Pc: 15,
+// actual: Actual_B_cccc1010iiiiiiiiiiiiiiiiiiiiiiii_case_1,
// baseline: BranchImmediate24,
// constraints: ,
// defs: {Pc},
@@ -1493,7 +1495,7 @@
// imm32: SignExtend(imm24:'00'(1:0), 32),
// pattern: cccc1010iiiiiiiiiiiiiiiiiiiiiiii,
// relative: true,
-// relative_offset: imm32,
+// relative_offset: imm32 + 8,
// rule: B,
// safety: [true => MAY_BE_SAFE],
// true: true,
@@ -1516,10 +1518,10 @@
int32_t B_cccc1010iiiiiiiiiiiiiiiiiiiiiiii_case_0::
branch_target_offset(Instruction inst) const {
UNREFERENCED_PARAMETER(inst); // To silence compiler.
- // relative_offset: "SignExtend(inst(23:0):'00'(1:0), 32)"
+ // relative_offset: "SignExtend(inst(23:0):'00'(1:0), 32) + 8"
return (((((((inst.Bits() & 0x00FFFFFF)) << 2) | (0 & 0x00000003))) & 0x02000000)
? ((((((inst.Bits() & 0x00FFFFFF)) << 2) | (0 & 0x00000003))) | 0xFC000000)
- : ((((inst.Bits() & 0x00FFFFFF)) << 2) | (0 & 0x00000003)));
+ : ((((inst.Bits() & 0x00FFFFFF)) << 2) | (0 & 0x00000003))) + 8;
}
SafetyLevel B_cccc1010iiiiiiiiiiiiiiiiiiiiiiii_case_0::
@@ -2687,6 +2689,7 @@
// Pc: 15,
// Rn: Rn(19:16),
// W: W(21),
+// actual: Actual_LDMDA_LDMFA_cccc100000w1nnnnrrrrrrrrrrrrrrrr_case_1,
// base: Rn,
// baseline: LoadRegisterList,
// cond: cond(31:28),
@@ -2707,8 +2710,7 @@
// wback &&
// Contains(registers, Rn) => UNKNOWN,
// Contains(registers, Pc) => FORBIDDEN_OPERANDS],
-// small_imm_base_wb: true,
-// true: true,
+// small_imm_base_wb: wback,
// uses: {Rn},
// wback: W(21)=1}
Register LDMDA_LDMFA_cccc100000w1nnnnrrrrrrrrrrrrrrrr_case_0::
@@ -2762,8 +2764,9 @@
base_address_register_writeback_small_immediate(
Instruction inst) const {
UNREFERENCED_PARAMETER(inst); // To silence compiler.
- // small_imm_base_wb: 'true'
- return true;
+ // small_imm_base_wb: 'inst(21)=1'
+ return (inst.Bits() & 0x00200000) ==
+ 0x00200000;
}
RegisterList LDMDA_LDMFA_cccc100000w1nnnnrrrrrrrrrrrrrrrr_case_0::
@@ -2780,6 +2783,7 @@
// Pc: 15,
// Rn: Rn(19:16),
// W: W(21),
+// actual: Actual_LDMDA_LDMFA_cccc100000w1nnnnrrrrrrrrrrrrrrrr_case_1,
// base: Rn,
// baseline: LoadRegisterList,
// cond: cond(31:28),
@@ -2800,8 +2804,7 @@
// wback &&
// Contains(registers, Rn) => UNKNOWN,
// Contains(registers, Pc) => FORBIDDEN_OPERANDS],
-// small_imm_base_wb: true,
-// true: true,
+// small_imm_base_wb: wback,
// uses: {Rn},
// wback: W(21)=1}
Register LDMDB_LDMEA_cccc100100w1nnnnrrrrrrrrrrrrrrrr_case_0::
@@ -2855,8 +2858,9 @@
base_address_register_writeback_small_immediate(
Instruction inst) const {
UNREFERENCED_PARAMETER(inst); // To silence compiler.
- // small_imm_base_wb: 'true'
- return true;
+ // small_imm_base_wb: 'inst(21)=1'
+ return (inst.Bits() & 0x00200000) ==
+ 0x00200000;
}
RegisterList LDMDB_LDMEA_cccc100100w1nnnnrrrrrrrrrrrrrrrr_case_0::
@@ -2873,6 +2877,7 @@
// Pc: 15,
// Rn: Rn(19:16),
// W: W(21),
+// actual: Actual_LDMDA_LDMFA_cccc100000w1nnnnrrrrrrrrrrrrrrrr_case_1,
// base: Rn,
// baseline: LoadRegisterList,
// cond: cond(31:28),
@@ -2893,8 +2898,7 @@
// wback &&
// Contains(registers, Rn) => UNKNOWN,
// Contains(registers, Pc) => FORBIDDEN_OPERANDS],
-// small_imm_base_wb: true,
-// true: true,
+// small_imm_base_wb: wback,
// uses: {Rn},
// wback: W(21)=1}
Register LDMIB_LDMED_cccc100110w1nnnnrrrrrrrrrrrrrrrr_case_0::
@@ -2948,8 +2952,9 @@
base_address_register_writeback_small_immediate(
Instruction inst) const {
UNREFERENCED_PARAMETER(inst); // To silence compiler.
- // small_imm_base_wb: 'true'
- return true;
+ // small_imm_base_wb: 'inst(21)=1'
+ return (inst.Bits() & 0x00200000) ==
+ 0x00200000;
}
RegisterList LDMIB_LDMED_cccc100110w1nnnnrrrrrrrrrrrrrrrr_case_0::
@@ -2966,6 +2971,7 @@
// Pc: 15,
// Rn: Rn(19:16),
// W: W(21),
+// actual: Actual_LDMDA_LDMFA_cccc100000w1nnnnrrrrrrrrrrrrrrrr_case_1,
// base: Rn,
// baseline: LoadRegisterList,
// cond: cond(31:28),
@@ -2986,8 +2992,7 @@
// wback &&
// Contains(registers, Rn) => UNKNOWN,
// Contains(registers, Pc) => FORBIDDEN_OPERANDS],
-// small_imm_base_wb: true,
-// true: true,
+// small_imm_base_wb: wback,
// uses: {Rn},
// wback: W(21)=1}
Register LDM_LDMIA_LDMFD_cccc100010w1nnnnrrrrrrrrrrrrrrrr_case_0::
@@ -3041,8 +3046,9 @@
base_address_register_writeback_small_immediate(
Instruction inst) const {
UNREFERENCED_PARAMETER(inst); // To silence compiler.
- // small_imm_base_wb: 'true'
- return true;
+ // small_imm_base_wb: 'inst(21)=1'
+ return (inst.Bits() & 0x00200000) ==
+ 0x00200000;
}
RegisterList LDM_LDMIA_LDMFD_cccc100010w1nnnnrrrrrrrrrrrrrrrr_case_0::

Powered by Google App Engine
This is Rietveld 408576698