11e977d75f657dacb4cb5c36ab6054bcf66b08076Vinod Krishnan/* 21e977d75f657dacb4cb5c36ab6054bcf66b08076Vinod Krishnan * ARMOptions 31e977d75f657dacb4cb5c36ab6054bcf66b08076Vinod Krishnan * 41e977d75f657dacb4cb5c36ab6054bcf66b08076Vinod Krishnan * Author: Lasse Collin <lasse.collin@tukaani.org> 51e977d75f657dacb4cb5c36ab6054bcf66b08076Vinod Krishnan * 61e977d75f657dacb4cb5c36ab6054bcf66b08076Vinod Krishnan * This file has been put into the public domain. 71e977d75f657dacb4cb5c36ab6054bcf66b08076Vinod Krishnan * You can do whatever you want with this file. 81e977d75f657dacb4cb5c36ab6054bcf66b08076Vinod Krishnan */ 91e977d75f657dacb4cb5c36ab6054bcf66b08076Vinod Krishnan 101e977d75f657dacb4cb5c36ab6054bcf66b08076Vinod Krishnanpackage org.tukaani.xz; 111e977d75f657dacb4cb5c36ab6054bcf66b08076Vinod Krishnan 121e977d75f657dacb4cb5c36ab6054bcf66b08076Vinod Krishnanimport java.io.InputStream; 131e977d75f657dacb4cb5c36ab6054bcf66b08076Vinod Krishnanimport org.tukaani.xz.simple.ARM; 141e977d75f657dacb4cb5c36ab6054bcf66b08076Vinod Krishnan 151e977d75f657dacb4cb5c36ab6054bcf66b08076Vinod Krishnan/** 161e977d75f657dacb4cb5c36ab6054bcf66b08076Vinod Krishnan * BCJ filter for little endian ARM instructions. 171e977d75f657dacb4cb5c36ab6054bcf66b08076Vinod Krishnan */ 181e977d75f657dacb4cb5c36ab6054bcf66b08076Vinod Krishnanpublic class ARMOptions extends BCJOptions { 191e977d75f657dacb4cb5c36ab6054bcf66b08076Vinod Krishnan private static final int ALIGNMENT = 4; 201e977d75f657dacb4cb5c36ab6054bcf66b08076Vinod Krishnan 211e977d75f657dacb4cb5c36ab6054bcf66b08076Vinod Krishnan public ARMOptions() { 221e977d75f657dacb4cb5c36ab6054bcf66b08076Vinod Krishnan super(ALIGNMENT); 231e977d75f657dacb4cb5c36ab6054bcf66b08076Vinod Krishnan } 241e977d75f657dacb4cb5c36ab6054bcf66b08076Vinod Krishnan 251e977d75f657dacb4cb5c36ab6054bcf66b08076Vinod Krishnan public FinishableOutputStream getOutputStream(FinishableOutputStream out) { 261e977d75f657dacb4cb5c36ab6054bcf66b08076Vinod Krishnan return new SimpleOutputStream(out, new ARM(true, startOffset)); 271e977d75f657dacb4cb5c36ab6054bcf66b08076Vinod Krishnan } 281e977d75f657dacb4cb5c36ab6054bcf66b08076Vinod Krishnan 291e977d75f657dacb4cb5c36ab6054bcf66b08076Vinod Krishnan public InputStream getInputStream(InputStream in) { 301e977d75f657dacb4cb5c36ab6054bcf66b08076Vinod Krishnan return new SimpleInputStream(in, new ARM(false, startOffset)); 311e977d75f657dacb4cb5c36ab6054bcf66b08076Vinod Krishnan } 321e977d75f657dacb4cb5c36ab6054bcf66b08076Vinod Krishnan 331e977d75f657dacb4cb5c36ab6054bcf66b08076Vinod Krishnan FilterEncoder getFilterEncoder() { 341e977d75f657dacb4cb5c36ab6054bcf66b08076Vinod Krishnan return new BCJEncoder(this, BCJCoder.ARM_FILTER_ID); 351e977d75f657dacb4cb5c36ab6054bcf66b08076Vinod Krishnan } 361e977d75f657dacb4cb5c36ab6054bcf66b08076Vinod Krishnan} 37